
Software algorithms
NAND01G-B2C
8
Software algorithms
This section gives information on the software algorithms that Numonyx recommends to
implement to manage the bad blocks and extend the lifetime of the NAND device.
NAND flash memories are programmed and erased by Fowler-Nordheim tunneling using a
high voltage. Exposing the device to a high voltage for extended periods can cause the
oxide layer to be damaged. For this reason, the number of program and erase cycles is
limited (see
Table 18 for value) and it is mandatory to implement error correction code
algorithms to extend the number of program and erase cycles and increase data retention.
To help integrate a NAND memory into an application, Numonyx can provide a full range of
software solutions: file system, sector manager, drivers and code management.
Contact the nearest Numonyx sales office or visit www.numonyx.com for more details.
8.1
Bad block management
Devices with bad blocks have the same quality level and the same AC and DC
characteristics as devices where all the blocks are valid. A bad block does not affect the
performance of valid blocks because it is isolated from the bit line and common source line
by a select transistor.
The devices are supplied with all the locations inside valid blocks erased (FFh). The bad
block information is written prior to shipping. Any block, where the 1st and 6th bytes, or 1st
word, in the spare area of the 1st page, does not contain FFh, is a bad block.
The bad block Information must be read before any erase is attempted as the bad block
information may be erased. For the system to be able to recognize the bad blocks based on
the original information it is recommended to create a bad block table following the flowchart
8.2
NAND flash memory failure modes
Over the lifetime of the device additional bad blocks may develop.
To implement a highly reliable system, all the possible failure modes must be considered:
●
Program/erase failure: in this case the block has to be replaced by copying the data to
a valid block. These additional bad blocks can be identified as attempts to program or
erase them will give errors in the status register
As the failure of a page program operation does not affect the data in other pages in the
same block, the block can be replaced by re-programming the current data and copying
the rest of the replaced block to an available valid block. The Copy Back Program
●
Read failure: in this case, ECC correction must be implemented. To efficiently use the
memory space, it is recommended to recover single-bit error in read by ECC, without
replacing the whole block.
Refer to
Table 17 for the procedure to follow if an error occurs during an operation.