Files
TI-Studium-Mitschriften/Semester 6/COMARCH/Zusammenfassung/Vorlesung 4.md
2025-07-07 19:57:44 +02:00

2.6 KiB
Raw Blame History

📘 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