Memory - the most important part of the computer systems


Generally speaking, memory is a facility for temporarily storing program instructions or data during the course of processing. In modern computers, the main memory is random access memory (RAm) consisting of silicon chips. Today’s personal computers typically have from between 64mB (megabytes) and 512mB of main memory.

Development of the Technology

In early calculators “memory” was stored as the positions of various dials. Charles Babbage conceived of a “store” of such dals that could hold constants or other values needed during processing by his Analytical Engine (see Babbage, Charles). 

A number of forms of memory were used in early electronic digital computers. For example, a circuit with an inherent delay could be used to store a series of pulses that could be “refreshed” every fraction of a second to maintain the data values. The Univac I, for example, used a mercury delay line memory. Researchers also experimented with cathode ray tubes (CRTs) to store data patterns. The most practical early form of memory was the ferrite core, which consisted of an array of tiny donut-shaped magnets, crisscrossed by electrical lines so that any element can be addressed by row and column number. By converting data into appropriate voltage levels, the magnetic state of the individual elements can be switched on and off to represent 1 or 0. In turn, a current can be passed through an element to read its current state—although the element must then be re-magnetized. Ferrite cores were relatively fast but expensive, and “core” became programmers’ shorthand for the amount of precious memory available. 

By the 1960s, the use of transistors and integrated circuits made electronic solid-state memory systems possible. Since then, the MOSFET (Metal Oxide Semiconductor Field Effect Transistor) using CMOS (Complementary Metal Oxide) fabrication has been the dominant way to implement DRAm (dynamic random access memory). Here “dynamic” means that the memory must be “refreshed” by applying current after data is read in each cycle, and “random access” means that any desired memory location can be accessed directly rather than requiring locations to be read sequentially.

Static RAm is used in some computer components where maximum memory speed is desirable. Static memory is faster because it does not need to be refreshed after each reading cycle. However, it is also considerably more expensive.

memory performance is also dependent on how quickly locations in the memory can be addressed. The earliest forms of DRAm required that the row and column of the desired memory location be sent in separate cycles. EDO (Extended Data Out) and more recent technologies allow the row to be requested one time, and then just the column has given for adjacent or nearby locations. Timing and pipelining techniques can also be used to start a new request while the previous one is still being processed.

For SDRAM (synchronous DRAM), memory speed is limited by the inherent response time of the memory chip, but also by the number of clock cycles per second initiated by the data bus (see bus). Double data rate (DDR) SDRAM is able to use both the “rising” and “falling” part of the clock cycle to transfer data, doubling throughput. It is being superseded by DDR2, which achieves another doubling because it can run the data-transfer bus at twice the system clock speed. However, this does increase latency (the time needed to begin access). On the horizon is DDR3, which can run the bus at four times clock speed—yet another doubling. Possible future memory technologies include “spintronics,” or the use of the quantum state or “spin” of electrons to hold data. The speed, compactness, and reliability of this technology could exceed current devices by a factor of hundreds to thousands.

As memory gets faster, it continues to get cheaper (at least for all but the latest technology). At the same time, memory demands continue to increase. Today’s PCs generally come with 1 GB (billion bytes) of RAM, and 2 GB or more is often recommended, particularly for memory-hungry operating systems such as Microsoft Windows Vista and applications such as Adobe Photoshop and video editing. Another popular kind of memory is “flash” (nonvolatile) memory that does not require power to maintain its contents. This kind of memory is used in a wide variety of devices, including digital cameras, PDAs, and media players (see also flash dRive). In actual systems, a small amount of faster memory (see cache) is used to hold the data that is most likely to be immediately needed. A proper balance between primary and secondary cache and main memory in the system chipset makes it less necessary to use the fastest, most expensive form of main memory. many computers also have ROM (Read-Only Memory) or PROm (Programmable Read-Only memory). This memory holds permanent system settings and data (see bios) that are needed during the startup process (see boot sequence).

Further reading

  • Jacob, Bruce, Spencer Ng, and David Wang. Memory Systems: Cache, DRAM, Disk. San Francisco: Morgan Kaufmann, 2007.
  • Tom’s Hardware: motherboards and RAm. Available online. URL: http://www.tomshardware.com/motherboard/index.html. Accessed August 15, 2007. 
  • “Ultimate memory guide.” Available online. URL: http://www. kingston.com/tools/umg/default.asp. Accessed August 15, 2007.

Comments