## 📘 **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 | `add` | | 01 | XXXXXX | `sub` | | 10 | 100000 | `add` | | 10 | 100010 | `sub` | | 10 | 100100 | `and` | | 10 | 100101 | `or` | | 10 | 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 ---