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

Binary file not shown.

View File

@@ -3,44 +3,30 @@
### 🏛️ Was ist Computerarchitektur? ### 🏛️ Was ist Computerarchitektur?
- **Definition:** Untersuchung, wie alle Teile eines Computersystems entworfen werden müssen, um eine optimale Programmierung zu ermöglichen. - **Definition:** Untersuchung, wie alle Teile eines Computersystems entworfen werden müssen, um eine optimale Programmierung zu ermöglichen.
- **Enthält:** Datentypen, Operationen, Merkmale, Komponenten auf unterschiedlichen Ebenen. - **Enthält:** Datentypen, Operationen, Merkmale, Komponenten auf unterschiedlichen Ebenen.
- **Begriffspaare:** - **Begriffspaare:**
- **Computerarchitektur** = was der Programmierer „sieht“ (Befehlssatz, Speicher, IO) - **Computerarchitektur** = was der Programmierer „sieht“ (Befehlssatz, Speicher, IO)
- **Computerorganisation** = wie es technisch umgesetzt ist (Mikroarchitektur, Logikgatter) - **Computerorganisation** = wie es technisch umgesetzt ist (Mikroarchitektur, Logikgatter)
--- ---
### 🔄 Wichtige Kundenfragen ### 🔄 Wichtige Kundenfragen
- Ist der neue Rechner **kompatibel**? - Ist der neue Rechner **kompatibel**?
- Betriebssystem, Programme, Peripherie => **Abwärtskompatibilität** - Betriebssystem, Programme, Peripherie => **Abwärtskompatibilität**
- Unterschiedliche Bedürfnisse von Mensch & Maschine → **Abstraktion nötig** - Unterschiedliche Bedürfnisse von Mensch & Maschine → **Abstraktion nötig**
--- ---
### 🪜 Ebenen der Abstraktion (Virtuelle Maschinen) ### 🪜 Ebenen der Abstraktion (Virtuelle Maschinen)
1. **Ebene 0 Digitale Logik:** Gatter, Flipflops 1. **Ebene 0 Digitale Logik:** Gatter, Flipflops
2. **Ebene 1 Mikroarchitektur:** ALU, Register, Datenpfade 2. **Ebene 1 Mikroarchitektur:** ALU, Register, Datenpfade
3. **Ebene 2 ISA (Instruction Set Architecture):** Maschinensprache 3. **Ebene 2 ISA (Instruction Set Architecture):** Maschinensprache
4. **Ebene 3 Betriebssystemebene:** Multiprogramming, IO-Abstraktion 4. **Ebene 3 Betriebssystemebene:** Multiprogramming, IO-Abstraktion
5. **Ebene 4 Assemblersprache:** maschinennahe Programmierung 5. **Ebene 4 Assemblersprache:** maschinennahe Programmierung
6. **Ebene 5 Höhere Programmiersprachen:** unabhängige Algorithmen 6. **Ebene 5 Höhere Programmiersprachen:** unabhängige Algorithmen
--- ---
### 📜 Historie der Computer ### 📜 Historie der Computer
@@ -48,98 +34,67 @@
#### Nullte Generation (vor 1945) #### Nullte Generation (vor 1945)
- Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage) - Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage)
- Zuse Z3 (1941) erster programmgesteuerter Computer - Zuse Z3 (1941) erster programmgesteuerter Computer
#### Erste Generation (19451955) #### Erste Generation (19451955)
- Relais, Vakuumröhren - Relais, Vakuumröhren
- **ENIAC**, **COLOSSUS**, **IAS-Maschine** - **ENIAC**, **COLOSSUS**, **IAS-Maschine**
- Einführung der Mikroprogrammierung (Wilkes, 1951) - Einführung der Mikroprogrammierung (Wilkes, 1951)
- Von-Neumann-Architektur: - Von-Neumann-Architektur:
- Gemeinsamer Speicher für Daten & Programme - Gemeinsamer Speicher für Daten & Programme
- Vorteil: Programme können sich selbst ändern - Vorteil: Programme können sich selbst ändern
- Harvard-Architektur: - Harvard-Architektur:
- Trennung von Daten- & Programmspeicher - Trennung von Daten- & Programmspeicher
- Vorteil: schneller & sicherer - Vorteil: schneller & sicherer
#### Zweite Generation (19551965) #### Zweite Generation (19551965)
- **Transistoren** ersetzen Röhren - **Transistoren** ersetzen Röhren
- Minicomputer (DEC PDP) - Minicomputer (DEC PDP)
#### Dritte Generation (19651980) #### Dritte Generation (19651980)
- **Integrierte Schaltungen** - **Integrierte Schaltungen**
- IBM System/360 → Abwärtskompatibilität - IBM System/360 → Abwärtskompatibilität
#### Vierte Generation (ab 1980) #### Vierte Generation (ab 1980)
- **VLSI (Very Large Scale Integration)** - **VLSI (Very Large Scale Integration)**
- Personal Computer (IBM PC, Commodore, Apple) - Personal Computer (IBM PC, Commodore, Apple)
- RISC vs. CISC Architekturen - RISC vs. CISC Architekturen
#### Fünfte Generation (heute) #### Fünfte Generation (heute)
- Cloud Computing, Mobile Geräte, Embedded Systems - Cloud Computing, Mobile Geräte, Embedded Systems
--- ---
### 🚀 Meilensteine ### 🚀 Meilensteine
- **Intel 4004 (1971):** erster Mikroprozessor (4-bit) - **Intel 4004 (1971):** erster Mikroprozessor (4-bit)
- **Intel 8080, 8086:** Vorläufer moderner x86-Architektur - **Intel 8080, 8086:** Vorläufer moderner x86-Architektur
- **Cray-1 (1977):** erster Vektorrechner/Supercomputer - **Cray-1 (1977):** erster Vektorrechner/Supercomputer
- **PDP-11 (1970):** Unix & Programmiersprache C entstanden darauf - **PDP-11 (1970):** Unix & Programmiersprache C entstanden darauf
--- ---
### 📚 Literatur (Hauptquelle für Klausurvorbereitung) ### 📚 Literatur (Hauptquelle für Klausurvorbereitung)
- Patterson & Hennessy: - Patterson & Hennessy:
- _Rechnerorganisation und Rechnerentwurf_ - _Rechnerorganisation und Rechnerentwurf_
- _Computer Organization and Design_ (RISC-V Edition) - _Computer Organization and Design_ (RISC-V Edition)
--- ---
### 📝 Organisatorisches ### 📝 Organisatorisches
- **Vorlesung:** Do 13:3015:00 - **Vorlesung:** Do 13:3015:00
- **Übung:** Do 15:1516:00 - **Übung:** Do 15:1516:00
- **Labor:** Do 16:1519:15 (alle 2 Wochen) - **Labor:** Do 16:1519:15 (alle 2 Wochen)
- **Prüfung:** E-Klausur 90 min (mind. 50% zum Bestehen) - **Prüfung:** E-Klausur 90 min (mind. 50% zum Bestehen)
- **Voraussetzungen:** DIGIT & BESYST bestanden - **Voraussetzungen:** DIGIT & BESYST bestanden
--- ---
### 🧠 Für die Klausur merken ### 🧠 Für die Klausur merken

