As a register set (English Register Set ) is defined as the set of all registers of a microprocessor . The set of those registers that can be addressed directly by programs is also known as the programming model of a processor. In addition to the registers of the programming model, there may be other registers that are only used within the processor. These are also known as auxiliary registers .
There are three types of registers within a register set:
- Data registers are used to temporarily store operands and calculation results.
- Address registers are used to address operands and commands.
- Special registers are used in different special areas (for example the program counter or the stack pointer )
Reasons for the low number of registers in a microprocessor
The number of registers in a processor is - compared to the current size of the main memory , even compared to the size of today's cache memory - extremely small. The reason for this small number has to do with addressing problems with larger numbers of registers. If you increase the number of registers, sooner or later you will need an address decoder to access individual cells. But this already loses an enormous amount of time - compared to access via direct control lines, which can also take place in parallel on several registers. In addition, register addresses are used in so-called opcodes . The width of opcodes is limited, so that there is also a limitation of the codable register addresses.
This table shows the number of registers of different, frequently used computer architectures. In the x86 architecture , the stack and index registers are counted among the general registers, although only a limited number of operations are allowed on them. Other architectures also have restrictions on the usability of individual registers.
|architecture||Integer register (integer ALU )||Floating point register ( FPU )|