Chapter 4. Physical and Virtual Memory
All present-day general-purpose computers are of the type known as
stored program computers. As the name implies,
stored program computers can load instructions (groups of which make up
programs) into some type of internal storage and can subsequently execute
those instructions.
Stored program computers also use the same storage for data. This is
in contrast to computers that use their hardware configuration to control
their operation (such as older plugboard-based computers).
The place where programs were stored on the first stored program
computers went by a variety of names and used a variety of different
technologies, from spots on a cathode ray tube, to pressure pulses in
columns of mercury. Fortunately, present-day computers use technologies
with greater storage capacity and much smaller size than ever
before.
Storage Access Patterns
One thing to keep in mind throughout this chapter is that computers
tend to access storage in certain ways. In fact, most storage access
tends to exhibit one (or both) of the following attributes:
Let us look at these points in a bit more detail.
Sequential access means that, if address
N is accessed by the CPU, it is highly likely
that address N+1 will be accessed next. This
makes sense, as most programs consist of large sections of instructions
that execute one after the other.
Localized access means that, if address X
is accessed, it is likely that other addresses surrounding
X will also be accessed in the future.
These attributes are crucial, because it allows smaller, faster
storage to effectively buffer slower, larger storage. This is the basis
for implementing virtual memory. But before we can discuss virtual
memory, we must look at the various storage technologies currently in
use.