Adaptive NAND Flash Translation Layer
TargetFTL-NDM™, Blunk Microsystems’ Adaptive Flash Translation Layer for NAND memories, includes the following features:
- Works under TargetFAT™ and TargetXFS™ to implement reliable, re-entrant file systems on NAND flash. Works standalone to provide a block mode driver for third party file systems. Use of NAND flash media for the backing store is invisible to application layer.
- Combined with TargetXFS or TargetFAT, TargetFTL-NDM provides power-fail recovery. File system integrity is guaranteed 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.
- Supports volumes ranging from KBs to GBs in size by adaptively selecting the mapping algorithm according to the volume size, applying in each case the algorithm that gives the best performance and minimizes the RAM footprint.
- Integrated with TargetNDM™ for bad block management and, from the TargetNDM driver, ECC bit error correction.
- Supports all Single Level Cell (SLC) and Multiple Level Cell (MLC) NAND devices. Performs in-order page writes, avoids partial programming (programming the same page more than once between block erasures), and uses only 16 spare bytes per page.
- Performs erase wear-leveling to prolong life of the flash media. Erase cycles are spread evenly across all erasable blocks. The wear count is maintained starting with the first time a flash volume is formatted.
- Performs read-wear leveling to avoid the bit errors that result from repetitively reading the same flash location. When a read-wear threshold is reached, that block is selected for the next garbage collection operation. Copying data to a new location refreshes it.
- Performs automatic block recycles when the TargetNDM driver indicates that a corrected bit error threshold is met. This is another protection against accumulated read wear that could lead to data loss from bit errors exceeding the ECC strength.
- Allows concurrent use of multiple FTL volumes, each in its own TargetNDM partition. FTL volumes can be permanently installed at startup, or added and deleted as needed. Uses per-volume access semaphores to support multitasking environments.
- Supports background garbage collection. Recycle operations, which convert dirty sectors to free sectors, may be performed in the background by a low priority task.
- Binary volume image tool for creating preformatted image files, for pre-production programming of flash devices using automated programmers from Data I/O, BP Microsystems, etc.
- Web-based interactive RAM consumption calculator for determining RAM footprint.
- Optimized for fast initialization and mount times.
- Source code is 100% ANSI C and has been tested using ANSI C compilers from ARM, Diab Data, GNU, Metrowerks, and WindRiver.
- 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 application, and one year of technical support.