2.3 Register-Transfer-Strukturen

Größe: px
Ab Seite anzeigen:

Download "2.3 Register-Transfer-Strukturen"

Transkript

1 2 2.3 Register-Transfer-Strukturen Peter Marwedel Informatik 2 Otto-Hahn-Str. 6 Tel peter.marwedel@tu-.de 25/2/6 (xmas)

2 Kontext Die Wissenschaft Informatik befasst sich mit der Darstellung, Speicherung, Übertragung und Verarbeitung von Information [Gesellschaft für Informatik] 2,

3 Externe Architektur interne Architektur Bislang: Sicht des Programmierers auf den Prozessor: Befehlsschnittstelle, externe Architektur Jetzt: interne Realisierung: interne Architektur, Mikroarchitektur, Realisierung mit Register-Transfer-Strukturen (der Inhalt welchen Registers wird in welches andere Register transferiert?) 2,

4 Komponenten von RT-Strukturen: Dekoder Beispiel : aus n-dekoder x Dekoder y=f(x) m n Anzahl Bits der Bitvektoren Beispiel 2: Prioritätsencoder (m>n) f ( x) = "..." wenn nat( x) z.b. y i "..." "..." f ( x) = "..." "..."... wenn x wenn x wenn x wenn x = i = = = =... "..." "..." "..." "..."... nat( f i, wenn i der größte Index ist, für den x ( x)) = undefiniert für x = "..." z.b. : y = "", nat( y) = 5 für x = "" 5 2, 25 i = '' ist nat(a)=σa i 2 i : (Abbildung Bitvektor natürliche Zahl) - 4 -

5 Komponenten von RT-Strukturen: Multiplexer z.b. 2 auf Multiplexer e e y Kontrolle y = e i für nat(kontrolle)=i e i, y: einzelne Bits oder Bitvektoren Mögliche Realisierung (für einzelnes Bit) e & z.b. 4 auf Multiplexer e & y e e e 2 e Kontrolle 3 e 2 e 3 3 Kontrolle aus n 2 & & 2,

6 Komponenten von RT-Strukturen: ALUs Addierer, arithmetisch/ logische Einheiten (ALUs) z=f (x,y,kontrolle) x y ALU z Kontrolle Beispiel z = x + x x x y y y y wenn wenn wenn wenn nat(kontrolle) = nat(kontrolle) = nat(kontrolle) = 2 nat(kontrolle) = 3 x, y, z,kontrolle: Bitvektoren 2,

7 Komponenten von RT-Strukturen: Register Register Daten Kontrolle Takt Daten Übernimmt mit dem Takt die Daten, sofern der Kontrolleingang auf "schreiben" gesetzt ist. Daten: einzelne Bits oder Bitvektoren Für jedes einzelne Bit: Kontrolle= schreiben Daten= g(takt) Kontrolle= schreiben Daten= g(takt) g: modelliert unterschiedliche Taktabhängigkeit Flankenabhängigkeit: Wechsel nur bei pos. ( positiv flankengetriggert ) oder neg. Flanke oder Pegelabhängigkeit: Wechsel sofern Takt= oder Takt = ist 2,

8 Komponenten von RT-Strukturen: Speicher Speicher Daten Takt Kontrolle Speicher Adresse Daten Liest ständig die am Adresseingang ausgewählte Speicherzelle aus und stellt ihren Wert am Datenausgang mit gewisser Verzögerung zur Verfügung. Übernimmt mit dem Takt die Daten in die ausgewählte Speicherzelle, sofern der Kontrolleingang auf Schreiben" gesetzt ist. Wir stellen den -aus-n-adressdekoder immer explizit dar, um den Adresseingang zu identifizieren. 2,

9 Multiportspeicher Multiport- Speicher Speicher Besitzt mehrere Adresseingänge, die zu einem zugeordneten Port gehören. Jedes Leseport stellt ständig die gelesene Speicherzelle am Ausgang bereit; jedes Schreibport übernimmt die Eingangdaten in die ausgewählte Speicherzelle, sofern der Kontrolleingang auf "schreiben" gestellt ist. Konflikt, falls mehrere Schreibports dieselbe Zelle auswählen (soll vermieden werden; falls es doch vorkommt: z.b. UND-Verknüpfung der Eingangsdaten) 2,

10 Speichertechnologien Einige Unterscheidungen: Flüchtiger (volatile) und nicht-flüchtiger (non-volatile) Speicher: Nicht-flüchtiger Speicher: Information bleibt nach dem Ausschalten des Stromes erhalten Statischer und dynamischer Speicher: - Statischer Speicher (SRAM): i.d.regel 6 Transistoren/Bit. - Dynamischer Speicher (DRAM): Transistor, Kondensator/Bit, langsamer als SRAM, erfordert periodisches Auffrischen der Information, ist billiger als SRAM 2, 25 Photo: P. Marwedel,

11 Zusammenfassung Jetzt Sicht auf die interne Architektur: Komponenten von RT-Strukturen Dekoder Multiplexer ALUs Register Speicher 2,

12 Eine Mikroarchitektur für die MIPS-Maschine Automatische Erzeugung von Mikroarchitekturen aus ISA heraus (µarchitektursynthese): wurde untersucht, ist aber a) im Rahmen einer Erstsemestervorlesung zu kompliziert b) für unsere einfachen Befehle auch nicht nötig. Mit Erfahrung (Betrachtung wesentlicher Komponenten/ Verbindungen): manueller µarchitekturentwurf. Benötigt Minimum an Komponenten. Enthält ein Rechenwerk und ein Steuerwerk. Verifikation: Befehle: nachweisen, dass die µarchitektur den Befehl ausführen kann. Vorgehen für die MIPS-Maschine 2,

13 PCWrite B PC MemWrite MemRead i2 a2 a Speicher IRWrite Befehlsregister IR * 3:26 25:2 2:6 5: 5: 25: Steuerwerk RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB ALUSelA ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

14 Überprüfung der Ausführbarkeit Zustandsgraph der Ausführung einiger MIPS-Befehle IR:=Speicher[PC]; PC:=PC+4; fetch PC:=PC+4; Reg[ra]:=Speicher[const+Reg[rb]] T:=IR() + Reg[IR(..)] decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 Reg[IR(..)]:= Speicher[T] 2,

15 PCWrite PC B fetch + MemWrite MemRead i2 a2 a Speicher IR:=Speicher[PC]; PC:=PC+4 B=PCWrite v PCWriteC zero IRWrite Befehlsregister IR * 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 zero ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

16 Zustandsgraph der Ausführung einiger MIPS-Befehle Ravi-Simulation zum dynamischen Ablauf (Webseite LS2): derzeit (/25) aber nicht mit aktuellem Java kompatibel fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

