register
1. One of a small number of high-speed memory locations in a computer's CPU.
Registers differ from ordinary random access memory in several respects:
There are only a small number of registers (the "register set"), typically 32 in
a modern processor though some, e.g. SPARC, have as many as 144. A register may
be directly addressed with a few bits. In contrast, there are usually millions
of words of main memory (RAM), requiring at least twenty bits to specify a
memory location. Main memory locations are often specified indirectly, using an
indirect addressing mode where the actual memory address is held in a register.
Registers are fast; typically, two registers can be read and a third written --
all in a single cycle. Memory is slower; a single access can require several
cycles.
The limited size and high speed of the register set makes it one of the critical
resources in most computer architectures. Register allocation, typically one
phase of the back-end, controls the use of registers by a compiled program.
See also accumulator, FUBAR, orthogonal, register dancing, register allocation,
register spilling.
2. An addressable location in a memory-mapped peripheral device. E.g. the
transmit data register in a UART.
Nearby terms:
regexp « Regina « regional network « register
» register allocation » register assignment »
register dancing
|