Flash Translation Layers

Overview

SafeFTL is a standard flash translation layer that allows an array of NAND flash to be addressed as a set of standard 512Byte, 2K or 4K logical sectors.

NAND flash is a very cost effective flash storage medium. However, it has certain characteristics that prevent its use as a simple continuous storage array. It may contain bad blocks; bad bits may develop in previously good blocks; and heavily used blocks will “wear-out”.

To allow a higher-level system – such as a file system – to use NAND flash effectively it is necessary to use a flash translation layer that carefully manages the flash while providing a simple logical sector interface to the host system.

SafeFTL

SafeFTL is a standard flash translation layer that allows an array of NAND flash to be addressed as a set of standard 512Byte, 2K or 4K logical sectors.
 
Key Features:
  • Up to 4 terabytes in single wear-leveled array
  • High performance
  • Zero copy block read/write
  • Cache options
  • 528, 2112 and 4224 Byte page support
  • Safe from unexpected reset
  • Effective wear-leveling algorithm
  • Bad block management
  • Automatic garbage collection
  • Small code footprint
  • Small RAM usage
  • Support for all standard NAND devices
  • Sample drivers and ECC algorithms
  • Typically >98% of blocks available
  • Fast initialization

This diagram illustrates how SafeFTL fits into a system:

Fail-Safe

SafeFTL is designed and tested to handle unexpected system resets cleanly. If a write had been initiated when the system was reset, and if it was not complete, then the old state of the logical sector being addressed will be presented on start-up. If the write operation was complete, then the new state of the logical sector will be read. No in-between states or complex recovery procedures are required.
 

Wear

All flash devices suffer from wear, since the repeated use of a particular area of flash increases the likelihood that it will fail. Distributing the usage of blocks across the whole flash array greatly increases the lifetime of NAND devices, but effective wear levelling is a complex task. Seemingly “obvious” algorithms tend to fail in real-world testing. HCC has developed sophisticated wear algorithms (both static and dynamic) that are tuneable to your systems needs. These ensure that all the blocks in a NAND flash array are written to evenly, within a configurable set of specified parameters.
 
 

Supported NAND Devices

SafeFTL has been designed and tested to work with most types of NAND flash currently available. NAND flash is constantly evolving and HCC works to ensure that SafeFTL works with the latest technology. The system is tested in-house on Samsung, ST Micro and Micron devices. It has been successfully ported to several other types including Toshiba and Hynix. SafeFTL has been tested extensively with devices that have pages of 528 bytes and 2112 bytes.
 
To verify if your target device is supported please contact us at info@hcc-embedded.com.
 
 

Atmel DataFlash

 HCC provides a version of SafeFTL for use with Atmel DataFlash. SafeFTL-DF can be used to handle arrays of Atmel DataFlash devices eficiently while giving them excellent wear characteristics. Additonally ECC (error correction codes) can be used to correct bit errors.
 
SafeFTL-DF works only with Atmel DataFlash that has the “spare area.” These devices have 528-byte or 1056-byte page sizes. SafeFTL-DF can enhance performance of your system; one reason is that SafeFTL-DF uses block erases, which are considerably faster rather than individual page erases.
 

Verification

SafeFTL is extensively tested both on real NAND flash systems and by simulation. Because wear analysis and failsafe operation are both complex matters, HCC has developed a complete PC simulation environment to run millions of test cases to verify both the wear and failsafe characteristics of SafeFTL.

 

Upper Layer Interface

The SafeFTL is designed for ease of use by standard file systems. It provides a very simple logical sector-based interface for the higher level application. The interface functions are:
hl_init
Initialises the SafeFTL
hl_format
Performs an initial low-level format of the flash
hl_getmaxsector
Returns the number of logical sectors in the system
hl_open
Opens one or more sectors for a read/write operation
hl_close
Closes an operation
hl_read
Reads a number of logical sectors from the flash
hl_write
Writes a number of logical sectors to the flash
This interface is suitable for use in conjunction with HCC’s FAT, THIN and EUSB-MS. Integrated projects can be provided on request.
 

Physical Device Interface

SafeFTL has been carefully designed to work with most NAND flash types. Creating the interface to a particular device is straightforward. Functions are provided for accessing the NAND flash device. In addition,  sample drivers are included for several NAND flash types; the interface is designed to be easy to port to any NAND device. Also included are sample ECC algorithms; the user should recognize that whenever possible these are best done with hardware support. The interface functions – called by SafeFTL – that the lower level interface must provide are:
 
ll_init()
Initialises physical layer and gets config info
ll_erase()
Erases a flash block
ll_write()
Writes a flash page from a buffer pointer
ll_writedouble()
Writes a flash page from two buffer pointers
ll_read()
Reads a flash page

 

DFML

Atmel DataFlash is the world’s leading serial flash memory family. It contains a number of features that make it an excellent partner for embedded applications in general and for HCC’s file system solutions in particular:

  • Unrivalled access speed
  • Dual RAM buffers for storing pages
  • Small erasable page size
  • Low power consumption

HCC’s DFML is designed to be a clean interface layer between a file system and DataFlash devices. It provides a substantial set of features:

  • A reliable and fail-safe page write operation, ensuring that critical data will always be reliably written to the device even in the event of power loss
  • A normal page write for non-critical data
  • Managed sectors set aside for non-file system usage
  • Unmanaged sector reservation for private functions, such as boot memory operations
  • 10K random write per sector refresh operations are managed transparently
  • Optional error correction algorithms for added reliability
  • Enhanced wear leveling operations
  • Support for multiple devices in a single array

DFML technology can provide a robust DataFlash file system for a PC-compatible or fail-safe application. It supports the following DataFlash devices: 

Density
Serial DataFlash
DataFlash Cards
1Mbit
AT45DB011B
 
2Mbit
AT45DB021B
 
4Mbit
AT45DB041B
 
4Mbit
AT45DB041D
 
8Mbit
AT45DB081B
 
16Mbit
AT45DB081D
AT45DCB002D
32Mbit
AT45DB321C
AT45DCB004C
32Mbit
AT45DB321D
AT45DCB004D
64Mbit
AT45DB642D
AT45DCB008D

 

DFML fully supports all legacy DataFlash products.

DFML is normally bundled with one of HCC’s file systems and is licensed on a per product or  “product-line” basis.

Atmel® and DataFlash® are registered trademarks of Atmel Corporation