© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.1
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.2 Kapitel 11: Optimierung von Ressourcen-Nutzung und Prozessorleistung
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & 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. Vossen Rechneraufbau & Rechnerstrukturen, Folie 11.4 Abstraktions- bzw. Sprachebenen im Rechner.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Prinzip der virtuellen Speicherung.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Funktionsweise der virtuellen Speicherung. Seite n Seite 2 Seite 1 Seite 0 … logische Adresse Seitentabelle physikalische Adresse im Hauptspeicher Sekundärspeicher
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Adressumsetzung beim Paging. Seite 3 Seite 2 Seite 1 Seite virtueller Adressraum Seiten- tabelle Seite Seite 1 4 Seite Seite physikalischer Adressraum Frame- nummer Offset
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Adressumsetzung bei einer Segmentierung.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Beispiel für die Verwendung von Segmentierung.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Mehrfachverwendung von Programmen durch Segmentierung.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Adressübersetzungskomponenten der MMU beim PowerPC 601.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Memory Management Unit der PowerPC-Architektur.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Cache-Organisation des PowerPC 601.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Anbindung des 601-Cache an andere Einheiten.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Warteschlangen der Memory Unit des 601.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Zustände beim MESI-Protokoll.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Transformation einer logischen in eine physikalische Adresse beim PowerPC 601.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Prinzip des Befehlsphasen- (Instruction Level-) Pipelining (ILP).
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Einfaches Befehlsphasen-Pipelining.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie stufige RISC-Pipeline.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie stufige RISC-Pipeline mit Taktung. WrMemExecDcdIFetch Takt 4Takt 3Takt 2Takt 1 Takt 5
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Zeitlicher Programmfluß bei 5-stufiger Pipeline. WBMemExecDcdIFetch WBMemExecDcdIFetch WBMemExecDcdIFetch WBMemExecDcdIFetch WBMemExecDcdIFetch WBMemExecDcdIFetch Programmfluß Zeit
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie : Prinzip einer Superskalar-Architektur.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Datenhasard zwischen Addition und nachfolgender Subtraktion. IFDcdMemWr ALU IFDcdMemWr ALU sub r4, r1, r5 add r1, r2, r3 Zeit (Takte)
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Auflösung eines Datenhasard durch Bubble-Einfügung. IFDcdMemWr ALU IFDcd MemWr ALU sub add Zeit (Takte) Bubble 78
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Elimination eines Datenhasard durch Forwarding. IFDcdMemWr ALU IFDcdMemWr ALU sub add Zeit (Takte)
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Arbeitseinheiten für dynamisches Scheduling.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 1 Common Data Bus (CDB) F-Registers RegValue F0 F2 F4 F6Load1 F8 F10 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 Mult20 BusyAdr.FU Load1134+r2 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r21 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 2 Common Data Bus (CDB) F-Registers RegValue F0 F2Load2 F4 F6Load1 F8 F10 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 Mult20 BusyAdr.FU Load1134+r2 Load2145+r3 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r21 lfpf245r32 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 3 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2Load2 F4 F6Load1 F8 F10 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult11fmulFR(f4)Load2 Mult20 BusyAdr.FU Load1134+r2 Load2145+r3 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r213 lfpf245r32 fmulf0f2f43 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 4 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2Load2 F4 F6M(A1) F8Add1 F10 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add11fsubM(A1)Load2 Add20 Add30 Mult11fmulFR(f4)Load2 Mult20 BusyAdr.FU Load10 Load2145+r3 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r324 fmulf0f2f43 fsubf8f6f24 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 5 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6M(A1) F8Add1 F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb 2Add11fsubM(A1)M(A2) Add20 Add30 10Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f24 fdivf10f0f65 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 6 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6Add2 F8Add1 F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb 1Add11fsubM(A1)M(A2) Add21faddM(A2)Add1 Add30 9Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITE R InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f24 fdivf10f0f65 faddf6f8f26 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 7 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6Add2 F8Add1 F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb 0Add11fsubM(A1)M(A2) Add21faddM(A2)Add1 Add30 8Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f247 fdivf10f0f65 faddf6f8f26 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 8 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6Add2 F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 2Add21fadd(M-M)M(A2) Add30 7Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f26 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 9 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6Add2 F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 1Add21fadd(M-M)M(A2) Add30 6Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f26 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 10 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6Add2 F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 0Add21fadd(M-M)M(A2) Add30 5Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f2610 Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 11 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 4Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 12 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 3Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 13 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 2Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 14 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 1Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f43 fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 15 Common Data Bus (CDB) F-Registers RegValue F0Mult1 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 0Mult11fmulM(A2)FR(f4) Mult21fdivM(A1)Mult1 BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f4315 fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 16 Common Data Bus (CDB) F-Registers RegValue F0M*f4 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 40Mult21fdivM*f4M(A1) BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Einige Zykel später…
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 55 Common Data Bus (CDB) F-Registers RegValue F0M*f4 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 1Mult21fdivM*f4M(A1) BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f fsubf8f6f2478 fdivf10f0f65 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 56 Common Data Bus (CDB) F-Registers RegValue F0M*f4 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 0Mult21fdivM*f4M(A1) BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f fsubf8f6f2478 fdivf10f0f6556 faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Clock 57 Common Data Bus (CDB) F-Registers RegValue F0M*f4 F2M(A2) F4 F6 (M-M+M) F8(M-M) F10Mult2 F12 …… F30 FP Adders/Multipliers TimeNameBusyOpVaVbQaQb Add10 Add20 Add30 Mult10 Mult21fdivM*f4M(A1) BusyAdr.FU Load10 Load20 Load30 Store10 Store20 Store30 ITER InstructionabIssueExec Compl Write Result lfpf634r2134 lfpf245r3245 fmulf0f2f fsubf8f6f2478 fdivf10f0f faddf6f8f Reservation Stations Load/Store Buffers Instruction Status lfp f6, 34(r2) lfp f2, 45(r3) fmul f0, f2, f4 fsub f8, f6, f2 fdiv f10, f0, f6 fadd f6, f8, f2
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Präferenzordnung zu Beispiel 11.1.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie (Optimaler) Schedule zu Beispiel 11.1.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie (Suboptimaler) Schedule zu Beispiel 11.1.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie CPM-generierter Schedule zu Beispiel 11.2.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Optimaler Schedule zu Beispiel 11.2.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie LPT-generierter Schedule zu Beispiel 11.3.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie Optimaler Schedule zu Beispiel 11.3.