View File

@@ -3,90 +3,58 @@
### 🔄 Wiederholung Computergenerationen ### 🔄 Wiederholung Computergenerationen
- **0. Generation (bis 1945):** Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage, Zuse) - **0. Generation (bis 1945):** Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage, Zuse)
- **1. Generation (19451955):** Relais & Vakuumröhren ENIAC, COLOSSUS, MANIAC - **1. Generation (19451955):** Relais & Vakuumröhren ENIAC, COLOSSUS, MANIAC
- **2. Generation (19551965):** Transistoren Minicomputer (PDP), Supercomputer (CDC 6600) - **2. Generation (19551965):** Transistoren Minicomputer (PDP), Supercomputer (CDC 6600)
- **3. Generation (19651980):** Integrierte Schaltungen IBM System/360, PDP-11 - **3. Generation (19651980):** Integrierte Schaltungen IBM System/360, PDP-11
- **4. Generation (ab 1980):** VLSI PCs, x86-Architektur - **4. Generation (ab 1980):** VLSI PCs, x86-Architektur
- **5. Generation (heute):** Smartphones, Cloud, Embedded Systems - **5. Generation (heute):** Smartphones, Cloud, Embedded Systems
--- ---
### 🚀 Moores Law (Moorsches Gesetz) ### 🚀 Moores Law (Moorsches Gesetz)
- **Kerngedanke:** Verdopplung der Anzahl Transistoren pro IC alle 1224 Monate. - **Kerngedanke:** Verdopplung der Anzahl Transistoren pro IC alle 1224 Monate.
- Auswirkungen: - Auswirkungen:
- Kleinere Strukturen → geringere Kosten - Kleinere Strukturen → geringere Kosten
- Mehr Komponenten → höhere Leistung - Mehr Komponenten → höhere Leistung
- Geringerer Stromverbrauch - Geringerer Stromverbrauch
- Aber: Miniaturisierung wird zunehmend teurer und schwieriger. - Aber: Miniaturisierung wird zunehmend teurer und schwieriger.
--- ---
### 📊 Leistungsmessung von Computern ### 📊 Leistungsmessung von Computern
- **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge - **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge
- **Kennzahlen:** - **Kennzahlen:**
- Instruktionen/Sekunde (IPS), FLOPS - Instruktionen/Sekunde (IPS), FLOPS
- Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC) - Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC)
- Speicherzugriffszeit, Durchsatz - Speicherzugriffszeit, Durchsatz
- Netzwerk- & Grafikleistung (FPS, TPS) - Netzwerk- & Grafikleistung (FPS, TPS)
- Kritik an MIPS: „Misleading Information to Promote Sales“ nicht immer aussagekräftig. - Kritik an MIPS: „Misleading Information to Promote Sales“ nicht immer aussagekräftig.
--- ---
### 🤖 Computer als endlicher Automat (Finite State Machine) ### 🤖 Computer als endlicher Automat (Finite State Machine)
- **Zustände:** durch Bitmuster repräsentiert - **Zustände:** durch Bitmuster repräsentiert
- **Operation:** Boolesche Funktion auf Teilzuständen - **Operation:** Boolesche Funktion auf Teilzuständen
- Vergleichbare Modelle: - Vergleichbare Modelle:
- Schaltnetz (ohne Schleifen) - Schaltnetz (ohne Schleifen)
- Endlicher Automat (deterministisch/nichtdeterministisch) - Endlicher Automat (deterministisch/nichtdeterministisch)
- Kellerautomat (mit Stack) - Kellerautomat (mit Stack)
- Turingmaschine (unendliches Band) - Turingmaschine (unendliches Band)
--- ---
### 🚌 Speicheranbindung & Endianness ### 🚌 Speicheranbindung & Endianness
- Speicheradressierung: - Speicheradressierung:
- **big-endian:** höchstwertiges Byte an kleinster Adresse - **big-endian:** höchstwertiges Byte an kleinster Adresse
- **little-endian:** niedrigstwertiges Byte zuerst - **little-endian:** niedrigstwertiges Byte zuerst
- Bus-System: - Bus-System:
- Bus-Takt meist langsamer als CPU-Takt - Bus-Takt meist langsamer als CPU-Takt
- Cache als schneller Zwischenspeicher - Cache als schneller Zwischenspeicher
--- ---
### ⚙️ Aufbau von Computersystemen ### ⚙️ Aufbau von Computersystemen
@@ -94,23 +62,16 @@
#### Rechenwerk (ALU) #### Rechenwerk (ALU)
- Operationen: +, , *, /, logische Operationen - Operationen: +, , *, /, logische Operationen
- Moderne CPUs: mehrere Register → direkte Register-Register-Operationen - Moderne CPUs: mehrere Register → direkte Register-Register-Operationen
- Ältere CPUs: Akkumulator-Register für ALU-Operationen - Ältere CPUs: Akkumulator-Register für ALU-Operationen
#### Steuerwerk #### Steuerwerk
- Verantwortlich für: - Verantwortlich für:
- Ausführung der Befehle - Ausführung der Befehle
- Datenflusskontrolle - Datenflusskontrolle
- Ausnahmebehandlung & Interrupts - Ausnahmebehandlung & Interrupts
--- ---
### 🧵 Befehlssatzarchitekturen (ISA) ### 🧵 Befehlssatzarchitekturen (ISA)
@@ -118,49 +79,32 @@
#### 1⃣ Stack-Architektur #### 1⃣ Stack-Architektur
- Operanden und Ergebnisse liegen auf Stack. - Operanden und Ergebnisse liegen auf Stack.
- Vorteile: kompakter Code, minimaler Prozessorzustand - Vorteile: kompakter Code, minimaler Prozessorzustand
- Nachteil: viele Speicherzugriffe - Nachteil: viele Speicherzugriffe
- Heute: nur noch in virtuellen Maschinen (JVM, p-Machine) - Heute: nur noch in virtuellen Maschinen (JVM, p-Machine)
#### 2⃣ Akkumulator-Architektur #### 2⃣ Akkumulator-Architektur
- Ein Register (Akkumulator) für Operanden & Ergebnis - Ein Register (Akkumulator) für Operanden & Ergebnis
- Speicherzugriff für zweiten Operand nötig - Speicherzugriff für zweiten Operand nötig
- Kompakt, aber teuer durch Speicherzugriffe - Kompakt, aber teuer durch Speicherzugriffe
#### 3⃣ Register-Memory-Architektur #### 3⃣ Register-Memory-Architektur
- Mehrere Register, 2. Operand aus Speicher - Mehrere Register, 2. Operand aus Speicher
- Zwei-Adress-Befehle - Zwei-Adress-Befehle
- Vorteil: direkt mit Speicher arbeiten - Vorteil: direkt mit Speicher arbeiten
- Nachteil: Speicherzugriffe kosten Zeit - Nachteil: Speicherzugriffe kosten Zeit
#### 4⃣ Register-Register (Load/Store)-Architektur #### 4⃣ Register-Register (Load/Store)-Architektur
- Arithmetik nur auf Registern - Arithmetik nur auf Registern
- Speicherzugriff explizit mit Load/Store - Speicherzugriff explizit mit Load/Store
- Drei-Adress-Befehle - Drei-Adress-Befehle
- Vorteil: keine unnötigen Speicherzugriffe - Vorteil: keine unnötigen Speicherzugriffe
- Nachteil: mehr Befehle nötig → größerer Code - Nachteil: mehr Befehle nötig → größerer Code
- Typisch für **RISC-Architekturen** - Typisch für **RISC-Architekturen**
--- ---
### 🔥 RISC vs CISC ### 🔥 RISC vs CISC

