© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

54
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1

Transcript of © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

Page 1: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.1

Page 2: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.2

Kapitel 11: Optimierung von Ressourcen-Nutzung und Prozessorleistung

Page 3: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 4: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.4

Abstraktions- bzw. Sprachebenen im Rechner.

Page 5: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.5

11.1 Prinzip der virtuellen Speicherung.

Page 6: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 7: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 8: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.8

11.4 Adressumsetzung bei einer Segmentierung.

Page 9: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.9

11.5 Beispiel für die Verwendung von Segmentierung.

Page 10: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.10

11.6 Mehrfachverwendung von Programmen durch Segmentierung.

Page 11: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.11

11.7 Adressübersetzungskomponenten der MMU beim PowerPC 601.

Page 12: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.12

11.8 Memory Management Unit der PowerPC-Architektur.

Page 13: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.13

11.9 Cache-Organisation des PowerPC 601.

Page 14: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.14

11.10 Anbindung des 601-Cache an andere Einheiten.

Page 15: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.15

11.11 Warteschlangen der Memory Unit des 601.

Page 16: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.16

11.12 Zustände beim MESI-Protokoll.

Page 17: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.17

11.13 Transformation einer logischen in eine physikalische Adresse beim PowerPC 601.

Page 18: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.18

11.14 Prinzip des Befehlsphasen- (Instruction Level-) Pipelining (ILP).

Page 19: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.19

11.15 Einfaches Befehlsphasen-Pipelining.

Page 20: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.20

11.16 5-stufige RISC-Pipeline.

Page 21: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 22: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.22

11.18 Zeitlicher Programmfluß bei 5-stufiger Pipeline.

WBMemExecDcdIFetch

WBMemExecDcdIFetch

WBMemExecDcdIFetch

WBMemExecDcdIFetch

WBMemExecDcdIFetch

WBMemExecDcdIFetchProgrammfluß

Zeit

Page 23: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.23

11.19: Prinzip einer Superskalar-Architektur.

Page 24: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 25: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 26: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 27: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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.

Page 28: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 29: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 30: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 31: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 32: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 33: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 34: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 35: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 36: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 37: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 38: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 39: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 40: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 41: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 42: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 43: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 44: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.44

Einige Zykel später…

Page 45: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 46: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 47: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 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

Page 48: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.48

11.28 Präferenzordnung zu Beispiel 11.1.

Page 49: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.49

11.29 (Optimaler) Schedule zu Beispiel 11.1.

Page 50: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.50

11.30 (Suboptimaler) Schedule zu Beispiel 11.1.

Page 51: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.51

11.31 CPM-generierter Schedule zu Beispiel 11.2.

Page 52: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.52

11.32 Optimaler Schedule zu Beispiel 11.2.

Page 53: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.53

11.33 LPT-generierter Schedule zu Beispiel 11.3.

Page 54: © 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1.

© 2006 W. Oberschelp, G. VossenRechneraufbau & Rechnerstrukturen, Folie 11.54

11.34 Optimaler Schedule zu Beispiel 11.3.