Read-only memory
Read-only memory is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing software that is rarely changed during the life of the system, also known as firmware. Software applications for programmable devices can be distributed as plug-in cartridges containing read-only memory.
Strictly, read-only memory refers to memory that is hard-wired, such as diode matrix or a mask ROM integrated circuit, which cannot be electronically changed after manufacture. Although discrete circuits can be altered in principle, through the addition of bodge wires and/or the removal or replacement of components, integrated circuits cannot. Correction of errors, or updates to the software, require new devices to be manufactured and to replace the installed device.
Erasable programmable read-only memory and electrically erasable programmable read-only memory can be erased and re-programmed, but usually this can only be done at relatively slow speeds, may require special equipment to achieve, and is typically only possible a certain number of times.
The term "ROM" is sometimes used to mean a ROM device containing specific software, or a file with software to be stored in EEPROM or Flash Memory. For example, users modifying or replacing the Android operating system describe files containing a modified or replacement operating system as "custom ROMs" after the type of storage the file used to be written to.
History
Discrete-component ROM
IBM used capacitor read-only storage and transformer read-only storage to store microcode for the smaller System/360 models, the 360/85 and the initial two models of the S/370. On some models there was also a writeable control store for additional diagnostics and emulation support. The Apollo Guidance Computer used core rope memory, programmed by threading wires through magnetic cores.Solid-state ROM
The simplest type of solid-state ROM is as old as the semiconductor technology itself. Combinational logic gates can be joined manually to map -bit address input onto arbitrary values of -bit data output. With the invention of the integrated circuit came mask ROM. Mask ROM consists of a grid of word lines and bit lines, selectively joined together with transistor switches, and can represent an arbitrary look-up table with a regular physical layout and predictable propagation delay.In mask ROM, the data is physically encoded in the circuit, so it can only be programmed during fabrication. This leads to a number of serious disadvantages:
- It is only economical to buy mask ROM in large quantities, since users must contract with a foundry to produce a custom design.
- The turnaround time between completing the design for a mask ROM and receiving the finished product is long, for the same reason.
- Mask ROM is impractical for R&D work since designers frequently need to modify the contents of memory as they refine a design.
- If a product is shipped with faulty mask ROM, the only way to fix it is to recall the product and physically replace the ROM in every unit shipped.
All of these technologies improved the flexibility of ROM, but at a significant cost-per-chip, so that in large quantities mask ROM would remain an economical choice for many years. Rewriteable technologies were envisioned as replacements for mask ROM.
The most recent development is NAND flash, also invented at Toshiba. Its designers explicitly broke from past practice, stating plainly that "the aim of NAND flash is to replace hard disks," rather than the traditional use of ROM as a form of non-volatile primary storage., NAND has partially achieved this goal by offering throughput comparable to hard disks, higher tolerance of physical shock, extreme miniaturization, and much lower power consumption.
Use for storing programs
Every stored-program computer may use a form of non-volatile storage to store the initial program that runs when the computer is powered on or otherwise begins execution. Likewise, every non-trivial computer needs some form of mutable memory to record changes in its state as it executes.Forms of read-only memory were employed as non-volatile storage for programs in most early stored-program computers, such as ENIAC after 1948. Read-only memory was simpler to implement since it needed only a mechanism to read stored values, and not to change them in-place, and thus could be implemented with very crude electromechanical devices. With the advent of integrated circuits in the 1960s, both ROM and its mutable counterpart static RAM were implemented as arrays of transistors in silicon chips; however, a ROM memory cell could be implemented using fewer transistors than an SRAM memory cell, since the latter needs a latch to retain its contents, while a ROM cell might consist of the absence or presence of one transistor connecting a bit line to a word line. Consequently, ROM could be implemented at a lower cost-per-bit than RAM for many years.
Most home computers of the 1980s stored a BASIC interpreter or operating system in ROM as other forms of non-volatile storage such as magnetic disk drives were too costly. For example, the Commodore 64 included 64 KB of RAM and 20 KB of ROM contained a BASIC interpreter and the "KERNAL" of its operating system. Later home or office computers such as the IBM PC XT often included magnetic disk drives, and larger amounts of RAM, allowing them to load their operating systems from disk into RAM, with only a minimal hardware initialization core and bootloader remaining in ROM. This arrangement allowed for a more complex and easily upgradeable operating system.
In modern PCs, "ROM" is used to store the basic bootstrapping firmware for the main processor, as well as the various firmware needed to internally control self-contained devices such as graphic cards, hard disks, DVD drives, TFT screens, etc., in the system. Today, many of these "read-only" memories – especially the BIOS – are often replaced with Flash memory, to permit in-place reprogramming should the need for a firmware upgrade arise. However, simple and mature sub-systems may employ mask ROM or OTP.
ROM and [|successor technologies] such as flash are prevalent in embedded systems. These are in everything from industrial robots to home appliances and consumer electronics all of which are designed for specific functions, but are based on general-purpose microprocessors. With software usually tightly coupled to hardware, program changes are rarely needed in such devices. As of 2008, most products use Flash rather than mask ROM, and many provide some means for connecting to a PC for firmware updates; for example, a digital audio player might be updated to support a new file format. Some hobbyists have taken advantage of this flexibility to reprogram consumer products for new purposes; for example, the iPodLinux and OpenWrt projects have enabled users to run full-featured Linux distributions on their MP3 players and wireless routers, respectively.
ROM is also useful for binary storage of cryptographic data, as it makes them difficult to replace, which may be desirable in order to enhance information security.
Use for storing data
Since ROM cannot be modified, it is only suitable for storing data which is not expected to need modification for the life of the device. To that end, ROM has been used in many computers to store look-up tables for the evaluation of mathematical and logical functions. This was especially effective when CPUs were slow and ROM was cheap compared to RAM.Notably, the display adapters of early personal computers stored tables of bitmapped font characters in ROM. This usually meant that the text display font could not be changed interactively. This was the case for both the CGA and MDA adapters available with the IBM PC XT.
The use of ROM to store such small amounts of data has disappeared almost completely in modern general-purpose computers. However, Flash ROM has taken over a new role as a medium for mass storage or secondary storage of files.
Types
Semiconductor-based
Classic mask-programmed ROM chips are integrated circuits that physically encode the data to be stored, and thus it is impossible to change their contents after fabrication. Other types of non-volatile solid-state memory permit some degree of modification:- Programmable read-only memory, or one-time programmable ROM, can be written to or programmed via a special device called a PROM programmer. Typically, this device uses high voltages to permanently destroy or create internal links within the chip. Consequently, a PROM can only be programmed once.
- Erasable programmable read-only memory can be erased by exposure to strong ultraviolet light, then rewritten with a process that again needs higher than usual voltage applied. Repeated exposure to UV light will eventually wear out an EPROM, but the [|endurance] of most EPROM chips exceeds 1000 cycles of erasing and reprogramming. EPROM chip packages can often be identified by the prominent quartz "window" which allows UV light to enter. After programming, the window is typically covered with a label to prevent accidental erasure. Some EPROM chips are factory-erased before they are packaged, and include no window; these are effectively PROM.
- Electrically erasable programmable read-only memory is based on a similar semiconductor structure to EPROM, but allows its entire contents to be electrically erased, then rewritten electrically, so that they need not be removed from the computer. Writing or flashing an EEPROM is much slower than reading from a ROM or writing to a RAM.
- * Electrically alterable read-only memory is a type of EEPROM that can be modified one bit at a time. Writing is a very slow process and again needs higher voltage than is used for read access. EAROMs are intended for applications that require infrequent and only partial rewriting. EAROM may be used as non-volatile storage for critical system setup information; in many applications, EAROM has been supplanted by CMOS RAM supplied by mains power and backed-up with a lithium battery.
- * Flash memory is a modern type of EEPROM invented in 1984. Flash memory can be erased and rewritten faster than ordinary EEPROM, and newer designs feature very high endurance. Modern NAND flash makes efficient use of silicon chip area, resulting in individual ICs with a capacity as high as 32 GB ; this feature, along with its endurance and physical durability, has allowed NAND flash to replace magnetic in some applications. Flash memory is sometimes called flash ROM or flash EEPROM when used as a replacement for older ROM types, but not in applications that take advantage of its ability to be modified quickly and frequently.
Other technologies
There are other types of non-volatile memory which are not based on solid-state IC technology, including:- Optical storage media, such CD-ROM which is read-only. CD-R is Write Once Read Many, while CD-RW supports erase-rewrite cycles ; both are designed for backwards-compatibility with CD-ROM.
Historical examples
- Diode matrix ROM, used in small amounts in many computers in the 1960s as well as electronic desk calculators and keyboard encoders for terminals. This ROM was programmed by installing discrete semiconductor diodes at selected locations between a matrix of word line traces and bit line traces on a printed circuit board.
- Resistor, capacitor, or transformer matrix ROM, used in many computers until the 1970s. Like diode matrix ROM, it was programmed by placing components at selected locations between a matrix of word lines and bit lines. ENIAC's Function Tables were resistor matrix ROM, programmed by manually setting rotary switches. Various models of the IBM System/360 and complex peripheral devices stored their microcode in either capacitor or transformer matrix ROM.
- Core rope, a form of transformer matrix ROM technology used where size and weight were critical. This was used in NASA/MIT's Apollo Spacecraft Computers, DEC's PDP-8 computers, the Hewlett-Packard 9100A calculator, and other places. This type of ROM was programmed by hand by weaving "word line wires" inside or outside of ferrite transformer cores.
- Diamond Ring stores, in which wires are threaded through a sequence of large ferrite rings that function only as sensing devices. These were used in TXE telephone exchanges.
- The perforated metal character mask in Charactron cathode ray tubes, which was used as ROM to shape a wide electron beam to form a selected character shape on the screen either for display or a scanned electron beam to form a selected character shape as an overlay on a video signal.
Speed
Writing
For those types of ROM that can be electrically modified, writing speed has traditionally been much slower than reading speed, and it may need unusually high voltage, the movement of jumper plugs to apply write-enable signals, and special lock/unlock command codes. Modern NAND Flash achieves the highest write speeds of any rewritable ROM technology, with speeds as high as 10 GB/s, this has been enabled by the increased investment in both consumer and enterprise solid state drives and flash memory products for higher end mobile devices. On a technical level the gains have been achieved by increasing parallelism both in controller design and of storage, the use of large DRAM read/write caches and the implementation of memory cells which can store more than one bit. The latter approach is more failure prone but this has been largely mitigated by overprovisioning and by increasingly sophisticated read/write algorithms in drive firmware.Endurance and data retention
Because they are written by forcing electrons through a layer of electrical insulation onto a floating transistor gate, rewriteable ROMs can withstand only a limited number of write and erase cycles before the insulation is permanently damaged. In the earliest EPROMs, this might occur after as few as 1,000 write cycles, while in modern Flash EEPROM the endurance may exceed 1,000,000. The limited endurance, as well as the higher cost per bit, means that Flash-based storage is unlikely to completely supplant magnetic disk drives in the near future.The timespan over which a ROM remains accurately readable is not limited by write cycling. The data retention of EPROM, EAROM, EEPROM, and Flash may be time-limited by charge leaking from the floating gates of the memory cell transistors. Early generation EEPROM's, in the mid 1980's generally cited 5 or 6 year data retention. A review of EEPROM's offered in the year 2020 shows manufacturers citing 100 year data retention. Adverse environments will reduce the retention time. Masked ROM and fuse/antifuse PROM do not suffer from this effect, as their data retention depends on physical rather than electrical permanence of the integrated circuit, although fuse re-growth was once a problem in some systems.
Content images
The contents of ROM chips can be extracted with special hardware devices and relevant controlling software. This practice is common for, as a main example, reading the contents of older video game console cartridges. Another example is making backups of firmware/OS ROMs from older computers or other devices - for archival purposes, as in many cases, the original chips are PROMs and thus at risk of exceeding their usable data lifetime.The resultant memory dump files are known as ROM images or abbreviated ROMs, and can be used to produce duplicate ROMs - for example to produce new cartridges or as digital files for playing in console emulators. The term ROM image originated when most console games were distributed on cartridges containing ROM chips, but achieved such widespread usage that it is still applied to images of newer games distributed on CD-ROMs or other optical media.
ROM images of commercial games, firmware, etc. usually contain copyrighted software. The unauthorized copying and distribution of copyrighted software is a violation of copyright laws in many jurisdictions, although duplication for backup purposes may be considered fair use depending on location. In any case, there is a thriving community engaged in the distribution and trading of such software and abandonware for preservation/sharing purposes.
Timeline
Date of introduction | Chip name | Capacity | ROM type | MOSFET | Manufacturer | Process | Area | |
1956 | PROM | Arma | ||||||
1965 | 256-bit | ROM | Bipolar TTL | Sylvania | ||||
1965 | 1 kb | ROM | MOS | General Microelectronics | ||||
1969 | 3301 | 1 kb | ROM | Bipolar | Intel | |||
1970 | 512-bit | PROM | Bipolar TTL | Radiation | ||||
1971 | 1702 | 2 kb | EPROM | Static MOS | Intel | 15 mm² | ||
1974 | 4 kb | ROM | MOS | AMD, General Instrument | ||||
1974 | EAROM | MNOS | General Instrument | |||||
1975 | 2708 | 8 kb | EPROM | NMOS | Intel | |||
1976 | 2 kb | EEPROM | MOS | Toshiba | ||||
1977 | µCOM-43 | 16 kb | PROM | PMOS | NEC | |||
1977 | 2716 | 16 kb | EPROM | TTL | Intel | |||
1978 | EA8316F | 16 kb | ROM | NMOS | Electronic Arrays | 436 mm² | ||
1978 | µCOM-43 | 16 kb | PROM | CMOS | NEC | |||
1978 | 2732 | 32 kb | EPROM | NMOS | Intel | |||
1978 | 2364 | 64 kb | ROM | NMOS | Intel | |||
1980 | 16 kb | EEPROM | NMOS | Motorola | 4,000 nm | |||
1981 | 2764 | 64 kb | EPROM | NMOS | Intel | 3,500 nm | ||
1982 | 32 kb | EEPROM | MOS | Motorola | ||||
1982 | 27128 | 128 kb | EPROM | NMOS | Intel | |||
1983 | 64 kb | EPROM | CMOS | Signetics | 3,000 nm | |||
1983 | 27256 | 256 kb | EPROM | NMOS | Intel | |||
1983 | 256 kb | EPROM | CMOS | Fujitsu | ||||
MBM 2764 | 64 kb | EEPROM | NMOS | Fujitsu | 528 mm² | |||
1984 | 512 kb | EPROM | NMOS | AMD | 1,700 nm | |||
1984 | 27512 | 512 kb | EPROM | NMOS | Intel | |||
1984 | 1 Mb | EPROM | CMOS | NEC | 1,200 nm | |||
1987 | 4 Mb | EPROM | CMOS | Toshiba | 800 nm | |||
1990 | 16 Mb | EPROM | CMOS | NEC | 600 nm | |||
1993 | 8 Mb | MROM | CMOS | Hyundai | ||||
1995 | 1 Mb | EEPROM | CMOS | Hitachi | ||||
1995 | 16 Mb | MROM | CMOS | AKM, Hitachi |
Terminology
- EEPROM: electrically erasable programmable read-only memory can be reprogrammed and reused many times
- EPROM: erasable programmable read-only memory that can be erased by ultraviolet light for reuse
- PROM: programmable read-only memory can be written once