PREVIEW
Instruction Register

Instruction Register

Advanced signal_cellular_alt Advanced schedule 25 min

Interactive Circuit

Befehlsregister (IR)

Übersicht

  • Zweck: Das Befehlsregister (IR, Instruction Register) ist ein spezialisiertes Register innerhalb einer CPU, das den aus dem Speicher geholten Maschinencodebefehl temporär speichert, während er vom Steuerwerk decodiert und ausgeführt wird.
  • Symbol: Das Befehlsregister wird durch einen rechteckigen Block mit Eingängen für Daten aus dem Speicher, Takt und Ladefreigabe sowie Ausgängen, die die Befehlsbits an den Decoder liefern, dargestellt.
  • DigiSim.io-Rolle: Dient als kritische Komponente in CPU-Designs, verbindet die Hol- und Decodierphasen des Befehlszyklus und bietet stabilen Zugriff auf den Opcode und die Operanden des Befehls.

Befehlsregister-Komponente

Funktionsbeschreibung

Logikverhalten

Das Befehlsregister erfasst und hält die Befehlsdaten aus dem Speicher während des Holzyklus, sodass sie dem Befehlsdecoder während der Decodier- und Ausführungszyklen zur Verfügung stehen. Es fungiert in erster Linie als Speicherelement mit Ladesteuerung.

Funktionstabelle:

LD CLK A_OE Aktion Opcode (OP0-OP3) Adresse (A0-A3)
1 X Neuen Befehl laden Geladene Daten[3:0] Geladene Daten[7:4] oder Hi-Z
0 X Aktuellen Wert halten Aktueller Wert Aktueller Wert oder Hi-Z
X 0 X Keine Änderung Aktueller Wert Aktueller Wert oder Hi-Z
X X 1 Adress-Ausgangsfreigabe Aktueller Wert Aktueller Wert
X X 0 Adresse Hi-Z Aktueller Wert Hi-Z

Hinweis: ↑ steht für eine steigende Taktflanke, X steht für „don't care".

Eingänge und Ausgänge

  • Eingänge:

    • I0-I7: 8-Bit-Dateneingänge, die mit dem Speicherdatenbus verbunden sind, um geholte Befehle zu empfangen.
    • LD: 1-Bit-Ladefreigabe-Eingang, der das Laden eines neuen Befehls aktiviert, wenn aktiv.
    • CLK: 1-Bit-Takteingang, der den Ladevorgang synchronisiert.
    • A_OE: 1-Bit-Adress-Ausgangsfreigabe, die steuert, ob die Adressbits an den Ausgängen anliegen.
  • Ausgänge:

    • OP0-OP3: 4-Bit-Opcode-Ausgänge, die dem Steuerwerk den Operationscode liefern (immer aktiv).
    • A0-A3: 4-Bit-Adressausgänge, die Adressinformationen liefern (gesteuert durch A_OE).
    • Die Opcode-Ausgänge sind nach dem Laden immer verfügbar, da das Steuerwerk sofortigen Zugriff benötigt.
    • Die Adressausgänge können über A_OE in den Tri-State versetzt werden, um den Bus während Speicheroperationen gemeinsam zu nutzen.

Konfigurierbare Parameter

  • Registerbreite: Die Anzahl der Bits, die das IR speichern kann, entsprechend der Befehlswortgröße der CPU.
  • Taktflankenempfindlichkeit: Ob das Register auf steigende oder fallende Taktflanken reagiert.
  • Ladeverhalten: Wie das Ladesteuersignal mit dem Takt interagiert.
  • Signallaufzeit: Die Zeit, die die Ausgänge benötigen, um sich nach einem auslösenden Ereignis zu ändern.

Visuelle Darstellung in DigiSim.io

Das Befehlsregister wird als rechteckiger Block mit beschrifteten Eingängen auf der linken Seite (DATA[n:0], CLK, LOAD) und Ausgängen (IR_OUT[n:0]) auf der rechten Seite dargestellt. Der Takteingang ist üblicherweise mit einem Dreieckssymbol gekennzeichnet, das die Flankenempfindlichkeit anzeigt. In einer Schaltung visualisiert die Komponente ihren aktuellen Zustand durch den an den Ausgängen dargestellten Befehlswert und durch Farbänderungen auf den verbundenen Leitungen.

Pädagogischer Wert

Schlüsselkonzepte

  • Befehlszyklus: Veranschaulicht eine zentrale Stufe im Hol-Decodier-Ausführungs-Zyklus einer CPU.
  • Befehlsdecodierung: Zeigt, wie Maschinencodebefehle für die Interpretation vorbereitet werden.
  • CPU-Architektur: Stellt eine grundlegende Komponente in CPU-Steuerwerken vor.
  • Sequenzielle Verarbeitung: Zeigt, wie Daten in diskreten Stufen durch eine CPU fließen.
  • Befehlssatzarchitektur: Hilft zu visualisieren, wie Maschinencodebefehle behandelt werden.

