Read-Only Memory

Read-only memory is non-volatile memory whose contents are set at manufacture or written only rarely and slowly, so that the data survives with the power off and is meant to be read, not changed, during normal operation. It holds the code and constants a machine needs before anything else exists: the first instructions a processor runs when it is switched on, the firmware of a device, the fixed lookup tables of an appliance. Its defining contrast with random access memory is persistence: working data goes in RAM and vanishes, while the instructions for bringing the machine to life sit in ROM and remain.

The family tree runs from permanently wired chips to erasable ones, and each step solved a practical problem. Mask ROM is programmed by the pattern of connections in the chip's own photographic masks during fabrication, which is the cheapest option in large quantities but permanently fixed, so a bug means a new batch. Programmable ROM, PROM, is blank when made and can be written once by a device that blows tiny fuses. The erasable PROM, EPROM, invented by Dov Frohman at Intel in 1971, can be wiped with ultraviolet light shining through a quartz window and rewritten, which made development and small production runs practical. Electrically erasable PROM, EEPROM, arrived in the late 1970s and allowed bytes to be changed in place by electrical signals with no special lamp. Flash memory, invented by Fujio Masuoka at Toshiba, is a descendant of this lineage with blockwise erasure, and has its own entry.

Power applied: processor resets
it has no program in RAM yet
Jump to the reset vector in ROM
on x86 the first fetch is near 0xFFFFFFF0, in the top 16 bytes of the 4 GiB space
Firmware work from non-volatile memory
Initialize memory and devices
RAM training, clocks, buses
Find a bootable device
disk, network or USB
Load the bootloader into RAM
the operating system takes over
Normal operation runs from RAM
the ROM was only the first rung of the ladder

The best-known use of ROM is booting, the bootstrap problem of starting a machine that has nothing loaded. At power-on a processor begins executing from a fixed address, and that address must hold valid code, so the system maps a non-volatile chip there. On x86 PCs the first instruction fetch occurs 16 bytes below the 4 GiB boundary, where the BIOS or its successor UEFI, held on a chip on the motherboard, begins its work. Phones and many other devices carry a small boot ROM burned into the processor itself, which checks cryptographic signatures on the next stage so that tampered software is refused; because that code cannot be altered, it serves as a root of trust for the whole security chain. Game cartridges, the character generators of early displays and the microcode of some processors have also used ROM, and microcontrollers inside appliances, cars and toys run from on-chip program memory of this kind.

The name is now partly a misnomer, which is the main source of confusion. Most modern firmware lives in flash memory that can be rewritten by an update, so a so-called ROM is often not read-only at all, and the update process is the reason a power failure during a firmware update can brick a device. The term is also reused elsewhere: a CD-ROM is an optical disc, pressed in a factory like a mask ROM, that has nothing to do with the memory chip in electronics, and a ROM file for an emulator is simply a copy of such a chip's contents. Another slip is to say ROM is not random access; in fact any location can be read directly in similar time, and the contrast with RAM is persistence and writability. Access is also typically slower than RAM, so systems often copy firmware code into RAM, called shadowing, to run faster.

Practical relevance today lies in embedded systems, security and the supply chain. A developer writing code for a microcontroller counts program memory, usually flash, separately from the small RAM, because they are different resources with different limits, and constants declared read-only are placed in the former. Firmware vulnerabilities are especially serious because code that executes before the operating system can survive reinstalling it, which is why features such as Secure Boot and signed firmware updates matter. Tools such as flash programmers and in-circuit debuggers write images to these chips, and hobbyist projects like the Arduino keep the program in the microcontroller's non-volatile memory and the variables in its RAM.

Read read-only memory as the instructions pinned to the inside of the machine's front door: not where thinking happens, but what must still be there after the power goes off so that the machine knows how to wake up.

Take read-only memory further

Ask the copilot about this term, or have our engineers assess it against your process.