Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU...

26
1 Kap.3 Mikroarchitektur Prozessoren, interne Sicht

Transcript of Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU...

Page 1: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

1

Kap.3Mikroarchitektur

Prozessoren,interne Sicht

Page 2: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Kap. 3.3 3.3/2

z3.1 Elementare Datentypen, Operationenund ihre Realisierung (siehe 2.1)

z3.2 Mikroprogrammierungz3.3 Einfache Implementierung von

MIPSz3.4 Pipelining

Page 3: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Implementierung von MIPS

z Betrachte der Übersichtlichkeit halber nur eine Untermenge der MIPS-Sprache:y Load/Store-Befehle: lw, swy Arithmetisch-logische Befehle und Tests mit

Register-Register-Argument(„Typ RR“): add, sub, addu, subu,and, or,sll, rll (shift left/right logisch),slt, sltu(set on less than)

y Sprünge: jy Verzweigungen: beq

z Befehlsformat:

Unbedingte

Page 4: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Hardware-Struktur zur Ausführung von MIPS

Page 5: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Registerspeicher

z Registerspeicher mit 32 Registernz 2 Leseports o1 und o2

y Adreßeingang a1 (5 Bit) gehört zu o1y Adreßeingang a2 (5 Bit) gehört zu o1

z 1 Schreibport i3y Adreßeingang a3 (5 Bit) gehört zu i3

z Kontrolleingang c, der mit Signal RegWrite verbunden isty Regwrite = 0: Leseny Regwrite = 1: Schreiben

Page 6: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Hardware-Struktur zur Ausführung von MIPS

Page 7: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

ALU

z alu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU ausführt. Alternativen:y ALUOp = ‚+‘: Additiony ALUOp = ‚=‘: Vergleich, wenn Operanden gleich sind, wird zero auf 1

gesetzt (sonst immer 0) --> Benutzung bei bedingten Verzweigungeny ALUOp = ‚IR‘: IR(10:0) wird an ALU weitergegeben, d.h. Operation

bestimmt durch Befehl im Befehlsregistery Binärkodierung von ALUOp hier nicht angegeben

z T ist Hilfsregister zum Abspeichern des ALU-Resultatesy Schreiben gesteuert durch Signal TargetWrite

Page 8: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Hardware-Struktur zur Ausführung von MIPS

Page 9: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Speicher

z Speicher enthält sowohl Befehle als auch Datenz Leseport o1

y zugehöriger Adresseingang a1 (32 Bit)y aktiv, wenn MemRead = 1

z Schreibport i2y zugehöriger Adresseingang a2 (32 Bit)y aktiv, wenn MemWrite = 1

Page 10: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Hardware-Struktur zur Ausführung von MIPS

Page 11: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Befehlszähler

z PC ist ein 32-Bit Register mit einem Dateneingang und einem Ausgangz Schreiben in PC wird gesteuert durch kombinatorische Schaltung B

y B = PCWrite + (PCWriteC * zero)

z PC ist kein Zähler, Weiter“zählen“ ist in ALU realisiert

zero

Page 12: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Hardware-Struktur zur Ausführung von MIPS

Page 13: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Steuerwerk

z Das Steuerwerk realisiert einen endlichen Automaten mit Ausgabe.y Zustandsregister des Automaten: µPCy Eingabe: Op-Code IR(31:26)y Ausgaben: Signale wie oben angegeben (gestrichelte Linien)

IR(31:26)

Page 14: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustandsgraph des Steuerautomaten

Page 15: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Fetch-Phase

⌧ Holen des nächsten Befehls

⌧ Erhöhen des PC um 4 (Befehle umfassen 4 Bytes)

⌧ Folgezustand: decode

Steuerwerk-Ausgaben: IorD=0, MemRead=1, MemWrite=0, IRWrite=1, ALUSelA=0, ALUSelB=1, ALUop=+, PCSource=0, PCWrite=1, RegWrite=0, TargetWrite=0, Folgezustand=decode

Page 16: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Dekodier-Phase

⌧ Dekodieren des aktuellen Befehls

⌧ Übergang in neuen Zustand in Abhängigkeit vom Befehl

Steuerwerk-Ausgaben: xxWrite=0, Folgezustand in Abhängigkeit von IR(31:26)

Page 17: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustandsgraph des Steuerautomaten

