Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2...

35
1 Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 2 Grundlegende Prozessortechniken Prozessorarchitektur definiert die Grenze zwischen Hardware und Software. - Das sind die für den Compilerbauer und Systemprogrammierer sichtbaren Teil des Prozessors. - Synonym: Befehlssatz-Architektur (ISA – Instruction Set Architecture) oder Programmiermodell eines Prozessors. - Prozessorarchitektur betrifft keine Details der Hardware. Mikroarchitektur (microarchitecture) bezeichnet die Implementierung einer Prozessorarchitektur in einem Mikroprozessor. Prozessortechniken: Architektur- oder Mikroarchitekturtechniken Prozessorfamilie: alle Prozessoren haben die gleiche Basisarchitektur, die neueren oder die komplexeren Prozessoren der Familie erweitern die Architekturspezifikation.

Transcript of Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2...

Page 1: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

1Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2 Grundlegende Prozessortechniken

Prozessorarchitektur definiert die Grenze zwischen Hardware und Software.

- Das sind die für den Compilerbauer und Systemprogrammierer sichtbaren Teil des Prozessors.

- Synonym: Befehlssatz-Architektur (ISA – Instruction Set Architecture) oder Programmiermodell eines Prozessors.

- Prozessorarchitektur betrifft keine Details der Hardware. Mikroarchitektur (microarchitecture) bezeichnet die

Implementierung einer Prozessorarchitektur in einem Mikroprozessor.

Prozessortechniken: Architektur- oder Mikroarchitekturtechniken Prozessorfamilie: alle Prozessoren haben die gleiche Basisarchitektur,

die neueren oder die komplexeren Prozessoren der Familie erweitern die Architekturspezifikation.

Page 2: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

2Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

CISC- und RISC-Prinzipien

CISC (Complex Instruction Set Computers) RISC (Reduced Instruction Set Computer):

Beobachtung: manche Maschinenbefehle werden fast nie verwendet. Komplexe Befehle lassen sich prinzipiell durch eine Folge einfacher Befehle ersetzen.

Page 3: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

3Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Charakteristische Eigenschaften von RISC-Architekturen:

Der Befehlssatz besteht aus wenigen, unbedingt notwendigen Befehlen (Anzahl ≤ 128) undBefehlsformaten (Anzahl ≤ 4) mit einer einheitlichen Befehlslänge von 32 Bit und mit nur wenigenAdressierungsarten (Anzahl ≤ 4).Damit wird die Implementierung des Steuerwerks erheblich vereinfacht und auf dem Prozessorchip Platz geschaffen für weitere begleitende Maßnahmen.

Eine große Registerzahl von mindestens 32 allgemein verwendbaren Registern ist vorhanden.

Der Zugriff auf den Speicher erfolgt nur über Lade-/Speicherbefehle.

Page 4: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

4Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Register-Register-Architektur (auch Load/Store Architecture genannt)

Zugriff auf den Speicher nur über Lade-/Speicherbefehle.

Alle anderen Befehle, d.h. insbesondere auch die arithmetischen Befehle, beziehen ihre Operanden aus den Registern und speichern ihre Resultate in Registern.

Prinzip der Register-Register-Architektur ist für RISC-Rechner kennzeichnend und hat sich heute bei allen neu entwickelten Prozessorarchitekturen durchgesetzt.

Page 5: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

5Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Weitere Charakteristika von RISC

* möglichst alle Befehle sollten so implementierbar sein, dass pro Prozessortakt die Ausführung eines Maschinenbefehls beendet wird.

* Konsequenz: bei der Implementierung wird auf Mikroprogrammierung verzichtet und statt dessen das Befehls-Pipelining eingesetzt.

* Weiterhin bei den frühen RISC-Rechnern wurde die Überwachung der Befehlspipeline von der Hardware in die Software verlegt.

Page 6: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

6Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Frühe RISC-Rechner

IBM 801-Projekt: 1975 unter Leitung von Cocke am IBM-Forschungszentrum in Yorktown Heights

MIPS-Projekt: 1981 von Hennessy an der Universität von Stanford begonnen. Der erste funktionsfähige Chip in NMOS-VLSI-Technik wurde 1983 fertig. Aus dem Stanford MIPS-Projekt ging die Firma MIPS hervor.

