Read-only memory
:
Read only can also refer to a type of
file system permissions.
Read-only memory (
ROM) is a class of storage media used in
computers and other electronic devices. Because it cannot (easily) be written to, its main uses lie in the distribution of
firmware (
software that is very closely related to
hardware, and not likely to need frequent upgrading).
Modern
semiconductor ROMs typically take the shape of
IC packages, i.e. "computer chips", not immediately distinguishable from other chips like
RAMs but for the text printed on the chips. "ROM" in its strictest sense can only be read from, but all ROMs allow data to be written into them at least once, either during initial manufacturing or during a step called "programming". Some ROMs can be erased and re-programmed multiple times, although they are still referred to as "read only" because the reprogramming process involves relatively infrequent, complete erasure and reprogramming, not the frequent, bit- or word at a time updating that is possible with
RAM (random access memory).
Many
microcontrollers include the program ROM, a CPU core, some on-board peripherals, and RAM, all on one chip. Practically all
microprogrammed CPUs also include a kind of ROM on the same chip to hold the
control store.
Home computers of the early
1980s came with their complete
operating system in ROM, often including a
BASIC programming language interpreter. There was no reasonable alternative because
floppy disk drives were generally optional. Upgrading to a newer version meant replacing the old ROM chip with a new one -- using either a
soldering iron or a set of
DIP sockets.
Most
video game consoles from the
1970s to the mid-
1990s used ROMs as their primary software distribution medium. Such ROMs are sealed into plastic cases suitable for handling and repeated insertion, known as
cartridges or "carts" (called "Game Paks" by
Nintendo). Some home computers also used ROM cartridges for distributing games and other types of software. The
Nintendo 64 was the last major console to use ROM cartridges for software distribution, since Nintendo opted to go with an optical solution with the
Nintendo GameCube, holding nearly forty-two times as much, though at the cost of read, write, load and access times. As of the
2000s, only
handheld consoles like the
Game Boy Advance and
Nintendo DS continue using ROM cartridges.
There is a trend to put less and less software into static ROMs, and more on
disk storage. This makes changes easier. By the
2000s, operating systems for desktop computers are not generally on ROM anymore. Computers may still rely on some software in ROMs, like their
BIOS, but even that is more likely to reside on a Flash-ROM (see below).
Mobile phones and
personal digital assistants are likely to have software in ROM (or at least flash memory).
One reason why some data still sits in ROMs is speed – disks are an
order of magnitude slower. Even more important, though, is that you cannot read software that is needed to drive a disk from the disk itself – see
bootstrap. Hence the BIOS or a
bootloader for a computer is often stored in ROM. Also, a networking or graphics card may implement some basic functionality through software contained on a ROM chip. Another application for ROMs is in storing software for
embedded systems operating in physically demanding environments (exposed to, say, vibration, or high acceleration), where disks are too fragile.
Semiconductor based
Classic mask-programmed ROM chips are written to during production and cannot change content afterwards. But there are other types of non-volatile solid-state memory:
*
PROMs (Programmable Read-Only Memory) can be written to (
programmed) via a special device, a PROM programmer. The writing often takes the form of permanently destroying or creating internal links (
fuses or
antifuses) with the result that a PROM can only be programmed once.
*
EPROMs (Erasable Programmable Read-Only Memory) can be erased by exposure to
ultraviolet light then rewritten via an EPROM programmer. Repeated exposure to ultraviolet light will eventually destroy the EPROM but it generally takes many (greater than 1000) exposures before the EPROM becomes unusable. EPROMs can be easily identified by the circular 'window' in the top which allows the UV light to enter. Once programmed, this window is typically covered by a label to prevent accidental erasure.
*
EAROMs (Electrically Alterable Read-Only Memory) can be modified a bit at a time, but writing is intended to be an infrequent operation; most of the time the memory is used as a ROM. EAROM may be used to store critical system setup information in a
non-volatile way. For many applications, EAROM has been supplanted by
CMOS RAM backed-up by a
lithium battery.
*
EEPROM such as
Flash memory (Electrically Erasable Programmable Read-Only Memory) allow the entire ROM (or selected
banks of the ROM) to be electrically erased (
flashed back to zero) then written to without taking them out of the computer (camera, MP3 player, etc.). Flashing is much slower (milliseconds) than writing to RAM (nanoseconds) (or reading from any ROM).
* By applying
write protection, read/write memory may be turned (temporarily) into read-only memory.
Other technologies
There are also other types of non-volatile memory that are not solid-state chips:
* A
CD-ROM is a kind of
compact disc. A CD-ROM is Read Only, hence the name, while CD-R is Write-Once-Read-Many (analogous to a PROM), and CD-RW is Read/Write (analogous to an EEPROM).
*
Diode matrix ROM, which was used in small amounts in many computers in the
1960s as well as
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 was used in many computers until the
1970s. Like the diode matrix ROM, it was programmed by placing components at selected locations between a matrix of
word lines and
bit lines. The
ENIAC Function Tables were resistor matrix ROM, programmed by manually setting rotary switches. Various models of the IBM
System/360 and complex peripherial devices stored their
microcode in either capacitor (called
BCROS –
Balanced
Capacitor
Read
Only
Storage on the 360/50 & 360/65 or
CCROS –
Card
Capacitor
Read
Only
Storage on the 360/30) or transformer (called
TROS –
Transformer
Read
Only
Storage on the 360/40 and others) matrix ROM.
*
Core rope was a form of transformer matrix ROM technology used where size and/or 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.
* The perforated metal character mask ("
stencil") in
Charactron cathode ray tubes was used as ROM to shape a wide
electron beam to form a selected character shape on the screen either for display or overlay on a
video signal.
* Various mechanical devices have been used as ROM in early computing equipment. A machined metal plate was used this way in the dot matrix printers on the
IBM 026 and
IBM 029 key punchs.
Reading speed
Although this has varied over time, today, large RAMs can be read faster than most large ROMs. Therefore ROM content that is used often is sometimes copied to RAM and subsequently read from there (
shadowed).
Writing speed
For those types of ROMs that can be written to or electrically altered, the writing speed is always much slower than the reading speed and it may require unusual voltages, the movement of jumper plugs to apply write-enable signals, and/or special lock/unlock command codes written to the EAROM/Flash ROM.
Because they are written by forcing electrons through a layer of
electrical insulation onto a floating
transistor gate, re-writeable ROMs will only withstand a limited number of write cycles before the insulation is permanently damaged. In very old EAROMs, this damage could occur in as few as 1,000 write cycles. In modern Flash EEPROMs, the life may be in excess of 10,000 or even 100,000 cycles, but it is by no means infinite. It is partially for this reason (as well as their limited, more-expensive capacity) that Flash ROMs are unlikely to completely supplant magnetic
disk drives in the near future.
The reading life of a ROM is not limited by the number of cycles performed. The reading life of EPROMs, EAROMs, and EEPROMs
may be limited by charge leakage from the floating gates of the storage transistors, especially at high temperatures or in high
radiation environments. Masked ROMs or fused PROMs do not suffer from this effect; once a
1 or
0, always a
1 or
0 (although
fuse re-growth was once a problem in early fused PROMs).
Main article:
ROM imageThe contents of video game console ROM cartridges can be extracted with special
software, creating files known as "ROM images" for use in
emulators. Very often, these ROM images contain copyrighted software and there exists a large scene involving the illegal distribution and trade of such software. In such circles, the term "ROM images" is sometimes shortened simply to "ROMs" or sometimes changed to "romz" to highlight the connection with "
warez". The term, originally from a time when most console games were distributed on cartridges containing ROM chips, eventually became so popular that it was also applied to games distributed on
CD-ROMs which is still correct, though straying somewhat from the original meaning, and even to
floppy disks which is technically incorrect. The unauthorised copying/distribution of copyrighted software is a violation of
copyright laws, however.