Grundlagen der Rechnerarchitektur. Prozessor

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Rechnerarchitektur. Prozessor"

Transkript

1 Grundlagen der Rechnerarchitektur Prozessor

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

3 Datenpfad einer einfachen MIPS CPU Grundlagen der Rechnerarchitektur Prozessor 3

4 Ziel Konstruktion des Datenpfads einer einfachen MIPS CPU als Blockschaltbild. Die CPU hat 32 Register und soll folgende MIPS Instruktionen realisieren: Instruktionen für Speicherzugriff: lw, sw lw $s1, 4($s2) # $s1 = Memory[$s2+4] sw $s1, 4($s2) # Memory[$s2+4] = $s1 Arithmetisch logische Instruktionen: add, sub, and, or, slt add $s0, $s1, $s2 # $s0 = $s1 + $s2 slt $s0, $s1, $s2 # $s0 = ($s1<$s2)? 1 : 0 Branch Instruktion: beq beq $s1, $s2, 4096 # $pc = $pc <<2, wenn $s1=$s2 Grundlagen der Rechnerarchitektur Prozessor 4

5 Datenpfad einer einfachen MIPS CPU Erster Abschnitt des Datenpfades Grundlagen der Rechnerarchitektur Prozessor 5

6 Benötigte Bausteine Speicherbaustein in dem die abzuarbeitenden Instruktionen stehen. Instruction Address ist 32 Bit groß. Wenn an den Leitungen Instruction Address eine Adresse anliegt, liegt im nächsten Taktzyklus eine 32 Bit lange Instruktion auf den Instruction Leitungen. Register in dem der Programm Counter steht. Hier steht die Adresse der nächsten abzuarbeitenden Instruktion. Eine ALU, die fest auf die Funktion Addieren verdrahtet ist. Mit dieser ALU wird der Program Counter in 4er Schritten erhöht, um auf die nächste folgende Instruktion zu zeigen. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Logik und Arithmetik 6

7 Erster Schritt der Instruktionsausführung Mit dem neuen Clock Signal passiert folgendes: Instruction Fetch: Lag der Program Counter Wert seit dem letzten Clock Signal am Instruction Memory an, erscheint mit dem nächsten Clock Signal die nächste auszuführende Instruktion an der Instruction Leitung. Program Counter erhöhen: Damit der Speicher schon mit dem Bereitstellen der nächsten Instruktion beginnen kann, wird der Program Counter direkt zu Beginn der Instruktionsabarbeitung auf die nächste abzuarbeitende Instruktion gesetzt. Grundlagen der Rechnerarchitektur Prozessor 7

8 Das Blockschaltbild dazu Grundlagen der Rechnerarchitektur Prozessor 8

9 Datenpfad einer einfachen MIPS CPU Arithmetische Logische Operationen Grundlagen der Rechnerarchitektur Prozessor 9

10 Betrachten zunächst R Typ Instruktionen Erinnerung, Instruktionen vom R Typ Format: opcode src1 src2 dest shamt funct 6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit R Typ (Register Typ) Solche Instruktionen machen immer folgendes: Lese zwei Register (src1 und src2) Führe eine ALU Operation darauf aus Schreibe Ergebnis zurück in ein Register (dest) Alle hier zu realisierenden arithmetisch logischen Instruktionen (d.h. add, sub, and, or, slt) sind R Typ Instruktionen. Zum Speichern der Registerinhalte und zur Durchführung der Rechenoperationen benötigen wir zwei weitere Bausteine. Grundlagen der Rechnerarchitektur Prozessor 10

11 Register File und ALU Auf den Read Data Leitungen liegen die 32 Bit Inhalte der Register, die den 5 Bit Read Register Inputs entsprechen. Ein Register File ist wesentlich schneller als der Speicher. Daten liegen in einem Instruktionszyklus unmittelbar auf den Read Data Leitungen vor. In einem Taktzyklus überschriebener Registerinhalt ist erst im darauf folgenden auf den Read Data Leitungen sichtbar. Zum Schreiben in ein Register müssen die Daten auf den Write Data Leitungen vorliegen und die RegWrite Leitung muss aktiv sein. Die ALU rechnet auf 32 Bit Werten. Die ALU Operation wird über die 4 Bit ALU Operation Leitungen gewählt; hierzu später mehr. Die Zero Leitung ist 0, wenn das ALU Ergebnis 0 ergab. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 11

12 Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 12

13 Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13

14 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format: opcode reg1 reg2 Offset 6 Bit 5 Bit 5 Bit 16 Bit I Typ (Immediate Typ) beq Instruktion macht immer folgendes: Ziehe zwei Register voneinander ab (reg1 und reg2) Wenn das Ergebnis ungleich 0: nächste Instruktion ist bei PC+4 Wenn das Ergebnis gleich 0 : Sign Extension von 16 Bit Offset auf 32 Bit Zahl x x = 4*x (lässt sich durch ein Links Shift von 2 erreichen) nächste Instruktion ist bei PC+4+x Berechnung reg1 reg2 ist durch den Datenpfad schon realisiert. Für den Rest brauchen wir noch zwei neue Bausteine: Grundlagen der Rechnerarchitektur Prozessor 14

15 Sign Extend und Shift Left 2 k Sign Extend n Shift Left 2 Vorzeichenbehaftetes Ausweiten von k auf n Leitungen (z.b. 16 auf 32). Links oder Rechts Shift von Leitungen (z.b. Shift Left 2) Grundlagen der Rechnerarchitektur Logik und Arithmetik 15

