• Keine Ergebnisse gefunden

Beispiel für eine R‐Typ‐Instruktion

N/A
N/A
Protected

Academic year: 2022

Aktie "Beispiel für eine R‐Typ‐Instruktion"

Copied!
40
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Auch hier wieder

Aus voriger Wahrheitstabelle lässt sich mechanisch eine 

kombinatorische Schaltung generieren, die wir im Folgenden mit  dem Control‐Symbol abstrakt darstellen.

Control

Instruction[31—26]

(also: das Opcode‐

Field der Instruktion)

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite

(2)

Erweiterung des Blockschaltbilds

Grundlagen der Rechnerarchitektur ‐Prozessor 35

(3)

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.

add $t1, $t2, $t3

(4)

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)

(5)

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.

beq $t1, $t2, 42

(6)

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 j unterstü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 address

Opcode Bits 31‐26

Adresse Bits 25‐0

J‐Typ

(7)

Pipelining

(8)

Pipelining

Instruktionszyklen

Grundlagen der Rechnerarchitektur ‐Prozessor 41

(9)

MIPS‐Instruktionszyklus

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)

(10)

Instruktionszyklen in unserem Blockschaltbild

Grundlagen der Rechnerarchitektur ‐Prozessor 43

(11)

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)

(12)

Pipelining

Die Pipelining‐Idee

Grundlagen der Rechnerarchitektur ‐Prozessor 45

(13)

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

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

(14)

Die Pipelining‐Idee am Beispiel Wäsche waschen

Grundlagen der Rechnerarchitektur ‐Prozessor 47

Bildquelle: 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).

(15)

Was ist die Performance‐Ratio?

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?

(16)

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

(17)

Die Pipeline nach den ersten drei Instruktionen

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

Annahme:

IF = 200ps ID = 100ps EX = 200ps MEM = 200ps WB = 100ps

(18)

Was ist die Performance‐Ratio?

Grundlagen der Rechnerarchitektur ‐Prozessor 51

Wie eben gezeigt wäre für k Pipeline‐Stufen und eine große Zahl an  ausgeführten Instruktionen die Performance‐Ratio gleich k, wenn  jede Pipeline‐Stufe dieselbe Zeit beanspruchen würde.

Allerdings brauchen die einzelnen Stufen s1,...,sk unterschiedliche  Zeiteinheiten: t1,..., tk. Somit ist die Performance‐Ratio für n 

Instruktionen:

Mit den Zeiten aus dem vorigen Beispiel für n   also:

Die Performance‐Ratio wird durch die langsamste Stufe bestimmt.

(19)

Taktung

Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus  benötigen die bisher betrachteten 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 Stufe benötigt 200ps. Also gilt für den Clock‐Cycle c:

Achtung: Maximal mögliche Taktung hängt aber auch von anderen  Faktoren ab. (Erinnerung: Power‐Wall).

(20)

Quiz

Grundlagen der Rechnerarchitektur ‐Prozessor 53

Welchen CPI‐Wert suggeriert das MIPS‐Pipelining‐Beispiel?

Achtung: der CPI‐Wert ist in der Regel höher, wie wir noch sehen.

(21)

Der Ansatz ist noch zu naiv

lw $1, 100($0) lw $2, 200($0)

lw $3, 300($0) lw $4, 400($0)

lw $5, 500($0) Beispiel:

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

IF      ID       EX       MEM      WB

(22)

Pipelining

Pipeline‐Register

Grundlagen der Rechnerarchitektur ‐Prozessor 55

(23)

Pipeline‐Stufen brauchen Pipeline‐Register

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

(24)

Pipeline‐Stufen brauchen Pipeline‐Register

Grundlagen der Rechnerarchitektur ‐Prozessor 57

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

Control

Änderung im Tafelbild

Write‐Register  darf erst in der  WB‐Stufe gesetzt  werden.

RegDst steht mit der Entscheidung von  Control erst in der EX‐Stufe fest.

Wird durchgereicht

(25)

Was speichern die Pipeline‐Register?

Wir schauen uns den Weg einer einzigen Instruktion durch die  Pipeline an; und zwar den der Load‐Word‐Instruktion lw.

Auf dem Weg durch die Pipeline überlegen wir, was alles in den  Pipeline‐Registern IF/ID, ID/EX, EX/MEM und MEM/WB stehen  muss.

In der Darstellung verwenden wir folgende Konvention.

Bedeutet: Register/Speicher wird gelesen Bedeutet: Register/Speicher wird beschrieben

(26)

Was speichern die Pipeline‐Register?

Grundlagen der Rechnerarchitektur ‐Prozessor 59

IF/ID:

Instruktion

PC+4 (z.B. für beq)

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

(27)

Was speichern die Pipeline‐Register?

ID/EX:

PC+4 (z.B. für beq)

Inhalt Register 1

Inhalt Register 2

Sign‐ext. Immediate (z.B. für beq)

Das Write‐Register

(wird im Letzten Zyklus von lw gebraucht)

Generell: Alles was in einem späteren Clock‐Cycle  noch verwendet werden könnte, muss 

durchgereicht werden.

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

(28)

Grundlagen der Rechnerarchitektur ‐Prozessor 61

Was speichern die Pipeline‐Register?

EX/MEM:

