4.7 KiB
4.7 KiB
📘 Kompaktes Lernskript: Computerarchitektur (alle 13 Vorlesungen)
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
- Harvard-Architektur:
- 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
- Historie: Zuse Z3 → ENIAC → IBM System/360 → Intel 4004 → ARM
2️⃣ Architekturen
-
RISC vs. CISC:
Merkmal RISC CISC Befehlssatz Einfach, gleich lang Komplex, unterschiedliche Länge Hardware Einfach Komplex Beispiele ARM, MIPS x86 (Intel, AMD) -
Befehlssatztypen:
- 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:
- 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
- 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)
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)
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
9️⃣ Intel vs. ARM
| Feature | ARM Cortex-A8 | Intel Core i7 |
|---|---|---|
| Planung | Statisch, in-order | Dynamisch, out-of-order |
| TDP | 2 W | 130 W |
| Max Instr./Takt | 2 | 4 |
🔟 Speicheranbindung
- Speicherhierarchie: Register → Cache → RAM → SSD/HDD
- Caches:
- 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:
- Lexikalische Analyse
- Syntaktische Analyse (AST)
- Semantische Analyse
- Zwischencode (3-Adress-Code)
- Optimierung (lokal, global)
- Codegenerierung
-
Optimierungstechniken: Loop Unrolling, Constant Folding, Dead Code Elimination
-
Tools:
cc -E,cc -S,cc -c,cc -o
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
- Virtueller Speicher:
- Page Tables, TLB, Page Fault Handling
- Cache-Kohärenz:
- Snooping, Directory-basierte Protokolle
💡 Merke: Prinzip der Lokalität & Speicherhierarchie sind Schlüsselthemen für Performance!