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

2.5 KiB
Raw Blame History

📘 Zusammenfassung: V5 Pipelining Computerarchitektur

🚀 Was ist Pipelining?

  • Prinzip: Überlappende Ausführung mehrerer Instruktionen

  • Analogie: Waschstraße mehrere Autos gleichzeitig in unterschiedlichen Phasen

  • Ziel: Erhöhung des Durchsatzes (mehr Befehle pro Zeiteinheit)

  • Wichtig: Latenz einzelner Instruktionen bleibt gleich


🔁 MIPS-Pipeline (5 Stufen)

Stufe Name Funktion
1 IF (Instruction Fetch) Befehl aus Speicher laden
2 ID (Instruction Decode) Dekodieren, Register lesen
3 EX (Execute) ALU-Berechnung, Adresse kalkulieren
4 MEM (Memory Access) Speicher lesen/schreiben
5 WB (Write Back) Ergebnis ins Register zurückschreiben

📈 Performance-Vorteile

  • Single-Cycle Datapath: 800 ps pro Befehl

  • Pipelined Datapath: 200 ps pro Befehl

  • Theoretisches Speedup: Anzahl Stufen = 5x schneller

  • Realität: Speedup < 5 wegen Hazard-Stalls und unbalancierter Stufen


⚠️ Hazards (Gefahren)

🏗 Struktur-Hazards

  • Konflikt um Ressource (z.B. Instruktions- und Datenspeicher gleichzeitig benötigt)

  • Lösung: Getrennte Instruktions-/Datenspeicher oder Caches

📦 Daten-Hazards

  • Instruktion benötigt Ergebnis der vorherigen Instruktion

  • Beispiel:

    add $s0, $t0, $t1
    sub $t2, $s0, $t3
    
  • Lösungen:

    • Forwarding (Bypassing): Ergebnis direkt weiterleiten

    • Stalls: Pipeline anhalten

    • Code Scheduling: Befehle umsortieren, um Abhängigkeiten zu vermeiden

🔁 Kontroll-Hazards

  • Sprünge (beq, bne) → Ziel erst spät bekannt

  • Lösungen:

    • Warten bis Branch-Entscheidung (Stalls)

    • Branch Prediction:

      • Static: Vorwärts nicht nehmen, Rückwärts nehmen

      • Dynamic: Verlauf der Branches aufzeichnen und vorhersagen


📦 Optimierungen

  • Forwarding: Verhindert unnötige Stalls

  • Branch Prediction: Reduziert Control Hazards

  • Separate Speicher: Löst Struktur-Hazards

  • Code Scheduling: Compiler verschiebt Befehle zur Vermeidung von Stalls


📝 Für die Klausur merken

Pipeline-Stufen & ihre Aufgaben
Arten von Hazards + Lösungsstrategien (Forwarding, Prediction)
Unterschied Durchsatz ↔ Latenz
Warum MIPS-ISA besonders pipelining-freundlich ist
Unterschied Static ↔ Dynamic Branch Prediction