Informatik

Register: Aufbau, Funktion und Registerarten

Register: Aufbau, Funktion und Registerarten
Register: Aufbau, Funktion und Registerarten
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Ein Register ist ein kleiner Speicherbaustein für ein Binärwort. Register liegen häufig im Prozessor und halten dort Daten, Adressen, Befehle oder Zustände besonders schnell bereit. Auch andere Hardwarekomponenten können eigene Register besitzen.

Auf dieser Seite lernst du, wie ein Register aufgebaut und beschrieben wird, welche Aufgaben verschiedene Registerarten erfüllen und wie Register einen Befehlsablauf unterstützen.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Wie speichert ein Register Daten?

Stell dir vor, eine Rechnung der CPU benötigt zwei Zahlen. Diese Zahlen müssen für das Rechenwerk schnell erreichbar sein. Dafür können sie vorübergehend in Registern liegen.

Definition

Register

Ein Register ist eine Speichereinheit für ein Binärwort mit einer festgelegten Anzahl von Bits. Es hält seinen gespeicherten Wert, bis ein Steuersignal eine Änderung auslöst.

Die Registerbreite gibt an, wie viele Bits ein Register speichern kann. Ein 8-Bit-Register besitzt acht Speicherzellen und speichert ein Byte. Werden die Bits als natürliche Zahl ohne Vorzeichen gedeutet, ergeben sich 256 mögliche Bitmuster und damit die Werte von 0 bis 255.

RegisterbreiteSpeicherkapazität
8 Bit1 Byte
16 Bit2 Byte
32 Bit4 Byte
64 Bit8 Byte

Technisch kann jede Speicherzelle durch ein Flipflop verwirklicht werden. Ein Flipflop speichert genau ein Bit. Ein Register mit einer Breite von $n$ Bit besteht daher aus $n$ solchen Ein-Bit-Speichern.

Beispiel

Im 8-Bit-Muster 00101101 steht jede Stelle für den Zustand einer Speicherzelle. Beim Schreiben übernimmt das Register alle acht Bits gemeinsam. Danach bleibt dieses Muster gespeichert, auch wenn sich die Daten am Eingang ändern.

Merke

Die Registerbreite legt die Zahl der speicherbaren Bits fest. Welche Bedeutung das Bitmuster hat, hängt von seiner Verwendung ab: Es kann zum Beispiel eine natürliche Zahl, eine Adresse oder einen Teil eines Befehls darstellen.

Teste dich
Frage 1 von 2LeichtWas bedeutet die Angabe „16-Bit-Register“?
Lösung: Das Register kann ein Binärwort mit 16 Bits speichern. — Die Registerbreite zählt Bits. Ein 16-Bit-Register enthält entsprechend 16 Ein-Bit-Speicher.
Frage 2 von 2MittelEin Register besteht aus acht Ein-Bit-Flipflops. Welche Breite hat es?
Lösung: 8 Bit — Die Breiten der acht Speicherzellen werden addiert: achtmal ein Bit ergibt 8 Bit beziehungsweise 1 Byte.
Wie wird ein neuer Wert übernommen?

Eine Änderung am Dateneingang verändert den Registerinhalt nicht sofort. Bei einem flankengesteuerten Register wird der Eingang erst an einer festgelegten Taktflanke übernommen.

Eine Taktleitung kann stabil 0 oder stabil 1 sein. Außerdem gibt es zwei Wechsel:

  • Vorderflanke: Wechsel von 0 auf 1
  • Rückflanke: Wechsel von 1 auf 0

Bei einem vorderflankengesteuerten Register ist der Wechsel von 0 auf 1 das aktive Ereignis. Mehrere Register erhalten üblicherweise denselben Takt. Ein zusätzliches Steuersignal namens Write Enable, auf Deutsch Schreibfreigabe, bestimmt, welches Register beim Taktereignis einen neuen Wert übernimmt.

Beispiel

Ein 8-Bit-Register enthält 00000101. Am Dateneingang liegt 00001001 an.

  1. Vor der aktiven Taktflanke bleibt der gespeicherte Wert 00000101.
  2. An der Taktflanke ist Write Enable aktiv. Das Register übernimmt deshalb 00001001.
  3. Nach einer kurzen Signallaufzeit erscheint 00001001 am Ausgang.

Ist Write Enable nicht aktiv, behält das Register bei derselben Taktflanke seinen alten Wert.

Ein Reset setzt das Register auf einen fest vorgegebenen Wert zurück. Welcher Signalzustand den Reset auslöst und welcher Rücksetzwert verwendet wird, hängt von der Hardware ab.

Warum muss der Eingang kurz stabil bleiben?

Ein Register arbeitet nicht unendlich schnell. Die Eingangsdaten müssen bereits vor der aktiven Taktflanke für die Voreinstellzeit stabil sein. Nach der Flanke müssen sie während der Haltezeit noch stabil bleiben. Erst nach einer Signallaufzeit ist der neue Wert sicher am Ausgang sichtbar.

Merke

