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.
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.
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.
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.
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
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
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.
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
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.
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
server farms, where low power consumption is more important than speed.
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
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
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.
Few people nowadays remember that the IBM PC was
not the first "personal computer" and that MS-DOS was not the first industry
standard operating system. In fact, MS-DOS was but an imperfect copy of the
operating system that really has a claim to that title.
The first generation of personal computers (or microcomputers, as they were
known then) used chips like the Intel 8008, 8080, Zilog Z80, MOS Technology 6502
and Motorola 6800. While some early microcomputers (for example, the Apple II)
used proprietary operating systems, hundreds of different manufacturers licensed
a product called CP/M (as in Control Program / Monitor) made by a company
called Digital Research. Long before the IBM PC and its clones / compatibles,
the CP/M architecture provided for industry standard software that was portable
across hundreds of different brands and models. This was DRI founder Gary
Kildall's main contribution to the software industry. Microsoft simply followed
in DRI's footsteps.