Register: Aufbau, Funktion und Registerarten
Du lernst, wie Register Nullen und Einsen speichern, wie ihre Steuersignale wirken und welche Aufgaben die verschiedenen Registerarten haben.
Kurz gesagt
Register speichern Informationen als Bits, also Nullen und Einsen. Bei elektronischen Registern legt die Breite fest, wie viele Bits hineinpassen. Je nach Aufgabe halten sie etwa Rechenwerte, Arbeitsanweisungen oder Angaben zum Zustand.
Eine digitale Schaltung verarbeitet Informationen als Nullen und Einsen. Ein Register hält solche Informationen für die weitere Verarbeitung bereit. Du untersuchst ein festgelegtes Schaltungsmodell und vergleichst Register in elektronischen Geräten mit Registern eines theoretischen Rechenmodells.
Deine Lernziele
Ein Bit kann den Wert 0 oder 1 haben. Ein D-Flipflop ist ein elektronischer Speicher für ein Bit. Mehrere D-Flipflops können zusammen ein Register bilden: Jedes hält ein Bit, gemeinsam halten sie ein Bitmuster. Ein Hardware-Register ist dabei ein Register aus elektronischen Bauteilen.
Die Registerbreite gibt die Anzahl der gespeicherten Bits an. Ein Register mit drei Bits hält gleichzeitig drei Bits, also genau ein Muster wie 101. Es hält nicht mehrere Muster gleichzeitig. Solange keine wirksame Änderung ausgelöst wird, bleibt das gespeicherte Muster erhalten.
Bei jedem zusätzlichen Bit verdoppelt sich die Anzahl möglicher Bitmuster, denn das neue Bit kann 0 oder 1 sein. Für eine Breite von n Bits gibt es daher 2^n verschiedene Muster. Dabei bezeichnet n die Anzahl der Bits. Was ein Muster bedeutet, hängt von seiner Verwendung ab: Es kann zum Beispiel für eine Zahl oder für mehrere einzelne Zustände stehen.
Registerbreite
Die Registerbreite ist die Anzahl der Bits, die ein Register gleichzeitig speichert.
Beispiel: Alle Muster eines Drei-Bit-Registers
- 1Das Register besteht aus drei Ein-Bit-Speichern.
- 2Seine möglichen Inhalte sind 000, 001, 010, 011, 100, 101, 110 und 111.
- 3Das sind 2^3 = 8 mögliche Bitmuster. Zu einem Zeitpunkt ist eines davon gespeichert.
Teste dich
Für diesen Abschnitt und alle darauf bezogenen Aufgaben legen wir ein Modell nach Logisim fest. Logisim ist ein Programm zum Simulieren digitaler Schaltungen. Alle betrachteten Eingänge haben eindeutige Werte 0 oder 1. Der Dateneingang D liefert das neue Bitmuster; der Ausgang Q zeigt den gespeicherten Inhalt. Die einzelnen D-Flipflops übernehmen jeweils das zugehörige Eingangsbit. Der Rücksetzeingang heißt Reset.
Der Takt ist ein Steuersignal, das zwischen 0 und 1 wechselt. Unser Modell übernimmt Daten bei einer steigenden Flanke, also beim Wechsel des Takts von 0 auf 1. Die Übernahmefreigabe heißt Clock-Enable. Bei Reset 0 gilt: Ist Clock-Enable 1, wird an der steigenden Flanke das gesamte Muster von D übernommen. Ist Clock-Enable 0, bleibt der bisherige Inhalt erhalten. Ein dauerhaft hoher Takt ist keine neue steigende Flanke. Änderungen an D allein ändern den gespeicherten Inhalt deshalb nicht.
Reset wirkt in unserem Modell asynchron: unabhängig vom Takt. Sobald Reset 1 ist, werden alle gespeicherten Bits 0. Das gilt auch bei Clock-Enable 0. Solange Reset 1 bleibt, halten die anderen Eingänge den Inhalt nicht davon ab, 0 zu bleiben. Nach dem Wechsel von Reset auf 0 bleibt der Inhalt zunächst 0; eine neue Datenübernahme braucht wieder die passende Flanke und Clock-Enable 1.
Diese Einstellungen gelten nicht für jeden Baustein. Logisim bietet auch andere Takteinstellungen, darunter eine fortlaufende Übernahme während eines bestimmten Taktpegels. Der Taktpegel ist der Signalwert 0 oder 1 des Takts. Beim realen Vier-Bit-Baustein SN74LS173A von Texas Instruments müssen beide Datenfreigaben 0 sein, damit Daten an der steigenden Flanke übernommen werden. Seine zusätzliche Ausgangsfreigabe steuert dagegen die Verbindung nach außen. Ein abgeschalteter, hochohmiger Ausgang treibt die angeschlossene Leitung nicht; dadurch wird der gespeicherte Inhalt nicht gelöscht.
Merke: Im festgelegten Logisim-Modell hat Reset 1 Vorrang. Bei Reset 0 braucht die Datenübernahme eine steigende Taktflanke und Clock-Enable 1.
Beispiel: Eine Übernahme freigeben
- 1Ein ausgedachtes Zwei-Bit-Register nach unserem Modell hält 01. An D liegt 10; Reset ist 0.
- 2Bei Clock-Enable 0 kommt eine steigende Taktflanke. Gespeichert bleibt 01.
- 3Nun wird Clock-Enable 1. Der Takt fällt zunächst auf 0 und steigt danach auf 1.
- 4An dieser steigenden Flanke übernimmt das Register 10.
Teste dich
Ein Prozessor führt die Arbeitsanweisungen eines Programms aus. Eine solche Arbeitsanweisung heißt Befehl. Register können dabei unterschiedliche Aufgaben übernehmen. Ein Datenregister hält Werte für die Verarbeitung, etwa Eingabewerte oder ein Rechenergebnis. Ein Adressregister hält eine Speicheradresse oder hilft, sie zu berechnen. Eine Speicheradresse ist die Kennzeichnung eines Speicherplatzes, nicht dessen gespeicherter Inhalt.
Ein Befehlsregister hält den aktuellen Befehl selbst. Davon unterscheidest du den Befehlszähler: Er hält je nach Prozessor die Adresse des aktuellen oder des nächsten auszuführenden Befehls. Befehl und Adresse des Befehls sind also verschiedene Informationen.
Ein Statusregister hält Angaben zum Zustand des Prozessors oder zu einem Rechenergebnis. Ein einzelnes solches Zustandsbit wird auch Flag genannt. Ein Nullmerkmal kann zum Beispiel anzeigen, dass ein Ergebnis 0 war. Welche Zustandsmerkmale vorhanden sind und wie sie verändert werden, hängt vom Prozessor ab.
Diese Namen beschreiben Aufgaben. Ein allgemeines Register kann je nach Prozessor sowohl Daten als auch Adressen aufnehmen. Die Aufgabenbezeichnungen bedeuten deshalb nicht, dass für jede Aufgabe ein getrenntes Bauteil vorhanden sein muss.
| Registeraufgabe | Gespeicherte Information |
|---|---|
| Datenregister | Wert für die Verarbeitung, etwa ein Rechenergebnis |
| Adressregister | Adresse eines Speicherplatzes |
| Befehlsregister | Aktueller Befehl selbst |
| Statusregister | Zustandsmerkmale, etwa ein Hinweis auf das Ergebnis 0 |
Beispiel: Eine Werkzeugliste im ausgedachten Prozessor
- 1Der Prozessor verarbeitet eine Liste mit Werkzeugbeständen.
- 2Ein Datenregister hält die Anzahl verfügbarer Bohrer.
- 3Ein Adressregister hält die Speicheradresse, an der die Werkzeugliste beginnt.
Teste dich
CPU ist die englische Abkürzung für Central Processing Unit, auf Deutsch zentrale Verarbeitungseinheit. Gemeint ist hier der Hauptprozessor. CPU-Register stehen seiner Verarbeitung direkt zur Verfügung. Er kann besonders schnell auf sie zugreifen. Dazu gehören je nach Aufbau beispielsweise Register für Rechenwerte oder den aktuellen Befehl.
E/A bedeutet Eingabe und Ausgabe. E/A-Register dienen dem Austausch mit Geräten oder deren Steuerung. Sie können etwa einen eingelesenen Gerätewert oder eine Einstellung für ein Gerät halten. Solche Register können in angeschlossenen Bauteilen liegen oder im Hauptprozessor integriert sein. Der Einbauort allein reicht deshalb nicht, um ihre Aufgabe zu bestimmen. Gerätezugriff und Verarbeitung können innerhalb desselben Bausteins stattfinden.
Eine Registermaschine ist dagegen ein theoretisches Rechenmodell, mit dem man Berechnungen untersucht. Es gibt verschiedene Definitionen. Im hier beschriebenen Modell gibt es unendlich viele durchnummerierte Register. Jedes speichert eine beliebig große natürliche Zahl; wir betrachten dabei die Zahlen 0, 1, 2 und so weiter. Es ist keine feste Bitgrenze für ein einzelnes Register vorgesehen.
Das ist eine Annahme des Modells und kein Bauplan für einen Rechner. Ein Hardware-Register mit fester Breite hat nur endlich viele Bitmuster. Die unbeschränkten Register des beschriebenen theoretischen Modells darfst du damit nicht gleichsetzen.
| Bereich | Kennzeichen |
|---|---|
| CPU-Register | Direkter Einsatz bei der Verarbeitung im Hauptprozessor |
| E/A-Register | Austausch mit Geräten oder deren Steuerung; auch im Hauptprozessor möglich |
| Beschriebene Registermaschine | Theoretisches Modell mit unendlich vielen Registern für beliebig große natürliche Zahlen |
Merke: Bei CPU- und E/A-Registern hilft die Aufgabe beim Unterscheiden. Bei der Registermaschine musst du zusätzlich die Annahmen des theoretischen Modells beachten.
Teste dich
Alles auf einen Blick
Register
Ein D-Flipflop hält ein Bit; mehrere können gemeinsam ein Register bilden.
Bei einer Registerbreite von n Bits gibt es 2^n mögliche Bitmuster.
Unser Logisim-Modell übernimmt bei Reset 0 und Clock-Enable 1 an der steigenden Flanke; Reset 1 setzt unabhängig davon auf 0 zurück.
Register können Rechenwerte, Speicheradressen, Befehle oder Zustandsmerkmale halten.
CPU-Register dienen der Verarbeitung, E/A-Register dem Geräteaustausch; die beschriebene Registermaschine verwendet theoretisch unbeschränkte Register.
Die Registerbreite für Schließfachkennungen bestimmen
- 1In einer ausgedachten Schaltung soll ein Register die Kennung eines von 40 Schließfächern halten. Jedes Fach braucht ein eigenes Bitmuster.
- 2Mit fünf Bits gibt es 2^5 = 32 Muster. Das reicht für 40 verschiedene Kennungen nicht.
- 3Mit sechs Bits gibt es 2^6 = 64 Muster. Damit lassen sich alle 40 Kennungen unterscheiden.
- 4Sechs Bits sind die kleinste passende Registerbreite: Schon fünf Bits reichen nicht, und mit weniger Bits gibt es noch weniger Muster.
- 5Von den 64 möglichen Mustern bleiben 64 - 40 = 24 ohne zugeordnete Schließfachkennung.
Fehler finden
Fehler in Zeile 4Die falsche Zeile ignoriert den asynchronen Reset. Er wirkt auch ohne Taktwechsel und bei Clock-Enable 0. Richtig: Der gespeicherte Wert ist jetzt 0000.
Lückentext
Ein Register hat sieben Bits. Damit kann es verschiedene Bitmuster darstellen. Am Dateneingang liegt ein anderer Wert als im Register. Bei Reset 0 und Clock-Enable 0 bleibt im festgelegten Logisim-Modell trotz steigender Flanke der Wert gespeichert. Für ein einzelnes Register des beschriebenen theoretischen Registermaschinenmodells ist Bitgrenze vorgesehen.