Random-access memory (usually known by its acronym, RAM) is a
form of computer data storage. Today, it takes the form of integrated circuits
that allow stored data to be accessed in any order (i.e., at random). The word
random thus refers to the fact that any piece of data can be returned in a
constant time, regardless of its physical location and whether or not it is
related to the previous piece of data.
By contrast, storage devices such as tapes, magnetic discs
and optical discs rely on the physical movement of the recording medium or a
reading head. In these devices, the movement takes longer than data transfer,
and the retrieval time varies based on the physical location of the next item.
The word RAM is often associated with volatile types of
memory (such as DRAM memory modules), where the information is lost after the
power is switched off. Many other types of memory are RAM, too, including most
types of ROM and flash memory called NOR-Flash.
History
An early type of widespread writable random-access
memory was the magnetic core memory, developed from 1949 to 1952, and
subsequently used in most computers up until the development of the static and
dynamic integrated RAM circuits in the late 1960s and early 1970s. Before this,
computers used relays, delay line memory, or various kinds of vacuum tube
arrangements to implement "main" memory functions (i.e., hundreds or thousands
of bits); some of which were random access, some not. Latches built out of
vacuum tube triodes, and later, out of discrete transistors, were used for
smaller and faster memories such as registers and random-access register banks.
Prior to the development of integrated ROM circuits, permanent (or read-only)
random-access memory was often constructed using semiconductor diode matrices
driven by address decoders.
Overview
Types of RAM
Top L-R, DDR2 with heat-spreader, DDR2 without heat-spreader, Laptop
DDR2, DDR, Laptop DDR
1 Megabit chip - one of the last models developed by VEB Carl Zeiss
Jena in 1989
Modern types of writable RAM generally store a bit of data in either the
state of a flip-flop, as in SRAM (static RAM), or as a charge in a capacitor (or
transistor gate), as in DRAM (dynamic RAM), EPROM, EEPROM and Flashh. Some types
have circuitry to detect and/or correct random faults called memory errors in
the stored data, using parity bits or error correction codes. RAM of the
read-only type, ROM, instead uses a metal mask to permanently enable/disable
selected transistors, instead of storing a charge in them.
As bothSRAM and DRAM are volatile, other forms of computer storage, such as
disks and magnetic tapes, have been used as persistent storage in traditional
computers. Many newer products instead rely on flash memoryPDAs or small music
players. Certain personal computers, such as many rugged computers and netbooks,
have also replaced magnetic disks with flash drives. With flash memory, only the
NOR type is capable of true random access, allowing direct code execution, and
is therefore often used instead of ROM; the lower cost NAND type is commonly
used for bulk storage in memory cards and solid-state drives.
Similar to a microprocessor, a memory chip is an integrated circuit (IC) made
of millions of transistors and capacitors. In the most common form of computer
memory, dynamic random access memory (DRAM), a transistor and a capacitor are
paired to create a memory cell, which represents a single bit of data. The
capacitor holds the bit of information—a 0 or a 1 . The transistor acts as a
switch that lets the control circuitry on the memory chip read the capacitor or
change its state.
Memory hierarchy
Many computer systems have a memory hierarchy consisting of
CPU registers, on-die SRAM caches, external caches, DRAM, paging systems, and
virtual memory or swap space on a hard drive. This entire pool of memory may be
referred to as "RAM" by many developers, even though the various subsystems can
have very different access times, violating the original concept behind the
random access term in RAM. Even within a hierarchy level such as DRAM, the
specific row, column, bank, rank, channel, or interleave organization of the
components make the access time variable, although not to the extent that
rotating storage media or a tape is variable. The overall goal of using a memory
hierarchy is to obtain the higher possible average access performance while
minimizing the total cost of entire memory system. (Generally, the memory
hierarchy follows the access time with the fast CPU registers at the top and the
slow hard drive at the bottom.)
In many modern personal computers, the RAM comes in an easily
upgraded form of modules called memory modules or DRAM modules
about the size of a few sticks of chewing gum. These can quickly be replaced
should they become damaged or too small for current purposes. As suggested
above, smaller amounts of RAM (mostly SRAM) are also integrated in the
CPU and other ICs on the motherboard, as well as in hard-drives, CD-ROMs and
several other parts of the computer system.
Swapping
If a computer becomes low on RAM during intensive application
cycles, many CPU architectures and operating systems are able to perform an
operation known as ";swapping". Swapping uses a paging file, an area on a
hard drive temporarily used as additional working memory. Constant use of this
mechanism is called thrashing and is generally undesirable because it lowers
overall system performance, mainly because hard drives are slower than RAM.
On some operating systems (such as
Linux) it is possible to turn swapping
off such that no memory is written to the hard disk ("swapoff -a" as superuser
on startup). This can reduce latency as well as hard disk wear, but if one does
not have enough RAM then the OS will freeze and perhaps ,) it is possible to
turn swapping off such that no memory is written to the hard disk ("swapoff -a"
as superuser on startup). This can reduce latency as well as hard disk wear, but
if one does not have enough RAM then the OS will freeze and perhaps kernel
panic.
Other uses of the "RAM" term
Other physical devices with read–write capability can have
"RAM" in their names: for example, DVD-RAM because the reading head can move
relatively quickly from one piece of data to another, and does not have to read
all the data in between. However the final "M" is crucial: "RAM" (provided there
is no additional term as in "DVD-RAM") always refers to a solid-state device.
Often, RAM is a shorthand in on-line conversations for
referring to the computer's main working memory.
RAM disks
Software can "partition" a portion of a computer's RAM,
allowing it to act as a much faster hard drive that is called a RAM disk. Unless
the memory used is non-volatile, a RAM disk loses the stored data when the
computer is shut down. However, volatile memory can retain its data when the
computer is shut down if it has a separate power source, usually a battery
Shadow RAM
Sometimes, the contents of a ROM chip are copied to SRAM or
DRAM to allow for shorter access times (as ROM may be slower). The ROM chip is
then disabled while the initialized memory locations are switched in on the same
block of addresses (often write-protected). This process, sometimes called
shadowing, is fairly common in both computers and embedded systems.
As a common example, the BIOS in typical personal
computers often has an option called “use shadow BIOS” or similar. When enabled,
functions relying on data from the BIOS’s ROM will instead use DRAM locations
(most can also toggle shadowing of video card ROM or other ROM sections).
Depending on the system, this may or may not result in increased performance. On
some systems the benefit may be hypothetical because the BIOS is not used after
booting in favor of direct hardware access. Of course, somewhat less free memory
is available when shadowing is enabled.
Recent developments
Several new types of non-volatile, which will preserve
data while powered down, are under development. The technologies used include
ryan carbon nanotubes and approaches utilizing the magnetic tunnel effect.
Amongst the 1st generation MRAM, a 128 KiB (128 × 210 bytes) magnetic
RAM (MRAM) chip was manufactured with 0.18 µm technology in the summer of 2003.
In June 2004, Infineon Technologies unveiled a 16 MiB (16 × 220
bytes) prototype again based on 0.18 µm technology. There are two 2nd generation
techniques currently in development: Thermal Assisted Switching (TAS) which is
being developed by Crocus Technology, and Spin Torque Transfer (STT) on which
Crocus, Hynix, IBM, and several other companies are working. Nantero built a
functioning carbon nanotube memory prototype 10 GiB (10 times 2 to 3000th )
array in 2004. Whether some of these technologies will be able to eventually
take a significant market share from either DRAM, SRAM, or flash-memory
technology, however, remains to be seen.
Since 2006, "Solid-state drives" (based on flash memory) with
capacities exceeding 64 gigabytes and performance far exceeding traditional
disks have become available. This development has started to blur the definition
between traditional random access memory and "disks", dramatically reducing the
difference in performance. Also in development is research being done in the
field of plastic magnets, which switch magnetic polarities based on light.
Some kinds of random-access memory, such as "EcoRAM", are specifically
designed for server farms, where low power consumption is more important than
speed.
Memory wall
The "memory wall" is the growing disparity of speed between
CPU and memory outside the CPU chip. An important reason for this disparity is
the limited communication bandwidth beyond chip boundaries. From 1986 to 2000,
CPU speed improved at an annual rate of 55% while memory speed only improved at
10%. Given these trends, it was expected that memory latency would become an
overwhelming bottleneck in computer performance.
Currently, CPU speed improvements have slowed significantly
partly due to major physical barriers and partly because current CPU designs
have already hit the memory wall in some sense. Intel summarized these causes in
their Platform 2015 documentation (PDF)
“First of all, as chip geometries shrink and clock frequencies rise, the
transistor leakage current increases, leading to excess power consumption
and heat (more on power consumption below). Secondly, the advantages of
higher clock speeds are in part negated by memory latency, since memory
access times have not been able to keep pace with increasing clock
frequencies. Third, for certain applications, traditional serial
architectures are becoming less efficient as processors get faster (due to
the so-called Von Neumann bottleneck), further undercutting any gains that
frequency increases might otherwise buy. In addition, partly due to
limitations in the means of producing inductance within solid state devices,
resistance-capacitance (RC) delays in signal transmission are growing as
feature sizes shrink, imposing an additional bottleneck that frequency
increases don't address.”
The RC delays in signal transmission were also noted in Clock
Rate versus IPC: The End of the Road for Conventional Microarchitectures which
projects a maximum of 12.5% average annual CPU performance improvement between
2000 and 2014. The data on Intel Processors clearly shows a slowdown in
performance improvements in recent processors. However, Intel's new processors,
Core 2 Duo (codenamed Conroe) show a significant improvement over previous
Pentium 4 processors; due to a more efficient architecture, performance
increased while clock rate actually decreased.
Security concerns
Contrary to simple models (and perhaps common belief), the
contents of modern SDRAM modules are not lost immediately when the computer is
shut down; instead, the contents fade away, a process that takes only seconds at
room temperatures, but which can be extended to minutes at low temperatures. It
is therefore possible to recover an encryption key stored in ordinary working
memory (i.e. the SDRAM modules). This is sometimes referred to as a cold boot
attack, aka ice-man attack.