Title: Ma
1Maßnahmen zur Leistungssteigerung bei Prozessoren
2Verbesserung des Fertigungsprozesses
Wurde der Pentium 1 noch mit einem 0,8 µm Prozess
hergestellt, so kommt beim Pentium 4 mit
Prescott-Kern nur mehr ein 0,09 µm Prozess zum
Einsatz. Durch die kleineren Strukturen müssen
die Elektronen zwischen den einzelnen
integrierten Schaltungen der CPU immer kürzere
Wege zurücklegen. Damit kann die Taktrate des
Prozessors erhöht werden was auch die
Arbeitsgeschwindigkeit anhebt.
3Spezialisierung im Prozessor
Im Jahr 1997 wurden zum ersten Mal spezielle
Befehle für komplexe grafische Aufgaben
eingeführt . Damit musste die CPU nicht mehr
viele Einzelbefehle abarbeiten sondern nur noch
eine einzige Anweisung durchführen. INTEL nennt
diese Technik MMX (MulitMedia Extension)
während sie von AMD mit 3DNow! bezeichnet wird.
4Spezialisierung im Prozessor
Bei den ersten Prozessoren musste die CPU noch
alle anfallenden Instruktionen selbst
ausführen. Der INTEL 80486 aus dem Jahre 1986 war
der erste Prozessor mit integriertem
mathematischen Coprozessor. Dessen Aufgabe war
es die CPU von Fließkommaberechnungen zu
entlastet.
5Auslagerung von Funktionen
Mit zunehmender Verbreitung von Grafikanwendungen
(z. B. CAD-Programme, aber vor allem 3D-Games)
wurde die Rechenzeit der CPU immer mehr für die
Darstellung komplexer Szenen belegt. Das gleiche
Problem entstand bei aufwändigen Sounds oder dem
umcodieren des analogen Fernsehsignals. Deshalb
stellte man dem Prozessor spezialisierte
Co-Prozessoren zur Seite, die nun auf der
Grafik-, Sound- oder TV-Karte untergebracht sind.
6Schnellere Busse
Im Laufe der Zeit wurde die Geschwindigkeit mit
welcher der Prozessor auf externe Einheiten
zugreifen kann deutlich erhöht. Der Pentium 1
arbeitete noch mit einem FSB (FrontSide Bus) von
60 MHz, beim Pentium 3 wurde der FSB-Takt bereits
bis auf 133 MHz gesteigert und der P4 mit
Prescott-Kern arbeitet mit bis zu 1060 MHz
FSB. Dabei gilt Auf den Arbeitsspeicher kann mit
vollem FSB-Takt zugegriffen werden, der AGP
Steckplatz (Grafikkarte) kann mit FSB/2
angesprochen werden und für die Kommunikation mit
PCI-Steckplätzen steht noch FSB/4 zur Verfügung.
7Schnellere Busse
Mit dem Prozessorsockel LGA775 und den
zugehörigen Chipsätzen wird die Busstruktur auf
dem Mainboard komplett überholt. Der
AGP-Steckplatz wird durch den PEG-Slot (PCI
Express for Graphics) ersetzt und der parallele
PCI-Bus muss dem seriellen PCIe (PCI Express)
weichen.
8Schnellere Busse
Gleichzeitig wird die Northbridge (von Intel nun
MCH Memory Controller Hub genannt) und die
Southbridge (neue Bezeichnung ICH I/O
Controller Hub) überholt. So besitzt der MCH nun
16 PCI Express Lanes über welche die Grafikkarte
mit bis zu 4 GByte/s im Vollduplex-Betrieb
angesprochen werden kann.
9Cache
Um möglichst schnell auf kurz zuvor berechnete
Zwischenergebnisse zugreifen zu können oder
häufig benötigte Befehle schnell in die ALU laden
zu können wurde ein schneller Zwischenspeicher
eingebaut. Dieser ist auch räumlich sehr nah beim
Prozessor angesiedelt. Früher direkt neben der
CPU, bei aktuellen Prozessoren direkt auf dem
Prozessor-Die. Da dieser schnelle Speicher in
zwei Stufen organisiert ist nennt man ihn Level
1 Cache und Level 2 Cache (kurz L1 bzw.
L2).
10Cache
Die Geschwindigkeit mit welcher der Cache
angesprochen werden kann wurde ebenfalls
kontinuierlich gesteigert
Pentium 1 66 MHz Pentium 2 117 bis 225
MHz Pentium 3 225 bis 1400 MHz Pentium 4 1300
bis 4000 MHz
11Cache
Nach Aussage der Prozessorhersteller hält der
L1-Cache 90 aller von der CPU benötigten Daten
bereits vor. Von den fehlenden 10 hält wiederum
der L2-Cache 90 (also 9 aller benötigten Daten)
vor. Das bedeutet, dass in 99 aller Fälle die
Daten mit dem Prozessortakt angefordert werden
können, während nur noch für 1 aller benötigten
Daten auf den RAM zugegriffen werden muss (wofür
der Prozessor auf dessen Taktrate abgebremst
wird!).
12Stages
- Um einen Befehl ausführen zu können sind
verschiedene Zwischenschritte notwendig. - Im einfachsten Fall wird jede Anweisung in drei
Zwischenschritte (so genannte Stages)
zergliedert - Befehl holen (engl. fetch)
- Befehl entschlüsseln (engl. decode)
- Befehl ausführen (engl. execute)
13Zyklus
Je weiter ein Befehl in kleine Zwischenschritte
untergliedert wird, desto einfacher wird jede
Stage. Und je einfacher eine Stage aufgebaut ist,
desto höher ist die Frequenz mit der sie
ausgeführt werden kann. Die Zeit, welche zur
Abarbeitung eines Befehls (also aller Stages)
benötigt wird, nennt man Zyklus. Die Zyklusdauer
ist stark von der Taktrate eines Prozessors
abhängig.
14Innere Parallelisierung(Beispiele für Stages)
Fetch Holen des Operationscodes
Decode Entschlüsseln des Operationscodes
Execute Ausführen der Operation
Address Berechnen der Operandenadresse(n)
Read Lesen des/der Operanden
Write Schreiben des Ergebnisses
Halt Wartezustand bis Pipeline wieder frei ist
F
D
E
A
R
W
H
15Innere Parallelisierung(Klassische
Befehlsausführung)
Die ersten Prozessoren die auf den Markt kamen
(bei INTEL beispielsweise der 8086) arbeiteten
alle Befehle noch seriell also einen nach dem
anderen ab. Die einzelnen Anweisungen waren
kaum in Stages unterteilt.
16Innere Parallelisierung(Pipeline)
Bereits beim (80)286 führte Intel die so genannte
Pipeline ein. Dies bedeutet, dass mit der
Ausführung eines Befehles bereits begonnen werden
kann wenn der vorhergehende noch nicht
vollständig abgearbeitet wurde. Allerdings kann
zu einem bestimmten Zeitpunkt jeweils nur eine
Stage der gleichen Art bearbeitet werden.
17Innere Parallelisierung(Super-Pipeline)
Die interne Befehlsverarbeitung wurde mit der
nächsten Prozessorgeneration verbessert, indem
die Anzahl der Stages pro Befehl erhöht
wurde. Damit kann mit der Abarbeitung eines
Befehles noch schneller nach Beginn des
vorhergehenden Befehles begonnen werden.
Super-Pipeline
18Innere Parallelisierung(Superskalar)
In der fünften Prozessorgeneration (Pentium 1)
erhielt jede CPU zwei interne Datenleitungen so
dass stets zwei Befehle gleichzeitig ausgeführt
werden können.
Superskalar
19Innere Parallelisierung(Out-Of-Order Execution)
Mit dem Pentium Pro (alias P6 also in der 6.
Generation) führt die CPU eine so genannte
Datenflußanalyse durch. In der Folge werden
Befehle unabhängig von der tatsächlichen
Reihenfolge im Programm in einer optimierten
Reihenfolge ausgeführt.
Out-Of-Order Execution
20Innere Parallelisierung(Hyper-Pipeline)
Mit der 7. Prozessorgeneration (Pentium 4) wurde
eine 20 stufige Pipeline eingeführt. Dies konnte
nur erreicht werden indem jeder CISC-Befehl (mit
diesen arbeiten gewöhnliche PCs) in so viele
Stages unterbrochen wird dass die CPU fast wie
ein RISC-Prozessor arbeiten kann.
Anmerkung CISC Complex Instruction Set
Computing RISC Reduced Instruction Set
Computing Merkmale von RISC - wenige elementare
Befehle - viele Register - einheitliche
Länge des Befehlscodes - Befehlsausführung
stets in einem Takt
21Hyperthreading
Als Hyperthreading bezeichnet Intel die Fähigkeit
einer CPU, mehrere (Teil-) Programme parallel
auszuführen. Nicht zu verwechseln ist
Hyperthreading mit der tatsächlichen Integration
mehrerer CPUs auf einem Chip. Dort spricht man
von echtem symmetrischem Multiprocessing (SMP).
Im Gegensatz zu SMP besitzt der Chip der
Hyperthreading-CPU nur eine vollständige CPU. In
Werbeprospekten wird auf die Hyperthreading
Fähikgeit manchmal explizit mit dem Hinweis
HT-Technologie oder ähnlichem hingewiesen.
22Sprungvorhersage
Aufgrund verschiedener statistischer Ansätze wird
von der CPU vermutet welche Befehle auf einen
anderen Befehl folgen. Diese nachfolgenden
Anweisungen werden vor der Ausführung bereits vom
langsameren Arbeitsspeicher in den schnellen
Cache geladen. Dadurch erhöht sich die
Zugriffsgeschwindigkeit falls einer dieser
geladenen Befehle vom Programm tatsächlich
aufgerufen wird.
23Spekulative Programmausführung
Die spekulative Programmausführung ist eigentlich
nur eine logische Konsequenz und Weiterführung
der Sprungvorhersage. Sie wurde mit der 6.
Prozessorgeneration (Pentium Pro)
eingeführt. Vermutet der Prozessor beispielsweise
dass nach dem Laden mehrerer Zahlen eine Addition
durchgeführt werden soll, so kann mit der
Summation der Zahlen bereits nach dem Laden der
zweiten Zahl begonnen werden. Sollen die Zahlen
dann doch multipliziert werden, so wird die auf
reiner Spekulation beruhende Summe eben wieder
verworfen und die Multiplikation durchgeführt.
24Zusammenfassung
Leistungssteigerung bei Prozessoren erfolgt(e)
durch
- Technologie-Tuning
- On-Chip Caches und schneller Busse
- Innere Parallelisierung
- Hyperthreading
- Sprungvorhersagen
- Spekulative Programmausführung
25--- ENDE ---