Rechnerstrukturen, Teil 2

Größe: px
Ab Seite anzeigen:

Download "Rechnerstrukturen, Teil 2"

Transkript

1 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

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?) - 3 -

4 Komponenten von RT-Strukturen: Dekoder Beispiel : aus n-dekoder x Dekoder m y=f(x) 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 ( x)) = undefiniert für x = "..." z.b. : y = "", nat( y) = 5 für x = "" 5 den x 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 2 3 e 2 e 3 & & 3 aus n Kontrolle 2-5 -

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 - 6 -

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

8 Komponenten von RT-Strukturen: Speicher Speicher Takt Kontrolle Speicher Daten Daten Adresse 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

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) - 9 -

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

11 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): F 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. F Vorgehen für die MIPS-Maschine - -

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

13 Überprüfung der Ausführbarkeit F 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 load memory store memory access access rr2 Reg[IR(..)]:= Speicher[T] branch2-3 -

14 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 25: 5: 5: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 zero ALUOp ALU TargetWrite T PCSource * 2 " 3: 28

15 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 load memory store memory access access rr2 branch2-5 -

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

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

18 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 25: 5: 5: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp ALU TargetWrite T PCSource * 2 " 3: 28

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

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

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

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

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

24 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 25: 5: 5: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp ALU TargetWrite T PCSource * 2 " 3: 28

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

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

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

28 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 25: 5: 5: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp ALU TargetWrite T PCSource * 2 " 3: 28

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

30 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 25: 5: 5: RegDest RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 ALUOp ALU TargetWrite T PCSource * 2 " 3: 28

31 Quiz x4: beq $8, $9, x2 Welche Befehlsadresse wird nach beq (x4) ausgeführt, wenn $8 und $9 gleich sind? - 3 -

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

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 25: 5: 5: RegDest branch2 RegWrite Reg Speicher i3 a3 a2 a sign_ extend ALUSelB 4 ALUSelA 2 3 zero ALUOp ALU TargetWrite 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... 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 mux Eingabe: Opcode * Takt µpc Zustand Mikroprogrammspeicher * Folgezustand bestimmt durch Mikroprogrammspeicher, bei decode aus dem Opcode PCWrite... Ausgabe PCSource

36 Zustand (bestimmt Adresse im Speicher) Inhalt des Mikroprogrammspeichers Folge- Zustand bzw. Zustände fetch decode X X + + Art der Bestimmung des Folgezustands PCWrite PCWriteC IorD 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 MemWrite MemRead IRWrite Mem2Reg RegDest ALUSelB ALUSelA ALUOp TargetWri PCSource

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

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

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

40 Mikroprogrammierung fetch decode mar mar' rr branch jump lw load store rr2 branch2-4 -

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

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 F Versuch, Mikroprogramme zu vermeiden

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

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

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

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

47 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 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:

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:

50 Aufgaben der einzelnen Phasen bzw. Stufen Befehlsholphase Lesen des aktuellen Befehls;; separater Speicher, zur Vermeidung von Konflikten mit Datenzugriffen (F 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

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

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

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

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

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

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

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). F Eventuell Anhalten des Fließbandes (pipeline stall) nötig

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

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

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. 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 sign_ extend PC 2:6 Reg ALU DMem 5: Zyklus add $,$2,$3-6 -

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

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

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 sign_ extend 2:6 Reg ALU DMem 5: Zyklus 4 or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3-64 -

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 sign_ extend 2:6 Reg ALU DMem 5: Zyklus 5 xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3-65 -

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

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

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

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-69 -

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

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

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-72 -

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,$ 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

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 sign_ extend PC 2:6 Reg ALU DMem 5: lw $,($2) Zyklus

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 sign_ extend PC 2:6 Reg ALU DMem 5: sub $4,$5,$ lw $,($2) Zyklus

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 sign_ extend PC 2:6 Reg ALU DMem 5: Zyklus 3 and $6,$,$7 sub $4,$5,$ lw $,($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 sign_ extend PC 2:6 Reg ALU DMem 5: Zyklus 4 or NOOP $8,$,$9 and NOOP $6,$,$7 sub NOOP $4,$5,$ lw $,($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 sign_ extend PC 2:6 Reg ALU DMem 5: Zyklus 5 or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP lw $,($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 sign_ extend PC 2:6 Reg ALU DMem 5: Zyklus 6 bubble, durch intelligente Compiler vermeiden! xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP 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

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

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)

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

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... It s not a bug, it s a feature t: add.. 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. 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) F 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) F delayed branches, pipeline stalls, spekulative Ausführung, Sprungvorhersage

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 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 F 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 (F Rechnerarchitektur) Ggf. mehrere Fließbänder bei modernen Architekturen

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

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

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

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 25/2/6 (xmas) Kontext Die Wissenschaft Informatik befasst sich mit der Darstellung,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

Hier: Soviele Instruktionen wie möglich sollen in einer Zeiteinheit ausgeführt werden. Durchsatz.