Berkeley RISC-Projekt: 1980 an der Universität in Berkeley begonnen, Daraus gingen der SPARC-Prozessor und Nachfolger hervor.

Page 7: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

7Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.3 Einfache Prozessoren und Prozessorkerne

Grundkonzept des von-Neumann-Prinzips

Verbindungseinrichtung

Steuer- werk

Rechen- werk

Ein-/Aus- gabesystem

Haupt- speicher

Prozessor

Page 8: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

8Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Überlappende Befehlsausführung

Befehl n:

Bereitstellung

u. Decodierung

Befehl n:

Ausführung

Befehl n+1:

Bereitstellung

u. Decodierung

Befehl n+1:

Ausführung

Befehl n+2:

Bereitstellung

u. Decodierung

Zeit

Page 9: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

9Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.3.4 Grundlegende Pipeline-Stufen

Pipelining — „Fließband-Bearbeitung“

„ Pipelines beschleunigen die Ausführungsgeschwindigkeit eines Rechners in gleicher Weise wie Henry Ford die Autoproduktion mit der Einführung des Fließbandes revolutionierte.“

(Peter Wayner 1992)

Page 10: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

10Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Pipelining

Unter dem Begriff Pipelining versteht man die Zerlegung einer Maschinenoperation in mehrere Phasen, die dann von hintereinander geschalteten Verarbeitungseinheiten taktsynchron bearbeitet werden, wobei jede Verarbeitungseinheit genau eine spezielle Teiloperation ausführt.

Die Gesamtheit dieser Verarbeitungseinheiten nennt man eine Pipeline.

Page 11: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

11Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Pipeline-Stufen und Pipeline-Register

Takt

Eingabe Ausgabe

Registe

r

S1

Registe

r

S2 Sk

Registe

r

Registe

r

Page 12: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

12Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4 Phasen der Befehlsausführung einer fünfstufigen Befehlspipeline

Befehl bereitstellen, Befehl decodieren, Operanden (in den Pipeline-Registern) vor der ALU bereitstellen, Operation auf der ALU ausführen und das Resultat zurückschreiben

Befehlspipeline eines Rechners: Die Befehlsbearbeitung wird in n funktionelle Einheiten gegliedert. Ausführung geschieht überlappt.

Page 13: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

Grundlegendes Befehlspipelining: DLX-Pipeline

ID -- Instruction Decode/Register Fetch

EX -- Execute/Address Calculation IF

MEM -- Memory Access

ID

WB -- Write Back

EX MEM WB

IF -- Instruction Fetch

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

5-Deep

Current CPU Cycle

Master Clock Cycle

Page 14: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

14Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Phasen der Befehlsausführung einer fünfstufigen Befehlspipeline

Befehlsbereitstellungsphase (Instruction Fetch): Der Befehl, der durch den Befehlszähler adressiert ist, wird aus dem Hauptspeicher oder dem Cache-Speicher in einen Befehlspuffer geladen. Der Befehlszähler wird weitergeschaltet.

Decodier- und Operandenbereitstellungsphase (Decode/Operand fetch): Aus dem Operationscode des Maschinenbefehls werden prozessorinterne Steuersignale erzeugt (1. Takthälfte). Die Operanden werden aus Registern bereitgestellt (2. Takthälfte).

Ausführungsphase (ALU Operation): Die Operation wird auf den Operanden ausgeführt. Bei Lade-/Speicherbefehlen wird die effektive Adresse berechnet.

Speicherzugriffsphase (memory access): Der Speicherzugriff wird durchgeführt.

Resultatspeicherphase (Write Back): Das Ergebnis wird in ein Register geschrieben (1. Takthälfte).

Page 15: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

20Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Diskussion

Die Zykluszeit der Pipeline wird vom kritischen Pfad diktiert: der langsamsten Pipeline-Stufe.

Alle Stufen der DLX-Pipeline nutzen verschiedene Ressourcen.

Im Idealfall wird in jedem Takt ein Befehl in die Pipeline eingefüttert. (CPI=1).