16 Wir müssen außerdem eine Auswahl treffen Wenn die aktuelle Instruktion ein beq ist, dann berechne den PC nach vorhin beschriebener Vorschrift. Wenn die Instruktion kein beq ist, dann bestimme den PC wie bisher gehabt; also PC=PC+4. Zum Treffen von Auswahlen brauchen wir eine weiteren Bausteintyp: Grundlagen der Rechnerarchitektur Prozessor 16

17 Multiplexer A B A 32 B 32 A 1 A 2 A 3 A 4 Select 0 Mux 1 Select 0 Mux 1 Select Mux 32 C Für ein Bit C Für n Bit (z.b. 32 Bit) C Für n Bit Select (z.b. 2 Bit) C = A, wenn Select = 0 C = B, wenn Select = 1 C = A 0, wenn Select = 00 C = A 1, wenn Select = 01 C = A 2, wenn Select = 10 C = A 3, wenn Select = 11 Grundlagen der Rechnerarchitektur Logik und Arithmetik 17

18 Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 18

19 Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19

20 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format: opcode reg1 reg2 Offset 6 Bit 5 Bit 5 Bit 16 Bit I Typ (Immediate Typ) Die Adresse des Speicherzugriffs berechnet sich wie folgt: Sign Extension von 16 Bit Offset auf 32 Bit Zahl x Adresse ist Inhalt von reg1 + x Hierzu werden wir vorhandene ALU und Sign Extend mitbenutzen Der Speicherinhalt wird dann bei lw in Register reg2 geschrieben bei sw mit Registerinhalt von reg2 überschrieben Zur Vereinfachung trennen wir im Folgenden den Speicher der Instruktionen vom Speicher der Daten. Letzterer ist wie folgt: Grundlagen der Rechnerarchitektur Prozessor 20

21 Datenspeicher Speicherbaustein in dem die Daten liegen. Address, Write Data und Read Data sind 32 Bit groß. In keinem Taktzyklus wird gleichzeitig gelesen und geschrieben. Schreiben oder lesen wird über Signale an MemWrite und MemRead durchgeführt. Der Grund für ein MemRead ist, dass sicher gestellt sein muss, dass die anliegende Adresse gültig ist (mehr dazu im Kapitel Speicher). Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 21

22 Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 22

23 Eine Übung zum Abschluss Wie lässt sich das Blockschaltbild des Datenpfads erweitern, sodass auch die MIPS Instruktion j unterstützt wird? Zur Erinnerung: j 4096 # $pc = 4096<<2 + oberste vier # Bit von $pc Grundlagen der Rechnerarchitektur Prozessor 23

24 Control einer einfachen MIPS CPU Grundlagen der Rechnerarchitektur Prozessor 24

25 Ziel Bisher haben wir lediglich den Datenpfad einer einfachen MIPS CPU entworfen. Die Steuerleitungen der einzelnen Bausteine zeigen noch ins Leere. Jetzt wollen wir festlegen, wann zur Abarbeitung unserer Instruktionen (d.h. lw, sw,add, sub, and, or, slt,beq ) welche Steuerleitungen an oder aus sein sollen. Den Baustein der das macht, nennt man Control. Wir trennen die Control in zwei Teile: ALU Control: Legt für jeden Befehl die ALU Operation fest. Main Unit Control: Legt für jeden Befehl die übrigen Steuerleitungen fest. Wir verwenden auf den nächsten Folien die folgende Terminologie: Steuerleitung an: asserted Steuerleitung aus: deasserted Grundlagen der Rechnerarchitektur Prozessor 25

26 Control einer einfachen MIPS CPU ALU Control Grundlagen der Rechnerarchitektur Prozessor 26

27 Vorüberlegung: Die passenden ALU Funktionen Control Eingänge der betrachteten ALU Für Load und Store Instruktionen lw, sw brauchen wir die ALU Funktion add. Für die arithmetisch logischen Instruktionen add, sub, and, or, slt brauchen wir die entsprechende passende ALU Funktion. Für die Branch Instruktion beq brauchen wir die ALU Funktion sub. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 27

28 Vorüberlegung: die Instruktionsformate (I-type) (I-type) Wenn der Wert von Bit 31 bis 26 in der gefetchten Instruktion gleich 0: arithmetisch logische Instruktion (d.h. add,sub,and,or,slt). Die Funktion ist mit dem Wert von Bit 5 bis 0 festgelegt. 35 oder 43: Load bzw. Store Instruktion (d.h. lw, sw). 4: Branch Instruktion (d.h. beq). Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 28

29 Eingabe ALUOp in Abhängigkeit des Instruktionstyps 5 Bit Funct Field der Instruktion ALU Control ALU Control Ausgabe Belegung der ALU Steuerleitungen, so dass die ALU die richtigen ALU Operation ausführt. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 29

30 In einer Wahrheitstabelle zusammengefasst 0 0 Eingabe Ausgabe Daraus lässt sich mechanisch eine kombinatorische Schaltung generieren, die wir im Folgenden mit dem ALU Control Symbol abstrakt darstellen. ALUOp Instruction[5:0] (also das Funct Field der Instruktion) ALU Control ALU Operation Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 30

31 Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 31

32 Control einer einfachen MIPS CPU Main Unit Control Grundlagen der Rechnerarchitektur Prozessor 32

33 Opcode bestimmt Steuerleitungsbelegungen Eingabe: Instruction [31 26] Ausgabe Instruction RegDst ALUSrc R format (0) lw (35) sw (43) beq (4) Memto Reg Reg Write Mem Read Mem Write Branch ALU Op1 ALU Op0 Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 33

34 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: das Opcode Field der Instruktion) Control RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite Grundlagen der Rechnerarchitektur Prozessor 34

35 Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 35

