Read Only Memory
Read only memory is a form of hard-wired memory non-volatile memory, the contents of which cannot be changed once manufactured. ROM memory is commonly used to store programs that will not change during its lifetime. This form of memory is expensive and therefore is largely unused in recent years.
Used in some mature systems that don’t require updates and require stability (e.g. keyboards)
- Unlike software and some forms of firmware(ERPOM,EEPROM) the contents cannot be changed after manufacture, making the chip itself un-hackable
- The chips cannot only be used for one specific purpose/device and therefore they are expensive
- If bugs are found in the code, or an update is required to support hardware changes then a new ROM chip must be installed.
The term is also used to describe the memory stored on ROM BOIS/CMOS, though this is technically not true as newer BIOS chips can be flashed electronically.
Programmable Read Only Memory
This form of ROM can be programmed once, but only once. This makes it more adaptable and cheaper than ROM. The memory is fixed by the use of a fuse/anti-fuse. Once the data has been written it cannot be changed.
- Microcode or Firmware for mature devices
- As it can be programmed it is cheaper then ROM as chips can be repurposed.
- More secure than EPROM and EEPROM as data can’t be overwritten.
- If there is a bug in the code the chip must be discarded and replaced
Erasable Programmable Read Only Memory
This form of ROM allow multiple changes to the contents of the ROM through the use of an ultraviolet light. Once the data has been erased it can be programmed again through the use of a pulse voltage
- Some Microcontrollers and firmware chips used EPROM
- Mostly replaced with EEPROM
- Cheaper than ROM as the chips can be rewritten
- Specialist hardware is required to update the contents so not suitable for deployed devices
- More expensive than EEPROM
Electronically Erasable Programmable Read Only Memory
The most common form of ROM used today. Data is stored electronically using floating gate transistors. This means that the storage can be rewritten multiple times (1,000,000 times). Flash memory (used in USB sticks and SD cards) is a form of EEPROM with high speed and high density, at the cost of re-write cycles (sometimes limited to 10,000 read-write cycles)
- Firmware chips in embedded devices
- BIOS chips on computer motherboards
- USB Sticks / SD Cards (for flash variation)
- Lower cost than other chips
- Can be re-flashed easily whenever a firmware update is required.
- Not as secure as ROM/PROM