Takt und Write Enable erfüllen verschiedene Aufgaben: Der Takt legt den Zeitpunkt einer möglichen Übernahme fest. Write Enable entscheidet, ob das Register zu diesem Zeitpunkt tatsächlich geschrieben wird.

Teste dich
Frage 1 von 2MittelZwei Register erhalten denselben Takt. Nur Register A hat eine aktive Schreibfreigabe. Was geschieht an der aktiven Taktflanke?
Lösung: Register A übernimmt seinen Eingangswert; Register B behält seinen bisherigen Wert. — Ein gemeinsamer Takt synchronisiert die Register. Die jeweilige Schreibfreigabe entscheidet über die Wertübernahme.
Frage 2 von 2SchwerDer Dateneingang ändert sich genau um die aktive Taktflanke herum mehrfach. Warum ist der übernommene Wert möglicherweise unsicher?
Lösung: Die erforderliche Voreinstell- oder Haltezeit kann verletzt sein. — Der Eingang muss vor und nach dem aktiven Taktereignis kurz stabil bleiben. Diese Zeitfenster heißen Voreinstellzeit und Haltezeit.
Welche Register braucht ein Prozessor?

Register erfüllen im Prozessor unterschiedliche Aufgaben. Nicht jedes Register ist für jedes Programm direkt zugänglich.

  • Datenregister halten Operanden und Ergebnisse der arithmetisch-logischen Einheit, kurz ALU.
  • Ein Akkumulator ist ein Datenregister, das in manchen Architekturen besonders häufig als Operand und Ergebnisspeicher dient.
  • Adressregister enthalten Adressen oder Bestandteile einer Adressberechnung.
  • Der Programmzähler oder Befehlszeiger enthält die Adresse des aktuellen oder nächsten Befehls. Ein Sprung verändert diesen Wert.
  • Das Befehlsregister hält den gerade bearbeiteten Maschinenbefehl.
  • Das Statusregister speichert einzelne Zustandsbits, sogenannte Flags. Ein Zero-Flag zeigt beispielsweise an, dass das letzte Ergebnis null war.
  • Der Stapelzeiger verwaltet die Adresse des Stapelspeichers. Dort können unter anderem Rücksprungadressen und lokale Daten liegen.
Definition

Architekturregister

Ein Architekturregister ist für Software sichtbar und kann durch Maschinenbefehle angesprochen werden. Moderne Prozessoren können zusätzlich interne physische Hardware-Register besitzen, die nicht unmittelbar als eigene Register im Befehlssatz erscheinen.

Beispiel

Eine ALU berechnet eine Subtraktion und erhält das Ergebnis 0. Das Ergebnis kann in einem Datenregister landen. Gleichzeitig wird im Statusregister das Zero-Flag gesetzt. Ein anschließender bedingter Sprung kann dieses Flag prüfen und den Programmzähler auf eine andere Befehlsadresse setzen.

Die Wirkungskette lautet:

ALU-Ergebnis → Statusregister → Sprungentscheidung → Programmzähler

Teste dich
Frage 1 von 3LeichtWelches Register hält Zustandsinformationen wie das Zero-Flag?
Lösung: Das Statusregister — Flags beschreiben Zustände nach einer Operation und liegen deshalb im Statusregister.
Frage 2 von 3MittelEine Sprunganweisung soll nur ausgeführt werden, wenn das letzte Rechenergebnis null war. Welche beiden Register sind unmittelbar wichtig?
Lösung: Statusregister und Programmzähler — Das Zero-Flag im Statusregister liefert die Bedingung. Der Sprung setzt den Programmzähler auf die Zieladresse.
Frage 3 von 3SchwerWelche Zuordnung ist vollständig richtig?
Lösung: Datenregister – Operand; Adressregister – Speicheradresse; Befehlsregister – aktueller Befehl; Statusregister – Flags — Datenregister halten Rechendaten, Adressregister Speicheradressen, Befehlsregister den aktuellen Befehl und Statusregister Zustandsbits.
Gibt es Register außerhalb der CPU?

Ja. Ein Register ist ein allgemeiner Hardwarebaustein und nicht auf den Hauptprozessor beschränkt. Angeschlossene oder integrierte Ein-/Ausgabe-Komponenten können eigene Register besitzen.

Typische Aufgaben solcher E/A-Register sind:

  • Ein Datenregister hält Daten, die gesendet oder empfangen werden.
  • Ein Statusregister meldet den Zustand einer Komponente.
  • Ein Steuerregister legt eine Betriebsart oder ein Verhalten fest.
  • Ein Data Direction Register bestimmt bei einer programmierbaren Schnittstelle, welche Leitungen als Eingang und welche als Ausgang arbeiten.

Solche Register können über besondere Portnummern erreichbar sein. Beim Memory-Mapped I/O liegen ihre Adressen dagegen im Adressraum, den der Prozessor auch für Speicherzugriffe verwendet. Trotzdem gehören sie funktional zur jeweiligen Hardwarekomponente.

Gut zu wissen