36 Beispiel für eine R Typ Instruktion add $t1, $t2, $t3 Instruktion wird gefetched und PC um 4 erhöht. Die Register $t2 (Instruction [25 21]) und $t3 (Instruction [20 16]) werden aus dem Register File geladen. Die ALU führt die in dem Function Field (Instruction [5 0]) codierte Operation auf den gelesenen Register Daten aus. Das Ergebnis der ALU wird in Register $t1 (Instruction [15 11]) zurück geschrieben. Grundlagen der Rechnerarchitektur Prozessor 36

37 Beispiel für eine Load/Save Instruktion lw $t1, 8($t2) Instruktion wird gefetched und PC um 4 erhöht. Das Register $t2 (Instruction [25 21]) wird aus dem Register File geladen. Die ALU addiert das Register Datum und den 32 Bit Signexteded 16 Bit Immediate Wert 8 (Instruction [15 0]). Die Summe aus der ALU wird als Adresse für den Datenspeicher verwendet. Das Datum aus dem Datenspeicher wird in das Register File geschrieben. Das Register in das geschrieben wird ist $t1 (Instruction [20 16]). Grundlagen der Rechnerarchitektur Prozessor 37

38 Beispiel für eine Branch Instruktion beq $t1, $t2, 42 Instruktion wird gefetched und PC um 4 erhöht. Die Register $t1 (Instruction [25 21]) und $t2 (Instruction [20 16]) werden aus dem Register File geladen. Die Haupt ALU subtrahiert die ausgelesenen Register Daten voneinander. Die zusätzliche ALU addiert PC+4 auf den 32 Bit Signexteded und um 2 nach links geshifteten 16 Bit Immediate Wert 42 (Instruction [15 0]). Das Zero Ergebins der Haupt ALU entscheidet ob der PC auf PC+4 oder auf das Ergebnis der zusätzlichen ALU gesetzt wird. Grundlagen der Rechnerarchitektur Prozessor 38

39 Eine Übung zum Abschluss In der vorigen Übung zum Abschluss wurde das Blockschaltbild des Datenpfads so erweitert, sodass auch die MIPS Instruktion j unterstützt wird. Wie müssen Control und Alu Control modifiziert werden (wenn überhaupt), damit die MIPS Instruktion j auch von Seiten des Control unterstützt wird? Erinnerung: j addr # Springe pseudo-direkt nach addr address Opcode Bits Adresse Bits 25 0 J Typ Grundlagen der Rechnerarchitektur Prozessor 39

40 Pipelining Grundlagen der Rechnerarchitektur Prozessor 40

41 Pipelining Instruktionszyklen Grundlagen der Rechnerarchitektur Prozessor 41

42 MIPS Instruktionszyklus Ein MIPS Instruktionszklus besteht aus: 1. Instruktion aus dem Speicher holen (IF: Instruction Fetch) 2. Instruktion decodieren und Operanden aus Register lesen (ID: Instruction Decode/Register File Read) 3. Ausführen der Instruktion oder Adresse berechnen (EX: Execute/Address Calculation) 4. Datenspeicherzugriff (MEM: Memory Access) 5. Resultat in Register abspeichern (WB: Write Back) Grundlagen der Rechnerarchitektur Prozessor 42

43 Instruktionszyklen in unserem Blockschaltbild Grundlagen der Rechnerarchitektur Prozessor 43

44 Instruktionszyklen generell Instruktionszyklen anderer moderner CPUs haben diese oder eine sehr ähnliche Form von Instruktionszyklen. Unterschiede sind z.b.: Instruktion decodieren und Operanden lesen sind zwei getrennte Schritte. Dies ist z.b. notwendig, wenn Instruktionen sehr komplex codiert sind (z.b. x86 Instruktionen der Länge 1 bis 17 Byte) wenn Instruktionen Operanden im Speicher anstatt Register haben (z.b. einige Instruktionen bei x86) Grundlagen der Rechnerarchitektur Prozessor 44

45 Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45

46 Single Cycle Performance Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen folgende Ausführungszeiten: Instruction Fetch 200ps, Register Read 100ps, ALU Operation 200ps, Data Access 200ps, Register Write 100ps. Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten? Die längste Instruktion benötigt 800ps. Also gilt für den Clock Cycle c: Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 46

47 Die Pipelining Idee am Beispiel Wäsche waschen Bearbeitungszeit pro Wäscheladung bleibt dieselbe (Delay). Gesamtzeit für alle Wäscheladungen sinkt (Throughput). Waschen Trocknen Falten Einräumen Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 47

48 Was ist die Performance Ratio? Annahme jeder Arbeitsgang beansprucht dieselbe Zeit. Was ist die Performance Ratio für n Wäscheladungen? Generell für k Pipeline Stufen, d.h. k Arbeitsgänge und gleiche Anzahl Zeiteinheiten t pro Arbeitsgang? Grundlagen der Rechnerarchitektur Prozessor 48

49 Pipelining für unseren MIPS Prozessor Im Folgenden betrachten wir zunächst ein ganz einfaches Programm: lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) lw $4, 400($0) lw $5, 500($0) Bemerkung: Da die MIPS Registernamen im Folgenden nicht von Bedeutung sind, geben wir in den Programmbeispielen häufig nur noch die Registernummern (z.b. wie oben $0 und $1) an. Außerdem betrachten wir das spezielle Zero Register momentan nicht. Wie kann man die Pipelining Idee im Falle unseres MIPS Prozessors anwenden? Grundlagen der Rechnerarchitektur Prozessor 49

50 Die Pipeline nach den ersten drei Instruktionen Annahme: IF = 200ps ID = 100ps EX = 200ps MEM = 200ps WB = 100ps Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 50

