Präsentation zur Vorlesung

Transcrição

Präsentation zur Vorlesung
Designprinzipien moderner Prozessoren
Wahlpfichtfach am Fachbereich Informatik
SS 2011
G. Fröhlich
05.04.2011
Designprinzipien moderner
Prozessoren
1
1964: Complex Intruction Set Computer
(CISC)- Argumente für grosse Befehlssätze :
„
„
„
„
„
Komplexe Befehle vereinfachen den Compiler. Begründung: die
optimale Ausnutzung vieler Register ist schwierig. Im Falle von stackoder speicherorientierten Architekturen wird mehr Komplexität
unterhalb der Maschinenprogrammebene (im Mikrocode) verborgen.
Komplexe Befehle schließen die semantische Lücke zwischen
Hochsprache und Maschinensprache. Fernziel war eine Maschine, die
direkt Hochsprachen verarbeiten konnte.
Komplexe Befehle verringern den Speicherbedarf.
Je kürzer der Code ist, desto schneller läuft das Programm.
Je mehr Funktionalität unterhalb der Maschinensprache angesiedelt
wird, desto zuverlässiger wird ein Computer, denn: Hardware ist
sicher, Software enthält Fehler.
05.04.2011
Designprinzipien moderner
Prozessoren
2
Register-Register, Register-Speicher und
Speicher-Speicher Architekturen
„
Komplexe Befehle benötigen eine Speicher-Speicher Architektur.
Deshalb eine Gegenüberstellung der 3 Modelle: Register-Register,
Register-Speicher und Speicher-Speicher Architekturen
„ Beispiel: Realisierung der Anweisung A:=B+C (Hochsprache).
„ Register-Register
Register Speicher
Speicher-Speicher
8
Load
4
rB
16 bit
B
8
16 bit
8
Load
rC
C
Load
B
Add
Add
rA
rC
Add
rC
Store
rA
A
Store
A
rB
16
B
16
C
16
A
Wie man sieht, benötigt die Speicher-Speicher Architektur für diese Instruktion
nur 56 bit, während die Register-Register Architektur 104 bit benötigt. Deshalb
verringern komplexe Befehle den Speicherbedarf für Programme.
05.04.2011
Designprinzipien moderner
Prozessoren
3
Beispiele
„
„
Motorola 6502 (1975)
Register-Speicher
Architektur
IBM/360 (1964)
Speicher-Speicher Architektur
Das obige Beispiel wie folgt:
Die IBM /360 kennt SpeicherSpeicher Befehle, so daß mit
einem Befehl eine Zeichenkette im
Speicher auf eine andere Adresse
kopiert werden kann. Beim Befehl
VA = $1F0 Datendeklaration
VB = $1F1
VC = $1F2
LDA VB
MVC (R2),Len,(R6)
Lade Variable B in
Akkumulator
ADD VC
Lade Variable C und
addiere mit B (im
Akkumulator)
STA VA
Schreibe Ergebnis
(im Akkumulator) auf
die Variable A
05.04.2011
ist die Adresse des Quellstrings in
Register R6 abgelegt und die
Adresse des Zielstrings in Register
R2. Len enthält die Anzahl Bytes,
die kopiert werden
Designprinzipien moderner
Prozessoren
4
Befehlssatzarchitekturen
„
Im Zusammenhang mit dem 1. Argument für grosse Befehlssätze
ergibt sich die Frage, wieviel sind eigentlich viele Register bevor man
klären kann, was das mit dem Compiler zu hat
„ Es hängt davon ab, welche Befehlssatz-Architektur auf einem
Computer implementiert ist. Es gibt unterschiedliche BefehlssatzArchitekturen, die sich hauptsächlich darin unterscheiden, wie die
Operanden auf der CPU gespeichert werden. Die Hauptvarianten sind
ein Stack, ein Akkumulator oder ein Registersatz. Die Operanden in
Stack-Architekturen sind implizit an der Spitze des Stack enthalten; in
einer Akkumulator-Architektur ist ein Operand implizit der
Akkumulator. Universalregister-Architekturen haben nur explizite
Operanden - entweder Register oder Speicherplätze.
05.04.2011
Designprinzipien moderner
Prozessoren
5
Befehlssatzarchitekturen
Bereitgestellter Rechner/
temporärer
ProzessorSpeicher
Beispiele
Befehlsbeispiele
Explizite
Ziel für Art des Zugriffs zu
OperanErgebnis expliziten
den
pro se
Operanden
ALUBefehl
Stack
B5500, HP PUSH B, PUSH C, ADD, 0
3000/70
POP A
(Beispiel von oben : A =
B+C)
Stack
Akkumulator
PDP-8, Intel ADC 00FF
8085,
ADC (00FF),Y
Motorola
6502
Akkumu- Laden/Speichern
lator
Akkumulator
Registersatz
IBM 360,
DEC VAX
und alle
heute
aktuellen
Prozessoren
05.04.2011
1
ADDL3 R1,737(R2),#456 2 oder 3
(Addiere den Inhalt der
Adresse
737+dem
Displacement von R2
die Zahl 456 und lege sie
in Reg. 1 ab.
Designprinzipien moderner
Prozessoren
Push und
zum oder
Stack
Pop
vom
Register Laden/Speichern
oder
von Registern
Speicher oder dem
Speicher.
6
Designprinzipien der 70ger Jahre
„
„
„
„
„
Befehlssätze sind groß und mikroprogrammiert.
Befehle sind komplex, denn Mikrobefehlsabarbeitung ist schneller als
normaler Maschinencode.
Die Befehlslänge ist variabel.
Register sind altmodisch. Auf sie kann gegebenenfalls zugunsten von
Stack- oder Speicher-Speicher-Architekturen ganz verzichtet werden.
Caches, wenn überhaupt vorhanden, sind sehr viel kleiner als die
Mikroprogrammspeicher.
IBM 370/168
VAX 11/780
Dorado
iAPX 432
Jahr
1973
1978
1978
1982
Befehlszahl
208
303
270
222
CM-Größe (Kbit)
420
480
136
64
Befehlslänge (bit)
16-24
16-456
8-24
6-321
Ausführungsmodell
Reg-Reg
Sp-Sp
Reg-Sp
Reg-Reg
Sp-Sp
Reg-Sp
Stack
Stack
Sp-Sp
Cache-Größe (Bit)
64
64
64
0
05.04.2011
Designprinzipien moderner
Prozessoren
7
Änderung der Randbedingungen (ab 1980)
„
Die Verbreitung des Halbleiterspeichers auch als Hauptspeicher
verringerte die Differenz bei den Zugriffszeiten zwischen
Mikrocode-ROM und Hauptspeicher. Maschinencode-Zugriffe
waren nicht mehr 10 mal langsamer als Mikroprogrammzugriffe!
„ Cache Speicher verringerten die effektive Hauptspeicherzugriffszeit und reduzierten damit die Lücke zwischen CM- und
Hauptspeicherzugriff noch weiter.
„ Bei einer genauen, quantitativen Betrachtung der Programmausführungszeiten wurde klar, daß nicht nur die Anzahl der
Befehle pro Programm, sondern auch die Anzahl der Taktzyklen
pro Befehl in die Zeit eingehen. Diese Zahl ist bei mikroprogrammierten Maschinen viel größer als bei solchen mit
hardwired control.
„ Mit Verbilligung der Speicherbausteine wurde das Optimierungsziel der Speicherplatzverringerung zweitrangig.
05.04.2011
Designprinzipien moderner
Prozessoren
8
Änderung der Randbedingungen
„
Die erhoffte höhere Zuverlässigkeit der "Hardware" war nicht
realisierbar, denn das unter der Maschinenbefehlsebene
liegende Mikroprogramm (die sogenannte Firmware) ist nichts
anderes als in Silizium gegossene Software. 400.000 Bit Firmware sind nie fehlerfrei, aber schwer zu ändern
„ Die komplexen Befehle, die eigentlich die Compiler vereinfachen sollten, wurden kaum genützt. Compiler verwendeten
nur Subsets der großen Befehlssätze.
05.04.2011
Designprinzipien moderner
Prozessoren
9
Die RISC Ursprünge: Neue Design-Prinzipien
„
„
„
„
„
Neues Optimierungsziel: Geschwindigkeit der Prozessoren
Methode: Verringerung der Anzahl Taktzyklen pro Befehl
Vorraussetzung: kleine, einfache und regelmäßige Befehlssätze –
Reduced Instruction Set Computer (RISC)
Daraus folgen neue Designprinzipien:
Regel: Mehr als 90% der ausgeführten Befehle sind einfach. Die
Unterstützung der restlichen 10% durch komplexe Maschinenbefehle
erhöht wahrscheinlich die Zykluszeit, verlangsamt also die 90%.
10% der Befehle schneller zu machen mit der Folge der Verlangsamung von 90% ist nicht vertretbar, da dies die Gesamtleistung
senkt. Folge: Vor Einführung eines neuen komplexen Befehls ist
nachzuweisen, daß er im Mittel mehr Zyklen einspart als er an
Verlusten verursacht.
Festverdrahtete Steuerungen erlauben niedrigere Zyklenzahlen pro
Befehl als mikroprogrammierte. Voraussetzung dafür sind kleine
Befehlssätze und vor allem wenige und regelmäßige Befehlsformate.
05.04.2011
Designprinzipien moderner
Prozessoren
10
Die RISC Ursprünge: Neue Design-Prinzipien
„
Die effektivste Maßnahme zur Reduktion der Zyklenzahl ist das
Pipelining, also die zeitlich überlappte Abarbeitung des Befehlszyklus.
Einfache Befehle eignen sich besser für Pipelines.
„ Compiler sollten aus komplexen Befehlen (Hochsprache) einfache
(Maschinensprache) erzeugen. RISC-Compiler tun genau das. CISCCompiler stehen häufig vor dem Problem, einen komplexen Befehl in
einen anderen ähnlich komplexen, aber nicht genau passenden
umzuwandeln.
„ RISC-Prozessoren benötigen in Folge der einfacheren Maschinenbefehle häufigere Zugriffe zum Befehlsspeicher. Um daraus keinen
Nachteil entstehen zu lassen, sind effiziente Speicherhierarchien unter
Einsatz von Cache-Speichern notwendig.
„ Der Datenverkehr zwischen Hauptspeicher und Prozessor wird, neben
dem Einsatz von Caches, reduziert durch die Lokalhaltung von Daten
in großen On-Chip-Registersätzen.
05.04.2011
Designprinzipien moderner
Prozessoren
11
Die RISC Ursprünge: Neue Design-Prinzipien
1. Was
sind
regelmäßige
Befehlsformate ?
und
unregelmäßige
2. Was sind Befehlspipelines ?
3. Was sind Speicherhierarchien ?
4. Was sind Caches ?
5. Was sind On-Chip Registersätze ?
05.04.2011
Designprinzipien moderner
Prozessoren
12
Befehlsformate – IBM 360
RR-Format
RegisterRegister
Opcode
R1
R2
Opcode
R1
X2
B2
D2
R1 ←R1 op
M[X2+B2+D2]
RS-Format
RegisterSpeicher
Opcode
R1
R3
B2
D2
R1 ←M[B2+D2] op R3
SI-Format
SpeicherImmediate
Opcode
immediate
B1
D1
M[B1+D1] ←immediate
SS-Format
SpeicherSpeicher
Opcode
Länge
B1
D1
RXFormat
Register
Indexiert
B2
D2
M[B1+D1] ←
M[B1+D1] op
M[B2+D2]
Die Unterschiede bei den Befehlsformaten ergeben sich aus dem Typ
und der Anzahl der Operanden : Register und Register, Register und
Speicher etc. CISC heist: Unterschiedliche Befehlslängen und viele
Formate, die aufwendig zu dekodieren sind.
05.04.2011
Designprinzipien moderner
Prozessoren
13
Befehlsformate – Alpha 21064
31 26
25 21
20 16
Opcode
„
„
„
„
„
15
3
0
Number
Opcode
RA
Opcode
RA
RB
Opcode
RA
RB
PAL-CodeFormat
Branch-Displacement
Displacement
Function
RC
Branch
Format
Memory
Format
Operate
Format
Einheitliche Befehlslänge von 32 Bit. Jeder Befehl benötigt die gleiche
Anzahl von Holezyklen.
Opcode und RA stehen immer an der selben Bitposition -> leicht und
damit schnell dekodierbar
Unterscheidung der Befehlsformate nach der Funktion der Befehle
Das Memory Format realisiert die Load Store Architektur
Alle arithmetischen und logischen Befehle arbeiten ausschliesslich mit
Registern (Operate Format)
05.04.2011
Designprinzipien moderner
Prozessoren
14
Befehlssatzmessungen
statisch
dynamisch
70%
61%
60%
50%
40%
30%
28%
30%
19%
17%
20%
14%
6%
10%
0%
0%
Gleitkomma-Operationen
Verzweigungen
ALU-Operationen
Befehle mit Speicherzugriff
Die 20 am häufigsten ausgeführten Befehle wurden in vier Klassen eingeteilt. Sie
zeigen, wie unterschiedlich das statische und dynamische Erscheinungsbild sein
kann. Im Falle der dynamischen Messungen machen diese 20 Befehle nahezu 100%
der Befehlsausführung aus, jedoch nur 75% der statischen Werte.
05.04.2011
Designprinzipien moderner
Prozessoren
15
Befehlssatzmessungen – Zeitverteilung und
Häufigkeitsverteilung
Befehlsfolge
nach
Häufigkeit
Häufigkeit in %
Befehlsfolge
nach
Zeitverteilung
Zeitanteil in %
L, LR
19
ZAP
16
BC, BCR
14
AP
16
AP
11
MP
13
ZAP
9
MVC
9
MVC
7
CVD
5
Zeitverteilungen sind besonders wichtig bei Architekturen wie
der VAX, bei der die Zahl der Zyklen für einen Befehl zwischen
einem und mehreren hundert variieren kann. Der Unterschied
zwischen Häufigkeitsverteilung und Zeitverteilung existiert nicht
bei einfachen LOAD/STORE Architekturen.
05.04.2011
Designprinzipien moderner
Prozessoren
16
Befehlssatzmessung – ein Beispiel
„
Der Befehlssatz der VAX besteht aus 303 zum Teil sehr komplexen
Befehlen. Die Frage ist, in welcher Häufigkeitsverteilung die Befehle
vorkommen. Denn wenn man eine Maschine optimieren will, sollte die
Architektur für die am häufigsten vorkommenden Befehle optimal
sein. Die VAX wird hier als Beispiel für die CISC Maschinen
verwendet, weil es zu ihr sehr eingehende Untersuchungen gibt.
„ Bei Benchmark-Untersuchungen mit den Programmen SPICE,
COBOLX, TeX und GCC stellte sich heraus, das 27 Befehle
durchschnittlich 88% der ausgeführten Befehle ausmacht. Der Rest der
Verteilung ist lang. Es gibt viele Befehle mit einer Häufigkeit von 0,5
bis zu 1,0% . Im SPICE machen die oberen 15 Befehle 90% der
ausgeführten Befehle aus, und die oberen 26 tragen zu 95% bei. Es
gibt jedoch 149 unterschiedliche Befehle, die wenigstens einmal
ausgeführt werden
05.04.2011
Designprinzipien moderner
Prozessoren
17
Befehlssatzmessung – ein Beispiel
„
DEC setzte diese Ergebnisse beim Entwurf der MicroVAX 32 um. Es
wurden nur noch die am häufigsten benutzten Befehle implementiert.
Die restlichen Instruktionen wurden über Softwareroutinen realisiert.
Die CPU der MicroVAX paßte dadurch auf einen Chip und erzielte mit
nur 64 KBit Microcode und 101 K Transistoren praktisch die gleiche
Leistung wie die VLSI VAX, die für den vollen Befehlssatz (303
Instruktionen) 480KBit Microcode und 1250 K Transistoren benötigte.
IBM erreichte damals mit einem PL/8 Compiler, der nur die RegisterRegister Teilmenge des System /370-Befehlssatzes unterstützte, eine
um 50 % gesteigerte Durchsatzleistung.
05.04.2011
Designprinzipien moderner
Prozessoren
18
Befehlssatzmessung – ein Beispiel
voller Befehlssatz
(VLSI VAX)
implementierte
Befehle
100%
80%
Größe des
Steuerspeichers (Bit)
480 K
64 K
% der Leistung einer
VAX-11/780
100
90
9
2
Anzahl der Chips
eines Prozessors
„
Subset-Befehlssatz
(Micro-VAX 32)
20 % der VAX-Befehle sind verantwortlich für 60% des
Mikrocodes, werden aber nur zu 0,2 % der Zeit abgearbeitet.
05.04.2011
Designprinzipien moderner
Prozessoren
19
Die RISC Philosophie
„
RISC-Prozessoren sind einfach in dem Sinne, daß nur solche
Komponenten (Befehle, Register, Busse etc.) verwendet werden, die
nachweisbar die Leistung im Vergleich zur nötigen
Komplexitätserhöhung hinreichend vergrößern.
– Alle Resourcen werden zur Unterstützung häufig gebrauchter Funktionen
eingesetzt, notfalls auf Kosten der selteneren.
„
Neuere RISC-Prozessorern zeigen, dass Einfachheit nicht niedrige
Komplexität bedeutet; das galt nur für die ersten Vertreter der RISCProzessoren.
05.04.2011
Designprinzipien moderner
Prozessoren
20
Die RISC Philosophie - Architekturmerkmale
„
„
„
„
„
„
„
Ein-Zyklus Operationen
LOAD-STORE-Architektur.
Verzicht auf die Mikrobefehlsebene.
wenige Befehle
weniger Befehlstypen und Adressierungsarten. Konzentration auf
wirklich erforderliche und einfach zu realisierende Befehlstypen und
Adressierungsmodi.
möglichst einheitliches Befehlsformat zur schnellen Befehlsdekodierung ( gleichbleibender inhaltlicher Bedeutung der Bitfelder) .
Aufwandsverlagerung von der Hardware in den Compiler, von der
Laufzeit in die Compile-Zeit. Delegation von Steuerungsaufgaben an
optimierende Compiler.
05.04.2011
Designprinzipien moderner
Prozessoren
21
Adressierungsarten
Adressierungsart
Beispiel
Wirkung
Anwendung
Register
ADD R4,R3
R4←R4+R3
Wert ist im Register
Immediate oder Literal
Add R4,#3
R4←R4+3
Operand ist eine Konstante (Ineinigen Maschinen sind
Immediate und Literal zwei verschiedene
Adressierungsarten
Displacement oder Based
Add R4,100(R1)
R4←R4+M[100+R1]
Zugriff zu lokalen Variablen
Register indirekt
Add R4, (R1)
R4←R4+M[R1]
Register dient als Pointer (Zeiger)
Indexiert
Add R3,(R1+R2)
R3←R3+M[R1+R2]
Manchmal nützlich für Feldadressierung - R1 = Basis des
Feldes, R2=Index des Feldes
Direkt oder absolut
Add R1 (1001)
R1←R1+M[1001]
Zugriff zu statischen Daten, notwendige Adreßkonstante kann
groß sein.
Speicherindirekt
Add R1, @(R3)
R1←R1+M[M[R3]]
Speicherplatz dient als Pointer
Autoinkrement
Add R1, (R2)+
R1←R1+M[R2]
R2←R2 + d
Für Zugriff zu Feldern in Schleifen nützlich. R2 zeigt auf den
Anfang eines Feldes; jeder Zugriff erhöht R2 um die
Länge d eines Elementes
Autodekrement
Add R1, -(R2)
R2←R2 -d
R1←R1+M[R2]
Dieselbe Anwendung wie Autoincrement. Beide können auch
zur Implementierung der Stackoperationen PUSH und
POP verwendet werden.
Skaliert oder indexiert
Add R1,100(R2)[R3]
R1←R1+M[100+R2+R3*d]
Indexierung von Feldern mit Datentypen der Länge d
05.04.2011
Designprinzipien moderner
Prozessoren
22
Adressierungsarten
„
Prozentualer Anteil der Adressierungsarten bei IBM 360
„ Die einfachen Adressierungsarten werden am häufigsten eingesetzt.
Der Verzicht auf die komplexen, langsamen Adressierungsarten bei
RISC ist weniger bedeutsam als vermutet.
40,00%
35,00%
30,00%
25,00%
20,00%
15,00%
10,00%
5,00%
0,00%
05.04.2011
Speicherindirekt
Skaliert
Registerindirekt
Immediate
Designprinzipien moderner
Prozessoren
Displacement
23
Performance Berechnung
Performance oder Geschwindigkeit ist das neue Optimierungsziel für
Prozessoren.
Begriffsbestimmung Performance:
„
„
„
„
„
Ideale Performance. Die CPU wird mit einem regelmäßig im Abstand
tc auftretenden Clock-Signal versorgt. Alle Aktionen der CPU können
im Vielfachen dieser Taktzeit tc gemessen werden.
Der Kehrwert von tc ist die Taktfrequenz fc = 1/tc
Beispiele: Taktfrequenz und Taktzeit.
fc = 500 MHz tc = 2 ns
fc =1000 MHz tc = 1 ns
05.04.2011
Designprinzipien moderner
Prozessoren
24
Performance –
Befehlsausführung
Adreßbus
fC
CPU
Datenbus
Hauptspeicher
Controlbus
1. A -- Befehlsadresse
CPU legt Befehlsadresse auf Adreßbus A
2. D -- Befehl
HS legt adressiertes Befehl auf Datenbus
3. Decodieren
Die CPU decodiert den Befehl
4. A – Operanden-adresse
CPU legt Operanden-adresse auf Adr-Bus
5. D -- Operand
HS legt Operand auf D-Bus
6. Befehlsausführung
CPU führt Verarbeitung aus
7. A – Ergebnis-adresse
CPU legt Ergebnisadresse auf Bus A
8. D -- Ergebnis
CPU legt Ergebnis auf D
weiter bei 1.
05.04.2011
Designprinzipien moderner
Prozessoren
25
Performance - Befehlsausführung
Die 8 Schritte der Befehlsausführung kann man in 5 Phasen aufteilen.
Jede Phase benötigt eine bestimmte Anzahl Taktzyklen mit der Zeit
tc
Schritt
1 und 2
3
4 und 5
6
7 und 8
Kürzel
BH
(IF)
BD (R)
OH (R)
BA (EX)
ES (WB)
Inhalt
Befehl
holen
Befehl
dekodieren
Operand
holen
Befehl
ausführen
Ergebnis
speichern
-- tc --
-- tc --
-- tc -Adreßbus
-- tc --
-- tc --
fC
CPU
Datenbus
Hauptspeicher
Controlbus
05.04.2011
Designprinzipien moderner
Prozessoren
26
Performance Berechnung - MIPS
Die Befehlsabarbeitungszeit (TL)ergibt aus der Anzahl der dafür
notwendigen Taktzyklen CPI (Cycles per instruction) und der Taktzeit tc.
TL = CPI * tc.
Die Performance P gibt an, wieviel Befehle in einer Sekunde abgearbeitet
werden. Deshalb ist die Maßeinheit für die Performance üblicherweise
MIPS
P = fc / CPI
Bei einer mit 20 MHz getakteten CPU mit einem mittleren CPI Wert von
5 ergibt sich also
P = 20*106 / 5
P = 4 MIPS
Später werden wir sehen, wie mit Hilfe von Fließbandverabeitung
(Pipelining) CPI auf den Wert 1 reduziert werden kann.
05.04.2011
Designprinzipien moderner
Prozessoren
27
Performance Berechnung – Reale
Performance
„
Reale Performance
„ Abweichungen von der idealen Performance ergeben sich durch
Verzögerung beim Speicherzugriff
Unterschiede in der Befehlssatz-Mächtigkeit
– Speicherzugriff
– Der Zugriff auf einen aus dynamischen RAMs aufgebauten
Hauptspeicher dauert etwa 7 ns bis 70 ns, also länger als die
Taktzeit tc der CPU. Das bedeutet, daß die CPU zusätzliche
Leerzyklen (Wait States) einschieben muß, die als Verlustzeit zu
verbuchen sind. Diese Verzögerung wird als MEMD (memory
delay) bezeichnet und muß in der Performance Formel
berücksichtigt werden:
– P = fc/(CPI+MEMD)
„ Um diese Verzögerungszeit zu minimieren, werden in modernen
Prozessoren schnelle Pufferspeicher (Caches) eingesetzt, deren
Zugriffszeit auf die Taktzeit der CPU zugeschnitten ist.
05.04.2011
Designprinzipien moderner
Prozessoren
28
Performance Berechnung – Mächtigkeit des
Befehlssatzes
„
„
„
„
„
Die verschiedenen Prozessoren unterscheiden sich in Anzahl und
Mächtigkeit ihrer Befehle. Allgemein gilt: Die Befehlssätze von CISC
Maschinen sind mächtiger als die der RISC. Um die Vergleichbarkeit
unterschiedlicher Befehlssätze zu erreichen, normiert man die
Befehlssätze auf eine allgemein bekannte und akzeptierte Architektur,
die VAX 11/780:
nVAX = Anzahl Befehle VAX / Anzahl Befehle Vergleichsarchitektur
Für einen Befehlssatz, der einfacher ist als der der VAX, ist nVAX
kleiner 1. Typische Werte für RISC-Prozessoren liegen bei 0,5 bis 0,8.
Die Performance Gleichung lautet dementsprechend jetzt:
P = (fc/(CPI+MEMD)) * NVAX
05.04.2011
Designprinzipien moderner
Prozessoren
29
Performance Berechnung – Probleme mit
MIPS
Aussagen über die reale Performance eines Prozessors mit Hilfe von
MIPS zu machen, ist problematisch, da
„
die MIPS Rate vom Befehlssatz abhängt (Befehlssatzmächtigkeit),
wodurch Vergleiche zwischen Rechnern mit unterschiedlichem
Befehlssatz erschwert werden,
„ die MIPS-Raten zwischen verschiedenen Programmen auf dem
gleichen Rechner variieren,
„ die MIPS-Raten sich umgekehrt proportional zur Leistung verhalten
können.
MIPS (Million Instruction per Seconds) gibt lediglich Aufschluß über die
Verarbeitungsgeschwindigkeit, nicht aber über die Leistung.
05.04.2011
Designprinzipien moderner
Prozessoren
30
Performance Berechnung – Verfahren zur
Leistungsbestimmung
„
Integer Performance - Gemessen wird die Geschwindigkeit der
Integer-Arithmetik, von Speicherzugriffen (Load und Store), von
Sprüngen und von Unterprogrammaufrufen. Ein typischer IntegerBenchmarks ist der Dhrystone-Benchmark
„ Gleitkomma Performance - Bei naturwissenschaftlichen
Anwendungen ist die Gleitkomma-(Floating Po-int) Performance von
großer Bedeutung. Standard-Benchmarks dafür sind der Linpack oder
der Whetstone.
„ Performance großer Programme - Übliche Benchmark-Programme
haben den Nachteil, daß sie ziemlich klein sind; dadurch kann das
gesamte Programm in einem schnellen Pufferspeicher der CPU (Cache)
untergebracht sein, was zu unrealistisch schnellen Speicherzugriffen
(Load und Store) führt. Als eine Art Benchmark für große Programme
wird häufig das Simulationsprogramm SPICE verwendet.
05.04.2011
Designprinzipien moderner
Prozessoren
31
Performance Berechnung – Verfahren zur
Leistungsbestimmung
„
„
„
„
Task-Wechsel - Bei Multi-User und Multi-Tasking Betriebssystemen geht in
die reale Prozessor-Performance auch die Zeit ein, die für die Task-Wechsel
benötigt wird.
Interrupt Response Time - Für Controller-Anwendungen ist die
Reaktionszeit auf Interrupts von entscheidender Bedeutung; die Reaktionszeit
setzt sich zusammen aus der Interrupt Response Time und zusätzlich aus der
Zeit, die für das Wiederaufsetzen des Prozessors benötigt wird.
I/O Benchmarks Diese Benchmarks messen die Geschwindigkeit der
Peripherie, vor allem des File-Systems. Sie sind ein Indiz für die Leistungsfähigkeit des Gesamtsystems.
SPECmark - Um die Performance-Werte aussagekräftiger zu machen, wurde
von dem Komitee SPEC eine verbesserte Methode entwickelt. Bei den SPEC
Messungen müssen die Systeme eine festgelegte Reihe von Benchmarks
absolvieren. Der geometrische Mittelwert dieser Quotienten wird SPECmark
genannt und soll einen objektivierten MIPS-Wert ausdrücken. Die SPECAngaben geben gut das Leistungsprofil der untersuchten Rechner wieder.
05.04.2011
Designprinzipien moderner
Prozessoren
32
Performance
SPEC Report CPU2006
05.04.2011
Designprinzipien moderner
Prozessoren
33
Allgemeine Performance Formel
f
P=
* NVax
CPI + MEMD
P
f
CPI
MEMD
Nvax
MIPS
Performance in MIPS
Taktfrequenz in MHz
Cycles per instruction
Memory Delay
Normierungsfaktor auf VAX 11/ 780
Million instruction per second
05.04.2011
Designprinzipien moderner
Prozessoren
34
Maßnahmen zur Performance-Steigerung
f
P=
* NVax
CPI + MEMD
„
Erhöhung der Taktfrequenz mittels Fortschritte der Halbleitertechnik
„ Verringerung der Speicherzugriffszeit durch optimale Speicherhierarchhie
„ Reduktion der Taktzyklen pro Befehl durch neue Architekturprinzipien
„
Optimaler Befehlssatz
05.04.2011
Designprinzipien moderner
Prozessoren
35
Fortschritte der Halbleitertechnik
Moores Law I
Î
Die Anzahl der Transistoren pro Chip kann etwa alle zwei Jahre
verdoppelt werden
05.04.2011
Designprinzipien moderner
Prozessoren
36
Fortschritte der Halbleitertechnik
Moores Law II
Î
Die Anzahl der Transistoren pro Chip kann etwa alle zwei Jahre
verdoppelt werden
05.04.2011
Designprinzipien moderner
Prozessoren
37
Fortschritte der Halbleitertechnik
Strukturgröße und Integrationsdichte
Moores Law basiert auf
der kontinuierlichen
Vergrößerung der
beherrschbaren Chipfläche bei gleichzeitiger
Verkleinerung der
prozeßtechnisch
beherrschbaren Strukturgröße. Heute besteht
kein Zweifel mehr an der
technischen Realisierbarkeit einer Strukturgröße von 0,07 µm.
05.04.2011
Designprinzipien moderner
Prozessoren
38
Moore´s Law
Intels Ausführungen
Prozessorübersicht
(http://www.macinfo.de/hardware/chips.html#intel)
05.04.2011
Designprinzipien moderner
Prozessoren
39
Fortschritte der Halbleitertechnik
Konsequenzen
„
Kleine Strukturgrößen erhöhen die Integrationsdichte der
Schaltelemente
– geringere Betriebsspannung
– geringere Leistungsaufnahme
– geringere Wärmeentwicklung
– Verkürzung der Schaltzeiten
„ Verkürzung der Schaltzeiten ermöglicht die Erhöhung der
Taktfrequenz
Neue Möglichkeiten für den Prozessorentwurf !
Oder: Was soll man mit mehr als 100 Millionen
Transistoren Vernünftiges anfangen ?
05.04.2011
Designprinzipien moderner
Prozessoren
40
Fortschritte der Halbleitertechnik
Beispiele für die Konsequenzen
„
HP PA-RISC 8500 enthält einen 1.5 MB großen First-Level Cache.
„ Alpha 21364
– enthält 128KB L1 und 1,5 MB großen L2 Cache on Chip.
– Taktfrequenz > 1000 MHz
– 0.18 µm Strukturgröße
„ Intel IA-64 wird 2*128 Register besitzen.
„ Mehrere Ausführungseinheiten pro Chip sind technisch längst kein
Problem mehr.
05.04.2011
Designprinzipien moderner
Prozessoren
41
Verringerung von CPI
Phasenpipelining - das Prinzip
n
IF
n+1
n+2
n+3
n+4
n+5
DR EX MA
IF DR EX
IF DR
IF
WB
MA
EX
DR
IF
P=
f
* NVax
CPI + MEMD
IF Instruction
Fetch
WB
MA
EX
DR
IF
WB
MA WB
EX MA WB
DR EX BA WB
DR Decode and
read
EX execute
MA Memory
Access
WB Write back
„
„
„
Ist eine Implementierungstechnik, die zeitlich überlappendes Bearbeiten von
Befehlen ermöglicht.
Keine Verringerung der Latenzzeit eines einzelnen Befehls
Erhöhter Durchsatz von abgearbeiteten Befehlen pro Zeiteinheit
05.04.2011
Designprinzipien moderner
Prozessoren
42
Verringerung von CPI
Phasenpipelining
„
P=
f
* NVax
CPI + MEMD
Die optimale Pipelineorganisation hat massive Auswirkungen auf die
Befehlssatzarchitektur (ISA) eines Prozessors:
– einfache Befehle
– einheitliche Befehlslänge
– LOAD/Store Architektur
– Hardware-Steuerwerk
– einfache Adressierungsarten
Die Berücksichtigung dieses Zusammenhangs führte
Mitte der 80er Jahre zu den RISC-Architekturen
05.04.2011
Designprinzipien moderner
Prozessoren
43
P=
f
* NVax
CPI + MEMD
Verringerung von CPI
Konkurrenz zwischen RISC und CISC
05.04.2011
Designprinzipien moderner
Prozessoren
44
Verringerung von CPI
Pipeline - Ladekonflikte
LOAD
R1,(R2)
NOP
NOP
NOP
ADD
R1, R3
IF
P=
f
* NVax
CPI + MEMD
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
„
Benötigt ein Befehl das Ergebnis eines vorherigen LOAD, müssen
entsprechend NOPs eingefügt werden !
„ Muß das Datum aus dem Hauptspeicher geholt werden, wird die ganze
Pipeline entsprechend viele Taktzyklen angehalten !
„ LOAD Befehle machen ~ 18% des Befehlsstroms aus !
05.04.2011
Designprinzipien moderner
Prozessoren
45
Verringerung von CPI
Pipeline - Datenkonflikte
ADD
R1,R2, R3
NOP
NOP
NOP
ADD
R4, R1,R2
IF
P=
f
* NVax
CPI + MEMD
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
IF
DR
EX MA WB
„
Benötigt ein Befehl als Operanden das Ergebnis eines vorherigen
arithmetischen oder logischen Befehls, müssen entsprechend NOPs
eingefügt werden (Datenflußkonflikt)
„ Arithmetische Befehle machen ~ 40% des Befehlsstroms aus !
05.04.2011
Designprinzipien moderner
Prozessoren
46
Verringerung von CPI
Pipeline - Datenflußkonflikt
ADD R1 + R2 → R4
ADD R4 + R3 → R4
SUB R5 - R0 → R6
ADD n
ADD n+1
SUB n+2
IF
P=
f
* NVax
CPI + MEMD
DR EX MA WB
IF DR EX MA WB
IF DR EX MA WB
„
Softwarelösung : Compiler sortiert Code um oder fügt NOPs ein
„ Hardwarelösung: Forwarding
ADD R1 + R2 → R4
SUB R5 - R0 → R6
ADD R4 + R3 → R4
05.04.2011
ADD n
SUB n+1
ADD n+2
IF
DR EX MA WB
IF DR EX MA WB
IF DR EX MA WB
Designprinzipien moderner
Prozessoren
47
P=
Verringerung von CPI
Pipeline - Strukturelle Konflikte
LOAD
n
STORE n+1
ADD
n+2
ADD
n+3
ADD
n+4
IF
f
* NVax
CPI + MEMD
DR EX MA
WB
IF
DR EX
MA
WB
IF
EX
MA WB
DR
EX MA WB
DR
IF
IF
DR EX MA WB
„
Memory Access und Instruction Fetch benötigen Datenbus
„ Getrennte Befehls- und Datenspeicher vermeiden strukturelle
Konflikte (Harvard Architektur)
05.04.2011
Designprinzipien moderner
Prozessoren
48
Verringerung von CPI
Pipeline - Steuerkonflikte
JUMP n IF
n+1
n+2
n+3
n+4
n+5
P=
f
* NVax
CPI + MEMD
DE EX MA WB
IF
DE EX MA WB
IF
DE EX MA WB
IF
DE EX MA WB
IF
DE EX MA WB
IF
DE EX MA WB
„
Die Befehle n+1 bis n+4 müssen durch NOPs ersetzt werden
„ Sprünge machen ~ 15 % des Befehlsstroms aus !
„ deshalb: Branch Delay Slots - Branch Prediction - Sprungvermeidung
(Alpha: Conditional Move Befehle)
05.04.2011
Designprinzipien moderner
Prozessoren
49
Verringerung von CPI
Pipeline - Branch Delay Slots
P=
f
* NVax
CPI + MEMD
Adresse
normaler
Sprung
verzögerter
Sprung
optimierter
Sprung
100
LOAD X,A
LOAD X,A
LOAD X,A
101
ADD 1,A
ADD 1,A
JUMP 105
102
JUMP 105
JUMP 106
ADD 1,A
103
ADD A,B
NOP
ADD A,B
104
SUB C,B
ADD A,B
SUB C,B
105
STORE A,Z
SUB C,B
STORE A,Z
106
05.04.2011
STORE A,Z
Designprinzipien moderner
Prozessoren
50
f
* NVax
CPI + MEMD
Verringerung von CPI
Pipeline - Häufigkeit von Befehlsklassen
P=
Befehl
bedingte
Sprünge
unbedingte
Sprünge
Load
Store
Arithmetik
Rest
05.04.2011
PipelineKonflikte
Steuerkonflikt
dynamische
Häufigkeit in %
11
Steuerkonflikt
4
Ladekonflikt/
Struktureller
Konflikt
Struktureller
Konflikt
Datenkonflikt
18
Designprinzipien moderner
Prozessoren
8
39
20
51
Verringerung von CPI
Pipelinekonflikte
P=
Die Vermeidung und Auflösung der vielfachen Konflikte nimmt eine zentrale Bedeutung in der Prozessorarchitektur ein
- Forwarding
- Sprungvermeidende Befehle
- Harvard Architektur
- große L1 und L2 Caches
- Branch Delay Slots
- Branch Prediction
- Branch History Table
- Branch Target Buffer
- optimierende, codesortierende Compiler !
Je tiefer die Pipeline, desto schlimmer
wirken sich Pipelinekonflikte aus!
05.04.2011
Designprinzipien moderner
Prozessoren
f
* NVax
CPI + MEMD
ALU.
.Load
/Store
Pentium
5
P6
12..17
NexGen
7
MIPS R4600
5
MIPS R10000
5..7
PowerPC 604
6
PowerPC 620
5
Alpha 21x64
7
SuperSPARC
4
UltraSPARC
5
PA-RISC 8000
7..9
52
Von CPI zu Instruction per Cycle-IPC
Superskalare Prozessoren
„
Die Schranke des Phasen-Pipelinings liegt bei einem CPI von
bestenfalls eins.
„ Eine weitere Verbesserung, also Instruction per Cycle, erfordert die
gleichzeitige Verarbeitung von mehr als einem Befehl in mehr als
einer Ausführungseinheit.
„ Diese Superskalar-Technik ist eine Implementierungstechnik, die aus
einem sequentiellen Befehlsstrom pro Takt mehr als einen Befehl
den Ausführungseinheiten eines Prozessors zuordnen kann
„ Funktions-Pipelining
05.04.2011
Designprinzipien moderner
Prozessoren
53
Bus Interface
Unit
Von CPI zu IPC
Superskalarer
Prozessor Alpha
21064
Instruction Cache
Branch History
Table
Data
Tag
Integer Unit
(EBOX)
Instruction Unit
(EBOX)
Multiplier
Prefetcher
Adder
ScoreBoard
Shifter
PCCalculation
Floating Point
Unit
(EBOX)
Multiplier/
Adder
Devider
Logic Box
Instruction
Translation
Buffer
Integer
Register File
Floatingpoint
Register File
Control
Load/Store Unit
(ABOX)
Write Buffer
Tag
05.04.2011
Address
Generator
Data Translation
Table
Data-Cache
Designprinzipien moderner
Prozessoren
Load
Silo
Data
54
Blockschaltbild
des Pentium II
05.04.2011
Designprinzipien moderner
Prozessoren
55
DEC
Alpha
21264
05.04.2011
Designprinzipien moderner
Prozessoren
56
Blockdiagramm des Pentium III
05.04.2011
Designprinzipien moderner
Prozessoren
57
Blockdiagramm
Pentium 4
05.04.2011
Designprinzipien moderner
Prozessoren
58
Blockdiagramm
Intel Core 2
Architektur
05.04.2011
Designprinzipien moderner
Prozessoren
59
Von CPI zu IPC
Probleme superskalarer Befehlsausführung
Source-Code
---------------------------------
Compiler
parallelisietrer
Code
SequentiellerMasch. Code
---------------------------------
Hardware
Code
Parallelisieren
parallele Units
...
Der vom Compiler erzeugte sequentielle Befehlsstrom soll zur
Laufzeit parallel von den Verarbeitungseinheiten ausgeführt
werden.
„ Datenabhängigkeiten,die eine sequentielle Ausführung erfordern,
verhindern zeitweise die superskalare Bearbeitung
„ Prozessoren werden mit zusätzlicher Logik ausgestattet, um die
Datenabhängigkeiten möglichst aufzulösen
05.04.2011
Designprinzipien moderner
Prozessoren
60
Von CPI zu IPC
Dynamic (Out of Order) - Execution
„
Ziel: optimale Ausnutzung der Verarbeitungseinheiten
„ Idee: Die Instruktionen liegen aufbereitet in einem Zwischenspeicher
(reservation station). Diejenigen, deren Operanden bereitstehen und für
die eine Verarbeitungseinheit frei ist, werden im nächsten Zyklus
ausgeführt. (Datenflußprinzip)
„ Problem: Die Ergebnisse der Operationen müssen nachträglich in der
eigentlich erwünschten Reihenfolge ausgegeben werden. Dafür gibt es
einen zusätzlichen Reorder Buffer
05.04.2011
Designprinzipien moderner
Prozessoren
61
Von CPI zu IPC
Exkurs: Datenabhängigkeiten
„
Datenflußabhängigkeit
„ Antiabhängigkeit
„ Ausgabeabhängigkeit
I1
I2
I3
I4
R3 = R3 op R5
R4 = R3 + 1
R3 = R5 + 1
R7 = R3 op R4
Datenflußabhängigkeiten (I1,I2) sind nicht auflösbar
Antiabhängigkeiten (I3, I2) und Ausgabeabhängigkeiten (I1,I3) sind
mit Register Renaming auflösbar.
05.04.2011
Designprinzipien moderner
Prozessoren
62
Von CPI zu IPC
Beispiel: Dynamic Execution
Befehlsstrom in
µOps (RISC)
seq. Reihenfolge
----Decoder
Reservation
--------Buffer
1
..n
----z.B. 40
--------Befehle (P6)
-----
Data Cache
05.04.2011
Load
Store
.
.
.
Reservation
Station
z.B. 20
Befehle (P6)
Unit n
Designprinzipien moderner
Prozessoren
Datenflußprinzip
Memory Reorder Buffer
63
Erweiterung der Superskalarität
Vielfädige superskalare Prozessoren
Kontrollfaden 1
Registersatz 1
PC PSR 1
Kontrollfaden 2
Registersatz 2
PC PSR 2
Kontrollfaden 3
Registersatz 3
Kontrollfaden 4
Registersatz 4
Thread
PC PSR 3
PC PSR 4
Ziel: Wartezeiten überbrücken, Ausführungseinheiten ständig
beschäftigen
Lösung: Mehrere Kontrollfäden (Threads) sind in verschiedenen
Registersätzen auf dem Prozessor geladen. Ein schneller
Kontextwechsel geschieht durch Umschalten auf einen anderen
Registersatz
05.04.2011
Designprinzipien moderner
Prozessoren
64
Neuere Entwicklungen bei Intel
„
Wide Dynamic Execution
„ Advanced Smart Cache
„ Smart Memory Access
„ Advanced Digital Media Boost
Energie sparend, leistungsstark und schick mit Intel®
Core™ Mikroarchitektur (Presseinformation vom 7.
März 2006)
Intels Pentium Mikroarchitektur (englisch)
Multi-Core Flash und Video Demos
05.04.2011
Designprinzipien moderner
Prozessoren
65
Zusätzliche Videos ...
3D Pentium III Video
Hitzeprobleme Pentium IV (Video)
Das 5 GiHz Projekt
05.04.2011
Designprinzipien moderner
Prozessoren
66
Multimedia Befehlssatzerweiterungen
„
http://de.wikipedia.org/wiki/Multi_Media_Extension
05.04.2011
Designprinzipien moderner
Prozessoren
67
SSE-3 Befehlssatzerweiterungen
„
SSE3-Befehlssatz-Erweiterungen
„ Mit dem Prescott erweitert Intel den IA-32-Befehlssatz um 13
zusätzliche Instruktionen. Die neuen Befehle betreffen vor allem die
FPU mit neuen SIMD-Befehlen und Erweiterungen für die Arithmetik
mit komplexen Zahlen. Intel bezeichnet die Erweiterungen
unspektakulär als SSE3.
„
Die meisten der neuen Befehle sind recht exotisch und dürften
lediglich in Spezialfällen zum Tragen kommen. Optimierungspotenzial
bieten sie aber etwa für mathematische Libraries, die viel mit
komplexen Zahlen rechnen oder den Butterfly-Algorithmus für die
Fast Fourier Transformation nutzen. Vor allem wissenschaftliche
Anwendungen und Audio/Video-Codecs dürften davon profitieren.
05.04.2011
Designprinzipien moderner
Prozessoren
68
SSE-3 Befehlssatzerweiterungen
„
FISTTP wandelt einen Floatingpoint-Wert mit Truncation und nicht wie das bisher
vorhandene FISTP durch Runden in einen Integer-Wert um. Dies erspart das sonst
nötige manuelle Umschalten auf das gewünschte Umwandlungsverhalten.
„
MOVSHDUP liefert bei einem SIMD-Operanden mit je vier Single-Floatingpoints
zwei Mal den ersten Wert und zwei Mal den dritten Wert zurück. Aus dem Vektor
(A3,A2,A1,A0) erzeugt MOVSHDUP somit (A3,A3,A1,A1). Ähnlich verhält sich
MOVSLDUP, das (A2,A2,A0,A0) zurückliefert. Nützlich sind diese Befehle beim
Laden von komplexen Zahlen aus dem Speicher, wo Real- und Imaginärteil in
benachbarten Variablen (A3,A2) und (A1,A0) gespeichert sind.
„
ADDSUBPS liefert bei zwei Operanden mit je vier Single-Floatingpoints jeweils die
Summe der geraden Datenelemente sowie die Differenz der ungeraden Datenelemente.
Aus den Vektoren (A3,A2,A1,A0) und (B3,B2,B1,B0) erzeugt ADDSUBPS (A3+B3,
A2-B2, A1+B1, A0-B0). Damit lassen sich Produkte und Quotienten von komplexen
Zahlen besonders schnell und elegant berechnen.
„
ADDSUBPD liefert das gleiche Ergebnis für zwei Double-Precision-FloatingpointVariablen. Beide Rechenoperationen kommen bei der Fast Fourier Transformation
häufig zum Einsatz.
05.04.2011
Designprinzipien moderner
Prozessoren
69
SSE-3 Befehlssatzerweiterungen
„
MOVDDUP kopiert einen 64-Bit-Double-Floatingpoint in den oberen und unteren
Teil einer 128-Bit-SIMD-Variablen.
„
LDDQU kann einen 128-Bit-Wert schnell aus dem Speicher in ein Register laden,
„
auch wenn er nicht auf eine 16-Byte-Grenze aligned ist. In diesem Fall lädt LDDQU
automatisch die zwei betroffenen Cache-Lines komplett ein und extrahiert die
gewünschten 16 Byte. Dieser Fall tritt sehr häufig bei der Motion Estimation von
MPEG-Encodern auf. Hierbei werden Bildteile in zwei benachbarten Bildern auf eine
Verschiebung verglichen. Typischerweise kann man dabei nur auf einen Block sauber
alligned zugreifen.
Die meisten SIMD-Befehle verarbeiten Werte aus zwei verschiedenen Operanden. Die
neuen horizontalen Befehle HADDPS, HSUBPS, HADDPD und HSUBPD
arbeiten dagegen innerhalb eines Operanden. Aus (A3,A2,A1,A0) und (B3,B2,B1,B0)
berechnet etwa HADDPS (B3+B2,B1+B0,A3+A2,A1+A0). Diese Funktionen sind
bei der Berechnung von Skalarprodukten und Determinanten von Matrizen nützlich.
Auch erlauben sie, dass Grafikdaten im Format X1,Y1,X2,Y2,..Xn,Yn und nicht nur im
Format X1,X2,..Xn,Y1,Y2,..Yn abgespeichert sind.
05.04.2011
Designprinzipien moderner
Prozessoren
70
Von CPI zu IPC
Grenzen der Superskalarität
„
Je mehr Funktionseinheiten eingesetzt werden, desto wirkungsvollere
Compiler-Optimierungen sind notwendig, um parallel ausführbaren
Code zu erzeugen. Die Parallelisierbarkeit steigt aber nicht
proportional mit der Anzahl von Funktionseinheiten
„ Superskalare Pipeline- Prozessoren sind nur so gut wie ihre Compiler,
die genaue Kenntnis der Hardware benötigen !
„ Ein Lösungsansatz heißt:
– VLIW - Very Large Instruction Word
– EPIC - Explicit Parallel Instruction Computing
„ EPIC ist die Intel-Neuauflage des alten VLIW Prinzips
05.04.2011
Designprinzipien moderner
Prozessoren
71
Von CPI zu IPC
VLIW / EPIC - Konsequent Superskalar
VLIW Befehlswort
Sub-Instr. 1
MUL
Sub-Instr. 2
SUB
Funktionseinheiten:
Multiplizierer
Multiplizierer
Sub-Instr. 3
ADD
..........
..........
Sub-Instr. n
LOAD
Steuerwerk
Addierer
Addierer
.........
Registerfile
05.04.2011
Designprinzipien moderner
Prozessoren
72
Von CPI zu IPC
EPIC - Intels IA-64 Architektur
05.04.2011
Designprinzipien moderner
Prozessoren
73
Von CPI zu IPC
EPIC - Intels IA-64 Architektur
05.04.2011
Designprinzipien moderner
Prozessoren
74
Von CPI zu IPC
Explizit parallele Strategie
Source
---------------------------------
Compiler
Parallelität
erkennen und
über
Basisblöcke
erweitern
Paralleler
Masch. Code
----- ----- --------- ----- ----------------- ----- --------- --------- ----- --------- ---------
Hardware
parallele
Units
...
Der Compiler erkennt die Parallelität im Source-Code, analysiert sie über die
Basisblöcke hinaus und bereitet die Befehle explizit als parallelen Code für
die Hardware auf.
05.04.2011
Designprinzipien moderner
Prozessoren
75
Von CPI zu IPC
Explizit parallele Strategie
Nachteile
„ Verzicht auf Phasenpipelining
„ Geringere Taktfrequenz wegen Multiport Register File
„ Bei schlecht parallelisierbarem Code sinkt die Performance auf die
eines relativ langsam getakteten skalaren Prozessors (fehlendes
Phasenpipelining)
Vorteile
„ einfacheres Prozessordesign wegen fehlender Dynamic Execution
„ einfacheres Prozessordesign, weil Pipelinekonflikte nicht aufgelöst
werden müssen
„ dadurch zusätzliche Resourcen für Branch Predication
05.04.2011
Designprinzipien moderner
Prozessoren
76
Von CPI zu IPC
EPIC - Intels IA-64 Architektur
Branch Predication
Den Befehlen eines
Basis-Blocks wird ein
Prädikat vom Compiler verliehen, zu
welchem Zweig sie
gehören: IF- als auch
ELSE Zweig können
so gleichzeitig ausgeführt werden. Ist die
Bedingung geprüft,
kann der falsche
Zweig eliminiert und
die Ergebnisse des
Richtigen können
nach Außen geführt
werden.
05.04.2011
Designprinzipien moderner
Prozessoren
77
Alpha 21364 - Prozessorkern
05.04.2011
Designprinzipien moderner
Prozessoren
78
Alpha 21364 Chip-Blockdiagramm
05.04.2011
Designprinzipien moderner
Prozessoren
79
Alpha 21364 Zusammenfassung
„
Der integrierte 1.5 MB große L2-Cache und der integrierte Memory
Controller unterstützen die Ein-Prozessor Performance
„ Durch das integrierte Network-Interface eignet sich der 21364 gut für
Hochleistungs-Multiprozessorsysteme
05.04.2011
Designprinzipien moderner
Prozessoren
80
f
P=
Zusammenfassung
* NVax
CPI + MEMD
Senken von CPI
• Einführung von Phasenpipelining
Beginn der RISC Ära
CPI auf eins senken
Ziel:
Problem: Pipelinekonflikte
Lösung: Spezielle Hardware
Optimierende Compiler
• Einführung von Funktionspipelining
Einsatz mehrerer parallel arbeitender
Units - Superskalare Prozessoren
Register-Renaming
Out of Order Execution
CPI soll deutlich unter eins
Ziel:
liegen oder: IPC > 1
Problem: sequentieller Code schränkt
parallele Verarbeitung ein
05.04.2011
• Vielfädig superskalare Prozessoren
Auslastungslücken der Units sollen durch Mischen von Befehlen
aus mehreren Befehlsströmen
geschlossen werden.
Steigern von IPC auf >4
Ziel:
Problem: zusätzlicher Hardwareaufwand für die Organisation des
Befehlsstromes im Prozessor
• Single Chip Multiprocessor
Steigern von IPC auf >4
Ziel:
Problem: Vervielfachung der
Superskalarprobleme
• EPIC/ VLIW
Ziel: Drastische Erhöhung von IPC
Problem: Performance bei nicht
parallelisierbarem Code
Designprinzipien moderner
Prozessoren
81

Documentos relacionados