Endurance Enhancement of Flash-Memory Storage Systems: An Efficient Static Wear Leveling Design
Yuan-Hao Chang, Jen-Wei Hsieh, and Tei-Wei Kuo
Embedded Systems and Wireless Networking Laboratory
- Dept. of Computer Science and Information Engineering
Endurance Enhancement of Flash-Memory Storage Systems: An Efficient - - PowerPoint PPT Presentation
Endurance Enhancement of Flash-Memory Storage Systems: An Efficient Static Wear Leveling Design Yuan-Hao Chang, Jen-Wei Hsieh, and Tei-Wei Kuo Embedded Systems and Wireless Networking Laboratory Dept. of Computer Science and Information
2
3
4
… …
(2KB+64 Byte) (2KB+64 Byte)
… …
(2KB+64 Byte) (2KB+64 Byte)
… …
(2KB+64 Byte) (2KB+64 Byte)
Page: basic write-operation unit.
63
… … 511 … … … … Block: basic erase-operation unit. 64MB SLC Flash Memory
5 5
*FTL: Flash Translation Layer, MTD: Memory Technology Device
CompactFlash
6
– Main problem: Large memory space requirement
User data
. . .
Logical Block Address (array index) Physical Block Address (block,page)
Physical Block Address (block,page) Access LBA = 3
Address Translation Table (in main-memory) Flash memory
0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 1,0 1,1 1,2 1,3 (0,3) (0,1) (0,6) (0,4) (4,7) (1,0) (2,1) (1,2) (1,3) 1 2 3 4 5 6 7 8 9 10 11
. . .
Spare data
Spare data LBA=3; ECC=. . .; Status=. . .;
7
and a block offset.
– e.g., LBA=1011 => virtual block address (VBA) = 1011 / 8 = 126 and block
. . .
Write data to LBA=1011
. . .
Address Translation Table (in main-memory) Free Free Free Used Free Free Free Free Used Used Used Free Free Free Free Free A Primary Block Address = 9 A Replacement Block Address = 23 VBA=126 Block Offset=3 If the page has been used Write to the first free page
8
9
Solid State Disk
10
20 40 60 80 100 1000 2000 3000 4000 5000
11
20 40 60 80 100 1000 2000 3000 4000 5000
12
20 40 60 80 100 1000 2000 3000 4000 5000
13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Flash memory counter : free block : dead block : block contains (some) valid data
: index in the selection of a victim block
: index to the selected free block
5 5 4 5 5 4 4 5 4 5 5 4 4 5 5 4
Update data in block 3 Write new data to block 4 GC starts find a victim block
5
Update block 15 GC starts
5 5 5 5
14
Physical Block Addresses (PBA) Erase Cycles
20 40 60 80 100 1000 2000 3000 4000 5000
Physical Block Addresses (PBA)
20 40 60 80 100 1000 2000 3000 4000 5000
Erase Cycles
20 40 60 80 100 1000 2000 3000 4000 5000
20 40 60 80 100 1000 2000 3000 4000 5000
15
16
17
18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Flash BET 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 1 1 1
k=0 k=2
ecnt =0 fcnt =0 ecnt =0 fcnt =0 ecnt =1 fcnt =1 ecnt =2 fcnt =2 ecnt =3 fcnt =2 ecnt =1 fcnt =1 ecnt =2 fcnt =2 ecnt =3 fcnt =2 ecnt =4 fcnt =2 : a block that has been erased in the current resetting interval : an index to a block that the Cleaner wants to erase fcnt : the number of 1’s in the BET ecnt : the total number of block erases done since the BET is reset
19
ecnt =1998 fcnt =2
0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 : A block that has been erased in the current resetting interval
1 1 k=2
: An index to a block that the Cleaner wants to erase
fcnt: The number of 1’s in the BET ecnt: the total number of block erases since the BET is erased T: A threshold, T=1000 in this example
: An index in the selection of a block set
ecnt =1999 fcnt =2 ecnt =2000 fcnt =2 2000 / 2 = 1000 >= 1000 (Ecnt / fcnt >= T)
1
: An index that SW Leveler triggers the Cleaner to do garbage collection The Cleaner is triggered to
between LBA and PBA
After a period of time, the total erase count reaches 2998.
ecnt =2004 fcnt =3 ecnt =2998 fcnt =3 ecnt =2999 fcnt =3 ecnt =3000 fcnt =3 3000 / 3 = 1000 >= 1000 (Ecnt / fcnt >= T)
1
ecnt =3004 fcnt =4 After a period of time, the total erase count reaches 3999. ecnt =3999 fcnt =4 ecnt =4000 fcnt =4 4000 / 4 = 1000>=1000 (ecnt / fcnt >=1000) , but all flags in BET are 1 reset BET
Reset to a randomly selected block set (flag)
ecnt =0 fcnt =0
20
21
22
23
When k=3 and T=100, the endurance is improved by 100.2%. When k=0 and T=100, the endurance is improved by 87.5%.
24
Extra block erases is less than 3%. Extra block erases is less than 2%.
25
26
Problems
Adaptors, etc.
Selected cell IDS Control Gate Drain Source
27