51 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 würde. Allerdings brauchen die einzelnen Stufen s1,...,sk unterschiedliche Zeiteinheiten: t 1,..., t k. Somit ist die Performance Ratio für n Instruktionen: Mit den Zeiten aus dem vorigen Beispiel für n also: Die Performance Ratio wird durch die langsamste Stufe bestimmt. Grundlagen der Rechnerarchitektur Prozessor 51

52 Taktung Annahme die einzelnen Abschnitte des MIPS Instruktionszyklus benötigen die bisher betrachteten Ausführungszeiten: Instruction Fetch 200ps, Register Read 100ps, ALU Operation 200ps, Data Access 200ps, Register Write 100ps. Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten? Die längste Stufe benötigt 200ps. Also gilt für den Clock Cycle c: Achtung: Maximal mögliche Taktung hängt aber auch von anderen Faktoren ab. (Erinnerung: Power Wall). Grundlagen der Rechnerarchitektur Prozessor 52

53 Quiz Welchen CPI Wert suggeriert das MIPS Pipelining Beispiel? Achtung: der CPI Wert ist in der Regel höher, wie wir noch sehen. Grundlagen der Rechnerarchitektur Prozessor 53

54 Der Ansatz ist noch zu naiv Beispiel: lw $5, 500($0) lw $4, 400($0) lw $3, 300($0) lw $2, 200($0) lw $1, 100($0) IF ID EX MEM WB Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 54

55 Pipelining Pipeline Register Grundlagen der Rechnerarchitektur Prozessor 55

56 Pipeline Stufen brauchen Pipeline Register Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 56

57 Pipeline Stufen brauchen Pipeline Register Control Write Register darf erst in der WB Stufe gesetzt werden. Änderung im Tafelbild Wird durchgereicht RegDst steht mit der Entscheidung von Control erst in der EX Stufe fest. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 57

58 Was speichern die Pipeline Register? Wir schauen uns den Weg einer einzigen Instruktion durch die Pipeline an; und zwar den der Load Word Instruktion lw. Auf dem Weg durch die Pipeline überlegen wir, was alles in den Pipeline Registern IF/ID, ID/EX, EX/MEM und MEM/WB stehen muss. In der Darstellung verwenden wir folgende Konvention. Bedeutet: Register/Speicher wird gelesen Bedeutet: Register/Speicher wird beschrieben Grundlagen der Rechnerarchitektur Prozessor 58

59 Was speichern die Pipeline Register? IF/ID: Instruktion PC+4 (z.b. für beq) Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 59

60 Was speichern die Pipeline Register? ID/EX: PC+4 (z.b. für beq) Inhalt Register 1 Inhalt Register 2 Sign ext. Immediate (z.b. für beq) Das Write Register (wird im Letzten Zyklus von lw gebraucht) Generell: Alles was in einem späteren Clock Cycle noch verwendet werden könnte, muss durchgereicht werden. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 60

61 Was speichern die Pipeline Register? EX/MEM: Ergebnis von PC+4+ Offset (z.b. für beq) Zero der ALU (z.b. für beq) Result der ALU Register 2 Daten (z.b. für sw) Das Write Register (wird im letzten Zyklus von lw gebraucht) Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 61

62 Was speichern die Pipeline Register? MEM/WB: Das gelesene Datum aus dem Speicher (wird dann von lw im nächsten Zyklus ins Write Register geschrieben) Das Ergebnis der ALU Operation (für die arithmetisch logischen Instruktionen) Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 62

63 Was speichern die Pipeline Register? Für die letzte Pipeline Stufe braucht man kein Pipeline Register. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 63

64 Zusätzlich wird noch Control Info gespeichert Control Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 64

65 Zusätzlich wird noch Control Info gespeichert Werden durchgereicht. Control hängt von der Instruktion ab. Damit muss Control Info erst ab ID/EX Register gespeichert werden. Das ID/EX Register muss bereitstellen: RegDst ALUOp (2) ALUSrc Das EX/MEM Register muss bereit stellen: Branch MemRead MemWrite Das MEM/WB Register muss bereit stellen: MemtoReg RegWrite Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 65

66 Pipelining Pipelining Visualisierung Grundlagen der Rechnerarchitektur Prozessor 66

67 Pipelining Visualisierung Zusammenfassung der vorhin implizit eingeführten Visualisierungen und Einführung einer neuen Visualisierung. Wir betrachten folgenden Beispiel Code: lw $10, 20($1) sub $11, $2, $3 add $12, $3, $4 lw $13, 24($1) add $14, $5, $6 Wir unterscheiden generell zwischen zwei Visualisierungsarten: Single Clock Cylce Pipeline Diagramm und Multiple Clock Cycle Pipeline Diagramm Grundlagen der Rechnerarchitektur Prozessor 67

68 Single Clock Cycle Pipeline Diagramm Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 68

69 Einfaches Multiple Clock Cycle Pipeline Diagramm Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 69

70 Detaillierteres Multiple Clock Cycle Pipeline Diagramm IF ID EX MEM WB Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 70

71 Pipelining Komplexere Pipelines Grundlagen der Rechnerarchitektur Prozessor 71

72 Komplexere Piplelines Pipeline Stufen sind nicht auf 5 festgelegt! z.b. weitere Unterteilung von IF, ID, EX, MEM, WB Erlaubt höhere Taktung Kann aufgrund der Instruktions Komplexität erforderlich sein Kann aufgrund von Instruktionen mit zeitlich unbalancierten Stufen erforderlich sein Wie pipelined man x86 ISA mit Instruktionslängen zwischen 1 und 17 Bytes? Komplexe Instruktionen der x86 ISA werden in Folge von Mikroinstruktionen übersetzt Mikroinstruktionssatz ist vom Typ RISC Pipelining findet auf den Mikroinstruktionen statt Beispiel AMD Opteron X4: Was das ist sehen wir noch im Kapitel Multiple Issue Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 72

