Flash Translation Layer - FTL for NAND

FTL: Flash Translation Layer source code product for NAND flash chips.

Flash Translation Layer Overview

Flash Translation Layer (FTL) from Zeeis is the small footprint, high performance NAND flash data manager to support sector-based file systems (FAT, NTFS, etc.) to operate Single Level Cell (SLC) and Multi Level Cell (MLC) NAND flash chips like any other block storage device. It makes NAND flash memory device appear to the system like a disk drive.

Zeeis Flash Translation Layer have integrated in over 16 million flash based devices - TransFlash Cards, SD cards, CF Cards, USB flash drives, solid-state drives (SSD), MP3 players and mobile phones.

FTL is a translation layer between the sector-based file system and NAND flash chips. It enables the operating system and file system access NAND flash memory devices as access disk drives.

Wear leveling algorithms are implemented for prolong the NAND flash chips lifetime, that monitors and spreads the number of Page Program(Write) and Block Erase cycles across the entire NAND flash chip.

FTL has been fully tested for use with a wide range of NAND flash chips and it supports NAND flash chip arrays to increase capacity and performance.

Flash Translation Layer Features

  • High performance and reliable NAND FTL
  • Supports all SLC and MLC NAND flash chips
  • Supports small page and large page (528, 2112 and 4224 bytes page size)
  • Bad Block Management Handler
  • ECC module included
  • Fast Garbage Collection
  • Power-fail recovery
  • Wear leveling
  • 100% ANSI C source code for guaranteed portability
  • Simple API offers a very easy way to build flash-based storage device.
  • Optimized performance and reliability for limited resources MCUs/DSPs
  • RAM and ROM resources usage highly scalable by configurable features
  • Processor and RTOS independent
  • 1 year free technical support for unlimited number of support cases
  • 3 year free upgrades
  • Royalty-free & Business-friendly License

Flash Translation Layer API Summary

FTL_mount Mount the drive and create the cache buffer for FTL.
FTL_unmount Free all resources of the FTL.
FTL_format Format the drive.
FTL_sectors Get maximum usable sectors number of this FTL drive.
FTL_read Read sectors from FTL drive.
FTL_write Write data to sectors of FTL drive.

Flash Translation Layer Application Programming Interface

FTL_mount


FTLSTATUS FTLmount( void )


Mount the drive and create the cache buffer for FTL.

Returns

FTL_SUCCESS for success, else an error code is returned.

FTL_unmount


FTLSTATUS FTLunmount( void )


Free all resources of the FTL.

Returns

FTL_SUCCESS for success, else an error code is returned.

FTL_format


FTLSTATUS FTLformat( void )


Format the drive.

Returns

FTL_SUCCESS for success, else an error code is returned.

FTL_sectors


tsec long FTLsectors


Get maximum usable sectors number of this FTL drive.

Returns

The number of total sectors.

FTL_read


tsec FTLread( void * buffer, t_sec sector, t_sec count )


Read sectors from FTL drive.

Parameters


buffer Storage location for data. sector The logical sector number count Maximum number of sectors to be read.


Returns

The number of full sectors actually read, which may be less than count if an error occurs.

FTL_write


tsec FTLwrite( void * buffer, t_sec sector, t_sec count )


Write data to sectors of FTL drive.

Parameters


buffer Pointer to data to be written. sector The logical sector number count Maximum number of sectors to be write.


Returns

The number of full sectors actually written, which may be less than count if an error occurs.

Licensing and Pricing

Zeeis Flash Translation Layer is a low-cost and royalty-free software IP designed to enable developers design their own final products quickly and easily, so there are no restrictions or limitations on the use or modification for your products.

Please contact us or send email to sales@zeeis.com for further information.