39: Contemporary Non-Volatile Memory
Given the immense challenges to building modern hardware, it would be an insult to all hardware engineers if I were to summarize all of contemporary non-volatile memory into a single, short post.
But here we are. Let’s review:
We’ve already seen tape storage, CDs (whose nanoscopic groove are read with lasers), and other magnetic storage techniques. But so far, we’ve only covered hardware that has been used in the past, and not modern hardware that didn’t exist back them. In modern hardware, electrons are generally trapped inside very small compartments, distinguishing between a “1” and a “0”.
We know that any medium with two explicit states can act as storage. For example, if we take a slab of rock and chisel in grooves, we could preserve data (as tombstones do) without electricity. In this example, it is clear that if the chiseler makes a mistake in carving out my name on a tombstone*, such as writing it with an “e” (it’s spelled “Michal” instead of “Michael”), then they wouldn’t be able to fix the problem, and would have to restart with a new slab.

This type of memory is known as ROM storage, read-only memory; of this, there is plenty. One has most likely heard it in the context of a CD-ROM, a CD with data written in it that can be read while not being able to write new data. This way, the software can safely be shipped without worrying that someone might maliciously try to modify it because they cannot rewrite any programs on it even if they tried.
Its close cousin however, PROM (programmable ROM), is almost the same, except that any medium that classifies itself as PROM allows an end-user to program the memory that goes onto the medium. That is, instead of a company saving data to a CD and then shipping it, if the blank CD is shipped to the end user, one could consider it PROM, because you can save data onto it†. However, once the data is there, the medium acts as a ROM medium. This is convenient for programmers who wish to ship their own software, without having to rely on a hardware vendor for help.
ROM and PROM however, are not used in hard drives because we continually update old software, delete images to make space, and modify documents without much hassle. If our hard drive memory consisted of PROM cells, we’d have to copy the contents with the updated image/document to a new segment of empty memory. We’d then retain the previous entry, which would be sitting on our computers, without the possibility of freeing up the space, filling up the hardrive with outdated data. Therefore, instead of only having PROM, we will need to erase data from time to time.
EPROM, erasable PROM, is the logical next step in the “hierarchy” of memory types. EPROM chips, created out of FGMOS transistors, allow us to do whatever PROM can do (program something into a medium) but now we also have the option to erase whatever programs are on the chip. Furthermore, once the data has been erased, we can reprogram what’s in the memory. This means that EPROM is reprogrammable.
Note, that while the data on the disk may be accessible via the metal pins (in the image above, they’re underneath the chip, slightly visible) shining ultraviolet light into the central square erases everything.
This solves the problem of creating too much outdated data, because we can now free it up if need be. For example, if we make modifications to an image in RAM and save it, we can erase the image that existed previously and replace the space with the new image we have temporarily stored in RAM. Obviously, one would likely store the image in another free segment before on erases the old image. A minor detail. However, even this method is not quite what we need for modern computers.
You see, the problem with EPROM is something very unusual. To erase data from this medium, we need to use a fairly inefficient way to wipe it: light. Computers that use a light to modify data (in any way) would require the mechanical parts of the memory and the light source to work properly. If, for example, a dust particle arrives between the two, or if the light source has been displaced even slightly, it can cause the chip to not become reprogrammable anymore, hence ending up with PROM which has been programmed, hence, effectively, ROM.
But even if the mechanical components worked perfectly, we would need to wipe all the data on the chip, if we wanted to delete any of it. Why? Simple: The wires are so small, any tiny displacement of the computer (such as done by a vibration) would cause it to delete data not intended for deletion. Functionally speaking, we either wipe all the data or none of it.

