Storage Architecture and Software  Support for SLC/MLC Combined  Flash Memory 세미나 발표  :  최 현 경 (2009-08-11) ACM SAC 2009 :...
Introduction <ul><li>Flash memory </li></ul><ul><ul><li>erase-before-write architecture </li></ul></ul><ul><ul><li>Differe...
In this paper, <ul><li>reliability of MLC can be improved with an error correcting controller and the read performance of ...
STORAGE ARCHITECTURE <ul><li>SLC area(log buffer):managed by the page-level mapping </li></ul><ul><li>MLCarea(data block):...
Garbage Collection <ul><li>current log buffer-based FTL </li></ul><ul><ul><li>all the valid pages of a victim log block ar...
Garbage Collection -Data Block Classification <ul><li>All the pages in SLC log block </li></ul><ul><ul><li>hot page :  upd...
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...
Garbage Collection- Migration to Data Block <ul><li>Cold block :  move all the log pages   associated data blocks are cold...
Garbage Collection- Migration within Log Buffer <ul><li>all the pages are invalid : erase the block and make it clean to b...
Bypassing the log buffer <ul><li>Generally, large and sequential data has a low temporal locality </li></ul><ul><li>large ...
Bypassing the log buffer <ul><li>Bypassing   throttling   </li></ul><ul><li>L: request data length , O: page offset from  ...
EXPERIMENTS <ul><li>workloads extracted from Microsoft Windows XP-based desktop PC, running several applications, (documen...
effects of variables related to the hot/cold separation (Phot, Pcold, Bhot and Bcold) <ul><li>the best   values of P hot ,...
effects of  θ (warm block, # of valid pages) <ul><li>θ   =  0 </li></ul><ul><ul><li>none of the pages associated with   th...
N ormalized execution time varying the size of SLC area <ul><li>N SLC   increases, </li></ul><ul><ul><li>execution time de...
Comparison with previous FTL schemes <ul><li>bypassing technique </li></ul><ul><ul><li>improved up to 7% </li></ul></ul><u...
CONCLUSION <ul><li>The proposed scheme is based on the hybrid mapping FTL and utilizes the SLC area as a log buffer </li><...
Upcoming SlideShare
Loading in …5
×

Storage Architecture and Software Support for SLC/MLC ...

640 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
640
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Storage Architecture and Software Support for SLC/MLC ...

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

×