![Page 1: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/1.jpg)
Datenpfad einer einfachen MIPS‐CPUZugriff auf den Datenspeicher
Grundlagen der Rechnerarchitektur ‐ Prozessor 19
![Page 2: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/2.jpg)
Betrachten nun Load‐ und Store‐Word
Grundlagen der Rechnerarchitektur ‐ Prozessor 20
Erinnerung, Instruktionen lw und sw sind vom I‐Typ‐Format:
Die Adresse des Speicherzugriffs berechnet sich wie folgt:• Sign‐Extension von 16‐Bit‐Offset auf 32‐Bit Zahl x• Adresse ist Inhalt von reg1 + xHierzu werden wir vorhandene ALU und Sign‐Extend mitbenutzen
Der Speicherinhalt wird dann• bei lw in Register reg2 geschrieben• bei sw mit Registerinhalt von reg2 überschrieben
Zur Vereinfachung trennen wir im Folgenden den Speicher der Instruktionen vom Speicher der Daten. Letzterer ist wie folgt:
31 26 25 21 20 16 15 0opcode reg1 reg2 Offset6 Bit 5 Bit 5 Bit 16 Bit
I‐Typ(Immediate‐Typ)
![Page 3: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/3.jpg)
Datenspeicher
Grundlagen der Rechnerarchitektur ‐ Prozessor 21
Speicherbaustein in dem die Daten liegen. „Address“, „Write‐Data“ und „Read‐Data“ sind 32‐Bit groß. In keinem Taktzyklus wird gleichzeitig gelesen und geschrieben. Schreiben oder lesen wird über Signale an MemWrite und MemRead durchgeführt. Der Grund für ein MemRead ist, dass sicher gestellt sein muss, dass die anliegende Adresse gültig ist (mehr dazu im Kapitel Speicher).
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
![Page 4: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/4.jpg)
Erweiterung des Blockschaltbilds
Grundlagen der Rechnerarchitektur ‐ Prozessor 22
![Page 5: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/5.jpg)
Eine Übung zum Abschluss
Grundlagen der Rechnerarchitektur ‐ Prozessor 23
Wie lässt sich das Blockschaltbild des Datenpfads erweitern, sodass auch die MIPS‐Instruktion j unterstützt wird?
Zur Erinnerung:
j 4096 # $pc = 4096<<2 + oberste vier# Bit von $pc
![Page 6: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/6.jpg)
Control einer einfachen MIPS‐CPU
Grundlagen der Rechnerarchitektur ‐ Prozessor 24
![Page 7: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/7.jpg)
Ziel
Grundlagen der Rechnerarchitektur ‐ Prozessor 25
Bisher haben wir lediglich den Datenpfad einer einfachen MIPS‐CPU entworfen.
Die Steuerleitungen der einzelnen Bausteine zeigen noch ins Leere.
Jetzt wollen wir festlegen, wann zur Abarbeitung unserer Instruktionen (d.h. lw, sw,add, sub, and, or, slt,beq ) welche Steuerleitungen an oder aus sein sollen. Den Baustein der das macht, nennt man „Control“.
Wir trennen die Control in zwei Teile:ALU‐Control: Legt für jeden Befehl die ALU‐Operation fest.Main‐Unit‐Control: Legt für jeden Befehl die übrigen Steuerleitungen fest.
Wir verwenden auf den nächsten Folien die folgende Terminologie:Steuerleitung an: assertedSteuerleitung aus: deasserted
![Page 8: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/8.jpg)
Control einer einfachen MIPS‐CPUALU‐Control
Grundlagen der Rechnerarchitektur ‐ Prozessor 26
![Page 9: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/9.jpg)
Vorüberlegung: Die passenden ALU‐Funktionen
Grundlagen der Rechnerarchitektur ‐ Prozessor 27Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Control‐Eingänge der betrachteten ALU
• Für Load‐ und Store‐Instruktionen lw, sw brauchen wir die ALU‐Funktion add.
• Für die arithmetisch‐logischen Instruktionen add, sub, and, or,slt brauchen wir die entsprechende passende ALU‐Funktion.
• Für die Branch‐Instruktion beq brauchen wir die ALU‐Funktion sub.
![Page 10: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/10.jpg)
Vorüberlegung: die Instruktionsformate
Grundlagen der Rechnerarchitektur ‐ Prozessor 28Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Wenn der Wert von Bit 31 bis 26 in der gefetchten Instruktion gleich• 0: arithmetisch‐logische Instruktion (d.h. add,sub,and,or,slt).Die Funktion ist mit dem Wert von Bit 5 bis 0 festgelegt.
• 35 oder 43: Load‐ bzw. Store‐Instruktion (d.h. lw, sw).
• 4: Branch‐Instruktion (d.h. beq).
(I-type)
(I-type)
![Page 11: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/11.jpg)
ALU‐Control
Grundlagen der Rechnerarchitektur ‐ Prozessor 29
ALU‐Control
Belegung der ALU‐Steuerleitungen, so dass die ALU die richtigen ALU‐Operation ausführt.
Ausgabe Eingabe
5‐Bit‐Funct‐Field der Instruktion
ALUOp in Abhängigkeit des Instruktionstyps
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
![Page 12: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/12.jpg)
In einer Wahrheitstabelle zusammengefasst
Grundlagen der Rechnerarchitektur ‐ Prozessor 30
Eingabe Ausgabe
Daraus lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem ALU‐Control‐Symbol abstrakt darstellen.
ALU‐Control
ALUOp
Instruction[5:0]
(also das Funct‐Field der Instruktion)
ALU‐Operation
0
0
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
![Page 13: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/13.jpg)
Erweiterung des Blockschaltbilds
Grundlagen der Rechnerarchitektur ‐ Prozessor 31
![Page 14: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/14.jpg)
Control einer einfachen MIPS‐CPUMain‐Unit‐Control
Grundlagen der Rechnerarchitektur ‐ Prozessor 32
![Page 15: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/15.jpg)
Opcode bestimmt Steuerleitungsbelegungen
Grundlagen der Rechnerarchitektur ‐ Prozessor 33
Instruction RegDst ALUSrcMemto‐Reg
Reg‐Write
Mem‐Read
Mem‐Write Branch
ALU‐Op1
ALU‐Op0
R‐format (0)
lw (35)
sw (43)
beq (4)Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Eingabe:Instruction [31‐26] Ausgabe
![Page 16: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/16.jpg)
Auch hier wieder
Grundlagen der Rechnerarchitektur ‐ Prozessor 34
Aus voriger Wahrheitstabelle lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem Control‐Symbol abstrakt darstellen.
ControlInstruction[31—26](also: das Opcode‐Field der Instruktion)
RegDstBranchMemReadMemtoRegALUOpMemWriteALUSrcRegWrite
![Page 17: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/17.jpg)
Erweiterung des Blockschaltbilds
Grundlagen der Rechnerarchitektur ‐ Prozessor 35
![Page 18: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/18.jpg)
Beispiel für eine R‐Typ‐Instruktion
• Instruktion wird gefetched und PC um 4 erhöht.• Die Register $t2 (Instruction [25‐21]) und $t3 (Instruction [20‐16]) werden aus dem Register‐File geladen.
• Die ALU führt die in dem Function‐Field (Instruction[5‐0]) codierte Operation auf den gelesenen Register‐Daten aus.
• Das Ergebnis der ALU wird in Register $t1 (Instruction[15‐11]) zurück geschrieben.
Grundlagen der Rechnerarchitektur ‐ Prozessor 36
add $t1, $t2, $t3
![Page 19: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/19.jpg)
Beispiel für eine Load/Save‐Instruktion
• Instruktion wird gefetched und PC um 4 erhöht.• Das Register $t2 (Instruction [25‐21]) wird aus dem Register‐File geladen.
• Die ALU addiert das Register‐Datum und den 32‐Bit Sign‐exteded 16‐Bit‐Immediate‐Wert 8 (Instruction [15‐0]).
• Die Summe aus der ALU wird als Adresse für den Datenspeicher verwendet.
• Das Datum aus dem Datenspeicher wird in das Register‐File geschrieben. Das Register in das geschrieben wird ist $t1 (Instruction [20‐16]).
Grundlagen der Rechnerarchitektur ‐ Prozessor 37
lw $t1, 8($t2)
![Page 20: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/20.jpg)
Beispiel für eine Branch‐Instruktion
• Instruktion wird gefetched und PC um 4 erhöht.• Die Register $t1 (Instruction [25‐21]) und $t2 (Instruction[20‐16]) werden aus dem Register‐File geladen.
• Die Haupt‐ALU subtrahiert die ausgelesenen Register‐Daten voneinander.Die zusätzliche ALU addiert PC+4 auf den 32‐Bit Sign‐exteded und um 2 nach links geshifteten 16‐Bit‐Immediate‐Wert 42 (Instruction [15‐0]).
• Das Zero‐Ergebins der Haupt‐ALU entscheidet ob der PC auf PC+4 oder auf das Ergebnis der zusätzlichen ALU gesetzt wird.
Grundlagen der Rechnerarchitektur ‐ Prozessor 38
beq $t1, $t2, 42
![Page 21: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/21.jpg)
Eine Übung zum Abschluss
Grundlagen der Rechnerarchitektur ‐ Prozessor 39
In der vorigen „Übung zum Abschluss“ wurde das Blockschaltbild des Datenpfads so erweitert, sodass auch die MIPS‐Instruktion junterstützt wird.
Wie müssen Control und Alu‐Control modifiziert werden (wenn überhaupt), damit die MIPS‐Instruktion j auch von Seiten des Control unterstützt wird?
Erinnerung:j addr # Springe pseudo-direkt nach addr
000010 addressOpcodeBits 31‐26
AdresseBits 25‐0
J‐Typ
![Page 22: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/22.jpg)
Pipelining
Grundlagen der Rechnerarchitektur ‐ Prozessor 40
![Page 23: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/23.jpg)
PipeliningInstruktionszyklen
Grundlagen der Rechnerarchitektur ‐ Prozessor 41
![Page 24: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/24.jpg)
MIPS‐Instruktionszyklus
Grundlagen der Rechnerarchitektur ‐ Prozessor 42
Ein MIPS‐Instruktionszklus besteht aus:
1. Instruktion aus dem Speicher holen(IF: Instruction‐Fetch)
2. Instruktion decodieren und Operanden aus Register lesen(ID: Instruction‐Decode/Register‐File‐Read)
3. Ausführen der Instruktion oder Adresse berechnen(EX: Execute/Address‐Calculation)
4. Datenspeicherzugriff(MEM: Memory‐Access)
5. Resultat in Register abspeichern(WB: Write‐Back)
![Page 25: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/25.jpg)
Instruktionszyklen in unserem Blockschaltbild
Grundlagen der Rechnerarchitektur ‐ Prozessor 43
![Page 26: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/26.jpg)
Instruktionszyklen generell• Instruktionszyklen anderer moderner CPUs haben diese oder eine sehr ähnliche Form von Instruktionszyklen.
• Unterschiede sind z.B.:– Instruktion decodieren und Operanden lesen sind zwei getrennte Schritte. Dies ist z.B. notwendig,
• wenn Instruktionen sehr komplex codiert sind (z.B. x86 Instruktionen der Länge 1 bis 17 Byte)
• wenn Instruktionen Operanden im Speicher anstatt Register haben (z.B. einige Instruktionen bei x86)
Grundlagen der Rechnerarchitektur ‐ Prozessor 44
![Page 27: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/27.jpg)
PipeliningDie Pipelining‐Idee
Grundlagen der Rechnerarchitektur ‐ Prozessor 45
![Page 28: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/28.jpg)
Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus benötigen folgende Ausführungszeiten:Instruction‐Fetch 200ps, Register‐Read 100ps, ALU‐Operation 200ps, Data‐Access 200ps, Register‐Write 100ps.
Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten?
Die längste Instruktion benötigt 800ps. Also gilt für den Clock‐Cycle c:
Single‐Cycle‐Performance
Grundlagen der Rechnerarchitektur ‐ Prozessor 46Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
![Page 29: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/29.jpg)
Die Pipelining‐Idee am Beispiel Wäsche waschen
Grundlagen der Rechnerarchitektur ‐ Prozessor 47Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Waschen
Trocknen
Falten
Einräumen
Bearbeitungszeit pro Wäscheladung bleibt dieselbe (Delay).Gesamtzeit für alle Wäscheladungen sinkt (Throughput).
![Page 30: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/30.jpg)
Was ist die Performance‐Ratio?
Grundlagen der Rechnerarchitektur ‐ Prozessor 48
Annahme jeder Arbeitsgang beansprucht dieselbe Zeit. Was ist die Performance‐Ratio für n Wäscheladungen?
Generell für k „Pipeline‐Stufen“, d.h. k Arbeitsgänge und gleiche Anzahl Zeiteinheiten t pro Arbeitsgang?
![Page 31: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/31.jpg)
Im Folgenden betrachten wir zunächst ein ganz einfaches Programm:lw $1, 100($0)lw $2, 200($0)lw $3, 300($0)lw $4, 400($0)lw $5, 500($0)
Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen häufig nur noch die Registernummern (z.B. wie oben $0 und $1) an. Außerdem betrachten wir das spezielle Zero‐Register momentan nicht.
Wie kann man die Pipelining‐Idee im Falle unseres MIPS‐Prozessors anwenden?
Pipelining für unseren MIPS‐Prozessor
Grundlagen der Rechnerarchitektur ‐ Prozessor 49
![Page 32: Datenpfad einer einfachen MIPS CPUunikorn/lehre/gdra/ss15/04 Prozessor... · Bemerkung: Da die MIPS‐Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen](https://reader033.vdokument.com/reader033/viewer/2022041502/5e22e086005f823b102d56b4/html5/thumbnails/32.jpg)
Die Pipeline nach den ersten drei Instruktionen
Grundlagen der Rechnerarchitektur ‐ Prozessor 50Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Annahme:IF = 200psID = 100psEX = 200psMEM = 200psWB = 100ps