DiskOnChip 2000 DIP
11 Data Sheet, Rev. 3.8 91-SR-002-42-8L
5.1.1 Built-In Operating System Support
The TrueFFS driver is integrated into all major OSs, including: Windows CE/NT/NT
Embedded/XP, Linux (various kernels), VxWorks, Nucleus, QNX, DOS, Symbian, and others. For
a complete listing of all available drivers, please refer to M-Systems’ website www.m-systems.com.
It is advised to use the latest driver versions that can be downloaded from the DiskOnChip 2000
web page on the M-Systems site.
5.1.2 TrueFFS Software Development Kit (SDK)
The basic TrueFFS Software Development Kit (SDK) provides the source code of the TrueFFS
driver. It can be used in an OS-less environment or when special customization of the driver is
required for proprietary OSs.
5.1.3 File Management
TrueFFS accesses the flash memory within DiskOnChip 2000 through an 8KB window in the CPU
memory space. It provides block device API, by using stand ard file system calls, identical to those
used by a mechanical hard disk, to enable reading from and writing to any sector on DiskOnChip
2000. This makes it compatible with any file system and file system utilities such as diagnostic tools
and applications. When using the File Allocation Table (FAT) file system, the data stored on
DiskOnChip 2000 uses FAT-16.
Note: DiskOnChip 2000 is shipped formatted, and contains the FAT file system.
5.1.4 Bad-Block Management
NAND flash, being an imperfect storage media, contains some bad blocks that cannot be used for
storage because of their high error rates. TrueFFS automatically detects and maps bad blocks upon
system initialization, ensuring that they are not used for storage. This management process is
completely transparent to the user, who remains unaware of the existence and location of bad
blocks, while remaining confident of the integrity of data stored. The Bad Block Table in
DiskOnChip 2000 DIP is stored in a protected area for ensured reliability.
5.1.5 Wear-Leveling
Flash memory can be erased a limited number of times. This number is called the erase cycle limit
or write endurance limit and is defined by the flash array vendor. The erase cycle limit applies to
each individual erase block in the flash device. After reaching the cycle limit, as given by the flash
vendor, the erase block begins to make storage errors at a rate significantly higher than the error rate
that is typical to the f lash.
In a typical application and especially if a file system is used, a specific page or pages are constantly
updated (e.g., the page/s that contain the FAT, registry etc.). Without any special handling, these
pages would wear out more rapidly than other pages, reducing the lifetime of the entire flash.
To overcome this inherent deficiency, TrueFFS uses M-Systems’ patented wear-leveling algorithm.
The wear-leveling algorithm ensures that consecutive writes of a specific sector are not written
physically to the same page in the flash. This spreads flash media usage evenly across all pages,
thereby maximizing flash lifetime. TrueFFS wear-leveling extends the flash lifetime 10 to 15 years
beyond the lifetime of a typical application.