issue
This commit is contained in:
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user