This chapter focuses on general-purpose memory, where PCs store programs and data that are currently in use, the pipeline that supplies data to and receives results from the processor. General-purpose memory, called read-write memory or Random Access Memory (RAM), must be readable-from and writable-to. Two types of RAM are used on modern PCs:
Dynamic RAM stores data for only a tiny fraction of a second before losing it. To maintain stored data, the system must constantly refresh DRAM, which exacts a performance penalty and limits its speed. Typical DRAM provides 60 ns access, but is inexpensive and consumes relatively little power.
Static RAM automatically maintains its contents as long as power is applied to it, without requiring refresh. SRAM provides access times an order of magnitude faster than DRAM, but is expensive and power-hungry.
PCs use a tiered memory architecture that takes advantage of these characteristics:
The bulk of a PC's memory uses DRAM and is called main memory. It is large?typically 64 MB to 512 MB or more?but too slow to keep up with a modern CPU. Main memory is where the CPU stores programs and data that it will soon need. Main memory functions as a buffer between the CPU and disk and stores tens to hundreds of megabytes.
Cache memory is a small amount of fast SRAM that buffers access between the CPU and main memory.
Modern PCs have two layers of cache memory:
Primary cache, also called Level 1 cache or L1 cache, is typically 16 to 128 KB of very fast memory on the same chip as the CPU itself. L1 cache size and efficiency are major factors in CPU performance. The amount and type of L1 cache is determined by the CPU you use, and cannot be upgraded.
L1 cache is not large enough to eliminate the speed disparity between processors and main memory. Secondary cache, also called Level 2 cache, L2 cache, or (on Pentium-class motherboards) external cache, bridges that gap with a reasonable compromise between cost and performance. L2 cache is a part of the CPU package (or of the CPU substrate itself) on all modern processors, including the Intel Celeron/Pentium II/III/4 and the AMD Athlon/Duron/Opteron. Modern processors have L2 cache memory sizes ranging from 128 KB to 2 MB.