## 📘 **Zusammenfassung: V3 Prozessor (Teil 1) – Computerarchitektur**

### 🧠 Einführung: CPU-Leistungsfaktoren

- **Instruction Count (IC):** Anzahl der Befehle → bestimmt durch ISA & Compiler
    
- **Cycles Per Instruction (CPI):** Anzahl der Takte pro Befehl → bestimmt durch Hardware
    
- **Cycle Time (CT):** Dauer eines Takts → bestimmt durch Hardware
    
- **CPU-Zeit Formel:**
    
    CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT

---

### 🔁 Ablauf der Instruktionsausführung

1. **Fetch:** Befehl aus Speicher laden (PC → Instruction Memory)
    
2. **Decode:** Register lesen, Operanden bestimmen
    
3. **Execute:** ALU berechnet Ergebnis oder Adresse
    
4. **Memory Access:** Speicherzugriff bei Load/Store
    
5. **Write Back:** Ergebnis ins Register zurückschreiben
    
6. **PC Update:** PC + 4 oder Sprungadresse
    

---

### 🗂️ MIPS-Befehlssatz (Überblick)

#### 📦 Register

- 32 Register: z. B. `$s0-$s7`, `$t0-$t9`, `$zero` (immer 0), `$sp`, `$ra`
    
- Daten müssen in Register geladen werden, bevor ALU-Operationen möglich sind.
    

#### 🛠️ Befehle (Beispiele)

|**Kategorie**|**Befehl**|**Beispiel**|**Bedeutung**|
|---|---|---|---|
|Arithmetisch|`add`|`add $s1,$s2,$s3`|`$s1 = $s2 + $s3`|
|Datentransfer|`lw`, `sw`|`lw $s1,20($s2)`|`$s1 = Memory[$s2+20]`|
|Logisch|`and`, `or`|`and $s1,$s2,$s3`|`$s1 = $s2 & $s3`|
|Bedingte Verzweigung|`beq`, `bne`|`beq $s1,$s2,Label`|Sprung, falls `$s1 == $s2`|
|Unbedingter Sprung|`j`, `jal`|`j Label`|Sprung zu Adresse `Label`|

---

### 🧮 Aufbau der CPU: Datenpfad (Datapath)

#### 🛠️ Bausteine

- **Register:** Speicherung von Zwischenwerten
    
- **ALU (Arithmetic Logic Unit):** führt Berechnungen durch
    
- **Multiplexer (MUX):** entscheidet zwischen Eingangsquellen
    
- **Memory:** Instruktions- & Datenspeicher
    
- **Control Unit:** steuert Datenfluss und Operationen
    

#### 📐 Schrittweise Entwicklung

- **R-Typ Befehle:** nur Registeroperationen
    
- **Load/Store:** ALU berechnet Adresse, Speicherzugriff
    
- **Branch:** ALU-Vergleich → PC-Update bei Bedingung
    

---

### 🔄 Taktgesteuerte Logik

- **Kombinatorische Elemente:** berechnen Ausgaben ohne Zustände
    
- **Sequenzielle Elemente (Register):** speichern Zustände, aktualisieren mit **Taktflanke**
    
- **Clocking Methodology:** Längste Verzögerung bestimmt Taktperiode.
    

---

### 🔥 Besonderheiten MIPS

- **Load/Store Architektur:** Nur Load/Store greifen auf Speicher zu; alle anderen Befehle arbeiten mit Registern.
    
- **Einheitliche Befehlslänge (32 Bit):** vereinfacht Dekodierung.
    
- **Pipelining-Fähigkeit:** parallele Bearbeitung mehrerer Instruktionen möglich (kommt in Teil 2).
    

---

### 📝 Für die Klausur merken

✅ CPU-Leistungsfaktoren & Formel  
✅ MIPS-Befehle (insbesondere `lw`, `sw`, `add`, `beq`, `j`)  
✅ Unterschied komb. Logik ↔ sequenzielle Logik  
✅ Aufbau des Datenpfades & Rolle der einzelnen Elemente  
✅ Load/Store-Prinzip (Register-Register-Arithmetik)

---