代写 C MIPS compiler U ̈bung5 RAWiSe18/19 Aufgabe 1 (Prozessor-Leistungsgleichung)

U ̈bung5 RAWiSe18/19 Aufgabe 1 (Prozessor-Leistungsgleichung)
Gegeben sind zwei verschiedene Implementierungen einer Instruktionssatzarchitektur, I 1 mit einer Taktfrequenz von 6 GHz und I 2 mit einer Taktfrequenz von 3 GHz. Der In- struktionssatz kann in drei Klassen von Instruktionen A, B und C mit unterschiedlichen CPI-Werten aufgeteilt werden. Die CPI-Werte fu ̈r die zwei Prozessoren I 1 und I 2 sind in den Spalten 2 und 3 von Tabelle 1 angegeben.
Ausserdem stehen drei verschiedene Compiler zur Verfu ̈gung. Compiler C 1 wird vom Her- steller des Prozessors I 1 geliefert, Compiler C 2 vom Hersteller von I 2 und Compiler C 3 ist ein Produkt eines Fremdanbieters. Wir nehmen an, dass fu ̈r ein bestimmtes Pro- gramm alle drei Compiler zwar dieselbe Anzahl von Instruktionen generieren, sich aber der resultierende Instruktionsmix unterscheidet. Die relativen Ha ̈ufigkeiten der jeweils verwendeten Instruktionsklassen sind in den Spalten 4-6 der Tabelle 1 angegeben.
Tabelle 1: CPI-Werte und relative Ha ̈ufigkeiten von Instruktionen
(1) Wie gross ist die relative Performance von I 1 im Vergleich zu I 2, wenn fu ̈r beide Prozessoren der Compiler C 1 verwendet wird? Wie gross ist die relative Performance von I 2 im Vergleich zu I 1, wenn beidesmal der Compiler C 2 verwendet wird?
(2) Welchen der drei Compiler sollte man fu ̈r Prozessor I 1 verwenden, welchen fu ̈r Prozessor I 2?
(3) Welche Kombination von Prozessor und Compiler liefert die gro ̈sste Performance?
Instruktionsklasse
CPI-Wert I 1
CPI-Wert I 2
C1
C2
C3
A B C
2 3 5
1 2 2
40% 40% 20%
40% 20% 40%
50% 25% 25%
Seite 1 / 4

U ̈bung5 RAWiSe18/19 Aufgabe 2 (Prozessorperformance)
Zu vergleichen sind zwei Implementierungen eines Prozessors anhand der Ausfu ̈hrung eines Programmes P. Das Programm P besitzt folgenden Instruktionsmix:
Die Prozessorimplementierung MFP realisiert Gleitkommaoperationen (floating-point) di- rekt in Hardware und beno ̈tigt folgende Anzahl von Taktzyklen fu ̈r die verschiedenen Instruktionsklassen:
Die Prozessorimplementierung MNFP hat keine Hardwareunterstu ̈tzung fu ̈r Gleitkomma- operationen, sondern emuliert diese durch Sequenzen von Integerinstruktionen. Integerin- struktionen beno ̈tigen 2 Taktzyklen. Die Anzahl der beno ̈tigten Integerinstruktionen fu ̈r die Emulation der Gleitkommaoperationen ist:
Beide Prozessorimplementierungen haben eine Taktfrequenz von 1000 MHz. (1) Wie gross sind die MIPS-Raten fu ̈r die beiden Prozessoren MFP und MNFP?
(2) Prozessor MFP beno ̈tigt 300 Millionen Instruktionen fu ̈r Programm P. Wieviele In- tegerinstruktionen beno ̈tigt MNFP fu ̈r P?
(3) Wie gross sind die Ausfu ̈hrungszeiten fu ̈r Programm P auf MFP und MNFP?
Instruktionsklasse
relative H ̈aufigkeit
Floating-point multiply Floating-point add Floating-point divide Integer instructions
10% 15% 5% 70%
Instruktionsklasse
ben ̈otigte Taktzyklen
Floating-point multiply Floating-point add Floating-point divide Integer instructions
6
4 20 2
Instruktionsklasse
ben ̈otigte Integerinstruktionen
Floating-point multiply Floating-point add Floating-point divide
30 20 50
Seite 2 / 4

U ̈bung5 RAWiSe18/19 Aufgabe 3 (Amdahls Gesetz)
Im Zuge der Entwicklung eines neuen Computers werden zwei mo ̈gliche Verbesserun- gen gegenu ̈ber einem a ̈lteren, existierenden Modell diskutiert: Zum einen ko ̈nnte man die Multiplikationsinstruktion vier mal schneller machen. Zum anderen wa ̈re es mo ̈glich, Speicherzugriffe zwei mal schneller zu machen.
Der Computer wird hauptsa ̈chlich fu ̈r die Abarbeitung eines Programms verwendet, das auf dem existierenden System eine Laufzeit von 100 Sekunden hat. Durch Messungen der Programmausfu ̈hrungen (Profiling) weiss man, dass von dieser Zeit 20% fu ̈r die Multiplika- tion, 50% fu ̈r Speicherzugriffe und die restlichen 30% fu ̈r andere Instruktionen verwendet werden.
• Wie gross ist der Speedup, wenn die Multiplikation verbessert wird?
• Wie gross ist der Speedup, wenn die Speicherzugriffe verbessert werden? • Wie gross ist der Speedup, wenn beide Verbesserungen gemacht werden?
Aufgabe 4 (Adressierung)
Es wird vorgeschlagen, fu ̈r eine LOAD-STORE Maschine einen Register-Speicher Adres- sierungsmodus hinzuzufu ̈gen. Die Idee ist, Befehlssequenzen der Art
LOAD R1,0(Rb)
ADD R2,R2,R1
zu ersetzen durch
ADD R2,0(Rb).
Seite 3 / 4

U ̈bung5 RAWiSe18/19
Durch den neuen Instruktionstypen erho ̈ht sich die Taktperiode um 10%. Die Ha ̈ufigkeit, mit der eine Instruktion ausgefu ̈hrt wird, ist durch die Benchmark-Programme aus Tabelle 2 gegeben. Die neue Instruktion betrifft lediglich die Taktperiode, nicht aber den CPI- Wert.
Instruktion
Ha ̈ufigkeit
Instruktion
Ha ̈ufigkeit
load
22,8%
jump
1,3%
store
14,3%
call
1,1%
add
14,6%
return, jmp ind
1,5%
sub
0,5%
shift
6,2%
mul
0,1%
and
1,6%
compare
12,4%
or
4,2%
load imm
6,8%
other(xor, not)
0,5%
cond branch
11,5%
Tabelle 2: Instruktionsmix fu ̈r fu ̈nf SPECint92 Programme mit dem gcc Compiler
(1) Wie viele der LOAD Operationen mu ̈ssen auf der Maschine mit der neuen Instruk- tion weniger ausgefu ̈hrt werden, um wenigstens die selbe Performance zu erreichen?
(2) Geben Sie ein Beispiel an, bei dem ein LOAD nach R1, gefolgt von einer Addition (oder einer beliebigen anderen Instruktion), nicht durch den neuen Register-Speicher Befehl ersetzt werden kann.
Seite 4 / 4