Computer memory: Difference between revisions
imported>John Stpola change |
update |
||
| Line 1: | Line 1: | ||
{{ | {{Short description|Component that stores information}} | ||
[[File:RAM Module (SDRAM-DDR4).jpg|thumb|[[DDR4 SDRAM]] module. {{As of|2021}}, over 90 percent of computer memory used in PCs and servers was of this type.<ref>{{cite news |last1=Read |first1=Jennifer |title=DDR5 Era To Officially Begin In 2021, With DRAM Market Currently Transitioning Between Generations, Says TrendForce |url=https://www.emsnow.com/ddr5-era-to-officially-begin-in-2021-with-dram-market-currently-transitioning-between-generations-says-trendforce/ |access-date=2 November 2022 |publisher=EMSNow |date=5 November 2020}}</ref> |alt=An orange metal heatsink covers the RAM ICs, which are soldered to the printed circuitboard underneath the heatsink. Part of the printed circuit board can be seen as a strip of green below the heatsink. Gold contacts that are inserted into the computer are at the very bottom.]] | |||
{{Memory types}} | |||
'''Computer memory''' stores information, such as data and programs, for immediate use in the [[Computer|computer]];<ref name=":1">{{cite web |last1=Hemmendinger |first1=David |title=Computer memory |url=https://www.britannica.com/technology/computer-memory |website=Encyclopedia Britannica |access-date=16 October 2019 |date=February 15, 2016}}</ref> instructions fetched by the computer, and data fetched and stored by those instructions, are located in computer memory. The terms ''memory'', ''main memory'', and ''primary storage'' are also used for computer memory. | |||
Computer memory is often referred to as ''RAM'', meaning [[Random-access memory|random-access memory]], although some older forms of computer memory, such as [[Drum memory|drum memory]], are not random-access. Archaic synonyms for main memory include ''core'' (for [[Magnetic-core memory|magnetic-core memory]]) and ''store''.<ref>{{cite book |author1=A.M. Turing |author2=R.A. Brooker |date=1952 |chapter-url=http://www.alanturing.net/turing_archive/archive/m/m01/M01-005.html |chapter=1. General remarks on electronic computers |title=Programmer's Handbook for Manchester Electronic Computer Mark II |url-status=live |archive-url=https://web.archive.org/web/20140102231704/http://www.alanturing.net/turing_archive/archive/m/m01/M01-005.html |archive-date=2014-01-02 |publisher=[[Organization:University of Manchester|University of Manchester]]}}</ref> | |||
Most semiconductor memory is organized into memory cells each storing one bit (0 or 1). Flash memory organization includes both one bit per memory cell and multi-level cell capable of storing multiple bits per cell. The memory cells | Main memory operates at a high speed compared to [[Mass storage|mass storage]] which is slower but less expensive per bit and higher in capacity. Besides storing opened programs and data being actively processed, computer memory serves as a [[Page cache|mass storage cache]] and [[Write buffer|write buffer]] to improve both reading and writing performance. Operating systems typically borrow RAM capacity for caching so long as it is not needed by running software.<ref>{{cite web| url = https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html| title = Documentation for /proc/sys/vm/}}</ref> If needed, contents of the computer memory can be transferred to storage; a common way of doing this is through a memory management technique called ''[[Virtual memory|virtual memory]]''. | ||
Modern computer memory is implemented as [[Engineering:Semiconductor memory|semiconductor memory]],<ref>{{cite web |title=The MOS Memory Market |url=http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC01.PDF |archive-url=https://web.archive.org/web/20030725103322/http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC01.PDF |archive-date=2003-07-25 |url-status=live |website=Integrated Circuit Engineering Corporation |publisher=[[Organization:Smithsonian Institution|Smithsonian Institution]] |year=1997 |access-date=16 October 2019}}</ref><ref>{{cite web |title=MOS Memory Market Trends |url=http://smithsonianchips.si.edu/ice/cd/STATUS98/SEC07.PDF |archive-url=https://web.archive.org/web/20191016225542/http://smithsonianchips.si.edu/ice/cd/STATUS98/SEC07.PDF |archive-date=2019-10-16 |url-status=live |website=Integrated Circuit Engineering Corporation |publisher=[[Organization:Smithsonian Institution|Smithsonian Institution]] |year=1998 |access-date=16 October 2019}}</ref> where data is stored within [[Memory cell (computing)|memory cells]] built from MOS transistors and other components on an [[Engineering:Integrated circuit|integrated circuit]].<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> There are two main kinds of semiconductor memory: [[Volatile memory|volatile]] and non-volatile. Examples of [[Non-volatile memory|non-volatile memory]] are [[Flash memory|flash memory]] and ROM, [[Programmable read-only memory|PROM]], [[Engineering:EPROM|EPROM]], and [[EEPROM]] memory. Examples of [[Volatile memory|volatile memory]] are [[Dynamic random-access memory|dynamic random-access memory]] (DRAM) used for primary storage and [[Static random-access memory|static random-access memory]] (SRAM) used mainly for [[CPU cache]]. | |||
Most semiconductor memory is organized into [[Memory cell (computing)|memory cells]] each storing one [[Bit|bit]] (0 or 1). [[Flash memory]] organization includes both one bit per memory cell and a [[Multi-level cell|multi-level cell]] capable of storing multiple bits per cell. The memory cells are grouped into words of fixed word length, for example, 1, 2, 4, 8, 16, 32, 64 or 128 bits. Each word can be accessed by a binary address of ''N'' bits, making it possible to store 2<sup>''N''</sup> words in the memory. | |||
== History == | == History == | ||
[[File:Memoria elettromeccanica per il calcolatore IBM 602A - Museo scienza tecnologia Milano D1191.jpg|thumb|Electromechanical memory used in the [[ | [[File:Historical cost of computer memory and storage.svg|thumb|Historical lowest retail price of computer memory and [[computer storage|storage]] ]] | ||
[[File:ENIAC Penn2.jpg|thumb|Detail of the back of a section of ENIAC, showing vacuum tubes ]] | [[File:Memoria elettromeccanica per il calcolatore IBM 602A - Museo scienza tecnologia Milano D1191.jpg|thumb|Electromechanical memory used in the [[IBM 602]], an early punch multiplying calculator]] | ||
[[File:James Pomerene IAS machine.jpg|thumb|upright| [[ | [[File:ENIAC Penn2.jpg|thumb|Detail of the back of a section of [[Engineering:ENIAC|ENIAC]], showing vacuum tubes ]] | ||
[[File:James Pomerene IAS machine.jpg|thumb|upright| [[Williams tube]] used as memory in the IAS computer {{circa|1951}}]] | |||
[[File:8 bytes vs. 8Gbytes.jpg|thumb|8{{nbsp}}[[Gibibyte|GB]] microSDHC card on top of 8{{nbsp}}bytes of [[Magnetic-core memory|magnetic-core memory]] (1{{nbsp}}core is 1{{nbsp}}[[Bit|bit]].)]] | [[File:8 bytes vs. 8Gbytes.jpg|thumb|8{{nbsp}}[[Gibibyte|GB]] microSDHC card on top of 8{{nbsp}}bytes of [[Magnetic-core memory|magnetic-core memory]] (1{{nbsp}}core is 1{{nbsp}}[[Bit|bit]].)]] | ||
| Line 20: | Line 25: | ||
The next significant advance in computer memory came with acoustic [[Delay-line memory|delay-line memory]], developed by [[Biography:J. Presper Eckert|J. Presper Eckert]] in the early 1940s. Through the construction of a glass tube filled with [[Chemistry:Mercury (element)|mercury]] and plugged at each end with a quartz crystal, delay lines could store bits of information in the form of sound waves propagating through the mercury, with the quartz crystals acting as [[Engineering:Transducer|transducer]]s to read and write bits. Delay-line memory was limited to a capacity of up to a few thousand bits. | The next significant advance in computer memory came with acoustic [[Delay-line memory|delay-line memory]], developed by [[Biography:J. Presper Eckert|J. Presper Eckert]] in the early 1940s. Through the construction of a glass tube filled with [[Chemistry:Mercury (element)|mercury]] and plugged at each end with a quartz crystal, delay lines could store bits of information in the form of sound waves propagating through the mercury, with the quartz crystals acting as [[Engineering:Transducer|transducer]]s to read and write bits. Delay-line memory was limited to a capacity of up to a few thousand bits. | ||
Two alternatives to the delay line, the [[Williams tube]] and [[Selectron tube]], originated in 1946, both using electron beams in glass tubes as means of storage. Using [[Engineering:Cathode | Two alternatives to the delay line, the [[Williams tube]] and [[Selectron tube]], originated in 1946, both using electron beams in glass tubes as means of storage. Using [[Engineering:Cathode ray tube|cathode ray tube]]s, Fred Williams invented the Williams tube, which was the first [[Random-access memory|random-access computer memory]]. The Williams tube was able to store more information than the Selectron tube (the Selectron was limited to 256 bits, while the Williams tube could store thousands) and was less expensive. The Williams tube was nevertheless frustratingly sensitive to environmental disturbances. | ||
Efforts began in the late 1940s to find [[Non-volatile memory|non-volatile memory]]. [[Magnetic-core memory]] allowed for recall | Efforts began in the late 1940s to find [[Non-volatile memory|non-volatile memory]]. [[Magnetic-core memory]] allowed for memory recall after power loss. It was developed by Frederick W. Viehe and [[Biography:An Wang|An Wang]] in the late 1940s, and improved by Jay Forrester and Jan A. Rajchman in the early 1950s, before being commercialized with the [[Engineering:Whirlwind I|Whirlwind I]] computer in 1953.<ref>{{cite web |title=1953: Whirlwind computer debuts core memory |url=https://www.computerhistory.org/storageengine/whirlwind-computer-debuts-core-memory/ |website=Computer History Museum |access-date=2 August 2019}}</ref> Magnetic-core memory was the dominant form of memory until the development of [[Engineering:MOSFET|MOS]] [[Engineering:Semiconductor memory|semiconductor memory]] in the 1960s.<ref name="computerhistory1966" /> | ||
The first [[Engineering:Semiconductor memory|semiconductor memory]] was implemented as a [[Engineering:Flip-flop (electronics)|flip-flop]] circuit in the early 1960s using bipolar transistors.<ref name="computerhistory1966">{{cite web |title=1966: Semiconductor RAMs Serve High-speed Storage Needs |url=https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/ |website=Computer History Museum |access-date=19 June 2019}}</ref> Semiconductor memory made from discrete devices was first shipped by [[Company:Texas Instruments|Texas Instruments]] to the | The first [[Engineering:Semiconductor memory|semiconductor memory]] was implemented as a [[Engineering:Flip-flop (electronics)|flip-flop]] circuit in the early 1960s using bipolar transistors.<ref name="computerhistory1966">{{cite web |title=1966: Semiconductor RAMs Serve High-speed Storage Needs |url=https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/ |website=Computer History Museum |access-date=19 June 2019}}</ref> Semiconductor memory made from discrete devices was first shipped by [[Company:Texas Instruments|Texas Instruments]] to the United States Air Force in 1961. In the same year, the concept of [[Physics:Solid-state electronics|solid-state]] memory on an [[Engineering:Integrated circuit|integrated circuit]] (IC) chip was proposed by applications engineer Bob Norman at [[Company:Fairchild Semiconductor|Fairchild Semiconductor]].<ref>{{Cite web|url=https://www.computerhistory.org/storageengine/transistors-make-fast-memories/|title=1953: Transistors make fast memories {{!}} The Storage Engine {{!}} Computer History Museum|website=www.computerhistory.org|access-date=2019-11-14}}</ref> The first bipolar semiconductor memory IC chip was the SP95 introduced by [[Company:IBM|IBM]] in 1965.<ref name="computerhistory1966"/> While semiconductor memory offered improved performance over magnetic-core memory, it remained larger and more expensive and did not displace magnetic-core memory until the late 1960s.<ref name="computerhistory1966"/><ref>{{cite book |last1=Orton |first1=John W. |title=Semiconductors and the Information Revolution: Magic Crystals that made IT Happen |date=2009 |publisher=[[Company:Academic Press|Academic Press]] |isbn=978-0-08-096390-7 |page=104 |url=https://books.google.com/books?id=6YLL9197NfMC&pg=PA104}}</ref> | ||
=== MOS memory === | === MOS memory === | ||
The invention of the metal–oxide–semiconductor field-effect transistor ([[Engineering:MOSFET|MOSFET]]) enabled the practical use of metal–oxide–semiconductor (MOS) transistors as [[Memory cell (computing)|memory cell]] storage elements. MOS memory was developed by John Schmidt at [[Company:Fairchild Semiconductor|Fairchild Semiconductor]] in 1964.<ref>{{Cite book|url=https://books.google.com/books?id=kG4rAQAAIAAJ&q=John+Schmidt|title=Solid State Design - Vol. 6|date=1965|publisher=Horizon House}}</ref> In addition to higher performance, MOS [[Engineering:Semiconductor memory|semiconductor memory]] was cheaper and consumed less power than magnetic core memory.<ref name="computerhistory1970">{{cite web |title=1970: MOS Dynamic RAM Competes with Magnetic Core Memory on Price |url=https://www.computerhistory.org/siliconengine/mos-dynamic-ram-competes-with-magnetic-core-memory-on-price/ |website=Computer History Museum |access-date=29 July 2019}}</ref> In 1965, J. Wood and R. Ball of the Royal Radar Establishment proposed digital storage systems that use [[Engineering:CMOS|CMOS]] (complementary MOS) memory cells, in addition to MOSFET power devices for the power supply, switched cross-coupling, switches and [[Delay-line memory|delay-line storage]].<ref>{{cite conference |last1=Wood |first1=J. |last2=Ball |first2=R. |title=1965 IEEE International Solid-State Circuits Conference. Digest of Technical Papers |chapter=The use of insulated-gate field-effect transistors in digital storage systems | The invention of the metal–oxide–semiconductor field-effect transistor ([[Engineering:MOSFET|MOSFET]]) enabled the practical use of metal–oxide–semiconductor (MOS) transistors as [[Memory cell (computing)|memory cell]] storage elements. MOS memory was developed by John Schmidt at [[Company:Fairchild Semiconductor|Fairchild Semiconductor]] in 1964.<ref>{{Cite book|url=https://books.google.com/books?id=kG4rAQAAIAAJ&q=John+Schmidt|title=Solid State Design - Vol. 6|date=1965|publisher=Horizon House}}</ref> In addition to higher performance, MOS [[Engineering:Semiconductor memory|semiconductor memory]] was cheaper and consumed less power than magnetic core memory.<ref name="computerhistory1970">{{cite web |title=1970: MOS Dynamic RAM Competes with Magnetic Core Memory on Price |url=https://www.computerhistory.org/siliconengine/mos-dynamic-ram-competes-with-magnetic-core-memory-on-price/ |website=Computer History Museum |access-date=29 July 2019}}</ref> In 1965, J. Wood and R. Ball of the [[Engineering:Royal Radar Establishment|Royal Radar Establishment]] proposed digital storage systems that use [[Engineering:CMOS|CMOS]] (complementary MOS) memory cells, in addition to MOSFET power devices for the power supply, switched cross-coupling, switches and [[Delay-line memory|delay-line storage]].<ref>{{cite conference |last1=Wood |first1=J. |last2=Ball |first2=R. |title=1965 IEEE International Solid-State Circuits Conference. Digest of Technical Papers |chapter=The use of insulated-gate field-effect transistors in digital storage systems |date=February 1965 |volume=VIII |pages=82–83 |doi=10.1109/ISSCC.1965.1157606}}</ref> The development of silicon-gate [[Engineering:MOS integrated circuit|MOS integrated circuit]] (MOS IC) technology by [[Biography:Federico Faggin|Federico Faggin]] at Fairchild in 1968 enabled the production of MOS memory chips.<ref>{{cite web |title=1968: Silicon Gate Technology Developed for ICs |url=https://www.computerhistory.org/siliconengine/silicon-gate-technology-developed-for-ics/ |website=Computer History Museum |access-date=10 August 2019}}</ref> [[NMOS logic|NMOS]] memory was commercialized by [[Company:IBM|IBM]] in the early 1970s.<ref>{{cite journal |last1=Critchlow |first1=D. L. |title=Recollections on MOSFET Scaling |journal=IEEE Solid-State Circuits Society Newsletter |date=2007 |volume=12 |issue=1 |pages=19–22 |doi=10.1109/N-SSC.2007.4785536 |doi-access= }}</ref> MOS memory overtook magnetic core memory as the dominant memory technology in the early 1970s.<ref name="computerhistory1970"/> | ||
The two main types of volatile [[Random-access memory|random-access memory]] (RAM) are [[Static random-access memory|static random-access memory]] (SRAM) and [[Dynamic random-access memory|dynamic random-access memory]] (DRAM). Bipolar SRAM was invented by Robert Norman at Fairchild Semiconductor in 1963,<ref name="computerhistory1966"/> followed by the development of MOS SRAM by John Schmidt at Fairchild in 1964.<ref name="computerhistory1970"/> SRAM became an alternative to magnetic-core memory, but requires six transistors for each [[Bit|bit]] of data.<ref name="ibm100">{{cite web |title=DRAM |url=https://www.ibm.com/ibm/history/ibm100/us/en/icons/dram/ |website=IBM100 |publisher=[[Company:IBM|IBM]] |access-date=20 September 2019 |date=9 August 2017}}</ref> Commercial use of SRAM began in 1965, when IBM introduced their SP95 SRAM chip for the System/360 Model 95.<ref name="computerhistory1966"/> | The two main types of volatile [[Random-access memory|random-access memory]] (RAM) are [[Static random-access memory|static random-access memory]] (SRAM) and [[Dynamic random-access memory|dynamic random-access memory]] (DRAM). Bipolar SRAM was invented by Robert Norman at Fairchild Semiconductor in 1963,<ref name="computerhistory1966"/> followed by the development of MOS SRAM by John Schmidt at Fairchild in 1964.<ref name="computerhistory1970"/> SRAM became an alternative to magnetic-core memory, but requires six transistors for each [[Bit|bit]] of data.<ref name="ibm100">{{cite web |title=DRAM |url=https://www.ibm.com/ibm/history/ibm100/us/en/icons/dram/ |website=IBM100 |publisher=[[Company:IBM|IBM]] |access-date=20 September 2019 |date=9 August 2017}}</ref> Commercial use of SRAM began in 1965, when IBM introduced their SP95 SRAM chip for the System/360 Model 95.<ref name="computerhistory1966"/> | ||
[[Company:Toshiba|Toshiba]] introduced bipolar DRAM [[Memory cell (computing)|memory cells]] for its Toscal BC-1411 electronic calculator in 1965.<ref name="bc-spec">{{cite web|url=http://www.oldcalculatormuseum.com/s-toshbc1411.html|title=Spec Sheet for Toshiba "TOSCAL" BC-1411|website=Old Calculator Web Museum|access-date=8 May 2018|url-status=live|archive-url=https://web.archive.org/web/20170703071307/http://www.oldcalculatormuseum.com/s-toshbc1411.html|archive-date=3 July 2017}}</ref><ref name="bc">{{cite web |url=http://www.oldcalculatormuseum.com/toshbc1411.html |title=Toshiba "Toscal" BC-1411 Desktop Calculator |archive-url=https://web.archive.org/web/20070520202433/http://www.oldcalculatormuseum.com/toshbc1411.html |archive-date=2007-05-20}}</ref> While it offered improved performance, bipolar DRAM could not compete with the lower price of the then dominant magnetic-core memory.<ref>{{cite web |title=1966: Semiconductor RAMs Serve High-speed Storage Needs |url=https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/ |website=Computer History Museum}}</ref> MOS technology is the basis for modern DRAM. In 1966, Robert H. Dennard at the IBM Thomas J. Watson Research Center was working on MOS memory. While examining the characteristics of MOS technology, he found it was possible to build capacitors, and that storing a charge or no charge on the MOS capacitor could represent the 1 and 0 of a bit, while the MOS transistor could control writing the charge to the capacitor. This led to his development of a single-transistor DRAM memory cell.<ref name="ibm100"/> In 1967, Dennard filed a patent for a single-transistor DRAM memory cell based on MOS technology.<ref>{{cite web |title=Robert Dennard |url=https://www.britannica.com/biography/Robert-Dennard |website=Encyclopedia Britannica |access-date=8 July 2019}}</ref> This led to the first commercial DRAM IC chip, the [[Intel 1103]] in October 1970.<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 name="HC"> | [[Company:Toshiba|Toshiba]] introduced bipolar DRAM [[Memory cell (computing)|memory cells]] for its Toscal BC-1411 electronic calculator in 1965.<ref name="bc-spec">{{cite web|url=http://www.oldcalculatormuseum.com/s-toshbc1411.html|title=Spec Sheet for Toshiba "TOSCAL" BC-1411|website=Old Calculator Web Museum|access-date=8 May 2018|url-status=live|archive-url=https://web.archive.org/web/20170703071307/http://www.oldcalculatormuseum.com/s-toshbc1411.html|archive-date=3 July 2017}}</ref><ref name="bc">{{cite web |url=http://www.oldcalculatormuseum.com/toshbc1411.html |title=Toshiba "Toscal" BC-1411 Desktop Calculator |archive-url=https://web.archive.org/web/20070520202433/http://www.oldcalculatormuseum.com/toshbc1411.html |archive-date=2007-05-20}}</ref> While it offered improved performance, bipolar DRAM could not compete with the lower price of the then dominant magnetic-core memory.<ref>{{cite web |title=1966: Semiconductor RAMs Serve High-speed Storage Needs |url=https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/ |website=Computer History Museum}}</ref> MOS technology is the basis for modern DRAM. In 1966, Robert H. Dennard at the IBM Thomas J. Watson Research Center was working on MOS memory. While examining the characteristics of MOS technology, he found it was possible to build capacitors, and that storing a charge or no charge on the MOS capacitor could represent the 1 and 0 of a bit, while the MOS transistor could control writing the charge to the capacitor. This led to his development of a single-transistor DRAM memory cell.<ref name="ibm100"/> In 1967, Dennard filed a patent for a single-transistor DRAM memory cell based on MOS technology.<ref>{{cite web |title=Robert Dennard |url=https://www.britannica.com/biography/Robert-Dennard |website=Encyclopedia Britannica |access-date=8 July 2019}}</ref> This led to the first commercial DRAM IC chip, the [[Intel 1103]] in October 1970.<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 name="HC">{{cite web |url=http://history-computer.com/ModernComputer/Basis/dram.html |url-status=dead |archive-url=https://web.archive.org/web/20110220214144/http://history-computer.com/ModernComputer/Basis/dram.html |archive-date=2011-02-20 |title=The DRAM memory of Robert Dennard |website=history-computer.com}}</ref><ref name="Lojek-1103">{{cite book |last1=Lojek |first1=Bo |title=History of Semiconductor Engineering |date=2007 |publisher=Springer Science & Business Media |isbn=9783540342588 |pages=362–363 |url=https://books.google.com/books?id=2cu1Oh_COv8C&pg=PA362 |quote=The i1103 was manufactured on a 6-mask silicon-gate P-MOS process with 8 μm minimum features. The resulting product had a 2,400 µm, 2 memory cell size, a die size just under 10 mm², and sold for around $21.}}</ref> Synchronous dynamic random-access memory (SDRAM) later debuted with the [[Company:Samsung Electronics|Samsung]] KM48SL2000 chip in 1992.<ref>{{cite web |title=KM48SL2000-7 Datasheet |url=https://www.datasheetarchive.com/KM48SL2000-7-datasheet.html |publisher=[[Company:Samsung|Samsung]] |access-date=19 June 2019 |date=August 1992}}</ref><ref name="electronic-design">{{cite journal |title=Electronic Design |journal=Electronic Design |date=1993 |volume=41 |issue=15–21 |url=https://books.google.com/books?id=QmpJAQAAIAAJ |publisher=Hayden Publishing Company |quote=The first commercial synchronous DRAM, the Samsung 16-Mbit KM48SL2000, employs a single-bank architecture that lets system designers easily transition from asynchronous to synchronous systems.}}</ref> | ||
The term ''memory'' is also often used to refer to [[Non-volatile memory|non-volatile memory]] including [[Read-only memory|read-only memory]] (ROM) through modern [[Flash memory|flash memory]]. [[Programmable read-only memory]] (PROM) was invented by [[Biography:Wen Tsing Chow|Wen Tsing Chow]] in 1956, while working for the Arma Division of the American Bosch Arma Corporation.<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> In 1967, Dawon Kahng and Simon Sze of Bell Labs proposed that the floating gate of a MOS [[Physics:Semiconductor device|semiconductor device]] could be used for the cell of a reprogrammable ROM, which led to Dov Frohman of [[Company:Intel|Intel]] inventing [[Engineering:EPROM|EPROM]] (erasable PROM) 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> [[EEPROM]] (electrically erasable PROM) was 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> Flash memory was invented by Fujio Masuoka at [[Company:Toshiba|Toshiba]] in the early 1980s.<ref>{{cite web |last=Fulford |first=Benjamin |title=Unsung hero |work=Forbes |date=24 June 2002 |access-date=18 March 2008 |url=https://www.forbes.com/global/2002/0624/030.html |url-status=live |archive-url=https://web.archive.org/web/20080303205125/http://www.forbes.com/global/2002/0624/030.html |archive-date=3 March 2008 |df=dmy-all }}</ref><ref>{{patent|US|4531203|Fujio Masuoka}}</ref> Masuoka and colleagues presented the invention of NOR flash in 1984,<ref>{{cite web |title=Toshiba: Inventor of Flash Memory |url=http://www.flash25.toshiba.com |website=[[Company:Toshiba|Toshiba]] |access-date=20 June 2019}}</ref> and then NAND flash in 1987.<ref>{{cite conference |chapter=New ultra high density EPROM and flash EEPROM with NAND structure cell |last1=Masuoka |first1=F. |last2=Momodomi |first2=M. |last3=Iwata |first3=Y. |last4=Shirota |first4=R. |title=1987 International Electron Devices Meeting |year=1987 |pages=552–555 |conference=IEDM 1987 |book-title=Electron Devices Meeting, 1987 International |publisher=IEEE |df=dmy |doi=10.1109/IEDM.1987.191485}}</ref> Toshiba commercialized NAND flash memory in 1987.<ref name=":0">{{cite web |title=1987: Toshiba Launches NAND Flash |url=https://www.eweek.com/storage/1987-toshiba-launches-nand-flash |website=eWeek |date=April 11, 2012 |access-date=20 June 2019}}</ref><ref>{{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><ref name=":2" /> | The term ''memory'' is also often used to refer to [[Non-volatile memory|non-volatile memory]] including [[Read-only memory|read-only memory]] (ROM) through modern [[Flash memory|flash memory]]. [[Programmable read-only memory]] (PROM) was invented by [[Biography:Wen Tsing Chow|Wen Tsing Chow]] in 1956, while working for the Arma Division of the American Bosch Arma Corporation.<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> In 1967, Dawon Kahng and Simon Sze of Bell Labs proposed that the floating gate of a MOS [[Physics:Semiconductor device|semiconductor device]] could be used for the cell of a reprogrammable ROM, which led to Dov Frohman of [[Company:Intel|Intel]] inventing [[Engineering:EPROM|EPROM]] (erasable PROM) 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> [[EEPROM]] (electrically erasable PROM) was 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> Flash memory was invented by Fujio Masuoka at [[Company:Toshiba|Toshiba]] in the early 1980s.<ref>{{cite web |last=Fulford |first=Benjamin |title=Unsung hero |work=Forbes |date=24 June 2002 |access-date=18 March 2008 |url=https://www.forbes.com/global/2002/0624/030.html |url-status=live |archive-url=https://web.archive.org/web/20080303205125/http://www.forbes.com/global/2002/0624/030.html |archive-date=3 March 2008 |df=dmy-all }}</ref><ref>{{patent|US|4531203|Fujio Masuoka}}</ref> Masuoka and colleagues presented the invention of NOR flash in 1984,<ref>{{cite web |title=Toshiba: Inventor of Flash Memory |url=http://www.flash25.toshiba.com |website=[[Company:Toshiba|Toshiba]] |access-date=20 June 2019}}</ref> and then NAND flash in 1987.<ref>{{cite conference |chapter=New ultra high density EPROM and flash EEPROM with NAND structure cell |last1=Masuoka |first1=F. |last2=Momodomi |first2=M. |last3=Iwata |first3=Y. |last4=Shirota |first4=R. |title=1987 International Electron Devices Meeting |year=1987 |pages=552–555 |conference=IEDM 1987 |book-title=Electron Devices Meeting, 1987 International |publisher=IEEE |df=dmy |doi=10.1109/IEDM.1987.191485}}</ref> Toshiba commercialized NAND flash memory in 1987.<ref name=":0">{{cite web |title=1987: Toshiba Launches NAND Flash |url=https://www.eweek.com/storage/1987-toshiba-launches-nand-flash |website=eWeek |date=April 11, 2012 |access-date=20 June 2019}}</ref><ref>{{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><ref name=":2" /> | ||
| Line 52: | Line 57: | ||
}}</ref> | }}</ref> | ||
== Volatile memory == | ==Volatility categories== | ||
=== Volatile memory === | |||
[[File:Kinds-of-RAM.JPG|thumb|Various memory modules containing different types of DRAM (from top to bottom): DDR SDRAM, SDRAM, EDO DRAM, and FPM DRAM]] | [[File:Kinds-of-RAM.JPG|thumb|Various memory modules containing different types of DRAM (from top to bottom): DDR SDRAM, SDRAM, EDO DRAM, and FPM DRAM]] | ||
{{Main|Volatile memory}} | {{Main|Volatile memory}} | ||
Volatile memory is computer memory that requires power to maintain the stored information. Most modern [[Physics:Semiconductor|semiconductor]] volatile memory is either static RAM (SRAM) or dynamic RAM (DRAM).{{efn|Other volatile memory technologies that have attempted to compete or replace SRAM and DRAM include [[Z-RAM]] and [[A-RAM]].}} DRAM dominates for desktop system memory. SRAM is used for [[CPU cache]]. SRAM is also found in small [[Embedded system|embedded system]]s requiring little memory. | Volatile memory is computer memory that requires power to maintain the stored information. Most modern [[Physics:Semiconductor|semiconductor]] volatile memory is either static RAM (SRAM) or dynamic RAM (DRAM).{{efn|Other volatile memory technologies that have attempted to compete or replace SRAM and DRAM include [[Z-RAM]] and [[A-RAM]].}} DRAM dominates for desktop system memory. SRAM is used for [[CPU cache]]. SRAM is also found in small [[Embedded system|embedded system]]s requiring little memory. | ||
SRAM retains its contents as long as the power is connected and may use a simpler interface, but [[Static random-access memory#Design|commonly uses six transistors per bit]]. Dynamic RAM is more complicated for interfacing and control, needing regular refresh cycles to prevent losing its contents, but uses only one transistor and one capacitor per bit, allowing it to reach much higher densities and much cheaper per-bit costs.<ref name=":1" | SRAM retains its contents as long as the power is connected and may use a simpler interface, but [[Static random-access memory#Design|commonly uses six transistors per bit]]. Dynamic RAM is more complicated for interfacing and control, needing regular refresh cycles to prevent losing its contents, but uses only one transistor and one capacitor per bit, allowing it to reach much higher densities and much cheaper per-bit costs.<ref name=":1" /><ref name="HC" /><ref name=":2" /> | ||
== Non-volatile memory == | === Non-volatile memory === | ||
{{Main|Non-volatile memory}} | {{Main|Non-volatile memory}} | ||
Non-volatile memory can retain the stored information even when not powered. Examples of non-volatile memory include [[Read-only memory|read-only memory]], [[Flash memory|flash memory]], most types of magnetic computer storage devices (e.g. [[Engineering:Hard disk drive|hard disk drive]]s, [[Floppy disk|floppy disk]]s and [[Physics:Magnetic tape|magnetic tape]]), [[Engineering:Optical disc|optical disc]]s, and early computer storage methods such as paper tape and [[Engineering:Punched card|punched card]]s.<ref name=":2" /> | Non-volatile memory can retain the stored information even when not powered. Examples of non-volatile memory include [[Read-only memory|read-only memory]], [[Flash memory|flash memory]], most types of magnetic computer storage devices (e.g. [[Engineering:Hard disk drive|hard disk drive]]s, [[Floppy disk|floppy disk]]s and [[Physics:Magnetic tape|magnetic tape]]), [[Engineering:Optical disc|optical disc]]s, and early computer storage methods such as magnetic drum, paper tape and [[Engineering:Punched card|punched card]]s.<ref name=":2" /> | ||
Non-volatile memory technologies under development include [[Ferroelectric RAM|ferroelectric RAM]], [[Programmable metallization cell|programmable metallization cell]], Spin-transfer torque magnetic RAM, [[SONOS]], [[Resistive random-access memory|resistive random-access memory]], [[Racetrack memory|racetrack memory]], [[Company:Nano-RAM|Nano-RAM]], [[3D XPoint|3D XPoint]], and [[Millipede memory|millipede memory]]. | Non-volatile memory technologies under development include [[Ferroelectric RAM|ferroelectric RAM]], [[Programmable metallization cell|programmable metallization cell]], Spin-transfer torque magnetic RAM, [[SONOS]], [[Resistive random-access memory|resistive random-access memory]], [[Racetrack memory|racetrack memory]], [[Company:Nano-RAM|Nano-RAM]], [[3D XPoint|3D XPoint]], and [[Millipede memory|millipede memory]]. | ||
== Semi-volatile memory == | === Semi-volatile memory === | ||
A third category of memory is ''semi-volatile''. The term is used to describe a memory that has some limited non-volatile duration after power is removed, but then data is ultimately lost. A typical goal when using a semi-volatile memory is to provide the high performance and durability associated with volatile memories while providing some benefits of non-volatile memory. | A third category of memory is ''semi-volatile''. The term is used to describe a memory that has some limited non-volatile duration after power is removed, but then data is ultimately lost. A typical goal when using a semi-volatile memory is to provide the high performance and durability associated with volatile memories while providing some benefits of non-volatile memory. | ||
For example, some non-volatile memory types experience wear when written. A ''worn'' cell has increased volatility but otherwise continues to work. Data locations which are written frequently can thus be directed to use worn circuits. As long as the location is updated within some known retention time, the data stays valid. After a period of time without update, the value is copied to a less-worn circuit with longer retention. Writing first to the worn area allows a high write rate while avoiding wear on the not-worn circuits.<ref>{{cite web|last1=Montierth, Briggs, Keithley|title=Semi-volatile NAND flash memory|url=https://patents.google.com/patent/US7710777B1/|access-date=20 May 2018}}</ref> | For example, some non-volatile memory types experience wear when written. A ''worn'' cell has increased volatility but otherwise continues to work. Data locations which are written frequently can thus be directed to use worn circuits. As long as the location is updated within some known retention time, the data stays valid. After a period of time without update, the value is copied to a less-worn circuit with longer retention. Writing first to the worn area allows a high write rate while avoiding wear on the not-worn circuits.<ref>{{cite web|last1=Montierth, Briggs, Keithley|title=Semi-volatile NAND flash memory|url=https://patents.google.com/patent/US7710777B1/|access-date=20 May 2018}}</ref> | ||
As a second example, an | As a second example, an STT-RAM can be made non-volatile by building large cells, but doing so raises the cost per bit and power requirements and reduces the write speed. Using small cells improves cost, power, and speed, but leads to semi-volatile behavior. In some applications, the increased volatility can be managed to provide many benefits of a non-volatile memory, for example by removing power but forcing a wake-up before data is lost; or by caching read-only data and discarding the cached data if the power-off time exceeds the non-volatile threshold.<ref>{{cite web|last1=Keppel, Naeimi, Nasrullah|title=Method and apparatus for managing a spin-transfer torque memory|url=https://patents.google.com/patent/US9342403B2/|website=Google Patents|access-date=20 May 2018}}</ref> | ||
The term semi-volatile is also used to describe semi-volatile behavior constructed from other memory types, such as [[NvSRAM|nvSRAM]], which combines [[Static random-access memory|SRAM]] and a non-volatile memory on the same chip, where an external signal copies data from the volatile memory to the non-volatile memory, but if power is removed before the copy occurs, the data is lost. Another example is battery-backed RAM, which uses an external [[Physics:Electric battery|battery]] to power the memory device in case of external power loss. If power is off for an extended period of time, the battery may run out, resulting in data loss.<ref name=":2" /> | The term semi-volatile is also used to describe semi-volatile behavior constructed from other memory types, such as [[NvSRAM|nvSRAM]], which combines [[Static random-access memory|SRAM]] and a non-volatile memory on the same chip, where an external signal copies data from the volatile memory to the non-volatile memory, but if power is removed before the copy occurs, the data is lost. Another example is battery-backed RAM, which uses an external [[Physics:Electric battery|battery]] to power the memory device in case of external power loss. If power is off for an extended period of time, the battery may run out, resulting in data loss.<ref name=":2" /> | ||
== Management == | == Management == | ||
Proper management of memory is vital for a computer system to operate properly. Modern operating | {{Main|Memory management}} | ||
Proper management of memory is vital for a computer system to operate properly. Modern [[Operating system|operating system]]s have complex systems to properly manage memory. Failure to do so can lead to bugs or slow performance. | |||
=== Bugs === | === Bugs === | ||
Improper management of memory is a common cause of bugs and security vulnerabilities, including the following types: | Improper management of memory is a common cause of bugs and security vulnerabilities, including the following types: | ||
* A memory leak occurs when a program requests memory from the operating system and never returns the memory when it is done with it. A program with this bug will gradually require more and more memory until the program fails as the operating system runs out. | * A [[Memory leak|memory leak]] occurs when a program requests memory from the operating system and never returns the memory when it is done with it. A program with this bug will gradually require more and more memory until the program fails as the operating system runs out. | ||
* A segmentation fault results when a program tries to access memory that it does not have permission to access. Generally, a program doing so will be terminated by the operating system. | * A [[Segmentation fault|segmentation fault]] results when a program tries to access memory that it does not have permission to access. Generally, a program doing so will be terminated by the operating system. | ||
* A buffer overflow occurs when a program writes data to the end of its allocated space and then continues to write data beyond this to memory that has been allocated for other purposes. This may result in erratic program behavior, including memory access errors, incorrect results, a crash, or a breach of system security. They are thus the basis of many software vulnerabilities and can be maliciously exploited. | * A [[Buffer overflow|buffer overflow]] occurs when a program writes data to the end of its allocated space and then continues to write data beyond this to memory that has been allocated for other purposes. This may result in erratic program behavior, including memory access errors, incorrect results, a crash, or a breach of system security. They are thus the basis of many software vulnerabilities and can be maliciously exploited. | ||
=== Virtual memory === | === Virtual memory === | ||
Virtual memory is a system where physical memory is managed by the operating system typically with assistance from a memory management unit, which is part of many modern CPUs. It allows multiple types of memory to be used. For example, some data can be stored in RAM while other data is stored on a hard drive (e.g. in a swapfile), functioning as an extension of the cache hierarchy. This offers several advantages. Computer programmers no longer need to worry about where their data is physically stored or whether the user's computer will have enough memory. The operating system will place actively used data in RAM, which is much faster than hard disks. When the amount of RAM is not sufficient to run all the current programs, it can result in a situation where the computer spends more time moving data from RAM to disk and back than it does accomplishing tasks; this is known as thrashing. | {{Main|Virtual memory}} | ||
Virtual memory is a system where physical memory is managed by the operating system typically with assistance from a [[Memory management unit|memory management unit]], which is part of many modern CPUs. It allows multiple types of memory to be used. For example, some data can be stored in RAM while other data is stored on a hard drive (e.g. in a swapfile), functioning as an extension of the [[Cache hierarchy|cache hierarchy]]. This offers several advantages. Computer programmers no longer need to worry about where their data is physically stored or whether the user's computer will have enough memory. The operating system will place actively used data in RAM, which is much faster than hard disks. When the amount of RAM is not sufficient to run all the current programs, it can result in a situation where the computer spends more time moving data from RAM to disk and back than it does accomplishing tasks; this is known as [[Thrashing (computer science)|thrashing]]. | |||
=== Protected memory === | === Protected memory === | ||
{{Main|Memory protection}} | |||
Protected memory is a system where each program is given an area of memory to use and is prevented from going outside that range. If the operating system detects that a program has tried to alter memory that does not belong to it, the program is terminated (or otherwise restricted or redirected). This way, only the offending program crashes, and other programs are not affected by the misbehavior (whether accidental or intentional). Use of protected memory greatly enhances both the reliability and security of a computer system. | Protected memory is a system where each program is given an area of memory to use and is prevented from going outside that range. If the operating system detects that a program has tried to alter memory that does not belong to it, the program is terminated (or otherwise restricted or redirected). This way, only the offending program crashes, and other programs are not affected by the misbehavior (whether accidental or intentional). Use of protected memory greatly enhances both the reliability and security of a computer system. | ||
Without protected memory, it is possible that a bug in one program will alter the memory used by another program. This will cause that other program to run off of corrupted memory with unpredictable results. If the operating system's memory is corrupted, the entire computer system may crash and need to be rebooted. At times programs intentionally alter the memory used by other programs. This is done by viruses and malware to take over computers. It may also be used benignly by desirable programs which are intended to modify other programs, | Without protected memory, it is possible that a bug in one program will alter the memory used by another program. This will cause that other program to run off of corrupted memory with unpredictable results. If the operating system's memory is corrupted, the entire computer system may crash and need to be rebooted. At times programs intentionally alter the memory used by other programs. This is done by viruses and malware to take over computers. It may also be used benignly by desirable programs which are intended to modify other programs, [[Debugger|debugger]]s, for example, to insert breakpoints or hooks. | ||
== See also == | == See also == | ||
* [[Memory geometry]] | * [[Memory geometry]] | ||
* [[Memory hierarchy]] | * [[Memory hierarchy]] | ||
* Memory organization | * Memory organization | ||
* [[Processor register]]s store data but normally are not considered as memory, since they only store one word and do not include an addressing mechanism. | * [[Processor register]]s store data but normally are not considered as memory, since they only store one word and do not include an addressing mechanism. | ||
* [[Universal memory]], memory combining both large capacity and high speed | |||
== Notes == | == Notes == | ||
| Line 120: | Line 131: | ||
| publisher = Time Life Books | | publisher = Time Life Books | ||
| location = Alexandria, Virginia.}} | | location = Alexandria, Virginia.}} | ||
{{Basic computer components}} | |||
{{Benchmark}} | |||
[[Category:Computer memory| ]] | [[Category:Computer memory| ]] | ||
[[Category:Digital electronics]] | [[Category:Digital electronics]] | ||
{{Sourceattribution|Computer memory}} | {{Sourceattribution|Computer memory}} | ||
Latest revision as of 19:57, 16 May 2026

| Computer memory types |
|---|
| Volatile |
| RAM |
| Historical |
|
| Non-volatile |
| ROM |
| NVRAM |
| Early stage NVRAM |
| Magnetic |
| Optical |
| In development |
| Historical |
|
Computer memory stores information, such as data and programs, for immediate use in the computer;[2] instructions fetched by the computer, and data fetched and stored by those instructions, are located in computer memory. The terms memory, main memory, and primary storage are also used for computer memory.
Computer memory is often referred to as RAM, meaning random-access memory, although some older forms of computer memory, such as drum memory, are not random-access. Archaic synonyms for main memory include core (for magnetic-core memory) and store.[3]
Main memory operates at a high speed compared to mass storage which is slower but less expensive per bit and higher in capacity. Besides storing opened programs and data being actively processed, computer memory serves as a mass storage cache and write buffer to improve both reading and writing performance. Operating systems typically borrow RAM capacity for caching so long as it is not needed by running software.[4] If needed, contents of the computer memory can be transferred to storage; a common way of doing this is through a memory management technique called virtual memory.
Modern computer memory is implemented as semiconductor memory,[5][6] where data is stored within memory cells built from MOS transistors and other components on an integrated circuit.[7] There are two main kinds of semiconductor memory: volatile and non-volatile. Examples of non-volatile memory are flash memory and ROM, PROM, EPROM, and EEPROM memory. Examples of volatile memory are dynamic random-access memory (DRAM) used for primary storage and static random-access memory (SRAM) used mainly for CPU cache.
Most semiconductor memory is organized into memory cells each storing one bit (0 or 1). Flash memory organization includes both one bit per memory cell and a multi-level cell capable of storing multiple bits per cell. The memory cells are grouped into words of fixed word length, for example, 1, 2, 4, 8, 16, 32, 64 or 128 bits. Each word can be accessed by a binary address of N bits, making it possible to store 2N words in the memory.
History




In the early 1940s, memory technology often permitted a capacity of a few bytes. The first electronic programmable digital computer, the ENIAC, using thousands of vacuum tubes, could perform simple calculations involving 20 numbers of ten decimal digits stored in the vacuum tubes.
The next significant advance in computer memory came with acoustic delay-line memory, developed by J. Presper Eckert in the early 1940s. Through the construction of a glass tube filled with mercury and plugged at each end with a quartz crystal, delay lines could store bits of information in the form of sound waves propagating through the mercury, with the quartz crystals acting as transducers to read and write bits. Delay-line memory was limited to a capacity of up to a few thousand bits.
Two alternatives to the delay line, the Williams tube and Selectron tube, originated in 1946, both using electron beams in glass tubes as means of storage. Using cathode ray tubes, Fred Williams invented the Williams tube, which was the first random-access computer memory. The Williams tube was able to store more information than the Selectron tube (the Selectron was limited to 256 bits, while the Williams tube could store thousands) and was less expensive. The Williams tube was nevertheless frustratingly sensitive to environmental disturbances.
Efforts began in the late 1940s to find non-volatile memory. Magnetic-core memory allowed for memory recall after power loss. It was developed by Frederick W. Viehe and An Wang in the late 1940s, and improved by Jay Forrester and Jan A. Rajchman in the early 1950s, before being commercialized with the Whirlwind I computer in 1953.[8] Magnetic-core memory was the dominant form of memory until the development of MOS semiconductor memory in the 1960s.[9]
The first semiconductor memory was implemented as a flip-flop circuit in the early 1960s using bipolar transistors.[9] Semiconductor memory made from discrete devices was first shipped by Texas Instruments to the United States Air Force in 1961. In the same year, the concept of solid-state memory on an integrated circuit (IC) chip was proposed by applications engineer Bob Norman at Fairchild Semiconductor.[10] The first bipolar semiconductor memory IC chip was the SP95 introduced by IBM in 1965.[9] While semiconductor memory offered improved performance over magnetic-core memory, it remained larger and more expensive and did not displace magnetic-core memory until the late 1960s.[9][11]
MOS memory
The invention of the metal–oxide–semiconductor field-effect transistor (MOSFET) enabled the practical use of metal–oxide–semiconductor (MOS) transistors as memory cell storage elements. MOS memory was developed by John Schmidt at Fairchild Semiconductor in 1964.[12] In addition to higher performance, MOS semiconductor memory was cheaper and consumed less power than magnetic core memory.[13] In 1965, J. Wood and R. Ball of the Royal Radar Establishment proposed digital storage systems that use CMOS (complementary MOS) memory cells, in addition to MOSFET power devices for the power supply, switched cross-coupling, switches and delay-line storage.[14] The development of silicon-gate MOS integrated circuit (MOS IC) technology by Federico Faggin at Fairchild in 1968 enabled the production of MOS memory chips.[15] NMOS memory was commercialized by IBM in the early 1970s.[16] MOS memory overtook magnetic core memory as the dominant memory technology in the early 1970s.[13]
The two main types of volatile random-access memory (RAM) are static random-access memory (SRAM) and dynamic random-access memory (DRAM). Bipolar SRAM was invented by Robert Norman at Fairchild Semiconductor in 1963,[9] followed by the development of MOS SRAM by John Schmidt at Fairchild in 1964.[13] SRAM became an alternative to magnetic-core memory, but requires six transistors for each bit of data.[17] Commercial use of SRAM began in 1965, when IBM introduced their SP95 SRAM chip for the System/360 Model 95.[9]
Toshiba introduced bipolar DRAM memory cells for its Toscal BC-1411 electronic calculator in 1965.[18][19] While it offered improved performance, bipolar DRAM could not compete with the lower price of the then dominant magnetic-core memory.[20] MOS technology is the basis for modern DRAM. In 1966, Robert H. Dennard at the IBM Thomas J. Watson Research Center was working on MOS memory. While examining the characteristics of MOS technology, he found it was possible to build capacitors, and that storing a charge or no charge on the MOS capacitor could represent the 1 and 0 of a bit, while the MOS transistor could control writing the charge to the capacitor. This led to his development of a single-transistor DRAM memory cell.[17] In 1967, Dennard filed a patent for a single-transistor DRAM memory cell based on MOS technology.[21] This led to the first commercial DRAM IC chip, the Intel 1103 in October 1970.[22][23][24] Synchronous dynamic random-access memory (SDRAM) later debuted with the Samsung KM48SL2000 chip in 1992.[25][26]
The term memory is also often used to refer to non-volatile memory including read-only memory (ROM) through modern flash memory. Programmable read-only memory (PROM) was invented by Wen Tsing Chow in 1956, while working for the Arma Division of the American Bosch Arma Corporation.[27][28] 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 EPROM (erasable PROM) in 1971.[29] EEPROM (electrically erasable PROM) was developed by Yasuo Tarui, Yutaka Hayashi and Kiyoko Naga at the Electrotechnical Laboratory in 1972.[30] Flash memory was invented by Fujio Masuoka at Toshiba in the early 1980s.[31][32] Masuoka and colleagues presented the invention of NOR flash in 1984,[33] and then NAND flash in 1987.[34] Toshiba commercialized NAND flash memory in 1987.[35][36][37]
Developments in technology and economies of scale have made possible so-called very large memory (VLM) computers.[37]
Volatility categories
Volatile memory
Volatile memory is computer memory that requires power to maintain the stored information. Most modern semiconductor volatile memory is either static RAM (SRAM) or dynamic RAM (DRAM).[lower-alpha 1] DRAM dominates for desktop system memory. SRAM is used for CPU cache. SRAM is also found in small embedded systems requiring little memory.
SRAM retains its contents as long as the power is connected and may use a simpler interface, but commonly uses six transistors per bit. Dynamic RAM is more complicated for interfacing and control, needing regular refresh cycles to prevent losing its contents, but uses only one transistor and one capacitor per bit, allowing it to reach much higher densities and much cheaper per-bit costs.[2][23][37]
Non-volatile memory
Non-volatile memory can retain the stored information even when not powered. Examples of non-volatile memory include read-only memory, flash memory, most types of magnetic computer storage devices (e.g. hard disk drives, floppy disks and magnetic tape), optical discs, and early computer storage methods such as magnetic drum, paper tape and punched cards.[37]
Non-volatile memory technologies under development include ferroelectric RAM, programmable metallization cell, Spin-transfer torque magnetic RAM, SONOS, resistive random-access memory, racetrack memory, Nano-RAM, 3D XPoint, and millipede memory.
Semi-volatile memory
A third category of memory is semi-volatile. The term is used to describe a memory that has some limited non-volatile duration after power is removed, but then data is ultimately lost. A typical goal when using a semi-volatile memory is to provide the high performance and durability associated with volatile memories while providing some benefits of non-volatile memory.
For example, some non-volatile memory types experience wear when written. A worn cell has increased volatility but otherwise continues to work. Data locations which are written frequently can thus be directed to use worn circuits. As long as the location is updated within some known retention time, the data stays valid. After a period of time without update, the value is copied to a less-worn circuit with longer retention. Writing first to the worn area allows a high write rate while avoiding wear on the not-worn circuits.[38]
As a second example, an STT-RAM can be made non-volatile by building large cells, but doing so raises the cost per bit and power requirements and reduces the write speed. Using small cells improves cost, power, and speed, but leads to semi-volatile behavior. In some applications, the increased volatility can be managed to provide many benefits of a non-volatile memory, for example by removing power but forcing a wake-up before data is lost; or by caching read-only data and discarding the cached data if the power-off time exceeds the non-volatile threshold.[39]
The term semi-volatile is also used to describe semi-volatile behavior constructed from other memory types, such as nvSRAM, which combines SRAM and a non-volatile memory on the same chip, where an external signal copies data from the volatile memory to the non-volatile memory, but if power is removed before the copy occurs, the data is lost. Another example is battery-backed RAM, which uses an external battery to power the memory device in case of external power loss. If power is off for an extended period of time, the battery may run out, resulting in data loss.[37]
Management
Proper management of memory is vital for a computer system to operate properly. Modern operating systems have complex systems to properly manage memory. Failure to do so can lead to bugs or slow performance.
Bugs
Improper management of memory is a common cause of bugs and security vulnerabilities, including the following types:
- A memory leak occurs when a program requests memory from the operating system and never returns the memory when it is done with it. A program with this bug will gradually require more and more memory until the program fails as the operating system runs out.
- A segmentation fault results when a program tries to access memory that it does not have permission to access. Generally, a program doing so will be terminated by the operating system.
- A buffer overflow occurs when a program writes data to the end of its allocated space and then continues to write data beyond this to memory that has been allocated for other purposes. This may result in erratic program behavior, including memory access errors, incorrect results, a crash, or a breach of system security. They are thus the basis of many software vulnerabilities and can be maliciously exploited.
Virtual memory
Virtual memory is a system where physical memory is managed by the operating system typically with assistance from a memory management unit, which is part of many modern CPUs. It allows multiple types of memory to be used. For example, some data can be stored in RAM while other data is stored on a hard drive (e.g. in a swapfile), functioning as an extension of the cache hierarchy. This offers several advantages. Computer programmers no longer need to worry about where their data is physically stored or whether the user's computer will have enough memory. The operating system will place actively used data in RAM, which is much faster than hard disks. When the amount of RAM is not sufficient to run all the current programs, it can result in a situation where the computer spends more time moving data from RAM to disk and back than it does accomplishing tasks; this is known as thrashing.
Protected memory
Protected memory is a system where each program is given an area of memory to use and is prevented from going outside that range. If the operating system detects that a program has tried to alter memory that does not belong to it, the program is terminated (or otherwise restricted or redirected). This way, only the offending program crashes, and other programs are not affected by the misbehavior (whether accidental or intentional). Use of protected memory greatly enhances both the reliability and security of a computer system.
Without protected memory, it is possible that a bug in one program will alter the memory used by another program. This will cause that other program to run off of corrupted memory with unpredictable results. If the operating system's memory is corrupted, the entire computer system may crash and need to be rebooted. At times programs intentionally alter the memory used by other programs. This is done by viruses and malware to take over computers. It may also be used benignly by desirable programs which are intended to modify other programs, debuggers, for example, to insert breakpoints or hooks.
See also
- Memory geometry
- Memory hierarchy
- Memory organization
- Processor registers store data but normally are not considered as memory, since they only store one word and do not include an addressing mechanism.
- Universal memory, memory combining both large capacity and high speed
Notes
References
- ↑ Read, Jennifer (5 November 2020). "DDR5 Era To Officially Begin In 2021, With DRAM Market Currently Transitioning Between Generations, Says TrendForce". EMSNow. https://www.emsnow.com/ddr5-era-to-officially-begin-in-2021-with-dram-market-currently-transitioning-between-generations-says-trendforce/.
- ↑ 2.0 2.1 Hemmendinger, David (February 15, 2016). "Computer memory". https://www.britannica.com/technology/computer-memory.
- ↑ A.M. Turing; R.A. Brooker (1952). "1. General remarks on electronic computers". Programmer's Handbook for Manchester Electronic Computer Mark II. University of Manchester. http://www.alanturing.net/turing_archive/archive/m/m01/M01-005.html.
- ↑ "Documentation for /proc/sys/vm/". https://www.kernel.org/doc/html/latest/admin-guide/sysctl/vm.html.
- ↑ "The MOS Memory Market". Smithsonian Institution. 1997. http://smithsonianchips.si.edu/ice/cd/MEMORY97/SEC01.PDF.
- ↑ "MOS Memory Market Trends". Smithsonian Institution. 1998. http://smithsonianchips.si.edu/ice/cd/STATUS98/SEC07.PDF.
- ↑ "1960 - Metal Oxide Semiconductor (MOS) Transistor Demonstrated". The Silicon Engine (Computer History Museum). https://www.computerhistory.org/siliconengine/metal-oxide-semiconductor-mos-transistor-demonstrated/.
- ↑ "1953: Whirlwind computer debuts core memory". https://www.computerhistory.org/storageengine/whirlwind-computer-debuts-core-memory/.
- ↑ 9.0 9.1 9.2 9.3 9.4 9.5 "1966: Semiconductor RAMs Serve High-speed Storage Needs". https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/.
- ↑ "1953: Transistors make fast memories | The Storage Engine | Computer History Museum". https://www.computerhistory.org/storageengine/transistors-make-fast-memories/.
- ↑ Orton, John W. (2009). Semiconductors and the Information Revolution: Magic Crystals that made IT Happen. Academic Press. p. 104. ISBN 978-0-08-096390-7. https://books.google.com/books?id=6YLL9197NfMC&pg=PA104.
- ↑ Solid State Design - Vol. 6. Horizon House. 1965. https://books.google.com/books?id=kG4rAQAAIAAJ&q=John+Schmidt.
- ↑ 13.0 13.1 13.2 "1970: MOS Dynamic RAM Competes with Magnetic Core Memory on Price". https://www.computerhistory.org/siliconengine/mos-dynamic-ram-competes-with-magnetic-core-memory-on-price/.
- ↑ Wood, J.; Ball, R. (February 1965). "1965 IEEE International Solid-State Circuits Conference. Digest of Technical Papers". VIII. pp. 82–83. doi:10.1109/ISSCC.1965.1157606.
- ↑ "1968: Silicon Gate Technology Developed for ICs". https://www.computerhistory.org/siliconengine/silicon-gate-technology-developed-for-ics/.
- ↑ Critchlow, D. L. (2007). "Recollections on MOSFET Scaling". IEEE Solid-State Circuits Society Newsletter 12 (1): 19–22. doi:10.1109/N-SSC.2007.4785536.
- ↑ 17.0 17.1 "DRAM". IBM. 9 August 2017. https://www.ibm.com/ibm/history/ibm100/us/en/icons/dram/.
- ↑ "Spec Sheet for Toshiba "TOSCAL" BC-1411". http://www.oldcalculatormuseum.com/s-toshbc1411.html.
- ↑ "Toshiba "Toscal" BC-1411 Desktop Calculator". http://www.oldcalculatormuseum.com/toshbc1411.html.
- ↑ "1966: Semiconductor RAMs Serve High-speed Storage Needs". https://www.computerhistory.org/siliconengine/semiconductor-rams-serve-high-speed-storage-needs/.
- ↑ "Robert Dennard". https://www.britannica.com/biography/Robert-Dennard.
- ↑ "Intel: 35 Years of Innovation (1968–2003)". Intel. 2003. https://www.intel.com/Assets/PDF/General/35yrs.pdf.
- ↑ 23.0 23.1 "The DRAM memory of Robert Dennard". http://history-computer.com/ModernComputer/Basis/dram.html.
- ↑ Lojek, Bo (2007). History of Semiconductor Engineering. Springer Science & Business Media. pp. 362–363. ISBN 9783540342588. https://books.google.com/books?id=2cu1Oh_COv8C&pg=PA362. "The i1103 was manufactured on a 6-mask silicon-gate P-MOS process with 8 μm minimum features. The resulting product had a 2,400 µm, 2 memory cell size, a die size just under 10 mm², and sold for around $21."
- ↑ "KM48SL2000-7 Datasheet". Samsung. August 1992. https://www.datasheetarchive.com/KM48SL2000-7-datasheet.html.
- ↑ "Electronic Design". Electronic Design (Hayden Publishing Company) 41 (15–21). 1993. https://books.google.com/books?id=QmpJAQAAIAAJ. "The first commercial synchronous DRAM, the Samsung 16-Mbit KM48SL2000, employs a single-bank architecture that lets system designers easily transition from asynchronous to synchronous systems.".
- ↑ Han-Way Huang (5 December 2008). Embedded System Design with C805. Cengage Learning. p. 22. ISBN 978-1-111-81079-5. https://books.google.com/books?id=3zRtCgAAQBAJ&pg=PA22.
- ↑ Marie-Aude Aufaure; Esteban Zimányi (17 January 2013). Business Intelligence: Second European Summer School, eBISS 2012, Brussels, Belgium, July 15-21, 2012, Tutorial Lectures. Springer. p. 136. ISBN 978-3-642-36318-4. https://books.google.com/books?id=7iK5BQAAQBAJ&pg=PA136.
- ↑ "1971: Reusable semiconductor ROM introduced". https://www.computerhistory.org/storageengine/reusable-semiconductor-rom-introduced/.
- ↑ Tarui, Y.; Hayashi, Y.; Nagai, K. (1972). "Electrically reprogrammable nonvolatile semiconductor memory". IEEE Journal of Solid-State Circuits 7 (5): 369–375. doi:10.1109/JSSC.1972.1052895. ISSN 0018-9200. Bibcode: 1972IJSSC...7..369T.
- ↑ Fulford, Benjamin (24 June 2002). "Unsung hero". Forbes. https://www.forbes.com/global/2002/0624/030.html.
- ↑ US patent 4531203 Fujio Masuoka
- ↑ "Toshiba: Inventor of Flash Memory". http://www.flash25.toshiba.com.
- ↑ Masuoka, F.; Momodomi, M.; Iwata, Y.; Shirota, R. (1987). "1987 International Electron Devices Meeting". IEDM 1987. IEEE. pp. 552–555. doi:10.1109/IEDM.1987.191485.
- ↑ "1987: Toshiba Launches NAND Flash". April 11, 2012. https://www.eweek.com/storage/1987-toshiba-launches-nand-flash.
- ↑ "1971: Reusable semiconductor ROM introduced". https://www.computerhistory.org/storageengine/reusable-semiconductor-rom-introduced/.
- ↑ 37.0 37.1 37.2 37.3 37.4 Stanek, William R. (2009). Windows Server 2008 Inside Out. O'Reilly Media, Inc.. pp. 1520. ISBN 978-0-7356-3806-8. https://books.google.com/books?id=SbxixF4iAEcC. Retrieved 2012-08-20. "[...] Windows Server Enterprise supports clustering with up to eight-node clusters and very large memory (VLM) configurations of up to 32 GB on 32-bit systems and 2 TB on 64-bit systems."
- ↑ Montierth, Briggs, Keithley. "Semi-volatile NAND flash memory". https://patents.google.com/patent/US7710777B1/.
- ↑ Keppel, Naeimi, Nasrullah. "Method and apparatus for managing a spin-transfer torque memory". https://patents.google.com/patent/US9342403B2/.
Further reading
- Miller, Stephen W. (1977), Memory and Storage Technology, Montvale.: AFIPS Press
- Memory and Storage Technology, Alexandria, Virginia.: Time Life Books, 1988
