flash memory s/w overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... ·...

34
Flash Memory S/W Overview 2007. 6. 26. 지인정보기술㈜ 김성관 ([email protected])

Upload: others

Post on 05-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

Flash Memory S/W Overview

2007. 6. 26.지인정보기술㈜

김성관 ([email protected])

Page 2: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

2지인정보기술

목차

플래시 메모리 개요

NOR vs. NANDNAND 플래시 메모리 개요

NAND 플래시 메모리 종류 및 특징

플래시 메모리 S/W 개요

FTL (Flash Translation Layer)플래시 파일 시스템

플래시 메모리 S/W의 신뢰성 확보 방법

결론

Page 3: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

3지인정보기술

플래시 메모리 개요

플래시 메모리

전원 공급이 중단된 뒤에도 저장 데이터가 보존되는 메모리 반도체

한번 기록한 영역은 erase 한 뒤에 write 해야 하는 특성이 있음

플래시 메모리의 종류

NOR 타입 플래시 메모리

바이트 단위 어드레싱 가능 (ROM 처럼 동작)주로 코드 실행용으로 사용됨

Read 성능 측면에서 다소 유리

NAND 타입 플래시 메모리

페이지 단위 (read/write), 블록 단위 (erase) 어드레싱 (디스크처럼 동작)주로 데이터 저장용으로 사용됨

Write 성능, 집적도, 가격, 전력 소비, 수명 (erase cycles) 등에서 유리

대용량 저장장치 목적으로는 NAND 플래시 메모리가 주로 사용됨

Page 4: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 5: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 6: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 7: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 8: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 9: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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 할 때 페이지 오름차순으로 해야 함 (대블록 플래시)

Page 10: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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 을 높임

Page 11: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

11지인정보기술

목차

플래시 메모리 개요

NOR vs. NANDNAND 플래시 메모리 개요

NAND 플래시 메모리 종류 및 특징

플래시 메모리 S/W 개요

FTL (Flash Translation Layer)플래시 파일 시스템

플래시 메모리 S/W의 신뢰성 확보 방법

결론

Page 12: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

12지인정보기술

플래시 메모리 S/W 개요

FTL (Flash Translation Layer)플래시 메모리를 가상의 블록 장치로 변환

Wear-leveling

Flash File System기존 파일 시스템 사용 가능

신뢰성 및 성능 개선을 위해 플래시 메모리 특성 고려

Flash Device Driver플래시 메모리에 대한 물리적인 접근 코드

배드 블록 처리, ECC 처리

Memory Card 제품군

Mobile Host 제품군

Page 13: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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.

Page 14: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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.

Page 15: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 16: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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)

Page 17: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 18: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

18지인정보기술

FTL의 기본 기능

FTL의 기본 기능

주소 변환 : 논리 주소를 플래시 메모리에 대한 물리 주소로 변환

sector_read, sector_write 에 대해 atomicity 보장

Atomicity 란?어떤 operation 이 시스템에 가해졌을 때 해당 시스템의 상태가 다음과 같이 두 가지로만 정의될 수 있으면, atomic operation 이라 일컬어짐

Operation 이 가해지기 이전의 시스템 상태

Operation 이 완전히 종료된 이후의 시스템 상태

(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 물리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 물리페이지번호)

System

Operation [ O ] [ O ] [ X ]

Page 19: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

(섹터번호) = (논리블록번호, 논리페이지번호) = (물리블록번호, 물리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) = (물리블록번호, 물리페이지번호)

Page 20: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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 방식에 비해 그 크기가 작다는 장점이 있음

(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)

Page 21: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 22: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 23: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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 에 대한 성능이 우수함

(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)(섹터번호) = (논리블록번호, 논리페이지번호) (물리블록번호, 논리페이지번호)

Page 24: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 25: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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)

Page 26: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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 요구량이 큼

Page 27: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

27지인정보기술

목차

플래시 메모리 개요

NOR vs. NANDNAND 플래시 메모리 개요

NAND 플래시 메모리 종류 및 특징

플래시 메모리 S/W 개요

FTL (Flash Translation Layer)플래시 파일 시스템

플래시 메모리 S/W의 신뢰성 확보 방법

결론

Page 28: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

28지인정보기술

플래시 파일 시스템의 신뢰성 확보 방법

핵심 아이디어

각 S/W 계층의 primitive operation에 대하여 상향식(bottom-up)으로atomicity 검증

NAND Flash Memory

Flash Device Driver

FTL (Flash Translation Layer)

Flash File System Atomicity 검증

Atomicity 검증

Atomicity 검증 상향식 검증

Page 29: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 30: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

30지인정보기술

Atomicity 보장 방법

두 가지 방법

Forward Error Recovery (redo)Backward Error Recovery (undo)

Current State New State

Atomic Operation

Power Failure

Backward Error Recovery Forward Error Recovery

Page 31: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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)

Page 32: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 33: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

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

Page 34: Flash Memory S/W Overviewcfs5.tistory.com/upload_control/download.blog?fhandle=... · 2015-01-22 · Flash Memory Device Driver FTL Proprietary FS Applications XFTL + Proprietary

34지인정보기술

최근 기술 동향 및 결론

최근 기술 동향

대용량 저장 공간을 요구하는 모바일 응용의 확대

대용량 매체 시장을 MLC NAND가 주도

결론

대용량 고성능 어플리케이션 지원을 위한 플래시 메모리 S/W 및 플래시메모리 컨트롤러의 중요성 증대

임베디드 시스템의 개발 주기를 단축시키기 위한 효율적인 플래시 메모리 S/W 검증 방법의 중요성 증대 (cf. moviNAND)