Computer Memory Part IV: Non-volatile Memory Without Moving Parts

14 min read Original article ↗

Tom Herbert

This post does not reflect the views of current, past, or future employers. The opinions in this article are my own.

Last time we talked about non-volatile memory with moving parts, so it’s only fair that we look at non-volatile memory without moving parts today! This type of memory follows the engineering principle that “the fewer moving parts, the better”. As a general principle this refers to the goal of simplicity over complexity, but for our discussion we apply the principle literally. Eliminating the moving parts from non-volatile memory has two big benefits: 1) Lower access time, and 2) Higher reliability and durability.

The state of the art for non-volatile memory without moving parts is solid-state non-volatile storage that refers to electronic, semiconductor-based memory that retains data without power — we’ll use the acronym NVM (Non-Volatile Memory) for this. The precursor to solid-state NVM is magnetic core memory that we’ll talk about first.

Know your history: Magnetic Core Memory

The history of non-volatile memory without moving parts goes back to magnetic core memory. It was primarily invented by Jay W. Forrester at MIT in the late 1940s and early 1950s, with early contributions by An Wang and Way-Dong Woo.

Press enter or click to view image in full size

Magnetic core memory. On the right is a picture of magnetic core memory. Each black ring is one ferrite core. The copper wires passing through the rings are the X, Y, Select, and Inhibit lines. On the left we zoom in on one core. When there’s sufficient current passing through the wires the magnetic polarity of the core is set. In this example, clockwise polarity is interpreted as a 0 bit, and counter clockwise polarity is interpreted as a 1 bit.

How does it work?

As its name implies, magnetic core memory leverages magnetic properties of a material, and in particular uses electromagnetic induction similar to the magnetic media with moving parts that we discussed last time.

Magnetic core memory looks like a bunch of donuts strung on a chain link fence. The donut shapes are ferrite cores. Ferrite is a ceramic made primarily of iron-oxide that can easily be magnetized or demagnetized. The fence-like grid is made of copper wires. Each core can take one of two states to encode one bit. A core can be magnetized with clockwise polarity (let’s say that’s a 0 bit) or counter clockwise polarity (let’s assume that’s a 1 bit). Core memory contents are retained even when the memory system is powered down hence it’s non-volatile memory.

The most common form of core memory is X/Y line coincident-current. The cores are connected in a grid with three wires: X, Y, and Sense/Inhibit. 2D planes of cores could be stacked so that the layers in a stack can be accessed in parallel. A system could have N planes where a word of N bits can be constructed by reading or writing a bit from each plane.

Magnetic core memory relies on the square hysteresis loop properties of the ferrite material used to make the cores. An electric current in a wire that passes through a core creates a magnetic field that can change the polarity of a core. But here’s the trick: a core will only change polarity if the magnetic field is greater than a certain intensity. To select a memory location, one of the X and one of the Y lines are driven with half the current required to cause this change. Only the combined magnetic field generated where the X and Y lines cross is sufficient to change the polarity of the core; other cores will see only half the needed field, or none at all. By driving the current in a particular direction, the resulting magnetic field induces the selected core to have clockwise or counter clockwise polarity.

Reading magnetic core memory

To read a bit of core memory, the circuitry tries to flip the bit to the polarity assigned to the 0 state by driving the selected X and Y lines that intersect at that core.

  • If the bit was already 0, the physical state of the core is unaffected.
  • If the bit was previously 1, then the core changes magnetic polarity. This change, after a delay, induces a voltage pulse into the Sense line.

The detection of such a pulse means that the bit had contained a 1. Absence of the pulse means that the bit had contained a 0. The delay in sensing the voltage pulse is the access time of the core memory.

Following a read, the bit contains a 0. This illustrates why a core memory access is called a destructive read: Any operation that reads the contents of a core erases those contents, and they must immediately be recreated by additional circuitry.

Writing magnetic core memory

To write a bit of core memory, the circuitry assumes there has been a read operation and the bit is in the 0 state.

  • To write a 1 bit, the selected X and Y lines are driven, with current in the opposite direction as for the read operation. As with the read, the core at the intersection of the X and Y lines changes magnetic polarity.
  • To write a 0 bit, two methods can be applied. The first one is the same as the reading process with current in the original direction. The second has reversed logic. To write a 0 bit, in other words, is to inhibit the writing of a 1 bit. The same amount of current is also sent through the Inhibit line. This reduces the net current flowing through the respective core to half the select current, inhibiting the change of polarity.

Press enter or click to view image in full size

