## 📘 **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: ```asm 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 ---