View File

@@ -2,32 +2,22 @@
### 🧠 Einführung: CPU-Leistungsfaktoren ### 🧠 Einführung: CPU-Leistungsfaktoren
- **Instruction Count (IC):** Anzahl der Befehle → bestimmt durch ISA & Compiler - **Instruction Count (IC):** Anzahl der Befehle → bestimmt durch ISA & Compiler\
- **Cycles Per Instruction (CPI):** Anzahl der Takte pro Befehl → bestimmt durch Hardware\
- **Cycles Per Instruction (CPI):** Anzahl der Takte pro Befehl → bestimmt durch Hardware - **Cycle Time (CT):** Dauer eines Takts → bestimmt durch Hardware\
- **CPU-Zeit Formel:**\
- **Cycle Time (CT):** Dauer eines Takts → bestimmt durch Hardware
- **CPU-Zeit Formel:**
CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT
--- ---
### 🔁 Ablauf der Instruktionsausführung ### 🔁 Ablauf der Instruktionsausführung
1. **Fetch:** Befehl aus Speicher laden (PC → Instruction Memory) 1. **Fetch:** Befehl aus Speicher laden (PC → Instruction Memory)\
2. **Decode:** Register lesen, Operanden bestimmen\
2. **Decode:** Register lesen, Operanden bestimmen 3. **Execute:** ALU berechnet Ergebnis oder Adresse\
4. **Memory Access:** Speicherzugriff bei Load/Store\
3. **Execute:** ALU berechnet Ergebnis oder Adresse 5. **Write Back:** Ergebnis ins Register zurückschreiben\
6. **PC Update:** PC + 4 oder Sprungadresse\
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 #### 📦 Register
- 32 Register: z.B. `$s0-$s7`, `$t0-$t9`, `$zero` (immer 0), `$sp`, `$ra` - 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.\
- Daten müssen in Register geladen werden, bevor ALU-Operationen möglich sind.
#### 🛠️ Befehle (Beispiele) #### 🛠️ Befehle (Beispiele)
@@ -56,47 +44,33 @@
#### 🛠️ Bausteine #### 🛠️ Bausteine
- **Register:** Speicherung von Zwischenwerten - **Register:** Speicherung von Zwischenwerten\
- **ALU (Arithmetic Logic Unit):** führt Berechnungen durch\
- **ALU (Arithmetic Logic Unit):** führt Berechnungen durch - **Multiplexer (MUX):** entscheidet zwischen Eingangsquellen\
- **Memory:** Instruktions- & Datenspeicher\
- **Multiplexer (MUX):** entscheidet zwischen Eingangsquellen - **Control Unit:** steuert Datenfluss und Operationen\
- **Memory:** Instruktions- & Datenspeicher
- **Control Unit:** steuert Datenfluss und Operationen
#### 📐 Schrittweise Entwicklung #### 📐 Schrittweise Entwicklung
- **R-Typ Befehle:** nur Registeroperationen - **R-Typ Befehle:** nur Registeroperationen\
- **Load/Store:** ALU berechnet Adresse, Speicherzugriff\
- **Load/Store:** ALU berechnet Adresse, Speicherzugriff - **Branch:** ALU-Vergleich → PC-Update bei Bedingung\
- **Branch:** ALU-Vergleich → PC-Update bei Bedingung
--- ---
### 🔄 Taktgesteuerte Logik ### 🔄 Taktgesteuerte Logik
- **Kombinatorische Elemente:** berechnen Ausgaben ohne Zustände - **Kombinatorische Elemente:** berechnen Ausgaben ohne Zustände\
- **Sequenzielle Elemente (Register):** speichern Zustände, aktualisieren mit **Taktflanke**\
- **Sequenzielle Elemente (Register):** speichern Zustände, aktualisieren mit **Taktflanke** - **Clocking Methodology:** Längste Verzögerung bestimmt Taktperiode.\
- **Clocking Methodology:** Längste Verzögerung bestimmt Taktperiode.
--- ---
### 🔥 Besonderheiten MIPS ### 🔥 Besonderheiten MIPS
- **Load/Store Architektur:** Nur Load/Store greifen auf Speicher zu; alle anderen Befehle arbeiten mit Registern. - **Load/Store Architektur:** Nur Load/Store greifen auf Speicher zu; alle anderen Befehle arbeiten mit Registern.\
- **Einheitliche Befehlslänge (32 Bit):** vereinfacht Dekodierung.\
- **Einheitliche Befehlslänge (32 Bit):** vereinfacht Dekodierung. - **Pipelining-Fähigkeit:** parallele Bearbeitung mehrerer Instruktionen möglich (kommt in Teil 2).\
- **Pipelining-Fähigkeit:** parallele Bearbeitung mehrerer Instruktionen möglich (kommt in Teil 2).
--- ---

