A Flash Translation Layer (FTL) is a system for attaching arrays of flash to a media driver. HCC’s advanced fail-safe SafeFTL Flash Translation Layer presents a logical, sector-based interface to any application or file system using NAND, NOR or SSD devices. SafeFTL manages the underlying complexity of flash-based media devices and can be used in conjunction with any of HCC’s FAT file systems. SafeFTL is a highly efficient FTL, designed for use with most standard types of NAND and NOR flash, in simple or complex configurations.
- The file system can be any HCC file system that addresses logical sector arrays (including SafeFAT, FAT, and THIN).
- The SafeFTL media driver is the FTL. It manages a set of attached flash arrays. It can attach each array as a drive to any file system that uses the HCC Media Driver Interface Specification. SafeFTL can provide access to a wide variety of flash media including NAND flash, NOR flash, and serial flash. Many different SafeFTL drives can be attached simultaneously.
- When the flash media reaches its end of life, the drive becomes and remains read-only.
- The generic NOR base driver is responsible for handling the NOR flash drivers. For each NOR flash drive, you must add an entry to the SafeFTL drive list.
- The NOR flash drivers interface to the generic NOR base driver.
- The NAND flash driver for each array of NAND flash that is to be handled as a separate drive is attached to the SafeFTL media driver. To do this, you add an entry to the SafeFTL drive list.
The features of SafeFTL are:
- Designed for integration with both RTOS and non-RTOS based systems.
- Can handle up to 4TB in a single wear-leveled array.
- Can handle arrays of flash greater than 4TB.
- Supports all common NAND/NOR devices.
- Can handle NAND devices with any page size, including 16896, 8448, 4224, 2112, and 528 bytes.
- Can handle file systems with any sector size, including 8KB, 4KB, 2KB, and 512 bytes.
- Can handle any array of NOR flash.
- Can handle multi-chip arrays.
- Supports data block logging.
- Dynamically configurable, based on available flash.
The system provides the following:
- Bad block management.
- Error Correction Code (ECC) algorithms.
- Fail-safety from unexpected reset.
- Atomic update (either the old entry is present or the new one).
- Zero copy block read/write.
- Effective wear leveling algorithms. Typically over 98% of blocks are available.
- Read disturb monitoring.
- A cache option.
- Single Level Cell (SLC), Multi-Level Cell (MLC), and multi-plane support.
- Optimized random read/write.
- Open NAND Flash Interface (ONFI) driver.
- Support for the Common Flash memory Interface (CFI) standard for NOR flash devices.
- Support for the Serial Flash Discoverable Parameter (SFDP) standard for serial NOR flash devices.
- Automatic garbage collection.
- A secure deletion of data option.
- Use of incremental writes only to pages in a block.