Register (Prozessor)
Ein Register ist ein kleiner Speicherbereich auf denm Prozessoren eines Computers, auf den der Prozessor sehr viel schneller zugreifen kann als zum Beispiel auf den Hauptspeicher. Register stehen an der Spitze der Speicherhierarchie und sind daher die schnellste Möglichkeit, Daten zu manipulieren, da der Zugriff unabhängig vom Daten- oder Adressbus erfolgt.
Registersatz
Als Registersatz wird die Menge aller Register eines Prozessors bezeichnet. Der Umfang dieses Registersatzes ist abhängig von der Prozessorarchitektur.
Oft bieten Register die Möglichkeit, gleichzeitig auf mehrere Adressen zuzugreifen. Dadurch können z.B. bei einer Additionsoperation alle Eingaben gleichzeitig aus den Registern eingelesen werden.
Registertypen
Datenregister
Datenregister werden benutzt, um Operanden zu speichern. Prozessoren neuerer Generation besitzen oft Datenregister mit Akkumulatorfunktion.
Adressregister
Die Adressregister spielen eine wichtige Rolle in der Adressarithmetik. Adressregister werden für die Berechnung von Speicheradressen eines Operanden oder Befehls genutzt. Sie haben Verbindung mit dem internen Datenbus und dem Adressbus.
Adressregister lassen sich in zwei Typen unterscheiden. Dies sind zum einen Indexregister sowie Basisadressregister, auf welche bei den Spezialregistern eingegangen wird. Indexregister speichern den Offset zu einer Basisadresse, der oft vorzeichenbehaftet ist.
Für den Indexregister berechnet ein spezieller Addierer die Summe aus dem Indexregisterwert und einem Offset, der auf dem internen Datenbus anliegt. Die sich ergebende Summe wird auf dem Adressbus ausgegeben.
Spezialregister
Spezialregister sind nicht vom Anwender programmierbar. Sie speichern den Betriebszustand des Prozessors, außerdem erfüllen sie Hilfsfunktionen für den Prozessor.
Bei den meisten Architekturen sind folgende Spezialregistertypen anzutreffen:
- Befehlszähleregister (englisch instruction pointer (IP) oder program counter (PC)): der Befehlsregister enthält die Adresse der Speicherzelle mit dem nächsten Befehl
- Befehlsregister: speichert den aktuellen Befehl
- Statusregister: geben bestimmte Zustände nach Ausführung eines Befehls an
- Basisregister, z.B. für die Basisvektortabelle
Stackregister
Stackregister sind nach dem LIFO-Prinzip organisiert, welche anhand von Push-und-Pop-Operationen manipuliert werden können. Auf den meisten Architekturen existiert ein System-Stack und ein Anwender-Stack. Das Betriebssystem nutzt den System-Stack zur Sicherung des Prozessorstatus bei Prozessumschaltung. Der Anwender-Stack kann von dem Programmierer frei genutzt werden.