Discrete-component ROM IBM used capacitor read-only storage (CROS) and
transformer read-only storage (TROS) to store microcode for the smaller
System/360 models, the
360/85, and the initial two
System/370 models (
370/155 and
370/165). On some models there was also a
writeable control store (WCS) 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 (a
look-up table). With the invention of the
integrated circuit came
mask ROM. Mask ROM consists of a grid of
word lines (the address input) and bit lines (the data output), 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. Subsequent developments have addressed these shortcomings.
Programmable read-only memory (PROM), invented by
Wen Tsing Chow in 1956, allowed users to program its contents exactly once by physically altering its structure with the application of high-voltage pulses. This addressed problems 1 and 2 above, since a company can simply order a large batch of fresh PROM chips and program them with the desired contents at its designers' convenience. The advent of the
metal–oxide–semiconductor field-effect transistor (MOSFET), invented at
Bell Labs in 1959, enabled the practical use of
metal–oxide–semiconductor (MOS) 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 (EPROM) in 1971. The 1971 invention of EPROM essentially solved problem 3, since EPROM (unlike PROM) can be repeatedly reset to its unprogrammed state by exposure to strong ultraviolet light.
Electrically erasable programmable read-only memory (EEPROM), 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 (for example, a personal computer via a
serial cable).
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. (Decreasing cost of reprogrammable devices had almost eliminated the market for mask ROM by the year 2000.) 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 (in the form of
USB flash drives and tiny
microSD memory cards, for example), and much lower power consumption.
Use for storing programs Many
stored-program computers use a form of
non-volatile storage (that is, storage that retains its data when power is removed) to store the initial program that runs when the computer is powered on or otherwise begins execution (a process known as
bootstrapping, often abbreviated to "
booting" or "booting up"). 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. (Until then it was not a stored-program computer as every program had to be manually wired into the machine, which could take days to weeks.) 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 (see
historical examples below). 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 (comprising 5-20 transistors) to retain its contents, while a ROM cell might consist of the absence (logical 0) or presence (logical 1) 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 (known as the
BIOS in
IBM-compatible computers). 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 (see below), to permit in-place reprogramming should the need for a firmware upgrade arise. However, simple and mature sub-systems (such as the keyboard or some communication controllers in the integrated circuits on the main board, for example) may employ mask ROM or
OTP (one-time programmable). 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 (
MP3 players,
set-top boxes, etc.) 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 (which typically lack hard disks for reasons of cost, size, or power consumption). 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 (at least in hard-wired mask form) 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 (for example, a
floating-point unit might
tabulate the sine function in order to facilitate faster computation). 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 (type 5150). The use of ROM to store such small amounts of data has disappeared almost completely in modern general-purpose computers. However,
NAND Flash has taken over a new role as a medium for
mass storage or
secondary storage of files. ==Types==