17 PCWrite B PC i2 a2 a Speicher Befehlsregister * Steuerwerk decode MemWrite MemRead Steuerwerk nutzt Opcode zur Verzweigung. IRWrite 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

18 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

19 PCWrite B PC 2 mar + MemWrite MemRead i2 a2 a Speicher Speicher-Adresse wird in T gespeichert IRWrite Befehlsregister * 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

20 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

21 PCWrite B PC load MemWrite MemRead i2 a2 a Speicher Reg[IR(2:6)]:= Speicher[T] IRWrite Befehlsregister * 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

22 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

23 PCWrite PC B MemWrite MemRead i2 a2 a Speicher store IRWrite Befehlsregister (IR) * 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 3: 28 2 "

24 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

25 PCWrite B PC i2 a2 a Speicher Befehlsregister * Steuerwerk rr IR² MemWrite MemRead ² ALU-Funktion durch shamt und funct bestimmt. alu_control nimmt geeignete Umkodierung vor. IRWrite 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

26 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

27 PCWrite B PC rr2 MemWrite MemRead i2 a2 a Speicher Reg[IR(5:)] :=T IRWrite Befehlsregister IR * 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

28 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

29 PCWrite B PC MemWrite MemRead i2 a2 a Speicher PC:=PC(3:28) &IR(25:) &"" Befehlsregister * Steuerwerk jump 2 IRWrite 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

30 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

31 PCWrite B PC i2 a2 a Speicher T:=PC+(sign_ext( IR(5:))&"") Befehlsregister * Steuerwerk 3 branch + MemWrite MemRead IRWrite 3:26 25:2 2:6 5: 5: 25: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

32 Zustandsgraph der Ausführung einiger MIPS-Befehle fetch decode instruction decode mar rr branch jump lw memory access memory access load store rr2 branch2 2,

33 PCWrite B PC i2 a2 a Speicher if Reg([IR(25:2)]- Reg[IR(2:6)]=) then PC:=T; ² Code, der benötigt wird, um am Ausgang zero eine zu erzeugen, wenn beide Eingänge gleich sind. Befehlsregister * Steuerwerk =/-² MemWrite MemRead IRWrite 3:26 25:2 2:6 5: 5: 25: RegDest branch2 RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 zero ALUOp TargetWrite ALU T PCSource * 2 " 3: 28

34 Das Steuerwerk Verhalten, vereinfacht (mar vermeidet Verzweigung bei mar) Struktur Takt fetch decode rr mar mar' lw load store rr2 branch branch2 jump Eingabe: Opcode µpc * Zustand Mikroprogrammspeicher * Folgezustand bestimmt durch Mikroprogrammspeicher, bei decode aus dem Opcode PCWrite 2, Ausgabe PCSource

35 Das Steuerwerk (etwas genauer) Verhalten, vereinfacht Struktur (mar vermeidet Verzweigung bei mar) fetch decode rr branch jump mar mar' lw load store rr2 branch2 Eindeutige Codes für Zustände nach decode Eingabe: Opcode mux Takt µpc * Zustand Mikroprogrammspeicher * Folgezustand bestimmt durch Mikroprogrammspeicher, bei decode aus dem Opcode PCWrite 2, Ausgabe PCSource

36 Zustand (bestimmt Adresse im Speicher) Inhalt des Mikroprogrammspeichers Folge- Zustand bzw. Zustände fetch decode X X + decode f(opcode) X X X XX X X XX mar, mar load, store X X X + XX load fetch XX X X XX store fetch X X X XX X X XX rr rr2 X X X IR XX rr2 fetch X XX X X XX branch branch2 X X X + XX branch2 fetch X X X =/- jump fetch X X X XX X X + Art der Bestimmung des Folgezustands PCWrite PCWriteC IorD MemWrite MemRead IRWrite Mem2Reg RegDest 2, 25 ALUSelB ALUSelA ALUOp TargetWri PCSource

37 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

38 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

39 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

40 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

41 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 Struktur Takt Eingabe: Opcode µpc Zustand * Mikroprogrammspeicher 2,

42 Zusammenfassung Mikroprogrammierung gestattet die strukturierte Realisierung von Rechensystemen aus RT-Struktur-Komponenten Vorteile: einfache, strukturierte Realisierung auch großer, komplexer Befehlssätze leichte Änderbarkeit Nachteile: Overhead (fetch und decode enthalten keine Operationen des auszuführenden Programms) Große CPI-Werte Versuch, Mikroprogramme zu vermeiden 2,

43 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

44 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

45 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

46 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,

47 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2, 25 Flash-Animation

48 2.3.2 Fließbandverarbeitung Fließband-Architektur (engl. pipeline architecture): Bearbeitung mehrerer Befehle gleichzeitig, analog zu Fertigungsfließbändern. Beispiel MIPS: instruction fetch instruction decode/ register read instruction execution/ address calculation Memory access (register) writeback 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Reg Speicher sign_ extend 2:6 ALU Speicher DMem 5: 2,

49 Änderungen gegenüber der Struktur ohne Fließband Separater Addierer für Programm-Folgeadressen. Konzeptuelle Aufteilung des Speichers in Daten- und Befehlsspeicher. Aufteilung des Rechenwerks in Fließbandstufen, Trennung durch Pufferregister, T und Befehlsregister werden Pufferregistern. 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 2:6 Reg Speicher sign_ extend ALU Speicher DMem Steuerwerk nicht dargestellt 5: 2,

50 Aufgaben der einzelnen Phasen bzw. Stufen Befehlsholphase Lesen des aktuellen Befehls; separater Speicher, zur Vermeidung von Konflikten mit Datenzugriffen ( Cache). Dekodier- und Register-Lese-Phase Lesen der Register möglich wegen fester Plätze für Nr. Ausführungs- und Adressberechungsphase Berechnung arithmetischer Funktion bzw. Adresse für Speicherzugriff. Speicherzugriffsphase Wird nur bei Lade- und Speicherbefehlen benötigt. Abspeicherungsphase Speichern in Register, bei Speicherbefehlen nicht benötigt. 2,

51 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus Befehl 2,

52 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus 2 Befehl 2 Befehl 2,

53 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus 3 Befehl 3 Befehl 2 Befehl 2,

54 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus 4 Befehl 4 Befehl 3 Befehl 2 Befehl 2,

55 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus 5 Befehl 5 Befehl 4 Befehl 3 Befehl 2 Befehl 2,

56 Idealer Fließbanddurchlauf 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 2:6 25:2 sign_ extend Reg ALU DMem 5: Zyklus 6 Befehl 6 Befehl 5 Befehl 4 Befehl 3 Befehl 2 2,