73 Pipeline Stufen einiger ausgewählter Prozessoren Mikroprozesor Jahr Taktrate Pipeline Stufen Leistung Intel MHz 5 5 W Intel Pentium MHz 5 10 W Intel Pentium Pro MHz W Intel Pentium 4 Willamette MHz W Intel Pentium 4 Prescott MHz W Intel Core MHz W UltraSPARC IV MHz W Sun UltraSPARC T1 (Niagara) MHz 6 70 W Pipeline Stufen sinken wieder? Aggressives Pipelining ist sehr Leistungshungrig Aktueller Trend eher zu Multi Cores mit geringerer Leistungsaufnahme pro Core. Grundlagen der Rechnerarchitektur Prozessor 73

74 Data Hazards Grundlagen der Rechnerarchitektur Prozessor 74

75 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 sw $15, 100($2) Also, alle vier nachfolgenden Instruktionen hängen von der sub Instruktion ab. Annahme: $2 speichert 10 vor der sub Instruktion. $2 speichert 20 nach der sub Instruktion. Betrachten wir die Pipeline: Grundlagen der Rechnerarchitektur Prozessor 75

76 Problem Rückwärtsabhängigkeiten Instr. Zeile and or add sw Sollte aus $2 lesen Liest aus $2 Data Hazard Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 76

77 Behandeln von Data Hazards mittels Forwarding Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 77

78 Allgemeine Lösung mittels Forwarding Unit WB WB EX/MEM.Rd MEM/WB.Rd Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 78

79 Implementation der Forwarding Unit Grundlagen der Rechnerarchitektur Prozessor 79

80 Bemerkungen Die Bestimmung von ForwardB erfolgt analog. (Übung) Das Ganze muss noch als Wahrheitstabelle aufgeschrieben und dann als kombinatorische Schaltung realisiert werden. Wie sieht die Wahrheitstabelle von ForwardA nach voriger hergeleiteter Vorschrift aus? (Übung) [Tipp: um Platz zu sparen sollte man möglichst viele don t cares verwenden.] Grundlagen der Rechnerarchitektur Prozessor 80

81 Nicht auflösbare Data Hazards Nicht jeder Data Hazard lässt sich durch Forwarding auflösen. Beispiel: Zugriff auf vorher gelesenes Register. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 81

82 Pipeline Stall als Lösung Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 82

83 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

84 Implementation der Hazard Detection Unit Grundlagen der Rechnerarchitektur Prozessor 84

85 Quiz: Vermeiden von Pipeline Stalls Wo findet ein Pipeline Stall statt? Bitte ankreuzen. lw lw $t1, 0($t0) $t2, 4($t0) add $t3, $t1, $t2 sw lw $t3, 12($t0) $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) Anzahl Taktzyklen mit Stalls? Anzahl Taktzyklen ohne Stalls? Bitte Befehle umorganisieren, sodass alle Stalls vermieden werden. Grundlagen der Rechnerarchitektur Prozessor 85

86 Control Hazards Grundlagen der Rechnerarchitektur Prozessor 86

87 Control Hazards Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 87

88 Branch Not Taken Strategie und Pipeline Flush Flush = Verwerfe Instruktionen in der Pipeline. Hier: Setze IF/ID, ID/EX und EX/MEM Register auf 0. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 88

89 Reduktion des Branch Delays Adressberechnung kann schon in der ID Stufe stattfinden beq und bne erfordert lediglich ein 32 Bit XOR und ein 32 Bit OR Dazu braucht man keine ALU Also auch in der ID Stufe realisierbar Beispiel: für $1 und $3: Damit ist der Sprung schon in der ID Stufe entschieden Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 89

90 Reduktion des Branch Delays Konsequenz Branch Delay ist damit ein Instruktions Zyklus Wir brauchen lediglich ein Flush IF/ID Register Grundlagen der Rechnerarchitektur Prozessor 90

91 Reduktion des Branch Delays Achtung! Forwarding aus späteren Stufen macht die Sache kompliziert. Kann Pipeline Stall aufgrund von Data Hazards erforderlich machen. z.b. ein Zyklus, wenn ALU Ergebnis in den Vergleich einfließt z.b. zwei Zyklen, wenn Vergleichsoperator einen Schritt vorher aus dem Speicher geladen wurde Betrachten wir aber hier nicht genauer. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 91

92 Dynamic Branch Prediction Strategie 0x : lw $1, 0($4) 0x : beq $1, $0, 40 0x : add $1, $1, $1 0x40000c : x40c004 : bne $3, $4, Unterer Teil der Adresse 0x00 1 0x04 0 0x xf8 0 0xfc 0 Branch hat stattgefunden Branch Prediction Buffer Grundlagen der Rechnerarchitektur Prozessor 92

93 Vorhersagegenauigkeit Annahme unendlich langer Loop, der immer 9 mal und dann einmal nicht durchlaufen wird. Was ist die Vorhersagegenauigkeit der vorher beschriebenen Branch Prediction? loop: bne $1,$2,loop... j loop Lässt sich das verbessern? Grundlagen der Rechnerarchitektur Prozessor 93

94 N Bit Vorhersage am Beispiel 2 Bit Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 94

95 Vorhersagegenauigkeit Annahme unendlich langer Loop, der immer 9 mal und dann einmal nicht durchlaufen wird. Was ist die Vorhersagegenauigkeit der vorher beschriebenen 2 Bit Branch Prediction? loop: bne $1,$2,loop... j loop Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 95

