Universita ̈t Paderborn
Institut fu ̈r Elektrotechnik und Informationstechnik Fachgebiet Datentechnik
Prof. Sybille Hellebrand
Klausur Grundlagen der Rechnerarchitektur
13. Februar 2018
Punkteverteilung
Aufgabe
1
2
3
4
5
Σ
BP
Σ
maximale Punkte
10
20
20
20
20
90
9
99
erreichte Punkte
Note:
Aufkleber
Name:
Matrikelnummer:
Studienrichtung:
Hinweise:
Fu ̈r die Lo ̈sung der Klausuraufgaben sind ausschließlich die Aufgabenbla ̈tter zu verwenden. Lo ̈sungsangaben außerhalb der Aufgabenbla ̈tter (”Schmierzettel“, etc.) werden bei der Bewertung nicht beru ̈cksichtigt!
Beschriften Sie jede Doppelseite mit Ihrer Matrikelnummer!
Mit Bleistift oder der Korrekturfarbe rot angefertigte Lo ̈sungen werden nicht bewertet! Die Verwendung von ”Tipp-Ex“ oder ”Tintenkiller“ ist untersagt.
Es ist ein handgeschriebener DIN-A4 Zettel als Hilfsmittel zugelassen!
Es sind keine weiteren Hilfsmittel zugelassen!
Aufgabe 1 Matrikelnummer: Seite 3 Aufgabe 1: (Leistungsbewertung) 10 Punkte
a) Fu ̈r einen Prozessor soll der mo ̈gliche Speedup berechnet werden, der durch den Einsatz einer Fließkommaeinheit erreicht werden kann. Das verwendete Benchmark- Programm hat einen Anteil an Fließkommaoperationen von 30%. Wie hoch ist der maximale Speedup fu ̈r dieses Programm, wenn mit Hilfe der Fließkommaeinheit die Fließkommaoperationen 3 mal schneller ausgefu ̈hrt werden ko ̈nnen?
Bitte kreuzen Sie an.
5 4
7 6
6 5
Keine Lo ̈sung ist richtig.
(3 Punkte)
Aufgabe 1 GRA Seite 4
b) EinProzessorherstellertestetmitHilfeeinesBenchmark-ProgrammsdieLeistungsfa ̈hig- keit seines Prozessors. Das Programm fu ̈hrt hierzu 107 Instruktionen aus. Der Prozessor hat einen idealen CPI-Wert von 2 und wird mit einer Taktrate von 2 GHz betrie- ben. Der Fehlgriffsaufwand (engl.: miss-penalty) des verwendeten Caches liegt bei 50 CPU-Taktzyklen. In dem verwendeten Benchmark-Programm tritt bei Befehlen eine Fehlgriffsrate (engl.: miss-rate) von 2% auf und bei Daten von 4%, wobei die Ha ̈ufigkeit der Datenzugriffe bei 50% liegt. Wie hoch ist die Ausfu ̈hrungszeit des Benchmark-Programms auf der beschriebenen Architektur?
Bitte kreuzen Sie an!
11 ms
20 ms
25 ms
Keine Lo ̈sung ist richtig.
(4 Punkte)
Aufgabe 1 Matrikelnummer: Seite 5
c) Der Prozessorhersteller mo ̈chte nun die Speicherzugriffszeit verringern. Hierzu wird ein Level-2-Cache eingebaut. Die technischen Daten des Level-1-Caches und des Level-2-Caches sind wie folgt:
Bezeichnung
Trefferzeit (engl.: hit-time) Fehlgriffsaufwand (engl.: miss-penalty)
Level-1-Cache Level-2-Cache
2 Takte
mittlere Zugriffszeit L2
Fehgriffsrate (engl.: miss-rate)
Daten
4%
9 Takte 50 Takte 2%
2%
Befehle
2%
Die Wahrscheinlichkeit fu ̈r Datenzugriffe betra ̈gt 50%.
Wie viele Takte werden im Durchschnitt beno ̈tigt, um auf den Speicher zuzugreifen? Bitte kreuzen Sie an. (3 Punkte)
13 Takte
50 Takte
15 Takte
Keine Lo ̈sung ist richtig.
Aufgabe 2 GRA Seite 6
Aufgabe 2: (Assembler) 20 Punkte Die Tribonaccifolge ist rekursiv definiert durch:
T(n)=T(n−1)+T(n−2)+T(n−3) mit T(0)=T(1)=T(2)=1
Gegeben ist die folgende Prozedur trib in MIPS-Assembler, welche die n-te Tribonaccizahl, fu ̈r n ≥ 0, iterativ berechnet. Entsprechend der MIPS-Konventionen fu ̈r die Registerver- gabe befindet sich bei Aufruf der Prozedur der Eingabewert n im Register $a0 und der Ru ̈ckgabewert T(n) wird im Register $v0 erwartet.
trib: slti $t0,
beq $t0,
add $v0,
$a0, 3
$zero, L1
$zero, 1
$zero, 1
$zero, 1
$zero, 1
$a0, 2
$t0, $t1
$t4, $t2
$zero, $t1
$zero, $t2
$zero, $t4
$t3, -1
$zero, L2
$zero, $t4
# wenn n<3 dann gib 1 zurueck
#
#
#
# wenn n>=3 dann iterative Berechnung
# initialisiere $t0 mit T(0)
# initialisiere $t1 mit T(1)
# initialisiere $t2 mit T(2)
# initialisiere $t3 als Schleifenzaehler
# bestimme T(n)
#
# $t0 haelt neues T(n-3)
# $t1 haelt neues T(n-2)
# $t2 haelt neues T(n-1)
# erniedrige Schleifenzaehler
# Abbruch wenn Schleifenzaehler gleich null
# gib T(n) zurueck
#
jr$ra
add $t0,
add $t1,
add $t2,
subi $t3,
L2: add
add $t4,
add $t0,
add $t1,
add $t2,
addi $t3,
bne $t3,
add $v0, jr$ra
L1:
$t4,
a) Bestimmen Sie Ic(trib, n), die Anzahl der Instruktionen, die in der Prozedur trib in Abha ̈ngigkeit von n ausgefu ̈hrt werden, wenn sie mit n ≥ 3 aufgerufen wird.
(4 Punkte)
Ic(trib, n) =
b) Bestimmen Sie Ic(trib,3), die Anzahl der Instruktionen, die in der Prozedur trib
fu ̈r n = 3 ausgefu ̈hrt werden. (1 Punkte) Ic(trib, 3) =
Aufgabe 2 Matrikelnummer: Seite 7
c) Vervollsta ̈ndigen Sie die untenstehende Assemblerprozedur tribR, welche die Berech- nung von T (n) rekursiv implementiert. Der Prozeduraufrufrahmen ist vier Worte groß
und folgendermaßen aufgebaut:
(10 Punkte)
$sp
tribR: slti
beq $t0,
add $v0,
jr $ra
# wenn n<3 dann gib 1 zurueck
# wenn n>=3 dann rekursive Berechnung
# schaffe Platz am Stack
# sichere Ruecksprungadresse
# bestimme Argument n-1
# sichere Argument n-1 auf den Stack
# berechne T(n-1)
# sichere T(n-1) auf den Stack
# lies n-1 vom Stack
# bestimme Argument n-2
# sichere n-2 auf den Stack
# berechne T(n-2)
# sichere T(n-2) auf den Stack
# lies n-2 vom Stack
# bestimme Argument n-3
# bestimme T(n-3)
# lies T(n-1) vom Stack
# lies T(n-2) vom Stack
# bestimme T(n) =
# T(n-1)+T(n-2)+T(n-3)
# stelle Ruecksprungadresse wieder her
# gib Platz am Stack wieder frei
$t0, $a0, 3
$zero, L1
L1: ___________________________
___________________________
addi $a0, $a0, -1
sw $a0, ___________
___________________________
sw $v0,
___________
lw $a0,
addi $a0,
sw $a0,
___________________________
sw $v0,
___________
lw $a0,
addi $a0,
___________________________
lw $t0,
lw $t1,
add $t3,
add $v0,
___________
___________
$t0, $t1
$v0, $t3
___________________________
___________________________
jr $ra
$zero, 1
___________
$a0, -1
___________
___________
$a0, -1
Aufgabe 2 GRA Seite 8
d) Bestimmen Sie Ic(tribR,3) und vergleichen Sie die Performance der zwei Prozeduren unter der Annahme einer MIPS-Einzyklenimplementierung mit der Taktfrequenz von f = 200 MHz. Um welchen Faktor ist die iterative Implementierung fu ̈r n = 3 schneller? (5 Punkte)
Ic(tribR, 3) =
Die iterative Implementierung ist um den Faktor schnel- ler.
Aufgabe 3 Matrikelnummer: Seite 9 Aufgabe 3: (Datenpfad) 20 Punkte
Der MIPS-Instruktionssatz, soll um den Befehl swap erweitert werden. Dem Befehl werden zwei Registeradressen u ̈bergeben (r1 und r2). Nach Ausfu ̈hrung des Befehls sollen die Registerinhalte ausgetauscht worden sein, d.h. wenn die Registerinhalte vor dem Swap- Befehl R[r1] = x und R[r2] = y sind, dann muss nach dem Swap-Befehl R[r1] = y und R[r2] = x gelten. Es du ̈rfen ausschließlich die beiden angegebenen Register verwendet werden.
Hinweis: Mit Hilfe des XOR swap Algorithmus ko ̈nnen zwei Zahlen getauscht werden. Algorithmus 1 zeigt den Pseudocode des Algorithmus.
Algorithm 1 XOR swap Algorithmus 1: x←xxory
2: y←yxorx
3: x←xxory
a) Abbildung 1 zeigt eine Einzyklenimplementierung des MIPS Instruktionssatzes. Ist die Ausfu ̈hrung des zuvor definierten Befehls swap mit Hilfe des gezeigten Datenpfades
mo ̈glich? Begru ̈nden Sie Ihre Antwort kurz.
(3 Punkte)
Add
0
M u x
PC
Read address
Instruction [31-0]
Instruction memory
4M
Shift left 2
Add ALU result
1 u x
1
M u x 0
&
Instruction [31-26]
Instruction [25-21]
Control
Jump
Branch MemRead MemToReg ALUOp MemWrite ALUSrc RegWrite RegDest
16
Read register 1
Read data 1
Read data 2
Instruction [20-16]
Read register 2
Write register
Write data
Registers
Sign extend
32
Abbildung 1: Einzyklenimplementierung des MIPS Instruktionssatzes
Antwort: ………………………………………………………………. ……………………………………………………………………….. ………………………………………………………………………..
ALU control
0
Zero
ALU ALU result
0
M
u Instruction [15-11] x
1
0
Address Read data
M u x
1
Instruction [15-0]
Write
data Data
memory
1
Instruction [5-0]
Aufgabe 3 GRA Seite 10
b)
Abbildung 2 zeigt den Zustandsautomaten, der die Steuerung einer Mehrzyklenimple- mentierung des MIPS-Instruktionssatzes beschreibt. Erweitern Sie den Automaten so, dass der neue Befehl swap unterstu ̈tzt wird. Beachten Sie ggf. beno ̈tigte A ̈nderungen des Datenpfads. Ersatz in Abbildung 4. (10 Punkte)
Hinweis: Bei ALUOp=10 entscheidet der ALU-Kontroller welche Operation von der ALU ausgefu ̈hrt wird.
Start
Instruction Fetch
MemRead = 1 ALUSourceA = 0 IorD = 0 IRWrite = 1 ALUSourceB = 01 ALUOp = 00 PCWrite = 1 PCSource = 00
Instruction Decode/ Register Fetch
ALUSourceA = 0 ALUSourceB = 11 ALUOp = 00
Memory Address Computation
ALUSourceA = 1 ALUSourceB = 10 ALUOp = 00
Memory access
MemRead = 1 IorD = 1
Execution
ALUSourceA = 1 ALUSourceB = 00 ALUOp = 10
Memory access
MemWrite = 1 IorD = 1
Branch Jump
Completion
ALUSourceA = 1 ALUSourceB = 00 ALUOp = 10 PCWriteCond = 1 PCSource = 01
R-Type Completion
RegDst = 1 RegWrite = 1 MemToReg = 0
Completion
PCWrite = 1 PCSource = 10
Memory Read Completion Step
RegDst = 0 RegWrite = 1 MemToReg = 1
Abbildung 2: Zustandsautomat der Steuerung der Mehrzyklenimplementierung
(Op = ‘BEQ’)
(Op = ‘j’)
(Op = R-Type)
(Op = ‘LW’) or (Op = ‘SW)’
(Op = ‘SW’)
(Op = ‘LW’)
Aufgabe 3 Matrikelnummer: Seite 11
c) Erweitern Sie den Datenpfad in Abbildung 3 so, dass der Befehl swap unterstu ̈tzt wird. Zeichnen Sie hierzu alle notwendigen Daten- und Kontrollleitungen in die Abbildung 3 ein. Ersatz in Abbildung 5. (3 Punkte)
Abbildung 3: Mehrzyklenimplementierung des MIPS Instruktionssatzes
PC 0 1
u Address Instruction x [25-21]
Read M
Mem Data Write Data
0 M
ALU ALU Result
Memory
[15-11] 1 Register 0M
Write 4 1u
PCWriteCond PCWrite
PCSource ALUOp
IorD MemRead MemWrite
Outputs Control
ALUSourceA
MemtoReg IRWrite
Op [5-0]
ALUSourceB RegWrite
Instruction
PC [31-28]
[31-26] M0
Instruction [20-16]
Read Register 2
Data 1
Zero
Instruction [15-0]
u Instruction x
Write Read Register Data 2
B 0M
ALUOut
Instruction
Data
2x 3
Memory Data Register
1
u x
Instruction [15-0] 16
Sign Extend
32
Shift Left 2
ALU Control
Instruction [5-0]
RegDest
Instruction [25-0]
2
x
Register 1
u Read A 1x
Registers
26 Shift Left 2
Address 28 32 [31-0]
1 u
Jump
0 M
Aufgabe 3
GRA
Seite 12
Start
Instruction Fetch
MemRead = 1 ALUSourceA = 0 IorD = 0 IRWrite = 1 ALUSourceB = 01 ALUOp = 00 PCWrite = 1 PCSource = 00
Instruction Decode/ Register Fetch
ALUSourceA = 0 ALUSourceB = 11 ALUOp = 00
Memory Address Computation
ALUSourceA = 1 ALUSourceB = 10 ALUOp = 00
Memory access
MemRead = 1 IorD = 1
Execution
ALUSourceA = 1 ALUSourceB = 00 ALUOp = 10
Memory access
MemWrite = 1 IorD = 1
Branch Completion
ALUSourceA = 1 ALUSourceB = 00 ALUOp = 10 PCWriteCond = 1 PCSource = 01
R-Type Completion
RegDst = 1 RegWrite = 1 MemToReg = 0
Jump Completion
PCWrite = 1 PCSource = 10
Memory Read Completion Step
RegDst = 0 RegWrite = 1 MemToReg = 1
Abbildung 4: Ersatz fu ̈r b), ungu ̈ltige Lo ̈sung streichen!
(Op = ‘BEQ’)
(Op = ‘j’)
(Op = R-Type)
(Op = ‘LW’) or (Op = ‘SW)’
(Op = ‘SW’)
(Op = ‘LW’)
Aufgabe 3 Matrikelnummer: Seite 13
Abbildung 5: Ersatz fu ̈r c), ungu ̈ltige Lo ̈sung streichen!
PC 0 1
u Address Instruction x [25-21]
Read M
Mem Data Write Data
0 M
ALU ALU Result
Memory
[15-11] 1 Register 0M
Write 4 1u
PCWriteCond PCWrite
PCSource ALUOp
IorD MemRead MemWrite
Outputs Control
ALUSourceA
MemtoReg IRWrite
Op [5-0]
ALUSourceB RegWrite
Instruction
PC [31-28]
[31-26] M0
Instruction [20-16]
Read Register 2
Data 1
Zero
Instruction [15-0]
u Instruction x
Write Read Register Data 2
B 0M
ALUOut
Instruction
Data
2x 3
Memory Data Register
1
u x
Instruction [15-0] 16
Sign Extend
32
Shift Left 2
ALU Control
Instruction [5-0]
RegDest
Instruction [25-0]
2
x
Register 1
u Read A 1x
Registers
26 Shift Left 2
Address 28 32 [31-0]
1 u
Jump
0 M
Aufgabe 3 GRA Seite 14
d) Geben Sie das Befehlsformat fu ̈r den Befehl swap an. Wa ̈hlen Sie hierzu einen der drei aus der Vorlesung bekannten Befehlstypen. Tragen Sie sowohl den Befehlstypen, die Bezeichnungen der einzelnen Befehlsbereiche, das Start- und Endbit der einzelnen Bereiche und den Inhalt der einzelnen Bereiche in die Abbildung 6 ein. (4 Punkte)
Befehlstyp:
Befehlstyp:
31 0
Inhalt:
Abbildung 6: Befehlsformat fu ̈r den Befehl swap
31 0
Inhalt:
Abbildung 7: Ersatz, ungu ̈ltige Lo ̈sung streichen!
opcode
‘swap’
opcode
‘swap’
Aufgabe 4 Matrikelnummer: Seite 15
Aufgabe 4: (Speicher) 20 Punkte
Gegeben sei ein Computer, der zur Beschleunigung der Speicherzugriffe auf den byteadres- sierten Arbeitsspeicher mit einem Adressraum von 4 GB (32-Bit-Adressen) einen Cache mit 8 Rahmen vorsieht, wobei jeder Rahmen 4 Worte zu je 32 Bit umfasst. Der Cache sei als 2-fach mengenassoziativer Cache (2-way-set-associative) organisiert.
a) Bestimmen Sie die Gro ̈ßen von Tag, Index, Wortoffset und Byteoffset und zeichnen Sie die Grenzen durch senkrechte Striche in Abbildung 8 ein. Beschriften Sie die entstehenden Felder mit der jeweiligen Bitanzahl und Bezeichnung.
Hinweis: Die Felder mu ̈ssen nicht in den richtigen Proportionen gezeichnet werden.
31 0
Abbildung 8: Adressaufteilung
(2 Punkte)
b) Wie viel Speicher wird fu ̈r die Implementierung eines solchen Caches (inkl. Overhead) beno ̈tigt? Geben Sie den Rechenweg und das Ergebnis in Byte an.
Hinweis: Fu ̈r den Zustand eines Cache-Rahmens wird genau ein Statusbit verwendet
(Valid-Bit).
(3 Punkte)
Cache-Gro ̈ße (in Byte):
Aufgabe 4 GRA Seite 16
c) Der Prozessor la ̈dt nun sequentiell die Daten der folgenden Byteadressen (fu ̈hrende Nullen werden nicht mit angegeben):
t=1: 0xc25 = 1100 0010 0101
t=2: 0x6db = 0110 1101 1011
t=3: 0x768 = 0111 0110 1000
t=4: 0x6d0 = 0110 1101 0000
t=5: 0xa5a = 1010 0101 1010
t=6: 0x0a1 = 0000 1010 0001
t=7: 0xaf3 = 1010 1111 0011
t=8: 0x6d7 = 0110 1101 0111
t=9: 0x690 = 0110 1001 0000
Initial ist der Cache leer. Geben Sie nach jedem Speicherzugriff den Zustand des Caches an. Fu ̈llen Sie hierzu die nachfolgenden Tabellen aus. Markieren Sie alle Hits. Geben Sie an, welche Ersetzungsstrategie Sie verwenden und begru ̈nden Sie ihre Wahl kurz.
Hinweis: Schreiben Sie z.B. a – b fu ̈r den Datenbereich von Adresse a bis b.
(15 Punkte)
Ersetzungsstrategie:
Begu ̈ndung: ……………………………………………………………
……………………………………………………………………….. ……………………………………………………………………….. ………………………………………………………………………..
t=1: Hit? 0xc25 Ja
t=2: Hit? 0x6db Ja
Index
Tag
Datenbereich
2
110000
0xc20-0xc2f
Index
Tag
Datenbereich
Aufgabe 4
Matrikelnummer:
Seite 17
Index
Tag
Datenbereich
t=3: 0x768
t=4: 0x6d0
t=5: 0xa5a
t=6: 0x0a1
t=7: 0xaf3
t=8: 0x6d7
t=9: 0x690
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Aufgabe 4 GRA Ersatztabellen, ungu ̈ltige Tabellen streichen!:
t= :
t= :
t= :
t= :
t= :
Seite 18
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Hit?
Ja
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Index
Tag
Datenbereich
Aufgabe 5 Matrikelnummer: Seite 19
Aufgabe 5: (Pipelining) 20 Punkte
Wenn ein Programm auf einem Prozessor mit einer 5-stufigen MIPS-Pipeline ausgefu ̈hrt wird, ko ̈nnen verschiedene Hazards zu einem Pipeline Stall fu ̈hren. Gegeben sei fu ̈r diese Aufgabe folgendes Programm, welches zu Data Hazards fu ̈hrt:
add $t1, $t2, $t3
lw $t4, 0($t1)
sub $t5, $t4, $t3
or $t7, $t1, $t6
a) Wie heißen die drei Hazardsorten die beim Pipelining auftreten ko ̈nnen? Ordnen Sie sie ihrer jeweiligen Beschreibung zu. (3 Punkte)
i)
ii)
iii)
-Hazard:
Die HW unterstu ̈tzt die gegebene Ausfu ̈hrungsreihenfolge von Operationen nicht.
-Hazard:
Der Operand eines Befehls ist das Ergebnis einer anderen Operation, die noch
in einer nachfolgenden Stufe der Pipeline bearbeitet wird.
-Hazard:
Bedingte Sprunganweisungen fu ̈hren zum Anhalten der Pipeline, solange bis das
Sprungziel berechnet und die Sprungbedingung ausgewertet ist.
b) Betrachten Sie zuerst wie die Befehle in einer Pipeline ohne Optimierungen (also nur mit Pipeline Stall) abgearbeitet werden, indem Sie dafu ̈r Abbildung 9 ausfu ̈llen. Beachten Sie, dass Register im selben Takt gelesen und beschrieben werden ko ̈nnen und in diesem Fall den neuen Wert zuru ̈ckgeben. Ersatztabelle in Abbildung 12.
(5 Punkte)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Takte
add $t1, $t2, $t3
IF
ID
EX
ME
WB
Abbildung 9: Pipelinebelegung mit Pipeline Stall.
Aufgabe 5 GRA Seite 20
add $t1, $t2, $t3
lw $t4, 0($t1)
sub $t5, $t4, $t3
or $t7, $t1, $t6
c) Fu ̈llen Sie nun Abbildung 10 aus fu ̈r eine Pipeline, die zusa ̈tzlich Forwarding als Optimierung bietet. Verdeutlichen Sie alle Stellen, an denen Forwarding eingesetzt wird, mit Pfeilen. Ersatztabelle in Abbildung 13. (5 Punkte)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Takte
add $t1, $t2, $t3
IF
ID
EX
ME
WB
Abbildung 10: Pipelinebelegung mit Forwarding.
d) Wie heißt der spezielle Konflikt, der in c) noch auftritt? (2 Punkte)
e) In der Vorlesung haben Sie eine weitere Mo ̈glichkeit kennengelernt mit der Sie Data Hazards auflo ̈sen ko ̈nnen. Wenden Sie diese Methode nun hier zusa ̈tzlich zum For- warding an, um alle Data Hazards in dem Programm aufzulo ̈sen. Fu ̈llen Sie dafu ̈r Abbildung 11 aus. Verdeutlichen Sie wiederum alle Stellen, an denen Forwarding eingesetzt wird, mit Pfeilen. Ersatztabelle in Abbildung 14. (5 Punkte)
Takte
add $t1, $t2, $t3
Abbildung 11: Pipelinebelegung mit allen Optimierungen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
IF
ID
EX
ME
WB
Aufgabe 5
Ersatztabellen fu ̈r b) – e).
Matrikelnummer: Seite 21
Takte 1 2 3 4
add $t1, $t2, $t3 IF ID EX ME WB
Abbildung 12: Ersatztabelle fu ̈r Pipelinebelegung mit Pipeline Stall.
Ungu ̈ltige Lo ̈sungen streichen!
Takte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 add $t1, $t2, $t3 IF ID EX ME WB
Abbildung 13: Ersatztabelle fu ̈r Pipelinebelegung mit Forwarding.
Ungu ̈ltige Lo ̈sungen streichen!
Takte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 add $t1, $t2, $t3 IF ID EX ME WB
Abbildung 14: Ersatztabelle fu ̈r Pipelinebelegung mit allen Optimierungen.
Ungu ̈ltige Lo ̈sungen streichen!
Takte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 add $t1, $t2, $t3 IF ID EX ME WB
Abbildung 15: Generische Ersatztabelle. Unbedingt erkla ̈ren fu ̈r welchen Aufgabenteil sie gelten soll. Ungu ̈ltige Lo ̈sungen streichen!
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Zusatzblatt fu ̈r Notizen GRA Seite 22
Zusatzblatt fu ̈r Notizen Matrikelnummer: Seite 23
Zusatzblatt fu ̈r Notizen GRA Seite 24
Zusatzblatt fu ̈r Notizen Matrikelnummer: Seite 25