An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems Li-Pin Change and Tei-Wei Kuo Speak...
Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Archit...
I/O parallelism <ul><li>The operation model of NAND flash </li></ul><ul><ul><li>Setup phase </li></ul></ul><ul><ul><ul><li...
Basic System Architecture <ul><li>MTD (Memory-Technology-Device) </li></ul><ul><ul><li>Provides functionality such as read...
Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Archit...
Multi-Bank Address Translation <ul><ul><li>The physical location of a logical block might change from time to time </li></...
Bank Assignment Policies <ul><li>Writes need a proper bank assignment policy to utilize the parallelism of multiple banks ...
Hot-Cold Identification Candidate list Hot list <ul><li>Two-Level LRU List </li></ul><ul><ul><li>Two fixed-length LRU list...
Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Archit...
Hot-Cold Separation <ul><ul><li>Minimizing the copying of hot-live pages </li></ul></ul><ul><ul><li>Pages that store hot d...
Block Recycling Policy <ul><li>When a run of garbage collection begins, the weight of each block is calculated by the foll...
Experimental Results <ul><li>The Performance metrics </li></ul><ul><ul><li>The soft real-time performance </li></ul></ul><...
 
 
Conclusion <ul><li>A striping architecture to introduce I/O parallelism </li></ul><ul><li>An adaptive striping-aware bank ...
Upcoming SlideShare
Loading in …5
×

An Adaptive Striping Architecture for Flash Memory Storage ...