View File

@@ -3,90 +3,58 @@
### 🔌 Schaltnetze (Combinatorial Logic) ### 🔌 Schaltnetze (Combinatorial Logic)
- **Merkmale:** - **Merkmale:**
- Keine Schleifen - Keine Schleifen
- Keine Rückkopplung - Keine Rückkopplung
- Keine Zustände (stateless) - Keine Zustände (stateless)
- Gleiche Eingabe → gleiche Ausgabe - Gleiche Eingabe → gleiche Ausgabe
- Benötigt Zeit zur Ausgabeerzeugung (aber keinen Takt) - Benötigt Zeit zur Ausgabeerzeugung (aber keinen Takt)
- **Praxisbezug:** Einfache Logik wie Addierer, Multiplexer, Decoder sind Schaltnetze. - **Praxisbezug:** Einfache Logik wie Addierer, Multiplexer, Decoder sind Schaltnetze.
--- ---
### 🔁 Endliche Automaten (Finite State Machines, FSM) ### 🔁 Endliche Automaten (Finite State Machines, FSM)
- **Merkmale:** - **Merkmale:**
- Schleifen und Rückkopplungen möglich - Schleifen und Rückkopplungen möglich
- Zustände vorhanden (stateful) - Zustände vorhanden (stateful)
- Gleiche Eingabe kann unterschiedliche Ausgaben erzeugen abhängig vom aktuellen Zustand - Gleiche Eingabe kann unterschiedliche Ausgaben erzeugen abhängig vom aktuellen Zustand
- Braucht Zeit zur Ausgabeerzeugung - Braucht Zeit zur Ausgabeerzeugung
- **Meist getaktet**, um Design und Analyse zu vereinfachen - **Meist getaktet**, um Design und Analyse zu vereinfachen
- **Praxisbezug:** Steuerwerke in Prozessoren sind typischerweise FSMs. - **Praxisbezug:** Steuerwerke in Prozessoren sind typischerweise FSMs.
--- ---
### 🕒 Vom Schaltnetz zum Endlichen Automaten ### 🕒 Vom Schaltnetz zum Endlichen Automaten
- Erweiterung von Schaltnetzen durch: - Erweiterung von Schaltnetzen durch:
1. **Flip-Flops** → Speichern von Zuständen 1. **Flip-Flops** → Speichern von Zuständen
2. **Getaktete Flip-Flops** → Synchronisation der Zustandsänderung 2. **Getaktete Flip-Flops** → Synchronisation der Zustandsänderung
3. **Flankengesteuerte Flip-Flops** → Reagieren nur auf steigende oder fallende Taktflanken 3. **Flankengesteuerte Flip-Flops** → Reagieren nur auf steigende oder fallende Taktflanken
- Ergebnis: **Deterministischer Endlicher Automat (DEA)** mit Taktsteuerung. - Ergebnis: **Deterministischer Endlicher Automat (DEA)** mit Taktsteuerung.
--- ---
### 🔄 Struktur eines DEAs ### 🔄 Struktur eines DEAs
- **Bestandteile:** - **Bestandteile:**
- Zustandspeicher (z.B. Flip-Flops) - Zustandspeicher (z.B. Flip-Flops)
- Kombinatorische Logik - Kombinatorische Logik
- Takt - Takt
- **Ablauf:** - **Ablauf:**
- Kombinatorische Logik berechnet den nächsten Zustand aus aktuellem Zustand + Eingabe - Kombinatorische Logik berechnet den nächsten Zustand aus aktuellem Zustand + Eingabe
- Zustandspeicher aktualisiert sich bei Taktflanke - Zustandspeicher aktualisiert sich bei Taktflanke
- Ausgabe wird aus Zustand/Eingabe erzeugt - Ausgabe wird aus Zustand/Eingabe erzeugt
--- ---
### ⏱️ Zeitliche Aspekte ### ⏱️ Zeitliche Aspekte
- Jeder Schritt im Automaten braucht Zeit für: - Jeder Schritt im Automaten braucht Zeit für:
- Propagation durch die Logik - Propagation durch die Logik
- Synchronisation mit dem Takt - Synchronisation mit dem Takt
- **Ohne Takt:** Asynchrone Schaltungen - **Ohne Takt:** Asynchrone Schaltungen
- **Mit Takt:** Syntaktische FSM → bevorzugt in modernen Prozessoren - **Mit Takt:** Syntaktische FSM → bevorzugt in modernen Prozessoren
--- ---
### 📝 Für die Klausur merken ### 📝 Für die Klausur merken
@@ -96,14 +64,3 @@
✅ DEA Aufbau: Zustandspeicher + Kombinatorische Logik + Takt ✅ DEA Aufbau: Zustandspeicher + Kombinatorische Logik + Takt
✅ Flankengesteuerte Flip-Flops: warum wichtig? ✅ Flankengesteuerte Flip-Flops: warum wichtig?
✅ Warum getaktete Automaten Analyse und Design erleichtern ✅ Warum getaktete Automaten Analyse und Design erleichtern
---
### 📦 Lernpaket (bisher)
- **V1 Einführung** → Überblick, Historie, Abstraktionsebenen
- **V2 Architekturen** → ISA-Arten, RISC vs. CISC, Moores Law
- **V3a Schaltnetze & Automaten** → Logikstrukturen & FSM

