file system support on multi level cell (mlc) flash in open source

23
File system support on File system support on Multi Level Cell (MLC) Multi Level Cell (MLC) flash in open source flash in open source April 17, 2008 Kyungmin Park Software Laboratories Samsung Electronics

Upload: kevin-vargas

Post on 31-Dec-2015

20 views

Category:

Documents


0 download

DESCRIPTION

File system support on Multi Level Cell (MLC) flash in open source. April 17, 2008 Kyungmin Park Software Laboratories Samsung Electronics. Contents. Introduction Multi Level Chip (MLC) Current status Known Issues Patents Consideration in JFFS2 Summary References. Introduction. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: File system support on Multi Level Cell (MLC) flash in open source

File system support on Multi File system support on Multi Level Cell (MLC) flash in Level Cell (MLC) flash in

open sourceopen source

File system support on Multi File system support on Multi Level Cell (MLC) flash in Level Cell (MLC) flash in

open sourceopen source April 17, 2008Kyungmin Park

Software LaboratoriesSamsung Electronics

Page 2: File system support on Multi Level Cell (MLC) flash in open source

2/23

ContentsContents

IntroductionMulti Level Chip (MLC)Current statusKnown IssuesPatentsConsideration in JFFS2SummaryReferences

Page 3: File system support on Multi Level Cell (MLC) flash in open source

3/23

IntroductionIntroduction

It’s not coverFlash propertiesWrite/read disturbHardware issuesController embedded

It’s talking about the MLC software itselfHow to use MLC flash directly?What’s the consideration on MLC?

Page 4: File system support on Multi Level Cell (MLC) flash in open source

4/23

Multi Level Cell (MLC)Multi Level Cell (MLC)

Capable for low-cost consumer applicationsMedia players, MP3 devices, media cards, and USB flash drives

Gray code is dependent on each manufacturers

A B C

11 10 00 01

Page 5: File system support on Multi Level Cell (MLC) flash in open source

5/23

Multi Level Cell (MLC)Multi Level Cell (MLC)

I/O split vs. Page split

Performance

EnduranceWear-leveling

I/O Split method Page Split method

page i bit xbit

x+1page n*m (LSB) bit x

page n*m+l (MSB) bit x

Page 6: File system support on Multi Level Cell (MLC) flash in open source

6/23

Current statusCurrent status

Why there’s no software using MLC directly in linux?JFFS2 doesn’t support the MLCYAFFS MLC NAND handling is under wayUBIFS??? LogFS???

Another approachesEmbedded MMC (eMMC)

Controller embeddedSamsung MoviNAND, Micron ManagedNAND

Solid State Drive (SSD)Etc.

What’s the issues?

Page 7: File system support on Multi Level Cell (MLC) flash in open source

7/23

Known IssuesKnown Issues

Number Of Program (NOP) 1Write the page only onceIt’s simple and already done.

Spare AreaMLC uses the more powerful ECC/EDC mechanismIt means it requires the more spare area

Handle the paired page problemA lot of solutions but patents

Page 8: File system support on Multi Level Cell (MLC) flash in open source

8/23

NOP 1NOP 1

JFFS2 uses the NOP 2main area and OOB area for cleanmarker

UBI uses MAX NOP 4 by the provided subpage_sftE.g., subpage_sft = 2Sector write (4)

Add the MTD_OOB_WRITEABLE bitClearing the MTD_OOB_WRITEABLE bit if the probed chip is MLC.

Assign the subpage_sft to 0Disable the subpage write

Page 9: File system support on Multi Level Cell (MLC) flash in open source

9/23

Spare AreaSpare Area

Spare usages are dependent on each filesystems

In worse case it can’t use the spare area

JFFS2 YAFFS2 UBIFS LogFS

Spare Area

Required for

Cleanmarker Tags None None

Bytes 8Minimum: 16Normal: 28

None None

Page 10: File system support on Multi Level Cell (MLC) flash in open source

10/23

Paired Page ProblemPaired Page Problem

The pages are coupled in MLC.When program operation is abnormally aborted (ex. power-down, reset), not only page data under program but also paired page data may be damaged even though it was written correctly at previous time

It’s dependent on each manufacturers.

