storage architecture and software support for slc/mlc
TRANSCRIPT
Storage Architecture and Software
Support for SLC/MLC Combined
Flash Memory
세미나 발표 : 최 현 경
(2009-08-11)
ACM SAC 2009 : Soojun Im and Dongkun ShinSungkyunkwan University
Introduction Flash memory
erase-before-write architecture Different unit sizes : erase(block), write(page) page writing (programming) within a block should be done Sequentially
=SOP(Sequentiality of Programming)
FTL required Block level mapping
needs a small-sized block-level mapping table high page migration cost
Page level mapping mapping table size is large
Hybrid mappping Log block based FTL scheme lower page migration cost compared to the block-level mapping requires a smaller-sized mapping table compared to the page-level mapping
In this paper, reliability of MLC can be improved with an error correcting
controller and the read performance of MLC area is similar to the SLC area
use the SLC area as write buffer for the frequently-updated data
FTL : hybrid mapping SLC flash block as a log
buffer of MLC flash block The main two techniques
Garbage collection bypassing
STORAGE ARCHITECTURE SLC area(log buffer):managed by the page-level mapping MLCarea(data block):managed by the block-level mapping A sequential large data:bypasses the SLC area (generally
write-once data) garbage collector makes free spaces by reclaiming the
space occupied by invalid pages or by sending cold data to the MLC area
Garbage Collection current log buffer-based FTL
all the valid pages of a victim log block are moved into the data block by block merge operation (= block-level merge)
Considering the slow write performance of MLC area page-level merge If a page is frequently-updated, it is better to keep the page at the log buffer the garbage collector transfers only the cold pages into the MLC area, hot pages
remain in the SLC area Considering the page migration cost
the garbage collector selects the page to be sent to MLC area considering the number of valid pages in the corresponding MLC data block to be merged with the page
The garbage collection is composed of three steps data block classification migration to data block migration within log buffer
Garbage Collection-Data Block Classification
All the pages in SLC log block hot page : update count of a page after the last garbage
collection is large than the specified threshold value Phot
cold page : not accessed during more than Pcold number of garbage collections
warm page : other pages
MLC data blocks associated with the log blocks cold block : more than Bcold number of pages corresponding
page in log buffer is cold hot block : more than Bhot number of pages corresponding
page in log buffer is hot and the data block is not cold block warm block : other blocks
Garbage Collection-Data Block Classification
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
24
25
26
27
28
29
30
31
16
17
18
19
20
21
22
23
32
33
34
35
36
37
38
39
MB0 MB1 MB2 MB3 MB4 MB5 MB6
0
10
1
2
27
28
10
20
4
20
6
26
3
21
22
11
26
27
12
13
28
29
SB0 SB1 SB2 SB3 SB4 SB5
Log Buffer (SLC Region) Data Block (MLC Region)
warm warmcold hotEstimate #(hot, warm, cold)
Hot page : 10, 20, 26, 27, 28Warm page : 0, 1, 2, 3, 4, 6, 21, 22, 29Cold page : 11, 12, 13
(0,6,0)
(1,0,3)
(1,2,0)
(3,1,0)
Invalid page
Bhot=2, Bcold=2
The aim ofthis classification is to perform the page-level merge with only the
cold block and the warm block
Garbage Collection-Migration to Data Block Cold block : move all the log pages associated data blocks
are cold Warm block : estimate the number of valid pages number of valid pages > θ : not merge If θ = 4, select MB0 merge target
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
24
25
26
27
28
29
30
31
16
17
18
19
20
21
22
23
32
33
34
35
36
37
38
39
MB0 MB1 MB2 MB3 MB4 MB5 MB6
warm warmcold hot
0
10
1
2
27
28
10
20
4
20
6
26
3
21
22
11
26
27
12
13
28
29
SB0 SB1 SB2 SB3 SB4 SB5
Target blocks
0
1
2
3
4
5
6
7
8
9
11
12
13
14
15
0
10
1
2
27
28
10
20
4
20
6
26
3
21
22
11
26
27
12
13
28
29
SB0 SB1 SB2 SB3 SB4 SB5
# of valid pages : SB0(0), SB1(0), SB2(2), SB3(1), SB4(2)
10
Garbage Collection-Migration within Log Buffer
all the pages are invalid : erase the block and make it clean to be reused
both valid pages and invalid pages estimate the number of valid pages in each log block number of valid pages < δ : move all the valid pages of the log
block into another log block If δ = 2, copied into the SB5
0
10
1
2
27
28
10
20
4
20
6
26
3
21
22
11
26
27
12
13
28
29
SB0 SB1 SB2 SB3 SB4 SB5
3
21
22
11
26
27
12
13
28
29
SB0 SB1 SB2 SB3 SB4 SB5
Erased blocks
20
Bypassing the log buffer Generally, large and sequential data has a low temporal locality large data to bypass the SLC log buffer sector length of a write request > threshold α, the FTL sends it directly to
the MLC area to reduce the page copy cost, use the ‘update block’
Bypassing the log buffer Bypassing throttling L:request data length, O:page offset from the last update page L ≥ α and O ≤ β adjust the values of α and β to limit the number of write requests
on SLC SLC blocks are worn out too quickly => decrease α and increase β MLC blocks are worn out too quickly or the write requests for
the MLC block are too many => increase α and decrease β >> balance the number of program/erase cycles of SLC blocks and
MLC blocks
EXPERIMENTS workloads extracted from Microsoft Windows XP-based
desktop PC, running several applications, (documents editors, music players, web browsers and games)
collected the trace from both FAT32 and NTFS file systems
collected other traces running IOzone and Postmark benchmarks
effects of variables related to the hot/coldseparation (Phot, Pcold, Bhot and Bcold)
the best values of Phot, Bhot
= 0 decrease the values of
Bcold,Pcold
number of page migration to MLC area increases
Bhot decrease number of hot page
migration to MLC area decreases
Best values in FAT32 Pcold=25, Bhot=0,
Bcold=12, δ = 40
effects of θ(warm block, # of valid pages) θ = 0
none of the pages associated with the warm blocks migrates to MLC blocks
θ > 64 performance
degradations
NTFS similar pattern result but smaller value
Normalized execution time varyingthe size of SLC area
NSLC increases, execution time
decreases since the garbage collector is invoked infrequently
FAT32 trace: high temporal locality Postmark : little temporal locality
garbage collection is invoked frequently if the SLC size is small
Comparison with previous FTL schemes
bypassing technique improved up to 7% α =64KB, number of accesses
on the SLC area is significantly reduced
the MLC area : increased due to the update block management overhead.
CONCLUSION The proposed scheme is based on the hybrid mapping FTL and
utilizes the SLC area as a log buffer The garbage collection algorithm
moves the pages in the SLC area into the MLC area selectively considering their localities and the migration costs
The bypassing algorithm sends a large sequential data into the MLC area to use the log buffer
effectively several parameters in the algorithm should be carefully determined
considering the workload pattern As a future work, study an adaptation scheme which adjusts the
parameters used in the proposed scheme observing the workload pattern