In Numonyx single level cell and multilevel cell NAND flash memories each physical block can be programmed and erased reliably up to 100,000 and 10,000 times, respectively. For write-intensive applications, it is recommended to implement a Wear Leveling algorithm to monitor and spread the number of write cycles per block. In memories that do not use a Wear Leveling algorithm not all blocks get used at the same rate. The Wear Leveling algorithm ensures that equal use is made of all the available write cycles for each block. Wear Leveling is implemented in the Flash Translation Layer which is the additional software layer between the file system and the NAND flash memory. The Flash Translation Layer allows operating systems to read and write to NAND flash memory devices in the same way as disk drives and provides the translation from virtual to physical addresses. Wear Leveling can also be implemented by the file system directly on the NAND flash (see Figure 1). Refer to the datasheets for the full list of root part numbers and for further information on the devices (see Section 4: References).