358 views
275 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
358
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Multi-Bank 의 주소 변환 scheme 과 striping 구조를 위한 striping 정책을 소개 .
  • Busy Phase 는 시간을 많이 차지하지만 CPU 를 사용 안 함 . 여기선 ISA 를 이용해서 측정 . 그래도 Setup&lt;&lt;Busy 임을 알 수 있음 . 더 높은 속도의 bus 를 사용하면 Setup 은 더 줄고 .. Setup 이 줄 수록 병렬수행 능력은 더 증가함 .
  • MTD 는 단순히 block 되지 않으면 됨 . FTL 은 striping architecture 가 필요 .
  • Multi-Bank 의 주소 변환 scheme 과 striping 구조를 위한 striping 정책을 소개 .
  • 바뀌는 이유 : Out-Place Update 나 garbage collection 등으로 인해
  • 두 가지 striping 형태가 존재 .
  • Multi-Bank 의 주소 변환 scheme 과 striping 구조를 위한 striping 정책을 소개 .
  • 단순하면서 효과적임 .
  • 왜냐면 live page copying 을 유발하니까
  • 뱅크 수가 하나라 Parallelism 은 사용하지 못하지만 , 노란색은 garbage collection 정책이 효율적임을 나타냄 . Striping 과 garbage collection 의 tradeoff 를 나타냄 . Bank 수가 많을 수록 더 많은 Page Copy 를 유발함 . 줄이기 위해 block size 를 줄이거나… 전체적인 capacity utilization 을 줄이는 것 - 추가적인 메모리 용량으로 .
  • C 는 좋은 bus 를 사용하면 .. 4 bank 의 성능을 충분히 발휘 가능 하다는 것 ..
  • An Adaptive Striping Architecture for Flash Memory Storage ...

    1. 1. An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems Li-Pin Change and Tei-Wei Kuo Speaker : Jongseon Park
    2. 2. Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Architecture </li></ul><ul><ul><li>Multi-Bank Address Translation </li></ul></ul><ul><ul><li>Bank Assignment Policies </li></ul></ul><ul><ul><li>Hot-Cold Identification </li></ul></ul><ul><li>Garbage Collection Issues </li></ul><ul><ul><li>Hot-Cold Separation </li></ul></ul><ul><ul><li>A Block-Recycling Policy </li></ul></ul><ul><li>Experimental Results </li></ul><ul><li>Conclusion </li></ul>
    3. 3. I/O parallelism <ul><li>The operation model of NAND flash </li></ul><ul><ul><li>Setup phase </li></ul></ul><ul><ul><ul><li>E.g. The command, the address, and the data are written </li></ul></ul></ul><ul><ul><li>Busy phase </li></ul></ul><ul><ul><ul><li>For busy-waiting of the data being flushed into flash memory </li></ul></ul></ul><ul><li>Using the parallelism of multiple NAND banks </li></ul><ul><ul><li>If A dedicated latch and a decode logic are supported for each independent bank </li></ul></ul>
    4. 4. Basic System Architecture <ul><li>MTD (Memory-Technology-Device) </li></ul><ul><ul><li>Provides functionality such as read, write, and erase </li></ul></ul><ul><li>FTL (Flash-Translation-Layer) </li></ul><ul><ul><li>Provides transparent access for file systems and user applications via block device emulation </li></ul></ul>
    5. 5. Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Architecture </li></ul><ul><ul><li>Multi-Bank Address Translation </li></ul></ul><ul><ul><li>Bank Assignment Policies </li></ul></ul><ul><ul><li>Hot-Cold Identification </li></ul></ul><ul><li>Garbage Collection Issues </li></ul><ul><li>Experimental Results </li></ul><ul><li>Conclusion </li></ul>
    6. 6. Multi-Bank Address Translation <ul><ul><li>The physical location of a logical block might change from time to time </li></ul></ul><ul><ul><li>FTL driver adopt dynamic address translation mechanism to provide transparent data access </li></ul></ul><ul><ul><li>Using Address Translation Table in main memory </li></ul></ul><ul><ul><li>The status of a page </li></ul></ul><ul><ul><ul><li>Live, Dead, and Free </li></ul></ul></ul><ul><ul><li>When a Write is issued </li></ul></ul><ul><ul><li>->FTL Driver finds a free page </li></ul></ul><ul><ul><li>->writes the written data </li></ul></ul><ul><ul><li>->writes corresponding LBA </li></ul></ul>
    7. 7. Bank Assignment Policies <ul><li>Writes need a proper bank assignment policy to utilize the parallelism of multiple banks </li></ul><ul><li>FTL driver break the write request into a number of page writes </li></ul><ul><li>Static Striping </li></ul><ul><ul><li>Bank address = LBA % (number of banks) </li></ul></ul><ul><ul><li>Couldn’t provide even usage of banks </li></ul></ul><ul><ul><li>The locality of writes, and the uneven capacity utilization </li></ul></ul><ul><li>Dynamic Striping </li></ul><ul><ul><li>Identify the attributes (hot or cold) – to achieve “fairness” </li></ul></ul><ul><ul><li>Hot data -> Bank that has the smallest erase-count </li></ul></ul><ul><ul><li>Cold data -> Bank that has the lowest capacity utilization </li></ul></ul>
    8. 8. Hot-Cold Identification Candidate list Hot list <ul><li>Two-Level LRU List </li></ul><ul><ul><li>Two fixed-length LRU lists of LBA’s </li></ul></ul><ul><ul><li>Can determine the “hotness” of the written data very efficiently </li></ul></ul>New element with LBA is added if the LBA does not exist in any list. Element is discarded if the candidate list is full. Element is promoted if the LBA already exists in the Candidate list. Element is demoted if the hot list is full.
    9. 9. Contents <ul><li>I/O parallelism </li></ul><ul><li>Basic System Architecture </li></ul><ul><li>An Adaptive Striping Architecture </li></ul><ul><li>Garbage Collection Issues </li></ul><ul><ul><li>Hot-Cold Separation </li></ul></ul><ul><ul><li>A Block-Recycling Policy </li></ul></ul><ul><li>Experimental Results </li></ul><ul><li>Conclusion </li></ul>
    10. 10. Hot-Cold Separation <ul><ul><li>Minimizing the copying of hot-live pages </li></ul></ul><ul><ul><li>Pages that store hot data usually have a high chance to become dead in the near future </li></ul></ul><ul><ul><li>It could result in a serious degradation of the system performance </li></ul></ul><ul><ul><li>Storing hot data and cold data separately </li></ul></ul>
    11. 11. Block Recycling Policy <ul><li>When a run of garbage collection begins, the weight of each block is calculated by the following formula: </li></ul>
    12. 12. Experimental Results <ul><li>The Performance metrics </li></ul><ul><ul><li>The soft real-time performance </li></ul></ul><ul><ul><ul><li>The average response time of write request </li></ul></ul></ul><ul><ul><ul><li>To measure the efficiency of striping </li></ul></ul></ul><ul><ul><ul><li>It also reflect the efficiency of garbage collection indirectly </li></ul></ul></ul><ul><ul><li>The number of live page copyings </li></ul></ul><ul><ul><ul><li>It directly reflects the performance of garbage collection </li></ul></ul></ul><ul><li>The evaluation </li></ul><ul><ul><li>The first part – Under different bank configurations </li></ul></ul><ul><ul><li>The second part – Dynamic bank assignment versus a RAID-similar static bank assignment </li></ul></ul>
    13. 15. Conclusion <ul><li>A striping architecture to introduce I/O parallelism </li></ul><ul><li>An adaptive striping-aware bank assignment method to improve the performance of garbage collection </li></ul><ul><li>Simple but effective garbage collection policy </li></ul><ul><li>The tradeoff of striping and garbage collection </li></ul>

    ×