Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die...

36
Pipelining Die PipeliningIdee Grundlagen der Rechnerarchitektur Prozessor 45

Transcript of Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die...

Page 1: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

PipeliningDie Pipelining‐Idee

Grundlagen der Rechnerarchitektur ‐ Prozessor 45

Page 2: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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 3: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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 4: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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 5: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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 6: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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

Page 7: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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.

Page 8: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Taktung

Grundlagen der Rechnerarchitektur ‐ Prozessor 52

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

Page 9: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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.

Page 10: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Der Ansatz ist noch zu naiv

Grundlagen der Rechnerarchitektur ‐ Prozessor 54

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

Page 11: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

PipeliningPipeline‐Register

Grundlagen der Rechnerarchitektur ‐ Prozessor 55

Page 12: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Pipeline‐Stufen brauchen Pipeline‐Register

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

Page 13: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Pipeline‐Stufen brauchen Pipeline‐Register

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

Control

…Änderungim 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

Page 14: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Was speichern die Pipeline‐Register?

Grundlagen der Rechnerarchitektur ‐ Prozessor 58

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

Page 15: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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

Page 16: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Grundlagen der Rechnerarchitektur ‐ Prozessor 60

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

Page 17: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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)

Page 18: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Was speichern die Pipeline‐Register?

Grundlagen der Rechnerarchitektur ‐ Prozessor 62

MEM/WB:• Das geleseneDatum aus demSpeicher (wird dann vonlw im nächsten Zyklus ins Write‐Register geschrieben)

• Das Ergebnis der ALU‐Operation (für diearithmetisch‐logischen Instruktionen)

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

Page 19: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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

Page 20: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Zusätzlich wird noch Control‐Info gespeichert

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

Control

Page 21: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Zusätzlich wird noch Control‐Info gespeichert

Grundlagen der Rechnerarchitektur ‐ Prozessor 65Bildquelle: 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

Page 22: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

PipeliningPipelining‐Visualisierung

Grundlagen der Rechnerarchitektur ‐ Prozessor 66

Page 23: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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, $3add $12, $3, $4lw $13, 24($1)add $14, $5, $6

Wir unterscheiden generell zwischen zwei Visualisierungsarten:Single‐Clock‐Cylce‐Pipeline‐Diagramm undMultiple‐Clock‐Cycle‐Pipeline‐Diagramm

Page 24: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Single‐Clock‐Cycle‐Pipeline‐Diagramm

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

Page 25: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Einfaches Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

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

Page 26: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Detaillierteres Multiple‐Clock‐Cycle‐Pipeline‐Diagramm

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

IF ID EX MEM WB

Page 27: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

PipeliningKomplexere Pipelines

Grundlagen der Rechnerarchitektur ‐ Prozessor 71

Page 28: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

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:

Grundlagen der Rechnerarchitektur ‐ Prozessor 72

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

Page 29: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Pipeline‐Stufen einiger ausgewählter ProzessorenMikroprozesor Jahr Taktrate Pipeline‐Stufen LeistungIntel 486 1989 25 MHz 5 5 WIntel Pentium 1993 66 MHz 5 10 WIntel Pentium Pro 1997 200 MHz 10 29 WIntel Pentium 4 Willamette 2001 2000 MHz 22 75 WIntel Pentium 4 Prescott 2004 3600 MHz 31 103 WIntel Core 2006 2930 MHz 14 75 WUltraSPARC IV+ 2005 2100 MHz 14 90 WSun 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.

Page 30: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Data‐Hazards

Grundlagen der Rechnerarchitektur ‐ Prozessor 74

Page 31: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Motivation

Grundlagen der Rechnerarchitektur ‐ Prozessor 75

Ist die Pipelined‐Ausführung immer ohne Probleme möglich?

Beispiel:sub $2, $1, $3and $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2)

Also, alle vier nachfolgenden Instruktionen hängen von der sub‐Instruktion ab.

Annahme:$2 speichert 10 vor der sub‐Instruktion.$2 speichert ‐20 nach der sub‐Instruktion.

Betrachten wir die Pipeline:

sub $2, $1, $3and $12, $2, $5or $13, $6, $2add $14, $2, $2sw $15, 100($2)

Page 32: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Problem Rückwärtsabhängigkeiten  

Grundlagen der Rechnerarchitektur ‐ Prozessor 76

Instr.‐Zeile

Sollte aus $2 lesen

Liest aus $2

and

or

add

sw

Data‐Hazard

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

Page 33: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Behandeln von Data‐Hazards mittels Forwarding

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

Page 34: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Allgemeine Lösung mittels Forwarding‐Unit

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

012

012

WB WB

EX/MEM.Rd

MEM/WB.Rd

Page 35: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Implementation der Forwarding‐Unit

Grundlagen der Rechnerarchitektur ‐ Prozessor 79

Page 36: Pipelining - userpages.uni-koblenz.deunikorn/lehre/gdra/ss17/04 Prozessor (VL14).pdf · Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus ... Pipeline an; und zwar den

Bemerkungen

Grundlagen der Rechnerarchitektur ‐ Prozessor 80

Die Bestimmung von ForwardB erfolgt analog. (Übung)

Das Ganze muss noch als Wahrheitstabelle aufgeschrieben und dann als kombinatorische Schaltung realisiert werden.

Wie sieht die Wahrheitstabelle von ForwardA nach voriger hergeleiteter Vorschrift aus? (Übung) [Tipp: um Platz zu sparen sollte man möglichst viele „don‘t cares“ verwenden.]

Auch mit der Erweiterung auf ForwardB ist die Implementation der Forwarding‐Unit noch unvollständig. Was passiert z.B. für:lw $2, 0($1)sw $2, 4($1)

Erweiterung: Forwarding muss z.B. auch in die MEM‐Stufe eingebaut werden. (Übung)