2.6 KiB
📘 Zusammenfassung: V4 Prozessor (Teil 2) – Computerarchitektur
🔁 Wiederholung aus Teil 1
-
Instruktionstypen (MIPS):
-
R-Format: arithmetische/logische Operationen (z. B.
add $s1,$s2,$s3) -
Load/Store: Speicherzugriff (z. B.
lw,sw) -
Branch: bedingte Sprünge (
beq,bne)
-
-
Datenpfad (Full Datapath):
-
Register → ALU → Speicher → Register
-
Separate Instruktions- und Datenspeicher nötig, da ein Zugriff pro Zyklus
-
⚙️ Steuerungseinheit (Control Unit)
-
Erzeugt Steuersignale aus dem Opcode:
-
MemtoReg: bestimmt Datenquelle für Register-Schreiben
-
ALUSrc: wählt ALU-Operand (Register vs. unmittelbarer Wert)
-
RegWrite: aktiviert Schreibzugriff auf Register
-
MemRead/MemWrite: steuern Speicherzugriffe
-
Branch: aktiviert bei bedingten Sprüngen
-
-
ALU Control:
-
Basierend auf Opcode und Funct-Feld
-
Beispiel Mapping:
ALUOp Funct ALU-Funktion 00 XXXXXX add01 XXXXXX sub10 100000 add10 100010 sub10 100100 and10 100101 or10 101010 slt
-
📦 Erweiterter Datenpfad
-
Unterstützung für:
-
Jumps (
j,jal):-
PC-Update mit 26-Bit Zieladresse + oberen 4 Bit des alten PCs
-
Steuerleitung „Jump“ wird aus Opcode dekodiert
-
-
Branches (
beq,bne):-
Zieladresse berechnen (PC+4 + Offset << 2)
-
ALU prüft, ob Bedingung erfüllt (Zero-Flag)
-
-
🚨 Performance-Betrachtung
-
Ein-Zyklus-Datenpfad Problem:
-
Längster Pfad (Critical Path) bestimmt Taktfrequenz
-
Beispiel: Load-Befehl → Instruktionsspeicher → Registerfile → ALU → Datenspeicher → Registerfile
-
Unterschiedliche Instruktionen hätten unterschiedliche Latenzen → nicht praktikabel
-
-
Lösung: Pipelining
-
Aufteilung des Datenpfads in Stufen
-
Überlappende Bearbeitung mehrerer Instruktionen
-
📝 Für die Klausur merken
✅ Steuersignale (MemtoReg, ALUSrc, RegWrite, Branch, Jump)
✅ ALU Control Mapping (wie wird aus Opcode+Funct ALU-Funktion bestimmt?)
✅ Erweiterung des Datenpfads für Jump/Branch
✅ Problem des Ein-Zyklus-Datenpfads (Critical Path) → Motivation für Pipelining
✅ Unterschied: Jump vs. Branch