Processor Registers
As well as special logic to perform arithmetic and logic functions, the
processor houses a small number of very fast memory locations, termed
processor registers.
- Data in registers can be read and written very rapidly (with a typical
access time of 0.5-3ns). If the required data is available in registers,
rather than main memory, program execution may proceed 10-500X faster.
- Different types of processors have varying number of registers, For example,
some processors have very few (3-16),
some have many (32-100s).
- The number of general-purpose CPU registers,
and the width of each register (measured in bits, e.g. 64-bit registers),
contribute to the power and speed of a CPU.
- Processors place constraints on how some registers are used. Some processors
expect certain types of data to reside in specific registers. For example,
some registers may be expected to hold integer operands for
integer arithmetic instructions,
whereas some registers may be reserved for holding floating-point data.
The Role of Processor Registers
All data to be processed by the CPU must first be copied into registers -
the CPU cannot, for example,
add together two integers residing in RAM.
Data must first be copied into registers;
the operation (e.g. addition) is then performed on the registers
and the result left in a register,
and that result (possibly) copied back to RAM.
Registers are also often used to hold a memory address,
and the register's contents used to indicate which item from RAM to fetch.
The transfer of data to and from registers is completely
transparent to users (even to programmers).
Generally,
we only employ assembly language programs
to manipulate registers directly.
In compiled high-level languages, such as C,
the compiler translates high-level operations into low-level operations
that access registers.
CITS2002 Systems Programming, Lecture 6, p3, 7th August 2024.
|