Ergebnis von PC+4+

Offset (z.B. für beq)

Zero der ALU (z.B. für beq)

Result der ALU

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

Register 2 Daten (z.B. für sw)

Das Write‐Register (wird im letzten Zyklus von lw gebraucht)

(29)

Was speichern die Pipeline‐Register?

MEM/WB:

Das gelesene Datum aus dem

Speicher (wird dann von

lw im nächsten Zyklus ins Write‐Register geschrieben)

Das Ergebnis der ALU‐Operation (für die arithmetisch‐logischen Instruktionen)

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

(30)

Grundlagen der Rechnerarchitektur ‐Prozessor 63

Was speichern die Pipeline‐Register?

Für die letzte  Pipeline‐Stufe  braucht man kein  Pipeline‐Register.

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

(31)

Zusätzlich wird noch Control‐Info gespeichert

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

Control

(32)

Zusätzlich wird noch Control‐Info gespeichert

Grundlagen der Rechnerarchitektur ‐Prozessor 65

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

Control hängt  von der 

Instruktion ab. 

Damit muss  Control‐Info erst  ab ID/EX‐

Register  gespeichert  werden.

Das ID/EX‐

Register muss  bereitstellen:

RegDst

ALUOp (2)

ALUSrc

Das EX/MEM‐

Register muss  bereit stellen:

Branch

•MemRead

•MemWrite

Werden durch‐

gereicht.

Das MEM/WB‐

Register muss  bereit stellen:

MemtoReg

RegWrite

(33)

Pipelining

Pipelining‐Visualisierung

(34)

Pipelining‐Visualisierung

Grundlagen der Rechnerarchitektur ‐Prozessor 67

Zusammenfassung der vorhin implizit eingeführten Visualisierungen  und Einführung einer neuen Visualisierung.

Wir betrachten folgenden Beispiel‐Code:

lw $10, 20($1) sub $11, $2, $3 add $12, $3, $4 lw $13, 24($1) add $14, $5, $6

Wir unterscheiden generell zwischen zwei Visualisierungsarten:

Single‐Clock‐Cylce‐Pipeline‐Diagramm und Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

(35)

Single‐Clock‐Cycle‐Pipeline‐Diagramm

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

(36)

Einfaches Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

Grundlagen der Rechnerarchitektur ‐Prozessor 69

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

(37)

Detaillierteres Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

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

IF ID EX MEM WB

(38)

Pipelining

Komplexere Pipelines

Grundlagen der Rechnerarchitektur ‐Prozessor 71

(39)

Komplexere Piplelines

Pipeline‐Stufen sind nicht auf 5 festgelegt!

z.B. weitere Unterteilung von IF, ID, EX, MEM, WB Erlaubt höhere Taktung

Kann aufgrund der Instruktions‐Komplexität erforderlich sein

Kann aufgrund von Instruktionen mit zeitlich unbalancierten Stufen erforderlich sein

Wie „pipelined“ man x86 ISA mit Instruktionslängen zwischen 1 und 17 Bytes?

Komplexe Instruktionen der x86 ISA werden in Folge von Mikroinstruktionen  übersetzt

Mikroinstruktionssatz ist vom Typ RISC

Pipelining findet auf den Mikroinstruktionen statt

Beispiel AMD Opteron X4:

Was das ist sehen wir noch im Kapitel Multiple‐Issue

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

(40)

Pipeline‐Stufen einiger ausgewählter Prozessoren

Mikroprozesor Jahr Taktrate Pipeline‐Stufen Leistung

Intel 486 1989 25 MHz 5 5 W

Intel Pentium 1993 66 MHz 5 10 W

Intel Pentium Pro 1997 200 MHz 10 29 W

Intel Pentium 4 Willamette 2001 2000 MHz 22 75 W Intel Pentium 4 Prescott 2004 3600 MHz 31 103 W

Intel Core 2006 2930 MHz 14 75 W

UltraSPARC IV+ 2005 2100 MHz 14 90 W

Sun UltraSPARC T1 (Niagara) 2005 1200 MHz 6 70 W

Grundlagen der Rechnerarchitektur ‐Prozessor 73

Pipeline‐Stufen sinken wieder?

Aggressives Pipelining ist sehr Leistungshungrig

Aktueller Trend eher zu Multi‐Cores mit geringerer Leistungsaufnahme pro Core.

Referenzen

ÄHNLICHE DOKUMENTE

Zusammenfassend kann man also feststellen, dass im Rahmen dieser Arbeit ein Gesamtsys- tem (siehe Abbildung 9.1) eingef¨ uhrt wurde, welches Ans¨ atze zur Erzeugung von

Doch selbst diejenigen, die zu einer kritischen Haltung tendieren, nehmen die Research Sc Analysis (R&A) Branch von dieser Kritik meist aus. Wie eben dargelegt, war

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc

Flush = Verwerfe  Instruktionen in der  Pipeline. Hier: Setze  IF/ID‐, ID/EX‐

RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc

Sandberg (1988) halten es auch für möglich, daß sich die Methode des sokratischen Dialogs in dem untersuchten Altersbereich für manche Lerner nicht eignet und durch

Lernsteuerung bei linear programmierter Instruktion.. Steuerung und Kontrolle des Lernens. 5.2 Programmierte Instruktion