Hier: Soviele Instruktionen wie möglich sollen in einer Zeiteinheit ausgeführt werden. Durchsatz. Pipelining beim DLX 560 Prozessor Pipelining : Implementierungstechnik Vielfältig angewendet in der Rechnerarchitektur. Pipelining macht CPUs schnell. Pipelining ist wie Fließbandverarbeitung. Hintereinanderausführung

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

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

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

Rechnerarchitekturen I Datenpfad Dr. Michael Wahl

Rechnerarchitekturen I Datenpfad Dr. Michael Wahl Rechnerarchitekturen I Datenpfad Dr. Michael Wahl 3.3.2 Rechnerarchitekturen I Die fünf Komponenten eines Rechensystems und Steuerung:! Datenpfad! Der Ort,! an dem! ein Rechner! rechnet.! 3.3.2 Rechnerarchitekturen

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

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

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

Ü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

9. Fließbandverarbeitung

9. Fließbandverarbeitung 9. Fließbandverarbeitung Nachteile der Mikroprogrammierung Von CISC zu RISC Fließbandverarbeitung Pipeline-Hazards Behandlung von Daten- und Kontroll-Hazards 334 Nachteile mikroprogrammierter CPUs Zusätzliche

Mehr

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78 32 Bit Konstanten und Adressierung Grundlagen der Rechnerarchitektur Assembler 78 Immediate kann nur 16 Bit lang sein Erinnerung: Laden einer Konstante in ein Register addi $t0, $zero, 200 Als Maschinen

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

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

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

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

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

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

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

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

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

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

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

9.1. Aufbau einer Befehlspipeline

9.1. Aufbau einer Befehlspipeline Kapitel 9 - Befehlspipelining Seite 191 Kapitel 9 Befehlspipelining 9.1. Aufbau einer Befehlspipeline Ein typischer Befehl in einer Maschine mit einem RISC-artigen Befehlssatz besteht aus den Operationen:

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

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining

Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining Themen heute Besprechung des 5. Übungsblattes Parallelität innerhalb der CPU Pipelining Organisatorisches Wie schon in den vorhergehenden Tutorien erwähnt, ist Mehrfachabgabe, außer bei Programmieraufgaben,

Mehr

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 10. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag. Übung Technische Grundlagen der Informatik II Sommersemester 29 Aufgabe.: MIPS-Kontrollsignale Für die 5 Befehlstypen a) R-Format

Mehr

Computersysteme. Fragestunde

Computersysteme. Fragestunde Computersysteme Fragestunde 1 Dr.-Ing. Christoph Starke Institut für Informatik Christian Albrechts Universität zu Kiel Tel.: 8805337 E-Mail: chst@informatik.uni-kiel.de 2 Kurze Besprechung von Serie 12,

Mehr

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen

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

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

1 Rechnerstrukturen 1: Der Sehr Einfache Computer David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1

Mehr

Aufgabenblatt 7. Es sind keine Abgaben mit mehreren Namen oder Kopien von Abgaben anderer erlaubt

Aufgabenblatt 7. Es sind keine Abgaben mit mehreren Namen oder Kopien von Abgaben anderer erlaubt Aufgabenblatt 7 Wichtige Hinweise: Bitte Namen und Gruppennummer deutlich lesbar rechts oben auf allen Blättern der Abgabe angeben und alle Blätter der Abgabe zusammenheften (1 Zusatzpunkt!) Es sind keine

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

Rechnerarchitekturen und Mikrosystemtechnik lectures/2008ws/vorlesung/ram

Rechnerarchitekturen und Mikrosystemtechnik   lectures/2008ws/vorlesung/ram 64-613 RAM 64-613 Rechnerarchitekturen und Mikrosystemtechnik http://tams-www.informatik.uni-hamburg.de/ lectures/2008ws/vorlesung/ram Andreas Mäder Fakultät für Mathematik, Informatik und Naturwissenschaften

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 8 Datum: 8. 9. 12. 2016 1 Instruktionsparallelität VLIW Gegeben

Mehr

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4.

SUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4. 33 7 Pipelining Gegeben ist der folgende Ausschnitt aus einer MMIX Codesequenz: SUB $2,$5, Zeile LDO $5,$,2* Zeile 2 OR $,$2,$3 Zeile 3 SRU $,$5,$ Zeile 4 Zeile und 3 wg b) Geben Sie alle auftretenden

Mehr

Rechnerstrukturen 1: Der Sehr Einfache Computer

Rechnerstrukturen 1: Der Sehr Einfache Computer Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................

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

, 2015W Übungsgruppen: Mo., Mi.,

, 2015W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 6: Befehlssatz, Pipelining 183.59, 2015W Übungsgruppen: Mo., 1.12. Mi., 16.12.2015 Aufgabe 1: Stack Funktionsweise Erläutern Sie die Funktionsweise eines Stacks

Mehr