The flash translation layer is an additional software layer between the file system and the NAND flash memory (see Figure 1), which allows operating systems to read and write to NAND flash memory devices in the same way as disk drives. It provides the translation from virtual to physical addresses and includes wear leveling and garbage collection software modules, which it calls when required. NAND flash memories have relatively long erase times, as erase operations are done one block at a time. With the flash translation layer this long erase time becomes transparent, because instead of erasing a block to be able to rewrite it, the FTL simply writes the data to another physical page and marks the data contained in the previous physical page as invalid. The garbage collection module is used to free this invalid memory space to allow further program operations. Refer to single level cell, and multilevel cell large page NAND flash memory datasheets for the full list of NAND flash memories covered by this application note and for further