View File

@@ -5,36 +5,21 @@
### **1⃣ Einführung Computerarchitektur** ### **1⃣ Einführung Computerarchitektur**
- **Computerarchitektur**: Sicht des Programmierers (ISA, Speicher, I/O) - **Computerarchitektur**: Sicht des Programmierers (ISA, Speicher, I/O)
- **Computerorganisation**: Umsetzung auf Hardware-Ebene (Mikroarchitektur) - **Computerorganisation**: Umsetzung auf Hardware-Ebene (Mikroarchitektur)
- **Von-Neumann-Architektur**: - **Von-Neumann-Architektur**:
- Gemeinsamer Speicher für Daten & Programme - Gemeinsamer Speicher für Daten & Programme
- Vorteil: Einfachheit; Nachteil: Von-Neumann-Flaschenhals - Vorteil: Einfachheit; Nachteil: Von-Neumann-Flaschenhals
- **Harvard-Architektur**: - **Harvard-Architektur**:
- Trennung von Daten- und Programmspeicher - Trennung von Daten- und Programmspeicher
- **Abstraktionsebenen**: - **Abstraktionsebenen**:
- Ebene 0: Digitale Logik - Ebene 0: Digitale Logik
- Ebene 1: Mikroarchitektur - Ebene 1: Mikroarchitektur
- Ebene 2: ISA - Ebene 2: ISA
- Ebene 3: Betriebssystem - Ebene 3: Betriebssystem
- Ebene 4: Assemblersprache - Ebene 4: Assemblersprache
- Ebene 5: Hochsprachen - Ebene 5: Hochsprachen
- **Historie**: Zuse Z3 → ENIAC → IBM System/360 → Intel 4004 → ARM - **Historie**: Zuse Z3 → ENIAC → IBM System/360 → Intel 4004 → ARM
--- ---
### **2⃣ Architekturen** ### **2⃣ Architekturen**
@@ -48,107 +33,72 @@
|Beispiele|ARM, MIPS|x86 (Intel, AMD)| |Beispiele|ARM, MIPS|x86 (Intel, AMD)|
- **Befehlssatztypen**: - **Befehlssatztypen**:
- Stack, Akkumulator, Register-Memory, Load/Store - Stack, Akkumulator, Register-Memory, Load/Store
- **Moores Law**: Verdopplung der Transistorzahl alle ~18 Monate - **Moores Law**: Verdopplung der Transistorzahl alle ~18 Monate
- **Leistungskennzahlen**: MIPS, FLOPS, CPI, IPC - **Leistungskennzahlen**: MIPS, FLOPS, CPI, IPC
--- ---
### **3⃣ Schaltnetze & Endliche Automaten** ### **3⃣ Schaltnetze & Endliche Automaten**
- **Schaltnetz**: stateless, keine Rückkopplung - **Schaltnetz**: stateless, keine Rückkopplung
- **Endlicher Automat (FSM)**: stateful, mit Rückkopplung - **Endlicher Automat (FSM)**: stateful, mit Rückkopplung
- **Flip-Flops**: Zustandspeicher, getaktet - **Flip-Flops**: Zustandspeicher, getaktet
- **DEA**: Zustandslogik + Zustandspeicher + Takt - **DEA**: Zustandslogik + Zustandspeicher + Takt
--- ---
### **4⃣ Prozessor (Teil 1)** ### **4⃣ Prozessor (Teil 1)**
- **MIPS-ISA**: - **MIPS-ISA**:
- R-Typ: `add $s1, $s2, $s3` - R-Typ: `add $s1, $s2, $s3`
- Load/Store: `lw`, `sw` - Load/Store: `lw`, `sw`
- Branch: `beq`, `bne` - Branch: `beq`, `bne`
- **CPU-Leistungsformel**: - **CPU-Leistungsformel**:
CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT
- **Datenpfad-Bausteine**: ALU, Registerfile, Steuerwerk - **Datenpfad-Bausteine**: ALU, Registerfile, Steuerwerk
--- ---
### **5⃣ Prozessor (Teil 2)** ### **5⃣ Prozessor (Teil 2)**
- **Steuersignale**: - **Steuersignale**:
- MemtoReg, RegWrite, ALUSrc, Branch, Jump - MemtoReg, RegWrite, ALUSrc, Branch, Jump
- **ALU Control**: Bestimmt Operation aus Opcode + Funct - **ALU Control**: Bestimmt Operation aus Opcode + Funct
- **Erweiterter Datenpfad**: Unterstützung für Jumps & Branches - **Erweiterter Datenpfad**: Unterstützung für Jumps & Branches
--- ---
### **6⃣ Pipelining** ### **6⃣ Pipelining**
- **5 Pipeline-Stufen**: IF → ID → EX → MEM → WB - **5 Pipeline-Stufen**: IF → ID → EX → MEM → WB
- **Vorteil**: Erhöhter Durchsatz, gleiche Latenz - **Vorteil**: Erhöhter Durchsatz, gleiche Latenz
- **Hazards**: - **Hazards**:
- **Strukturell** - **Strukturell**
- **Datenhazards**: Forwarding, Stalls - **Datenhazards**: Forwarding, Stalls
- **Kontrollhazards**: Branch Prediction (Static/Dynamic) - **Kontrollhazards**: Branch Prediction (Static/Dynamic)
--- ---
### **7⃣ Pipelining: Datapath & Control** ### **7⃣ Pipelining: Datapath & Control**
- **Forwarding**: Bypassing von EX/MEM, MEM/WB - **Forwarding**: Bypassing von EX/MEM, MEM/WB
- **Load-Use Hazard**: 1-Stall einfügen - **Load-Use Hazard**: 1-Stall einfügen
- **Branch Prediction**: - **Branch Prediction**:
- 1-Bit, 2-Bit Predictors - 1-Bit, 2-Bit Predictors
- Branch Target Buffer (BTB) - Branch Target Buffer (BTB)
--- ---
### **8⃣ Pipelining: Exceptions, Interrupts & ILP** ### **8⃣ Pipelining: Exceptions, Interrupts & ILP**
- **Exceptions**: Fehler innerhalb CPU → EPC speichert PC - **Exceptions**: Fehler innerhalb CPU → EPC speichert PC
- **Interrupts**: externe Ereignisse - **Interrupts**: externe Ereignisse
- **ILP**: - **ILP**:
- **Static (VLIW)** vs. **Dynamic (Superscalar)** - **Static (VLIW)** vs. **Dynamic (Superscalar)**
- **Speculation**: Branch & Load Speculation - **Speculation**: Branch & Load Speculation
- **Register Renaming**: Verhindert WAW & WAR - **Register Renaming**: Verhindert WAW & WAR
--- ---
### **9⃣ Intel vs. ARM** ### **9⃣ Intel vs. ARM**
@@ -164,52 +114,34 @@
### **🔟 Speicheranbindung** ### **🔟 Speicheranbindung**
- **Speicherhierarchie**: Register → Cache → RAM → SSD/HDD - **Speicherhierarchie**: Register → Cache → RAM → SSD/HDD
- **Caches**: - **Caches**:
- Direct-Mapped, Set-Associative, Fully-Associative - Direct-Mapped, Set-Associative, Fully-Associative
- Write-Through vs. Write-Back - Write-Through vs. Write-Back
- **AMAT**: - **AMAT**:
AMAT=HitTime+MissRate×MissPenaltyAMAT = HitTime + MissRate \times MissPenalty AMAT=HitTime+MissRate×MissPenaltyAMAT = HitTime + MissRate \times MissPenalty
- **Cache Blocking**: Optimiert Speicherzugriffe - **Cache Blocking**: Optimiert Speicherzugriffe
--- ---
### **1⃣1⃣ Assembler** ### **1⃣1⃣ Assembler**
- **Assembler**: Übersetzt Assemblersprache → Maschinencode - **Assembler**: Übersetzt Assemblersprache → Maschinencode
- **Zwei-Pass-Assembler**: Symboltabelle, Opcode-Tabelle - **Zwei-Pass-Assembler**: Symboltabelle, Opcode-Tabelle
- **Linker**: Relokation & externe Referenzen - **Linker**: Relokation & externe Referenzen
- **Makros**: Ersetzung bei Übersetzung - **Makros**: Ersetzung bei Übersetzung
- **Dynamisches Binden**: DLL (Windows), SO (Unix) - **Dynamisches Binden**: DLL (Windows), SO (Unix)
--- ---
### **1⃣2⃣ Compiler** ### **1⃣2⃣ Compiler**
- **Compiler-Phasen**: - **Compiler-Phasen**:
1. Lexikalische Analyse 1. Lexikalische Analyse
2. Syntaktische Analyse (AST) 2. Syntaktische Analyse (AST)
3. Semantische Analyse 3. Semantische Analyse
4. Zwischencode (3-Adress-Code) 4. Zwischencode (3-Adress-Code)
5. Optimierung (lokal, global) 5. Optimierung (lokal, global)
6. Codegenerierung 6. Codegenerierung
- **Optimierungstechniken**: Loop Unrolling, Constant Folding, Dead Code Elimination - **Optimierungstechniken**: Loop Unrolling, Constant Folding, Dead Code Elimination
- **Tools**: `cc -E`, `cc -S`, `cc -c`, `cc -o` - **Tools**: `cc -E`, `cc -S`, `cc -c`, `cc -o`
@@ -220,25 +152,16 @@
### **1⃣3⃣ Zuverlässigkeit & Virtualität** ### **1⃣3⃣ Zuverlässigkeit & Virtualität**
- **Zuverlässigkeit**: - **Zuverlässigkeit**:
Availability=MTTFMTTF+MTTRAvailability = \frac{MTTF}{MTTF + MTTR} Availability=MTTFMTTF+MTTRAvailability = \frac{MTTF}{MTTF + MTTR}
- **Hamming-Codes**: SEC/DED, ECC DRAM - **Hamming-Codes**: SEC/DED, ECC DRAM
- **Virtuelle Maschinen (VMs)**: - **Virtuelle Maschinen (VMs)**:
- Vorteile: Isolation, Sicherheit - Vorteile: Isolation, Sicherheit
- VMM: verwaltet Ressourcen, Traps für privilegierte Instruktionen - VMM: verwaltet Ressourcen, Traps für privilegierte Instruktionen
- **Virtueller Speicher**: - **Virtueller Speicher**:
- Page Tables, TLB, Page Fault Handling - Page Tables, TLB, Page Fault Handling
- **Cache-Kohärenz**: - **Cache-Kohärenz**:
- Snooping, Directory-basierte Protokolle - Snooping, Directory-basierte Protokolle
--- ---
💡 **Merke**: Prinzip der Lokalität & Speicherhierarchie sind Schlüsselthemen für Performance! 💡 **Merke**: Prinzip der Lokalität & Speicherhierarchie sind Schlüsselthemen für Performance!