• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
A Design of Flash Memory File System for Embedded Systems

A Design of Flash Memory File System for Embedded Systems






Total Views
Views on SlideShare
Embed Views



1 Embed 1

http://www.slideshare.net 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    A Design of Flash Memory File System for Embedded Systems A Design of Flash Memory File System for Embedded Systems Presentation Transcript

    • 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
    • Table of Contents
      • Introduction
      • Related Work
      • Flash Memory
      • Design Policy of File System
      • Design of File System
      • Evaluation
      • Conclusion
    • 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
    • Related Work
      • LFS File Manager (LFM)
      • Flash Data Integrator (FDI)
      • Data Management System (DMS)
      • Flash Translation Layer (FTL)
      • Microsoft Flash File System (MS-FFS)
    • Flash Memory
      • Flash EEPROM
      • Characteristic of ops (cell state change)
      • Suspended write & block erase ops
        • Read ops ahead
        • delay
    • 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
    • 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
    • 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
    • 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)
    • 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.
    • 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)
    • 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
    • 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
    • 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
    • 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