96 Branch Delay Slot Idee loop: bne $1,$2,loop <instruktion> <instruktion> Wird immer ausgeführt. Instruktion muss aber unabhängig von der Branch Entscheidung sein. Das muss der Compiler entscheiden. Im Zweifelsfall: nop passt immer. Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 96

97 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

98 Weniger Branches mit Conditional Instruktionen Beispiel MIPS Instruktionen movn und movz: movn $8, $11, $4 # $8 = $11, wenn $4!= 0 movz $8, $11, $4 # $8 = $11, wenn $4 == 0 Beispiel ARM ISA: ADDEQ r0,r1,r2 ; If zero flag set then ;... r0 = r1 + r2 Grundlagen der Rechnerarchitektur Prozessor 98

99 Quiz Betrachte die folgenden Branch Strategien: 1. Vorhersage Branch findet statt 2. Vorhersage Branch findet nicht statt 3. Dynamische Branch Vorhersage (mit 90% Genauigkeit) Was ist die beste Strategie, wenn: Branch findet mit 5% Häufigkeit statt? Branch findet mit 95% Häufigkeit statt? Branch findet mit 70% Häufigkeit statt? Grundlagen der Rechnerarchitektur Prozessor 99

100 Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 100

101 Motivation Bisher: Instruction Level Parallelism (ILP) durch Pipelining ILP kann durch Pipeline Stufe erhöht werden Pipelines mit mehr Stufen sind anfälliger gegenüber Data und Control Hazards Also: Pipeline Stufen nur bis zu gewisser Tiefe sinnvoll Außerdem: Grenzen aufgrund der Leistungsaufnahme CPI bleibt gleich oder steigt sogar (wegen Hazards), Clock Rate steigt Hier eine weitere Methode um ILP zu steigern: Multiple Issue Replikation von internen CPU Strukturen, sodass mehrere Instruktionen pro Pipeline Stufe möglich sind CPI sinkt und Clock Rate bleibt gleich (oder sinkt sogar wegen erhöhter Komplexität) Beispiel: CPI eines 4 Wege Multiple Issue Mikroprozessor hat eine ideale CPI von? 0.25! CPI liegt aber in der Regel höher, wie wir gleich sehen werden Wir unterscheiden zwischen: Static Multiple Issue: Entscheidungen werden zur Compile Zeit gefällt Dynamic Multiple Issue: Entscheidungen werden zur Laufzeit gefällt (auch Superskalare CPU bezeichnet) Grundlagen der Rechnerarchitektur Prozessor 101

102 Multiple Issue Static Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 102

103 Generelle Idee Eine große Instruktion pro Clock Cycle Große Instruktion besteht aus mehreren gleichzeitig stattfindenden Operationen Aber nicht jede Kombination von Operationen möglich Beispiel: ALU Operation und Speicheroperation gleichzeitig möglich Aber zwei ALU Operation auf einmal nicht möglich Terminologie: VLIW (Very Long Instruction Word) Grundlagen der Rechnerarchitektur Prozessor 103

104 Beispiel am MIPS Datenpfad ALU für arithmetische Operationen Extra ALU für gleichzeitige Adresskalkulation Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 104

105 Statische Two Issue Pipeline im Betrieb Was ist der CPI Wert? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 105

106 Was ist nun die Aufgabe des Compilers? Compiler erzeugt Assembler Code: Loop: lw $t0, 0($s1) # $t0=array-element addu $t0, $t0, $s2 # addiere Wert sw $t0, 0($s1) # Speichere Element addi $s1, $s1, -4 # nächstes Element bne $s1, $zero, Loop # solange $s1!= 0 und ordnet Instruktionen so an, dass keine Pipeline Stalls entstehen Was ist der CPI Wert? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 106

107 Verbesserung: Loop Unrolling Code wie vorher (der Einfachheit sei Loop Index Vielfaches von 4): Loop: lw $t0, 0($s1) # $t0=array-element addu $t0, $t0, $s2 # addiere Wert sw $t0, 0($s1) # Speichere Element addi $s1, $s1, -4 # nächstes Element bne $s1, $zero, Loop # solange $s1!= 0 Loop Body vier mal kopiert und Register Renaming Was ist der CPI Wert? Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 107

108 Multiple Issue Dynamic Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 108

109 Generelle Idee CPU entscheidet, ob und wie viele aufeinander folgende Instruktionen parallel gestartet werden können Compiler erzeugt nur eine Folge von Instruktionen; kein VLIW Instruktions Scheduling des Compilers nicht mehr erforderlich aber trotzdem aus Performance Gründen sinnvoll Verbesserung der Superskalarität durch dynamisches Pipeline Scheduling: Instruktionsreihenfolge darf geändert werden, um Stalls zu vermeiden Grundlagen der Rechnerarchitektur Prozessor 109

110 Dynamic Pipeline Scheduling Motivation lw $t0, 20($s2) # zunächst $t0 laden addu $t1, $t0, $t2 # addu durch lw verzögert sub $s4, $s4, $t3 # sub könnte schon starten slti $t5, $s4, 20 # und genau so auch slti Warum nicht sub (und ggf. slti) vor addu vorziehen? Grundlagen der Rechnerarchitektur Prozessor 110

111 Dynamic Pipeline Scheduling generell Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 111

112 Wiedervorlage: Daten einiger ausgewählter Prozessoren Bildquelle: David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, 2012 Grundlagen der Rechnerarchitektur Prozessor 112

113 Zusammenfassung und Literatur Grundlagen der Rechnerarchitektur Prozessor 113

