vault backup: 2025-07-07 19:57:44

This commit is contained in:
fzzinchemical
2025-07-07 19:57:44 +02:00
parent 1638e96536
commit ed7da1341b
14 changed files with 1982 additions and 0 deletions

View File

@@ -0,0 +1,108 @@
## 📘 **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
---