Content deleted Content added
→Factory-programmed: Add info Tags: Mobile edit Mobile web edit Advanced mobile edit |
m Reverted 1 edit by 76.146.44.234 (talk) to last revision by Guy Harris Tags: Twinkle Undo Disambiguation links added |
||
(15 intermediate revisions by 12 users not shown) | |||
Line 5:
[[File:PokemonSilverBoard.jpg|thumb|Many game consoles use interchangeable ROM cartridges, allowing for one system to play multiple games. Shown here is the inside of a ''[[Pokémon Silver]]'' [[Game Boy]] cartridge. The ROM is the IC on the right labeled "MX23C1603-12A".]]
'''Read-only memory''' ('''ROM''') 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,
Strictly speaking, ''read-only memory'' refers to
[[Floating-gate]] ROM [[semiconductor memory]] in the form of [[erasable programmable read-only memory]] (EPROM), [[electrically erasable programmable read-only memory]] (EEPROM) 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.<ref>{{Cite web|url=https://www.pcmag.com/encyclopedia/term/43279/flash-rom|archive-url=https://web.archive.org/web/20131110193127/http://www.pcmag.com/encyclopedia_term/0%2C%2Ct%3D%26i%3D43279%2C00.asp|url-status=dead|title=flash ROM Definition from PC Magazine Encyclopedia|archive-date=November 10, 2013|website=pcmag.com}}</ref>
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]]s" after the type of storage the file used to be written to, and they may distinguish between ROM (where software and data is stored, usually [[Flash memory]]) and RAM.
== History ==
Line 48:
=== Use for storing programs ===
Many [[stored-program computer]]s use a form of [[Non-volatile memory|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{{efn|Other terms are used as well, e.g., "[[IBM System/360 architecture#Initial Program Load|Initial Program Load]]" (IPL).}} as [[bootstrapping (computing)|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 (computer science)|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]] [[ENIAC#
Most [[home computer]]s 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 [[kilobyte|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 drive]]s, [[solid
ROM and [[#Types|successor technologies]] such as flash are prevalent in [[embedded system]]s. These are in everything from [[industrial robots]] to [[home appliances]] and [[consumer electronics]] ([[MP3 player]]s, [[set-top box]]es, etc.) all of which are designed for specific functions, but are based on general-purpose [[microprocessor]]s. 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]] [[Linux distribution|distributions]] on their MP3 players and wireless routers, respectively.
Line 61 ⟶ 60:
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]].
===
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 table]]s for the evaluation of mathematical and logical functions (for example, a [[floating-point unit]] might [[Look-up table#Sine Table Example|tabulate the sine function]] in order to facilitate faster computation). This was especially effective when [[CPU]]s were slow and ROM was cheap compared to RAM.
Line 73 ⟶ 71:
===Factory-programmed ===
''Mask ROM'' is a read-only memory whose contents are programmed by the [[integrated circuit]] manufacturer (rather than by the user). The desired memory contents are furnished by the customer to the device manufacturer. The desired data is converted into a custom [[photomask]]/mask layer for the final metallization of interconnections on the memory chip (hence the name).
Mask ROM can be made in several ways, all of which aim to change the electrical response of a transistor when it is addressed on a grid, such as:
* In a ROM with transistors in a NOR configuration, using a photomask to define only specific areas of a grid with transistors, to fill with metal thus connecting to the grid only part of all the transistors in the ROM chip<ref name="umich"/> thus making a grid where transistors that are connected cause a different electrical response when addressed, than spaces in the grid where the transistors are not connected, a connected transistor may represent a 1 and an unconnected one a 0, or viceversa. This is the least expensive, and fastest way of making mask ROM<ref name="umich"/> as it only needs one mask with data, and has the lowest density of all mask ROM types as it is done at the metallization layer,<ref name="umich"/> whose features can be relatively large in respect to other parts of the ROM. This is known as contact-programmed ROM. In ROM with a NAND configuration, this is known as metal-layer programming and the mask defines where to fill the areas surrounding transistors with metal which short-circuits the transistors instead, a transistor that is not short circuited may represent a 0, and one that is may represent a 1, or viceversa.<ref name="citeseerx">
Semi-invasive attacks - A new approach to hardware security analysis. SP Skorobogatov. 2005. https://citeseerx.ist.psu.edu/pdf/2b7ba7f2db6ae96cc7869282a1ab5d25fbe02f5b</ref>
* Using two masks to define two types of ion implantation regions for transistors, to change their electrical properties when addressed in a grid and define two types of transistors.<ref name="umich"/> The type of transistor defines if it represents a 1 or a 0 bit. One mask defines where to deposit one type of ion implantation (the "1" transistors), and another defines where to deposit the other (the "0" transistors). This is known as voltage threshold ROM (VTROM) as the different ion implantation types define different voltage thresholds in the transistors, and it's the voltage threshold on a transistor that defines a 0, or a 1. Can be used with NAND and NOR configurations. This technique offers a high level of resistance against optical reading of the contents as ion-implantation regions are difficult to distinguish optically,<ref name="citeseerx"/> which may be attempted with [[decapping]] of the ROM and a microscope.
* Using two levels of thickness for a gate oxide in transistors,<ref name="umich"/> and using a mask to define where to deposit one thickness of oxide, and another mask to deposit the other. Depending on the thickness a transistor can have different electrical properties and thus represent either a 1 or a 0.
* Using several masks to define the presence or absence of the transistors themselves, on a grid. Addressing a non-existent transistor may be interpreted as a 0, and if a transistor is present it may be interpreted as a 1, or viceversa. This is known as active-layer programming.<ref name="citeseerx"/>
Mask ROM transistors can be arranged in either NOR or NAND configurations and can achieve one of the smallest cell sizes possible as each bit is represented by only one transistor. NAND offers higher storage density than NOR. OR configurations are also possible, but compared to NOR it only connects transistors to V<sub>cc</sub> instead of V<sub>ss</sub>.<ref name="citeseerx"/> Mask ROMs used to be the most inexpensive, and are the simplest semiconductor memory devices, with only one metal layer and one polysilicon layer, making it the type of semiconductor memory with the highest manufacturing yield<ref name="umich"/> (the highest number of working devices per manufacturing run). ROM can be made using one of several semiconductor device fabrication technologies such as [[CMOS]], [[NMOS logic|nMOS]], [[PMOS logic|pMOS]], and [[bipolar
It is common practice to use rewritable [[non-volatile memory]] – such as UV-[[EPROM]] or [[EEPROM]] – for the development phase of a project, and to switch to mask ROM when the code has been finalized. For example, [[Atmel]] microcontrollers come in both EEPROM and mask ROM formats.
Line 100 ⟶ 97:
===Field-programmable===
* ''[[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 ([[Fuse (electrical)|fuses]] or [[antifuse]]s) 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 and data retention|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.
Line 120 ⟶ 116:
==Speed==
Although the relative speed of RAM vs. ROM has varied over time, {{As of|2007|lc=on}} 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 '''[[shadow RAM|shadowed]]''' before its first use, and subsequently read from RAM.
===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 can be used to achieve the highest write speeds of any rewritable ROM technology, with speeds as high as 10 [[Gigabyte|GB]]/[[second|s]] in an SSD. This has been enabled by the increased investment in both consumer and enterprise solid
==Endurance and data retention==
Line 150 ⟶ 145:
! Capacity ([[bit]]s)
! ROM type
! [[MOSFET]]
! Manufacturer(s)
! data-sort-type="number" | [[Semiconductor device fabrication|Process]]
Line 256 ⟶ 251:
|-
|1977
|
|16 kb
|PROM
Line 263 ⟶ 258:
|{{?}}
|{{?}}
|<ref name="ucom-43">{{cite book |title=
|-
|1977
Line 286 ⟶ 281:
|-
|1978
|
|16 kb
|PROM
Line 478 ⟶ 473:
== See also ==
* [[Flash memory]]
* [[Random
* [[Read-mostly memory]] (RMM)
* [[Write-only memory (engineering)|Write-only memory]]
|