114 Zusammenfassung Schlechte Performance von Single Cylce Ansatz Instruktionsabarbeitung besteht aus mehreren Zyklen Moderne Prozessoren nutzen dies für Pipelining Multiple Issue Allgemein als Instruction Level Parallelism bezeichnet Für High Level Programmierer ist die Parallelität nicht sichtbar Sichtbar auf Assembler Ebene Sichtbar auf Compiler Ebene Hauptprobleme die die Parallelität einschränken Daten Abhängigkeiten Control Abhängigkeiten Methoden um Data und Control Hazards zu reduzieren Scheduling Spekulation Sichtbare Grenze der Power Wall ist erreicht Trend zu Multicores mit einfacheren Pipelines Konsequenz: Parallelität nicht mehr von der Hardware gekapselt Grundlagen der Rechnerarchitektur Prozessor 114

115 Quiz Super! Geschafft. Auf zum nächsten Level. Pipelining erhöht den Durchsatz aber reduziert nicht die Instruktions Latenz. [ ] Nein, Durchsatz und Latenz sinken [ ] Nein, Durchsatz und Latenz steigen [ ] Ja, das ist richtig Welchen Einfluss hat Superskalarität auf den CPI Wert? [ ] Der CPI Wert bleibt immer unverändert, [ ] Der CPI Wert steigt an. [ ] Der CPI Wert kann unter 1 fallen. Eine Pipeline mit k Stufen erreicht asymptotisch immer eine Performance Ratio von k. [ ] Jawohl. [ ] Nein, die Ratio kann darunter liegen. [ ] Nein, die Ratio kann sogar noch höher liegen. Mittels Pipelining kann man die Taktrate eines Rechners erhöhen. [ ] Stimmt! [ ] Nein, das ist völliger Quatsch. Welchen Einfluss hat Pipelining auf den CPI Wert? [ ] Der CPI Wert bleibt immer unverändert. [ ] Der CPI Wert kann unter 1 fallen. [ ] Der CPI Wert steigt in der Regel an. Grundlagen der Rechnerarchitektur Logik und Arithmetik 115 Bildquelle: content/artikel_endgegner_bild.jpg

116 Literatur [PattersonHennessy2012] David A. Patterson und John L. Hennessy, Computer Organization and Design, Fourth Edition, Introduction 4.2 Logic Design Conventions 4.3 Building a Datapath 4.4 A Simple Implementation Scheme 4.5 An Overview of Pipelining 4.6 Pipelined Datapath and Control 4.7 Data Hazards: Forwarding versus Stalling 4.8 Control Hazards 4.10 Parallelism and Advanced Instruction Level Parallelism 4.11 Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline Grundlagen der Rechnerarchitektur Prozessor 116

Datenpfad einer einfachen MIPS CPU

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

Mehr

Datenpfad einer einfachen MIPS CPU

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

Mehr

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

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

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

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

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

Allgemeine Lösung mittels Hazard Detection Unit

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

Mehr

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

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

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

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

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

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

Ü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

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

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

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

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

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

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

Carry Lookahead Adder

Carry Lookahead Adder Carry Lookahead Adder Mittels der Generate und Propagate Ausdrücke lässt ich dann für jede Stelle i der Carry (Übertrag) für die Stelle i+1 definieren: Für einen 4 Stelligen Addierer ergibt sich damit:

Mehr

Speichern von Zuständen

Speichern von Zuständen Speichern von Zuständen Erweiterung eines R S Latch zu einem D Latch (D=Data, C=Clock) R S altes Q neues Q 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 R S C D altes Q neues Q 0 0 0 0 0 1 0 1 0 0 1

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

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

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

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

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

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

N Bit Binärzahlen. Stelle: Binär-Digit:

N Bit Binärzahlen. Stelle: Binär-Digit: N Bit Binärzahlen N Bit Binärzahlen, Beispiel 16 Bit: Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 Least Significant Bit (LSB) und Most Significant Bit (MSB)

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

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

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

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

Mehr

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

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle # A B C D OK m9 + m11 1 0 1 P1 m7 + m15 1 1 1 P2 m11 + m15 1 1 1 P3 m0 + m1 + m4 + m5 0 0 P4 m0 + m1 + m8 + m9 0 0 P5 m4 + m5 + m6 + m7 0

Mehr

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22 Cache Grundlagen Schreibender Cache Zugriff SS 212 Grundlagen der Rechnerarchitektur Speicher 22 Eine einfache Strategie Schreibt man nur in den Cache, werden Cache und darunter liegender Speicher inkonsistent.

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

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

Mehr

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21 Darstellung von Instruktionen Grundlagen der Rechnerarchitektur Assembler 21 Übersetzung aus Assembler in Maschinensprache Assembler Instruktion add $t0, $s1, $s2 0 17 18 8 0 32 6 Bit Opcode Maschinen

Mehr

Rechnerarchitekturen I Pipelining Dr. Michael Wahl

Rechnerarchitekturen I Pipelining Dr. Michael Wahl Rechnerarchitekturen I Pipelining Dr. Michael Wahl 03.03.2011 Rechnerarchitekturen I 1 03.03.2011 Rechnerarchitekturen I 2 Ist unsere Hardware gut ausgelastet? Der Datenpfad erzeugt einen Fluss in der

Mehr

Control Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control

Control Beispiel. Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Control Control Beispiel Store R1 4 Bit Register R1 SUB 4 Bit Register R2 Store R2 R2 Bit 0 Control wird als kombinatorische Schaltung realisiert. Hierzu die Wahrheitstabelle: Eingabe R2 Bit 0 Zero 0 0 Ausgabe

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

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

Minimierung nach Quine Mc Cluskey

