NOR Flash Translation Layer
TargetFTL-NOR™, Blunk Microsystems’ Flash Translation Layer for NOR memories, includes the following features:
- Works under TargetFAT™ and TargetXFS™ to implement reliable, re-entrant file systems on NOR flash. Works standalone to provide a block mode driver for third party file systems. Use of NOR flash media for the backing store is invisible to application layer.
- Provides guaranteed power-fail recovery when used with TargetFAT and TargetXFS, ensuring file system integrity across unexpected shutdowns. Only data written since the last synchronizing operation (fclose(), fflush(), etc.) can be lost. Closed files, directory structures, and files open for reading are never at risk.
- Second-generation virtual to physical page mapping algorithm uses caching for high performance and a minimal customizable RAM footprint. Supports volumes ranging from KBs to GBs in size.
- FTL page map entries are compile-time configurable as 2, 3 or 4 bytes, based on the volume size, for optimal performance and highest flash utilization. (2-byte entries support volumes up to 32MB in size and 3-byte entries support volumes up to 8GB in size.)
- Erase wear-leveling to prolong life of the flash media. Both dynamic wear-leveling (wear count based free block selection) and static wear-leveling (copying unchanged data to a new block in response to a low block wear count limit) are done, starting when the volume is first initialized. Within a limit, no block will have a higher erase count than other blocks.
- Performs read-wear leveling to avoid errors from repetitively reading the same location. When the read-wear threshold is reached, the block is selected for the next garbage collection operation. Copying data to a new location refreshes it. Supports custom read-wear limits.
- Supports all parallel and serial NOR devices types including Single Level Cell (SLC), Multi-Level Cell (MLC), Intel/Micron 'Sibley' flash, Spansion 'Eclipse' flash, and 'write once' NORs.
- Concurrent use of multiple FTL volumes. A single flash device can support multiple volumes and a single volume can be implemented using multiple flash devices. Volume size is unlimited. Flash volumes can be permanently installed or added and deleted as needed.
- “Thin” driver layer performs only the basic operations NOR flash devices support: read, program, erase block, etc. The provided sample drivers are easily ported to any device. Includes driver test program proven useful in detecting both software and hardware flash interface errors .
- Optional transfer_page() driver routine supports faster garbage collection for NOR flash devices that can perform on-chip transfers, avoiding copying data on and off the chip.
- Background garbage collection. Recycle operations, which convert dirty sectors to free sectors, may be performed in the background by calling vclean() from a low priority task or, for best performance before a planned streaming write, from the application.
- 'resume' operates at startup if the free page count is critically low. Free pages are required for FTL operation. Worst case is when a recycle is interrupted by powerloss. Resume recovers free pages lost by an interrupted recycle operation, guaranteeing the recycle will finish.
- For greater reliability, blocks are only written just after they are erased or if they have been erased and then marked in their header as erased blocks. No blocks are accepted as erased by reading their contents. Protects against interrupted page write and block erase commands.
- Scripted testing of powerfail recovery, fatal error handling, out-of-memory conditions, multitasking reentrancy, and file operation corner cases and regression tests. Tested on big and little-endian CPUs.
- Footprint table shows RAM and .text use for a variety of common configurations. 30-day evaluation allows testing footprint and performance for your target and configuration.
- Optimized for fast mounts. Typical mount time for a 64MB volume is under 50 milliseconds.
- Source code is 100% ANSI C and has been tested using PC-lint and multiple ANSI C compilers.
- Developed using TargetOS™, Blunk Microsystems’ full-featured royalty-free real time operating system. Easily ported to other operating systems.
- Royalty-free license. Includes source code, user's manual, sample drivers, sample applications, and one year of technical support.