Rechnerarchitektur (RA)

Ähnliche Dokumente
CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Was ist die Performance Ratio?

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Das Prinzip an einem alltäglichen Beispiel

Grundlagen der Informationsverarbeitung:

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

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

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

Technische Informatik 1 - HS 2017

Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

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

Technische Informatik 1 - HS 2016

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

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

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

9. Fließbandverarbeitung

Prinzipieller Aufbau und Funktionsweise eines Prozessors

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

Technische Informatik - Eine Einführung

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Beispiele von Branch Delay Slot Schedules

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


, WS2013 Übungsgruppen: Di., Fr.,

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining

Assembler am Beispiel der MIPS Architektur

Der von Neumann Computer

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

ARM: Befehlssatz (Forts.)

9.1. Aufbau einer Befehlspipeline

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Dynamisches Scheduling

Technische Informatik 1 - HS 2016

Die Mikroprogrammebene eines Rechners

Technische Informatik 1

H E F B G D. C. DLX Rechnerkern

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Teil VIII Von Neumann Rechner 1

RO-Tutorien 15 und 16

Rechnerstrukturen 1: Der Sehr Einfache Computer

Computer-Architektur Ein Überblick

Kap 4. 4 Die Mikroprogrammebene eines Rechners

nutzt heute Diese Prinzipien werden wir im Kapitel 3 behandelt Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS

Grundlagen der Rechnerarchitektur

Rechnernetze und Organisation

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

Institut für Informatik Prof. Dr. D. Hogrefe Dipl.-Inf. R. Soltwisch, Dipl.-Inform. M. Ebner, Prof. Dr. D. Hogrefe Informatik II - SS 04.

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

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

Grundbegriffe der Informatik Tutorium 5

Parallele Rechnerarchitekturen. Bisher behandelte: Vorlesung 7 (theoretische Grundkonzepte) Nun konkrete Ausprägungen

, SS2012 Übungsgruppen: Do., Mi.,

Mikroprozessortechnik Grundlagen 1

Arbeitsfolien - Teil 4 CISC und RISC

Instruktionen pro Takt

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Teil 2: Rechnerorganisation

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Der Toy Rechner Ein einfacher Mikrorechner

Instruktionssatz-Architektur

Grundlagen der Rechnerarchitektur. Speicher

Philipp Grasl PROZESSOREN

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.

Heute nur MIPS-Praxis (4 Aufgaben)

Neue Prozessor-Architekturen für Desktop-PC

DIGITALE SCHALTUNGEN II

Grundlagen der Rechnerarchitektur

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Cache Blöcke und Offsets

Von-Neumann-Architektur

Systeme 1: Architektur

früher: CISC ( Complex Instruction Set Computer )

Leistung und Pipelining. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

1 Random Access Maschine

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Johann Wolfgang Goethe-Universität

Compilerbau + Virtuelle Maschinen

2.2 Rechnerorganisation: Aufbau und Funktionsweise

RISC-Prozessoren (1)

Technische Informatik 1

Assembler Kontrollstrukturen

Implementierung: Direkt abgebildeter Cache

Vorlesung: Technische Informatik 3

Rechnerarchitektur (RA)

L3. Datenmanipulation

Rechnernetze und Organisation

Aufgabenblatt 7. Es sind keine Abgaben mit mehreren Namen oder Kopien von Abgaben anderer erlaubt

Rechner Architektur. Martin Gülck

Technische Informatik 1 Übung 2 Assembler (Computerübung) Matthias Meyer

Grundbegriffe der Informatik

jedoch sicherlich nicht höher sein, als die Hälfte der maximal erreichbaren Punkte.

Fachbereich Medienproduktion

Architektur von Parallelrechnern 50

Transkript:

2 Rechnerarchitektur (RA) Sommersemester 26 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 26/5/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken ist im Allgemeinen nicht erlaubt.

Mikroprogrammierung Fließbandverarbeitung fetch decode RRR rr branch jump mar mar' lw load store rr2 branch2 2, 25-2 -

