Masterprojekt Rechnerarchitektur - Cheatsheet
Pipeline-Design und -Optimierung
Definition:
Prozess zur Minimierung von Konflikten und Maximierung des Durchsatzes in Pipeline-Architekturen.
Details:
- Ziele: erhöhen der Instruktionsrate (throughput), Reduzieren der Latenz
- Branch Prediction: Vermeidung von Pipeline-Stalls durch Wahrscheinlichkeitsberechnung
- Hazard-Mitigation: Daten-, Steuer-, und strukturelle Hazards adressieren
- Datenweiterleitung (Forwarding/Bypassing): Direktes Weiterleiten der Ergebnisse anstatt auf Speicherzugriff zu warten
- Superskalare Ausführung: mehrere Instruktionen pro Taktzyklus ausführen
Multi-Core und Many-Core Prozessoren
Definition:
Multi-Core: Prozessor mit mehreren Rechenkernen, die parallel arbeiten; Many-Core: Prozessoren mit einer sehr großen Anzahl an Kernen für massive Parallelverarbeitung.
Details:
- Hardware: Mehrere unabhängige Kerne auf einem Chip
- Erhöhte Leistung und Effizienz durch parallele Verarbeitung
- Multi-Core: typischerweise 2-16 Kerne
- Many-Core: 10 bis hunderte Kerne
- Anwendungsgebiete: große Datenmengen, wissenschaftliche Berechnungen
- Herausforderungen: Thread-Verwaltung, Synchronisation, Speicherzugriffe
Leistungsmessinstrumente und -metriken
Definition:
Werkzeuge und Methoden zur Messung der Performance von Rechnerarchitekturen.
Details:
- Typische Metriken:
- Durchsatz (\textit{Throughput})
- Latenz (\textit{Latency})
- Zyklen pro Instruktion (CPI)
- Wichtige Instrumente:
- Profiler wie \textit{gprof}
- Tracing-Tools wie \textit{LTTng}
- Hardware-Performance-Counter
- Metriken zur Effizienzbewertung:
- FLOPS (Floating Point Operations Per Second)
- MIPS (Million Instructions Per Second)
Speicherhierarchien und Caches
Definition:
Speicherhierarchien minimieren Latenzen und steigern die Effizienz. Cache speichert häufig benötigte Daten nahe der CPU.
Details:
- Hierarchieebenen: Register, Cache (L1, L2, L3), Hauptspeicher, Sekundärspeicher
- Cache-Kohärenz: Wichtig in Multi-Core-Systemen
- Cache Mapping: Direkt, vollassoziativ, Satzassoziativ
- Cache Miss-Typen: Cold, Conflict, Capacity Miss
- Wichtige Formeln:
Inter-Prozessor-Kommunikation und Synchronisation
Definition:
Inter-Prozessor-Kommunikation und Synchronisation (IPC) ist essentiell für die Koordination und Datenübertragung zwischen mehreren Prozessoren in einem parallelen oder verteilten System.
Details:
- Mechanismen: Shared Memory, Message Passing
- Synchronisation: Methoden zur Vermeidung von Konflikten und zur Koordination der Ausführung (z.B. Semaphoren, Mutexes)
- Wichtige Protokolle: MPI (Message Passing Interface), OpenMP
- Kritische Abschnitte erfordern Sperren (Locks)
- Problem: Race Conditions
- Vermeidung von Deadlocks: Bedingungen/Strategien beachten
Co-Design-Methodologien
Definition:
Ansatz zur gleichzeitigen Entwicklung von Hardware und Software, um die Gesamtleistung und Effizienz zu optimieren.
Details:
- Optimierung des Zusammenspiels von Hardware und Software
- Iterativer Prozess zwischen Hardware- und Softwareentwicklung
- Verwendung von Modellierungen und Simulationen
- Fördert enge Zusammenarbeit verschiedener Teams
- Ziel: Leistung, Energieverbrauch und Kosten minimieren
Neuromorphe Rechnerarchitektur
Definition:
Neuromorphe Rechnerarchitektur emuliert die neuronale Struktur und Funktion des menschlichen Gehirns durch Hardwaredesign und spezielle Algorithmen.
Details:
- Basiert auf dem Konzept der Spiking Neural Networks (SNNs)
- Verwendet spezielle synaptische Knoten und Neuronen-Arrays
- Hochgradig parallel und energieeffizient
- Anwendungsbereiche: Mustererkennung, KI, Sensorik
- Beispiel: IBM TrueNorth, Intel Loihi
- Wichtige Parameter: Latenz, Durchsatz, Energieverbrauch
Benchmarking und Profiling
Definition:
Benchmarking vergleicht die Leistung verschiedener Systeme oder Komponenten unter kontrollierten Bedingungen. Profiling analysiert das Laufzeitverhalten eines Programms, um Engpässe und Optimierungsmöglichkeiten zu identifizieren.
Details:
- Benchmarking: Messung der Leistungsfähigkeit durch standardisierte Tests
- Profiling: Detaillierte Analyse des Programmablaufs und Ressourcennutzung
- Ziel: Leistungssteigerung und Effizienzverbesserung
- Tools: z.B. gprof, Valgrind, perf
- Wichtige Metriken: Laufzeit, Speicherauslastung, CPU-Nutzung
- Vermeidung von Flaschenhalsen und Leistungsproblemen