tutorial ftl - androbenchcsl.skku.edu › uploads › ice3028s13 › lab3-tutorial.pdf ·...

25
Jinyong Ha([email protected]) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Tutorial FTL

Upload: others

Post on 27-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

Jinyong Ha([email protected])

Computer Systems Laboratory

Sungkyunkwan University

http://csl.skku.edu

Tutorial FTL

Page 2: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 2

Contents

▪ NAND Flash Memory

▪ NAND Flash Operation

▪ NAND Flash Configuration

▪ NAND Controller

▪ Tutorial FTL

Page 3: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 3

Schedule

Date Title

3/11 (Mon) Intro. to the Jasmine OpenSSD Platform

3/18 (Mon) Dummy FTL

3/25 (Mon) Tutorial FTL

4/1 (Mon) Greedy FTL

4/8 (Mon) Reliability Issues

4/15 (Mon) Project #1

4/29 (Mon) Project #1 Q&A, Kernel-Based FTL

5/5 (Mon) Project #2 Suggestions

5/27 (Mon) Project #2 Progress Report

6/10 (Mon) Project #2 Presentation

Page 4: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 4

NAND Flash Memory

▪ K9LCG08U1M (Dual die)

• Samsung 35 nm 2-bit MLC flash

• 16 sectors per page (8 KB + 640 B)

• 128 pages per block (1 MB + 80 KB)

• 4096 + 56 blocks per die

• Page read : 250 us

• Page program : 1.3 ms

• Block erase : 1.5 ms

Page 5: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 5

NAND Flash Memory

▪ NAND Flash Code Information

• http://www.samsung.com/global/business/semiconductor/support/label-code-info/code-info/memory-component

Page 6: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 6

0

NAND Flash Memory

▪ NAND Flash Organization

Page Buffer

0

2

4

4150

Die

1 (“H

igh”)

Pla

ne 0

Die

0 (“L

ow

”)

Page Buffer

1

3

5

4151

Pla

ne 1

Block

Page 7: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 7

NAND Flash Memory

▪ NAND Flash Organization

0

1

2

127

Data (8KB) Spare (640B)

Block (1MB + 80KB)

Page (8KB + 640B)

Page 8: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 8

NAND Flash Operation

▪ Page read

• Cell -> Page Buffer -> RAM

▪ Page program

• RAM -> Page Buffer -> Cell

▪ Page copy-back

• Cell (Src) -> Page Buffer -> Cell (Dst)

▪ Block erase

Page 9: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 9

NAND Flash Configuration

▪ Channel / Bank (Way)

8 Bank

4 C

hannel

Page 10: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 10

NAND Flash Configuration

▪ Banks share the same IO bus

▪ Each bank can perform cell operation in parallel

• Cell to Page Buffer operation, Block erase

▪ Barefoot has only 4 R/B signal inputs per channel

• A0 and A4 are tied together

• Maximum 4 way interleaving

Page 11: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 11

NAND Flash Configuration

Ch A/BBank 0(4)

Ch C/DBank 3(7)

Ch A/BBank 2(6)

Ch C/DBank 1(5)

Ch A/BBank 1(5)

Ch A/BBank 3(7)

Ch C/DBank 2(6)

Ch C/DBank 0(4)

Page 12: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 12

NAND Flash Configuration

▪ 2 Plane operation, 16 bit IO program

• 33 44 55 66 ………… 77 88 99 AA …………

Die 0 (Low) Die 1 (High)

Plane 0 Plane 1 Plane 0 Plane 1

... ... ... ...

77 99 .. 88 AA ..44 66 ..33 55 ..

Block 0 Block 1 Block 0 Block 1

16KB 16KB

Page 13: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 13

NAND Flash Controller

▪ To issue NAND Flash operation

• Defined in ./include/flash.h

FC_COL_ROW_READ_OUTFC_COL_ROW_IN_PROGFC_COPYBACK

FO_PFO_EFO_B_SATA_WFO_B_SATA_R

Page 14: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 14

NAND Flash Controller

▪ To issue NAND Flash operation

Page 15: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 15

Tutorial FTL

▪ ./ftl_tutorial

• ftl.c, ftl.h

▪ Page Mapping FTL

• Write data from DRAM to NAND

• Read data from NAND to DRAM

• But no garbage collection

Page 16: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 16

Page Mapping Table

▪ LPN to PPN map

• LPN: Logical Page Number

- LPN = LBA / Sectors Per Page

• PPN: Physical Page Number

Index 0 1 2 3 … 2097151

Value 100 256 0 INVALID … 20000

Page 17: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 17

Read Operation

Page 18: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 18

Write Operation

▪ ./ftl_tutorial/ftl.c

Page 19: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 19

Write Operation

▪ ./ftl_tutorial/ftl.c

Page 20: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 20

Write Operation

▪ ./ftl_tutorial/ftl.c

Page 21: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 21

NAND Flash Operation

▪ ./target_spw/flash_wrapper.c

Page 22: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 22

NAND Flash Operation

▪ ./target_spw/flash.c

Page 23: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 23

NAND Flash Operation

▪ ./target_spw/flash.c

Page 24: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 24

Error Handling

▪ ./ftl_tutorial/ftl.c

ftl_open()

Page 25: Tutorial FTL - AndroBenchcsl.skku.edu › uploads › ICE3028S13 › lab3-tutorial.pdf · 2013-03-22 · ICE3028: Embedded Systems Design (Spring 2013) –Jin-Soo Kim (jinsookim@skku.edu)

ICE3028: Embedded Systems Design (Spring 2013) – Jin-Soo Kim ([email protected]) 25

Any Questions?