Datenpfad einer einfachen MIPS CPU

Ähnliche Dokumente
Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS CPU

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

Arithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9

Grundlagen der Rechnerarchitektur. Prozessor

Grundlagen der Rechnerarchitektur. Prozessor

Grundlagen der Rechnerarchitektur

Assembler am Beispiel der MIPS Architektur

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

Was ist die Performance Ratio?

Grundlagen der Rechnerarchitektur. MIPS Assembler

Pipelining. Die Pipelining Idee. Grundlagen der Rechnerarchitektur Prozessor 45

Carry Lookahead Adder

Speichern von Zuständen

Technische Informatik I - HS 18

N Bit binäre Zahlen (signed)

Minimierung nach Quine Mc Cluskey

Darstellung von negativen binären Zahlen

Minimierung nach Quine Mc Cluskey Ermitteln der Primtermtabelle

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

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

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

Data Hazards. Grundlagen der Rechnerarchitektur Prozessor 74

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

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

32 Bit Konstanten und Adressierung. Grundlagen der Rechnerarchitektur Assembler 78

Technische Informatik 1

Darstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21

Allgemeine Lösung mittels Hazard Detection Unit

Minimierung nach Quine Mc Cluskey

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

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

Technische Informatik 1

Beispiele von Branch Delay Slot Schedules

Grundlagen der Rechnerarchitektur. Einführung

N Bit binäre Zahlen (signed)

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

Grundlagen der Rechnerarchitektur

Logische Bausteine. Grundlagen der Rechnerarchitektur Logik und Arithmetik 31

Digitaltechnik und Rechnerstrukturen. 2. Entwurf eines einfachen Prozessors

Das Verfahren in Hardware

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

Multiplikation. Grundlagen der Rechnerarchitektur Logik und Arithmetik 79

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

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Computersysteme. Fragestunde

Rechnerstrukturen, Teil 2

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

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.

13.2 Übergang zur realen Maschine

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

Wie groß ist die Page Table?

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

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

2.3 Register-Transfer-Strukturen

Lehrveranstaltung: PR Rechnerorganisation Blatt 8. Thomas Aichholzer

Grundlagen der Rechnerarchitektur. Speicher

Cache Blöcke und Offsets

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


24. Februar Name:. Vorname. Matr.-Nr:. Studiengang

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

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

Teil 2: Rechnerorganisation

Kap.3 Mikroarchitektur. Prozessoren, interne Sicht

Rechnerarchitektur (RA)

Rechnerarchitektur (RA)

Rechnerarchitekturen I Datenpfad Dr. Michael Wahl

Grundzüge der Informatik II

Grundlagen der Rechnerarchitektur

Notwendigkeit für andere Instruktionsformate

Von-Neumann-Architektur

Technische Informatik I - HS 18

Weitere Arithmetik. Grundlagen der Rechnerarchitektur Assembler 33

Mikrocomputertechnik

Grundlagen der Rechnerarchitektur

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

Mikroprozessortechnik Grundlagen 1

Klausur Mikroprozessortechnik 29. März 2010

Integrierte Schaltungen

Vorlesung Rechnerarchitektur. Einführung

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

Technische Informatik 1

Rechnergrundlagen SS Vorlesung

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

Übung Praktische Informatik II

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

Microcomputertechnik

Mikroprozessortechnik. 03. April 2012

Rechnerstrukturen 1: Der Sehr Einfache Computer

Rechnernetze und Organisation

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Übungsblatt 6. Implementierung einer Befehlspipeline

Transkript:

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

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

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

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

Erweiterung des Blockschaltbilds Grundlagen der Rechnerarchitektur Prozessor 18

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