Flash memory is a type of non-volatile memory used in computers. Non-volatile means that the memory can store information even when the device is powered down. Volatile memory (such as RAM) loses everything stored in it every time the machine itself powers down. Non-volatile memory is used for things like hard drives and SSDs, as they need to be able to store information even when the PC is off.
Flash memory comes in two distinct types – NOR flash and NAND flash. They are named for their respective logic gates. A logic gate is an operation that performs binary checks – inputs and outputs that are only ever 0 or 1. In the case of NOR and NAND, they are named for the result they produce.
A NAND gate only ever returns the value 0 or ‘false’ if all inputs into it are accurate. A NOR gate is the exact opposite – it only returns a one or ‘true’ value if all inputs are false. Both types of flash memory design are pretty similar – they use the same cell design. The differences start at the circuit level. Whether the first bit of data is true or false (1 or 0, sometimes called high or low), the relationship between data lines will either resemble a NOR gate or a NAND gate, thus determining the type.
Tip: NAND stands for Not-AND, a check that both inputs are not valid. NOR stands for Not-OR, a check that is only true if neither of the information is accurate. The critical usefulness of both logic gates is that there is a case in which the exact combinations of inputs can be determined.
The History of Flash Memory
Flash was first developed in 1980 by Toshiba. They began marketing it in 1987 as an improved version of EPROM memory. EPROMs had to be erased before they could be rewritten and thus reused. On the other hand, NAND flash can be read, written, and erased in smaller chunks of storage, making it faster and more responsive.
NOR flash allows a single machine word to be written, read, or erased independently, achieving the same effect of increased speed and availability. Flash memory devices are usually called flash memory chips and consist of a physical chip filled with lots of flash memory cells and a flash memory controller. The controller acts as a distribution and communication center – it allocates data and requests and delivers data as needed to and from the cells.
Note: A machine word is a measure of the largest size of memory address a computer can handle. For a 32-bit computer, a machine word is 32-bits. For a 64-bit computer, a machine word is 64-bits.
NOR and NAND
Modern flash memory is used in just about all modern computing devices. NAND memory is mainly used in memory cards, USB drives, SSDs produced after 2009, smartphones, and other smaller mobile devices. NAND usually serves as general storage and is also used for data transfers.
Various digital products use NOR or NAND flash memory to store configuration data. This specific use case was previously taken care of by EPROM or static RAd. Flash memory is superior in most cases – the only drawback is that each memory cell can only take so many writes before it wears out. When a memory cell wears out, the entire block in which it is contained can no longer be trusted. Modern devices deal with this issue with wear leveling algorithms and over-provisioning.
NOR memory is mainly used in cases where data integrity needs to be preserved for extended periods. Typically, it can maintain data safely for up to 20 years and is used when individual machine words of data need to be written and read frequently.
NAND is the more popular type of flash memory and is used where larger blocks of data need to be accessed, read, (re)written, or erased at once. Effectively, read, write, and erase speeds are faster than NOR memory. This makes NAND flash the superior choice for most use cases.
Additionally, NAND storage cells are physically smaller than NOR cells. They use roughly 40% less area, despite working similarly and providing the same primary storage space per cell. This means that NAND flash can offer greater storage density and higher performance. NOR flash does have one advantage, though. Being addressable by machine word, it is faster at random access and more similar to RAM.
Flash memory is a variant of non-volatile electrically erasable read-only memory or EEPROM. It can be based around logical NAND gates or logical NOR gates. NAND flash is significantly more popular than NOR flash thanks to its storage density and performance advantage. Flash’s critical advantage over its other EEPROM predecessors is that it does not need to be entirely erased.
Flash memory is instead subdivided into blocks that need to be erased, but this comes at a much lower performance cost, thanks to their much smaller size. Flash’s main weakness is that memory cells can only be written several times before they wear out. This issue is generally solved in modern devices thanks to wearing leveling algorithms and over-provisioning.