- Das ist wegen der auftretenden Pipeline-Konflikte häufig nicht der Fall.

Page 16: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

21Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.3 Pipeline-Konflikte - drei Arten von Pipeline-Konflikten

Pipeline-Konflikt: die Unterbrechung des taktsynchronen Durchlaufs der Befehle durch die einzelnen Stufen einer Befehls-Pipeline.

Datenkonflikte: ein Operand ist in der Pipeline (noch) nicht verfügbar.

- Datenkonflikte werden durch Datenabhängigkeiten im Befehlsstrom erzeugt

Struktur- oder Ressourcenkonflikte treten auf, wenn zwei Pipeline-Stufen dieselbe Ressource benötigen, auf diese aber nur einmal zugegriffen werden kann.

Steuerflusskonflikte treten bei Programmsteuerbefehlen auf, - wenn in der Befehlsbereitstellungsphase die Zieladresse des als nächstes

auszuführenden Befehls noch nicht berechnet ist bzw. - Wenn im Falle eines bedingten Sprunges noch nicht klar ist, ob überhaupt

gesprungen wird.

Page 17: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

22Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.4 Datenkonflikte und deren Lösungsmöglichkeiten

Man betrachte zwei aufeinander folgende Befehle Inst1 und Inst2

Es besteht eine echte Datenabhängigkeit (true dependence) t von Inst1 zu Inst2, wenn Inst1 seine Ausgabe in ein Register Reg (oder in den Speicher) schreibt, das von Inst2 als Eingabe gelesen wird.

Es besteht eine Gegenabhängigkeit (antidependence) a von Inst1 zu Inst2, falls Inst1 Daten von einem Register Reg (oder einer Speicherstelle) liest, das anschließend von Inst2 überschrieben wird.

Es besteht eine Ausgabeabhängigkeit (output dependence) o von Inst2 zu Inst1, wenn beide in das gleiche Register Reg (oder eine Speicherstelle) schreiben und Inst2 sein Ergebnis nach Inst1 schreibt.

Gegenabhängigkeiten und Ausgabeabhängigkeiten werden auch falsche Datenabhängigkeiten oder Namensabhängigkeiten genannt.

Page 18: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

Abhängigkeitsgraph

S1:ADD R1,R2,2 ; R1 = R2+2S2:ADD R4,R1,R3 ; R4 = R1+R3S3:MULT R3,R5,3 ; R3 = R5*3S4:MULT R3,R6,3 ; R3 = R6*3

S1

S2

S3

S4

True Dependence

Anti Dependence

Output Dependence

t

a

o

a

Page 19: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

24Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Datenkonflikte

Datenabhängigkeiten zwischen zwei Befehlen können Datenkonflikte verursachen, wenn die beiden Befehle so nahe beieinander sind, dass ihre Überlappung innerhalb der Pipeline ihre Zugriffsreihenfolge auf ein Register oder einen Speicherplatz im Hauptspeicher verändern würde.

drei Arten von Datenkonflikten: Ein Lese-nach-Schreibe-Konflikt (Read After Write, RAW) wird durch eine

echte Datenabhängigkeit verursacht Ein Schreibe-nach-Lese-Konflikt (Write After Read, WAR) wird durch eine

Gegenabhängigkeit verursacht Ein Schreibe-nach-Schreibe-Konflikt (Write After Write, WAW) wird durch

eine Ausgabeabhängigkeit verursacht

Page 20: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

25Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

IF ID EX MEM

load Reg1,A

load Reg2,B

add Reg2,Reg1,Reg2

mul Reg1,Reg2,Reg1

IF ID EX MEM

IF ID EX MEM

IF ID EX MEM WB

WB

WB

WB

timecycle time

Datenkonflikte in einer Befehls-Pipeline

Page 21: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

26Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Software-Lösungen für Datenkonflikte

Software-Lösungen (Compiler scheduling)- no-op Befehle einfügen- Befehlsanordnung (instruction scheduling oder pipeline

scheduling): Befehlsumordnungen, um no-ops zu entfernen

Page 22: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

27Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Hardware-Lösungen für Datenkonflikte

Konflikt muss per HW entdeckt werden!!Hardware-Lösungen:

