Registerspeicher

Als Registerspeicher (auch Registerbank, engl. register file) bezeichnet man eine Anzahl von Registern eines Mikroprozessors, die in der Regel blockartig organisiert sind und die einzeln über einen Adressdecoder angesteuert werden. Registerspeicher ist somit vom Registersatz eines Mikroprozessors zu unterscheiden, da man die Register des Registersatzes aus Geschwindigkeitsgründen über direkte Steuerleitungen adressiert. Auch die Anzahl der Register in einem Registerspeicher kann nicht beliebig groß gewählt werden, da wie im Falle der Registersatz-Register ihre Adressen in Opcodes verwendet werden und daher nicht beliebig groß sein dürfen. Um einen zumindest teilweise parallelen Zugriff auf mehrere Register eines Registerspeichers zu ermöglichen, verwendet man auch Multiport-Registerspeicher mit mehreren Ein- und Ausgangsports.

Möchte man besonders große Registerspeicher verwenden, so bietet sich gelegentlich der Einsatz sogenannter Registerbänke an. Dabei wird der Registerspeicher in eine Anzahl von Blöcken unterteilt, die man als Registerbänke bezeichnet. Verschiedenen Programmteilen wie zum Beispiel Hauptprogramm, Unterprogrammen oder Ausnahmeroutinen kann nun jeweils eine Registerbank exklusiv zugeteilt werden. Innerhalb einer solchen Bank kann man eine relative Adressierung verwenden (d. h. Adressierung über die Basisadresse der jeweiligen Bank und einen Offset für die konkrete Bestimmung des Registers), so dass die Adressen innerhalb eines Opcodes nicht zu groß werden.

Innerhalb ausreichend großer Registerbänke wird auch die Verwendung der Registerumbenennung möglich.