230 likes | 413 Views
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.
E N D
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 • It’s not cover • Flash properties • Write/read disturb • Hardware issues • Controller embedded • It’s talking about the MLC software itself • How to use MLC flash directly? • What’s the consideration on MLC?
Multi Level Cell (MLC) 10 00 01 11 A B C • Capable for low-cost consumer applications • Media players, MP3 devices, media cards, and USB flash drives • Gray code is dependent on each manufacturers
Multi Level Cell (MLC) • I/O split vs. Page split • Performance • Endurance • Wear-leveling • I/O Split method • Page Split method
Current status • Why there’s no software using MLC directly in linux? • JFFS2 doesn’t support the MLC • YAFFS MLC NAND handling is under way • UBIFS??? • LogFS??? • Another approaches • Embedded MMC (eMMC) • Controller embedded • Samsung MoviNAND, Micron ManagedNAND • Solid State Drive (SSD) • Etc. • What’s the issues?
Known Issues • Number Of Program (NOP) 1 • Write the page only once • It’s simple and already done. • Spare Area • MLC uses the more powerful ECC/EDC mechanism • It means it requires the more spare area • Handle the paired page problem • A lot of solutions but patents
NOP 1 • JFFS2 uses the NOP 2 • main area and OOB area for cleanmarker • UBI uses MAX NOP 4 by the provided subpage_sft • E.g., subpage_sft = 2 • Sector write (4) • Add the MTD_OOB_WRITEABLE bit • Clearing the MTD_OOB_WRITEABLE bit if the probed chip is MLC. • Assign the subpage_sft to 0 • Disable the subpage write
Spare Area • Spare usages are dependent on each filesystems • In worse case it can’t use the spare area
Paired Page Problem Paired page • 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 distance • Each pages have the distance of 4 From http://www.google.com/patents?id=y_12AAAAEBAJ (M-Systems)
State Transitions • One direction • Program: Level 0 … Level 3 • Erase: Level n Level 0 From http://www.google.com/patents?id=lrCcAAAAEBAJ (Intel)
Patents • There are a lot of patents • Similar with FTL situation • Skip Write • Skip the affected pages and write the safe page • LSB backup • Backup LSB page to log or others • SLC-like write • Regard some MLC pages as SLC by using LSB or MSB only • Single level cell programming in a multiple level cell non-volatile memory device • http://www.google.com/patents?id=dfihAAAAEBAJ • More and more
LSB backup • Backup or copy LSB page to safe place such as log From http://www.google.com/patents?id=-G6EAAAAEBAJ (SanDisk)
LSB backup From http://www.google.com/patents?id=y_12AAAAEBAJ (M-Systems)
SLC-like write • Regard some area as SLC From http://www.google.com/patents?id=dfihAAAAEBAJ (Micron)
N-bit MLC • It’s more complicate • E.g., 3-bit MLC • US2006/0215450, 2006, Toshiba
N-bit MLC Page Paired Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 • If the 3rd page is abnormally aborted, the 1st and 2nd will be damaged
Considerations in JFFS2 • How to determine the page distances? • Dependent on each manufacturers • How to handle paired page? • Patents, patents, patents, • Node management in JFFS2 • Use the nodes as many as possible • If the paired page is broken • Skip the broken page and continue to read remained pages • How to guarantee the filesystem consistency? • UBI layer • Abstract the flash properties • Handle this layer?
Chip Support • Not hardware controller • If the chip supports the paired page problem features? • LSB recovery • Use 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
Summary • It’s not easy to determine the page distances • It’s not easy to implement it because of patents • Chip support • LSB recovery • Where’s the best place to implement in it? • Filesystem vs. UBI • Another approaches • Use the controlled embedded devices • Embedded MMC (eMMC)
References • Linux Memory Technology Devices • http://www.linux-mtd.infradead.org/ • http://git.infradead.org/?p=mtd-2.6.git;a=summary • YAFFS • http://www.yaffs.net/ • NAND, OneNAND • http://www.samsung.com/global/business/semiconductor/products/flash/Products_NANDFlash.html • http://www.samsung.com/global/business/semiconductor/products/fusionmemory/Products_OneNAND.html
Appendix • The 4 pages distance • Patent number: 6988175 • Flash 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
The End Thank You. Q&A