- Leerlauf der Pipeline: Die einfachste Art, mit solchen Datenkonflikten umzugehen ist es, Inst2 in der Pipeline für zwei Takte anzuhalten. Auch als Pipeline-Sperrung (interlocking) oder Pipeline-Leerlauf (stalling) bezeichnet.

- Forwarding: Wenn ein Datenkonflikt erkannt wird, so sorgt eine Hardware-Schaltung dafür, dass der betreffende Operand nicht aus dem Universalregister, sondern direkt aus dem ALU-Ausgaberegister der vorherigen Operation in das ALU-Eingaberegister übertragen wird.

- Forwarding with interlocking: Forwarding löst nicht alle möglichen Datenkonflikte auf.

Page 23: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

28Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.5 Steuerflusskonflikte und deren Lösungsmöglichkeiten

Steuerflussabhängigkeiten verursachen Steuerflusskonflikte in der DLX-Pipeline, da der Programmsteuerbefehl erst in der ID-Stufe als solcher erkannt und damit bereits ein Befehl des falschen Programmpfades in die Pipeline geladen wurde.

Zu den Programmsteuerbefehlen gehören:- die bedingten und die unbedingten Sprungbefehle, - die Unterprogrammaufruf- und -rückkehrbefehle sowie - die Unterbrechungsbefehle

Nach bedingten Sprüngen, die genommen werden, startet die Befehlsfolge mit drei Takten Latenz (Verzögerung).

Allerdings sind schon drei Befehle des falschen Pfads in der Pipeline.

Page 24: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

29Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

branchinstruction

branch targetinstruction

IF ID EX MEM

IF ID EX MEM WB

WB

time

PC

three bubbles

Leertakte nach einem genommenen bedingten Sprung

Page 25: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

30Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Lösung: Sprungrichtung schneller entscheiden

Sprungrichtung so schnell als möglich entscheiden und Zieladresse so schnell als möglich berechnen.

Am besten bereits in der ID-Stufe nur noch ein Takt Latenz

Page 26: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

31Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Software-Lösungen

Verzögerte Sprungtechnik (delayed branch technique): Der Compiler füllt die Verzögerungszeitschlitze (delay slots).

- Ausfüllen der Verzögerungszeitschlitze mit Leerbefehlen. - Statische Befehlsanordnung: Füllen mit Befehlen, die in

der logischen Programmreihenfolge vor dem Sprung liegen

Angewandt in der ersten Generation von RISC-Prozessoren, z.B. IBM 801, MIPS, RISC I, SPARC.

In superskalaren Prozessoren, die mehr als einen Befehl holen und gleichzeitig verarbeiten können, erschwert die verzögerte Sprungtechnik die Befehlszuordnungslogik und die Implementierung präziser Unterbrechungen.

Page 27: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

32Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Hardware-Lösungen

Pipeline-Leerlauf (Interlocking): einfachste, aber ineffizienteste Methode Spekulation auf nicht genommene bedingte Sprünge:

- die direkt nach dem Sprungbefehl stehenden drei Befehle werden in die Pipeline geladen

- Falls die Sprungbedingung zu „genommen“ ausgewertet wird, müssen die drei Befehle wieder gelöscht werden und wir erhalten die üblichen drei Takte Verzögerung.

- Falls der Sprung nicht genommen wird, so können die drei Befehle als Befehle auf dem gültigen Pfad weiterverarbeitet werden, ohne dass ein Leertakt entsteht.

- Diese Technik stellt die einfachste der sogenannten statischen Sprungvorhersagen dar.

Page 28: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

33Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.6 Sprungzieladress-Cache

Sprungzieladress-Cache (Branch-target Address Cache, BTAC) oder Sprungzielpuffer (Branch-target Buffer, BTB):

ein kleiner Cache-Speicher, auf den in der IF-Stufe der Pipeline zugegriffen wird,

enthält Paare von Spungbefehls- und Sprungzieladressen.

Page 29: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

34Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Sprungzieladress-Cache

... ... ...

B ran ch ad d ress Ta rg e t ad d ressP red ic tio n b its

Page 30: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

35Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.8 Strukturkonflikte und deren Lösungsmöglichkeiten

