Flash 101: Errors in NAND Flash
In part 1 of this series, we discussed the major differences between NAND and NOR Flash. In part 2, we focused on the electrical interface of different types of NOR Flash devices and how this impacts device selection and design. Part 3 covered the electrical interface of different types of NAND Flash devices and how this impacts device selection and design. Part 4 explored the different types of NAND Flash based on their internal architecture and the way data is stored in their memory cells.
In this part we will focus on the different errors in NAND Flash. As explained in part one, NAND Flash is more prone to errors than NOR Flash owing to its structure. The errors in NAND Flash can be classified into two major categories: permanent (non-correctable) errors and temporary (correctable) errors. Memory wear is the permanent error in NAND Flash. Temporary errors in NAND Flash are Program Disturb, Read Disturb, Over-programming and Retention errors. A detailed explanation of each type of errors follows.
Memory wear, also known as endurance error, is a permanent error in NAND Flash. As explained in the part 4, memory wear is caused by program and erase operations. Every time a cell is programmed or erased, a few electrons get stuck in the oxide layer, thereby wearing out the oxide layer. Once the cell reaches a point where the controller can no longer reliability distinguish between programmed and erased states, the cell is considered as bad or worn out. The block with the worn out cell is now considered as a bad block and is not used any longer.
Read Disturb Error
As the name indicates, a read disturb error is caused by read operations. Let’s consider the read operation in detail.
To read a memory cell, the charge stored in the floating gate needs to be identified by measuring the threshold voltage of the cell. A reference voltage is applied at the gate terminal of the required cell and the voltage at which the cell starts conducting is measured to identify the threshold voltage. Since the memory cells are connected as strings in NAND Flash, all other cells in the string need to be turned on prior to reading the required cell. A readout voltage (VREAD), higher than the maximum threshold voltage of the memory cells, is applied to the gate terminal of all other cells in the string to turn them on or unselect the cells. In NAND Flash, the gate terminals of multiple memory cells in different strings are connected together as a page. To unselect a cell in the string, the entire page need to be unselected, which means the readout voltage needs to be applied to the gate terminals of all the cells in a page.
Even though the readout voltage is much smaller compared to program or erase voltages, this can still cause a slight shift in the threshold voltage of the cells. These small shifts in threshold voltage accumulate over read cycles, eventually changing the state of the cell. This unintentional shift in the threshold voltage of a cell due to read operation is known as read disturb error. More details on read disturb errors are available in Read Disturb Errors and How to Recover From Them. Note that read disturb errors affect only the cells in unselected pages in the same block being read. As this is a temporary error, the error can be resolved by copying the block to another block, then erasing the errored block to make it available again.
click for larger image
Figure 1: A read disturb error affects the cells in unselected pages in the same block being read.