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, such as video games, for programmable devices can be distributed as plug-in cartridges containing ROM.
Strictly speaking, read-only memory refers to hard-wired memory, such as diode matrix or a mask ROM integrated circuit, that cannot be electronically changed after manufacture. Although discrete circuits can be altered in principle, through the addition of bodge wires and the removal or replacement of components, ICs cannot. Correction of errors, or updates to the software, require new devices to be manufactured and to replace the installed device.
Floating-gate ROM semiconductor memory in the form of erasable programmable read-only memory, electrically erasable programmable read-only memory and flash 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 refer to a ROM device containing specific software or a file with software to be stored in a writable ROM device. For example, users modifying or replacing the Android operating system describe files containing a modified or replacement operating system as "custom ROM" after the type of storage the file used to be written to, and they may distinguish between ROM and RAM.
ROM and RAM are essential components of a computer, each serving distinct roles. RAM, or random access memory, is a temporary, volatile storage medium that loses data when the system powers down. In contrast, ROM, being non-volatile, preserves its data even after the computer is switched off.
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 System/370 models. 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 with transistor switches, and can represent an arbitrary look-up table with a regular physical layout and predictable propagation delay. Mask ROM is programmed with photomasks in photolithography during semiconductor manufacturing. The mask defines physical features or structures that will be removed, or added in the ROM chips, and the presence or absence of these features will represent either a 1 or a 0 bit, depending on the ROM design. Thus by design, any attempts to electronically change the data will fail, since the data is defined by the presence or absence of physical features or structures that cannot be electronically changed. For every software program, even for revisions of the same program, the entire mask must be changed, which can be costly.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 for every piece, or revision of software.
- 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 quickly 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.
The advent of the metal–oxide–semiconductor field-effect transistor, invented at Bell Labs in 1959, enabled the practical use of metal–oxide–semiconductor transistors as memory cell storage elements in semiconductor memory, a function previously served by magnetic cores in computer memory. In 1967, Dawon Kahng and Simon Sze of Bell Labs proposed that the floating gate of a MOS semiconductor device could be used for the cell of a reprogrammable ROM, which led to Dov Frohman of Intel inventing erasable programmable read-only memory in 1971. The 1971 invention of EPROM essentially solved problem 3, since EPROM can be repeatedly reset to its unprogrammed state by exposure to strong ultraviolet light.
Electrically erasable programmable read-only memory, developed by Yasuo Tarui, Yutaka Hayashi and Kiyoko Naga at the Electrotechnical Laboratory in 1972, went a long way to solving problem 4, since an EEPROM can be programmed in-place if the containing device provides a means to receive the program contents from an external source. Flash memory, invented by Fujio Masuoka at Toshiba in the early 1980s and commercialized in the late 1980s, is a form of EEPROM that makes very efficient use of chip area and can be erased and reprogrammed thousands of times without damage. It permits erasure and programming of only a specific part of the device, instead of the entire device. This can be done at high speed, hence the name "flash".
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 nearly completely achieved this goal by offering throughput higher than hard disks, lower latency, higher tolerance of physical shock, extreme miniaturization, and much lower power consumption.
Use for storing programs
Many stored-program computers 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 containing a BASIC interpreter and the KERNAL 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 processor, as well as the various firmware needed to internally control self-contained devices such as graphic cards, hard disk drives, solid-state drives, optical disc drives, TFT screens, etc., in the system. Today, many of these "read-only" memories – especially the BIOS/UEFI – are often replaced with EEPROM or 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.