Jeong-Uk Kang*, Jin-Soo Kim, Chanik Park, Hyoungjun Park, Joonwon Lee

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

1/15 16 기 장영일 Ext File System. 2/15 처음에 Minix 가 사용되었다 ( 제약사항 ) 최대로 저장할 수 있는 파일의 크기 – 64M : 16bit 정수로 블록 주소 지정 -> 1024( 블록 기본 사이즈 ) * (2^16) = 64M.
한상욱, 이성진 (shanehahn, 고급 내장형 시스템 Lab3: Compression-Aware FTL 서울대학교 컴퓨터공학부 임베디드 시스템 연구실.
Issues in Flash Memory. Contents  Flash Memory 개요  FTL (Flash Translation Layer)  S/W 연구분야의 이슈.
2009 특허청 차세대 스토리지 연구회 세미나 NAND Flash 기술현황 및 SSD NAND Flash 기술현황 및 SSD Ki-Tae Park Ph.D Principal Engineer Flash Design Team Samsung Electronics.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
1. 발명의 명칭 SSD-ODD 결합된 장치에서 Optical Disc의 Defect Management방법 2. 발명의 분야
When Poll is Better than Interrupt
2010 – 06 – 24 주간 보고서.
ISA 심화 및 start.S code 분석 SIOR 15th 최재훈.
Linux Debugging issues
AMBA BUS Protocol의 이해 (AMBA 2.0 Specification)
소프트웨어와 운영체제.
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
제 2장 컴퓨터 구조.
13장. 시스템 버스 다루는 내용 시스템 버스의 개념 다중버스 계층 구조 버스 중재.
C Language Referance 00장 정보통신 공학
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
윈도우즈 파일 시스템에서 플래시 메모리의 FTL(Flash Translation Layer) 알고리즘 성능 분석
10장 주변장치 (PIO) Slide 1 (of 28).
7장 : 캐시와 메모리.
임베디드 하드웨어 Lecture #6.
Linux를 이용한 Embedded 장비 개발
DSP와 TMS320F28x의 이해.
TSV Testing challenges [한국테스트학술대회 Tutorial]
Unix Project2 <test character device 생성>
Unix Project-Final <test character device 생성>
6장. 기 억 장 치 Lecture #6.
특수조명 Program Manual M.D.I Solution
컴퓨터 구조.
Chapter 02 시스템 구조(System Structure)
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Embedded System Porting (2)
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
Chapter 10. Interrupt.
2장 운영 체제의 개요 운영체제의 개념 운영체제의 유형 운영체제의 발전 과정 운영체제의 구성 운영체제 서비스 시스템 구조
CAVE : Channel-Aware Buffer Management Scheme for Solid State Disk
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
제 3 장 Memory - SRAM.
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
Xen and the Art of Virtualization
Chapter 10. 파일 시스템 인터페이스(File System Interface)
파일 시스템 인터페이스(File System Interface)
8051기반의 음성 인식 프로세서 설계 Chang-Min Kim and Soo-Young Lee
Microprocessor I/O Port & CLCD Noh Jin-Seok.
Fault Diagnosis for Embedded Read-Only Memories
Computer System Architecture
컴퓨터 시스템 개관 시스템 프로그래밍 - Lecture #1 신라대학교 컴퓨터공학과 시스템 프로그래밍.
디 지 털 공 학 한국폴리텍V대학.
Cache Manager Yonghyun Kim Microsoft MVP Dev 5 team leader, ESTsoft
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Design of Flash-Based DBMS: An In-Page Logging Approach
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
분산 파일 시스템의 구조 GFS 와 CEPH SW공학센터 융합SW공학팀 장원석 책임 연구원
13장 CTC and DMA Slide 1 (of 10).
UNIT 21 Flash Memory Controller 로봇 SW 교육원 조용수.
Chapter 12 Memory Organization
CHAPTER 04 파일 설계(FiLE Design).
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
제 3 장 운영체제와 입출력 방식 Section 1 입출력 기능 Section 2 입출력 방식 Section 3 입출력 버퍼링
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
데이터 베이스의 내부 구조.
Observer (intrusion detection system)
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
가상 기억장치 (Virtual Memory)
Presentation transcript:

Jeong-Uk Kang*, Jin-Soo Kim, Chanik Park, Hyoungjun Park, Joonwon Lee A multi-channel architecture for high-performance NAND flash-based storage system Jeong-Uk Kang*, Jin-Soo Kim, Chanik Park, Hyoungjun Park, Joonwon Lee

Agenda Introduce Background Multi-channel architecture Evaluation Read Operation Write Operation Software Architecture Stripping Interleaving Pipelining Combined System Evaluation Conclusion Appendix

각 Flash 칩의 성능이 낮기 때문에 병렬화가 중요하다. Introduction (1/2) Flash Memory의 처리속도 (K9LAG08U0M) Write: Register 복사 시간(twc X 256) + program 시간(tprog) 약 2.4MBps Read: Page 읽는 시간(tread) + Register 복사 시간(trc X 256) 약 28.8MBps  256 = 2048 Byte (page size) / 8 bit (bus width) 각 Flash 칩의 성능이 낮기 때문에 병렬화가 중요하다.

Introduction (2/2) 그럼 어떻게? Stripping Interleaving Pipelining #1-A Request #3 Request #2 Request #1 Request #1 #1-B Request #2 #2 Request #3 Request #1 #1 Request #2 Request #3 Request #1

Background NAND Flash memory Total size: 128MB (1024 Blocks) Block Size: 64 pages Page Size: 2048B with 64B spare size Operation Write, Read, Erase Features Erase before write Program/erase cycle: 10,000~1,000,000 Read delay: 10~25us Program delay: 200 ~ 700us Erase delay: 2~3ms Data transfer: 50us (8 or 16 bit bus band width)

Multi-channel architecture Host DUMBO CTR Channel Manager CPU INT Channel Manager NOR FLASH Host interface Channel Manager SDRAM Channel Manager Data 32 Channel Manager INT Control Logic NAND Interface NAND Flash CTR 32 Buffer 1 DATA 32 Buffer 2 DATA 16

Read Operation Interrupt Read Data (RD) HOST Read Set (RS) DUMBO Setup NAND Busy Data Transfer Read from NAND (RN)

Write Operation Write Data (WD) Interrupt Write Confirm (WC) HOST Write Set (WS) DUMBO NAND Program (NP) Data transfer Setup NAND BUSY Write to NAND (WN)

Software Architecture I/O Subsystem (Request Queue Management) Block Device Driver KERNEL Flash Translation Layer (FTL) Low-level Device Driver (I/O Scheduler, Interrupt Handler) File System Data DUMBO FTL method: Hybrid (구체적인 구현 방법에 대하여 기술 안 함) Garbage Collection: 없음

Stripping RS RN RD RS RN RD RS RN RD WD WS WN WC NP WD WS WN WC NP WD without stripping RS RN RD Channel Manager RS RN RD with stripping Channel Manager#1 RS RN RD Channel Manager#2 without stripping WD WS WN WC NP Channel Manager WD WS WN WC NP with stripping Channel Manager#1 WD WS WN WC NP Channel Manager#2

Interleaving RS RN RD RS RN RD RS RN RD RS RN RD WD WS WN WC NP WD WS without interleaving Channel Manager RS RN RD with interleaving Channel Manager#1 RS RN RD Channel Manager#2 WD WS WN WC NP WD WS WN WC NP without interleaving Channel Manager WD WS WN WC NP with interleaving Channel Manager#1 WD WS WN WC NP Channel Manager#2

Pipelining RS RN RD RS RN RD RS RN RD RS RN RD WD WS WN WC NP WD WS WN without pipelining Channel Manager with pipelining RS RN RD Buffer#1 Channel Manager RS RN RD Buffer#2 WD WS WN WC NP WD WS WN WC NP without pipelining Channel Manager with pipelining WD WS WN WC NP Buffer#1 Channel Manager WD WS WN WC NP Buffer#2

Combined system Request Interleaving Striping Pipelining Example) #2-1 #4-1 #2-2 #4-2 Request #4 Request #2 Request #4 Request #2 Request #3 Request #1 Request #3 Request #1 #2-1 #4-1 #2-2 #4-2 Request Interleaving Striping Pipelining Example) Write: 2.4 X 8 = 19.2MBps Read: 28.8 X 8 = 230.4MBps

