Computer Architecture The Anatomy of Modern Processors
|
The Memory Hierarchy
Processors use memory of various types to store the
data on which a program operates. Data may start in a file on a magnetic disc
("hard disc"), be read into semiconductor memory ("D-RAM") for processing,
transformed and written back to disc. As part of the transformation process,
individual words of data will be transferred to the processor's registers and
thence to the ALU. Transfers from semiconductor memory to registers will usually
pass (transparently to a programmer) through one or more levels of cache.
Memory designers are able to trade speed for capacity - the fastest memory
(registers) having access times below 10ns but the lowest capacity (10s of
words) and the slowest (magnetic tape) having access times of several seconds
but the highest capacity (10s of GBytes). Thus the memory in a system can
usually be arranged in a hierarchy from the slowest (and highest capacity) to
the fastest (and lowest capacity).
Discrepancy between Processor and Bus Frequencies

This
figure (source: David Chapman, Motorola) shows the ratio between processor clock
frequence ("Core Frequency") and bus frequency for the last dozen years. It can
be seen that the ratio has started to increase dramatically recently - as
processor frequencies have continued to increase and bus frequencies have
remained fixed or increased at a slower rate. The bus frequency determines the
rate at which information can be transferred between a processor and its bulk
memory.
The widening gap between processor and bus frequencies shows that effective
management of this memory hierarchy is now critical to performing, posing a
challenge for architects and programmers alike. In the following sections, we'll
look at the technology, organisation and characteristics of memories at each
level of the hierarchy.
Operation of the memory hierarchy
This diagram shows how a high
performance CPU processes a memory request issued by the CPU:
© John Morris, 1998