Datenpfad einer einfachen MIPS CPU

Ähnliche Dokumente
Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

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

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Was ist die Performance Ratio?

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

Assembler am Beispiel der MIPS Architektur

Das Prinzip an einem alltäglichen Beispiel

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

Beispiele von Branch Delay Slot Schedules

Technische Informatik 1

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

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Grundlagen der Rechnerarchitektur

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

Technische Informatik - Eine Einführung

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

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

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

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.

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

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

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

N Bit binäre Zahlen (signed)

Technische Informatik 1 - HS 2017

Cache Blöcke und Offsets

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

Wie groß ist die Page Table?

Darstellung von negativen binären Zahlen

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


Grundlagen der Rechnerarchitektur

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

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

Grundlagen der Rechnerarchitektur

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

Grundlagen der Rechnerarchitektur. Einführung

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

Die Mikroprogrammebene eines Rechners

Technische Informatik 1 - HS 2016

N Bit binäre Zahlen (signed)

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31

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

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

28. März Name:. Vorname. Matr.-Nr:. Studiengang

Technische Informatik 1

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

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

1 Rechnerstrukturen 1: Der Sehr Einfache Computer

Johann Wolfgang Goethe-Universität

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

Instruktionssatz-Architektur

Vorlesung Rechnerarchitektur. Einführung

Rechnerstrukturen 1: Der Sehr Einfache Computer

Grundlagen der Informationsverarbeitung:

Mikroprozessortechnik. 03. April 2012

Der Toy Rechner Ein einfacher Mikrorechner

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Rechnernetze und Organisation

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

Computer-Architektur Ein Überblick

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Informatik 12 Kapitel 3 - Funktionsweise eines Rechners

Technische Informatik 1 - HS 2016

Mikroprozessor als universeller digitaler Baustein

Mikrocomputertechnik. Einadressmaschine

Rechnergrundlagen SS Vorlesung

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Arbeitsfolien - Teil 4 CISC und RISC

H E F B G D. C. DLX Rechnerkern

Von-Neumann-Architektur

Grundzüge der Informatik II

DIGITALE SCHALTUNGEN II

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

Mikroprozessortechnik Grundlagen 1

Grundlagen der Informationsverarbeitung:

Teil 2: Rechnerorganisation

Mikrocomputertechnik

Rechner Architektur. Martin Gülck

Technische Informatik 1

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Microcomputertechnik

, WS2013 Übungsgruppen: Di., Fr.,

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

Zusammenhang Interrupt, Befehlszyklus, indirekte Adressierung und Mikroprogramm [Stallings, Kap. 15, S ]

Assembler Kontrollstrukturen

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Assembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache

, SS2012 Übungsgruppen: Do., Mi.,

Tutorium Rechnerorganisation

Tutorium Rechnerorganisation

Parallele Rechnerarchitekturen. Bisher behandelte: Vorlesung 7 (theoretische Grundkonzepte) Nun konkrete Ausprägungen

Rechnernetze und Organisation

Grundlagen der Rechnerarchitektur. Einführung

Systeme 1: Architektur

Transkript:

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: 31 26 25 21 20 16 15 0 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

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

Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 22

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

Control einer einfachen MIPS CPU Grundlagen der Rechnerarchitektur Prozessor 24

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

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

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

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

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

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

Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 31

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

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

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

Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 35

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

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

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

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 000010 address Opcode Bits 31 26 Adresse Bits 25 0 J Typ Grundlagen der Rechnerarchitektur Prozessor 39

Pipelining Grundlagen der Rechnerarchitektur Prozessor 40

Pipelining Instruktionszyklen Grundlagen der Rechnerarchitektur Prozessor 41

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

Instruktionszyklen in unserem Blockschaltbild Grundlagen der Rechnerarchitektur Prozessor 43

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

Pipelining Die Pipelining Idee Grundlagen der Rechnerarchitektur Prozessor 45

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

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

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

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

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