Files
2025-07-21 11:52:03 +02:00

2.4 KiB
Raw Permalink 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