Was ist die Performance Ratio?

Ähnliche Dokumente
Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

Allgemeine Lösung mittels Hazard Detection Unit

Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

Datenpfad einer einfachen MIPS CPU

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016

Beispiele von Branch Delay Slot Schedules

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Technische Informatik I - HS 18

Technische Informatik 1 - HS 2016

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Technische Informatik 1 - HS 2016

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Technische Informatik 1 - HS 2017

Technische Informatik - Eine Einführung

Grundlagen der Informationsverarbeitung:

Assembler am Beispiel der MIPS Architektur

2.3 Register-Transfer-Strukturen

Grundlagen der Rechnerarchitektur. MIPS Assembler

Technische Informatik 1

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Carry Lookahead Adder

Hier: Soviele Instruktionen wie möglich sollen in einer Zeiteinheit ausgeführt werden. Durchsatz.

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Technische Informatik 1

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

Aufgabe 1 : Assembler

Technische Informatik 1

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Speichern von Zuständen

Technische Informatik I - HS 18

Übung Praktische Informatik II

Kapitel 2. Pipeline-Verarbeitung. Technologie- Entwicklung. Strukturelle Maßnahmen. Leistungssteigerung in Rechnersystemen

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

DIGITALE SCHALTUNGEN II

Datapath. Data Register# Register# PC Address instruction. Register#

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

9. Fließbandverarbeitung

Übungsblatt 6. Implementierung einer Befehlspipeline

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Rechnernetze und Organisation

N Bit Binärzahlen. Stelle: Binär-Digit:

Das Prinzip an einem alltäglichen Beispiel

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

2.3 Register-Transfer-Strukturen

Cache Blöcke und Offsets

Prinzipieller Aufbau und Funktionsweise eines Prozessors

2.3 Register-Transfer-Strukturen

Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Computersysteme. Fragestunde

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kontrollpfad der hypothetischen CPU

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.)

Arbeitsfolien - Teil 4 CISC und RISC

Kontrollpfad der hypothetischen CPU

Rechnerarchitektur SS TU Dortmund

Grundlagen der Rechnerarchitektur

Schriftliche Prüfung

Computer-Architektur Ein Überblick

Transkript:

Was ist die Performance Ratio? 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: t 1,..., t k. 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. Grundlagen der Rechnerarchitektur Prozessor 51

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). Grundlagen der Rechnerarchitektur Prozessor 52

Quiz Welchen CPI Wert suggeriert das MIPS Pipelining Beispiel? Achtung: der CPI Wert ist in der Regel höher, wie wir noch sehen. Grundlagen der Rechnerarchitektur Prozessor 53

Der Ansatz ist noch zu naiv Beispiel: lw $5, 500($0) lw $4, 400($0) lw $3, 300($0) lw $2, 200($0) lw $1, 100($0) IF ID EX MEM WB Grundlagen der Rechnerarchitektur Prozessor 54

Pipelining Pipeline Register Grundlagen der Rechnerarchitektur Prozessor 55

Pipeline Stufen brauchen Pipeline Register Grundlagen der Rechnerarchitektur Prozessor 56

Pipeline Stufen brauchen Pipeline Register Control Write Register darf erst in der WB Stufe gesetzt werden. Änderung im Tafelbild Wird durchgereicht RegDst steht mit der Entscheidung von Control erst in der EX Stufe fest. Grundlagen der Rechnerarchitektur Prozessor 57

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 Grundlagen der Rechnerarchitektur Prozessor 58

Was speichern die Pipeline Register? IF/ID: Instruktion PC+4 (z.b. für beq) Grundlagen der Rechnerarchitektur Prozessor 59

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. Grundlagen der Rechnerarchitektur Prozessor 60

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 Register 2 Daten (z.b. für sw) Das Write Register (wird im letzten Zyklus von lw gebraucht) Grundlagen der Rechnerarchitektur Prozessor 61

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) Grundlagen der Rechnerarchitektur Prozessor 62

Was speichern die Pipeline Register? Für die letzte Pipeline Stufe braucht man kein Pipeline Register. Grundlagen der Rechnerarchitektur Prozessor 63