Here the full explanation: The way a computer deletes PROM data, is by shining a UV laser into a small quartz opening that can allow light into the interior of the chip. Because it cannot pinpoint exact addresses, it must clear all the memory instead of individual lines. When UV light/photons hit the quartz, it is redirected to the FGMOS transistors, where they discharge the trapped electrons via the photoelectric effect, causing bit flips, i.e., where it erases data.
But then EPROM sounds stupid. Why would we want to erase all the data in the memory? As we will see, this is a vital mechanism when it comes to programming certain software, such as firmware. EPROM is not viable for flexible data storage, given that, if we tried, we’d risk deleting data we would like to retain. Even if we desperately say, “It’s ok, we can work with this,” having to delete all data at every single change is ridiculous.
Prior methods of non-volatile data storage are not viable for today’s electronics, in part because they took too much physical space (even for very little data) and we have too much data. But one of the reasons why many of these media have been overtaken by newer technologies is because these old technologies all rely on methods that are not electronic in nature, making them energy inefficient and subject to mechanical errors.

Punch cards are physical (one extra hole and the entire card is worthless), the Williams tube is acoustic (one accidental damping action and the data is gone), and the CD is optical (physical grooves, which are subject to scratches on the surface). An ideal medium, for all the above reasons, will not rely on technologies whose interface is not electricity. Having a technology that only relies on electricity and magnetism to create, manage and delete data would be perfect. This way, all that needs to be engineered are electric and magnetic fields, without having to pay any heed to the physical forces that are being applied on the computer, i.e., acceleration of a computer due to a car, space shuttle, train starting up.
For this reason, engineers have created EEPROM, electrically EPROM (electrically erasable programmable read-only memory), an ideal storage medium used today in hard disks, which use magnetic storage. Flash Memory (1987) is another type of EEPROM, most commonly realized as solid state drives (SSD), which uses a technology called charge trap flash. These are the technologies that allow for massive storage capabilities of data using only FGMOS technology, which are used in cameras.
The other technolgoy that is still widely used are hard disks, which save data the same magnetic tape does. But, charge trap flash technology is better on nearly all measures, whether it is access speed, reliability, data retainment or physical space used, hence one would imagine that these should be used instead. Unfortunately, because SSDs require photolithographic techniques to make, hard disks are cheaper to manufacture, which is why they are still in use today, even if they use a mechanical component (the reading head) which can cause mechanical failures.
Most memory we store on our computers use harddisks (60%), although SSDs are slowly taking over. Hard disks are still around though, and can still be bought

In SSDs, through some clever mechanisms, we can choose to store different levels of electrons in the floating gate, and from there, we can read and erase the data:
Creation of data: we trap the electrons for a 1 (or not for a 0), which is determined by whether or not we turn on the gate of the transistor at high power when it is above the metallic cell.
Reading data: a small opposite value voltage needs to be applied that is low enough that it affects the substrate if there are no electrons trapped. If there are, current won’t flow. If there aren’t, then current will flow, giving us information in the form of “on” and “off”, 1 and 0.
Erasing data: a high opposite voltage needs to be applied to the head of transistors, which pushes all the electrons toward the substrate, from where it creates a current and dispels all of the trapped electrons.
Another common storage device that has fallen out of favor due to the effectiveness of the internet and backup services is the USB key, also known as a thumb drive. Given the primitiveness of the internet in the 2000s, there were few services to share data, especially large files, which meant that sometimes the only way to transfer big amounts of data was by plugging in a USB key into one computer, placing the data on there, unplugging, then plugging it into another computer, from which the data could then be read.
Things today are surprisingly easy: We don’t know how our data is stored on the cloud, or our computer, and quite frankly, we don’t need to know what the underlying hardware is made of. As long as we have access to the internet, we can read & write (not quite delete…) data to the cloud, which, as we will see later on, was not the case at all not too long ago.
With effective EEPROM, while we can store/re-store data, we open the door to some smaller issues, such as retaining data (fixing bit flips for example) or how to determine what files are where. As we will see, to solve this next problem, we will need to create something akin to how libraries used to organize their books before the computer age: With large filing cabinets of cards, describing what books were available where.
Footnotes
*Because the hardware engineers will no doubt find and kill me for summarizing their life’s work in only 1800 words
†From what I can tell, hardware-wise, ROM and PROM are the same. The difference simply lies in who gets to program it.


