Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 ·...

44
Grundlagen der Rechnerarchitektur Prozessor

Transcript of Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 ·...

Page 1: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Grundlagen der Rechnerarchitektur

Prozessor

Page 2: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Übersicht• Datenpfad• Control• Pipelining• Data‐Hazards• Control‐Hazards• Multiple‐Issue

2Grundlagen der Rechnerarchitektur ‐ Prozessor

Page 3: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Datenpfad einer einfachen MIPS‐CPU

Grundlagen der Rechnerarchitektur ‐ Prozessor 3

Page 4: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Ziel

Grundlagen der Rechnerarchitektur ‐ Prozessor 4

Konstruktion des Datenpfads einer einfachen MIPS‐CPU als Blockschaltbild. Die CPU hat 32 Register und soll folgende MIPS‐Instruktionen realisieren:

Instruktionen für Speicherzugriff: lw, swlw $s1, 4($s2)  # $s1 = Memory[$s2+4]sw $s1, 4($s2)  # Memory[$s2+4] = $s1

Arithmetisch‐logische Instruktionen: add, sub, and, or, sltadd $s0, $s1, $s2  # $s0 = $s1 + $s2slt $s0, $s1, $s2  # $s0 = ($s1<$s2)? 1 : 0

Branch‐ Instruktion: beqbeq $s1, $s2, 4096  # $pc = $pc + 4 + 4096<<2, wenn $s1=$s2

Page 5: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Datenpfad einer einfachen MIPS‐CPUErster Abschnitt des Datenpfades

Grundlagen der Rechnerarchitektur ‐ Prozessor 5

Page 6: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Benötigte Bausteine

Grundlagen der Rechnerarchitektur ‐ Logik und Arithmetik 6Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Speicherbaustein in dem die abzuarbeitenden Instruktionen stehen. „Instruction Address“ ist 32‐Bit groß. Wenn an den Leitungen „Instruction Address“ eine Adresse anliegt, liegt im nächsten Taktzyklus eine 32‐Bit lange Instruktion auf den „Instruction“ Leitungen.

Register in dem der Programm‐Counter steht. Hier steht die Adresse der nächsten abzuarbeitenden Instruktion.

Eine ALU, die fest auf die Funktion Addieren verdrahtet ist. Mit dieser ALU wird der Program‐Counter in 4er Schritten erhöht, um auf die nächste folgende Instruktion zu zeigen.

Page 7: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erster Schritt der Instruktionsausführung

Grundlagen der Rechnerarchitektur ‐ Prozessor 7

Mit dem neuen Clock‐Signal passiert folgendes:

Instruction‐Fetch:Lag der Program‐Counter‐Wert seit dem letzten Clock‐Signal am Instruction‐Memory an, erscheint mit dem nächsten Clock‐Signal die nächste auszuführende Instruktion an der Instruction‐Leitung.

Program‐Counter erhöhen:Damit der Speicher schon mit dem Bereitstellen der nächsten Instruktion beginnen kann, wird der Program‐Counter direkt zu Beginn der Instruktionsabarbeitung auf die nächste abzuarbeitende Instruktion gesetzt.

Page 8: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Das Blockschaltbild dazu

Grundlagen der Rechnerarchitektur ‐ Prozessor 8

Page 9: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Datenpfad einer einfachen MIPS‐CPUArithmetische‐Logische Operationen

Grundlagen der Rechnerarchitektur ‐ Prozessor 9

Page 10: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erinnerung, Instruktionen vom R‐Typ‐Format:

Solche Instruktionen machen immer folgendes:• Lese zwei Register (src1 und src2)• Führe eine ALU‐Operation darauf aus• Schreibe Ergebnis zurück in ein Register (dest)

Alle hier zu realisierenden arithmetisch‐logischen Instruktionen (d.h. add, sub, and, or, slt) sind R‐Typ‐Instruktionen.

Zum Speichern der Registerinhalte und zur Durchführung der Rechenoperationen benötigen wir zwei weitere Bausteine.

Betrachten zunächst R‐Typ‐Instruktionen

Grundlagen der Rechnerarchitektur ‐ Prozessor 10

opcode src1 src2 dest shamt funct6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit

R‐Typ(Register‐Typ)

31        26  25        21  20        16  15         11  10          6  5             0

Page 11: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Register‐File und ALU

Grundlagen der Rechnerarchitektur ‐ Prozessor 11

Auf den Read‐Data‐Leitungen liegen die 32‐Bit‐Inhalte der Register, die den 5‐Bit‐Read‐Register‐Inputs entsprechen. Ein Register‐File ist wesentlich schneller als der Speicher. Daten liegen in einem Instruktionszyklus unmittelbar auf den Read‐Data‐Leitungen vor. In einem Taktzyklus überschriebener Registerinhalt ist erst im darauf folgenden auf den Read‐Data‐Leitungen sichtbar.Zum Schreiben in ein Register müssen die Daten auf den Write‐Data‐Leitungen vorliegen und die RegWrite‐Leitung muss aktiv sein.