Zusätzlich wird noch Control Info gespeichert Control Grundlagen der Rechnerarchitektur Prozessor 64

Zusätzlich wird noch Control Info gespeichert Werden durchgereicht. 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 Das MEM/WB Register muss bereit stellen: MemtoReg RegWrite Grundlagen der Rechnerarchitektur Prozessor 65

Pipelining Pipelining Visualisierung Grundlagen der Rechnerarchitektur Prozessor 66

Pipelining Visualisierung 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 Grundlagen der Rechnerarchitektur Prozessor 67

Single Clock Cycle Pipeline Diagramm Grundlagen der Rechnerarchitektur Prozessor 68

Einfaches Multiple Clock Cycle Pipeline Diagramm Grundlagen der Rechnerarchitektur Prozessor 69

Detaillierteres Multiple Clock Cycle Pipeline Diagramm IF ID EX MEM WB Grundlagen der Rechnerarchitektur Prozessor 70

Pipelining Komplexere Pipelines Grundlagen der Rechnerarchitektur Prozessor 71

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 Grundlagen der Rechnerarchitektur Prozessor 72

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 Pipeline Stufen sinken wieder? Aggressives Pipelining ist sehr Leistungshungrig Aktueller Trend eher zu Multi Cores mit geringerer Leistungsaufnahme pro Core. Grundlagen der Rechnerarchitektur Prozessor 73

Data Hazards Grundlagen der Rechnerarchitektur Prozessor 74

Motivation Ist die Pipelined Ausführung immer ohne Probleme möglich? Beispiel: sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $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: Grundlagen der Rechnerarchitektur Prozessor 75

Problem Rückwärtsabhängigkeiten Instr. Zeile and or add sw Sollte aus $2 lesen Liest aus $2 Data Hazard Grundlagen der Rechnerarchitektur Prozessor 76

Behandeln von Data Hazards mittels Forwarding Grundlagen der Rechnerarchitektur Prozessor 77

Allgemeine Lösung mittels Forwarding Unit 0 1 2 WB WB 0 1 2 EX/MEM.Rd MEM/WB.Rd Grundlagen der Rechnerarchitektur Prozessor 78

Implementation der Forwarding Unit Grundlagen der Rechnerarchitektur Prozessor 79

Bemerkungen 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) Grundlagen der Rechnerarchitektur Prozessor 80

Nicht auflösbare Data Hazards Nicht jeder Data Hazard lässt sich durch Forwarding auflösen. Beispiel: Zugriff auf vorher gelesenes Register. Grundlagen der Rechnerarchitektur Prozessor 81

Pipeline Stall als Lösung Grundlagen der Rechnerarchitektur Prozessor 82

Allgemeine Lösung mittels Hazard Detection Unit Grundlagen der Rechnerarchitektur Prozessor 83

Implementation der Hazard Detection Unit Grundlagen der Rechnerarchitektur Prozessor 84

Quiz: Vermeiden von Pipeline Stalls Wo findet ein Pipeline Stall statt? Bitte ankreuzen. lw lw $t1, 0($t0) $t2, 4($t0) add $t3, $t1, $t2 sw lw $t3, 12($t0) $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) Anzahl Taktzyklen mit Stalls? Anzahl Taktzyklen ohne Stalls? Bitte Befehle umorganisieren, sodass alle Stalls vermieden werden. Grundlagen der Rechnerarchitektur Prozessor 85

Control Hazards Grundlagen der Rechnerarchitektur Prozessor 86

Control Hazards Grundlagen der Rechnerarchitektur Prozessor 87

Branch Not Taken Strategie und Pipeline Flush Flush = Verwerfe Instruktionen in der Pipeline. Hier: Setze IF/ID, ID/EX und EX/MEM Register auf 0. Grundlagen der Rechnerarchitektur Prozessor 88

Reduktion des Branch Delays Adressberechnung kann schon in der ID Stufe stattfinden beq und bne erfordert lediglich ein 32 Bit XOR und ein 32 Bit OR Dazu braucht man keine ALU Also auch in der ID Stufe realisierbar Beispiel: für $1 und $3: Damit ist der Sprung schon in der ID Stufe entschieden Grundlagen der Rechnerarchitektur Prozessor 89