Mikroprogrammierung Fließbandverarbeitung fetch decode RRR rr branch jump mar mar' lw load store rr2 branch2 2, 25-3 -

Mikroprogrammierung Fließbandverarbeitung fetch decode RRR rr branch jump mar mar' lw load store rr2 branch2 2, 25 - -

Mikroprogrammierung Fließbandverarbeitung fetch decode RRR rr branch jump mar mar' lw load store rr2 branch2 2, 25-5 -

Mikroprogrammierung Fließbandverarbeitung fetch decode RRR rr branch jump mar mar' lw load store rr2 branch2 www.it.lth.se/courses/dsi/material/lectures/lecture6.pdf 2, 25 Flash-Animation - 6 -

2.3.2 Fließbandverarbeitung Fließband-Architektur (engl. pipeline architecture): Bearbeitung mehrerer Befehle gleichzeitig, analog zu Fertigungsfließbändern. Beispiel MIPS: instruction fetch instruction decode/ register read instruction execution/ address calculation Memory access (register) writeback 25:2 2:6 5: Speicher Speicher 5: 2, 25-7 -

Änderungen gegenüber der Struktur ohne Fließband Separater Addierer für Programm-Folgeadressen. Konzeptuelle Aufteilung des Speichers in Daten- und Befehlsspeicher. Aufteilung des Rechenwerks in Fließbandstufen, Trennung durch Pufferregister, T und Befehlsregister werden Pufferregistern. 25:2 2:6 5: Speicher Speicher Steuerwerk nicht dargestellt 5: 2, 25-8 -

Aufgaben der einzelnen Phasen bzw. Stufen Befehlsholphase (IF) Lesen des aktuellen Befehls; separater Speicher, zur Vermeidung von Konflikten mit Datenzugriffen (F Cache). Dekodier- und ister-lese-phase (ID) Lesen der ister möglich wegen fester Plätze für Nr. Ausführungs- und Adressberechungsphase (EX) Berechnung arithmetischer Funktion bzw. Adresse für Speicherzugriff. Speicherzugriffsphase (MEM) Wird nur bei Lade- und Speicherbefehlen benötigt. Abspeicherungsphase (WB) Speichern in ister, bei Speicherbefehlen nicht benötigt. 2, 25-9 -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus Befehl 2, 25 - -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus 2 Befehl 2 Befehl 2, 25 - -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus 3 Befehl 3 Befehl 2 Befehl 2, 25-2 -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus Befehl Befehl 3 Befehl 2 Befehl 2, 25-3 -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus 5 Befehl 5 Befehl Befehl 3 Befehl 2 Befehl 2, 25 - -

Idealer Fließbanddurchlauf 25:2 2:6 5: 5: Zyklus 6 Befehl 6 Befehl 5 Befehl Befehl 3 Befehl 2 2, 25-5 -

Pipeline-Hazards Structural hazards (deutsch: strukturelle Abhängigkeiten oder Gefährdungen). Verschiedene Fließbandstufen müssen auf dieselbe Hardware-Komponente zugreifen, weil diese nur sehr aufwändig oder überhaupt nicht zu duplizieren ist. Beispiele: Speicherzugriffe, sofern für Daten und Befehle nicht über separate Pufferspeicher (caches) eine weitgehende Unabhängigkeit erreicht wird. Bei Gleitkommaeinheiten lässt sich häufig nicht mit jedem Takt eine neue Operation starten (zu teuer). F Eventuell Anhalten des Fließbandes (pipeline stall) nötig. 2, 25-6 -

Datenabhängigkeiten () Gegeben sei eine Folge von Maschinen-Befehlen. Def.: Ein Befehl j heißt von einem vorausgehenden Befehl i datenabhängig, wenn i Daten bereitstellt, die j benötigt. Beispiel: add $2,$2,$3 sub $,$5,$2 and $6,$2,$7 or $8,$2,$9 xor $,$2,$ Diese Befehle sind vom add-befehl wegen $2 datenabhängig Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) read after write- (oder RAW-) Abhängigkeit. 2, 25-7 -