57 Pipeline-Hazards Structural hazards (deutsch: strukturelle Abhängigkeiten oder Gefährdungen). Verschiedene Fließbandstufen müssen auf dieselbe Hardware-Komponente zugreifen, weil diese nur sehr aufwändig oder überhaupt nicht zu duplizieren ist. Beispiele: Speicherzugriffe, sofern für Daten und Befehle nicht über separate Pufferspeicher (caches) eine weitgehende Unabhängigkeit erreicht wird. Bei Gleitkommaeinheiten lässt sich häufig nicht mit jedem Takt eine neue Operation starten (zu teuer). Eventuell Anhalten des Fließbandes (pipeline stall) nötig. 2,

58 Datenabhängigkeiten () Gegeben sei eine Folge von Maschinen-Befehlen. Def.: Ein Befehl j heißt von einem vorausgehenden Befehl i datenabhängig, wenn i Daten bereitstellt, die j benötigt. Beispiel: add $2,$2,$3 sub $4,$5,$2 and $6,$2,$7 or $8,$2,$9 xor $,$2,$ Diese 4 Befehle sind vom add-befehl wegen $2 datenabhängig Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) read after write- (oder RAW-) Abhängigkeit. 2,

59 Datenabhängigkeiten (2) Gegeben sei wieder eine Folge von Maschinen-Befehlen. Def.: Ein Befehl i heißt von einem nachfolgenden Befehl j antidatenabhängig, falls j eine Speicherzelle beschreibt, die von i noch gelesen werden müsste. Beispiel: add $2,$2,$3 sub $4,$5,$2 Diese 2 Befehle sind vom or-befehl and $6,$2,$7 wegen $2 antidatenabhängig or $2,$2,$9 xor $,$2,$ Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after read - (oder WAR-) Abhängigkeit. 2,

60 Datenabhängigkeiten (3) Gegeben sei (wieder) eine Folge von Maschinen-Befehlen. Def.: Zwei Befehle i und j heißen voneinander Ausgabe-abhängig, falls i und j dieselbe Speicherzelle beschreiben. Beispiel: add $2,$2,$3 sub $4,$5,$2 Voneinander ausgabeabhängig. and $6,$2,$7 or $2,$2,$9 xor $,$2,$ Diese Art der Abhängigkeit heißt (bei Hennessy und anderen) write after write - (oder WAW-) Abhängigkeit. 2, 25 ravi/pipeline - 6 -

61 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus add $,$2,$3 2,

62 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: sub $4,$5,$ add $,$2,$3 Zyklus 2 2,

63 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 3 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

64 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 2:6 sign_ extend Reg ALU DMem 5: Zyklus 4 or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

65 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 2:6 sign_ extend Reg ALU DMem 5: Zyklus 5 xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

66 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 6? xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ 2,

67 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC sign_ extend 2:6 Reg ALU DMem 5: add $,$2,$3 Zyklus Übernahme in die Pipeline-Register 2,

68 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC sign_ extend 2:6 Reg ALU DMem 5: sub $4,$5,$ add $,$2,$3 Zyklus 2 Übernahme in die Pipeline-Register 2,

69 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 3 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

70 Taktung zur Behandlung des data hazards bei or 4 PC + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 sign_ extend 2:6 Reg ALU DMem Takt 5: Zyklus 4 or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

71 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 4 xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-Register Zyklus 5 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

72 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 4 xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-Register Zyklus 5 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,

73 Taktung zur Behandlung des data hazards bei or 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 Takt PC 2:6 Reg ALU DMem Übernahme in Reg, Dmem und PC? 5: sign_ extend xor $,$,$ Übernahme in die Pipeline-Register Zyklus 6 or $8,$,$9 and $6,$,$7 sub $4,$5,$ 2, 25 pipeline2-73 -

74 Alle data hazards durch Bypässe behandelbar? 4 sign_ extend + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC 2:6 Reg ALU DMem 5: Zyklus xor lw? sub and $8,$,$9 $,($2) $,$,$ $4,$5,$ $6,$,$7 xor and lw sub $8,$,$9 $,($2) $,$,$ $6,$,$7 $4,$5,$ and or sub lw $8,$,$9 $,($2) $6,$,$7 $4,$5,$ sub and lw $,($2) $4,$5,$ $6,$,$7 lw sub $,($2) $4,$5,$ Speicherwort wird am Ende des Zyklus 4 gespeichert, steht für Differenz noch nicht bereit. 2,

75 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus lw $,($2) 2,

76 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 2 sub $4,$5,$ lw $,($2) 2,

77 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 3 and $6,$,$7 sub $4,$5,$ lw $,($2) 2,

78 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 4 or NOOP $8,$,$9 and NOOP $6,$,$7 sub NOOP $4,$5,$ lw $,($2) 2,

79 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 5 or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP lw $,($2) 2,

80 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC sign_ extend 2:6 Reg ALU DMem 5: Zyklus 6 bubble, durch intelligente Compiler vermeiden! xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP 2, 25 ravi/pipeline2-8 -

81 Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards () Beispielprogramm: beq $2,$2,t -- springe zur Marke t, falls Reg[2]=Reg[2] sub t:add.. Wir versuchen zunächst, durch Einfügen von NOOPs, die intuitive Bedeutung des Programms zu realisieren... 2,

82 Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (2) 4 sign_ extend + IF/ID ID/EX EX/MEM MEM/WB zero 25:2 PC 2:6 Reg ALU DMem 5: Takt 2: Sprung wird erkannt, deshalb werden zwei NOOP-Befehle eingefügt. Takt 4: Mit fallender Flanke wird PC getaktet, mit steigender IF/ID-Register. Takt 3: ALU müsste sowohl Vergleich wie auch das Sprungziel ausrechnen können Zyklus beq NOOP sub... oder $,$2,t add beq NOOP sub... oder $,$2,t add beq NOOP sub oder $,$2,t add beq NOOP $,$2,t beq NOOP $,$2,t 2,

83 Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (3) Probleme beim gezeigten Ansatz: Leistungsverlust durch 2 NOOPs (branch delay penalty). ALU/Multiplexer in der gezeigten Form nicht ausreichend, um Test und Sprungzielberechnung in einem Takt auszuführen. Lösungsansatz: Gleichheit der Register wird schon in der instruction decode-stufe geprüft. Sprungziel wird in separatem Adressaddierer ebenfalls bereits in der instruction decode-stufe berechnet. Sofern weiterhin noch Verzögerungen auftreten: nächsten Befehl einfach ausführen (delayed branch). oder weiterhin NOOP(s) einfügen (stall). 2,