E.g., The 4 pages distanceEach pages have the distance of 4

Paired page

From http://w w w .goog le.com /patents?id= y _12AAAAEBAJ (M-Systems)

Page 11: File system support on Multi Level Cell (MLC) flash in open source

11/23

State TransitionsState Transitions

One directionProgram: Level 0 … Level 3Erase: Level n Level 0

From http://w w w .goog le.com /patents?id= lrCcAAAAEBAJ (Intel)

Page 12: File system support on Multi Level Cell (MLC) flash in open source

12/23

PatentsPatents

There are a lot of patentsSimilar with FTL situation

Skip WriteSkip the affected pages and write the safe page

LSB backupBackup LSB page to log or others

SLC-like writeRegard some MLC pages as SLC by using LSB or MSB onlySingle level cell programming in a multiple level cell non-volatile memory device

http://www.google.com/patents?id=dfihAAAAEBAJ

More and more

Page 13: File system support on Multi Level Cell (MLC) flash in open source

13/23

LSB backupLSB backup

Backup or copy LSB page to safe place such as log

From http://www.google.com/patents?id=-G6EAAAAEBAJ (SanDisk)

Page 14: File system support on Multi Level Cell (MLC) flash in open source

14/23

LSB backupLSB backup

From http://w w w .goog le.com /patents?id= y _12AAAAEBAJ (M-Systems)

Page 15: File system support on Multi Level Cell (MLC) flash in open source

15/23

SLC-like writeSLC-like write

Regard some area as SLC

From http://www.google.com/patents?id=dfihAAAAEBAJ (Micron)

Page 16: File system support on Multi Level Cell (MLC) flash in open source

16/23

N-bit MLCN-bit MLC

It’s more complicate

E.g., 3-bit MLCUS2006/0215450, 2006, Toshiba

Page 17: File system support on Multi Level Cell (MLC) flash in open source

17/23

N-bit MLCN-bit MLC

If the 3rd page is abnormally aborted, the 1st and 2nd will be damaged

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Page

Paired Page

Page 18: File system support on Multi Level Cell (MLC) flash in open source

18/23

Considerations in JFFS2Considerations in JFFS2

How to determine the page distances?Dependent on each manufacturers

How to handle paired page?Patents, patents, patents,

Node management in JFFS2Use the nodes as many as possible

If the paired page is brokenSkip the broken page and continue to read remained pagesHow to guarantee the filesystem consistency?

UBI layerAbstract the flash propertiesHandle this layer?

Page 19: File system support on Multi Level Cell (MLC) flash in open source

19/23

Chip SupportChip Support

Not hardware controller

If the chip supports the paired page problem features?LSB recoveryUse their own property techniques

In scan process, if it detects the MSB is broken, it issues the LSB recovery command and copy recovered page not damaged one to others

Page 20: File system support on Multi Level Cell (MLC) flash in open source

20/23

SummarySummary

It’s not easy to determine the page distances

It’s not easy to implement it because of patents

Chip supportLSB recovery

Where’s the best place to implement in it?Filesystem vs. UBI

Another approachesUse the controlled embedded devices

Embedded MMC (eMMC)

Page 21: File system support on Multi Level Cell (MLC) flash in open source

21/23

ReferencesReferences

Linux Memory Technology Deviceshttp://www.linux-mtd.infradead.org/http://git.infradead.org/?p=mtd-2.6.git;a=summary

YAFFShttp://www.yaffs.net/

NAND, OneNANDhttp://www.samsung.com/global/business/semiconductor/products/flash/Products_NANDFlash.htmlhttp://www.samsung.com/global/business/semiconductor/products/fusionmemory/Products_OneNAND.html

Page 22: File system support on Multi Level Cell (MLC) flash in open source

22/23

AppendixAppendix

The 4 pages distancePatent number: 6988175Flash memory management method that is resistant to data corruption by power http://www.google.com/patents?id=y_12AAAAEBAJ

Single level cell programming in a multiple level cell non-volatile memory device

http://www.google.com/patents?id=dfihAAAAEBAJ

Page 23: File system support on Multi Level Cell (MLC) flash in open source

23/23

The EndThe End

Thank You.Q&A