Page 18: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Adreßberechnung

⌧ Additionen der 16-Bit-Konstante erfolgt vorzeichener-weitert.

⌧ Effektive Adresse wird in Register T abgelegt.

Steuerwerk-Ausgaben: ALUSelA=1, ALUSelB=2, ALUop=+, TargetWrite=1, sonst: xxWrite=0,Folgezustand=load bzw. store, je nach IR(31:26)

LW: Reg[rt] := Speicher[Reg[rs]+sign_ext(adr-teil),32)]SW: Speicher[Reg[rs]+sign_ext(adr-teil),32)] := Reg[rt]

Page 19: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

LOAD-Befehl

⌧ Laden aus Speicher

⌧ Folgezustand: fetch

Steuerwerk-Ausgaben: IorD=1, MemRead=1, MemToReg=1, RegDest=0, RegWrite=1, andere Register xxWrite=0, Folgezustand=fetch

LW: Reg[rt] := Speicher[Reg[rs]+sign_ext(adr-teil),32)]

Page 20: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

STORE-Befehl

⌧ Abspeichern⌧ Folgezustand:

fetch

Steuerwerk-Ausgaben: MemWrite=1, andere Register xxWrite=0, Folgezustand=fetch

SW: Speicher[Reg[rs]+sign_ext(adr-teil),32)]:= Reg[rt]

Page 21: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustand rr1

⌧ Berechnung des Ergebnisses durch die ALU

⌧ Zwischenspei-chern in T (kein Zugriff auf 3 Registeradressen gleichzeitig)

⌧ Folgezustand: rr2 (zum Abspeichern)

Steuerwerk-Ausgaben: ALUSelA=1, ALUSelB=0, ALUop=IR, TargetWrite=1, andere Register xxWrite=0, Folgezustand=rr2

Reg[rd] := Reg[rs] op Reg[rt]

Page 22: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustand rr2

⌧ Abspeichern in Register

⌧ Folgezustand: fetch

Steuerwerk-Ausgaben: MemtoReg=0, RegDest=1, RegWrite=1, andere Register xxWrite=0, Folgezustand=fetch

Reg[rd] := Reg[rs] op Reg[rt]

Page 23: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Unbedingter Sprung

⌧ Berechnung des Sprungzieles aus 4 obersten Bits von PC, 26 untersten Bits von IR und Linksshift um 2

⌧ NB: PC wurde in fetch-Phase schon um 4 erhöht!

⌧ Befehlszähler neu laden

Steuerwerk-Ausgaben: PCSource=2, PCWrite=1, andere Register xxWrite=0, Folgezustand=fetch

Sprungziel bei MIPS ist Befehlsadressen durch 4 teilbar, Sprungbereich= 228 Byte

00IR...IRPC...PC 0252831

Page 24: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustand branch

⌧ Berechnung des Sprungzieles aus PC und 16 untersten Bits von IR, vorzeichenerwei-tert und um 2 Bit geshiftet

⌧ Sprungziel in T zwischengespei-chert

⌧ Folgezustand branch2

Steuerwerk-Ausgaben: ALUSelA=0, ALUSelB=3, ALUop=+, TargetWrite=1, andere Register xxWrite=0, Folgezustand=branch2

BEQ springt nach PC+4+[IR(15:0)]*4, wenn Reg[rs]=Reg[rt]

Page 25: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Zustand branch2

⌧ Berechnung der Sprungbe-dingung

⌧ Änderung von PC nur, falls Sprundbed. erfüllt

⌧ Folgezustand fetch

Steuerwerk-Ausgaben: PCSource=1,ALUSelA=1, ALUSelB=0, ALUop=‘=‘, PCWrite=0, PCWriteC=1, andere Register xxWrite=0, Folgezustand=fetch

BEQ springt nach PC+4+[IR(15:0)]*4, wenn Reg[rs]=Reg[rt]

Page 26: Kap.3 Mikroarchitektur - uni-bremen.de · Hardware-Struktur zur Ausführung von MIPS ALU zalu_control ist ein kombinatorischer Schaltkreis, der die Funktion bestimmt , die die ALU

Automatentabelle des Steuerwerks

z Das Steuerwerk wird gemäß dieser Tabelle als EndlicherAutomat mit Ausgabe realisiert.