WikiDer > Registerspeicher
Speicher registrieren ist interner Speicher die in verwendet wird Prozessoren um Werte zu speichern, auf die der Prozessor direkten Zugriff haben muss, um seine Arbeit abzuschließen.
Benutzen
Ein Prozessor, wie er normalerweise in Computers, ist ein Von Neumann-Maschine der kontinuierlich die drei Schritte von Von Neumann ausführt: Holen Sie sich die folgende Anweisung - decodieren Sie die Anweisung - führen Sie die Anweisung aus.
Alle Daten im Computer sind in Form von Bitreihen codiert - Reihen von Einsen und Nullen. Um die obigen Schritte auszuführen, muss der Prozessor einen Befehl in Form einer Bitreihe abrufen, dann aus dieser Bitreihe ableiten, welcher Befehl die Bitreihe darstellt, und schließlich den Befehl ausführen. Während dieser Arbeit benötigt der Prozessor einen Platz, um die Eingabe und eventuelle Zwischenergebnisse zu speichern. Dies ist zum Beispiel notwendig, um zwei Werte zu addieren oder zu multiplizieren: Eingabe, Ausgabe und Zwischenergebnisse müssen alle irgendwo gespeichert werden, bis der Prozessor das Ergebnis weglegt und mit der nächsten Anweisung beginnen kann. Dafür ist ein Teil der RAM, die sogenannte Arbeitsspeicher, mit dem jeder Computer ausgestattet ist, verwendet werden. Diese Erinnerung ist über a Bus mit dem Prozessor verbunden. Die Entfernung zwischen Prozessor und diesem (über den Bus zu überbrückenden) Speicher macht eine solche Lösung jedoch unmöglich: Für jeden Mikroschritt des Prozessors müssten die Bits über diesen enorm langen Bus ein- und ausgespeist werden. Aus diesem Grund verfügt der Prozessor über eine Menge integrierten Speicher, auf den er direkter zugreifen kann. Diese Zellgruppen werden registriert und zusammen bilden sie den Submaster-Speicher.
Kosten und Nutzen
Wie bereits erwähnt, befindet sich der Submaster-Speicher direkt auf dem Prozessor. Dadurch hat der Prozessor einen viel schnelleren Zugriff auf die in seinen Registern gespeicherten Daten – die Datenwege zwischen den Registern und den Verarbeitungseinheiten des Prozessors sind extrem kurz. Daher ist die Verwendung von Submaster-Speicher um ein Vielfaches schneller als die Verwendung von RAM, sowohl in der Speicherzugriffszeit als auch in der Lookup-Zeit (die gleich 0 s ist).
Andererseits sind die Register im Prozessor integriert; Register sind somit pro Speichereinheit um ein Vielfaches teurer als RAM und viel teurer als beispielsweise Speicherplatz auf einem Festplatte. Darüber hinaus ist die Anzahl der Register durch die verfügbare Oberfläche des Prozessors begrenzt, obwohl die fortschreitende Miniaturisierung den möglichen Speicher des Prozessors erhöht. Daher ist es für die Steuerung des Rechners (sowohl im Hardware- als auch im Sinne der Programme) besonders wichtig, eine optimale Verteilung der benötigten Speicherkapazität zwischen Registerspeicher und RAM zu erreichen.
Registrierungstypen
Im Großen und Ganzen gibt es zwei Arten von Bitreihen, denen ein Prozessor während seiner Arbeit begegnet:
- Informationstragende Bitzeilen: Dies sind Bitzeilen, die reine Daten enthalten, z. B. ein Zeichen, das auf dem Monitor erscheinen soll oder eine Zahl, die an etwas angehängt werden soll
- Steuerungsempfindliche Bitzeilen: Dies sind Bitzeilen, die den Betrieb des Prozessors beeinflussen. Sie enthalten Anweisungen für den Prozessor und Verweise auf Zellen im RAM, in denen der Prozessor andere Bitreihen finden kann, die für seine Arbeit wichtig sind. Diese Referenzen werden Adressen erwähnt.
Obwohl beide Bitzeilen eigentlich nichts anderes sind als Zeilen 1 und 0 (streng nach dem Prinzip von John von Neumann) gibt es mehrere Prozessoren, die ihre verfügbaren Register nach Anwendung (Adressen oder Daten) "spezialisieren". Obwohl sich die physikalische Struktur der beiden Registertypen nicht unterscheidet, ermöglicht diese Unterteilung oft eine bessere Leistung im Prozessorbetrieb, da einige Befehle in den Prozessorregistern bestimmte Datentypen enthalten können.
Übrigens ist die obige Trennung nicht absolut. Es gibt viele Prozessoren auf dem Markt, die eine solche Unterscheidung nicht oder eine Unterscheidung treffen, aber dann noch eine dritte Gruppe von Registern haben, die beide Arten von Daten enthalten können oder deren Adressregister nur für Adressen und die Datenregister können Daten oder Adressen enthalten.
Typenübersicht
Es können verschiedene Arten von Registern unterschieden werden:
- Datenregister ganze Zahlen speichern. In einigen älteren Architekturen und einfachen modernen Prozessoren gibt es ein spezielles Datenregister, den Akkumulator, der implizit für viele Operationen verwendet wird.
- Adressregister enthalten Speicheradressen und werden verwendet, um Computerspeicher zu nähern. Bei einigen Prozessoren gibt es ein spezielles Adressregister, das Indexregister.
- Allzweckregister (GPRs) Diese Register können sowohl Zahlen als auch Adressen enthalten.
- Gleitkommaregister (FPRs) sind es gewohnt Gleitkomma- Nummern speichern.
- Konstante Register enthalten Werte, die konstant sind (null, eins, pi, ...).
- Vektorregister enthalten Daten für Vektorprozessoren durchgeführt mit SIMDAnleitung.
- Register für besondere Zwecke enthalten den Status eines Programms. Im Allgemeinen werden hier der Befehlszeiger, der Stapelzeiger und das Statusregister gehalten.
- Anweisungsregister enthalten die Anweisungen, die gerade ausgeführt werden.
- Indexregister werden zum Einstellen verwendet OperandAdressen während der Programmausführung.
- Register zum Lesen von Daten aus dem Hauptspeicher, einer Sammlung von Speicherregistern, die sich auf anderen Chips als dem Prozessor befinden:
- Speicherpufferregister
- Speicherdatenregister
- Speicheradressenregister
Register und Compilerbau
Diese Vielzahl von Möglichkeiten stellt Autoren von Compiler. Ihre Compiler übersetzen Programme in Maschinenbefehle und bauen auch eine Verteilung der Datenspeicherung auf Register und Speicher auf. Registerzuordnung erwähnt. Für den Programmierer ist es eine große Herausforderung, Programme so zu übersetzen, dass die aufgebaute Verteilung optimal ist und somit die beste Performance aus dem Gesamtsystem herausgeholt wird.
| Digitale Speichermedien | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|