On Efficient Wear Leveling for Large-Scale Flash-Memory Storage Systems Li-Pin Chang Department of Computer Science, Natio...
Introduction <ul><li>Attractive features of flash memory </li></ul><ul><ul><li>Small size </li></ul></ul><ul><ul><li>Fast ...
<ul><li>To update the data in flash memory,  </li></ul><ul><ul><li>All data in the block is copied to a system buffer  </l...
Out-Place-Update <ul><li>To address the problem of in-place-update, out-place-update is exploited  </li></ul><ul><ul><li>T...
Hot and Cold Data  <ul><li>As hot data and cold data differently wear flash memory, its overall lifespan could be unexpect...
A dual-pool algorithm <ul><li>dual-pool for wear leveling </li></ul>H p H p H p H p H p ... Hot pool C p C p C p C p ... C...
<ul><li>Dirty Swap (DS) </li></ul><ul><ul><li>On the completion of a write request, the following condition is checked: </...
A dual-pool algorithm <ul><li>Dirty Swap (DS) </li></ul>H p H p H p H p H p ... Hot pool C p C p C p C p ... Cold pool H +...
A dual-pool algorithm <ul><li>Dirty Swap (DS) </li></ul>H p H p H p H p ... Hot pool C p C p C p C p ... Cold pool H + (Q ...
<ul><li>Adaptive pool resizing </li></ul><ul><ul><li>Hot-Pool Resize(HPR):  On the completion of a write request, block  H...
<ul><li>Random Priority Queues : Bit-Pyramid  RPQ </li></ul><ul><ul><li>A pyramid RPQ is of a bit pyramid and a linear arr...
Performance Evaluation (65,536 items)
Conclusion <ul><li>This paper aims at both the two issues </li></ul><ul><ul><li>Poor wear-leveling, Low scalability </li><...
Conclusion <ul><li>This paper aims at both the two issues </li></ul><ul><ul><li>Poor wear-leveling, Low scalability </li><...
Garbage collection procedure <ul><li>Select a victim block to clean </li></ul><ul><li>Copy valid pages in the victim block...
Upcoming SlideShare
Loading in …5
×

On Efficient Wear Leveling for Large-Scale Flash-Memory ...

682 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
682
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

On Efficient Wear Leveling for Large-Scale Flash-Memory ...

  1. 1. On Efficient Wear Leveling for Large-Scale Flash-Memory Storage Systems Li-Pin Chang Department of Computer Science, National Chiao-Tung University, Hsin-Chu, Taiwan 2008-02-15 Speaker: Kwon, Ohhoon ACM Symposium on Applied Computing 2007
  2. 2. Introduction <ul><li>Attractive features of flash memory </li></ul><ul><ul><li>Small size </li></ul></ul><ul><ul><li>Fast access speed </li></ul></ul><ul><ul><li>Shock resistance </li></ul></ul><ul><ul><li>Light weight </li></ul></ul><ul><li>Characteristics </li></ul><ul><ul><li>Write is not allowed before erasing </li></ul></ul><ul><ul><li>The number of erase operations is limited (100,000) </li></ul></ul><ul><ul><li>Asymmetry in read and write speeds </li></ul></ul><ul><ul><ul><li>Erase(100X) > Write(5X) > Read(1X) </li></ul></ul></ul><ul><ul><li>Asymmetry in read/write and erase size </li></ul></ul><ul><ul><ul><li>Read/write : page </li></ul></ul></ul><ul><ul><ul><li>Erase : block </li></ul></ul></ul>
  3. 3. <ul><li>To update the data in flash memory, </li></ul><ul><ul><li>All data in the block is copied to a system buffer </li></ul></ul><ul><ul><li>The data is updated in system buffer </li></ul></ul><ul><ul><li>The block on flash memory has been erased, </li></ul></ul><ul><ul><li>all data must be written back from system buffer to the block. </li></ul></ul><ul><li>Therefore, updating even one byte data requires one slow erase and several write operations. </li></ul>In-Place-Update Flash Memory  erase  update  read  write block block block block Update this data
  4. 4. Out-Place-Update <ul><li>To address the problem of in-place-update, out-place-update is exploited </li></ul><ul><ul><li>The page only is copied to a system buffer </li></ul></ul><ul><ul><li>The data is updated in system buffer </li></ul></ul><ul><ul><li>The page is written at the other place on flash memory </li></ul></ul><ul><ul><li>The orignal page is marked as invalid </li></ul></ul><ul><li>Garbage collection is performed to translate invalid page to free page </li></ul>Flash Memory  update  write  read buffer block block block block Update this data
  5. 5. Hot and Cold Data <ul><li>As hot data and cold data differently wear flash memory, its overall lifespan could be unexpectedly short under such workload. </li></ul><ul><li>Wear leveling refers to system activities in order to lengthen the overall lifespan </li></ul>block block block block block block block block block
  6. 6. A dual-pool algorithm <ul><li>dual-pool for wear leveling </li></ul>H p H p H p H p H p ... Hot pool C p C p C p C p ... Cold pool ( Dual-pool ) ( None)
  7. 7. <ul><li>Dirty Swap (DS) </li></ul><ul><ul><li>On the completion of a write request, the following condition is checked: </li></ul></ul><ul><ul><li>Step 1. Data on alll live pages in block H + (Q HP ) are copied to some other free pages </li></ul></ul><ul><ul><li>Step 2. Erase block H + (Q HP ) </li></ul></ul><ul><ul><li>Step 3. Copy data on all live pages from block H - (Q CP ) to block H + (Q HP ) </li></ul></ul><ul><ul><li>Step 4. Erase block H - (Q CP ) </li></ul></ul><ul><ul><li>Step 5. Swap block H + (Q HP ) and block H - (Q CP ) in terms of their pool associations. </li></ul></ul>A dual-pool algorithm
  8. 8. A dual-pool algorithm <ul><li>Dirty Swap (DS) </li></ul>H p H p H p H p H p ... Hot pool C p C p C p C p ... Cold pool H + (Q HP ) H - (Q CP ) 8 3 - > 4 Dirty Swap (DS) should be now performed
  9. 9. A dual-pool algorithm <ul><li>Dirty Swap (DS) </li></ul>H p H p H p H p ... Hot pool C p C p C p C p ... Cold pool H + (Q HP ) H - (Q CP ) H + (Q HP ) H p H - (Q CP ) H + (Q CP ) H - (Q HP ) Free block
  10. 10. <ul><li>Adaptive pool resizing </li></ul><ul><ul><li>Hot-Pool Resize(HPR): On the completion of a write request, block H - (Q HP ) is moved from the hot pool to the cold pool if the following condition is checked: </li></ul></ul><ul><ul><li>Cold-Pool Resize(CPR): On the completion of a write request, block H + (Q CP ) is moved from the cold pool to the hot pool if the following condition is checked: </li></ul></ul>A dual-pool algorithm * Effective Erase Cycle(EEC): how many time a block is erased since the last time the block is involoved in DS
  11. 11. <ul><li>Random Priority Queues : Bit-Pyramid RPQ </li></ul><ul><ul><li>A pyramid RPQ is of a bit pyramid and a linear array </li></ul></ul><ul><ul><li>Indexes of the linear array stand for keys of items, and each slot of the ar r ay contains the priority of an item. </li></ul></ul>A dual-pool algorithm
  12. 12. Performance Evaluation (65,536 items)
  13. 13. Conclusion <ul><li>This paper aims at both the two issues </li></ul><ul><ul><li>Poor wear-leveling, Low scalability </li></ul></ul><ul><li>A novel algorithm is proposed based on two new ideas </li></ul><ul><ul><li>To cease the wearing of a frequently erased block by storing cold data in it </li></ul></ul><ul><ul><li>To leave alone blocks just involved in wear leveling. </li></ul></ul><ul><li>Based on a newly proposed data structure, a highly scalable implementation of the proposed algorithm is presented. </li></ul>
  14. 14. Conclusion <ul><li>This paper aims at both the two issues </li></ul><ul><ul><li>Poor wear-leveling, Low scalability </li></ul></ul><ul><li>A novel algorithm is proposed based on two new ideas </li></ul><ul><ul><li>To cease the wearing of a frequently erased block by storing cold data in it </li></ul></ul><ul><ul><li>To leave alone blocks just involved in wear leveling. </li></ul></ul><ul><li>Based on a newly proposed data structure, a highly scalable implementation of the proposed algorithm is presented. </li></ul>
  15. 15. Garbage collection procedure <ul><li>Select a victim block to clean </li></ul><ul><li>Copy valid pages in the victim block to free block </li></ul><ul><li>Erase the victim block </li></ul>block block block block block block <ul><li>Select a victim block </li></ul><ul><li>copy out valid pages </li></ul><ul><li>erase the victim block </li></ul>

×