This commit is contained in:
fzzinchemical
2025-07-08 18:34:59 +02:00
parent ceedd6b064
commit 90dc632ada
6 changed files with 106 additions and 353 deletions

View File

@@ -2,32 +2,22 @@
### 🧠 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:**
- **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
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\
---
@@ -35,10 +25,8 @@
#### 📦 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.
- 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)
@@ -56,47 +44,33 @@
#### 🛠️ 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
- **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
- **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.
- **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).
- **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).\
---