As a register memory (also register bank , Eng. Register file ) refers to a number of registers of a microprocessor , which are organized in blocks generally and individually via a address decoder can be controlled. Register memory must therefore be distinguished from the register set of a microprocessor, since the registers of the register set are addressed via direct control lines for reasons of speed. The number of registers in a register memory cannot be arbitrarily large either, since, as in the case of the register set registers, their addresses are used in opcodes and therefore cannot be arbitrarily large. In order to enable at least partially parallel access to several registers of a register memory, multiport register memories with several input and output ports are also used.
If you want to use particularly large register memories, the use of so-called register banks is an option . The register memory is divided into a number of blocks, which are called register banks. Different program parts such as the main program, subroutines or exception routines can now each be assigned an exclusive register bank. Relative addressing can be used within such a bank (i.e. addressing via the base address of the respective bank and an offset for the specific determination of the register) so that the addresses within an opcode do not become too large.
Register renaming is also possible within sufficiently large register banks.