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 load instructions (the building
blocks of programs) into some type of internal storage, where they
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.
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:
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 — in order — 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 larger, slower storage. This is the
basis for implementing virtual memory. But before we can discuss
virtual memory, we must examine the various storage technologies
currently in use.