Datenabhängigkeiten (2) Gegeben sei wieder eine Folge von Maschinen-Befehlen. Def.: Ein Befehl i heißt von einem nachfolgenden Befehl j antidatenabhängig, falls j eine Speicherzelle beschreibt, die von i noch gelesen werden müsste. Beispiel: add $2,$2,$3 sub $,$5,$2 Diese 2 Befehle sind vom or-befehl and $6,$2,$7 wegen $2 antidatenabhängig or $2,$2,$9 xor $,$2,$ Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after read - (oder WAR-) Abhängigkeit. 2, 25-8 -

Datenabhängigkeiten (3) Gegeben sei (wieder) eine Folge von Maschinen-Befehlen. Def.: Zwei Befehle i und j heißen voneinander Ausgabe-abhängig, falls i und j dieselbe Speicherzelle beschreiben. Beispiel: add $2,$2,$3 sub $,$5,$2 and $6,$2,$7 or $2,$2,$9 xor $,$2,$ Voneinander ausgabeabhängig. Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after write - (oder WAW-) Abhängigkeit. 2, 25 ravi/pipeline - 9 -

Quiz Data Hazard Does WAR an issue in the previous pipeline structure? Does WAW an issue in the previous pipeline structure? Why do we need and separately? 2, 25-2 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: Zyklus add $,$2,$3 2, 25-2 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: sub $,$5,$ add $,$2,$3 Zyklus 2 2, 25-22 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: Zyklus 3 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-23 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: Zyklus or $8,$,$9 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-2 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: Zyklus 5 xor $,$,$ or $8,$,$9 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-25 -

Bypässe, forwarding: Behandlung des data hazards bei and und sub 25:2 2:6 5: 5: Zyklus 6? xor $,$,$ or $8,$,$9 and $6,$,$7 sub $,$5,$ 2, 25-26 -

Taktung zur Behandlung des data hazards bei or 25:2 Takt 2:6 5: 5: add $,$2,$3 Zyklus Übernahme in die Pipeline-ister 2, 25-27 -

Taktung zur Behandlung des data hazards bei or 25:2 Takt 2:6 5: 5: sub $,$5,$ add $,$2,$3 Zyklus 2 Übernahme in die Pipeline-ister 2, 25-28 -

Taktung zur Behandlung des data hazards bei or 25:2 Takt 2:6 5: 5: Zyklus 3 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-29 -

Taktung zur Behandlung des data hazards bei or 25:2 2:6 5: Takt 5: Zyklus or $8,$,$9 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-3 -

Taktung zur Behandlung des data hazards bei or 25:2 Takt 2:6 5: 5: Zyklus xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-ister Zyklus 5 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-3 -

Taktung zur Behandlung des data hazards bei or 25:2 Takt 2:6 5: 5: Zyklus xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-ister Zyklus 5 and $6,$,$7 sub $,$5,$ add $,$2,$3 2, 25-32 -

Taktung zur Behandlung des data hazards bei or Übernahme in, Dmem und? 5: 25:2 2:6 5: xor $,$,$ Zyklus 6 or $8,$,$9 Übernahme in die Pipeline-ister and $6,$,$7 Takt sub $,$5,$ 2, 25 pipeline2-33 -

