Present-day computers actually use a variety of storage technologies. Each technology is geared toward a specific function, with speeds and capacities to match.
These technologies are:
In terms of capabilities and cost, these technologies form a spectrum. For example, CPU registers are:
Very fast (access times of a few nanoseconds)
Low capacity (usually less than 200 bytes)
Very limited expansion capabilities (a change in CPU architecture would be required)
Expensive (more than one dollar/byte)
However, at the other end of the spectrum, off-line backup storage is:
Very slow (access times may be measured in days, if the backup media must be shipped long distances)
Very high capacity (10s - 100s of gigabytes)
Essentially unlimited expansion capabilities (limited only by the floorspace needed to house the backup media)
Very inexpensive (fractional cents/byte)
By using different technologies with different capabilities, it is possible to fine-tune system design for maximum performance at the lowest possible cost. The following sections explore each technology in the storage spectrum.
Every present-day CPU design includes registers for a variety of purposes, from storing the address of the currently-executed instruction to more general-purpose data storage and manipulation. CPU registers run at the same speed as the rest of the CPU; otherwise, they would be a serious bottleneck to overall system performance. The reason for this is that nearly all operations performed by the CPU involve the registers in one way or another.
The number of CPU registers (and their uses) are strictly dependent on the architectural design of the CPU itself. There is no way to change the number of CPU registers, short of migrating to a CPU with a different architecture. For these reasons, the number of CPU registers can be considered a constant, as they are changeable only with great pain and expense.