Your SlideShare is downloading. ×
A Design of Flash Memory File System for Embedded Systems
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

A Design of Flash Memory File System for Embedded Systems

616

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
616
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. A Design of Flash Memory File System for Embedded Systems Systems and Computers in Japan, Vol.35, No. 1, 2004 Noritaka Ishizumi (IBM Japan), Keizo Saisho (Kagawa University), Akira Fukuda Speaker : Kim, Jung Kuk OS Lab, SNU
  • 2. Table of Contents
    • Introduction
    • Related Work
    • Flash Memory
    • Design Policy of File System
    • Design of File System
    • Evaluation
    • Conclusion
  • 3. Introduction
    • File Entry Area
      • Contains file information
      • Frequently created, updated, deleted
    • To reduce turnaround time of memory ops
      • Reducing the amount of data written
      • Reducing the number of block erase ops
        • By writing only the difference (appending ops)
    • To improve durability of flash memory
      • Balancing the number of block erase ops
      • for each erase block (wear-leveling)
        • by using erase counter & linked lists management
        • little degradation in efficiency
  • 4. Related Work
    • LFS File Manager (LFM)
    • Flash Data Integrator (FDI)
    • Data Management System (DMS)
    • Flash Translation Layer (FTL)
    • Microsoft Flash File System (MS-FFS)
  • 5. Flash Memory
    • Flash EEPROM
    • Characteristic of ops (cell state change)
    • Suspended write & block erase ops
      • Read ops ahead
      • delay
  • 6. Design Policy of File System
    • Target Device
      • Digital Hand-held devices (Dica, Voice Recorder, MP3 player)
        • file size : more than tens of KiBs
        • # of files : several hundred
        • No update w/ a small unit of data
        • Appending operations are mainly done in update
    • Logical structure and interface
      • Flat directory is adopted
        • To reduce the overhead of file ops
      • Common Flash Interface (CFI)
    • Requirements for flash memory file system
      • Distribution & reduction of rewrite
        • File entries at any locations by managing linked lists (block erase scattered)
      • Real-time read ops (within a fixed interval)
        • Suspend function
        • FDI performs block erase ops in the background
  • 7. Design of File System
    • Overview of file system
      • Link structured file system
        • To restrict the # of memory write
        • to only one
        • File ops performed by appending ops .
      • Allocation of an erase block
      • 2 problems
        • Fragmentation in free space
          •  Garbage collection
        • Link pointer cannot be changed once it has been written
          • introduces ‘reserved link pointer’ & ‘delete bit’ in file entry
    File block
  • 8. Design of File System
    • Structure of file entry
      • Basic file entry
        • Invalid file entry
        • File name related flags
        • Data area related flags
        • Update time related flags
        • File link pointer related flags
        • Append link pointer related flags
  • 9. Design of File System
    • Data appending w/o block erase
      • Read the file entry of the target file from flash memory
      • Retrieve the last file block of the file to be read by tracing linked lists
      • Create a file block consisting of data area and file entry including append link pointers, data size, update time and related flags in the write buffer
      • Write the appended data into the data area, as well as the size of appended data and the current time into the file entry on the write buffer
      • Write the contents of the write buffer into flash memory
      • Write the pointer of the file block written at (5) into the append link pointer of the file block retrieved at (2)
  • 10. Design of File System
    • Garbage Collection
      • When a file is deleted,
        • not actually deleted, but only flag bit is invalidated
      • Link modification entry
        • LM extends alternate link pointer of FB1,
          • So it should be in the same erase
        • block as FB1
        • GC trigger condition
          • # of deletion increases
          • free space for LM becomes scarce
      • Intensive allocation of file blocks
        • when creation of a new file or appending,
          • allocate unused erase blocks as far as possible
      • Use of suspend function
        • GC is time-consuming, so suspend op can be performed
        • to diminish the delay of read op.
  • 11. Evaluation
    • Simulator and experimental environment
      • Flash memory simulator
        • read, write, block erase I/F that take out log info. such as # of bytes.
      • Flash memory file system (proposed here)
        • open, read, write, unlink, rename, lseek
        • erase block selection
          • min. value of “current effective used area +
          • # of block erase ops. X 2KB”
          • to distribute block erase during GC
      • Test System
        • Windows 2000, AMD K7 550 MHz, Visual C++ 5.0 (/Omax)
  • 12. Evaluation
    • Reduction and distribution of block erase ops .
      • Reduction
        • creation & deletion of files, (10,000 logs)
          • 64KB & 50KB average size
          • 16MB flash memory (64KB blk size)
          • create 255 files (DOS-FAT),
            • randomly erase 10%(26) files
            • create 10%(26) files, repeat 2 steps
        • result
          • 9249 : 36.1 (Link structured FFS)
          • 30,000 : 117.2 (DOS-FAT FS)
          • 3 times better
      • Distribution
        • mean erase count per block : 33
        • difference b/w min and max : 22
  • 13. Evaluation
    • Distribution of file creation time
      • Result
        • assumption
          • 1 byte write (8us), 1 block erase (1s)
        • Table.1
          • 260 files creation time
      • Drawback
        • 2 block erases
          • should be avoided in real-time applications
        • background GC or timing to initiate GC is important
          • eg. initiate GC at threshold # of ops
  • 14. Evaluation
    • Comparison of amount of write
      • the amount of write,
        • when 100KB file created by appending a fixed amount
      • without append (write into new block)
        • Internal fragmentation increases,
        • as the amount per appending decreases.
        • twice around 40KB
        • rapidly increase around 10KB
      • with append (append into a block w/ free space)
        • rapidly increase around 200 bytes
          • as the ratio of management info. VS. appending data
          • becomes large
      • such a small unit rarely happens in embedded systems
  • 15. Conclusion
    • Link structured FFS
      • extends the life of flash memory
        • through averaging the block erase count
          • by managing files with linked list
          • by providing each block with erase counter
      • increases freedom of appending
        • by appending the difference in update
        • and appending link modification
      • shortened the file writing time

×