diff --git a/Semester 6/COMARCH/Zusammenfassung/COMARCH.7z b/Semester 6/COMARCH/Zusammenfassung/COMARCH.7z new file mode 100644 index 0000000..c91c4c6 Binary files /dev/null and b/Semester 6/COMARCH/Zusammenfassung/COMARCH.7z differ diff --git a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md index dc1fa20..8a5c061 100644 --- a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md +++ b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 1.md @@ -3,43 +3,29 @@ ### đŸ›ïž Was ist Computerarchitektur? - **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. - - **Begriffspaare:** - - **Computerarchitektur** = was der Programmierer „sieht“ (Befehlssatz, Speicher, IO) - - **Computerorganisation** = wie es technisch umgesetzt ist (Mikroarchitektur, Logikgatter) - --- ### 🔄 Wichtige Kundenfragen - Ist der neue Rechner **kompatibel**? - - Betriebssystem, Programme, Peripherie => **AbwĂ€rtskompatibilitĂ€t** - - Unterschiedliche BedĂŒrfnisse von Mensch & Maschine → **Abstraktion nötig** - --- ### đŸȘœ Ebenen der Abstraktion (Virtuelle Maschinen) 1. **Ebene 0 – Digitale Logik:** Gatter, Flipflops - 2. **Ebene 1 – Mikroarchitektur:** ALU, Register, Datenpfade - 3. **Ebene 2 – ISA (Instruction Set Architecture):** Maschinensprache - 4. **Ebene 3 – Betriebssystemebene:** Multiprogramming, IO-Abstraktion - 5. **Ebene 4 – Assemblersprache:** maschinennahe Programmierung - 6. **Ebene 5 – Höhere Programmiersprachen:** unabhĂ€ngige Algorithmen - --- @@ -48,97 +34,66 @@ #### Nullte Generation (vor 1945) - Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage) - - Zuse Z3 (1941) – erster programmgesteuerter Computer - #### Erste Generation (1945–1955) - Relais, Vakuumröhren - - **ENIAC**, **COLOSSUS**, **IAS-Maschine** - - EinfĂŒhrung der Mikroprogrammierung (Wilkes, 1951) - - Von-Neumann-Architektur: - - - Gemeinsamer Speicher fĂŒr Daten & Programme - - - Vorteil: Programme können sich selbst Ă€ndern - + - Gemeinsamer Speicher fĂŒr Daten & Programme + - Vorteil: Programme können sich selbst Ă€ndern - Harvard-Architektur: - - - Trennung von Daten- & Programmspeicher - - - Vorteil: schneller & sicherer - + - Trennung von Daten- & Programmspeicher + - Vorteil: schneller & sicherer #### Zweite Generation (1955–1965) - **Transistoren** ersetzen Röhren - - Minicomputer (DEC PDP) - #### Dritte Generation (1965–1980) - **Integrierte Schaltungen** - - IBM System/360 → AbwĂ€rtskompatibilitĂ€t - #### Vierte Generation (ab 1980) - **VLSI (Very Large Scale Integration)** - - Personal Computer (IBM PC, Commodore, Apple) - - RISC vs. CISC Architekturen - #### FĂŒnfte Generation (heute) - Cloud Computing, Mobile GerĂ€te, Embedded Systems - --- ### 🚀 Meilensteine - **Intel 4004 (1971):** erster Mikroprozessor (4-bit) - - **Intel 8080, 8086:** VorlĂ€ufer moderner x86-Architektur - - **Cray-1 (1977):** erster Vektorrechner/Supercomputer - - **PDP-11 (1970):** Unix & Programmiersprache C entstanden darauf - --- ### 📚 Literatur (Hauptquelle fĂŒr Klausurvorbereitung) - Patterson & Hennessy: - - - _Rechnerorganisation und Rechnerentwurf_ - - - _Computer Organization and Design_ (RISC-V Edition) - + - _Rechnerorganisation und Rechnerentwurf_ + - _Computer Organization and Design_ (RISC-V Edition) --- ### 📝 Organisatorisches - **Vorlesung:** Do 13:30–15:00 - - **Übung:** Do 15:15–16:00 - - **Labor:** Do 16:15–19:15 (alle 2 Wochen) - - **PrĂŒfung:** E-Klausur 90 min (mind. 50% zum Bestehen) - - **Voraussetzungen:** DIGIT & BESYST bestanden - --- diff --git a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md index 85b7e48..5027fad 100644 --- a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md +++ b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 2.md @@ -3,89 +3,57 @@ ### 🔄 Wiederholung Computergenerationen - **0. Generation (bis 1945):** Mechanische Rechenmaschinen (Pascal, Leibniz, Babbage, Zuse) - - **1. Generation (1945–1955):** Relais & Vakuumröhren – ENIAC, COLOSSUS, MANIAC - - **2. Generation (1955–1965):** Transistoren – Minicomputer (PDP), Supercomputer (CDC 6600) - - **3. Generation (1965–1980):** Integrierte Schaltungen – IBM System/360, PDP-11 - - **4. Generation (ab 1980):** VLSI – PCs, x86-Architektur - - **5. Generation (heute):** Smartphones, Cloud, Embedded Systems - --- ### 🚀 Moore’s Law (Moor’sches Gesetz) - **Kerngedanke:** Verdopplung der Anzahl Transistoren pro IC alle 12–24 Monate. - - Auswirkungen: - - - Kleinere Strukturen → geringere Kosten - - - Mehr Komponenten → höhere Leistung - - - Geringerer Stromverbrauch - + - Kleinere Strukturen → geringere Kosten + - Mehr Komponenten → höhere Leistung + - Geringerer Stromverbrauch - Aber: Miniaturisierung wird zunehmend teurer und schwieriger. - --- ### 📊 Leistungsmessung von Computern - **System-Benchmarks:** Cinebench, 3DMark, HPC Challenge - - **Kennzahlen:** - - - Instruktionen/Sekunde (IPS), FLOPS - - - Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC) - - - Speicherzugriffszeit, Durchsatz - - - Netzwerk- & Grafikleistung (FPS, TPS) - + - Instruktionen/Sekunde (IPS), FLOPS + - Taktzyklen pro Instruktion (CPI), Instruktionen pro Takt (IPC) + - Speicherzugriffszeit, Durchsatz + - Netzwerk- & Grafikleistung (FPS, TPS) - Kritik an MIPS: „Misleading Information to Promote Sales“ – nicht immer aussagekrĂ€ftig. - --- ### đŸ€– Computer als endlicher Automat (Finite State Machine) - **ZustĂ€nde:** durch Bitmuster reprĂ€sentiert - - **Operation:** Boolesche Funktion auf TeilzustĂ€nden - - Vergleichbare Modelle: - - - Schaltnetz (ohne Schleifen) - - - Endlicher Automat (deterministisch/nichtdeterministisch) - - - Kellerautomat (mit Stack) - - - Turingmaschine (unendliches Band) - + - Schaltnetz (ohne Schleifen) + - Endlicher Automat (deterministisch/nichtdeterministisch) + - Kellerautomat (mit Stack) + - Turingmaschine (unendliches Band) --- ### 🚌 Speicheranbindung & Endianness - Speicheradressierung: - - - **big-endian:** höchstwertiges Byte an kleinster Adresse - - - **little-endian:** niedrigstwertiges Byte zuerst - + - **big-endian:** höchstwertiges Byte an kleinster Adresse + - **little-endian:** niedrigstwertiges Byte zuerst - Bus-System: - - - Bus-Takt meist langsamer als CPU-Takt - - - Cache als schneller Zwischenspeicher - + - Bus-Takt meist langsamer als CPU-Takt + - Cache als schneller Zwischenspeicher --- @@ -94,22 +62,15 @@ #### Rechenwerk (ALU) - Operationen: +, −, *, /, logische Operationen - - Moderne CPUs: mehrere Register → direkte Register-Register-Operationen - - Ältere CPUs: Akkumulator-Register fĂŒr ALU-Operationen - #### Steuerwerk - Verantwortlich fĂŒr: - - - AusfĂŒhrung der Befehle - - - Datenflusskontrolle - - - Ausnahmebehandlung & Interrupts - + - AusfĂŒhrung der Befehle + - Datenflusskontrolle + - Ausnahmebehandlung & Interrupts --- @@ -118,48 +79,31 @@ #### 1ïžâƒŁ Stack-Architektur - Operanden und Ergebnisse liegen auf Stack. - - Vorteile: kompakter Code, minimaler Prozessorzustand - - Nachteil: viele Speicherzugriffe - - Heute: nur noch in virtuellen Maschinen (JVM, p-Machine) - #### 2ïžâƒŁ Akkumulator-Architektur - Ein Register (Akkumulator) fĂŒr Operanden & Ergebnis - - Speicherzugriff fĂŒr zweiten Operand nötig - - Kompakt, aber teuer durch Speicherzugriffe - #### 3ïžâƒŁ Register-Memory-Architektur - Mehrere Register, 2. Operand aus Speicher - - Zwei-Adress-Befehle - - Vorteil: direkt mit Speicher arbeiten - - Nachteil: Speicherzugriffe kosten Zeit - #### 4ïžâƒŁ Register-Register (Load/Store)-Architektur - Arithmetik nur auf Registern - - Speicherzugriff explizit mit Load/Store - - Drei-Adress-Befehle - - Vorteil: keine unnötigen Speicherzugriffe - - Nachteil: mehr Befehle nötig → grĂ¶ĂŸerer Code - - Typisch fĂŒr **RISC-Architekturen** - --- diff --git a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md index 1ef5f9e..cdbc70e 100644 --- a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md +++ b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3.md @@ -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).\ --- diff --git a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md index 30d147b..b2bfcd0 100644 --- a/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md +++ b/Semester 6/COMARCH/Zusammenfassung/Vorlesung 3a.md @@ -3,89 +3,57 @@ ### 🔌 Schaltnetze (Combinatorial Logic) - **Merkmale:** - - - Keine Schleifen - - - Keine RĂŒckkopplung - - - Keine ZustĂ€nde (stateless) - - - Gleiche Eingabe → gleiche Ausgabe - - - Benötigt Zeit zur Ausgabeerzeugung (aber keinen Takt) - + - Keine Schleifen + - Keine RĂŒckkopplung + - Keine ZustĂ€nde (stateless) + - Gleiche Eingabe → gleiche Ausgabe + - Benötigt Zeit zur Ausgabeerzeugung (aber keinen Takt) - **Praxisbezug:** Einfache Logik wie Addierer, Multiplexer, Decoder sind Schaltnetze. - --- ### 🔁 Endliche Automaten (Finite State Machines, FSM) - **Merkmale:** - - - Schleifen und RĂŒckkopplungen möglich - - - ZustĂ€nde vorhanden (stateful) - - - Gleiche Eingabe kann unterschiedliche Ausgaben erzeugen – abhĂ€ngig vom aktuellen Zustand - - - Braucht Zeit zur Ausgabeerzeugung - - - **Meist getaktet**, um Design und Analyse zu vereinfachen - + - Schleifen und RĂŒckkopplungen möglich + - ZustĂ€nde vorhanden (stateful) + - Gleiche Eingabe kann unterschiedliche Ausgaben erzeugen – abhĂ€ngig vom aktuellen Zustand + - Braucht Zeit zur Ausgabeerzeugung + - **Meist getaktet**, um Design und Analyse zu vereinfachen - **Praxisbezug:** Steuerwerke in Prozessoren sind typischerweise FSMs. - --- ### 🕒 Vom Schaltnetz zum Endlichen Automaten - Erweiterung von Schaltnetzen durch: - - 1. **Flip-Flops** → Speichern von ZustĂ€nden - - 2. **Getaktete Flip-Flops** → Synchronisation der ZustandsĂ€nderung - - 3. **Flankengesteuerte Flip-Flops** → Reagieren nur auf steigende oder fallende Taktflanken - + 1. **Flip-Flops** → Speichern von ZustĂ€nden + 2. **Getaktete Flip-Flops** → Synchronisation der ZustandsĂ€nderung + 3. **Flankengesteuerte Flip-Flops** → Reagieren nur auf steigende oder fallende Taktflanken - Ergebnis: **Deterministischer Endlicher Automat (DEA)** mit Taktsteuerung. - --- ### 🔄 Struktur eines DEAs - **Bestandteile:** - - - Zustandspeicher (z. B. Flip-Flops) - - - Kombinatorische Logik - - - Takt - + - Zustandspeicher (z. B. Flip-Flops) + - Kombinatorische Logik + - Takt - **Ablauf:** - - - Kombinatorische Logik berechnet den nĂ€chsten Zustand aus aktuellem Zustand + Eingabe - - - Zustandspeicher aktualisiert sich bei Taktflanke - - - Ausgabe wird aus Zustand/Eingabe erzeugt - + - Kombinatorische Logik berechnet den nĂ€chsten Zustand aus aktuellem Zustand + Eingabe + - Zustandspeicher aktualisiert sich bei Taktflanke + - Ausgabe wird aus Zustand/Eingabe erzeugt --- ### ⏱ Zeitliche Aspekte - Jeder Schritt im Automaten braucht Zeit fĂŒr: - - - Propagation durch die Logik - - - Synchronisation mit dem Takt - + - Propagation durch die Logik + - Synchronisation mit dem Takt - **Ohne Takt:** Asynchrone Schaltungen - - **Mit Takt:** Syntaktische FSM → bevorzugt in modernen Prozessoren - --- @@ -96,14 +64,3 @@ ✅ DEA Aufbau: Zustandspeicher + Kombinatorische Logik + Takt ✅ Flankengesteuerte Flip-Flops: warum wichtig? ✅ Warum getaktete Automaten Analyse und Design erleichtern - ---- - -### 📩 Lernpaket (bisher) - -- **V1 EinfĂŒhrung** → Überblick, Historie, Abstraktionsebenen - -- **V2 Architekturen** → ISA-Arten, RISC vs. CISC, Moore’s Law - -- **V3a Schaltnetze & Automaten** → Logikstrukturen & FSM - diff --git a/Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md b/Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md index bf263c2..d8131cf 100644 --- a/Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md +++ b/Semester 6/COMARCH/Zusammenfassung/Vorlesung Kompakt.md @@ -5,35 +5,20 @@ ### **1ïžâƒŁ EinfĂŒhrung – Computerarchitektur** - **Computerarchitektur**: Sicht des Programmierers (ISA, Speicher, I/O) - - **Computerorganisation**: Umsetzung auf Hardware-Ebene (Mikroarchitektur) - - **Von-Neumann-Architektur**: - - - Gemeinsamer Speicher fĂŒr Daten & Programme - - - Vorteil: Einfachheit; Nachteil: Von-Neumann-Flaschenhals - + - Gemeinsamer Speicher fĂŒr Daten & Programme + - Vorteil: Einfachheit; Nachteil: Von-Neumann-Flaschenhals - **Harvard-Architektur**: - - - Trennung von Daten- und Programmspeicher - + - Trennung von Daten- und Programmspeicher - **Abstraktionsebenen**: - - - Ebene 0: Digitale Logik - - - Ebene 1: Mikroarchitektur - - - Ebene 2: ISA - - - Ebene 3: Betriebssystem - - - Ebene 4: Assemblersprache - - - Ebene 5: Hochsprachen - + - Ebene 0: Digitale Logik + - Ebene 1: Mikroarchitektur + - Ebene 2: ISA + - Ebene 3: Betriebssystem + - Ebene 4: Assemblersprache + - Ebene 5: Hochsprachen - **Historie**: Zuse Z3 → ENIAC → IBM System/360 → Intel 4004 → ARM - --- @@ -48,106 +33,71 @@ |Beispiele|ARM, MIPS|x86 (Intel, AMD)| - **Befehlssatztypen**: - - - Stack, Akkumulator, Register-Memory, Load/Store - + - Stack, Akkumulator, Register-Memory, Load/Store - **Moore’s Law**: Verdopplung der Transistorzahl alle ~18 Monate - - **Leistungskennzahlen**: MIPS, FLOPS, CPI, IPC - --- ### **3ïžâƒŁ Schaltnetze & Endliche Automaten** - **Schaltnetz**: stateless, keine RĂŒckkopplung - - **Endlicher Automat (FSM)**: stateful, mit RĂŒckkopplung - - **Flip-Flops**: Zustandspeicher, getaktet - - **DEA**: Zustandslogik + Zustandspeicher + Takt - --- ### **4ïžâƒŁ Prozessor (Teil 1)** - **MIPS-ISA**: - - - R-Typ: `add $s1, $s2, $s3` - - - Load/Store: `lw`, `sw` - - - Branch: `beq`, `bne` - + - R-Typ: `add $s1, $s2, $s3` + - Load/Store: `lw`, `sw` + - Branch: `beq`, `bne` - **CPU-Leistungsformel**: - CPU-Zeit=IC×CPI×CTCPU\text{-Zeit} = IC \times CPI \times CT - **Datenpfad-Bausteine**: ALU, Registerfile, Steuerwerk - --- ### **5ïžâƒŁ Prozessor (Teil 2)** - **Steuersignale**: - - - MemtoReg, RegWrite, ALUSrc, Branch, Jump - + - MemtoReg, RegWrite, ALUSrc, Branch, Jump - **ALU Control**: Bestimmt Operation aus Opcode + Funct - - **Erweiterter Datenpfad**: UnterstĂŒtzung fĂŒr Jumps & Branches - --- ### **6ïžâƒŁ Pipelining** - **5 Pipeline-Stufen**: IF → ID → EX → MEM → WB - - **Vorteil**: Erhöhter Durchsatz, gleiche Latenz - - **Hazards**: - - - **Strukturell** - - - **Datenhazards**: Forwarding, Stalls - - - **Kontrollhazards**: Branch Prediction (Static/Dynamic) - + - **Strukturell** + - **Datenhazards**: Forwarding, Stalls + - **Kontrollhazards**: Branch Prediction (Static/Dynamic) --- ### **7ïžâƒŁ Pipelining: Datapath & Control** - **Forwarding**: Bypassing von EX/MEM, MEM/WB - - **Load-Use Hazard**: 1-Stall einfĂŒgen - - **Branch Prediction**: - - - 1-Bit, 2-Bit Predictors - - - Branch Target Buffer (BTB) - + - 1-Bit, 2-Bit Predictors + - Branch Target Buffer (BTB) --- ### **8ïžâƒŁ Pipelining: Exceptions, Interrupts & ILP** - **Exceptions**: Fehler innerhalb CPU → EPC speichert PC - - **Interrupts**: externe Ereignisse - - **ILP**: - - - **Static (VLIW)** vs. **Dynamic (Superscalar)** - - - **Speculation**: Branch & Load Speculation - - - **Register Renaming**: Verhindert WAW & WAR - + - **Static (VLIW)** vs. **Dynamic (Superscalar)** + - **Speculation**: Branch & Load Speculation + - **Register Renaming**: Verhindert WAW & WAR --- @@ -164,52 +114,34 @@ ### **🔟 Speicheranbindung** - **Speicherhierarchie**: Register → Cache → RAM → SSD/HDD - - **Caches**: - - - Direct-Mapped, Set-Associative, Fully-Associative - - - Write-Through vs. Write-Back - - - **AMAT**: - + - Direct-Mapped, Set-Associative, Fully-Associative + - Write-Through vs. Write-Back + - **AMAT**: AMAT=HitTime+MissRate×MissPenaltyAMAT = HitTime + MissRate \times MissPenalty - **Cache Blocking**: Optimiert Speicherzugriffe - --- ### **1ïžâƒŁ1ïžâƒŁ Assembler** - **Assembler**: Übersetzt Assemblersprache → Maschinencode - - **Zwei-Pass-Assembler**: Symboltabelle, Opcode-Tabelle - - **Linker**: Relokation & externe Referenzen - - **Makros**: Ersetzung bei Übersetzung - - **Dynamisches Binden**: DLL (Windows), SO (Unix) - --- ### **1ïžâƒŁ2ïžâƒŁ Compiler** - **Compiler-Phasen**: - - 1. Lexikalische Analyse - - 2. Syntaktische Analyse (AST) - - 3. Semantische Analyse - - 4. Zwischencode (3-Adress-Code) - - 5. Optimierung (lokal, global) - - 6. Codegenerierung - + 1. Lexikalische Analyse + 2. Syntaktische Analyse (AST) + 3. Semantische Analyse + 4. Zwischencode (3-Adress-Code) + 5. Optimierung (lokal, global) + 6. Codegenerierung - **Optimierungstechniken**: Loop Unrolling, Constant Folding, Dead Code Elimination - **Tools**: `cc -E`, `cc -S`, `cc -c`, `cc -o` @@ -220,24 +152,15 @@ ### **1ïžâƒŁ3ïžâƒŁ ZuverlĂ€ssigkeit & VirtualitĂ€t** - **ZuverlĂ€ssigkeit**: - Availability=MTTFMTTF+MTTRAvailability = \frac{MTTF}{MTTF + MTTR} - **Hamming-Codes**: SEC/DED, ECC DRAM - - **Virtuelle Maschinen (VMs)**: - - - Vorteile: Isolation, Sicherheit - - - VMM: verwaltet Ressourcen, Traps fĂŒr privilegierte Instruktionen - + - Vorteile: Isolation, Sicherheit + - VMM: verwaltet Ressourcen, Traps fĂŒr privilegierte Instruktionen - **Virtueller Speicher**: - - - Page Tables, TLB, Page Fault Handling - + - Page Tables, TLB, Page Fault Handling - **Cache-KohĂ€renz**: - - - Snooping, Directory-basierte Protokolle - + - Snooping, Directory-basierte Protokolle ---