1 / 23

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

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.

lynley
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Contents • Introduction • Multi Level Chip (MLC) • Current status • Known Issues • Patents • Consideration in JFFS2 • Summary • References

  3. 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?

  4. 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

  5. Multi Level Cell (MLC) • I/O split vs. Page split • Performance • Endurance • Wear-leveling • I/O Split method • Page Split method

  6. 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?

  7. 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

  8. 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

  9. Spare Area • Spare usages are dependent on each filesystems • In worse case it can’t use the spare area

  10. 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)

  11. State Transitions • One direction • Program: Level 0  …  Level 3 • Erase: Level n  Level 0 From http://www.google.com/patents?id=lrCcAAAAEBAJ (Intel)

  12. 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

  13. LSB backup • Backup or copy LSB page to safe place such as log From http://www.google.com/patents?id=-G6EAAAAEBAJ (SanDisk)

  14. LSB backup From http://www.google.com/patents?id=y_12AAAAEBAJ (M-Systems)

  15. SLC-like write • Regard some area as SLC From http://www.google.com/patents?id=dfihAAAAEBAJ (Micron)

  16. N-bit MLC • It’s more complicate • E.g., 3-bit MLC • US2006/0215450, 2006, Toshiba

  17. 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

  18. 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?

  19. 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

  20. 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)

  21. 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

  22. 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

  23. The End Thank You. Q&A

More Related