Lernziele

  • Die Rolle des Befehlsregisters im CPU-Ausführungszyklus verstehen.
  • Lernen, wie Befehle erfasst und während des CPU-Betriebs stabil gehalten werden.
  • Erkennen, wie das IR mit dem Speicher und dem Befehlsdecoder zusammenarbeitet.
  • IR-Konzepte beim Entwurf einfacher CPU-Architekturen anwenden.
  • Die Beziehung zwischen Befehlsformaten und CPU-Organisation verstehen.

Anwendungsbeispiele/Szenarien

  • Grundlegendes CPU-Design: Kernkomponente bei der Implementierung eines Hol-Decodier-Ausführungs-Zyklus.
  • Befehlsdecodierung: Bereitstellung stabiler Befehlsdaten für die Decoder-Schaltung.
  • Pipeline-Architektur: Trennung der Hol- und Decodierstufen in einer CPU-Pipeline.
  • Mikrocode-Implementierung: Halten von Befehlen, während das Steuerwerk durch Mikrooperationen schreitet.
  • Pädagogische CPU-Modelle: Demonstration der Grundprinzipien des CPU-Betriebs.
  • Fest verdrahtete Steuerwerke: Bereitstellung der Befehlsbits direkt an die kombinatorische Steuerlogik.

Technische Hinweise

  • Die Breite des Befehlsregisters entspricht der Befehlsgröße der Prozessorarchitektur.
  • Das IR wird typischerweise während der Holphase des Befehlszyklus geladen.
  • In einer einfachen, nicht-pipelined CPU hält das IR jeden Befehl für die gesamte Ausführungsdauer.
  • In Pipeline-Architekturen können mehrere IRs an verschiedenen Pipeline-Stufen vorhanden sein.
  • Die Ausgänge des IR werden oft in Felder aufgeteilt, die je nach Befehlsformat spezifische Bedeutungen haben.
  • Einige komplexe Befehlssätze erfordern zusätzliche Logik zur Behandlung von Befehlen variabler Länge.
  • Das IR isoliert das Steuerwerk vom Datenbus, sodass der Speicher für andere Operationen genutzt werden kann, während der aktuelle Befehl ausgeführt wird.
graph LR
    DATA[Data Bus<br/>from Memory] --> IR[Instruction Register]
    CLK[Clock] --> IR
    LOAD[Load Enable] --> IR
    IR --> OUT[Output to Decoder<br/>Opcode & Operands]

Hinweis: Die Größe des IR entspricht der Befehlsgröße der Architektur. Die Ausgänge werden zur Befehlsdecoder-Logik geleitet.

Wahrheitstabelle / Funktionstabelle

Das IR fungiert in erster Linie als Speicherelement:

LOAD CLK An der Taktflanke ausgeführte Aktion IR-Ausgang (Folgezustand)
1 Eingangsdaten laden Eingangsdaten
0 Aktuellen Wert halten IR-Ausgang (aktuell)
X 0/↓ Keine Änderung IR-Ausgang (aktuell)

Der Ausgang ist üblicherweise zwischen Ladevorgängen stabil und steht dem Befehlsdecoder kontinuierlich zur Verfügung.

Eigenschaften

  • Eingangskonfiguration:

    • Dateneingänge (I0-I7): 8-Bit-Paralleleingänge, die mit dem Speicherdatenbus verbunden sind, um geholte Befehle zu empfangen.
    • Ladefreigabe (LD): Steuersignal, das während des Holzyklus aktiviert wird, um den Befehl zu übernehmen.
    • Takteingang (CLK): Synchronisiert den Ladevorgang an der steigenden Flanke.
    • Adress-Ausgangsfreigabe (A_OE): Steuert das Tri-State-Verhalten der Adressausgänge zur gemeinsamen Busnutzung.
  • Ausgangskonfiguration:

    • Opcode-Ausgänge (OP0-OP3): 4-Bit-Ausgänge, die den Operationscode liefern, immer aktiv für den sofortigen Zugriff durch das Steuerwerk.
    • Adressausgänge (A0-A3): 4-Bit-Ausgänge, die Adressinformationen liefern und über A_OE in Tri-State versetzt werden können.
    • Opcode-Bits werden typischerweise direkt zum Steuerwerk zur Befehlsdecodierung geleitet.
    • Adressbits werden für Speicheradressierung und Sprungoperationen verwendet, wenn aktiviert.
  • Funktionalität:

    • Speichert den aktuell geholten Befehl temporär.
    • Hält den Befehl stabil, während er decodiert und ausgeführt wird.
    • Isoliert das Steuerwerk nach dem Holzyklus von Änderungen am Datenbus.
    • Liefert die rohen Befehlsbits, die der Befehlsdecoder benötigt.
  • Signallaufzeit:

    • Takt-zu-Ausgang-Verzögerung: Zeit, bis der Befehl nach der Taktflanke während eines Ladevorgangs an den Ausgängen verfügbar ist.
    • Setup-/Hold-Zeit-Anforderungen für die Dateneingänge relativ zum Takt- und Ladesignal.
  • Schaltungskomplexität:

    • Kern: Ein Parallel-In-Parallel-Out-Register aus D-Flip-Flops (eines pro Bit der Befehlsbreite).
    • Steuerlogik für das LOAD-Signal.

Implementierungsmethoden

  1. Array von D-Flip-Flops: Die häufigste Methode, bei der ein D-Flip-Flop pro Bit des Befehlsworts verwendet wird, alle gleichzeitig mit einem gemeinsamen LOAD-Signal getaktet.
  2. Standard-Register-IC: Verwendung handelsüblicher Register-ICs (z. B. 74HC374, 74HC574 für 8-Bit-Befehle).
  3. FPGA/ASIC-Implementierung: Aus HDL-Code innerhalb eines größeren CPU-Designs synthetisiert.

Anwendungen

  • Befehlsdecodier- und Ausführungszyklus: Zentrale Komponente im Hol-Decodier-Ausführungs-Zyklus einer CPU.
  • CPU-Steuerwerk: Liefert die Eingabe für die Befehlsdecoder-Logik, die wiederum Steuersignale für den Rest der CPU erzeugt.
  • Pipeline-Stufen: In pipelined Prozessoren befindet sich das IR oft innerhalb der Befehlsdecodierstufe (ID).

Einschränkungen

  • Feste Breite: Die Größe des IR bestimmt die maximale Befehlsgröße, die die CPU direkt verarbeiten kann.
  • Engpass: In einigen älteren Architekturen konnte das Holen in das IR ein Leistungsengpass sein, der durch Techniken wie Befehls-Prefetching und Pipelining behoben wird.

Schaltungsdetails

Ein 8-Bit-IR, realisiert mit D-Flip-Flops:

graph LR
    D0[Data_In 0] --> FF0[D Flip-Flop 0]
    D1[Data_In 1] --> FF1[D Flip-Flop 1]
    D2[Data_In 2] --> FF2[D Flip-Flop 2]
    D7[Data_In 7] --> FF7[D Flip-Flop 7]
    
    CLK[Clock] --> FF0
    CLK --> FF1
    CLK --> FF2
    CLK --> FF7
    
    LOAD[Load Enable] --> FF0
    LOAD --> FF1
    LOAD --> FF2
    LOAD --> FF7
    
    FF0 --> OUT0[IR_Out 0]
    FF1 --> OUT1[IR_Out 1]
    FF2 --> OUT2[IR_Out 2]
    FF7 --> OUT7[IR_Out 7]

Alle Flip-Flops teilen dasselbe Takt- (CLK) und Ladefreigabesignal (LOAD).

Verwandte Komponenten

  • Befehlszähler (PC): Liefert die Adresse zum Holen des Befehls, der in das IR geladen wird.
  • Speicher (RAM/ROM): Speichert die Befehle.
  • Datenbus: Transportiert den Befehl vom Speicher zum IR.
  • Steuerwerk: Enthält das IR und den Befehlsdecoder.
  • Befehlsdecoder: Liest den Ausgang des IR, um den Befehl zu interpretieren.
  • ALU: Führt die durch den decodierten Befehl spezifizierte Operation aus.
  • Register: Können Operanden enthalten, die durch Felder im im IR gespeicherten Befehl spezifiziert werden.

school Lernpfad

arrow_back Voraussetzungen

arrow_forward Nächste Schritte

help_outline Häufig gestellte Fragen

Was ist das Befehlsregister?

Das IR enthält den aus dem Speicher abgerufenen Befehl. Sein Inhalt wird vom Steuerwerk dekodiert, um zu bestimmen, welche Operation durchgeführt werden soll.

Welche Informationen enthält das IR?

Das IR enthält typischerweise den Opcode (Operationscode) und die Operandenadresse oder den unmittelbaren Wert, abhängig vom Befehlsformat.

play_arrow Live-Schaltung ausführen

Weitere Komponenten ansehen