flash memory s/w overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... ·...
TRANSCRIPT
2지인정보기술
목차
플래시 메모리 개요
NOR vs. NANDNAND 플래시 메모리 개요
NAND 플래시 메모리 종류 및 특징
플래시 메모리 S/W 개요
FTL (Flash Translation Layer)플래시 파일 시스템
플래시 메모리 S/W의 신뢰성 확보 방법
결론
3지인정보기술
플래시 메모리 개요
플래시 메모리
전원 공급이 중단된 뒤에도 저장 데이터가 보존되는 메모리 반도체
한번 기록한 영역은 erase 한 뒤에 write 해야 하는 특성이 있음
플래시 메모리의 종류
NOR 타입 플래시 메모리
바이트 단위 어드레싱 가능 (ROM 처럼 동작)주로 코드 실행용으로 사용됨
Read 성능 측면에서 다소 유리
NAND 타입 플래시 메모리
페이지 단위 (read/write), 블록 단위 (erase) 어드레싱 (디스크처럼 동작)주로 데이터 저장용으로 사용됨
Write 성능, 집적도, 가격, 전력 소비, 수명 (erase cycles) 등에서 유리
대용량 저장장치 목적으로는 NAND 플래시 메모리가 주로 사용됨
4지인정보기술
NAND 플래시 메모리의 기본 구조
소블록 플래시 메모리 (조만간 단종 예정)16KB 크기의 블록들로 구성
각 블록은 32개의 페이지로 구성
각 페이지는 (512 + 16) byte로 구성
대블록 플래시 메모리128KB 크기의 블록들로 구성 (MLC NAND의 경우 256KB)각 블록은 64개의 페이지로 구성 (MLC NAND의 경우 128개)각 페이지는 (2048 + 64) byte로 구성
Page 0
Block 1Page 1
Page m-1
Block n-1Block 0
512 16
2048 64
소블록 페이지
대블록 페이지
Main Area Spare Area
5지인정보기술
확장된 NAND 플래시 메모리 구조
Multi-plane 구조
Multi-die 구조
Block 0
Block 1
Block 2
Block 3
Block 4
Block 5
Block 6
Block 7
Block 8
Block 9
Block 10
Block 11
Block n-4
Block n-3
Block n-2
Block n-1
Plane 0
Plane 1
Plane 2
Plane 3
각 plane 상으로동시(concurrent)
연산 가능
Die 0
(Chip 0)
Chip Enable 0
각 die 별로병렬(parallel)
연산 가능
Die 1
(chip 1)
Chip Enable 1
Multi-die Chip Package
Die 0
Chip Enable
각 die 별로교차(interleaved)
연산 가능
Die 1
Multi-die Chip Package
6지인정보기술
NAND 플래시 메모리의 기본 동작
Read page (chip #, block #, page #)~20 us
Write (program) page(chip #, block #, page #)~200 us
Erase block(chip #, block #)~2 ms
Copy-back page(chip #, target block #, target page #, source block #, source page #) ~200 us
PageRegister
Block 0 Block 1 Block n-1
Source
Destination
Write
Read
Copy-back Operation
7지인정보기술
NAND 플래시 메모리의 종류
부가 로직 유무에 따른 분류
Pure NAND플래시 메모리 셀들로만 구성됨
OneNAND (Samsung), mDoC (M-Systems), etc.플래시 메모리 셀 + SRAM + 컨트롤러
Booting 및 read/write buffering 목적으로 SRAM을 이용
컨트롤러에서 ECC (Error Correction Code) 처리
moviNAND (Samsung), etc.플래시 메모리 셀 + SRAM + 컨트롤러 + ROM컨트롤러 내 펌웨어에 FTL 기능 내장
사실상 메모리 카드와 동일한 장치
Cell 당 비트 수에 따른 분류
SLC (Single-Level Cell) NANDMLC (Multi-Level Cell) NAND
8지인정보기술
SLC NAND vs. MLC NAND
향후 대용량 플래시 메모리 저장장치는 MLC가 주도
Multi-chip interleaving 등의 기술로 속도 제약 극복
강화된 ECC 및 wear-leveling 기술 필요
약 10,000회약 100,000회블록당 최대 erase 횟수
14NOP
4-bit ECC1-bit ECC필요한 ECC (512 바이트당)
느림빠름속도
낮음높음가격
높음낮음집적도
> 1 (현 시점에서는 2)1메모리 셀당 비트 수
MLC NANDSLC NAND
9지인정보기술
NAND 플래시 메모리 제약 사항
Bit-Flip ErrorECC (Error Correction Code)를 사용하여 처리함
Bad BlockInitial bad block : 초기 배드 블록으로 spare 영역 내에 표식이 있음
Run-time bad block : write 또는 erase 실패 시 배드 블록으로 간주
일반적으로 예비 블록들 중 하나를 사용하여 배드 블록을 대체 처리
Wear-Leveling각 블록 별로 wear-out limit (max. erase cycles) 이 존재함
모든 블록이 골고루 wear-out 되도록 하여 사용 수명을 최대한 연장
NOP (Number of Partial Programming)각 페이지에 대해 허용되는 partial programming의 횟수
대블록 SLC NAND의 경우 4회, MLC NAND의 경우 1회
Sequential Page Write Requirement각 블록에 데이터를 write 할 때 페이지 오름차순으로 해야 함 (대블록 플래시)
10지인정보기술
NAND 플래시 메모리 성능 향상 기법
Copy-back Operation데이터 복사를 칩 내부에서 해결하여 데이터 전송 오버헤드를 줄임
SLC NAND 기준으로 2-bit ECC를 권고하고 있음
Multi-plane OperationMulti-plane 연산을 이용하여 병렬 수행 효과를 거둘 수 있음
Read, write (program), erase, copy-back 등에 대해 적용 가능
Cache Programming대블록 플래시 메모리의 경우 page register 외에 cache register가 있음
Double buffering 기법을 사용하여 current data에 대한 programming 스텝과 next data에 대한 transfer 스텝을 중첩 실행
Chip-level Interleaved Operations한 칩이 program 또는 erase 동작을 수행하는 동안, 다른 칩이 동시에program 또는 erase 동작을 수행하도록 하여 throughput 을 높임
11지인정보기술
목차
플래시 메모리 개요
NOR vs. NANDNAND 플래시 메모리 개요
NAND 플래시 메모리 종류 및 특징
플래시 메모리 S/W 개요
FTL (Flash Translation Layer)플래시 파일 시스템
플래시 메모리 S/W의 신뢰성 확보 방법
결론
12지인정보기술
플래시 메모리 S/W 개요
FTL (Flash Translation Layer)플래시 메모리를 가상의 블록 장치로 변환
Wear-leveling
Flash File System기존 파일 시스템 사용 가능
신뢰성 및 성능 개선을 위해 플래시 메모리 특성 고려
Flash Device Driver플래시 메모리에 대한 물리적인 접근 코드
배드 블록 처리, ECC 처리
Memory Card 제품군
Mobile Host 제품군
13지인정보기술
(Mobile Host를 위한) 플래시 메모리 S/W의 구성 1
Flash File System일반적인 파일 시스템 사용 가능
안정성 및 성능 향상을 위해 플래시메모리의 특징을 고려한 파일 시스템을사용하는 것이 바람직함
FTL (Flash Translation Layer)NAND 플래시 메모리가 하드디스크와같은 일반적인 블록 장치처럼 보이도록변환해 줌
Wear-leveling 기능을 수행함
Flash Device Driver플래시 메모리에 대한 물리적인 접근
Bad block 처리
ECC (Error Correction Code) 처리
NAND Flash Memory
Flash Device Driver
FTL
Flash File System
Applications
Ex) Zeen ZFS™, DataLight FlashFX™ + Reliance™, Samsung PocketStore + FAT,M-Systems TrueFFS™ + FAT, etc.
14지인정보기술
(Mobile Host를 위한) 플래시 메모리 S/W의 구성 2
Dedicated Flash File System플래시 메모리 전용으로 설계된 특별한파일 시스템
FTL의 기능을 포함함
일반적으로 LFS (Log-Structured File System) 형태로 설계됨
Flash Device Driver플래시 메모리에 대한 물리적인 접근
Bad block 처리
ECC (Error Correction Code) 처리NAND Flash Memory
Flash Device Driver
Dedicated Flash File System
Applications
Ex) Linux JFFS2, YAFFS, Qualcomm EFS™, etc.
15지인정보기술
다양한 구성 예
Flash Memory
Device Driver
FTL
FAT
Applications
Flash Memory
Device Driver
DedicatedFFS
Applications1 2 3 4
FTL + FATUMS 및 Memory Card 지원
FAT의 신뢰성 문제
ExamplesPocketStore + FATTrueFFS + FAT
FTL + Robust FATUMS 및 Memory Card 지원
FAT의 신뢰성 보완
Journaling Based
Transaction Based
ExamplesZFS-FTL + ZFS-FATPocketStore + TFAT
Flash Memory
Device Driver
FTL
Robust FAT
Applications
Flash Memory
Device Driver
FTL
Proprietary FS
Applications
FTL + Proprietary FSUMS 지원
UMS 영역 공유를 위해서는
별도 FAT 필요
Memory Card용 별도 FAT신뢰성 구현 가능
ExamplesFlashFX + Reliance
Dedicated FFSUMS를 위한 별도 FTLMemory Card용 별도 FATLFS 형태로 신뢰성 구현
ExamplesJFFS2, YAFFSEFS / EFS2
16지인정보기술
응용 예
NAND Flash Memory
Flash Device Driver
FTL (Flash Translation Layer)
FAT File System
Applications
Memory CardUSB
USB Device Driver Card Device Driver
UMS (USB Mass Storage)
17지인정보기술
FTL 개요
+Device Driver
Read Write Erase
File System
Read Sectors Write Sectors
Flash MemoryFlash Memory
Mismatch!
+Device Driver
Flash MemoryFlash Memory
FTL
+
Read Sectors Write Sectors
File System
Read Sectors Write Sectors
HDDHDD
18지인정보기술
FTL의 기본 기능
FTL의 기본 기능
주소 변환 : 논리 주소를 플래시 메모리에 대한 물리 주소로 변환
sector_read, sector_write 에 대해 atomicity 보장
Atomicity 란?어떤 operation 이 시스템에 가해졌을 때 해당 시스템의 상태가 다음과 같이 두 가지로만 정의될 수 있으면, atomic operation 이라 일컬어짐
Operation 이 가해지기 이전의 시스템 상태
Operation 이 완전히 종료된 이후의 시스템 상태
(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 물리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 물리페이지번호)
System
Operation [ O ] [ O ] [ X ]
19지인정보기술
Erase 직후
Power Failure 시Atomicity 보장 안됨
FTL 구현 1Fixed Mapping 방식
논리-물리 주소 간 관계 고정 (가장 간단한 구현 방법)
예 : 소블록 (512B page, 16KB block) 플래시 메모리에 대해(섹터 0) = (논리블록 0, 논리페이지 0) = (물리블록 0, 물리페이지 0)(섹터 2) = (논리블록 0, 논리페이지 2) = (물리블록 0, 물리페이지 2)(섹터 35) = (논리블록 1, 논리페이지 3) = (물리블록 1, 물리페이지 3)
문제점 : write 에 대해서 atomicity 가 보장 안됨
1
Block 0
...
초기상태
Block 0
...
2 Write Sec. 2
Page 2
Block 0
...
3 Write Sec. 2 again
Erase
Block 0
...
Page 2
Write
Power Failure
Write
(섹터번호) = (논리블록번호, 논리페이지번호) = (물리블록번호, 물리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) = (물리블록번호, 물리페이지번호)
20지인정보기술
FTL 구현 2Block-level Mapping 방식
논리블록번호와 물리블록번호 사이에 가변적 mapping 관계 존재
블록 내에서의 페이지번호는 고정
예 : 소블록 (512B page, 16KB block) 플래시 메모리에 대해
(섹터 0) = (논리블록 0, 논리페이지 0) (물리블록 236, 물리페이지 0)(섹터 2) = (논리블록 0, 논리페이지 2) (물리블록 236, 물리페이지 2)(섹터 35) = (논리블록 1, 논리페이지 3) (물리블록 80, 물리페이지 3)
Mapping 정보를 저장하는 Mapping Table 이라는 자료구조가 필요하며page-level mapping 방식에 비해 그 크기가 작다는 장점이 있음
(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)
21지인정보기술
FTL Block-Level Mapping블록 수준에서의 주소 재사상 (address re-mapping)
Original block Empty blockMapping table
1 Initial block address mapping
Mapping table
2 Update data (write new data) in an empty block
XX
Mapping table
3 Block address re-mapping
XX
X
Mapping table
4 Erase the original block (can be re-used now)
New block
New data
22지인정보기술
FTL Block-Level Mapping블록 병합 (merge) 오버헤드
블록 병합 오버헤드의 최소화가 FTL 성능 향상의 핵심
Original block Empty blockMapping table
1 Initial block address mapping
Mapping table
2 Update data (write new data) in an empty block
XX
Mapping table
3 Perform the merge operation 4 Block address re-mapping
New data
Mapping table
XX
Copy valid pages New block
23지인정보기술
FTL 구현 3Page-level Mapping 방식
논리블록번호와 물리블록번호 사이에 가변적 mapping 관계 존재
논리페이지번호와 물리페이지번호 사이에도 가변적 mapping 관계 존재
예 : 소블록 (512B page, 16KB block) 플래시 메모리에 대해
(섹터 0) = (논리블록 0, 논리페이지 0) (물리블록 95, 물리페이지 20)(섹터 2) = (논리블록 0, 논리페이지 2) (물리블록 236, 물리페이지 1)(섹터 35) = (논리블록 1, 논리페이지 3) (물리블록 95, 물리페이지 9)
Mapping Table 의 크기가 큰 반면, block-level mapping 방식에 비해random small write 에 대한 성능이 우수함
(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)
24지인정보기술
FTL Page-Level Mapping페이지 수준에서의 주소 재사상 (address re-mapping)
(A)(B)
Mapping table
1 Initial page address mapping for page (B)
(B)(C)
Mapping table
2 Update data (write new data) in an empty page
(A)X
(B)(C)
Mapping table
3 Page address re-mapping for page (B)
(A)X
(C)
X
25지인정보기술
FTL Page-Level Mapping쓰레기 수집 (garbage collection) 오버헤드
쓰레기 수집 오버헤드의 최소화가 FTL 성능 향상의 핵심
(A)
X(C)
Empty block
1 Number of empty blocks becomes short 2 Collect (copy) valid pages into an empty block
3 Page address re-mapping
X(B)
XXX
(B)(C)(A)
XXX
(B)
XX
(C)
(A)
(B)(C)(A)
XXXX
XX
X
X
(B)(C)(A)
Empty block Empty block
4 Erase invalid blocks (can be re-used now)
26지인정보기술
플래시 파일 시스템 개요
기존 파일 시스템을 사용하는 경우
별도의 FTL 필요
관련 산업계에서는 FAT 파일 시스템이 많이 사용되고 있음
모바일 환경을 고려하여 신뢰성을 보완할 필요가 있음
Zeen ZFS™ : FAT 호환이며 journaling 기반의 에러 복구 메커니즘 사용
Microsoft TFAT™ : transaction 기반의 FAT 파일 시스템
DataLight Reliance™ : transaction 기반의 FAT 비호환 파일 시스템
성능 개선의 핵심은 FTL의 오버헤드 최소화
플래시 메모리 전용 파일 시스템을 사용하는 경우
LFS (Log-Structured File System) 형태의 파일 시스템 (JFFS2, YAFFS, EFS)FTL 기능 포함
신뢰성이 높으나 아래와 같은 단점이 있음
파일 시스템 부팅에 적지 않은 시간이 소요됨 (수 초 ~ 수십 초)파일 시스템 트리 구조를 RAM 에 두어야 하기 때문에 RAM 요구량이 큼
27지인정보기술
목차
플래시 메모리 개요
NOR vs. NANDNAND 플래시 메모리 개요
NAND 플래시 메모리 종류 및 특징
플래시 메모리 S/W 개요
FTL (Flash Translation Layer)플래시 파일 시스템
플래시 메모리 S/W의 신뢰성 확보 방법
결론
28지인정보기술
플래시 파일 시스템의 신뢰성 확보 방법
핵심 아이디어
각 S/W 계층의 primitive operation에 대하여 상향식(bottom-up)으로atomicity 검증
NAND Flash Memory
Flash Device Driver
FTL (Flash Translation Layer)
Flash File System Atomicity 검증
Atomicity 검증
Atomicity 검증 상향식 검증
29지인정보기술
Atomic ?
S/W 계층별 Atomicity 검증이 필요한 이유 (예시)
Filesystem-Level Primitive Operation
sectorwrite
sectorwrite
sectorwrite
Atomicity Proven
FTL-Level Primitive Operations
filedeletion
Directo
ry Upd
ateFA
T U
pdat
e
FAT
Up d
a te
30지인정보기술
Atomicity 보장 방법
두 가지 방법
Forward Error Recovery (redo)Backward Error Recovery (undo)
Current State New State
Atomic Operation
Power Failure
Backward Error Recovery Forward Error Recovery
31지인정보기술
Backward Error Recovery (ZFS-FTL)
Current State New State
Write Sector Operation
Power Failure
possibly erase one free block
write new sector data
update map page
Power Failure
If power failure occurs after erase or even during erase, it is OK because the current data is kept safely
The block will be erased again when the data write is retried after reboot
Backward Error Recovery
If power failure occurs after data write or during map page update, it will be OK because the current map (thus the current data) is still kept safely
If there is an incompletely written map page, it will be ignored (undo)
32지인정보기술
Forward Error Recovery (ZFS Journaling FAT)
Current State New State
File Create Operation
write the operation log
execute the operation
Power Failure
If power failure occurs before the operation log is written completely, it is OK anyway because there’s no change in the file system meta data
The invalid log information will be just ignored after reboot
If power failure occurs during the file create operation, error recovery is required
After reboot, file creation specified in the last log is retried (redo)
It’s safe anyway!
Power Failure
Forward Error Recovery
33지인정보기술
플래시 파일 시스템의 검증
Functional TestAPI functional verificationParameter validity checkVerification of correct error propagation
Reliability TestStress testPower ON/OFF testFault injection test (emulation based)
Performance TestData read/write performanceMeta data read/write performanceRead/write performance for various utilization ratiosPerformance test in real-time environments
34지인정보기술
최근 기술 동향 및 결론
최근 기술 동향
대용량 저장 공간을 요구하는 모바일 응용의 확대
대용량 매체 시장을 MLC NAND가 주도
결론
대용량 고성능 어플리케이션 지원을 위한 플래시 메모리 S/W 및 플래시메모리 컨트롤러의 중요성 증대
임베디드 시스템의 개발 주기를 단축시키기 위한 효율적인 플래시 메모리 S/W 검증 방법의 중요성 증대 (cf. moviNAND)