© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.
-
Upload
stefan-dotter -
Category
Documents
-
view
102 -
download
0
Transcript of © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.1
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.2
Kapitel 11: Optimierung von Ressourcen-Nutzung und Prozessorleistung
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.3
Übersicht
• Virtueller Speicherverwaltung
• Pipelining
• Dynamisches Scheduling von Instruktionen nach Tomasulo
• Weitere ILP-Techniken
• Grenzen der Parallelarbeit:Scheduling bei 2 Prozessoren
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.4
Abstraktions- bzw. Sprachebenen im Rechner.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.5
11.1 Prinzip der virtuellen Speicherung.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.6
11.2 Funktionsweise der virtuellen Speicherung.
Seite n
Seite 2
Seite 1
Seite 0
…
logischeAdresse
Seitentabelle
physikalischeAdresse im
Hauptspeicher
Sekundärspeicher
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.7
11.3 Adressumsetzung beim Paging.
Seite 3
Seite 2
Seite 1
Seite 0
73
32
41
10
virtuellerAdressraum
Seiten-tabelle
Seite 37
6
5
Seite 14
Seite 23
2
Seite 01
0
physikalischerAdressraum
Frame-nummer
Offset
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.8
11.4 Adressumsetzung bei einer Segmentierung.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.9
11.5 Beispiel für die Verwendung von Segmentierung.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.10
11.6 Mehrfachverwendung von Programmen durch Segmentierung.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.11
11.7 Adressübersetzungskomponenten der MMU beim PowerPC 601.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.12
11.8 Memory Management Unit der PowerPC-Architektur.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.13
11.9 Cache-Organisation des PowerPC 601.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.14
11.10 Anbindung des 601-Cache an andere Einheiten.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.15
11.11 Warteschlangen der Memory Unit des 601.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.16
11.12 Zustände beim MESI-Protokoll.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.17
11.13 Transformation einer logischen in eine physikalische Adresse beim PowerPC 601.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.18
11.14 Prinzip des Befehlsphasen- (Instruction Level-) Pipelining (ILP).
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.19
11.15 Einfaches Befehlsphasen-Pipelining.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.20
11.16 5-stufige RISC-Pipeline.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.21
11.17 5-stufige RISC-Pipeline mit Taktung.
WrMemExecDcdIFetch
Takt 4Takt 3Takt 2Takt 1 Takt 5
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.22
11.18 Zeitlicher Programmfluß bei 5-stufiger Pipeline.
WBMemExecDcdIFetch
WBMemExecDcdIFetch
WBMemExecDcdIFetch
WBMemExecDcdIFetch
WBMemExecDcdIFetch
WBMemExecDcdIFetchProgrammfluß
Zeit
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.23
11.19: Prinzip einer Superskalar-Architektur.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.24
11.20 Datenhasard zwischen Addition undnachfolgender Subtraktion.
IF Dcd Mem Wr
ALU
IF Dcd Mem Wr
ALUsub r4, r1, r5
add r1, r2, r3
Zeit (Takte) 2 3 4 651
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.25
11.21 Auflösung eines Datenhasard durchBubble-Einfügung.
IF Dcd Mem Wr
ALU
IF Dcd Mem Wr
ALUsub
add
Zeit (Takte)2 3 4 651
Bubble
7 8
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.26
11.22 Elimination eines Datenhasard durchForwarding.
IF Dcd Mem Wr
ALU
IF Dcd Mem Wr
ALUsub
add
Zeit (Takte) 2 3 4 651
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.27Common Data Bus (CDB)
F-Registers
F30
……
F12
F10
F8
F6
F4
F2
F0
ValueReg
FP Adders/MultipliersFP Adders/Multipliers
0Mult2
0Mult1
0Add3
0Add2
0Add1
QbQaVbVaOpBusyNameTime
0Store3
0Store2
0Store1
0Load3
0Load2
0Load1
FUAdr.Busy
Write
Result
Exec Compl
IssuebaInstructionITER
Reservation Stations
Load/Store Buffers
Instruction Status
11.23 Arbeitseinheitenfür dynamischesScheduling.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.28
Clock
1
Common Data Bus (CDB)
F-Registers
Reg Value
F0
F2
F4
F6 Load1
F8
F10
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
Mult2 0
Busy Adr. FU
Load1 1 34+r2
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.29
Clock
2
Common Data Bus (CDB)
F-Registers
Reg Value
F0
F2 Load2
F4
F6 Load1
F8
F10
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
Mult2 0
Busy Adr. FU
Load1 1 34+r2
Load2 1 45+r3
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1
lfp f2 45 r3 2
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.30
Clock
3
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 Load2
F4
F6 Load1
F8
F10
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 1 fmul FR(f4) Load2
Mult2 0
Busy Adr. FU
Load1 1 34+r2
Load2 1 45+r3
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3
lfp f2 45 r3 2
fmul f0 f2 f4 3
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.31
Clock
4
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 Load2
F4
F6 M(A1)
F8 Add1
F10
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 1 fsub M(A1) Load2
Add2 0
Add3 0
Mult1 1 fmul FR(f4) Load2
Mult2 0
Busy Adr. FU
Load1 0
Load2 1 45+r3
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4
fmul f0 f2 f4 3
fsub f8 f6 f2 4
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.32
Clock
5
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 M(A1)
F8 Add1
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
2 Add1 1 fsub M(A1) M(A2)
Add2 0
Add3 0
10 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4
fdiv f10 f0 f6 5
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.33
Clock
6
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 Add2
F8 Add1
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
1 Add1 1 fsub M(A1) M(A2)
Add2 1 fadd M(A2) Add1
Add3 0
9 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER
Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4
fdiv f10 f0 f6 5
fadd f6 f8 f2 6
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.34
Clock
7
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 Add2
F8 Add1
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
0 Add1 1 fsub M(A1) M(A2)
Add2 1 fadd M(A2) Add1
Add3 0
8 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7
fdiv f10 f0 f6 5
fadd f6 f8 f2 6
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.35
Clock
8
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 Add2
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
2 Add2 1 fadd (M-M) M(A2)
Add3 0
7 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.36
Clock
9
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 Add2
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
1 Add2 1 fadd (M-M) M(A2)
Add3 0
6 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.37
Clock
10
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 Add2
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
0 Add2 1 fadd (M-M) M(A2)
Add3 0
5 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.38
Clock
11
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
4 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.39
Clock
12
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
3 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.40
Clock
13
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
2 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.41
Clock
14
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
1 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.42
Clock
15
Common Data Bus (CDB)
F-Registers
Reg Value
F0 Mult1
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
0 Mult1 1 fmul M(A2) FR(f4)
Mult2 1 fdiv M(A1) Mult1
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3 15
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.43
Clock
16
Common Data Bus (CDB)
F-Registers
Reg Value
F0 M*f4
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
40 Mult2 1 fdiv M*f4 M(A1)
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3 15 16
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.44
Einige Zykel später…
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.45
Clock
55
Common Data Bus (CDB)
F-Registers
Reg Value
F0 M*f4
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
1 Mult2 1 fdiv M*f4 M(A1)
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3 15 16
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.46
Clock
56
Common Data Bus (CDB)
F-Registers
Reg Value
F0 M*f4
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
0 Mult2 1 fdiv M*f4 M(A1)
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3 15 16
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5 56
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.47
Clock
57
Common Data Bus (CDB)
F-Registers
Reg Value
F0 M*f4
F2 M(A2)
F4
F6 (M-M+M)
F8 (M-M)
F10 Mult2
F12
… …
F30
FP Adders/MultipliersFP Adders/Multipliers
Time Name Busy Op Va Vb Qa Qb
Add1 0
Add2 0
Add3 0
Mult1 0
Mult2 1 fdiv M*f4 M(A1)
Busy Adr. FU
Load1 0
Load2 0
Load3 0
Store1 0
Store2 0
Store3 0
ITER Instruction a b Issue Exec Compl
Write
Result
lfp f6 34 r2 1 3 4
lfp f2 45 r3 2 4 5
fmul f0 f2 f4 3 15 16
fsub f8 f6 f2 4 7 8
fdiv f10 f0 f6 5 56 57
fadd f6 f8 f2 6 10 11
Reservation Stations
Load/Store Buffers
Instruction StatusProgrammcodeProgrammcodeProgrammcodeProgrammcode
lfp f6, 34(r2)lfp f2, 45(r3)fmul f0, f2, f4fsub f8, f6, f2fdiv f10, f0, f6fadd f6, f8, f2
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.48
11.28 Präferenzordnung zu Beispiel 11.1.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.49
11.29 (Optimaler) Schedule zu Beispiel 11.1.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.50
11.30 (Suboptimaler) Schedule zu Beispiel 11.1.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.51
11.31 CPM-generierter Schedule zu Beispiel 11.2.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.52
11.32 Optimaler Schedule zu Beispiel 11.2.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.53
11.33 LPT-generierter Schedule zu Beispiel 11.3.
© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.54
11.34 Optimaler Schedule zu Beispiel 11.3.