In the discussion above, we saw that the CPU contains the necessary circuitry for data
processing and controlling the other components of a system. However, one thing it does not
have built into it is the place to store programs and data, which are needed during data
processing. We also saw that the CPU does contain several registers for storing data and
instructions, but these are very small areas, which can hold only a few bytes at a time, and
are just sufficient to hold only one or two instructions and the corresponding data. If the
instructions and data of a program being executed by the CPU, were to reside in secondary
storage like a disk, and fetched and loaded one by one into the registers of the CPU as the
program execution proceeded, this would lead to the CPU being idle most of the time, because
there is a large speed mismatch between the rate at which CPU can process data and
the rate at which data can be transferred from disk to CPU registers. For example, a CPU can
process data at a rate of about five nanosecond/byte, and a disk reader can read data at a
speed of around five microsecond/byte.