Kapitel 3

Transcrição

Kapitel 3
Grundlagen der Informatik III
WS 2008 / 2009
[Folien basierend auf VL von Prof. Dr. Claudia Eckert,
WS 07/08]
Prof. Dr. rer. nat. Frederik Armknecht
Sascha Müller
Daniel Mäurer
Fachbereich Informatik / CASED
Mornewegstraße 30
64293 Darmstadt
Gliederung der Vorlesung GdI 3
1. Einführung
2. Assemblerprogrammierung
3. Leistungsbewertung
4. Speicherhierarchie
5. Ein-Ausgabe
6. Betriebssysteme (Grundlagen)
7. Assembler, Binder, Lader
8. Rechnernetze (Grundlagen)
9. Compiler (Grundlagen)
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 2
Gliederung dieses Kapitels
3.1 Einführung
3.2 Bewertungskriterien für Prozessoren
3.3. Bewertungskriterium Ausführungszeit
3.4 Leistungsbewertung
3.5 Taktung
3.6 CPU-Performanz
3.7 Beispiele
3.8 Benchmarks
3.9 Verbesserungen der CPU-Leistung
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 3
3.1 Einführung
Hardware: bestimmt die Leistungsfähigkeit des
Rechners, d.h. um die Software-Performance zu
erhöhen, muss man die Performanz-Faktoren der
Hardware und des BS verstehen
• Bisher: rein qualitative Betrachtung der funktionalen
Eigenschaften des Prozessors
• Erforderlich: Quantifizierbare Maße für die Messung
der Leistungsfähigkeit von Prozessoren
• Problem: Auswahl geeigneter Bewertungskriterien
• Wann „ist ein Prozessor besser als ein anderer“?
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 4
3.1 Einführung
Bewertungskriterien
• Perspektive des Käufers: Prozessoren:
• welcher hat die beste Leistung?
• die niedrigsten Kosten?
• das beste Preis-/Leistungsverhältnis?
• Perspektive des Designers: Designoptionen:
• welche hat die beste Leistungsverbesserung?
• die geringsten Kosten?
• das beste Preis-/Leistungsverhältnis?
Beide benötigen eine Metrik zur Bewertung
Ziel: Verständnis für die Auswirkungen von DesignEntscheidungen auf Kosten & Leistung
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 5
Analogie zur Illustration: Passagierflugzeuge
Flugzeug
Passagierkapazität (#p)
Reichweite
(Meilen mi)
Reisegeschwindigkeit (mi/h)
Passagierdurchsatz (#p × mi/h)
Boeing 747
470
4150
610
286 700
Boeing 777
375
4630
610
228 750
Airbus A380
656
8400
600
393 600
BAC/Sud Concorde
132
4000
1350
178 200
Douglas DC-8-50
146
8720
544
79 424
 Bewertung: Welches ist das „beste“ Flugzeug?
 Kriterien: Passagierkapazität / Reisegeschwindigkeit Reichweite / ...
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 6
Analogie zur Illustration: Passagierflugzeuge
Die „besten“ Flugzeuge?
 Passagierkapazität:
Airbus A380
 Reichweite:
Douglas DC 8
 Geschwindigkeit:
Reisegeschwindigkeit: BAC/Sud Concorde
Airbus A380
 Passagierdurchsatz:
(#Passagiere × Reisegeschwindigkeit)
unterschiedliche Bewertungskriterien für unterschiedliche
Anwender!
 Analoges gilt auch für die Bewertung von Rechnern
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 7
3.2 Bewertungskriterien für Prozessoren
Welche Leistungsmaße sind denkbar?
• Antwortzeiten, Durchsatz, Ausführungszeiten
(response/execution time, latency):
• Aus Sicht einzelner Benutzer:
Kriterium: Antwortzeit :
• Wie schnell wird eine einzelne
Aufgabe vom Prozessor gelöst?
• Der schnellste Prozessor ist derjenige, der eine
gegebene Aufgabe am schnellsten löst.
• Frage: Welche Aufgabe ist repräsentativ?
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 8
3.2 Bewertungskriterien für Prozessoren
Aus Sicht eines Rechenzentrumsbetreibers:
Kriterium: Durchsatz (throughput):
• Wie viel Arbeit kann ein Rechner pro
Tag/Stunde/Woche/sec/ns erledigen?
• Der schnellste Prozessor ist derjenige, der die
meisten Jobs pro Tag bearbeitet.
Kriterium: Ausführungszeit (execution time)
• Die Leistung eines Prozessor wird am besten durch
die Ausführungszeit für ein Programm beschrieben
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 9
3.3. Bewertungskriterium Ausführungszeit
Benutzerantwortzeit (elapsed time):
• Zeit, die real vergeht, bis eine gegebene Aufgabe
vom Rechner gelöst wurde.
• zählt alles (Festplatten, Speicherzugriffe, EA, …)
• bewertet Systemperformanz
• aber i.d.R. ungeeignet für Prozessor-Vergleiche
CPU-Ausführungszeit (CPU execution time)
• Zeit, die die CPU bei der Lösung der Aufgabe
benötigt ohne Ein-/Ausgabe und Zeit für andere
Aufgaben (Scheduling etc.)
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 10
3.3. Bewertungskriterium Ausführungszeit
CPU-Ausführungszeit (Forts.)
• besteht aus
• system CPU time (CPU-Zeit für Betriebssystemaufgaben) und
• user CPU time (CPU-Zeit, die zur Ausführung der Codezeilen
eines Programms benötigt wird)
• bewertet CPU-Performanz
Beispiel: Unix time Befehl
Ausgabe sei: 90.7u 12.9s 2:39 65%
Interpretation:
• user CPU: 90.7, system CPU: 12.9,
• Antwortzeit: 159 sec (=2:39)
• Anteil der CPU-Zeit: (90.7 + 12.9)/159 = 0.65
 d.h. > 1/3 der Zeit ist Wartezeit (u.a. E/A)
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 11
3.4 Leistungsbewertung
Leistungsbewertung (performance evaluation)
erfolgt in „Einheiten von Dingen pro Sekunde“
• Daumenregel: größer ist besser
• Falls Hauptkriterium Ausführungszeit ist, dann
gilt:
• Performanz(x) = 1 / Ausführungszeit(x)
• „x ist n-mal schneller als y“ bedeutet dann:
Performanz( x)
n =
Performanz( y )
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 12
Beispiel
 Ausführungszeit (Geschwindigkeit) von Concorde vs. Airbus A380 ?
 Concorde ist 1350 mph / 600 mph = 2.25-mal schneller
 Durchsatz von Concorde vs. Airbus A380 ?
 Concorde ist 178 200 pmph / 393 600 pmph = 0.45-mal besser
 Airbus A380 ist 393 600 pmph / 178 200 pmph = 2.2-mal besser
 Bewertung:
 A380 ist 2.2-mal (um „120%“) besser hinsichtlich Durchsatz.
 Concorde ist 2.25-mal (um „125%“) schneller hinsichtlich Flugzeit.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 13
3.5 Taktung
 Anwender denken an Ausführungszeit in gemessener Zeit.
 Prozessorentwickler verwendet eher ein Maß, das in
Bezug dazu steht, wie schnell die Hardware elementare
Funktionen durchführen kann.
 Nahezu alle heutigen Computer beruhen auf einer
konstanten Taktrate, die das Auftreten von
(synchronisierenden) Schaltereignissen in der Hardware
bestimmt ((clock) cycles, (clock) ticks, clock periods):
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 14
3.5 Taktung
Taktzykluszeit (clock period):
• Länge für einen kompletten Taktzyklus
(z.B. 0.5 Nanosekunden bzw. 0.5ns)
Taktfrequenz (clock rate):
• Inverse der Taktzykluszeit
(z.B. 2 Gigahertz bzw. 2 GHz)
Zeit
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 15
3.5 Taktung
...
6.
5.
4.
3. Instruktion
2. Instruktion
1. Instruktion
 Wie viele Zyklen benötigt ein Programm?
 Man könnte annehmen, dass # Instruktionen = # Takte, d.h.
Zeit
 Diese Annahme ist falsch!
 Verschiedene Instruktionen benötigen unterschiedliche Zeit auf
unterschiedlichen Prozessoren (Instruktion ≠ C-Programmzeile).
 Warum ist das so?
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 16
3.5 Taktung
• Ein Takt pro Instruktion (d.h. alle Instruktionen gleiche Taktlänge)
ist sehr ineffizient, u.a. weil
• die Ausführungszeit dann durch die am längsten dauernde
Instruktion bestimmt wird,
• Hardware-Einheiten (ALU, ...) mehrfach vorhanden sein müssen.
• Stattdessen Mehrtakt-Implementierungen:
• Pro Instruktion mehrere, aber kürzere Taktzyklen
• Anzahl der Taktzyklen pro Instruktion:
clock cycles per instruction, CPI
Zeit
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 17
3.5 Taktung
Damit wird unterschiedlichen Ausführungsdauern Rechnung getragen:
 Multiplikation benötigt mehr Zeit als Addition.
 Gleitpunkt-Operationen benötigen mehr Zyklen als solche auf ganzen
Zahlen.
 Zugriff auf Speicher erfordert mehr Zeit als auf Register.
Achtung:
 Eine Veränderung der Taktzykluszeit ändert in der Regel auch die Anzahl
der für die verschiedenen Instruktionen erforderlichen Takte.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 18
3.5 Taktung
Mit Hilfe der Kenntnis von Taktzyklen ...
 Ein gegebenes Programm benötigt
 eine gewisse Anzahl an Maschineninstruktionen,
 eine gewisse Anzahl an Taktzyklen,
 eine gewisse Anzahl an Sekunden.
 Wir können diese Größen jetzt in Bezug setzen:
 Taktzykluszeit (Sekunden pro Zyklus)
 Taktfrequenz (Zyklen pro Sekunde)
 CPI (Zyklen pro Instruktion)
 MIPS (Millionen von Instruktionen pro Sekunde)
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 19
3.6 CPU-Performanz
Zusammenhang zwischen Ausführungszeit und Takt:
CPU-Ausführungszeit =
# CPU Taktzyklen des Programms × Taktzykluszeit =
# CPU Taktzyklen des Programms / Taktfrequenz
Wg: CPU Taktzyklen des Progr = # Instruktionen × Ø CPI
gilt: CPU-Ausführungszeit =
# Instruktionen × Ø CPI × Taktzykluszeit =
# Instruktionen × Ø CPI / Taktfrequenz
Performanzgleichung:
CPU - Zeit =
Sekunden Instruktionen
Taktzyklen
Sekunden
=
×
×
Programm
Programm
Instruktionen Taktzyklus
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 20
Beispiel
 Unser Testprogramm benötigt 10 Sekunden auf Computer A mit 2 GHz
Taktfrequenz.
 Wir möchten einem Rechnerarchitekten helfen, einen neuen Computer B
zu entwickeln, auf dem unser Testprogramm nur 6 Sekunden benötigt.
 Der Rechnerarchitekt kann neue (d.h. teurere) Technologien zur
Erhöhung der Taktfrequenz verwenden, hat uns aber informiert, dass dies
das übrige CPU-Design beeinflussen wird.
 Deshalb wird Computer B 1.2-mal so viele Taktzyklen für dasselbe
Programm benötigen wie Computer A.
Welche Taktfrequenz soll Computer B haben?
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 21
Lösung mit Perfomanzgleichung
Anzahl Taktzyklen für Testprogramm auf Computer A:
CPU-Zeit(A) = # CPU-Taktzyklen(A) / Taktfrequenz(A)
10 sec = # CPU-Taktzyklen(A) / (2×109 Taktzyklen/sec)
# CPU-Taktzyklen(A) = 2×1010 Taktzyklen
CPU-Zeit für Computer B
CPU-Zeit (B) = 1.2 × CPU-Taktzyklen(A) / Taktfrequenz(B)
6 sec = 1.2 × 2×1010 Taktzyklen / Taktfrequenz(B)
Insgesamt
 Taktfrequenz(B) = 1.2 × 2×1010 Taktzyklen/6 sec = 4 GHz
 B benötigt die doppelte Taktfrequenz von A zur Reduktion der
Ausführungszeit von 10 auf 6 sec.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 22
3.6 CPU-Performanz
Performanz wird durch Ausführungszeit bestimmt.
Was als Performanzindikator verwendbar?
Frage: ist eine der folgenden Variablen mit Performanz gleich zu setzen?
• # Taktzyklen für Programmausführung ?
• # Instruktionen des Programms ?
• # Taktzyklen pro Sekunde ?
• durchschnittliche # Taktzyklen pro Instruktion ?
• durchschnittliche # Taktzyklen pro Sekunde ?
Häufiger Fehler: Nur eine dieser Variablen wird als Indikator für
Performanz angesehen.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 23
3.7 Beispiele: irreführende Performanzindikatoren
Beispiel 1: CPI ist irreführender Performanz-Indikator
 Angenommen wir haben zwei Implementierungen der gleichen
Befehlssatzarchitektur (instruction set architecture, ISA).
Für ein Programm gelte:
 Maschine A hat Zyklenzeit von 1ns und CPI von 2.0
 Maschine B hat Zyklenzeit von 2ns und CPI von 1.2
 Welche Maschine ist für dieses Programm schneller?
Lösung:
 A ist schneller und zwar um einen Faktor 1.2
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 24
3.7 Beispiele: irreführende Performanzindikatoren
Beispiel 2: # Instruktionen allein ist irreführend
 Gegeben 2 Codesequenzen für eine Maschine
 Die Hardware bietet drei verschiedene Instruktionsklassen A, B, C, die einen, zwei,
drei Zyklen benötigen.
 Die erste Codesequenz habe 5 Instruktionen:
2 von A, 1 von B und 2 von C
 Die zweite Codesequenz habe 6 Instruktionen:

4 von A, 1 von B und 1 von C.
 Frage: Welche Folge ist schneller? Was ist die CPI?
 CPI= # Zyklen/Instruktionsanzahl
 Antwort: Sequenz 1 benötig 10 und Sequenz 2 benötigt 9 Zyklen
 CPI_1 = 2 und CPI_2 = 1.5, also Sequenz 2 ist schneller
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 25
3.7 Beispiele: irreführende Performanzindikatoren
Beispiel 3: MIPS-Kennzahl als Indikator
 Annahme: Zwei Compiler werden für eine 500 MHz Maschine mit drei
Instruktionsklassen A, B, C getestet, die je einen, zwei oder drei Zyklen benötigen.
 Der Code des ersten Compilers verwendet
 5 Milliarden Instruktionen der Klasse A,
 1 Milliarde der Klasse B und 1 Milliarde der Klasse C.
 Der Code des zweiten Compilers verwendet
 10 Milliarden Instruktionen der Klasse A,
 1 Milliarde der Klasse B und 1 Milliarde der Klasse C.
Fragen:
 Welche Folge wird hinsichtlich MIPS schneller sein?
 Welche Folge wird hinsichtlich Ausführungszeit schneller sein?
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 26
3.7 Beispiele: irreführende Performanzindikatoren
Antwort:
Berechnen der Ausführungszeiten für die beiden Compiler:
Ausführungszeit = Clock-Zyklen/Taktrate
Clock-Zyklus_1 = (5x1+ 1x2 + 1x3)x109 = 10x109
Clock-Zyklus_2 = (10x1+ 1x2 + 1x3)x109 = 15x109
Ausführungszeit_1 = (10x109)/(500 X 106) = 20 Sekunden
Ausführungszeit_2 = (15x109)/(500 X 106) = 30 Sekunden
MIPS = (#Instruktionen)/(Ausführungszeit x 106)
MIPS_1 = (5+1+1)x 109)/(20x 106) = 350
MIPS_2 = 400
• Lesson Learned: Code von Compiler 2 hat höhere MIPS-Zahl,
aber der Code von Compiler 1 wird schneller ausgeführt
d.h. auch MIPS-Werte können in die Irre führen!
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 27
Zwischenfazit: Zusammenfassung der Begriffe
Ein gegebenes Programm benötigt zur Ausführung
 Eine Anzahl von Instruktionen (Maschinenbefehlen)
 Eine Anzahl von Takten (Zyklen)
 Eine Anzahl von Sekunden
Beziehungen zwischen den Metriken:
 Zykluszeit oder Taktlänge (Sekunden pro Zyklus)
 Taktrate (Zyklen pro Sekunde)
 CPI (durchschnittliche Anzahl Zyklen pro Instruktion)
 MIPS (Millionen von Instruktionen pro Sekunde)
ist höher für ein Programm mit einfachen Instruktionen
 Zeit = Instruktionen/Programm x Takte/Instruktion x Sekunden/Takt
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 28
Aspekte der CPU-Performanz
Sekunden Instruktionen
Taktzyklen
Sekunden
CPU - Zeit =
=
×
×
Programm
Programm
Instruktionen Taktzyklus
Anzahl
Instruktionen
Taktzyklen pro
Instr. (CPI)
Programm
X
Compiler
X
X
Instruktionssatz
X
X
Rechnerorganisation
Technologie
X
Takt-frequenz
X
X
Ressourcen zur Performanzsteigerung sollten dort eingesetzt werden, wo die
Ausführungszeit tatsächlich verbraucht wird!
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 29
Beispiel (RISC Prozessor)
Basisprozessor
Operation
Häufigkeit
ALU
50%
Load
20%
Store
10%
Branch
20%
typische Mischung
Cycles CPI(i)
1
.5
5
1.0
3
.3
2
.4
2.2 Ø
% Time
23%
45%
14%
18%
Typische Fragestellungen:
 Wie viel schneller wäre der Prozessor mit einem besseren Datencache, der die
durchschnittliche Ladezeit auf 2 Zyklen reduzieren würde?
 Was würde sich ändern, wenn zwei ALU Instruktionen gleichzeitig ausgeführt
werden könnten?
 ….
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 30
3.8 Benchmarks
• Sinnvolle Performanzmaße lassen sich nur durch
Vergleich der Laufzeiten identischer Programme auf
verschiedenen Rechnern ermitteln!
• Benchmarks sind repräsentative Programme, die auf den zu
vergleichenden Rechnern ausgeführt werden.
• Es gilt der Rechner als der Leistungsfähigste, bei dem die
Benchmark-Programme am schnellsten ausgeführt werden.
• Benchmarks sind nutzbar von Rechnerarchitekten,
Compiler-Entwicklern, Anwendern etc.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 31
Vorsicht: Spielraum für Manipulationen!
In der Praxis wurden häufig Compiler oder auch
Instruktionssätze so optimiert, dass gängige
Benchmarks besonders schnell abliefen.
4 Typen von Benchmarks
• Reale Programme: Verwendung häufiger Anwendungen
wie C-Compiler, Textprozessoren (latex), CAD-Programme
(SPICE)
• Kernels: Kurze kritische Auszüge aus realen
Programmen, die isoliert zur Ausführung gebracht werden
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 32
Beispiel: SPEC ‘89
Performanz von Compilern: Missbrauchs-Beispiel
800
Benchmark Matrix300:
Matrixmultiplikationen,
• 99% der Rechenzeit
allein durch wiederholte
Ausführung einer Codezeile,
• Compiler-Bauer hat seinen
Compiler so getuned, dass
genau diese Berechnung
optimiert wurde: 700 mal
schnellere Ausführung als
auf einer Vax
700
SPEC performance ratio
600
500
400
300
200
100
0
gcc
espresso
spice
doduc
nasa7
li
eqntott matrix300
fpppp
tomcatv
Benchmark
Compiler
Enhanced compiler
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 33
3.8 Benchmarks
„Toy Benchmarks“
• Kleine, einfach zu schreibende Programme, die leicht
zur Ausführung gebracht werden können (z.B. Quicksort)
Synthetische Benchmarks
• Speziell entwickelte Programme, die die
Leistungsfähigkeit einzelner Instruktionen oder einzelner
Komponenten der zu vergleichenden CPUs aufdecken
sollen (z.B. Dhrystone)
• Heute nicht mehr beliebt, da sehr realitätsfern
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 34
3.8 Benchmarks
Beispiel: Standard-Benchmark Suites: SPEC
 Standard Performance Evaluation Corporation www.spec.org
 gegründet 1989 durch mehrere Rechnerhersteller (Apollo/HP, DEC,
MIPS, Sun Microsystems)
 Beschaffen eines Satzes von zunächst realen Programmen, die auf allen
Rechnern lauffähig sind und in ihrer Gesamtheit zur Messung der
Prozessorleistung herangezogen werden.
 Die SPEC-Benchmark-Suite durchlief mehrere Generationen, in denen
die einzelnen Programme jeweils den aktuellen Eigenschaften der
Rechner und der Systemsoftware angepasst wurden.
 SPEC besteht heute aus einer Mischung von realen Programmen und
Kernels.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 35
3.8 Benchmarks
SPEC Benchmarks
 CPU89 (1989)
 10 Programme liefern eine einzelne Zahl (“SPECmarks”)
 CPU92 (1992)
 SPECInt92 (6 integer Programme) and SPECfp92 (14 floating point Programme)
 CPU95
 neue Programme: SPECint95 (8 Integer Programme) und SPECfp95 (10 Floating Point Programme)
 ein Compilerflag für alle Programme: SPECint_base95, SPECfp_base95
 CPU2000
 CINT2000 11 integer (gzip, gcc, crafty, perl, ...)
 CFP2000 14 floating-point (swim, mesa, art, ...)
 Alle Ergebnisse gemessen relativ zu Basisrechner Sun 300MHz 256Mb-RAM Ultra5_10; diese hat
score 100
 CPU2006
 CINT2006 Benchmark für Integer-Performanz
 CFP2006 Benchmark für Gleitpunkt-Performanz
 Neben den SPEC CPU-Benchmarks gibt es weitere SPEC Benchmarks.
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 36
3.9 Verbesserungen der CPU-Leistung
Wie können Verbesserungen erreicht werden?
 Erhöhung der Taktfrequenz
 Verbesserungen der Prozessororganisation zur Reduzierung der CPI
 Compilerverbesserungen: z.B. geringere Instruktionsanzahl, Pipeline
Reorganisation
Leistungsverbesserung hängt ab von
 dem Anteil an der Ausführungszeit, die ein bestimmter Task mit der
verbesserten Hardware verbringt
 der Verbesserungsrate, die durch die verbesserte Hardware erreicht
wird
Amdahl's Gesetz: speed-up sollte sich an dem Prinzip:
„make the common case fast“ orientieren
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 37
3.9 Verbesserungen der CPU-Leistung
Amdahl’s Gesetz: Beispiel
• Floatingpoint Instruktionen werden um einen Faktor 2 beschleunigt;
der Anteil der Floatingpoint Instruktionen an der Gesamtausführungszeit
des Programms ist aber nur 10% der Gesamtzeit
Zeitneu = Zeitalt x (0.9 + 0.1/2) = 0.95 x Zeitalt
Speedupgesamt
CPU - Zeit neu
=
1
=
1.053
0.95

Anteilverbessert 
= CPU - Zeit alt × (1 − Anteilverbessert ) +

Faktor
verbessert 

Verbesseru ng =
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 38
CPU - Zeit alt
CPU - Zeit neu
3.9 Verbesserungen der CPU-Leistung
 Prozessorvergleich: Beispiel
 i860
 2 Gleitpunkt-Operationen + 1 Integer-Operation pro Taktzyklus
 @50MHz: 100 MFLOPs und 150 MOPs
 MIPS R 3000
 @33MHz: 16 MFLOPs und 33 MOPs
 Erwartung:
 i860 ist mehr als 5-mal schneller
 SPEC Benchmarks:
 R3000 war 15% schneller
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 39
Fazit
Performanz ist programmspezifisch
• Ausführungszeit ist wichtigstes Maß
• Eine Verbesserung individueller Kennzahlen (z.B. CPI,
Taktrate) erhöht nicht notwendigerweise die
Gesamtperformanz!
• nur das Produkt aus allen Einzelfaktoren:
Sekunden Instruktionen
Zyklen
Sekunden
=
×
×
Programm
Programm Instruktionen
Zyklus
ist ein verlässliches Performanzmaß
• Nicht alle Performanzangaben kritiklos glauben!
Fachbereich Informatik | Prof. Dr. Frederik Armknecht | 40

Documentos relacionados