Was ist ein Prozessorregister?
Der schnellste Zugriff auf einen speicherbaren Speicher in einer Computer-Verarbeitungseinheit (CPU) ist ein Prozessorregister. Computerarchitekturen entwerfen Prozessorregister-Speicherfähigkeit in einem CPU-Cache, so dass Werte, auf die von Computerprozessen regelmäßig zugegriffen wird, dort gespeichert werden können. Prozesse können basierend auf diesen gespeicherten Werten schnell zugreifen und ausgeführt werden. Da die Prozessorregister in der CPU gespeichert sind, werden sie als die Spitze der Speicherhierarchie angesehen, und die Zuordnung wird normalerweise durch Variablen bestimmt. Sobald die Daten verarbeitet sind, werden sie in den Cache, in den Arbeitsspeicher (RAM) oder auf die Festplatte zurückgespeichert.
Computerprozessoren verfügen über Register unterschiedlicher Typen, je nach Anweisungen oder Tests, die auf sie angewendet werden, oder nach ihrem spezifischen Inhalt. Daten-, Adress- und Allzweckregister enthalten mathematische Werte und Adressen für die Speicherspeicherung. Es gibt Bedingungsregister mit Wahrheitswerten für logische Operationsbefehle, Konstantenregister mit Nur-Lese-Werten wie pi und Null und Spezialregister, die einen Programmzähler, ein Statusregister und Stapelzeiger für die Stapelspeichernutzung enthalten. Steuerregister enthalten Befehle aus einem Befehlssatz, der in die CPU-Architektur integriert ist. und es gibt mehrere, die vom RAM und von Schaltungen der CPU abrufen, die auf Speicherpuffer, Speicherdaten, Speichertypbereiche und Adressen zugreifen. Variablen, die keinem Prozessorregister zugewiesen sind, werden im RAM gespeichert und für Lese- und Schreibvorgänge ein- und ausgelesen, diese werden jedoch langsamer verarbeitet.
In Kenntnis des Geschwindigkeitsunterschieds zwischen der Verarbeitung in Registern und dem RAM entwerfen Entwickler von Compiler-Computerprogrammen ihre Programme normalerweise so, dass sie so weit wie möglich im Prozessorregisterspeicher arbeiten, damit Funktionen schnell ausgeführt werden können. Für Just-in-Time-Compiler-Programme verfolgt eine als lineare Abtastzuweisung bekannte Registerzuweisungstechnik Registeroperationen und gibt dem Programm schnell Registerrechenleistung frei. Registerzuweisungstechniken versuchen, so viele Programmvariablen wie möglich Registern zuzuweisen, und zwar in einem Operationsfluss, der die kleinste Anzahl von Registern für eine schnelle Kompilierung maximiert.
Da viele Prozessorregister für die temporäre Speicherung von Variablen und Befehlssätzen vorgesehen sind, können alle Operationen für die Programmnutzung zur Manipulation durch die CPU gespeichert werden. Während des Betriebs sucht eine CPU zuerst im CPU-Cache der Register nach einer Kopie aller Daten, die bei Lese-, Schreib- oder Verschiebevorgängen verarbeitet werden sollen, bevor sie auf RAM und Sekundärspeicher auf Festplatten zugreift. Ab 2011 halten die meisten CPUs drei einzelne Caches. Befehls-Caches befassen sich mit Ausführungsabrufen durch Befehle, ein Übersetzungs-Lookalike-Puffer beschleunigt die Adressumsetzung für virtuell-physikalische Adressen, und ein Daten-Cache enthält einen mehrstufigen Hierarchiespeicher von Daten, die von einem Prozessorregister-Befehlssatz bearbeitet werden sollen.