• Keine Ergebnisse gefunden

• Hier eine weitere Methode um ILP zu steigern: Multiple‐Issue

N/A
N/A
Protected

Academic year: 2022

Aktie "• Hier eine weitere Methode um ILP zu steigern: Multiple‐Issue"

Copied!
17
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Multiple‐Issue

(2)

Motivation

Bi h I i L l P ll li (ILP) d h Pi li i

• Bisher: Instruction‐Level‐Parallelism (ILP) durch Pipelining

– ILP kann durch Pipeline‐Stufe erhöht werden

– Pipelines mit mehr Stufen sind anfälliger gegenüber Data‐ und Control‐

Hazards

– Also: Pipeline‐Stufen nur bis zu gewisser Tiefe sinnvoll – Außerdem: Grenzen aufgrund der Leistungsaufnahme

– CPI bleibt gleich oder steigt sogar (wegen Hazards), Clock‐Rate steigt

• Hier eine weitere Methode um ILP zu steigern: Multiple‐Issue

– Replikation von internen CPU‐Strukturen, sodass mehrere Instruktionen proReplikation von internen CPU Strukturen, sodass mehrere Instruktionen pro  Pipeline‐Stufe möglich sind

– CPI sinkt und Clock‐Rate bleibt gleich (oder sinkt sogar wegen erhöhter  Komplexität)

– Beispiel: CPI eines 4‐Wege‐Multiple‐Issue‐Mikroprozessor hat eine ideale CPI  von? 0.25!

– CPI liegt aber in der Regel höher, wie wir gleich sehen werden

• Wir unterscheiden zwischen:

– Static‐Multiple‐Issue: Entscheidungen werden zur Compile‐Zeit gefällt – Dynamic‐Multiple‐Issue: Entscheidungen werden zur Laufzeit gefälltDynamic Multiple Issue: Entscheidungen werden zur Laufzeit gefällt

(auch Superskalare CPU bezeichnet)

(3)

Multiple‐Issue

l l

Static‐Multiple‐Issue

(4)

Generelle Idee

• Eine große Instruktion pro Clock‐Cycle

• Große Instruktion besteht aus mehreren Große Instruktion besteht aus mehreren  gleichzeitig stattfindenden Operationen

• Aber nicht jede Kombination von Operationen  möglich g

• Beispiel:

ALU O ti d S i h ti l i h iti – ALU‐Operation und Speicheroperation gleichzeitig 

möglich

– Aber zwei ALU‐Operation auf einmal nicht möglich

• Terminologie: VLIW (Very Long Instruction Word) g ( y g )

(5)

Beispiel am MIPS‐Datenpfad

ALU für arithmetische  Operationen

Extra ALU für gleichzeitige  Adresskalkulation

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

(6)

Statische Two‐Issue Pipeline im Betrieb

Was ist der CPI‐Wert?

(7)

Was ist nun die Aufgabe des Compilers?

Loop: lw $t0, 0($s1) # $t0=Array-Element addu $t0 $t0 $s2 # addiere Wert

Compiler erzeugt Assembler‐Code:

addu $t0, $t0, $s2 # addiere Wert

sw $t0, 0($s1) # Speichere Element addi $s1, $s1, -4 # nächstes Element $ , $ , # bne $s1, $zero, Loop # solange $s1 != 0 und ordnet Instruktionen so an, dass keine Pipeline‐Stalls entstehen , p

Was ist der CPI‐Wert?

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

(8)

Verbesserung: Loop‐Unrolling

Code wie vorher (der Einfachheit sei Loop‐Index Vielfaches von 4):

Loop: lw $t0, 0($s1) # $t0=Array-Element addu $t0, $t0, $s2 # addiere Wert

Code wie vorher (der Einfachheit sei Loop Index Vielfaches von 4):

sw $t0, 0($s1) # Speichere Element addi $s1, $s1, -4 # nächstes Element bne $s1 $zero Loop # solange $s1 ! 0 bne $s1, $zero, Loop # solange $s1 != 0 Loop‐Body vier mal kopiert und Register‐Renaming

Was ist der CPI‐Wert?

(9)

Multiple‐Issue

l l

Dynamic‐Multiple‐Issue

(10)

Generelle‐Idee

• CPU entscheidet, ob und wie viele aufeinander  folgende Instruktionen parallel gestartet werden  können

• Compiler erzeugt nur eine Folge von Compiler erzeugt nur eine Folge von  Instruktionen; kein VLIW

• Instruktions Scheduling des Compilers nicht mehr

• Instruktions‐Scheduling des Compilers nicht mehr  erforderlich aber trotzdem aus Performance‐

Gründen sinnvoll Gründen sinnvoll

• Verbesserung der Superskalarität durch 

d i h i li h d li

dynamisches Pipeline‐Scheduling: 

Instruktionsreihenfolge darf geändert werden, um 

Stalls zu vermeiden

(11)

Dynamic‐Pipeline‐Scheduling Motivation

lw $t0, 20($s2) # zunächst $t0 laden

