Electronics
ROM & Storage
The direct opposite of RAM: memory that keeps its content with no power at all. That single property covers two very different jobs — a small, fixed place for the code a device runs first (ROM/firmware), and a large, general-purpose place for everything else (mass storage) — and conflating the two is a common source of confusion.
- What it is
- Non-volatile memory — content survives with no power — in two forms: small/fixed ROM for firmware, and large/general-purpose HDD/SSD storage for everything else.
- Mental model
- A small plaque bolted to the wall (ROM — tiny, fixed, always there) vs. a filing cabinet (storage — huge, holds everything, a little slower to search).
- Key numbers
- HDD ≈ 100–200 MB/s; SATA SSD ≈ 500 MB/s; NVMe SSD ≈ 3,500–7,000+ MB/s.
- Reach for it when
- Describing what a system remembers after power is removed — the opposite property from RAM.
Non-volatile — the shared property
Everything on this page shares one trait, and it's the exact opposite of RAM's defining property: content survives with no power applied at all. That's the whole reason it exists — RAM is fast specifically because it never has to guarantee this; non-volatile memory is slower specifically because it does.
ROM vs. mass storage
"ROM" historically meant literally unchangeable — written once, at manufacture, forever. Modern "ROM" (a microcontroller's own flash, for instance) is usually actually rewritable flash memory that just behaves like read-only memory from the running program's point of view — small, fixed-purpose, holding firmware and bootloader code. Mass storage (HDD/SSD) is the opposite in scale and purpose: much larger, freely read/write, general-purpose space for an operating system, files, and installed programs.
HDD vs. SSD
An HDD stores data magnetically on spinning platters, physically moving a read/write head to each location — mechanical, cheaper per GB, meaningfully slower, especially for many small/scattered reads. An SSD stores data in flash memory chips with no moving parts at all — faster across the board, and dramatically faster specifically for random access, where an HDD's physical seek time dominates.
The boot role
The very first code any device runs on power-up has to live somewhere non-volatile, reachable before an operating system or any storage driver even exists — this is exactly the territory the Bootloaders domain covers in depth: ROM code, SPL, and U-Boot, each one handing off to the next until something capable of reading real storage is finally running.
Real-world applications
- Operating system and program storage — the SSD/HDD in any general-purpose computer.
- Embedded firmware — a microcontroller's on-chip flash — see the Embedded domain — holds the compiled program itself, non-volatile so it survives every power cycle.
- Boot ROM — the fixed, factory-programmed first-stage code covered in the Bootloaders domain, small and unchangeable by design.
Gotchas
- Flash memory (SSDs and embedded flash alike) has a limited number of program/erase cycles per cell — wear-leveling firmware exists specifically to spread writes evenly and extend real-world lifespan, relevant for embedded flash just as much as consumer SSDs.
- "ROM" in casual modern use is almost never true unchangeable read-only memory anymore — it's a naming holdover from when that was literally true.
- A "slow computer" is very often a storage bottleneck, not a CPU or RAM one — an old HDD is frequently the single biggest upgrade available for a sluggish older machine.