Lab Seminar A Multi-channel architecture for high-performance ...

640 views
535 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
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • NAND high w and e Than NOR
  • 32M SDRAM 64Mbyte NOR flash (OS) 4Gbyte … each CM 1 Gbyte
  • 1Gbit Flash Memory x 8 = 1Gbyte Flash Memory Buffer 2112 byte (large block)
  • Striping : 한 리퀘스트를 여러 개의 channel 에 분산 ( Intra-request Parallelism) (2+ Channel) Interleaving : 여러 개의 Request 를 여러 개의 Channel 로 분산 (Inter-request Parallelism ) (2+ Channel ) Pipelining : 두 Request 를 Overlap 한다 (Inter-request Parallelism ) ( One Channel )
  • Host interface 와 channel manager 가 동시에 운영될수 있기 때문에 , 우리는 동일한 channel manger 에 다른 버퍼를 사용하여 previous command 의 종료를 기다리지 않고 , 다음 command 를 보낼수 있다 .
  • A : read, b: write in 8K Striping 4, 73% for read 164% for write than w/o striping Request 사이즈를 변화시키면서 실험 DUMBO 와 nand flashchip 의 transfer time 만 줄여준다 . Request 사이즈가 작으면 Striping Level 을 높여도 만족할만한 Throughput 이 나오지 않는다 . 이유는 sub requst size 가 page size 보다 작게되고 , partial read(or program) op 가 수행된다 . Setup phase 와 busy phase 가 data size 에 상관없이 있으므로 partial read(program) 은 오버헤드가 크다 . 이 결과에서 striping technique 은 sub request 가 page 사이즈 보다 클때 효과적이다라는 사실을 알수 있다 . (4K 선택 ) Interleaving : 84%(read),197%(write) 1K 가 안좋은 이유도 ..partial read, write 때문이다 .
  • 72%(read) 37%(write) RD 가 RN보다 약간만 작으므로, RD와 RN을 동시에 하면, 성능이 많이 개선되는데 비해, Write의 경우는 WN이랑 NP가 WD에 비해 워낙 많이 걸려서 별로 성능향상이 없다.
  • Striping Level 이 높으면 , 리퀘스트 사이즈가 작을때 성능이 않좋다 . Service Time : Request 가 완료 될때까지의 시간 . AST 는 Striping 레벨이 높을수록 좋다 . 선택 . S2:I2 에 4K requst 이유는 첫번쨰 size sub requst of striping page 사이즈보다는 커야 한다 . 두번째는 request 사이즈가 4K 보다 작아야 하는데 , 대부분의 파일시스템의 디퐅트 uniz 사이즈가 4K 이고 , 많은 CPU 가 4K 를 디폴트 메모리 페이지 사이즈로 잡고 있기 때문이다 . 세번째는 Striping 레벨은 클수록 좋은데 , Service 타임을 줄여주기 때문이다 . 그래서 최종은 23.3MB/s 와 16.0MB/s , 2.3 , 3.6 times
  • Raw level = Throughput of all together Data transfer often interfere with the other CPU activity, such as exec of app code, os code, ftl code Sync : write() system call wait until the request is completed Small block size cannot fully exploit parallelism Async : os 가 buffer 에 write 리퀘스트를 쌓아놓은다음 한번에 처리한다 . Sync : interleaving 을 사용한 그룹간에 자신의 request 를 처리하기 위해서 CPU 를 경쟁한다 . 각 채널 매니저는 pipelining 을 처리하기 위해서 , program op 의 busy phase 를 busy wait 로 기다리기 때문에 오직 하나의 채널 매니저만 쓸수 있다 . 다른 채널 매지너는 딜레이 되게 되어있다 . Block size 가 커질수록 두 채널 매니저 그룹 사이의 경쟁은 악화되고 , request processing time 이 증가하게 된다 .
  • Lab Seminar A Multi-channel architecture for high-performance ...

    1. 1. A Multi-channel architecture for high-performance NAND flash-based storage system Jeong-Uk Kang et.al. (KAIST) Journal of System Architecture 2007,Vol 53 Speaker : Jaewoo Lee
    2. 2. Flash Memory : Basic <ul><li>NOR : code storage </li></ul><ul><ul><li>Random access capability </li></ul></ul><ul><ul><li>High read performance </li></ul></ul><ul><ul><li>Low write and erase performance </li></ul></ul><ul><ul><li>Expensive </li></ul></ul><ul><ul><li>Execute-in-place (XIP) </li></ul></ul><ul><li>NAND : data storage </li></ul><ul><ul><li>Higher write and erase performance </li></ul></ul><ul><ul><li>Low cost </li></ul></ul>
    3. 3. Flash Memory : New Technology <ul><li>Multi-Level Cell (MLC) technology </li></ul><ul><ul><li>Multiply the capacity of flash memory </li></ul></ul><ul><ul><li>Decrease the operation speed </li></ul></ul><ul><ul><li> high performance is challenging area </li></ul></ul><ul><li>Large Block ( compared to small block ) </li></ul><ul><ul><li># of page in each block : 32  64 </li></ul></ul><ul><ul><li>Each page consist of </li></ul></ul><ul><ul><ul><li>Main area : 512 byte  2048 byte </li></ul></ul></ul><ul><ul><ul><li>Spare area : 16 byte  64 byte </li></ul></ul></ul><ul><ul><li>Sequential programming restriction is added </li></ul></ul><ul><li>Multi-Channel Architecture </li></ul><ul><ul><li>Each channel can operate independently </li></ul></ul>
    4. 4. Objective <ul><li>High Performance NAND flash-based storage system </li></ul><ul><ul><li>In Multi-Channel Hardware Architecture </li></ul></ul><ul><ul><li>three optimization : exploit I/O Parallelism </li></ul></ul><ul><ul><ul><li>S triping </li></ul></ul></ul><ul><ul><ul><li>Interleaving </li></ul></ul></ul><ul><ul><ul><li>Pipelining </li></ul></ul></ul><ul><ul><li>Result </li></ul></ul><ul><ul><ul><li>S triping, Interleaving, Pipelining improve performance up to 164%, 62%, 197% </li></ul></ul></ul><ul><ul><ul><li>C ombining all the optimization results 3.6 times improvement </li></ul></ul></ul>
    5. 5. Multi-channel Architecture <ul><li>Prototype System based on Multi-Channel Architecture </li></ul>
    6. 6. Multi-channel Architecture <ul><li>Channel Manager </li></ul>
    7. 7. Timing of Read and Write Op <ul><li>Read Op </li></ul><ul><li>Write Op </li></ul>
    8. 8. Software Architecture <ul><li>Optimization which exploit I/O parallelism </li></ul><ul><ul><li>a: striping, b: Interleaving, c: pipelining </li></ul></ul>
    9. 9. Software Architecture : Striping
    10. 10. Software Architecture : Interleaving
    11. 11. Software Architecture : Pipelining Back
    12. 12. Software Architecture : All together
    13. 13. Result : Impact of Optimization <ul><li>Striping </li></ul><ul><li>Interleaving </li></ul>
    14. 14. Result : Impact of Optimization <ul><li>Pipeling </li></ul>
    15. 15. Result : All Together <ul><li>Throughput </li></ul><ul><li>Average Service Time </li></ul>S2:I2 Request Size 4K
    16. 16. Result : Overall Performance <ul><li>Throughput delivered to User-level Applications </li></ul><ul><ul><li>Read : 80% of raw , due to programmed I/O </li></ul></ul><ul><ul><li>Write : Sync – </li></ul></ul><ul><ul><li>Async - </li></ul></ul>Link
    17. 17. Conclusion <ul><li>This paper present </li></ul><ul><ul><li>High-performance NAND flash-based storage </li></ul></ul><ul><ul><li>Exploit I/O parallelism from multiple channel </li></ul></ul><ul><ul><li>Applied three optimization </li></ul></ul><ul><ul><ul><li>Striping </li></ul></ul></ul><ul><ul><ul><li>Pipelining </li></ul></ul></ul><ul><ul><ul><li>Interleaving </li></ul></ul></ul><ul><li>We find out </li></ul><ul><ul><li>Size of sub-request >= page size of NAND for striping </li></ul></ul><ul><ul><li>Request size is not related to the throughput of read and write op for interleaving </li></ul></ul><ul><li>Result </li></ul><ul><ul><li>3.6 times improvement to conventional single channel architecture </li></ul></ul>

    ×