Accessing magnetic core memory. In this example the bit at X=2 and Y=1 is being written. Current is sent on wires X=2 and Y=1 at one half the amount needed to set the polarity of a core. The numbers at the upper right of each core show the fraction of current needed to change polarity that the core sees. Only the core at X=2 and Y=1 has enough current passing through it to change the polarity of the core.

The legacy of magnetic core memory

Magnetic core memory is obsolete, but its legacy lives with us. It replaced the magnetic drum memory and was computer memory in the 1960’s and 1970’s. While magnetic drum memory had access times between 10 and 30 milliseconds, magnetic core had access times of 1 to 10 microseconds! It also made computers portable. The Apollo Guidance Computer and early Space Shuttle computers both used magnetic core memory. In the 1970s DRAM replaced magnetic core memory, but even today we still pay homage to magnetic core memory whenever a program causes a “core dump”. :-)

The evolution of solid state NVM

The SSDs and USB drives that we used today are the result of an evolution of technology that started in the 1960’s. The underlying technology for all this, and indeed pretty for all modern computer memory and processors, is semiconductors which started to be manufactured in the sixties.

Charge trapping research (1960's)

In the 1960’s research was underway to use semiconductors for non-volatile memory. A key concept was charge trapping. The idea was that an electrical charge could be permanently trapped in insulating layers of a dielectric. This was a significant departure from the use of electromagnetic induction for memory, but it’s the fundamental idea behind today’s NVM media.

Early charge-trapping storage (MNOS) research at Westinghouse began in 1966 leading to Bell Labs inventions. Dawon Kahng and Simon Sze of Bell Labs invented the floating-gate MOSFET, the foundational transistor upon which most non-volatile memory is built.

The Era of Reprogrammability (1970s–1980s)

In 1971, Dov Frohman at Intel invented EPROM (Erasable Programmable Read-Only Memory), allowing chips to be erased by UV light and reused. EPROM uses the “floating gate” technology, where a transistor stores an electrical charge to represent data. An EPROM could be programmed, i.e. written, by a “burner” that introduces high voltage to charge the gate. The memory was erased, as prelude to reprogramming, by exposing the chip to a strong ultraviolet light source for 15–20 minutes (some packages had a quartz window for this purpose).

An EROM. Note the little window that makes the memory chip visible for erasing with ultraviolet light.

In 1974 Siemens introduced EEPROM (Electrically Erasable PROM). It allowed the memory to be reprogrammed with electrical signals instead of needing to use an ultraviolet light. In 1980, Fujio Masuoka at Toshiba invented Flash memory, a type of EEPROM that allowed bulk erasure, making it faster and more cost-effective. The “flash” in flash memory refers to the fact that it can erase entire blocks of data simultaneously, a process inspired by camera flashes.

NAND flash memory (late 1980's–present)

NAND flash memory was invented in 1987 by Dr. Fujio Masuoka while working at Toshiba Corporation. NAND flash memory offered higher density than earlier flash technologies and is the cornerstone of NVM that we use today. NAND works by storing electrons in floating-gate transistors, arranged in series to achieve high capacity at low cost. Key types include SLC (fastest/durable), MLC, and TLC (high density), which are essential for modern electronics.

In 1991, SanDisk (then SunDisk) introduced a 20MB SSD for IBM which pioneered commercial flash-based storage. In the 2000s, flash became the standard for consumer electronics (cameras, phones) and began replacing magnetic hard disk drives (HDDs) in laptops and servers.

The basics of flash memory

The basic storage unit in flash memory is a memory cell. A memory cell is built from a floating-gate transistor with a control gate and a floating gate. Electrons are trapped in the isolated floating gate. If electrons are present in the trap then the cell contains a 1 bit, and if electrons are not present then the cell contains a 0 bit.

Press enter or click to view image in full size

A flash memory cell. The cell is a floating gate transistor that traps electrons to hold one bit. Writing the bit is done by setting voltages to push electrons into the trap or pull them out. Reading the bit is done by detecting if current flows from the Source to the Drain when a read voltage is applied to the control gate.

Writing to a memory cell

A 1 bit is written in the flash memory cell by draining the electron trap which sets the cell to a default high-voltage, logical “1” state. To write a 0 bit, an operation is done to push electrons into the cell so that it is charged. High voltages are set on the control gate (Vcg) and write voltage (Vw) to produce the desired effects.

Press enter or click to view image in full size

Writing a flash memory cell. On the left a 0 bit is written — the control gate voltage and the write voltage are set so that the cell becomes charged with electrons. On the right a 1 bit is set — the voltages are set so that the cell is drained of electrons and it no longer holds a charge.

Reading a memory cell

For reading a flash memory cell we use the properties of a transistor. A voltage is applied to the control gate. If the cell does not conduct a current from the transistor Source to the Drain then electrons are trapped in the floating gate and a 0 bit is read. If the cell conducts a current then electrons are not trapped in the floating gate and a 1 bit is read.

Press enter or click to view image in full size

Reading a flash memory cell. A voltage is applied on the control gate to read the cell. On the left, electrons are trapped in the floating gate so no current flows from the Source to the Drain and a 0 bit is read. On the right, no electrons are trapped and so the current flows and a 1 bit is read.

NOR flash and NAND flash

There are two main types of flash memory: NOR flash and NAND flash. Both use the same memory cell design described above. They differ at the circuit level, depending on whether the state of the bit line or word lines is pulled high or low.

The “NAND” in NAND flash memory stands for “NOT-AND,” and the “NOR” in NOR flash stands for “NOT-OR”. These refer to Boolean logic gate structure used to connect memory cells in series within a flash storage chip. They have different properties. NAND offers higher density, faster write/erase speeds, and lower costs, making it ideal for bulk data storage (SSDs, USBs). NOR provides fast random read access and byte-level write capability, making it superior for code storage and direct execution like for embedded firmware.

Flash memory chips

Flash memory chips are constructed from microscopic flash memory cells organized into vertical, series-connected strings, allowing for high-density, low-cost-per-bit storage. Modern designs use 3D stacking to stack memory layers vertically, dramatically increasing capacity over 2D designs.

Press enter or click to view image in full size

Toshiba and SanDisk’s Bit Cost Scaling (BiCS) 3D vertical NAND memory chip design. This shows an example of a modern NAND memory chip design. The first element of the architecture is the Control Gate (CG) stack shown by the different rectangle elements piled on top of each other, whereas the bottom rectangle plate is the ensemble of Source Line Selectors (SLS) terminating the Flash string. Multiple holes are drilled through the stacks and filled with poly-silicon in order to form a series of vertically-arranged NAND Flash memory cells. Credit Toshiba and Samsung.

Solid State Drives (SSDs)

Solid State Drives, or SSDs, are now being widely deployed and in fact are threatening to dethrone hard disk drives, HDDs, as the king of data storage. SSDs are popular in consumer electronics (laptops, PCs, smartphones), enterprise data centers, and high-performance computing environments. The low access time and durability make them highly desirable (i.e. the fewer moving parts the better!).

Design

A Solid-State Drive (SSD) is designed using a controller, NAND flash memory chips, and optional DRAM cache mounted on a printed circuit board (PCB). SSDs come in a variety of form factors for different applications. One design is illustrated below.

A Solid State Drive. The SSD consists of NAND memory chips, cache chips, and controller chips that are attached to a circuit board. An external interface allows the device to be attached to a computer mother board using M.2 slots or SATA cables.

SSDs in consumer electronics

SSDs have universally replaced hard disk drives in consumer electronics. They are crucial in laptops, desktop PCs, tablets, smart phones, wearables, gaming consoles, and portable external drives, enabling faster boot times and better performance. For portable devices, like your smartphone, there’s really no choice but to use an SSD since a hard disk couldn’t survive being dropped on the floor (repeatedly dropped, if you’re like me ;-) ).

SSDs in enterprise datacenters and HPC

In the datacenter and High Performance Computing (HPC), SSD is being adopted for its lower access times than hard disk drives. However, HDD is still the primary medium for bulk storage in the datacenter — about 90% HDD versus 10% SSD. The reason that HDDs have significantly lower cost per byte than SSDs. That being said, SSD technology continues to improve and I believe it’s inevitable that SSDs will largely obsolete HDDs.

USB flash drives

A USB flash drive (also known as a thumb drive or memory stick) is a compact, portable, and rewritable data storage device that connects to computers and devices via a USB port. As a portable media, USB drives have completely obsoleted my beloved floppy disks — although one could argue that cloud storage has obsoleted all forms of portable storage :-)

SSDs Tail of the tape

Technology: Solid-state memory based on NAND flash memory.

Dimensionality: Two dimensional chips with some stacking in three dimensions.

Re-writable or not: Rewritable

Memory capacity: High end devices hold up to 4 Terabytes in a single drive.

Access time: 25 to 100 microseconds.

Advantages: Significantly faster read/write speeds, resulting in quicker boot times and file transfers compared to hard drives (HDDs). With no moving parts, they are more durable, energy-efficient, silent, and available in smaller form factors.

Disadvantages: The primary disadvantages of Solid State Drives (SSDs) compared to Hard Disk Drives (HDDs) include a higher cost per gigabyte, limited storage capacities for affordable options, and a finite lifespan due to limited write cycles. They can be susceptible to data loss from power failures, and recovering data is typically more complex and expensive.