Read-only memory (ROM) has its data fixed at manufacturing time (or programmed once after) and can’t be changed by normal operation. The processor can only read from it. Unlike SRAM and DRAM, ROM is non-volatile: data persists when power is removed.
Each ROM cell uses at most 1 transistor. In mask ROM a can be encoded by omitting the transistor at that crossing of word and bit lines, so the cell footprint is small and the contents are baked in at manufacture time. Mask ROM is cheap per bit in volume, but the trench/stack capacitor cells used in modern DRAM are denser at the same process node, so DRAM beats mask ROM on raw density.
Why have ROM
-
Boot code (firmware). When a computer powers on, it has to load the operating system from disk. The processor needs some initial code to know how to do that, and that code can’t be on disk because the disk-reading code lives in it. ROM holds the bootloader: a small piece of code burned into the chip that runs on power-up, initializes hardware, and loads the OS from a known location.
-
Embedded firmware. Microcontrollers in appliances, cars, IoT devices have their entire program in ROM (or flash); there’s no disk to load from. The program is fixed once and runs forever (or until the device is reflashed).
-
Lookup tables. ROM was historically used for character generators (mapping ASCII codes to pixel patterns), microcode in CISC processors, and audio sample tables. Today these are usually held in RAM that’s loaded at boot.
Variants
Variants differ by how (and whether) you can reprogram them:
- Mask ROM: programmed during chip manufacturing by altering the metal mask layer. Cheapest in volume, never reprogrammable. Used for high-volume firmware.
- PROM (Programmable ROM): programmed once after manufacturing using a special device (a “programmer”). Fuses are blown to set the bit pattern. Permanent.
- EPROM (Erasable PROM): programmed electrically, erasable by exposing the chip to UV light through a quartz window. Reusable but inconvenient.
- EEPROM: electrically erasable, byte-by-byte.
- Flash: like EEPROM but erased in larger blocks. Faster and cheaper per bit. See EEPROM and flash memory.
EEPROM and flash are technically read-mostly memory rather than read-only, but they descend from ROM and share the non-volatile property. The line between “ROM” and “non-volatile RAM” has blurred.
How ROM cells work
The mechanism varies by technology, but the idea is to alter the silicon (or charge state) so each cell naturally reads as or when accessed. Mask ROM does it by the presence or absence of a transistor (or contact) at each cell position, so half the cells have no device at all, which keeps the array compact and cheap. PROM does it by blowing or not blowing a fuse. EEPROM/flash, by trapping or not trapping charge on a floating gate.
Reading is fast, same as DRAM or faster, since there’s no refresh needed and the cell’s state is “stronger.” Writing (where supported at all) is slow, much slower than reading.
What “ROM” means now
Pure ROM is largely gone. The non-volatile slot in a modern system is filled by:
- Flash for firmware (BIOS, UEFI, microcontroller programs). Reflashable, but treated as ROM-like by software during normal operation.
- NVRAM or battery-backed SRAM for small amounts of configuration data.
- EEPROM for I²C-attached config storage in embedded systems.
Mask ROM still ships where the firmware genuinely never changes (game cartridges, simple appliances, dedicated controllers) because nothing else beats it on per-bit cost at high manufacturing volumes.