I'm trying to understand how reading from NAND flash works.

I know that:

  • when NAND flash is read, the gate voltage goes up to 5 V,
  • then electrons flow depending on holes,
  • then we can read the current.

But I can't understand this exactly. Would you please help me to understand this?

I'd also like to know about MLC and TLC.

Specifically, could you please let me know how voltage control works when reading from NAND?

NAND flash reading


2 Answers 2


From wikipedia:

NAND flash also uses floating-gate transistors, but they are connected in a way that resembles a NAND gate: several transistors are connected in series, and the bit line is pulled low only if all the word lines are pulled high (above the transistors' \$V_T\$). These groups are then connected via some additional transistors to a NOR-style bit line array in the same way that single transistors are linked in NOR flash.


To read data, first the desired group is selected (in the same way that a single transistor is selected from a NOR array). Next, most of the word lines are pulled up above the \$V_T\$ of a programmed bit, while one of them is pulled up to just over the \$V_T\$ of an erased bit. The series group will conduct (and pull the bit line low) if the selected bit has not been programmed.

In other words \$V_{on}\$ on the gate forces a transistor to conduct. While \$V_T\$ only makes the transistor conduct if the bit has been programmed. That way you can read each transistor's programmed state independently by pulling everything but the transistor you want to read to \$V_{on}\$ and the transistor you want to read to \$V_T\$.


Starting at about 28:00 in this video lecture on SSDs by Jisung Park of ETH Zürich, the reading of an individual cell is explained. The cell whose value we want to read is labelled "Target Cell" in this illustration (from the lecture):

NAND string with target cell

Next, you apply voltage (6 volt in this example) to all the cells you do not want to read:

NAND string with charged cells

Why? Because that voltage makes those cells conduct electricity no matter whether their floating gate contains electrons or not. Or in the words of Jisung Park:

It means that the stored values in other cells cannot affect the state of the NAND string.

Now that the other cells are made temporarily irrelevant, we are able to specifically read the value of our target cell. Generally, we read a cell's state by applying a certain voltage (0 to 4 volts) to the cell's control gate. If there are no (or very few) electrons trapped in its floating gate, that voltage makes the cell conduct electricity from its source to its drain via a channel:

electrons flowing through the cell's channel

That figure is from "How Does Flash Memory Work? (SSD)" by BLITZ.

The cell's drain is indirectly connected to the bitline shown in the illustrations of the NAND string.

If the electrons in the channel are able to flow, it means there are no electrons in the floating gate. This is commonly interpreted as binary 1 in single-level cells.

On the other hand, if there are electrons in the floating gate, their magnetic field blocks electrons from flowing through the channel at that voltage (0 to 4 volts). That's binary 0.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.