表 8:Memory Requirement
方法 The size of Priority queue
Contributed by RAM space Lazy wear‐leveling
with bitmap
2048 Priority queue, Bitmap
2048 * 2 Bytes + 16k bits = 6K Bytes Lazy wear‐leveling
with GC bitmap
2048 Priority queue* 2048 * 2 Bytes = 4K Bytes
Lazy wear‐leveling with block chain length
2048 Priority queue** 2048 * 2 Bytes = 4K Bytes
Lazy wear‐leveling with priority queue only
2048 Priority queue 2048 * 2 Bytes = 4K Bytes
*GC Bitmap 不列入 Wear‐leveling 所耗用的 RAM space
**記錄 Block chain length 不列入 Wear‐leveling 所耗用的 RAM Space
五、Conclusion
SLC NAND Flash Memory 本身已存在 Endurance 的問題,而隨著科技的進步,
容量更大,成本更低的 NAND Flash Memory: MLC 的出現,然而雖然 MLC 有上述之 優點,但是 MLC 的 Endurance 問題卻又比 SLC 更加嚴重許多。而現在又將 NAND Flash Memory 進一步的應用,即 SSD 的出現以取代現有的 Hard Drive Disk,而將 NAND Flash Memory 作為系統之用會因為其 Access Pattern 而造成 Endurance 更加嚴重。
Wear‐leveling algorithm 則是用以解決此 Endurance 的問題,因此如何設計出能夠達 到解決 Endurance 且成本又低則相當重要。本篇 paper 主要提出一個新的與以往不 同的 wear‐leveling algorithm,將重點擺在 Old Block 以及 Cold Data 身上,並且改以 往方式以 PBA 的方式轉為由 LBA 切入以找到 Old Block。如此我們僅需使用一個固 定大小的 Priority Queue 並加上一個 Bitmap 找出 Cold Data 即可達到不錯的
wear‐leveling 效果。在最後我們的實驗結果中與其他不同的 wear‐leveling 做比較與 觀察,可知我們的 wear‐leveling 在效果上(standard deviation)、overhead(Mean)
都比其他的 wear‐leveling 表現的效果較好,所耗用的 RAM Space 亦不多。
24 Large SSDs," the 13th Asia and South Pacific Design Automation Conference
(ASP‐DAC), 2008. (best‐paper nominee, 10 out of 122 accepted papers/350 submissions
[18] "SmartMediaTM Specification", SSFDC Forum, 1999.
[19] “Sandisk Flash Memory Cards Wear Leveling",
http://www.sandisk.com/Assets/File/OEM/WhitePapersAndBrochures/RS‐MMC/WPap erWearLevelv1.0.pdf, 2003.
[20] M‐Systems, “TrueFFS® Wear‐Leveling Mechanism”
25
Block 124352 is blockSwitched(shoulded be erased) in LBA 124352 Block 124352 is allocated to LBA 124355 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 124355 Block 124352 is allocated to LBA 124360 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 124360 Block 124352 is allocated to LBA 124363 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 124363 Block 124352 is allocated to LBA 124366 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 124366 Block 124352 is allocated to LBA 124373 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 55646 Block 124352 is allocated to LBA 55649 as logBlock
26
Block 124352 is blockSwitched(shoulded be erased) in LBA 18530 Block 124352 is allocated to LBA 76309 as logBlock
Block 124352 is folded in LBA 76309 block chain,so in SB chain Block 124352 is allocated to LBA 35911 as logBlock
Block 124352 is folded in LBA 35911 block chain,so in SB chain Block 124352 is allocated to LBA 22506 as logBlock
Block 124352 is folded in LBA 22506 block chain,so in SB chain Block 124352 is allocated to LBA 76308 as DataBlock in foldChain Block 124352 is folded in LBA 76308 block chain,so in SB chain Block 124352 is allocated to LBA 4801 as logBlock
Block 124352 is folded in LBA 4801 block chain,so in SB chain Block 124352 is allocated to LBA 144404 as logBlock
Block 124352 is folded in LBA 144404 block chain,so in SB chain Block 124352 is allocated to LBA 144441 as DataBlock in foldChain Block 124352 is folded in LBA 144441 block chain,so in SB chain Block 124352 is allocated to LBA 79304 as logBlock
Block 124352 is folded in LBA 79304 block chain,so in SB chain Block 124352 is allocated to LBA 12883 as logBlock
Block 124352 is folded in LBA 12883 block chain,so in SB chain Block 124352 is allocated to LBA 79168 as logBlock
Block 124352 is folded in LBA 79168 block chain,so in SB chain Block 124352 is allocated to LBA 76329 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 76329 Block 124352 is allocated to LBA 43008 as logBlock
Block 124352 is folded in LBA 43008 block chain,so in SB chain Block 124352 is allocated to LBA 75013 as logBlock
Block 124352 is blockSwitched(shoulded be erased) in LBA 75013 Block 124352 is allocated to LBA 99957 as DataBlock in foldChain Block 124352 is blockSwitched(shoulded be erased) in LBA 99957 Block 124352 is allocated to LBA 99960 as logBlock
Block 124352 is folded in LBA 99960 block chain,so in SB chain Block 124352 is allocated to LBA 100013 as DataBlock in foldChain Block 124352 is folded in LBA 100013 block chain,so in SB chain Block 124352 is allocated to LBA 100044 as DataBlock in foldChain Block 124352 is blockSwitched(shoulded be erased) in LBA 100044 Block 124352 is used to store data from Block 148222 by WL in LBA 34758