5.1 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
-
-
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!