Untitled Deck Flashcards
Was ist der Unterschied zwischen VIPT und PIPT Caches und warum werden sie in verschiedenen Cache-Leveln verwendet? (02_Cache_03)
VIPT (Virtually Indexed, Physically Tagged):
- Verwendet virtuelle Adresse für Index, physische für Tag
- Schneller, da parallel zur Adressübersetzung
- Genutzt in L1 Cache wegen Geschwindigkeit
PIPT (Physically Indexed, Physically Tagged):
- Verwendet physische Adresse für beides
- Vermeidet Aliasing-Probleme
- Genutzt in L2/L3 Cache wegen Sicherheit
Nennen Sie die drei Hauptgründe, warum Prozessorhersteller sich von SMT (Simultaneous Multithreading) abwenden? (02_Cache_03)
- Erhöhte Sicherheitsrisiken durch geteilte Ressourcen
- Alternative Technologien bieten ähnliche Performance-Vorteile bei besserer Sicherheit
- Zu hohe Komplexität bei der Implementierung und Validierung von Sicherheitsmechanismen
Erklären Sie die Funktionsweise des 2-Bit Saturating Counters in der Branch Prediction Unit? (02_Cache_03)
- Vier Zustände:
- strongly not taken (00)
- weakly not taken (01)
- weakly taken (10)
- strongly taken (11)
- Bei korrekter Vorhersage Bewegung zum stärkeren Zustand
- Bei Fehlvorhersage Bewegung zum schwächeren/gegenteiligen Zustand
- Bietet Schutz gegen einzelne Fehlvorhersagen
Beschreiben Sie die Struktur und Funktion des Last Level Cache (LLC) in modernen Intel-Prozessoren? (02_Cache_03)
- Gemeinsamer L3-Cache für alle CPU-Kerne
- In Slices aufgeteilt, die über Ringbus verbunden sind
- Physisch indiziert und getagged
- Inklusiv (enthält L1/L2 Cache-Inhalte)
- Complex L3-Addressing Function für Slice-Zuordnung
- Unterschiedliche Zugriffszeiten je nach Slice-Lokalität
Was sind die wichtigsten Eigenschaften von Translation Lookaside Buffern (TLBs) und wie unterscheiden sie sich in den verschiedenen Cache-Ebenen? (02_Cache_03)
- iTLB (Instruction TLB): Pro logischem Kern
- dTLB (Data TLB): Pro physischem Kern
- sTLB (Second Level TLB): Pro physischem Kern
- Alle sind VIVT (virtuell indiziert, virtuell getagged)
- Invalidierung bei Prozesswechsel
- Komplexe Adressierungsfunktion (XOR-7 bei Intel)
Welche Arten von Prefetching gibt es und wie können sie für Seitenkanal-Angriffe ausgenutzt werden? (02_Cache_03)
Prefetch-Befehle:
- PREFETCHT0: Alle Cache-Level
- PREFETCHT1: L2 und höher
- PREFETCHT2: L3 und höher
- PREFETCHNTA: Non-temporal Cache
Angriffsmöglichkeiten:
- Keine Exception bei ungültigen Adressen
- Timing abhängig von Cache-Status
- Vorhersagbare Ladezeiten bei nicht-gecachten Pages
Wie funktioniert die Branch Prediction Unit und welche Komponenten sind daran beteiligt? (02_Cache_03)
Komponenten:
1. Branch Target Buffer (BTB):
- Speichert Sprungziele
- Indiziert über virtuelle Adressen
- Pattern History Table (PHT):
- Speichert Verlauf von Sprungentscheidungen
- Verwendet 2-Bit Saturating Counter
- Global History Register (GHR):
- LIFO für globale Sprunghistorie
- Beeinflusst Vorhersagegenauigkeit
Wie wird die Complex L3-Addressing Function für Sicherheitsanalysen verwendet und warum ist sie wichtig? (02_Cache_03)
Bedeutung:
- Bestimmt Verteilung von Cache-Lines auf LLC-Slices
- Ermöglicht gezieltere Prime+Probe Angriffe
- Erlaubt Optimierung von Eviction Sets
- Wichtig für Core-spezifische Timing-Angriffe
Verwendung:
- Rekonstruktion für Intel CPUs mit 2^n Kernen möglich
- Hilft bei der Minimierung von Eviction Sets
- Ermöglicht präzisere Cache-Angriffe
Was sind die Hauptunterschiede zwischen verschiedenen Cache-Arten (VIVT, VIPT, PIPT) und wo werden sie eingesetzt? (02_Cache_03)
VIVT (Virtual Index Virtual Tag):
- Komplett virtuelle Adressierung
- Schnell aber anfällig für Aliasing
- In TLBs verwendet
VIPT (Virtual Index Physical Tag):
- Gemischte Adressierung
- Guter Kompromiss
- In L1 Caches
PIPT (Physical Index Physical Tag):
- Komplett physische Adressierung
- Sicher aber langsamer
- In L2/L3 Caches
Erklären Sie die Rolle und Bedeutung des Process Context Identifiers (PCID) bei TLB-Einträgen? (02_Cache_03)
- PCIDs markieren TLB-Einträge für bestimmte Prozesse
- Einträge bleiben bei Kontextwechsel erhalten
- Ermöglicht effizientes Sharing zwischen Prozessen
- Reduziert TLB-Misses bei häufigen Kontextwechseln
- Wichtig für Performance vs. Sicherheits-Tradeoff
Wie funktioniert der Ringbus im LLC und welche Auswirkungen hat er auf Cache-Zugriffszeiten? (02_Cache_03)
- Verbindet alle LLC-Slices miteinander
- Unterschiedliche Zugriffszeiten je nach Distanz
- Zugriff auf entfernte Slices dauert länger
- Latenz abhängig von:
- Anzahl der Hops
- Busauslastung
- Slice-Position
- Kann für Timing-Angriffe ausgenutzt werden
Welche Rolle spielt das Global History Register bei modernen Branch Prediction Implementierungen? (02_Cache_03)
- Speichert Historie der letzten Sprungentscheidungen
- LIFO-Struktur für effiziente Aktualisierung
- Wird mit Adressbits XOR-verknüpft (Gshare)
- Länge beeinflusst Vorhersagegenauigkeit
- Wichtig für Pattern-basierte Vorhersagen
- Kann für Branch-Prediction-Angriffe genutzt werden
Beschreiben Sie den Unterschied zwischen inklusiven und exklusiven Caches und deren Bedeutung für Seitenkanal-Angriffe? (02_Cache_03)
Inklusiver Cache (Intel LLC):
- Enthält alle Daten der niedrigeren Cache-Level
- Ermöglicht Cross-Core-Angriffe
- Vereinfacht Flush+Reload
Exklusiver Cache:
- Speichert nur unique Daten
- Erschwert manche Angriffe
- Bessere Speichernutzung
Wie wird die Cache-Slice-Auswahl bei modernen Intel-Prozessoren implementiert und warum ist das relevant für Angriffe? (02_Cache_03)
- Complex L3-Addressing Function bestimmt Slice
- Basiert auf physischer Adresse
- Nicht-öffentliche Hash-Funktion
- Gleichmäßige Verteilung auf Slices
- Wichtig für:
- Eviction-Set-Konstruktion
- Cross-Core-Angriffe
- Performance-Optimierung
Welche Rolle spielt Simultaneous Multithreading bei der Cache-Nutzung und welche Sicherheitsimplikationen hat dies? (02_Cache_03)
- Teilung der Execution Units zwischen Threads
- Gemeinsame Nutzung von:
- L1 Cache
- Branch Predictor
- TLBs
- Ermöglicht Cross-Thread-Angriffe
- Erhöht Cache-Contention
- Macht Timing-Angriffe einfacher