Read-only memory: Difference between revisions

Content deleted Content added
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
(36 intermediate revisions by 18 users not shown)
Line 1:
{{Short description|Electronic memory that cannot be changed}}
{{Hatnote|The concept of read-only data can also refer to [[file -system permissions]].}}
{{Redirect|ROM|the country with the country code ROM|Romania|the museum in Toronto|Royal Ontario Museum|other uses|ROM (disambiguation)}}
{{Memory types}}
[[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 (like [[video games]]) for programmable devices can be distributed as [[ROM cartridge|plug-in cartridges containing ROM]].
 
'''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, (likesuch as [[video gamesgame]])s, for programmable devices can be distributed as [[ROM cartridge|plug-in cartridges containing ROM]].
Strictly speaking, ''read-only memory'' refers to memory that is hard-wired, such as [[diode matrix]] or a [[Read-only memory#Solid-state ROM|mask ROM]] [[integrated circuit]] (IC), which cannot be electronically{{efn|Some discrete component ROM could be mechanically altered, e.g., by adding and removing transformers. IC ROMs, however, cannot be mechanically changed.}} changed after manufacture. Although discrete circuits can be altered in principle, through the addition of [[Jump wire|bodge wires]] and/or 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.
 
Strictly speaking, ''read-only memory'' refers to memory that is hard-wired memory, such as [[diode matrix]] or a [[Read-only memory#Solid-state ROM|mask ROM]] [[integrated circuit]] (IC), whichthat cannot be electronically{{efn|Some discrete component ROM could be mechanically altered, e.g., by adding and removing transformers. IC ROMs, however, cannot be mechanically changed.}} changed after manufacture. Although discrete circuits can be altered in principle, through the addition of [[Jump wire|bodge wires]] and/or 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]] (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 30 ⟶ 31:
Subsequent developments have addressed these shortcomings. [[Programmable read-only memory]] (PROM), invented by [[Wen Tsing Chow]] in 1956,<ref name="Huang2008">{{cite book|author=Han-Way Huang|title=Embedded System Design with C805|url=https://books.google.com/books?id=3zRtCgAAQBAJ&pg=PA22|date=5 December 2008|publisher=Cengage Learning|isbn=978-1-111-81079-5|page=22|url-status=live|archive-url=https://web.archive.org/web/20180427092847/https://books.google.com/books?id=3zRtCgAAQBAJ&pg=PA22|archive-date=27 April 2018}}</ref><ref name="AufaureZimányi2013">{{cite book|author1=Marie-Aude Aufaure|author2=Esteban Zimányi|title=Business Intelligence: Second European Summer School, eBISS 2012, Brussels, Belgium, July 15-21, 2012, Tutorial Lectures|url=https://books.google.com/books?id=7iK5BQAAQBAJ&pg=PA136|date=17 January 2013|publisher=Springer|isbn=978-3-642-36318-4|page=136|url-status=live|archive-url=https://web.archive.org/web/20180427092847/https://books.google.com/books?id=7iK5BQAAQBAJ&pg=PA136|archive-date=27 April 2018}}</ref> 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,<ref name="computerhistory">{{cite journal|url=https://www.computerhistory.org/siliconengine/metal-oxide-semiconductor-mos-transistor-demonstrated/|title=1960 - Metal Oxide Semiconductor (MOS) Transistor Demonstrated|journal=The Silicon Engine|publisher=[[Computer History Museum]]}}</ref> enabled the practical use of [[metal–oxide–semiconductor]] (MOS) transistors as [[Memory cell (computing)|memory cell]] storage elements in [[semiconductor memory]], a function previously served by [[magnetic-core memory|magnetic cores]] in [[computer memory]].<ref name="sciencedirect">{{cite web |title=Transistors - an overview |url=https://www.sciencedirect.com/topics/computer-science/transistors |website=[[ScienceDirect]] |access-date=8 August 2019 |archive-url=https://web.archive.org/web/20221013103615/https://www.sciencedirect.com/topics/computer-science/transistors |archive-date=13 October 2022 |url-status=dead}}</ref> 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.<ref name="computerhistory1971">{{cite web |title=1971: Reusable semiconductor ROM introduced |url=https://www.computerhistory.org/storageengine/reusable-semiconductor-rom-introduced/ |website=[[Computer History Museum]] |access-date=19 June 2019}}</ref> 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,<ref>{{cite journal|last1=Tarui|first1=Y.|last2=Hayashi|first2=Y.|last3=Nagai|first3=K.|title=Electrically reprogrammable nonvolatile semiconductor memory|journal=IEEE Journal of Solid-State Circuits|date=1972|volume=7|issue=5|pages=369–375|doi=10.1109/JSSC.1972.1052895|issn=0018-9200|bibcode=1972IJSSC...7..369T}}</ref> went a long way to solving problem 4, since an EEPROM can be programmed [[in-place programmable|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".<ref>{{Cite web|url=https://www.eweek.com/storage/1987-toshiba-launches-nand-flash|title=1987: Toshiba Launches NAND Flash|website=eWEEK}}</ref><ref>{{cite book
Line 47 ⟶ 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#ProgrammingImprovements |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|historical examples]] below). With the advent of [[integrated circuit]]s in the 1960s, both ROM and its mutable counterpart [[static RAM]] were implemented as arrays of [[transistor]]s 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 (electronics)|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.<ref>See chapters on "Combinatorial Digital Circuits" and "Sequential Digital Circuits" in Millman & Grable, ''Microelectronics,'' 2nd ed.</ref> Consequently, ROM could be implemented at a lower cost-per-[[bit]] than RAM for many years.
 
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 -state drive]]s, [[optical disc drive]]s, [[TFT screen]]s, 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 [[Programmable read-only memory|OTP]] (one-time programmable).
 
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 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]].
 
=== 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 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 69 ⟶ 68:
 
==Types==
[[Image:Eprom.jpg|thumb|right|300px|The first [[EPROM]], an [[Intel]] 1702, with the [[die (integrated circuit)|die]] and [[wire bond]]s clearly visible through the erase window.]]
 
===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 [[Photomaskphotomask]]/mask layer for the final metallization of interconnections on the memory chip (hence the name).
 
''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 transistor]]s.<ref>{{cite book | url=https://books.google.com/books?id=9VHMBQAAQBAJ&dq=prom+fuse&pg=PA760 | title=The Electronics Handbook | isbn=978-1-4200-3666-4 | last1=Whitaker | first1=Jerry C. | date=3 October 2018 | publisher=CRC Press }}</ref>
 
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.
 
The main advantage of mask ROM is its cost. Per bit, mask ROM iswas more compact than any other kind of [[semiconductor memory]]. Since the cost of an [[integrated circuit]] strongly depends on its size, mask ROM is significantly cheaper than any other kind of semiconductor memory.
 
However, the one-time masking cost is high and there is a long turn-around time from design to product phase. Design errors are costly: if an error in the data or code is found, the mask ROM is useless and must be replaced in order to change the code or data.<ref>{{cite book|first1=Paul|last1=Horowitz|first2=Winfield|last2=Hill|title=The Art of Electronics|year=2011 |edition=Third |publisher=[[Cambridge University Press]]|isbn=978-0-521-37095-0|page=817}}</ref>
Line 98 ⟶ 96:
It is also possible to write the contents of a Laser ROM by using a laser to alter the electrical properties of only some diodes on the ROM, or by using a laser to cut only some polysilicon links, instead of using a mask.<ref>J. J. Lee and N. R. Strader, "CMOS ROM arrays programmable by laser beam scanning," in IEEE Journal of Solid-State Circuits, vol. 22, no. 4, pp. 622-624, Aug. 1987, doi: 10.1109/JSSC.1987.1052783. https://ieeexplore.ieee.org/document/1052783</ref><ref>IButton AN937. https://pdfserv.maximintegrated.com/en/an/AN937.pdf</ref><ref name="citeseerx"/>
 
===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.
* ''[[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 (whether general-purpose or an embedded computer in a 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 or a few [[bit]]s at a time.<ref>{{cite book | url=https://books.google.com/books?id=ocjJE4KtZq4C&dq=Electrically+alterable+read-only+memory+%28EAROM%29&pg=PA130 | title=Ciarcia's Circuit Cellar | isbn=978-0-07-010963-6 | last1=Ciarcia | first1=Steve | date=1981 | publisher=Circuit Cellar }}</ref> Writing is a very slow process and again needs higher voltage (usually around 12 [[Volt|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 [[gigabyte|GB]] {{As of|2007|lc=on}}; this feature, along with its endurance and physical durability, has allowed NAND flash to replace [[magnetic storage|magnetic]] in some applications (such as [[USB flash drive]]s). [[NOR 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.
 
Line 115 ⟶ 112:
* [[Diode matrix]] ROM, used in small amounts in many computers in the 1960s as well as electronic desk [[calculator]]s and keyboard encoders for [[computer terminal|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 [[IBM System/360 Model 50|360/50]] and 360/65, or ''CCROS'' for ''card capacitor read-only storage'' on the [[IBM System/360 Model 30|360/30]]) or transformer (called ''TROS'' for ''[[transformer read-only storage]]'' on the [[IBM System/360 Model 30|360/20]], [[IBM System/360 Model 40|360/40]] and others) matrix ROM.
* [[Core rope memory|Core rope]], a form of transformer matrix ROM technology used where size and weight were critical. This was used in [[NASA]]/[[MIT]]'s [[Apollo Guidance Computer|Apollo Spacecraft Computers]], [[Digital Equipment Corporation|DEC]]'s [[PDP-8]] computers, the [[Hewlett-Packard 9100A]] calculator, and other places. This type of ROM was programmed by hand by weaving "word line wires" inside or outside of [[ferrite (magnet)|ferrite]] transformer cores.<ref>{{cite episode |url=https://www.youtube.com/watch?v=ndvmFlg1WmE |title=Computer for Apollo |series=MIT Science Reporter |station=[[WGBH-TV|WGBH]] |date=1965}}</ref>
* Diamond 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.
 
==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 achievescan 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 -state drives and flash memory products for higher end mobile devices. On a technical level the gains have been achieved by increasing parallelism both in controller design and of storage, the use of large DRAM read/write caches and the implementation of memory cells which can store more than one bit (DLC, TLC and MLC). The latter approach is more failure prone but this has been largely mitigated by overprovisioning (the inclusion of spare capacity in a product which is visible only to the drive controller) and by increasingly sophisticated read/write algorithms in drive firmware.
 
==Endurance and data retention==
Line 149 ⟶ 145:
! Capacity ([[bit]]s)
! ROM type
! [[MOSFET]]
! Manufacturer(s)
! data-sort-type="number" | [[Semiconductor device fabrication|Process]]
Line 255 ⟶ 251:
|-
|1977
|µCOMμCOM-43 (PMOS)
|16 kb
|PROM
Line 262 ⟶ 258:
|{{?}}
|{{?}}
|<ref name="ucom-43">{{cite book |title=µCOMμCOM-43 SINGLE CHIP MICROCOMPUTER: USERS' MANUAL |date=January 1978 |publisher=[[NEC|NEC Microcomputers]] |url=https://en.wikichip.org/w/images/9/9c/%C2%B5COM-43_SINGLE_CHIP_MICROCOMPUTER_USERS_MANUAL.pdf |access-date=27 June 2019}}</ref>
|-
|1977
Line 272 ⟶ 268:
|{{?}}
|{{?}}
|<ref name="Intel2003">{{cite web |title=Intel: 35 Years of Innovation (1968–2003) |url=https://www.intel.com/Assets/PDF/General/35yrs.pdf |publisher=Intel |year=2003 |access-date=26 June 2019 |archive-url=https://web.archive.org/web/20211104070452/https://www.intel.com/Assets/PDF/General/35yrs.pdf |archive-date=4 November 2021 |url-status=dead}}</ref><ref>{{cite web |title=2716: 16K (2K x 8) UV ERASABLE PROM |url=https://amigan.yatho.com/2716EPROM.pdf |publisher=Intel |access-date=27 June 2019 |archive-url=https://web.archive.org/web/20190627201743/https://amigan.yatho.com/2716EPROM.pdf |archive-date=27 June 2019 |url-status=dead}}</ref>
|-
|1978
Line 285 ⟶ 281:
|-
|1978
|µCOMμCOM-43 (CMOS)
|16 kb
|PROM
Line 322 ⟶ 318:
|4,000&nbsp;nm
|{{?}}
|<ref name="Intel-Product-Timeline"/><ref name="stol">{{cite web|url=http://maltiel-consulting.com/Semiconductor_technology_memory.html|title=Memory|website=STOL (Semiconductor Technology Online)|access-date=25 June 2019|archive-url=https://web.archive.org/web/20190625023332/http://maltiel-consulting.com/Semiconductor_technology_memory.html|archive-date=25 June 2019|url-status=dead}}</ref>
|-
|1981
Line 382 ⟶ 378:
|{{?}}
|{{?}}
|<ref>{{cite web |title=History of Fujitsu's Semiconductor Business |url=https://www.fujitsu.com/jp/group/fsl/en/business/semiconductor/history/ |publisher=[[Fujitsu]] |access-date=2 July 2019 |archive-url=https://web.archive.org/web/20190703012542/https://www.fujitsu.com/jp/group/fsl/en/business/semiconductor/history/ |archive-date=3 July 2019 |url-status=dead}}</ref>
|-
|{{Sort|1984|January 1984}}
Line 462 ⟶ 458:
|{{?}}
|{{?}}
|<ref name="smithsonian-japan">{{cite web |title=Japanese Company Profiles |url=http://smithsonianchips.si.edu/ice/cd/PROF96/JAPAN.PDF |publisher=[[Smithsonian Institution]] |year=1996 |access-date=27 June 2019 |archive-url=https://web.archive.org/web/20190627233902/http://smithsonianchips.si.edu/ice/cd/PROF96/JAPAN.PDF |archive-date=27 June 2019 |url-status=dead}}</ref>
|-
|1995
Line 477 ⟶ 473:
== See also ==
* [[Flash memory]]
* [[Random -access memory]]
* [[Read-mostly memory]] (RMM)
* [[Write-only memory (engineering)|Write-only memory]]