84 Reduktion der branch delay penalty; delayed branch 4 IF/ID = + * + 25:2 ID/EX Am Ende des Zyklus 2 gültig EX/MEM MEM/WB PC 2:6 Reg ALU DMem Folgeadresse bei fallender Flanke übernommen. 5: sign_ extend * Zyklus beq sub add... $,$2,t beq sub add... $,$2,t beq add sub $,$2,t sub beq add $,$2,t beq sub $,$2,t 2,

85 Delayed Branches, verzögerte Sprünge Beim gezeigten Beispiel wird der auf den Sprungbefehl folgende Befehl immer noch ausgeführt. beq $2,$2,t sub... # wird immer noch ausgeführt... t: add.. It s not a bug, it s a feature Einen Platz für die Aufnahme eines solchen Befehls nennt man delay slot, die Sprünge delayed branches. Manche Maschinen haben mehrere delay slots. Delay slots sollten von Übersetzern mit nützlichen Befehlen gefüllt werden. Nur notfalls sollte es ein NOOP sein. Die MIPS-Maschine hat ein delay slot, welches aber vom Assembler verdeckt wird. 2, 25 ravi/pipeline3-85 -

86 Typen von Fließband-Gefährdungen (hazards) Strukturelle Abhängigkeiten/Gefährdungen (structural hazards) Datenfluß- Abhängigkeiten/Gefährdungen (data hazards) aufgrund von Datenabhängigkeiten (RAW) forwarding, pipeline stalls aufgrund von Antidatenabhängigkeiten (WAR) (erst bei komplizierteren Systemen wichtig) aufgrund von Ausgabeabhängigkeiten (WAW) (erst bei komplizierteren Systemen wichtig) Kontrollfluß-Abhängigkeiten/Gefährdungen (control hazards) delayed branches, pipeline stalls, spekulative Ausführung, Sprungvorhersage 2,

87 Interne Struktur von Pentium-Prozessoren Fließbandverarbeitung bringt Performancegewinn. Fließbandverarbeitung nur bei RISC-Befehlssätzen einigermaßen überschaubar. Interne Umkodierung alter CISC-Befehle in RISC-Befehle. Beispiel: x86-befehle Umkodierung von x86-befehlen zu internen RISC-Befehlen Puffer Puffer Fließband Fließband 2... ggf. weitere Fließbänder Ergebnisspeicher 2, 25 Movie

88 Zusammenfassung Die Fließbandverarbeitung (engl. pipelining) ermöglicht es, in jedem Takt die Bearbeitung eines Befehls abzuschließen, selbst wenn die Bearbeitung eines Befehls Takte dauert. Bei mehreren Fließbändern pro Takt können mehrere Befehle beendet werden. 3 Typen von Gefährdungen des Fließbandbetriebs: - resource hazards - data hazards (RAW, WAR, WAW) - control hazards Gegenmaßnahmen: - pipeline stall - forwarding/bypassing, delayed branches - branch prediction, out-of-order execution, dynamic scheduling ( Rechnerarchitektur) Ggf. mehrere Fließbänder bei modernen Architekturen 2,

89 Prozessortrends 2,

90 Alternative Architekturen DSP: Digitale Signalprozessoren; Prozessoren, die auf die Verarbeitung digitaler Signale (Sprache, Video) optimiert sind VLIW: very long instruction word Prozessoren; Prozessoren, die mit breiten Paketen von Befehlen mehrere Befehle gleichzeitig starten können ASIP: application specific instruction set processors; Prozessoren, die für bestimmte Anwendungen (z.b. MPEG) optimiert sind FPGA: field programmable gate array; Schaltung, deren Verhalten man durch Programmierung verändern kann. ASIC: application specific integrated circuit; speziell für eine Anwendung entwickelter integrierter Schaltkreis 2,

91 Notwendigkeit der Betrachtung der Energieeffizienz Ausführungsplattform Relevant während Benutzung? Stationär Teilweise mobil Mobil z.b. Fabrik Auto Sensor Globale Erwärmung Kosten der Energie Steigerung der Performance Probleme der Kühlung Zu hohe Stromdichten, Metallwanderung Zuverlässigkeit Sehr begrenzt verfügbare Energie el. Leistung 2, 25 Graphics: P. Marwedel, 2-9 -

92 Trend hinsichtlich Energieeffizienz Hugo De Man, IMEC, 27 GOPS/J 2,

93 Hohe Taktraten energetisch ineffizient Rechnen mit niedrigen Taktraten energetisch effizienter: Basisgleichungen Leistung: P ~ V DD ², Maximale Taktfrequenz: f ~ V DD, Energiebedarf für ein Programm: Zeitbedarf für ein Programm: t ~ /f E = P t, mit: t = Laufzeit (fest) Änderungen durch Parallelverarbeitung, mit α Operationen pro Takt: Taktfrequenz reduziert auf: f = f / α, Spannung kann reduziert werden auf: V DD = V DD / α, Leistung für Parallelausführung: P = P / α² pro Operation, Leistung für α Operationen pro Takt: P = α P = P / α, Zeit zur Ausführung des Programms: t = t, Energie zur Ausführung des Programms: E = P t = E / α Es ist effizienter, α Operationen parallel auszuführen Laut IBM/Böblingen in der Praxis eher P~V DD 3 als diese sequentiell in einem α ten Teil der Zeit auszuführen. 2,

94 Entwicklung der Taktfrequenzen Copyright 2, Elsevier Inc. All rights Reserved. [Hennessy/Patterson: Computer Architecture, 5th ed., 2] 2,

95 Vorhersage der Taktfrequenzen Interner Takt [GHz] Steigerungsraten reduziert, nur noch moderate Steigerung. [ITRS, 2 Overall Roadmap Technology Characteristics (ORTC) Tables ] 2,

96 Steigerung der Performance Copyright 2, Elsevier Inc. All rights Reserved. [Hennessy/Patterson: Computer Architecture, 5th ed., 2] 2,

97 Trend zu Multiprozessor-Systemen Grenzen der effizienten Realisierbarkeit von Einzelprozessoren erreicht: - Höhere Taktraten nur schwer zu erreichen - Höhere Taktraten nicht mehr energieeffizient (Kriterium Watt/Millionen Operationen) - Sprungvorhersage wird immer komplizierter - Bei Multiprozessor-Systemen werden mehrere Prozessoren zusammengeschaltet: - Gleiche Multiprozessorsysteme: homogene Multiprozessoren - Unterschiedliche Multiprozessorsysteme: heterogene Multiprozessoren (für Anwendung optimiert) 2,

