85 lines
2.9 KiB
Markdown
85 lines
2.9 KiB
Markdown
## 📘 **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)
|
||
|
||
--- |