Minimierung nach Quine Mc Cluskey Minimierung nach Quine Mc Cluskey F(A,B,C,D) =!A!B!C!D +!A!B!C D +!A B!C!D +!A B!C D +!A B C!D +!A B C D + A!B!C!D + A!B!C D + A!B C D + A B C D Notiere die Funktion als # A B C D Gruppe Binärelemente

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 5 Prozessor Pipelineimplementierung Lothar Thiele Computer Engineering and Networks Laboratory Pipelining Definition 5 2 Definition Pipelining (Fliessbandverarbeitung) ist eine

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

Wie groß ist die Page Table?

Wie groß ist die Page Table? Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten

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

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

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

Grundlagen der Rechnerarchitektur. Speicher

Grundlagen der Rechnerarchitektur. Speicher Grundlagen der Rechnerarchitektur Speicher Übersicht Speicherhierarchie Cache Grundlagen Verbessern der Cache Performance Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 2 Speicherhierarchie

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

N Bit binäre Zahlen (signed)

N Bit binäre Zahlen (signed) N Bit binäre Zahlen (signed) n Bit Darstellung ist ein Fenster auf die ersten n Stellen der Binär Zahl 0000000000000000000000000000000000000000000000000110 = 6 1111111111111111111111111111111111111111111111111101

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

Cache Blöcke und Offsets

Cache Blöcke und Offsets Cache Blöcke und Offsets Ein Cache Eintrag speichert in der Regel gleich mehrere im Speicher aufeinander folgende Bytes. Grund: räumliche Lokalität wird wie folgt besser ausgenutzt: Bei Cache Miss gleich

Mehr

Darstellung von negativen binären Zahlen

Darstellung von negativen binären Zahlen Darstellung von negativen binären Zahlen Beobachtung für eine beliebige Binärzahl B, z.b. B=110010: B + NOT(B) ---------------------------------------------- = B + NOT(B) 1 + (Carry) ----------------------------------------------

Mehr

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle

Mehr

Beispiel: A[300] = h + A[300]

Beispiel: A[300] = h + A[300] Beispiel: A[300] = h + A[300] $t1 sei Basisadresse von A und h in $s2 gespeichert. Assembler Code? Maschinen Code (der Einfachheit halber mit Dezimalzahlen)? op rs rt rd adr/shamt funct Instruktion Format

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

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

Rechnerstrukturen, Teil 2

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

Mehr

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

Grundlagen der Rechnerarchitektur. Einführung

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

Mehr

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

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

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

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

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33 Weitere Arithmetik Grundlagen der Rechnerarchitektur Assembler 33 Die speziellen Register lo und hi Erinnerung: ganzzahliges Produkt von zwei n Bit Zahlen benötigt bis zu 2n Bits Eine MIPS Instruktion

Mehr

Logische Bausteine. Addierwerke. Grundlagen der Rechnerarchitektur Logik und Arithmetik 48

Logische Bausteine. Addierwerke. Grundlagen der Rechnerarchitektur Logik und Arithmetik 48 Logische Bausteine Addierwerke Grundlagen der Rechnerarchitektur Logik und Arithmetik 48 Addition eines einzigen Bits Eingang Ausgang a b CarryIn CarryOut Sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1

Mehr

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31 Logische Bausteine Sequentielle Schaltungen Shlt Grundlagen der Rechnerarchitektur Logik und Arithmetik 31 Sequentielle Schaltungen n Eingänge m Ausgänge n Eingänge m Ausgänge Zustand Ausgänge hängen nur

Mehr

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation nach der Schulmethode Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel: Multiplikand A: 1 1 0 1 0 Multiplikator

Mehr

Das Verfahren in Hardware

Das Verfahren in Hardware Das Verfahren in Hardware Links Shift 8 Bit Multiplikand Demonstration mit 1001 * 0110 = 110110 2.Links Shift 8 Bit ALU Rechts Shift 4 Bit Multiplikator 3.Rechts Shift 8 Bit Produkt 1. Produkt = Produkt

Mehr

Übung Praktische Informatik II

Übung Praktische Informatik II Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung

Mehr

Grundlagen der Rechnerarchitektur

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

Mehr

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

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

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

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

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

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

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation Grundlagen der Rechnerarchitektur Logik und Arithmetik 79 Multiplikation nach der Schulmethode Gegeben seien die Binärzahlen A und B. Was ist a * b? Beispiel: Multiplikand A: 1 1 0 1 0 Multiplikator

Mehr

Notwendigkeit für andere Instruktionsformate

Notwendigkeit für andere Instruktionsformate Notwendigkeit für andere Instruktionsformate add $t0, $s1, $s2 op rs rt rd shamt funct 6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit R Typ? lw $t0, 32($s3) I Typ Opcode 6 Bit Source 5 Bit Dest 5 Bit Konstante oder

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

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

Teil 2: Rechnerorganisation

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

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

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

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

Generation 5: Invisible Computers (ab 1993)

Generation 5: Invisible Computers (ab 1993) Generation 5: Invisible Computers (ab 1993) Jahr Name Gebaut von Kommentar 1993 PIC Microchip Technology Erster Mikrocontroller auf Basis von EEPROMs. Diese erlauben das Flashen ohne zusätzliche. Bemerkung:

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

Rechnergrundlagen SS Vorlesung

Rechnergrundlagen SS Vorlesung Rechnergrundlagen SS 2007 8. Vorlesung Inhalt Gleitkomma-Darstellung Normalisierte Darstellung Denormalisierte Darstellung Rechnerarchitekturen Von Neumann-Architektur Harvard-Architektur Rechenwerk (ALU)

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