Struktur- oder Ressourcenkonflikte treten in unserer einfachen DLX-Pipeline nicht auf.

Einen Strukturkonflikt kann man demonstrieren, wenn man unsere DLX-Pipeline leicht verändert:

- Wir nehmen an, die Pipeline sei so konstruiert, dass die MEM-Stufe in der Lage ist ebenfalls auf den Registersatz zurückzuschreiben.

Page 31: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

36Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

load Reg2,A

mul Reg3,Reg4,Reg5

IF ID EXMEM

IF ID EX MEM WB

WB

timecycle time

Register file

WB

WB

Ein Strukturkonflikt, der durch eine veränderte Pipeline-Organisation verursacht wird

Page 32: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

37Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

Hardware-Lösungen zur Vermeidung von Strukturkonflikten

Arbitrierung mit Interlocking: Die Arbitrierungslogik erkennt den Strukturkonflikt und hält den im Programmfluss späteren der beiden um die Ressource konkurrierenden Befehle an.

Übertaktung: die Ressource, die den Strukturkonflikt hervorruft, schneller zu takten als die übrigen Pipeline-Stufen.

- In diesem Fall könnte die Arbitrierungslogik zweimal auf die Ressource zugreifen und die Ressourcenanforderungen in der Ausführungsreihenfolge erfüllen

Ressourcenreplizierung: Vervielfachen von Hardware-Ressourcen.

Page 33: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

38Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.4.9 Ausführung in mehreren Takten

Problem Mehrtaktbefehle

mögliche Lösungen:- Pipeline anhalten: Die einfachste Weise, mit einem solchen

Strukturkonflikt umzugehen, ist es, Inst2 in der Pipeline anzuhalten, bis Inst1 die EX-Stufe verlässt

- Ressourcen-Pipelining: EX-Stufe selbst als Pipeline implementieren- die EX-Stufe kann in jedem Takt einen neuen Befehl entgegen

nehmen (der Durchsatz ist 1). - Ressourcenreplizierung: z. B. mehrere Ausführungseinheiten

Page 34: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

39Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

2.5 Weitere Aspekte des Befehls-Pipelining

Super-Pipelining, heute meist mit dem Vorhandensein einer „langen“ Befehls-Pipeline gleichgesetzt

zwei Trends: - kurze Befehls-Pipelines von 4 – 6 Stufen (Bsp. PowerPC-

Prozessoren) und - lange Befehls-Pipelines von 7 – 20 Stufen (Bsp. MIPS-Prozessoren,

Alpha-Prozessoren, SuperSPARC und UltraSPARC, Pentium III und Pentium 4).

Gleitkommaeinheiten: meist dreistufige Pipelines für Gleitkommaoperationen

Vektor-Pipelines: mit einem Vektorbefehl wird eine Anzahl von Gleitkommaoperationen auf den Wertepaaren aus zwei Arrays („Vektoren“) von Gleitkommazahlen ausgelöst

Bei einer Gleitkommaeinheit löst ein Gleitkommabefehl nur die Ausführung einer Gleitkommaoperation auf einem einzelnen Paar von Gleitkommazahlen aus.

Page 35: Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer 1 2 Grundlegende Prozessortechniken Prozessorarchitektur.

40Universität Karlsruhe - Prof. Dr. U. Brinkschulte Universität Augsburg - Prof. Dr. Th. Ungerer

RISC - superskalar

RISC-Prozessoren, die das Entwurfsziel von durchschnittlich einer Befehlsausführung pro Takt (CPI – cycles per instruction oder IPC – instructions per cycle von eins) erreichen, werden als skalare RISC-Prozessoren bezeichnet.

Die Superskalar-Technik ermöglicht es heute, pro Takt bis zu vier Befehle den Ausfürungseinheiten zuzuordnen und eine gleiche Anzahl von Befehlsausführungen pro Takt zu beenden.

Solche Prozessoren werden als superskalare (RISC)-Prozessoren bezeichnet, da die oben definierten RISC-Charakteristika auch heute noch weitgehend beibehalten werden.

Heutige Mikroprozessoren nutzen Befehlsebenenparallelität durch die Pipelining- und Superskalartechnik.