Ausgänge gewöhnlicher Register dürfen nicht einfach elektrisch miteinander verbunden werden. Würden zwei Register gleichzeitig unterschiedliche Spannungspegel auf dieselbe Leitung legen, könnte die Hardware beschädigt werden. Eine Schaltung benötigt daher eine geregelte Auswahl oder geeignete Bustreiber.

Teste dich
Frage 1 von 2MittelEin Programm liest ein Register einer Schnittstelle, um festzustellen, ob neue Daten angekommen sind. Welche Registerfunktion passt am besten?
Lösung: Statusregister — Ein Statusregister meldet Eigenschaften oder Ereignisse einer Hardwarekomponente.
Frage 2 von 2SchwerEin Register bestimmt für jede Leitung eines Anschlusses, ob sie Eingang oder Ausgang ist. Um welchen Typ handelt es sich?
Lösung: Data Direction Register — Das Data Direction Register, kurz DDR, legt die Datenrichtung einzelner Leitungen fest.
Worin unterscheidet sich die Registermaschine?

In der theoretischen Informatik bezeichnet Registermaschine ein abstraktes Rechnermodell. Seine Register sind nicht mit einer konkreten Sammlung physischer CPU-Register gleichzusetzen.

Eine Variante dieses Modells besitzt:

  • ein endliches, nummeriertes Programm,
  • einen Befehlszähler $b$,
  • einen Akkumulator $c(0)$,
  • unendlich viele nummerierte Register $c(1), c(2), c(3), \ldots$.

Diese Modellregister können beliebig große natürliche Zahlen enthalten. Reale Register haben dagegen eine feste Bitbreite und somit nur endlich viele Bitmuster. Auch ein Simulator bleibt durch seinen endlichen Speicher und seine festgelegten Wertebereiche begrenzt.

Beispiel

Ein reales 8-Bit-Register kann ohne Vorzeichen Werte von 0 bis 255 darstellen. Die Zahl 256 passt nicht in dieses Format. Ein Register der abstrakten Registermaschine kann dagegen auch 256 und beliebig größere natürliche Zahlen enthalten.

Merke

Der gleiche Begriff beschreibt zwei verschiedene Ebenen: Ein Hardware-Register ist ein realer Speicherbaustein. Ein Register der Registermaschine ist ein Bestandteil eines mathematischen Modells.

Teste dich
Frage 1 von 2LeichtWelche Aussage gehört zur abstrakten Registermaschine?
Lösung: Ihre Modellregister können beliebig große natürliche Zahlen enthalten. — Im Modell sind die Register nicht durch eine feste Bitbreite begrenzt.
Frage 2 von 2SchwerWarum darfst du die Modellregister nicht ohne Einschränkung mit realen Registern gleichsetzen?
Lösung: Reale Register haben endliche Bitbreiten und Wertebereiche, die Modellregister dieser Variante nicht. — Das Modell vereinfacht die Technik. Ein realer Rechner besitzt nur endliche Ressourcen und Register mit fester Breite.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Register
    • Aufbau und Speicherung
      • Flipflops, Bitmuster und Registerbreite
    • Steuerung
      • Takt, Write Enable und Reset
    • CPU-Aufgaben
      • Daten, Adressen, Befehle und Flags
    • Ablaufsteuerung
      • Statusregister und Programmzähler
    • Weitere Hardware
      • Daten-, Status- und Steuerregister für Ein-/Ausgabe
    • Theoretisches Modell
      • Registermaschine ohne feste Hardwarebreite
Abschluss-Check
Teste dich
Frage 1 von 4LeichtWas bleibt erhalten, wenn sich der Dateneingang ändert, aber kein wirksames Schreibereignis stattfindet?
Lösung: Der bisherige Registerinhalt — Ein Register trennt Eingang und gespeicherten Zustand. Ohne wirksame Übernahme bleibt der alte Inhalt erhalten.
Frage 2 von 4MittelEin Rechenergebnis ist null. Danach soll das Programm zu einer anderen Stelle springen. Welche Abfolge beschreibt den Vorgang richtig?
Lösung: Die ALU erzeugt das Ergebnis, das Zero-Flag wird gesetzt und der Sprung verändert den Programmzähler. — Das Statusregister hält das Zero-Flag. Ein bedingter Sprung wertet es aus und setzt bei erfüllter Bedingung den Programmzähler neu.
Frage 3 von 4SchwerEine Schnittstelle besitzt ein Datenregister und ein Statusregister. Sind das CPU-Register?
Lösung: Nein. Es sind Register der Schnittstelle, auf die die CPU jedoch zugreifen kann. — Register sind nicht auf die CPU beschränkt. E/A-Register gehören funktional zur jeweiligen Komponente und sind über Ports oder Memory-Mapped I/O erreichbar.
Frage 4 von 4SchwerEin theoretisches Modell erlaubt in jedem Register beliebig große natürliche Zahlen. Welche Aussage über eine reale Umsetzung ist richtig?
Lösung: Eine reale Umsetzung bleibt durch endlichen Speicher und feste Registerbreiten begrenzt. — Die unbegrenzten Register sind eine mathematische Abstraktion. Physische Rechner und konkrete Simulatoren besitzen endliche Ressourcen.

Passend dazu