ROM (Read-OnlyMemory):-
Read-only memory (
ROM) is a class of
storage medium used in
computers
and other electronic devices. Data stored in ROM can only be modified
slowly, with difficulty, or not at all, so it is mainly used to
distribute
firmware (
software that is very closely tied to specific
hardware, and unlikely to need frequent updates).
Strictly,
read-only memory refers to memory that is hard-wired, such as
diode matrix
and the later mask ROM. Although discrete circuits can be altered (in
principle), Integrated Circuits (ICs) cannot and are useless if the data
is bad. The fact that such memory can never be changed is a large
drawback; more recently,
ROM commonly refers to memory that is read-only in normal operation, while reserving the fact of some possible way to change it.
Other types of
non-volatile memory such as
erasable programmable read only memory (EPROM) and
electrically erasable programmable read-only memory
(EEPROM or Flash ROM) are sometimes referred to, in an abbreviated way,
as "read-only memory" (ROM); although these types of memory can be
erased and re-programmed multiple times, writing to this memory takes
longer and may require different procedures than reading the memory.
[1] When used in this less precise way, "ROM" indicates a
non-volatile memory which serves functions typically provided by mask ROM, such as storage of program code and nonvolatile data.
History:-
Read-only memory was used for Jacquard looms.
[2]
The simplest type of
solid state ROM is as old as
semiconductor technology itself.
Combinational logic gates can be joined manually to map
n-bit
address input onto arbitrary values of
m-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 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.
Subsequent developments have addressed these shortcomings.
PROM,
invented 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 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.
EEPROM, invented in 1983, 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 at
Toshiba
in the mid-1980s, and commercialized in the early 1990s, is a form of
EEPROM that makes very efficient use of chip area and can be erased and
reprogrammed thousands of times without damage.
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,"
[3] rather than the traditional use of ROM as a form of non-volatile
primary storage. As of 2007,
NAND has partially achieved this goal by offering throughput comparable
to hard disks, 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
Every
stored-program computer may 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.
[4] 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 (known as the
BIOS in
IBM-compatible computers). This arrangement allowed for a more complex and easily upgradeable operating system.
In modern PCs, "ROM" (or flash) 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 (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 really 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 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 (PROM), or one-time programmable ROM (OTP), 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 (fuses or antifuses) within the chip. Consequently, a PROM can only be programmed once.
- Erasable programmable read-only memory (EPROM) can be erased by exposure to strong ultraviolet
light (typically for 10 minutes or longer), 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 (EEPROM) is based on a similar semiconductor structure to EPROM, but allows its entire contents (or selected banks)
to be electrically erased, then rewritten electrically, so that they
need not be removed from the computer (or camera, MP3 player, etc.).
Writing or flashing an EEPROM is much slower (milliseconds per bit) than reading from a ROM or writing to a RAM (nanoseconds in both cases).
- Electrically alterable read-only memory (EAROM) 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 (usually around 12 V)
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 (or simply flash)
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 (exceeding 1,000,000 cycles). Modern NAND flash makes efficient use of silicon chip area, resulting in individual ICs with a capacity as high as 32 GB as of 2007; this feature, along with its endurance and physical durability, has allowed NAND flash to replace magnetic in some applications (such as USB flash drives). 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.
By applying
write protection, some types of reprogrammable ROMs may temporarily become read-only memory.
Other technologies
There are other types of non-volatile memory which are not based on solid-state IC technology, including:
Historical examples:-
-
Transformer matrix ROM (TROS), from the IBM System 360/20
- 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 (called BCROS for balanced capacitor read-only storage on the 360/50 and 360/65, or CCROS for charged capacitor read-only storage on the 360/30) or transformer (called TROS for transformer read-only storage on the 360/20, 360/40 and others) 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, and other places. This type of ROM was programmed by hand by weaving "word line wires" inside or outside of ferrite transformer cores.
- Dimond 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 ("stencil") 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:-
Reading:-
Although the relative speed of RAM vs. ROM has varied over time, as of 2007
large RAM chips can be read faster than most ROMs. For this reason (and
to allow uniform access), ROM content is sometimes copied to RAM or
shadowed before its first use, and subsequently read from RAM.
Writing:-
For those types of ROM that can be electrically modified, writing
speed is always 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 15 MB/s (or 70 ns/bit), by allowing (needing) large blocks of memory cells to be written simultaneously.