2.3 Register-Transfer-Strukturen
|
|
|
- Barbara Stieber
- vor 7 Jahren
- Abrufe
Transkript
1 2 2.3 Register-Transfer-Strukturen Peter Marwedel Informatik 2 Otto-Hahn-Str. 6 Tel [email protected] Sprechstunde: Mo 3:-4: 24/6/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, 24 i '' ist nat(a)=sa 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 ALU Komponenten von RT-Strukturen: ALUs Addierer, arithmetisch/ logische Einheiten (ALUs) z=f (x,y,kontrolle) x y 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 Speicher Multiportspeicher Multiport- 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, 24 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 i2 a2 a Speicher Befehlsregister IR i3 a3 a2 a Reg Speicher ALU PC B ALUOp PCWrite MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA TargetWrite PCSource Steuerwerk 3:26 25:2 2:6 4 T 2 5: 5: 25: * sign_ extend 2 3 * " 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 i2 a2 a Speicher Befehlsregister IR i3 a3 a2 a Reg Speicher ALU PC B ALUOp PCWrite MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA TargetWrite PCSource fetch + IR:=Speicher[PC]; PC:=PC+4 B=PCWrite v PCWriteC zero 3:26 25:2 2:6 5: 5: 25: * sign_ extend zero T * 3: 28 2 " Ravi microprog
16 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,
17 Befehlsregister i2 a2 a Speicher i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite Steuerwerk decode Steuerwerk nutzt Opcode zur Verzweigung. 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite 2 mar + Speicher-Adresse wird in T gespeichert 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite load Reg[IR(2:6)]:= Speicher[T] 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 3: 28 2 " Ravi microprog
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 i2 a2 a Speicher Befehlsregister (IR) i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA PCWrite ALUOp TargetWrite PCSource store 3:26 25:2 2:6 4 T 2 5: 5: 25: * sign_ extend 2 3 * 3: 28 " Ravi microprog
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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite Steuerwerk rr IR² ² ALU-Funktion durch shamt und funct bestimmt. alu_control nimmt geeignete Umkodierung vor. 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 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 i2 a2 a Speicher Befehlsregister IR i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite rr2 Reg[IR(5:)] :=T 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 3: 28 2 " Ravi microprog
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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite Steuerwerk jump 2 PC:=PC(3:28) &IR(25:) &"" 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 3: 28 2 " Ravi microprog
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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite Steuerwerk 3 branch + T:=PC+(sign_ext( IR(5:))&"") 3:26 25:2 2:6 5: 5: 25: * sign_ extend T * 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 i2 a2 a Speicher Befehlsregister i3 a3 a2 a Reg Speicher ALU PC B MemWrite MemRead IRWrite RegDest RegWrite ALUSelB ALUSelA ALUOp TargetWrite PCSource PCWrite Steuerwerk =/-² 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. 3:26 25:2 2:6 5: 5: 25: * branch2 sign_ extend zero T * 2 " 3: 28
34 PCWrite PCSource Eingabe: Opcode Das Steuerwerk Verhalten, vereinfacht (mar vermeidet Verzweigung bei mar) Struktur Takt fetch decode * µpc Zustand rr branch jump lw mar mar' Mikroprogrammspeicher load store rr2 branch2 * Folgezustand bestimmt durch Mikroprogrammspeicher, bei decode aus dem Opcode 2, Ausgabe
35 + Art der Bestimmung des Folgezustands PCWrite PCWriteC IorD MemWrite MemRead IRWrite Mem2Reg RegDest ALUSelB ALUSelA ALUOp TargetWri PCSource Inhalt des Mikroprogrammspeichers Zustand 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 2,
36 Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 2,
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 Eingabe: Opcode Mikroprogrammierung fetch decode rr branch jump mar mar' lw load store rr2 branch2 Struktur Takt * µpc Zustand Mikroprogrammspeicher 2,
41 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,
42 Mikroprogrammierung Fließbandverarbeitung fetch decode rr branch jump mar mar' lw load store rr2 branch2 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, 24 Flash-Animation
47 5: sign_ extend PC 2:6 Reg Speicher ALU Speicher DMem + 25: 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 IF/ID ID/EX EX/MEM MEM/WB zero 2,
48 5: sign_ extend PC Speicher DMem 2:6 Reg Speicher ALU + 25:2 Ä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 IF/ID ID/EX EX/MEM MEM/WB zero Steuerwerk nicht dargestellt 2,
49 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,
50 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus Befehl 2,
51 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 2 Befehl 2 Befehl 2,
52 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 3 Befehl 3 Befehl 2 Befehl 2,
53 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 4 Befehl 4 Befehl 3 Befehl 2 Befehl 2,
54 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 5 Befehl 5 Befehl 4 Befehl 3 Befehl 2 Befehl 2,
55 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Idealer Fließbanddurchlauf 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 6 Befehl 6 Befehl 5 Befehl 4 Befehl 3 Befehl 2 2,
56 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,
57 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,
58 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,
59 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, 24 pipeline
60 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus add $,$2,$3 2,
61 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero sub $4,$5,$ add $,$2,$3 Zyklus 2 2,
62 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 3 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
63 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 4 or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
64 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 5 xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
65 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Bypässe, forwarding: Behandlung des data hazards bei and und sub 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 6? xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ 2,
66 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt add $,$2,$3 Zyklus Übernahme in die Pipeline-Register 2,
67 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt sub $4,$5,$ add $,$2,$3 Zyklus 2 Übernahme in die Pipeline-Register 2,
68 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt Zyklus 3 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
69 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt Zyklus 4 or $8,$,$9 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
70 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt Zyklus 4 xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-Register Zyklus 5 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
71 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt Zyklus 4 xor $,$,$ or $8,$,$9 Übernahme in die Pipeline-Register Zyklus 5 and $6,$,$7 sub $4,$5,$ add $,$2,$3 2,
72 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Taktung zur Behandlung des data hazards bei or 4 IF/ID ID/EX EX/MEM MEM/WB zero Takt Übernahme in Reg, Dmem und PC? xor $,$,$ Übernahme in die Pipeline-Register Zyklus 6 or $8,$,$9 and $6,$,$7 sub $4,$5,$ 2, 24 pipeline2-72 -
73 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Alle data hazards durch Bypässe behandelbar? 4 IF/ID ID/EX EX/MEM MEM/WB zero 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,
74 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus lw $,($2) 2,
75 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 2 sub $4,$5,$ lw $,($2) 2,
76 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 3 and $6,$,$7 sub $4,$5,$ lw $,($2) 2,
77 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 4 or NOOP $8,$,$9 and NOOP $6,$,$7 sub NOOP $4,$5,$ lw $,($2) 2,
78 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 5 or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP lw $,($2) 2,
79 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Lösung durch Anhalten des Fließbandes (pipeline stall, hardware interlocking, bubbles) 4 IF/ID ID/EX EX/MEM MEM/WB zero Zyklus 6 bubble, durch intelligente Compiler vermeiden! xor $,$,$ or $8,$,$9 and $6,$,$7 sub $4,$5,$ NOOP 2, 24 pipeline3-79 -
80 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,
81 5: sign_ extend PC Reg DMem 2:6 ALU + 25:2 Kontrollfluss-Abhängigkeiten oder - Gefährdungen, control hazards (2) 4 IF/ID ID/EX EX/MEM MEM/WB zero 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,
82 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,
83 5: sign_ extend PC DMem Reg 2:6 ALU + + 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 * Folgeadresse bei fallender Flanke übernommen. 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 2,
84 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, 24 pipeline3-84 -
85 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,
86 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, 24 Movie
87 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,
88 Prozessortrends 2,
89 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,
90 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, 24 Graphics: P. Marwedel, 2-9 -
91 Hugo De Man, IMEC, 27 GOPS/J Trend hinsichtlich Energieeffizienz 2,
92 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,
93 Copyright 2, Elsevier Inc. All rights Reserved. [Hennessy/Patterson: Computer Architecture, 5th ed., 2] Entwicklung der Taktfrequenzen 2,
94 Vorhersage der Taktfrequenzen Interner Takt [GHz] Steigerungsraten reduziert, nur noch moderate Steigerung. [ITRS, 2 Overall Roadmap Technology Characteristics (ORTC) Tables ] 2,
95 Copyright 2, Elsevier Inc. All rights Reserved. [Hennessy/Patterson: Computer Architecture, 5th ed., 2] Steigerung der Performance 2,
96 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,
97 Einschub: Multi-threading/multi-processing In realen Rechnern meist mehrere Programme gespeichert. Ausführbare Programme heißen Prozesse oder tasks. Prozessen wird durch einen dispatcher (z.tl. scheduler genannt) Rechenzeit auf dem Prozessor zugeteilt. 2,
98 Einschub: Dispatcher Dispatcher schaltet zwischen Ausführung von Prozessen um (context switch). Bei context switch werden alle Registerinhalte - des anzuhaltenden Prozesses in einen ihm zugeordneten Datenblock (process control block, PCB) gerettet & - die des zu fortzuführenden Prozesses aus seinem PCB geladen. Prozessen wird suggeriert, der Prozessor gehöre ihnen allein (bis auf Zeitverhalten). - Prozesse haben eigene, - Threads verfügen über gemeinsame Adressen 2,
99 Einschub: Context switch Prozessor Register A Ausführung A B Speicher PCB A B PCB B A B 2,
100 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, 24 [ [ tenland.de/pi/intel Core2ExtremeQx 67.jpg] - -
101 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, 24 [ processor/datashts/ pdf] - -
102 Intel 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 2, 24 /us/en/documents/datasheets/4th-gen-corefamily-desktop-vol--datasheet.pdf - 2 -
103 Experimentell: Intel single chip cloud computer Experimentelle (homogene) Plattform (29) 2, 24 Intel - 3 -
104 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,
105 Hugo De Man, IMEC, 27 Multiprocessor Systems On A Chip (MPSoCs) - Beispiele belegen Existenz effizienter heterogener Prozessoren - 2,
106 Energieeffizientes Design mit (halb) heterogenen Prozessoren Halb Heterogen : Identischer Befehlssatz (ISA), aber optimiert für Performance bzw. Energieeffizienz 2, 24 big_little_final_final.pdf ARM - 6 -
107 Unterschiede u.a. aufgrund unterschiedlicher Fließbänder 2, 24 big_little_final_final.pdf - 7 -
108 Anwendung: Samsung Exynos 5 Octa 4 Cortex A7 + 4 Cortex A5 Eingebaut in manche Varianten des Samsung S 4 Videos: 2, 24 Photo: Samsung - 8 -
109 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,
110 Multi-cores in der Großrechnerwelt 2,
111 Anzahl der Komponenten stationärer Systeme [ITRS Update 2] 2,
112 Vorhersage der Anzahl der Funktionen pro Chip [ITRS 2] 2,
113 # Transistoren bei Prozessorchips [ITRS 2] 2,
114 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,
115 Niedrigere Spannung, langsamerer Takt? 2 Sieht im ersten Moment besser aus 2,
116 Bestes Ergebnis bei 44 Cores Taktung mit GHz Optimaler Takt Nur Flächenbeschränkung Bandbreitengrenze Weitere Performancesteigerungen bleiben begrenzt 2,
117 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,
118 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,
119 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,
120 Reserve 2,
121 [Anschlüsse] Vorhersage der Anzahl der Anschlüsse high performance cost/performance (min.) [ITRS Roadmap 29] 2,
122 [ITRS Update 2] Leistungsaufnahme mobiler Systeme 2,
123 Multi-cores in der Großrechnerwelt (2) 2,
124 Multi-cores in der Großrechnerwelt (3) 2,
125 Multi-cores in der Großrechnerwelt (4) 2,
126 Niedrigere Spannungen reduzieren auch die Kommunikationsbandbreite Grenze durch verfügbare Bandbreite (klein bei wenig Cores) 2 2,
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
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 [email protected]
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
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
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
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:
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:
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:
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:
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:
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
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:
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
Ü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)
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
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
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
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
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
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
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
Teil 2: Rechnerorganisation
Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung
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
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
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
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
2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
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
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
High Performance Embedded Processors
High Performance Embedded Processors Matthias Schwarz Hardware-Software-Co-Design Universität Erlangen-Nürnberg [email protected] [email protected]
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
Ü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
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
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
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...
Fachbereich Medienproduktion
Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen
Ü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
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$
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
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
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
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
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
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
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
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
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
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
Schriftliche Prüfung
OTTO-VON-GUERICKE-UNIVERSITÄT MAGDEBURG FAKULTÄT FÜR INFORMATIK Schriftliche Prüfung im Fach: Rechnersysteme Studiengang: Bachelor (PF CSE / IF; WPF CV / WIF) am: 30. Juli 2008 Bearbeitungszeit: 120 Minuten
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
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
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
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.
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)
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)
