(Part two of a two-part excerpt)


In 1945, during the early days of computing, John von Neumann wrote a draft of the design of a computer called the EDVAC [1] which had a memory unit attached to an arithmetic unit and a control unit. The memory unit was in addition to the teletype, magnetic tape, punched card, or other storage unit that stored the problem code, parameters of the problem, and tables needed in the solution of the problem.

Von Neumann stated that memory elements ‘‘that only circulate in the interior of the device, and never be recorded for human sensing’’ were needed in the machine for the following reasons:

1) to remember intermediate results during complex arithmetic operations like multiplication and division;

2) to store the instructions for a complex calculation;

3) to provide tables for functions in order to avoid repeated complex calculations;

4) to remember initial conditions and boundary conditions for solutions of partial differential equations;

5) to store results of one or more iterations in a successive approximation algorithm for use in later iterations.

Von Neumann argued that even though the nature of operations needed for the different tasks was different and even though the locations in the machine where they were needed were different, it was useful to have a single type of memory with interchangeable parts to accommodate the varying needs in different applications of the various functions mentioned above.

When it was finally built in 1949, the EDVAC had a memory of 1024 44-b words in addition to its external tape unit. The memory was a sequential access mercury delay-linememory with an average delay of 192 s and a throughput of one word every 48 s from each of 128 delay lines. In comparison, additions were performed at the rate of one every 864 s [5].

Such high-speed memories were expensive and finicky and hence unsuitable for commercial use. Commercial systems instead adopted a more affordable form of memory, the drum memory, where the drum was a metal cylinder coated with a magnetic recording material.

The first IBM 650 machines [6] could be configured with up to 2000 ten-digit words of drum memory and with an average access time of 2.4 ms, limited by the 12 500-rpm rotational speed of the drum. It could perform 200 ten-digit additions per second.

A drum memory with 4608 words was added to the EDVAC in 1954 to supplement its high-speed delayline memory. Drum memories had a short run as main memory because of their rotational latency, but they were still in widespread use into the 1960s as secondary memory or storage.

The 1960s and 1970s saw the prolific use of the magnetic core memory which, unlike drum memories, had no moving parts and provided random access to any word in memory. Early core memories had a cycle time of roughly 6 s, nearly 1000 times faster than drum memories [7].

Early core memory systems had only around 4000 words, but their capacities increased rapidly. The capacity of the CDC 6600 with a clock cycle of 100 ns in 1965 was around 128 000 words with an access time of 1 s [8].

Besides its superior access time, a big advantage of magnetic core memory was its reliability. Core memory was replaced by semiconductor memory in the 1970s. The memory industry was revolutionized by the invention of the dynamic random access memory (DRAM), specially the single-transistor DRAM cell [9]. Semiconductor memories provided several times better density than core memories, but had disadvantages.

Unlike core memories which were nonvolatile, semiconductor memories consumed power to retain their state. DRAMs had even more disadvantages being particularly vulnerable to soft errors and needing to be refreshed periodically.

Despite these disadvantages, DRAMs became the staple form of main memory as they rode the technology curve, increasing in density and decreasing in cost per bit every generation. Early DRAMs, like the MK4006 launched around 1970, had a capacity of 1 kb [10] and an access time of 400 ns. By the end of the decade, the capacity of a single DRAM chip went up to 64 kb in the MK4164 with an access time of 100 ns.

Technology scaling allowed processor clock frequencies to increase much more rapidly during the same period, and the resulting increased latency in cycles to memory was ameliorated by the introduction of static RAM (SRAM) caches closer to the processor. Temporal locality and spatial locality in programs were exploited using a cache that had only a fraction of the capacity of the DRAM main memory.

Caches were transparent to the programmer, with hardware determining which parts of memory should be placed at any given time in the cache.

As technology enabled more and more transistors to be placed on a die, many implementations chose to separate the instruction cache from the data cache, while the system still maintained the unified memory model. Meanwhile disks emerged in the early 1970s replacing drums as the preferred nonvolatile backup for DRAM main memory [11].

Compared to the fixed head-per-track of drums, disks had movable heads, and hence the transition from drums to disks involved tradeoffs in cost, performance, and complexity. However, disk technology kept improving at impressive rates bringing the price per bit down the same curve as that of DRAM. The importance of nonvolatile disks grew with the widespread adoption of memory virtualization [12], which allowed programs to address a virtual memory larger than the size of main memory of the computer.

Virtual memory was made transparent to the user, with the operating system, assisted by hardware, deciding which part of the virtual memory should be in main memory and which part in the larger disk storage. Thus, by the 1970s, the various parts of the memory hierarchy as seen in systems today were already in place.

(For the rest of this article, see the Proceedings of the IEEE)


Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access