This section contains 405 words (approx. 2 pages at 300 words per page) |
Registers are localized component cells of the central processing unit (CPU). Registers are designed to offer fast memory retrieval. There are two principal forms of registers. General-purpose registers are cells that allow the temporary storage of data actually being manipulated or utilized by the CPU. The general-purpose registers maintain data to be used as input for the operations performed by the arithmetic/logic unit (ALU), and also maintain the output or results from those operations.
Registers serve an important memory function that differs from other random access memory (RAM). Register sets comprise only a small area of Ram (typically, modern systems carry an allocation of 32 to 144 registers). The principal difference in register memory is that it may be addressed with only a few bits (e.g., a 4-bit or eight-bit register). Other RAM components usually require 20 bits to specify a location. In addition, registers contain actual memory addresses while other RAM memory is indirectly addressed. The use of registers vastly improves computational speed. Although several cycles may be required to access other memory components, multiple registers can be addressed, read and written within a single cycle.
Register allocation and register assignments are complier functions used to designate the values to be placed in registers.
Computer performance and computation ability can suffer from shortage of registers. Without suitable register allocation, it can be difficult to save and store intermediate computational values and, especially in early generation computing systems, register dancing was a serious problem. Register dancing required the highly coordinated of saving and dumping of intermediate values in registers as operational proceeded. Even in modern systems, if there is insufficient register allocation, the system must spill data (register spillage) from the registers into other memory.
There are several forms of physical and functional register configurations. Data registers (DR) are usually 16-bit registers. Address registers (AR) are usually 12-bit registers designed to hold a memory address. Accumulator registers (AC) are usually 16-bit registers that function as processor registers. Program counter registers (PC) are usually 12-bit registers that can hold the address of an instruction. Instruction registers (IR) are usually 16-bit registers designed to hold instruction code. Input (INPR) and output (OUTR) registers are usually 8-bit registers that function to hold input and output characters.
Increment and decrement registers hold increment and decrement operators that function to increase or decrease the value of a variable. Temporary registers (TR) usually 16-bits are utilized to hold temporary data.
This section contains 405 words (approx. 2 pages at 300 words per page) |