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
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
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).
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
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
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
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
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.
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.