Die ALU rechnet auf 32‐Bit‐Werten. Die ALU‐Operation wird über die 4‐Bit ALU‐Operation‐Leitungen gewählt; hierzu später  mehr. Die Zero‐Leitung ist 0, wenn das ALU‐Ergebnis 0 ergab.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Page 12: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐ Prozessor 12

Page 13: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Datenpfad einer einfachen MIPS‐CPUDie Branch‐Instruktion beq

Grundlagen der Rechnerarchitektur ‐ Prozessor 13

Page 14: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Betrachten nun Branch‐Instruktion beq

Grundlagen der Rechnerarchitektur ‐ Prozessor 14

Erinnerung, Branch‐Instruktionen beq ist vom I‐Typ‐Format:

beq‐Instruktion macht immer folgendes:• Ziehe zwei Register voneinander ab (reg1 und reg2)• Wenn das Ergebnis ungleich 0: nächste Instruktion ist bei PC+4• Wenn das Ergebnis gleich 0 :

• Sign‐Extension von 16‐Bit‐Offset auf 32‐Bit Zahl x• x = 4*x (lässt sich durch ein Links‐Shift von 2 erreichen)• nächste Instruktion ist bei PC+4+x

Berechnung reg1 ‐ reg2 ist durch den Datenpfad schon realisiert.Für den Rest brauchen wir noch zwei neue Bausteine:

31        26  25        21  20        16  15                                                 0opcode reg1 reg2 Offset6 Bit 5 Bit 5 Bit 16 Bit

I‐Typ(Immediate‐Typ)

Page 15: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Sign‐Extend und Shift‐Left 2

Grundlagen der Rechnerarchitektur ‐ Logik und Arithmetik 15

Sign‐Extend

Vorzeichenbehaftetes Ausweiten von k auf n 

Leitungen (z.B. 16 auf 32).

Shift‐Left 2

Links oder Rechts‐Shift von Leitungen (z.B. Shift‐Left 2)

k n

Page 16: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Wir müssen außerdem eine Auswahl treffen• Wenn die aktuelle Instruktion ein beq ist, dann berechne den PC nach vorhin beschriebener Vorschrift.

• Wenn die Instruktion kein beq ist, dann bestimme den PC wie bisher gehabt; also PC=PC+4.

• Zum Treffen von Auswahlen brauchen wir eine weiteren Bausteintyp:

Grundlagen der Rechnerarchitektur ‐ Prozessor 16

Page 17: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Multiplexer

Grundlagen der Rechnerarchitektur ‐ Logik und Arithmetik 17

0    Mux 1Select

A B

C

Für ein Bit Für n Bit(z.B. 32 Bit)

0    Mux 1Select

A B

C

3232

32

C = A, wenn Select = 0C = B, wenn Select = 1

Für n‐Bit‐Select(z.B. 2 Bit)

MuxSelect

A1 A4

C

A2 A3

C = A0, wenn Select = 00C = A1, wenn Select = 01C = A2, wenn Select = 10C = A3, wenn Select = 11

Page 18: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐ Prozessor 18

Page 19: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Datenpfad einer einfachen MIPS‐CPUZugriff auf den Datenspeicher

Grundlagen der Rechnerarchitektur ‐ Prozessor 19

Page 20: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 21: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 22: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐ Prozessor 22

Page 23: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 24: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Control einer einfachen MIPS‐CPU

Grundlagen der Rechnerarchitektur ‐ Prozessor 24

Page 25: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 26: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Control einer einfachen MIPS‐CPUALU‐Control

Grundlagen der Rechnerarchitektur ‐ Prozessor 26

Page 27: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 28: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 29: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 30: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 31: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐ Prozessor 31

Page 32: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Control einer einfachen MIPS‐CPUMain‐Unit‐Control

Grundlagen der Rechnerarchitektur ‐ Prozessor 32

Page 33: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 34: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 35: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐ Prozessor 35

Page 36: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 37: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 38: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 39: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 40: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Pipelining

Grundlagen der Rechnerarchitektur ‐ Prozessor 40

Page 41: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

PipeliningInstruktionszyklen

Grundlagen der Rechnerarchitektur ‐ Prozessor 41

Page 42: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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 43: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

Instruktionszyklen in unserem Blockschaltbild

Grundlagen der Rechnerarchitektur ‐ Prozessor 43

Page 44: Uni Koblenz-Landau - Grundlagen der Rechnerarchitekturunikorn/lehre/gdra/ss14... · 2015-04-27 · Sign‐Extendund Shift‐Left2 Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik

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