Datenpfad einer einfachen MIPS CPU

Datenpfad einer einfachen MIPS‐CPU Die Branch‐Instruktion beq Grundlagen der Rechnerarchitektur ‐ Prozessor 13 Betrachten nun Branch‐Instruktion b...
Author: Berndt Braun
72 downloads 0 Views 1MB Size
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

Vorzeichenbehaftetes  Ausweiten von k auf n  Leitungen (z.B. 16 auf 32).

Shift‐ Left 2

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 B

A

B

A

32

32

Select

0    Mux 1

Select

A1 A2 A3 A4

0    Mux 1

Select

Mux

32

C Für ein Bit

C

C

Für n Bit (z.B. 32 Bit)

C = A, wenn Select = 0 C = B, wenn Select = 1

Für n‐Bit‐Select (z.B. 2 Bit) C = A0, wenn Select = 00 C = A1, wenn Select = 01 C = A2, wenn Select = 10 C = A3, 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