08-12-2009, 06:03 PM
Gal, E. and Toledo, S. 2005. A transactional flash file system for microcontrollers. In Proceedings of the Annual Conference on USENIX Annual Technical Conference (Anaheim, CA, April 10 - 15, 2005).
The paper discusses a transactional file system developed for small-memory systems using NOR flash as the storage media.
To be resilient to the heavy overhead of erase and the wearing of flash blocks, an indirection level is introduced to map logical erase units to physical erase units. By keeping the sector numbers the same in the relevant erase units, it is possible to move data around by copying valid data from an erase unit to another.
The main idea is to use pruned versioned trees to organize various file system data. Logs are used for transactional semantics (e.g., atomicity).
TFFS is designed for NOR flash, which has a nice feature that data can be written in a random access manner. It apparently simplifies the design. Nevertheless, designing a transactional file system on a small-memory system is non-trivial. In quite a few places, special rules or exceptions are introduced to further simplify the design requirements. For example, deletions have limitations.
The paper discusses a transactional file system developed for small-memory systems using NOR flash as the storage media.
To be resilient to the heavy overhead of erase and the wearing of flash blocks, an indirection level is introduced to map logical erase units to physical erase units. By keeping the sector numbers the same in the relevant erase units, it is possible to move data around by copying valid data from an erase unit to another.
The main idea is to use pruned versioned trees to organize various file system data. Logs are used for transactional semantics (e.g., atomicity).
TFFS is designed for NOR flash, which has a nice feature that data can be written in a random access manner. It apparently simplifies the design. Nevertheless, designing a transactional file system on a small-memory system is non-trivial. In quite a few places, special rules or exceptions are introduced to further simplify the design requirements. For example, deletions have limitations.