98 Einschub: Multi-threading/multi-processing In realen Rechnern meist mehrere Prozesse ausgeführt. Prozesse können wiederum aus threads (leichtgewichtige Prozesse) bestehen, den Einheiten der sequentiellen Ausführung. Prozesse haben eigene, threads verfügen über gemeinsame Adressen 2,

99 Einschub: Dispatcher Prozessen bzw. threads wird durch einen dispatcher der Prozessor zugeteilt. Dispatcher schaltet zwischen Ausführung um (context switch). Bei context switch werden alle Registerinhalte - des anzuhaltenden Prozesses/threads in einen ihm zugeordneten Datenblock (process control block, PCB) gerettet & - die des zu fortzuführenden Prozesses/threads aus seinem PCB geladen. Prozessen wird suggeriert, der Prozessor gehöre ihnen allein (bis auf Zeitverhalten). 2,

100 Einschub: Context switch Prozessor Register A Ausführung A B Speicher PCB A B PCB B A B 2,

101 Einige Eigenschaften 27 aktueller Prozessoren Beispiel: Intel Core 2 Extreme Quad-Core QX6 (homogen): 4 Prozessoren auf einem Chip Jeder Prozessor kann pro Takt bis zu 4 Befehle beenden Befehle können sich gegenseitig überholen (dynamic scheduling, out-of-order execution) Sprungvorhersage 64-bit und 32-bit Operationen Bis zu 3 GHz ext. Takt Verlangt thermischen Entwurf für 3 W Leistungsaufnahme Stromaufnahme bis zu 25 A Spannungsversorgung,85-,6 V je nach Anforderung 775 Anschlüsse, davon ~2/3 für die Spannungsversorgung 2, 25 [ [ tenland.de/pi/intel Core2ExtremeQx 67.jpg] - -

102 Einige Eigenschaften 2 aktueller Prozessoren Beispiel: Intel Core i7-98x Processor Extreme Edition: 6 Prozessoren auf einem Chip (homogen) Hyperthreading: 2 threads/prozessor überlapp. Befehle können sich gegenseitig überholen Fertigung im 32 nm Prozess,7 x 9 Transistoren 64-bit und 32-bit Operationen 3,33 GHz (Turbo 3,6 GHz) ext. Takt Maximale Leistungsaufnahme (TDP): 3 W Stromaufnahme bis zu 8, A Spannungsversorgung,8-,375 V je nach Anforderung 366 Anschlüsse, incl. 435 für die Spannungsversorgung 2, 25 [ processor/datashts/ pdf] - 2 -

103 Eigenschaften eines 23 aktuellen Prozessors Beispiel: Intel Core i7-493mx Processor Extreme Edition: 4 Prozessoren auf einem Chip (homogen), 2 threads/prozessor Befehle können sich gegenseitig überholen,,4 x 9 Transistoren Fertigung im 22 nm Prozess, 3 GHz (Turbo 3,9 GHz) ext. Takt Maximale Leistungsaufnahme (TDP): 84 W, Strom bis zu 95 A Integrierte Graphik ( tlw. heterogen), 5 Anschlüsse Intel 2, 25 /us/en/documents/datasheets/4th-gen-corefamily-desktop-vol--datasheet.pdf - 3 -

104 Experimentell: Intel single chip cloud computer Experimentelle (homogene) Plattform (29) 2, 25 Intel - 4 -

105 Klassifikation von Multiprozessorsystemen nach Daten- und Befehlsströmen [Flynn] Befehlsströme > Datenströme SISD MISD > SIMD MIMD SISD Bislang besprochene Einzelrechner MIMD Netze aus Einzelrechnern; sehr flexibel SIMD Ein Befehlsstrom für unterschiedliche Daten; identische Befehle bilden starke Einschränkung MISD Mehrere Befehle für ein Datum: Kann als Fließband von Befehlen auf demselben Datenstrom ausgelegt werden. Ist etwas künstlich. Klassifikation hat nur begrenzte Aussagekraft; keine bessere vorhanden. 2,

106 Multiprocessor Systems On A Chip (MPSoCs) - Beispiele belegen Existenz effizienter heterogener Prozessoren - Hugo De Man, IMEC, 27 2,

107 Energieeffizientes Design mit (halb) heterogenen Prozessoren Halb Heterogen : Identischer Befehlssatz (ISA), aber optimiert für Performance bzw. Energieeffizienz 2, 25 big_little_final_final.pdf ARM - 7 -

108 Unterschiede u.a. aufgrund unterschiedlicher Fließbänder 2, 25 big_little_final_final.pdf - 8 -

109 Anwendung: Samsung Exynos 5 Octa 4 Cortex A7 + 4 Cortex A5 Eingebaut in manche Varianten des Samsung S 4 Videos: 2, 25 Photo: Samsung - 9 -

110 Homogen vs. heterogen homogen ISA identisch, Implementierung verschieden heterogen Leichte Verlagerung von Prozessen Fehlertoleranz per Verlagerung Effizienz durch Optimierung für Anwendung (+) + Software-Entwurfsaufwand + (+) - Prozessor-Entwurfsaufwand + ± - 2,

111 Multi-cores in der Großrechnerwelt 2,

112 Korrektur der Vorhersagen der Taktraten ITRS 23 2,

113 Anzahl der Komponenten stationärer Systeme [ITRS Update 2] 2,

114 Vorhersage der Anzahl der Funktionen pro Chip [ITRS 2] 2,

115 # Transistoren bei Prozessorchips [ITRS 2] 2,

116 Wie viele Cores werden es werden? 2 Aufgrund der Probleme mit der Wärmeabfuhr kann man bei maximaler Taktrate von ~2 Prozessoren nur mit Strom versorgen dark silicon 2,

117 Niedrigere Spannung, langsamerer Takt? 2 Sieht im ersten Moment besser aus 2,

118 Bestes Ergebnis bei 44 Cores Taktung mit GHz Optimaler Takt Nur Flächenbeschränkung Bandbreitengrenze Weitere Performancesteigerungen bleiben begrenzt 2,

119 2,

120 Programmierung von Mehrprozessor-Systemen Übliche imperative Sprachen (C, C++, Java, ): Abstraktion der seq. Ausführung in von-neumann Maschine. für Programmierung von Maschinen konzipiert. Existierende Anwendungen für Programmierung von parallelen Maschinen konzipiert. Kann man aus existierenden Anwendungen automatisch Parallelität extrahieren? - Auf der Basis riesigen Aufwandes begrenzte Erfolge im high performance computing (HPC; Simulationen in Physik, Chemie usw.) - Für allgemeine Anwendung weitgehend ein Fehlschlag 2,

121 Lösungsansätze Alternative Berechungsmodelle - Funktionale Sprachen - Datenflusssprachen - Signalflussgraphen - Task-Graphen als Anwendungsmodellierung seq. Prozess Bislang keine allgemein nutzbare Lösung, Prozessorhersteller setzen große Summen auf MP-Technologie 2,

122 Zusammenfassung Skalieren der Taktrate wg. des Energieverbrauchs begrenzt Skalieren der Perfomanz v.a. über mehr Kerne (multi-cores) Energieverbrauch teilweise heterogene Multi-Cores Unklare Situation hinsichtlich der Richtung - Geeignetes Berechungsmodell? - Geeignete Architekturen? - Geeignete Sprachen? Mögliches Ende des Paradieses, in dem immer komplexere Softwarearchitekturen durch immer leistungsfähigere Hardware möglich werden. 2,

123 Reserve 2,

124 Vorhersage der Anzahl der Anschlüsse 8 [Anschlüsse] high performance cost/performance (min.) [ITRS Roadmap 29] 2,

125 Leistungsaufnahme mobiler Systeme [ITRS Update 2] 2,

126 Multi-cores in der Großrechnerwelt (2) 2,

127 Multi-cores in der Großrechnerwelt (3) 2,

128 Multi-cores in der Großrechnerwelt (4) 2,

129 Niedrigere Spannungen reduzieren auch die Kommunikationsbandbreite Grenze durch verfügbare Bandbreite (klein bei wenig Cores) 2 2,

2.3 Register-Transfer-Strukturen

2.3 Register-Transfer-Strukturen 2 2.3 Register-Transfer-Strukturen Kontext Die Wissenschaft Informatik befasst sich mit der Darstellung, Speicherung, Übertragung und Verarbeitung von Information [Gesellschaft für Informatik] 2, 24-2

Mehr

Rechnerstrukturen, Teil 2

Rechnerstrukturen, Teil 2 2 Rechnerstrukturen, Teil 2 Vorlesung 4 SWS WS 7/8 2.3 Register-Transfer-Strukturen Prof. Dr. Jian-Jia Chen Fakultät für Informatik Technische Universität Dortmund jian-jia.chen@cs.uni-.de http://ls2-www.cs.tu-.de

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 27 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 27/5/3 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

Rechnerarchitektur (RA)

Rechnerarchitektur (RA) 2 Rechnerarchitektur (RA) Sommersemester 26 Pipelines Jian-Jia Chen Informatik 2 http://ls2-www.cs.tu.de/daes/ 26/5/25 Diese Folien enthalten Graphiken mit Nutzungseinschränkungen. Das Kopieren der Graphiken

Mehr

Rechnerstrukturen, Teil 2

Rechnerstrukturen, Teil 2 12 Rechnerstrukturen, Teil 2 Vorlesung 4 SWS WS 17/18 2.6 Prozessortrends (Erweiterung von 2.3) Prof. Dr. Jian-Jia Chen Fakultät für Informatik Technische Universität Dortmund jian-jia.chen@cs.uni-.de

Mehr

2.3 Register-Transfer-Strukturen

2.3 Register-Transfer-Strukturen 2 2.3 Register-Transfer-Strukturen Kontext Die Wissenschaft Informatik befasst sich mit der Darstellung, Speicherung, Übertragung und Verarbeitung von Information [Gesellschaft für Informatik] 2, 24-2

Mehr

2.3 Register-Transfer-Strukturen

2.3 Register-Transfer-Strukturen 2 2.3 Register-Transfer-Strukturen Peter Marwedel Informatik 2 Otto-Hahn-Str. 6 Tel. 755 6 E-mail: peter.marwedel@tu-.de Sprechstunde: Mo 3:-4: 24/6/6 (xmas) Kontext Die Wissenschaft Informatik befasst

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining Implementierung

Mehr

Was ist die Performance Ratio?

Was ist die Performance Ratio? Was ist die Performance Ratio? Wie eben gezeigt wäre für k Pipeline Stufen und eine große Zahl an ausgeführten Instruktionen die Performance Ratio gleich k, wenn jede Pipeline Stufe dieselbe Zeit beanspruchen

Mehr

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten:

Mehr

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion) Auch hier wieder Aus voriger Wahrheitstabelle lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem Control Symbol abstrakt darstellen. Instruction[31 26] (also:

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:

Mehr

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:

Mehr

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 8 und Präsenzaufgaben Übung 9 Dominik Schoenwetter Erlangen, 30. Juni 2014 Lehrstuhl für Informatik 3 (Rechnerarchitektur)

Mehr

Beispiele von Branch Delay Slot Schedules

Beispiele von Branch Delay Slot Schedules Beispiele von Branch Delay Slot Schedules Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 97 Weniger

Mehr

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011 CPU 1/62 2012-02-29 CPU Übersicht: Pipeline-Aufbau Pipeline- Hazards CPU

Mehr

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen

Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember Bitte immer eine Reihe freilassen Technische Informatik 1 Übung 8 Instruktionsparallelität (Rechenübung) Andreas Tretter 8./9. Dezember 2016 Bitte immer eine Reihe freilassen Ziele der Übung Verschiedene Arten von Instruktionsparallelität

Mehr

Allgemeine Lösung mittels Hazard Detection Unit

Allgemeine Lösung mittels Hazard Detection Unit Allgemeine Lösung mittels Hazard Detection Unit Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 83

Mehr

Grundlagen der Informationsverarbeitung:

Grundlagen der Informationsverarbeitung: Grundlagen der Informationsverarbeitung: Parallelität auf Instruktionsebene Prof. Dr.-Ing. habil. Ulrike Lucke Durchgeführt von Prof. Dr. rer. nat. habil. Mario Schölzel Maximaler Raum für Titelbild (wenn

Mehr

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74 Data Hazards Grundlagen der Rechnerarchitektur Prozessor 74 Motivation Ist die Pipelined Ausführung immer ohne Probleme möglich? Beispiel: sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2

Mehr

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1 E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene

Mehr

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren

Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren Datenpfaderweiterung Der Single Cycle Datenpfad des MIPS Prozessors soll um die Instruktion min $t0, $t1, $t2 erweitert werden, welche den kleineren der beiden Registerwerte $t1 und $t2 in einem Zielregister

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Grundlagen der Rechnerarchitektur. MIPS Assembler

Grundlagen der Rechnerarchitektur. MIPS Assembler Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32

Mehr

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Steuerwerk einer CPU Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Implementierung des Datenpfads Direkte Implementierung Mikroprogrammierung

Mehr

Pipelining for DLX 560 Prozessor. Pipelining : implementation-technique. Pipelining makes CPUs fast. pipe stages

Pipelining for DLX 560 Prozessor. Pipelining : implementation-technique. Pipelining makes CPUs fast. pipe stages Pipelining for DLX 560 Prozessor Pipelining : implementation-technique Pipelining makes CPUs fast. pipe stages As many instructions as possible in one unit of time 1 Pipelining can - Reduce CPI - Reduce

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation Woche 8 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Übung 7 Datum : 22.-23. November 2018 Pipelining Aufgabe 1: Taktrate / Latenz In dieser Aufgabe

Mehr

2 Rechnerarchitekturen

2 Rechnerarchitekturen 2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf

Mehr

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden. Name: Vorname: Matr.-Nr.: 4 Aufgabe 1 (8 Punkte) Entscheiden Sie, welche der folgenden Aussagen zum Thema CISC/RISC-Prinzipien korrekt sind. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen

Mehr

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Prog. Counter Memory Adress Register Befehl holen Incrementer Main store Instruction register Op-code Address Memory Buffer Register CU Clock Control

Mehr

Datapath. Data Register# Register# PC Address instruction. Register#

Datapath. Data Register# Register# PC Address instruction. Register# Überblick über die Implementation Datapath Um verschiedene Instruktionen, wie MIPS instructions, interger arithmatic-logical instruction und memory-reference instructions zu implementieren muss man für

Mehr

Compiler für f r Eingebettete Systeme (CfES)

Compiler für f r Eingebettete Systeme (CfES) Compiler für f r Eingebettete Systeme (CfES) Sommersemester 2009 Dr. Heiko Falk Technische Universität Dortmund Lehrstuhl Informatik 12 Entwurfsautomatisierung für Eingebettete Systeme Kapitel 9 Ausblick

Mehr

High Performance Embedded Processors

High Performance Embedded Processors High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg martin.rustler@e-technik.stud.uni-erlangen.de matthias.schwarz@e-technik.stud.uni-erlangen.de

Mehr

Technische Informatik I - HS 18

Technische Informatik I - HS 18 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 8 Musterlösung zu Übung 5 Datum : 8.-9. November 8 Aufgabe : MIPS Architektur Das auf der nächsten

Mehr

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer Aufgabe 8.1 Ausnahmen (Exceptions) a. Erklären Sie den Begriff Exception. b. Welche Arten von Exceptions kennen Sie? Wie werden sie ausgelöst und welche Auswirkungen auf den ablaufenden Code ergeben sich

Mehr

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere

Mehr

Technische Informatik - Eine Einführung

Technische Informatik - Eine Einführung Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe

Mehr

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC

Hochschule Düsseldorf University of Applied Sciences HSD RISC &CISC HSD RISC &CISC CISC - Complex Instruction Set Computer - Annahme: größerer Befehlssatz und komplexere Befehlen höhere Leistungsfähigkeit - Möglichst wenige Zeilen verwendet, um Aufgaben auszuführen - Großer

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht Kapitel 3 Mikroarchitektur 3.1 elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung (zur Realisierung der Befehlsabarbeitung

Mehr

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel Prozessorarchitektur Kapitel - Wiederholung M. Schölzel Wiederholung Kombinatorische Logik: Ausgaben hängen funktional von den Eingaben ab. x x 2 x 3 z z = f (x,,x n ) z 2 z m = f m (x,,x n ) Sequentielle

Mehr

Grundlagen der Rechnerarchitektur. Prozessor

Grundlagen der Rechnerarchitektur. Prozessor Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Grundlagen der Rechnerarchitektur. Prozessor

Grundlagen der Rechnerarchitektur. Prozessor Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer

Rechnerarchitektur. Marián Vajteršic und Helmut A. Mayer Rechnerarchitektur Marián Vajteršic und Helmut A. Mayer Fachbereich Computerwissenschaften Universität Salzburg marian@cosy.sbg.ac.at und helmut@cosy.sbg.ac.at Tel.: 8044-6344 und 8044-6315 30. Mai 2017

Mehr

Assembler am Beispiel der MIPS Architektur

Assembler am Beispiel der MIPS Architektur Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.

Mehr

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005 Mikroprozessoren Aufbau und Funktionsweise Christian Richter Ausgewählte Themen der Multimediakommunikation SS 2005 Christian Richter (TU-Berlin) Mikroprozessoren AT MMK 2005 1 / 22 Gliederung Was ist

Mehr

Übungsblatt 6. Implementierung einer Befehlspipeline

Übungsblatt 6. Implementierung einer Befehlspipeline Praktikum zur Vorlesung Prozessorarchitektur SS 2016 Übungsblatt 6. Implementierung einer Befehlspipeline 1.1. Einführung Durch die Einteilung der Befehlsverarbeitung in mehrere Zyklen in dem vorangegangenen

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

Technische Informatik 1 - HS 2016

Technische Informatik 1 - HS 2016 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2016 Lösungsvorschläge für Übung 6 Datum: 24. 25. 11. 2016 Pipelining 1 Taktrate / Latenz In dieser

Mehr

DIGITALE SCHALTUNGEN II

DIGITALE SCHALTUNGEN II DIGITALE SCHALTUNGEN II 3. Sequentielle Schaltkreise 3.1 Vergleich kombinatorische sequentielle Schaltkreise 3.2 Binäre Speicherelemente 3.2.1 RS Flipflop 3.2.2 Getaktetes RS Flipflop 3.2.3 D Flipflop

Mehr

Kontrollpfad der hypothetischen CPU

Kontrollpfad der hypothetischen CPU Kontrollpfad der hypothetischen CPU fast alle Algorithmen benötigen FOR- oder WHILE-Schleifen und IF.. ELSE Verzweigungen Kontrollfluß ist datenabhängig CCR speichert Statussignale N,Z, V,C der letzten

Mehr

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

Mehr

Systeme 1: Architektur

Systeme 1: Architektur slide 1 Vorlesung Systeme 1: Architektur Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg slide 2 Prüfung 18. Februar 2004 8h00-11h40 13h00-18h20 20 Minuten

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

Technische Informatik 1 - HS 2017

Technische Informatik 1 - HS 2017 Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik 1 - HS 2017 Übung 8 Datum: 30. 11. 1. 12. 2017 In dieser Übung soll mit Hilfe des Simulators WinMIPS64 die

Mehr

Verteidigung der Bachelorarbeit, Willi Mentzel

Verteidigung der Bachelorarbeit, Willi Mentzel Verteidigung der Bachelorarbeit, Willi Mentzel Motivation U.S. Energy Consumption Breakdown 3x Durchschnittliche Leistungsaufnahme 114 Millionen kw Hohes Optimierungspotential 2 Ziele für Energieoptimierung

Mehr

H E F B G D. C. DLX Rechnerkern

H E F B G D. C. DLX Rechnerkern C. DLX Rechnerkern C.1. Einordnung DLX Architektur und Konzepte: Einfache "Gesamtzyklus"-DLX Maschine (non-pipelined), Verarbeitungsschritte einer Instruktion, Taktverhalten im Rechner, RISC & CISC...

Mehr

Kapitel 2. Pipeline-Verarbeitung. Technologie- Entwicklung. Strukturelle Maßnahmen. Leistungssteigerung in Rechnersystemen

Kapitel 2. Pipeline-Verarbeitung. Technologie- Entwicklung. Strukturelle Maßnahmen. Leistungssteigerung in Rechnersystemen Technologie- Entwicklung Kapitel 2 Pipeline-Verarbeitung SSI: Small Scale Integration MSI: Medium Scale Integration LSI: Large Scale Integration VLSI: Very Large Scale Integration ULSI: Ultra Large Scale

Mehr

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018

Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Technische Informatik 1 Übung 7 Pipelining (Rechenübung) Balz Maag 22./23. November 2018 Aufgabe 1: Taktrate / Latenz Einzeltakt-Architektur Pipelining-Architektur Pipelining-Architektur 15 15 120 ps 15

Mehr

JR - RA - SS02 Kap

JR - RA - SS02 Kap 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining 3.5 Superskalare Befehlsausführung JR - RA - SS02 Kap.

Mehr

Arbeitsfolien - Teil 4 CISC und RISC

Arbeitsfolien - Teil 4 CISC und RISC Vorlesung Informationstechnische Systeme zur Signal- und Wissensverarbeitung PD Dr.-Ing. Gerhard Staude Arbeitsfolien - Teil 4 CISC und RISC Institut für Informationstechnik Fakultät für Elektrotechnik

Mehr

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8

Vorwort Teil 1: Grundlagen 1. 1 Einleitung Grundbegriffe Einheiten Geschichte Arten von Computern 8 Inhaltsverzeichnis Vorwort Teil 1: Grundlagen 1 1 Einleitung 3 1.1 Grundbegriffe 3 1.2 Einheiten 5 1.3 Geschichte 6 1.4 Arten von Computern 8 2 Allgemeiner Aufbau eines Computersystems 15 2.1 Blockdiagramm

Mehr

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009

Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Beispielhafte Prüfungsaufgaben zur Vorlesung TI I, gestellt im Frühjahr 2009 Die beigefügte Lösung ist ein Vorschlag. Für Korrektheit, Vollständigkeit und Verständlichkeit wird keine Verantwortung übernommen.

Mehr

Fachbereich Medienproduktion

Fachbereich Medienproduktion Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen

Mehr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr

Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr Praktikum zur Vorlesung Prozessorarchitektur SS 2017 Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch 21.06.2017, 14:00 Uhr 1.1. Einführung Programmsteuerbefehle

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller SS 2004 VAK 18.004 Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller Aufgabenblatt 2.5 Lösung 2.5.1 Befehlszähler (Program Counter, PC) enthält Adresse des nächsten auszuführenden

Mehr

Grundlagen der Rechnerarchitektur. Einführung

Grundlagen der Rechnerarchitektur. Einführung Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS

Mehr

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht Kap.3 Mikroarchitektur Prozessoren, interne Sicht 1 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

b i Ergänzung zu Vollkonjunktionen (ohne Indizierung i = 0... n-1): q = a b a b q = a b q = a b a b a b

b i Ergänzung zu Vollkonjunktionen (ohne Indizierung i = 0... n-1): q = a b a b q = a b q = a b a b a b Ansatz: Die Realisierung von arithmetischen Operationen mit Logikgattern führt zu ähnlichen Verarbeitungsstrukturen für arithmetische und logische Befehle Parallele Zahlwort/oder Logikverarbeitung ist

Mehr

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors Digitaltechnik und Rechnerstrukturen 2. Entwurf eines einfachen Prozessors 1 Rechnerorganisation Prozessor Speicher Eingabe Steuereinheit Instruktionen Cachespeicher Datenpfad Daten Hauptspeicher Ausgabe

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 4 Prozessor Einzeltaktimplementierung Lothar Thiele Computer Engineering and Networks Laboratory Vorgehensweise 4 2 Prinzipieller Aufbau Datenpfad: Verarbeitung und Transport von

Mehr

Grundzüge der Informatik II

Grundzüge der Informatik II Grundzüge der Informatik II Kapitel 4: Realisierung von Rechen- und Steuerwerk (2. Teil) Prof. Dr. Oskar von Stryk Fachgebiet Simulation und Systemoptimierung TU Darmstadt Skript: Patterson/Hennessy, Chapter

Mehr

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016

Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016 Technische Informatik 1 Übung 6 Pipelining (Rechenübung) Andreas Tretter 24./25. November 2016 Aufgabe 1: Taktrate / Latenz TI1 - Übung 6: Pipelining Einzeltakt-Architektur TI1 - Übung 6: Pipelining Pipelining-Architektur

Mehr

Prozessorarchitektur. Sprungvorhersage. M. Schölzel

Prozessorarchitektur. Sprungvorhersage. M. Schölzel Prozessorarchitektur Sprungvorhersage M. Schölzel Inhalt Sprungvorhersage statische Methoden dynamische Methoden Problem Fetch-Phase Befehlswarteschlange Speicher b? Neue Adresse für noch nicht bekannt

Mehr

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset. Quiz Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset 32 Bit Adresse 31 3 29... 2 1 SS 212 Grundlagen der Rechnerarchitektur

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs

Mehr

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09

Rechnerorganisation. (10,11) Informationskodierung (12,13,14) TECHNISCHE UNIVERSITÄT ILMENAU. IHS, H.- D. Wuttke `09 Rechnerorganisation Mathematische Grundlagen (1) Boolesche Algebren: : BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen (9) Rechneraufbau

Mehr

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.) ARM: Befehlssatz (Forts.) Befehl SWI zum Auslösen eines Software-Interrupts: Instruktionsformat: Ausführung von SWI überführt CPU in den supervisor mode (nach Retten des PC in r14_svc und des CPSR in SPSR_svc)

Mehr

ARM: Befehlssatz (Forts.)

ARM: Befehlssatz (Forts.) ARM: Befehlssatz (Forts.) Befehl SWI zum Auslösen eines Software-Interrupts: Instruktionsformat: Ausführung von SWI überführt CPU in den supervisor mode (nach Retten des PC in r14_svc und des CPSR in SPSR_svc)

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Architektur von Parallelrechnern 50

Architektur von Parallelrechnern 50 Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr