16.12.2012 Aufrufe

Direkte Implementierung

Direkte Implementierung

Direkte Implementierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Steuerwerk einer CPU<br />

Einführung in die Technische Informatik<br />

Falko Dressler, Stefan Podlipnig<br />

Universität Innsbruck


Übersicht<br />

• <strong>Implementierung</strong> des Datenpfads<br />

• <strong>Direkte</strong> <strong>Implementierung</strong><br />

• Mikroprogrammierung<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 2


Lernziele<br />

• Einführung in die Arbeitsweise eines CPU-Steuerwerks<br />

• Detailliertes Verständnis der Abarbeitung eines Befehls in einer<br />

CPU am Beispiel MIPS<br />

• Aufbau, Einsatz, und Vorteile eines mikroprogrammierbaren CPU-<br />

Steuerwerks<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 3


IMPLEMENTIERUNG DES<br />

DATENPFADS<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 4


<strong>Implementierung</strong> des Datenpfads (1)<br />

• Wenn Befehle verarbeitet werden, dann durchlaufen sie Teile des<br />

sogenannten Datenpfads.<br />

• Zur <strong>Implementierung</strong> des Datenpfads der MIPS ISA werden unter<br />

anderem benötigt:<br />

� Arithmetisch-Logische Einheit (ALU)<br />

� Registersatz mit 32 Registern<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 5


<strong>Implementierung</strong> des Datenpfads (2)<br />

• Arithmetisch-Logische Einheit (ALU)<br />

� Zwei 32-Bit Eingänge A und B<br />

� Benötigte arithmetische Operationen:<br />

− Addition A + B<br />

− Subtraktion A – B<br />

� Benötigte logische Operationen<br />

− and, or, nor, xor<br />

− Bitweise auf 32-Bit Operanden A und B<br />

� Vergleich, ob A < B<br />

� Test auf A = B<br />

� Mit separatem 1-Bit Ausgang Null<br />

� Auswahl der Operation über 4-Bit Steuerleitung<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 6


• Registersatz<br />

<strong>Implementierung</strong> des Datenpfads (3)<br />

� Schaltwerk, das 32 Registern beinhaltet.<br />

� Es sind zwei Leseports und ein Schreibport erforderlich.<br />

� Zwei Register müssen gleichzeitig gelesen werden.<br />

− Liefern Operanden A und B für ALU.<br />

� Ein Register muss ALU-Ergebnis vom 32-Bit Dateneingang aufnehmen.<br />

− Daten werden bei Impuls auf Steuerleitung RegWrite übernommen.<br />

� Auswahl der Register über drei 5-Bit Register-Adress-Eingänge.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 7


<strong>Implementierung</strong> des Datenpfads (4)<br />

• Für eine umfangreichere Realisierung des Datenpfads einer MIPS<br />

ISA sind zudem erforderlich: zwei Multiplexer, eine 16 → 32 Bit<br />

Vorzeichenerweiterung sowie Schnittstellen zum Datenspeicher.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 8


DIREKTE IMPLEMENTIERUNG<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 9


<strong>Direkte</strong> <strong>Implementierung</strong> (1)<br />

• In diesem Abschnitt soll zunächst ein einfaches Steuerwerk für die<br />

MIPS CPU realisiert werden, mit dem in einem Takt<br />

� der nächste Befehl geholt (und der Befehlszähler erhöht),<br />

� dekodiert (und die Steuersignale erzeugt),<br />

� ausgeführt,<br />

� und Ergebnisse gespeichert werden.<br />

• Es sollen hier jedoch exemplarisch nur folgende ausgewählte<br />

Befehle unterstützt werden:<br />

� Speicherzugriff mittels lw und sw<br />

� Die Arithmetik/Logik-Befehle add, sub, and, or<br />

� Vergleichs- und Sprungbefehl slt, beq und j<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 10


<strong>Direkte</strong> <strong>Implementierung</strong> (2)<br />

• Aufgabe des Steuerwerks ist es, die Steuersignale für den<br />

Datenpfad der MIPS CPU zu erzeugen:<br />

• Dieser Datenpfad unterstützt nur die Ausführungsphase eines<br />

Befehls und muss erweitert werden um Komponenten zur<br />

Realisierung der Befehlsholphase.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 11


<strong>Direkte</strong> <strong>Implementierung</strong> (3)<br />

• Vollständiger Datenpfad mit separatem Befehlsspeicher und Logik<br />

zur Ermittlung des Folgebefehlszählerstandes:<br />

Einführung in die Technische Informatik - WS 11/12<br />

Anmerkung: Befehls- und<br />

Datenspeicher sind zur<br />

Vereinfachung hier getrennt,<br />

sie gehören nicht zur CPU.<br />

Steuerwerk einer CPU 12


<strong>Direkte</strong> <strong>Implementierung</strong> (4)<br />

• In Abhängigkeit vom Befehl müssen die Steuersignale zur<br />

Auswahl der ALU-Operation erzeugt werden:<br />

� Bei arithmetisch/logischen Befehlen ist hierzu das Feld funct des R-<br />

Instruktionsformats zu analysieren.<br />

� Für lw und sw wird die ALU zur Berechnung der Datenadresse eingesetzt.<br />

� Für den Befehl beq muss die ALU subtrahieren.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 13


<strong>Direkte</strong> <strong>Implementierung</strong> (5)<br />

• Folgende Tabelle zeigt die erforderliche Ansteuerung der ALU in<br />

Abhängigkeit vom funct-Feld und dem zusätzlichen Steuersignal<br />

ALUOp, das aus dem Opcode abgeleitet werden muss:<br />

• Realisierung durch eine einfache zweistufige Logik:<br />

� ALU-Steuereingang = f(ALUOp,funct)<br />

Einführung in die Technische Informatik - WS 11/12<br />

X =<br />

don't<br />

care<br />

Steuerwerk einer CPU 14


<strong>Direkte</strong> <strong>Implementierung</strong> (6)<br />

• Die Hauptsteuereinheit muss die Befehle dekodieren, die<br />

entweder im R-Format<br />

• oder im I-Format vorliegen:<br />

• Die Steuersignale zur Ansteuerung des Registersatzes können<br />

somit unmittelbar dem Instruktionswort entnommen werden, je<br />

nach Instruktionsformat ist das Zielregister jedoch entweder an<br />

Bitpositionen 15...11 oder 20...16 kodiert.<br />

� Zusätzlicher Multiplexer und Steuersignal RegDst sind nötig.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 15


Einführung in die Technische Informatik - WS 11/12<br />

<strong>Direkte</strong> <strong>Implementierung</strong> (7)<br />

Steuerwerk einer CPU 16


<strong>Direkte</strong> <strong>Implementierung</strong> (8)<br />

• Alle sieben Steuersignale werden durch Opcode festgelegt:<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 17


• Datenpfad mit Steuereinheit:<br />

Einführung in die Technische Informatik - WS 11/12<br />

<strong>Direkte</strong> <strong>Implementierung</strong> (9)<br />

Steuerwerk einer CPU 18


<strong>Direkte</strong> <strong>Implementierung</strong> (10)<br />

• Die Steuerleitung PCSrc lässt dich nicht direkt aus dem Opcode<br />

ableiten, sie wird gesetzt bei Befehl beq und aktivem Null Ausgang<br />

der ALU.<br />

• Ablauf eines Befehls im R-Format wie z.B. add r1,r2,r3 erfolgt<br />

in einem Taktzyklus:<br />

1. Befehl wird geholt und Befehlszähler um 4 erhöht.<br />

2. Register r2 und r3 werden ausgelesen.<br />

3. ALU verarbeitet Daten in Abhängigkeit vom Inhalt des funct-Feldes (Bit 5<br />

bis 0) des Instruktionswortes.<br />

4. Ergebnis wird in Zielregister r1 geschrieben.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 19


<strong>Direkte</strong> <strong>Implementierung</strong> (11)<br />

• Ablauf eines Befehls im I-Format wie z.B. lw r1,disp(r2)<br />

erfolgt ebenso in einem Taktzyklus:<br />

1. Befehl wird geholt und Befehlszähler um 4 erhöht.<br />

2. Register r2 wird ausgelesen.<br />

3. ALU berechnet Summe aus Offset disp (den Bits 15 bis 0 des<br />

Instruktionswortes entnommen und vorzeichenrichtig erweitert auf 32 Bit)<br />

und dem Inhalt von r2.<br />

4. Die Summe am Ausgang der ALU dient zur Adressierung des<br />

Datenspeichers.<br />

5. Gelesenes Datum wird in Zielregister r1 geschrieben.<br />

• Anmerkung: Hier wird idealisiert angenommen, dass der Zugriff<br />

auf den Speicher keine zusätzliche Zeit benötigt.<br />

� z.B. realisierbar durch schnellen Cache-Speicher oder geringen CPU-Takt.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 20


<strong>Direkte</strong> <strong>Implementierung</strong> (12)<br />

• Ablauf des bedingten Sprungbefehls beq r1,r2,offset in<br />

einem Taktzyklus:<br />

1. Befehl wird geholt und um 4 erhöhter Befehlszählerstand ermittelt.<br />

2. Register r1 und r2 werden ausgelesen.<br />

3. ALU subtrahiert r1 und r2; gleichzeitig wird offset (den Bits 15 bis 0 des<br />

Instruktionswortes entnommen, vorzeichenrichtig erweitert auf 32 Bit und<br />

um 2 Bits nach links geschoben) zum neuen Befehlszählerstand addiert.<br />

4. Der Null Ausgang der ALU entscheidet, ob nun der in 1) ermittelte<br />

Befehlszählerstand (Bedingung nicht erfüllt, Null = 0) oder der in 3)<br />

ermittelte Befehlszählerstand verwendet wird (Bedingung ist erfüllt, Null =<br />

1).<br />

5. Das Ergebnis wird im Befehlsregister gespeichert.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 21


<strong>Direkte</strong> <strong>Implementierung</strong> (13)<br />

• Zur Realisierung des unbedingten Sprungbefehls j ist das<br />

Steuerwerk noch geringfügig zu erweitern.<br />

• Hier wird das dritte Instruktionsformat, das J-Format, verwendet:<br />

• Erforderliche Modifikationen im Steuerwerk:<br />

� Die unteren 26 Bit werden um 2 Bitpositionen nach links geschoben.<br />

− Diese 28-Bit Adresse wird den oberen 4 Bit des um 4 erhöhten<br />

Befehlszählerstandes hinzugefügt.<br />

− Ergebnis ist neuer 32-Bit Befehlszählerstand.<br />

� Ein weiterer Multiplexer wird benötigt, der im Falle eines j Befehls den<br />

neuen Befehlszählerstand auswählt.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 22


<strong>Direkte</strong> <strong>Implementierung</strong> (14)<br />

• Gesamte <strong>Implementierung</strong> des Steuerwerks (englische Version):<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 23


MIKROPROGRAMMIERUNG<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 24


Mikroprogrammierung (1)<br />

• Zur Realisierung sehr großer Schaltwerke, z.B. des Steuerwerks<br />

eines komplexen Prozessors, weisen festverdrahtete Steuerwerke<br />

einige Nachteile auf:<br />

� Aufwendiger, fehleranfälliger Entwurf.<br />

� Resultierende Schaltung ist häufig unübersichtlich.<br />

� Schlechte Wartbarkeit: Hinzufügen einer neuen Funktion (z.B. eines neuen<br />

Befehls) erfordert oft einen kompletten Neuentwurf.<br />

• Dem steht ein wichtiger Vorteil gegenüber:<br />

� Sehr hohe Geschwindigkeit möglich, da alle Steuersignale sehr schnell<br />

erzeugt werden können.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 25


Mikroprogrammierung (2)<br />

• Eine Alternative zum festverdrahteten Steuerwerk stellt die<br />

Mikroprogrammierung dar (Wilkes, 1951):<br />

� Idee: Ein Maschinenbefehl (zur Verdeutlichung hier auch Makrobefehl<br />

genannt) wird durch eine Sequenz aus Mikrobefehlen realisiert.<br />

� Einsatz z.B. in Steuerwerken der IBM System/360 oder VAX.<br />

� Jeder Mikrobefehl (bzw. Mikroinstruktion) beschreibt einige<br />

Mikrooperationen, die im gleichen Takt stattfinden.<br />

� Ein Mikroprogramm beschreibt eine Folge von Mikrobefehlen, die einen<br />

Mikroprogramm-Algorithmus implementieren.<br />

� Zeitlicher Ablauf ergibt sich aus Takt, mit dem die Mikrobefehle ausgeführt<br />

werden.<br />

� Der Mikrobefehlszähler gibt an, welcher Mikrobefehl ausgeführt wird.<br />

� Mikroprogramm wird im Mikroprogrammspeicher abgelegt, der je<br />

Speicherzeile einen Mikrobefehl enthält und typischerweise durch ein ROM<br />

oder PROM realisiert ist.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 26


Mikroprogrammierung (3)<br />

� Jeder Mikrobefehl kann eine bedingte<br />

Verzweigung enthalten, die abhängig<br />

von Eingabe E(t) eine Folgeadresse<br />

aus dem Speicher lädt.<br />

� n-Bit Mikrobefehl besteht aus<br />

− m-Bit Adressteil,<br />

− k-Bit Auswahlteil, und<br />

− p-Bit Steuerteil<br />

� Adressteil legt Folgeadresse bei<br />

Verzweigungen fest.<br />

� Auswahlteil wählt eine der 2k Eingabeleitungen aus, deren Wert<br />

entscheiden soll, ob eine Verzweigung<br />

stattfindet.<br />

� Steuerteil enthält sämtliche p<br />

Steuersignale für aktuellen<br />

Taktzyklus.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 27


Mikroprogrammierung (4)<br />

• Vollständiger Aufbau eines Mikroprogrammwerks: (hier für<br />

Mikrobefehl der Breite n = 14 Bit mit m = 5, k = 2 und p = 7)<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 28


• Beispiel:<br />

� Realisierung der Steuerung<br />

eines bitseriell arbeitenden<br />

4-Bit Addierers mittels<br />

Mikroprogrammierung.<br />

� Addierer erhält die<br />

(Makro-)Befehle ADD oder<br />

SUB.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Mikroprogrammierung (5)<br />

Steuerwerk einer CPU 29


Mikroprogrammierung (6)<br />

• Einige weitere Begriffe zur Mikroprogrammierung:<br />

� Ein mikroprogrammierter Rechner enthält alle Mikrobefehle und<br />

Mikroprogramme in einem ROM.<br />

� In einem mikroprogrammierbaren Rechner kann der<br />

Benutzer die Mikroprogramme in PROM, EPROM oder RAM modifizieren<br />

(z.B. zur Emulation anderer CPUs).<br />

� Automatische Umsetzung von symbolischer Beschreibung in<br />

Mikroprogramme durch Mikroassembler möglich.<br />

� Bei horizontaler Mikroprogrammierung legen einzelne Bits des<br />

Mikroprogrammwortes direkt alle Steuersignale fest.<br />

� Bei vertikaler Mikroprogrammierung generiert ein Dekoder die<br />

Steuersignale aus dem Steuerteil des Mikroprogrammwortes.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 30


• Vorteile:<br />

� Hohe Skalierbarkeit<br />

� Gute Wartbarkeit<br />

Mikroprogrammierung (7)<br />

� Einfache (weil reguläre) Architektur<br />

• Nachteil:<br />

� Geringe Geschwindigkeit<br />

• Mikroprogrammierung wird in heutigen CPUs kaum noch<br />

verwendet, gelegentlich aber zur Steuerung komplexer<br />

Instruktionen (z.B. Multiplikation, Division) eingesetzt.<br />

Einführung in die Technische Informatik - WS 11/12<br />

Steuerwerk einer CPU 31

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!