addu $t1, $t0, $t2 # addu durch lw verzögert addu $t1, $t0, $t2 # addu durch lw verzögert sub $s4, $s4, $t3 # sub könnte schon starten slti $t5, $s4, 20 # und genau so auch slti

Warum nicht sub (und ggf slti) vor addu vorziehen?

Warum nicht sub (und ggf. slti) vor addu vorziehen?

(12)

Dynamic‐Pipeline‐Scheduling generell

(13)

Wiedervorlage: Daten einiger ausgewählter Prozessoren

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

(14)

Zusammenfassung und Literatur

(15)

Zusammenfassung

S hl h P f Si l C l A

• Schlechte Performance von Single‐Cylce‐Ansatz

• Instruktionsabarbeitung besteht aus mehreren Zyklen

• Moderne Prozessoren nutzen dies für Pipelining

Multiple‐Issue

• Allgemein als Instruction‐Level‐Parallelism bezeichnet

• Für High‐Level‐Programmierer ist die Parallelität nicht sichtbar Sichtbar auf Assmbler‐Ebene

Sichtbar auch Compiler‐Ebene

• Haupt‐Probleme die die Parallelität einschränken Daten‐Abhängigkeiten

Control‐Abhängigkeiten

• Methoden um Data‐ und Control‐Hazards zu reduzieren Scheduling

Spekulation

• Sichtbare Grenze der Power‐Wall ist erreicht

• Trend zu Multicores mit einfacheren Pipelines

• Konsequenz: Parallelität nicht mehr von der Hardware gekapselt

(16)

Quiz

Pipelining erhöht den Durchsatz aber reduziert nicht die Instruktions‐Latenz.

Pipelining erhöht den Durchsatz aber reduziert nicht die Instruktions Latenz.

[  ] Nein, Durchsatz und Latenz sinken       [  ] Nein, Durchsatz und Latenz steigen       [  ] Ja, das ist richtig

Welchen Einfluss hat Superskalarität auf den CPI‐Wert?

[  ] Der CPI‐Wert bleibt immer unverändert,      [  ] Der CPI‐Wert steigt an.

[  ] Der CPI‐Wert kann unter 1 fallen.

Eine Pipeline mit k Stufen erreicht asymptotisch immer eine Performance‐Ratio von k.

[  ] Jawohl.      [  ] Nein, die Ratio kann darunter liegen.

[ ] N i di R i k h höh li

Mittels Pipelining kann man die Taktrate eines Rechners erhöhen.

[  ] Nein, die Ratio kann sogar noch höher liegen.

Welchen Einfluss hat Pipelining auf den CPI‐Wert?

[  ] Stimmt!       [  ] Nein, das ist völliger Quatsch.

Welchen Einfluss hat Pipelining auf den CPI Wert?

(17)

Literatur

[PattersonHennessy2012] David A. Patterson und John  L. Hennessy, „Computer Organization and Design“, 

h d

Fourth Edition, 2012

4.1 Introduction

4.2 Logic Design Conventions 4.3 Building a Datapath

4.4 A Simple Implementation Scheme 4.5 An Overview of Pipelining

4.6 Pipelined Datapath and Control

4.7 Data Hazards: Forwarding versus Stalling 4.8 Control Hazards

4.10 Parallelism and Advanced Instruction‐Level Parallelism

4.11 Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline

Referenzen

ÄHNLICHE DOKUMENTE

In ei- ner doppelblinden, placebo- kontrollierten Studie über zu- nächst 35 Monate als Basis zur Zulassung von Copaxone wurden 251 Patienten mit schubförmig verlaufender

Unter Alemtuzumab blieben 77,6 Prozent der Patienten zwei Jahre lang schubfrei – unter In- terferon waren es 58,7 Prozent.. Kein Unterlagenschutz mehr Die „CARE-MS II“-Studie schloss

Die jährliche Schubrate betrug 0,17 bei zweimal täglicher Gabe von BG-12 und 0,19 unter dreimal täglicher Gabe, unter Placebo lag sie bei 0,36.. Dies entspricht einer

F ür die lokale Ertragsermittlung wurden in den vergangenen 20 Jahren an vielen Institutionen weltweit, besonders auch am jetzigen Lehrstuhl für Agrarsystemtechnik der TU

Da das Produkt B als nicht ge- nusstauglich, die Rohwurst C aber als sehr gut eingestuft wur- de, lässt sich folgern, dass sich mittels Weichseparator gewon- nenes Rindfleisch,

Die Befehls- und InstruktionsUebung war in der Weise, wie sie in Zug durchgeführt wurde, ein Probestück, welches eines weiteren Ausbaues bedarf, bevor es als mustergültige Disziplin

Die execute() - Methode berechnet die Ausgabetabelle oder das Datenmodell anhand der Eingabedaten, während im reset() alle lokalen Modellvariablen zurückgesetzt

As this inherent parallelism is quite obvious and realized in nearly all pipelining tools we focus on the threaded processing of data inside a node (see Section 4.2) and the