Alle data hazards durch Bypässe behandelbar? 25:2 2:6 5: 5: Zyklus 5 6 23 xor lw? sub and $8,$,$9 $,($2) $,$,$ $,$5,$ $6,$,$7 xor and lw sub $8,$,$9 $,($2) $,$,$ $6,$,$7 $,$5,$ and or sub lw $8,$,$9 $,($2) $6,$,$7 $,$5,$ sub and lw $,($2) $,$5,$ $6,$,$7 lw sub $,($2) $,$5,$ Speicherwort wird am Ende des Zyklus gespeichert, steht für Differenz noch nicht bereit. 2, 25-3 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus lw $,($2) 2, 25-35 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus 2 sub $,$5,$ lw $,($2) 2, 25-36 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus 3 and $6,$,$7 sub $,$5,$ lw $,($2) 2, 25-37 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus or NOOP $8,$,$9 and NOOP $6,$,$7 sub NOOP $,$5,$ lw $,($2) 2, 25-38 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus 5 or $8,$,$9 and $6,$,$7 sub $,$5,$ NOOP lw $,($2) 2, 25-39 -

Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 25:2 2:6 5: 5: Zyklus 6 bubble, durch intelligente Compiler vermeiden! xor $,$,$ or $8,$,$9 and $6,$,$7 sub $,$5,$ NOOP 2, 25 ravi/pipeline2 - -

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards () Beispielprogramm: beq $2,$2,t -- springe zur Marke t, falls [2]=[2] sub...... t:add.. Wir versuchen zunächst, durch Einfügen von NOOPs, die intuitive Bedeutung des Programms zu realisieren... 2, 25 - -

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (2) 25:2 2:6 5: 5: Takt 2: Sprung wird erkannt, deshalb werden zwei NOOP-Befehle eingefügt. Takt : Mit fallender Flanke wird getaktet, mit steigender IF/ID-ister. Takt 3: müsste sowohl Vergleich wie auch das Sprungziel ausrechnen können Zyklus 2 3 56 beq NOOP sub... oder $,$2,t add beq NOOP sub... oder $,$2,t add beq NOOP sub oder $,$2,t add beq NOOP $,$2,t beq NOOP $,$2,t 2, 25-2 -

Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (3) Probleme beim gezeigten Ansatz: Leistungsverlust durch 2 NOOPs (branch delay penalty). /Multiplexer in der gezeigten Form nicht ausreichend, um Test und Sprungzielberechnung in einem Takt auszuführen. Lösungsansatz: Gleichheit der ister wird schon in der instruction decode-stufe geprüft. Sprungziel wird in separatem Adressaddierer ebenfalls bereits in der instruction decode-stufe berechnet. Sofern weiterhin noch Verzögerungen auftreten: nächsten Befehl einfach ausführen (delayed branch). oder weiterhin NOOP(s) einfügen (stall). 2, 25-3 -

Reduktion der branch delay penalty; delayed branch IF/ID = * 25:2 ID/EX Am Ende des Zyklus 2 gültig EX/MEM MEM/WB Folgeadresse bei fallender Flanke übernommen. 2:6 5: 5: * Zyklus 2 3 56 beq sub add... $,$2,t beq sub add... $,$2,t beq sub add $,$2,t beq sub add $,$2,t beq sub $,$2,t 2, 25 - -

Delayed Branches, verzögerte Sprünge Beim gezeigten Beispiel wird der auf den Sprungbefehl folgende Befehl immer noch ausgeführt. beq $2,$2,t sub... # wird immer noch ausgeführt... t: add.. It s not a bug, it s a feature Einen Platz für die Aufnahme eines solchen Befehls nennt man delay slot, die Sprünge delayed branches. Manche Maschinen haben mehrere delay slots. Delay slots sollten von Übersetzern mit nützlichen Befehlen gefüllt werden. Nur notfalls sollte es ein NOOP sein. Die MIPS-Maschine hat ein delay slot, welches aber vom Assembler verdeckt wird. 2, 25 ravi/pipeline3-5 -

Typen von Fließband-Gefährdungen (hazards) Strukturelle Abhängigkeiten/Gefährdungen (structural hazards) Datenfluß- Abhängigkeiten/Gefährdungen (data hazards) aufgrund von Datenabhängigkeiten (RAW) F forwarding, pipeline stalls aufgrund von Antidatenabhängigkeiten (WAR) (erst bei komplizierteren Systemen wichtig) aufgrund von Ausgabeabhängigkeiten (WAW) (erst bei komplizierteren Systemen wichtig) Kontrollfluß-Abhängigkeiten/Gefährdungen (control hazards) F delayed branches, pipeline stalls, spekulative Ausführung, Sprungvorhersage 2, 25-6 -