Grundlegende Komponenten eines Computers
Definition:
Beinhaltet die wesentlichen Bestandteile, die zur Funktion eines Computers notwendig sind.
Details:
- Zentraleinheit (CPU): Führt Berechnungen und Steuerungen durch.
- Arbeitsspeicher (RAM): Speichert Daten und Programme temporär.
- Massenspeicher: Langzeitaufbewahrung von Daten (z.B., HDD, SSD).
- E/A-Geräte: Schnittstellen für Benutzer und externe Geräte (z.B., Tastatur, Monitor).
- Mainboard: Verbindet alle Komponenten und ermöglicht Datenfluss.
- Busse: Transportieren Daten zwischen den Komponenten (z.B., Datenbus, Adressbus).
Von-Neumann-Architektur vs. Harvard-Architektur
Definition:
Von-Neumann-Architektur und Harvard-Architektur sind zwei grundlegende Architekturen für Computer, die sich hauptsächlich durch die Art und Weise unterscheiden, wie sie Speicher und Datenpfade behandeln.
Details:
- Von-Neumann-Architektur:
- Ein einziger Speicher für Programme und Daten
- Ein gemeinsamer Bus für Daten und Anweisungen
- Kann zu einem Flaschenhals führen (von-Neumann-Flaschenhals)
- Harvard-Architektur:
- Getrennter Speicher für Programme und Daten
- Separater Bus für Daten und Anweisungen
- Erlaubt schnellere Datenzugriffe im Vergleich zur Von-Neumann-Architektur
Pipeline-Architekturen und ihre Optimierung
Definition:
Technik zur Erhöhung der Befehlsverarbeitungsgeschwindigkeit durch parallele Bearbeitung mehrerer Befehlsphasen.
Details:
- Stages: Fetch, Decode, Execute, Memory, Write Back
- Daten- und Kontrollabhängigkeiten beachten
- Stall: Pausieren der Pipeline zur Vermeidung von Konflikten
- Forwarding: Latenzminderung durch Ergebnisweitergabe innerhalb der Pipeline
- Branch Prediction zur Verringerung von Kontroll-Dependenz-Verzögerungen
- Superskalares Design: Mehrere Befehle pro Taktzyklus
- Out-of-Order Execution für effiziente Nutzung von Ressourcen
- Hazards: Struktur-, Daten- und Kontroll-Hazards
- \text{IPC} (Instructions per Cycle) als Leistungsmaß
Einführung in Assemblersprachen
Definition:
Maschinennahes Programmieren, direkter Zugriff auf Hardware und Speicher.
Details:
- Assembler: Low-Level-Programmiersprache, enge Verbindung zur Maschinenarchitektur.
- Instruktionen bestehen aus mnemonischen Codes und Operanden.
- Konzepte: Register, Direkt- und Indirektadressierung, Bedingte und Unbedingte Sprünge.
- Wichtig für Systemprogrammierung und Performance-Kritische Anwendungen.
- Beispiele: x86, ARM Assembler.
- Debugger und Assembler Tools: gdb, NASM.
- Syntax: MOV AX, 1
Struktur und Funktion von Cache-Speichern
Definition:
Cache-Speicher: Schneller, kleiner Speicher zwischen CPU und Hauptspeicher, minimiert Zugriffszeit auf Daten.
Details:
- Mehrstufige Hierarchie: L1, L2, L3
- Assoziativität: direkt, n-way, voll assoziativ
- Cache-Kohärenz: Konsistenz bei Multi-Core-Prozessoren
- Mapping: Direktabbildung, set-assoziativ, voll-assoziativ
- Cache-Blöcke: Blöckgröße beeinflusst Leistung
- Ersatzstrategien: LRU, FIFO, Random
- Schreibstrategien: Write-through, Write-back
Mehrkernprozessoren und Parallelverarbeitung
Definition:
Mehrere Rechenkerne in einer einzigen CPU, um mehrere Aufgaben gleichzeitig zu bearbeiten.
Details:
- Erhöhte Leistungsfähigkeit durch parallele Verarbeitung.
- Wichtige Konzepte: Lastverteilung, Synchronisation, Speicherzugriffskonflikte.
- Gesetz von Amdahl: \( S = \frac{1}{(1 - P) + \frac{P}{N}} \) beschreibt die Beschleunigung \( N \)-fach paralleler Ausführung, \( P \) paralleler Codeanteil.
- Verwendungszwecke: Wissenschaftliche Berechnungen, Datenbanken, Bild- und Videoverarbeitung.
Datenpfade und Durchsatzoptimierung
Definition:
Datenpfade und Durchsatzoptimierung zielen darauf ab, die Effizienz eines Rechners durch optimierte Datenbewegungen und parallele Verarbeitung zu maximieren.
Details:
- Datenpfad: Weg, den Daten innerhalb einer CPU nehmen.
- Einheiten: Register, ALUs, Speicher.
- Durchsatz: Menge der verarbeiteten Daten in einer bestimmten Zeit.
- Optimierung: Pipelining, Parallelismus, Speicherhierarchie.
- Pipelining: Mehrere Instruktionen gleichzeitig in verschiedenen Stufen verarbeiten.
- Parallelismus: Mehrere Operationen gleichzeitig ausführen (z.B. SIMD, MIMD).
- Speicherhierarchie: Cache, Hauptspeicher, Festplattenspeicher zur Reduktion der Zugriffszeiten.
- Bedeutung: Höherer Durchsatz = bessere Leistung.
Virtueller Speicher und Speicherverwaltung
Definition:
Virtueller Speicher: Methode der Speicherverwaltung, die dem Benutzer größere Speicherbereiche zur Verfügung stellt, als physisch vorhanden sind.
Details:
- Virtueller Speicher = Logischer Adressraum > Physischer Adressraum
- Paging: Aufteilung in gleich große Blöcke (Pages und Page Frames)
- Segmentation: Aufteilung in logische Segmente unterschiedlicher Größe
- Page Table: Verknüpfung logischer und physischer Adressen
- TLB (Translation Lookaside Buffer): Cache für schnelle Adressübersetzung
- Page Fault: Zugriff auf nicht im physischen Speicher befindliche Daten
- Speicherverwaltungstechniken: Demand Paging, Swapping
- Wichtige Formeln: Effektive Zugriffzeit (EAT) \[ EAT = (1-p) \times MA + p \times (PageFaultServiceTime + MA) \]
- Speicherschutz: Read/Write/Execute-Berechtigungen