Evaluation (1/3) STRIPPING INTERLEAVING PIPELINIG READ WRITE SLC의 NOP를 활용한 것이 아니라면 문제가 있다. PIPELINIG ?

Evaluation (2/3) Putting it all together Selection is S2:I2. 4KB에서 가장 좋은 결과를 나타낼 수 있음 - Stripping의 Sub-request의 크기가 Page 크기보다 큼 - 대부분의 파일 시스템의 최대 요청 크기를 4KB단위로 함  최대 성능: 23.3MBps, 16.0MBps

Evaluation (3/3) Block Device Driver

Conclusion 단일 채널 보다 약 3.6배 빠르게 처리 할 수 있었다. Ideal한 성능에 80%밖에 미치지 못하였다. DMA를 쓰면 개선할 수 있을 것이다. Real work-load에 대한 실험이 필요하다.

Appendix

Issues 무엇이 병렬화를 어렵게 하는가? Minor issues Mapping Algorithm 읽기 병렬화를 위해서는 병렬로 기록되어 있어야 한다. Hybrid의 Mapping방법은 병렬기록을 하기 위하여 Sequential Block의 성공률이 낮아진다.  Block mapping으로 전락 Page mapping은 병렬화는 손쉽게 가능하나 Garbage Collection이 효율적이지 못하다. Minor issues 읽고 쓰기가 다른 버퍼 메모리 병렬화로 인하여 버려지는 공간에 대하여 고려하지 않음 FLASH에 기록하면서 한번에 기록할 것을 두 번에 기록하는데 느려지지 않음 오히려 빨라짐 파일 시스템에서의 기록 단위가 4KB라고 해서 장치에 4KB 단위로 기록되는 것이라고 판단 Channel Manager 내 다른 Flash에 대한 동시 Program이 불가 EXT4와 같은 종래의 파일시스템 기반 실험이 아닌 것으로 판단 Kernel에 FTL이 존재 부분 구현된 FTL에 코드 양으로 부하 측정 Mapping 및 Garbage Collection방법 부재 A. Ban, Flash file system, United States Patent No. 5,404,485, April 1995. 는 Garbage Collection에 대한 내용이 없음

2KB (Page Size) X twc (8bit wired) Plane Parallelism (1/2) Sector Copy to Register Cell program 93ms 2KB (Page Size) X twc (8bit wired) 800ms Atomic write를 보장하여야 함 (CPU Intensive operation) 전원이 꺼지면 데이터 삭제됨 CPU와 상관없이 독립적으로 데이터 기록 Cell기록이 완료되면 전원에 상관없이 데이터를 기록함  Register Write Speed: 35.7MB/S  Actual Write Speed: 4.3MB/S

Plane Parallelism (2/2) 1172ms=13.3MB/S 4ch Flash 13.3 X 4 = 55.4MB/S Copy to Register Copy to Cell Copy to Register Copy to Cell Copy to Register Copy to Cell Copy to Register Copy to Cell 1172ms=13.3MB/S Copy to Register Copy to Cell 4ch Flash Copy to Register Copy to Cell Copy to Register Copy to Cell Copy to Register Copy to Cell 13.3 X 4 = 55.4MB/S

References K9XXG08UXM Datasheet, Samsung Electronics