Grundlagen der Rechnerarchitektur
Prozessor
Übersicht
• Datenpfad
• Control
• Pipelining
• Data‐Hazards
• Control‐Hazards
• Multiple‐Issue
2 Grundlagen der Rechnerarchitektur ‐Prozessor
Datenpfad einer einfachen MIPS‐CPU
Grundlagen der Rechnerarchitektur ‐Prozessor 3
Ziel
Grundlagen der Rechnerarchitektur ‐Prozessor 4
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 + 4 + 4096<<2, wenn $s1=$s2
Datenpfad einer einfachen MIPS‐CPU
Erster Abschnitt des Datenpfades
Grundlagen der Rechnerarchitektur ‐Prozessor 5
Benötigte Bausteine
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 6 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
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.
Erster Schritt der Instruktionsausführung
Grundlagen der Rechnerarchitektur ‐Prozessor 7
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.
Das Blockschaltbild dazu
Grundlagen der Rechnerarchitektur ‐Prozessor 8
Datenpfad einer einfachen MIPS‐CPU
Arithmetische‐Logische Operationen
Grundlagen der Rechnerarchitektur ‐Prozessor 9
Erinnerung, Instruktionen vom R‐Typ‐Format:
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.
Betrachten zunächst R‐Typ‐Instruktionen
Grundlagen der Rechnerarchitektur ‐Prozessor 10
opcode src1 src2 dest shamt funct
6 Bit 5 Bit 5 Bit 5 Bit 5 Bit 6 Bit
R‐Typ (Register‐Typ) 31 26 25 21 20 16 15 11 10 6 5 0
Register‐File und ALU
Grundlagen der Rechnerarchitektur ‐Prozessor 11
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
Erweiterung des Blockschaltbilds
Grundlagen der Rechnerarchitektur ‐Prozessor 12