3.6 KiB
📘 Zusammenfassung: V8b Speicheranbindung – Computerarchitektur
🚨 Bottleneck: Speicher
-
CPU-Leistung steigt schneller als Speicherleistung → Memory Wall
-
Lösung: Speicherhierarchie
-
Nutzt das Prinzip der Lokalität
-
Zeitliche Lokalität: kürzlich verwendete Daten werden bald wieder benötigt
-
Räumliche Lokalität: benachbarte Daten werden bald benötigt
-
-
🏛 Speicherhierarchie
| Ebene | Beispiel | Größe | Geschwindigkeit |
|---|---|---|---|
| Register | CPU-Register | Bytes | ns |
| L1-Cache | SRAM | KB | ~1 ns |
| L2/L3-Cache | SRAM | MB | ~10 ns |
| Hauptspeicher | DRAM | GB | ~100 ns |
| Sekundärspeicher | SSD/HDD | TB | ms |
-
Hit: Zugriff erfolgreich in oberer Ebene
-
Miss: Daten müssen aus unterer Ebene geholt werden (Miss Penalty)
-
Miss Ratio = 1 – Hit Ratio
💾 Speichertechnologien
-
SRAM: schnell, teuer, klein → Caches
-
DRAM: langsamer, günstiger, groß → Hauptspeicher
- DDR, QDR: Transfers auf steigender & fallender Flanke
-
Flash (EEPROM): nicht-flüchtig, schneller als HDD, aber begrenzte Lebensdauer
-
NOR-Flash: Random Access, Embedded Systems
-
NAND-Flash: Blockweise Zugriff, USB, SSDs
-
-
Magnetische Platten (HDD): große Kapazität, langsamer Zugriff
📦 Cache-Grundlagen
📌 Organisation
-
Direct-Mapped Cache: 1 Block pro Adresse
-
Set-Associative Cache: mehrere mögliche Plätze pro Block
-
Fully-Associative Cache: jeder Block kann überall hin
📌 Komponenten
-
Tag: identifiziert Block
-
Valid-Bit: zeigt an, ob Block gültig ist
-
Replacement Policies:
-
LRU (Least Recently Used)
-
Random
-
📌 Schreibstrategien
-
Write-Through: gleichzeitiges Schreiben in Cache & Speicher
-
- Einfach
-
– Langsam, Lösung: Write Buffer
-
-
Write-Back: Schreiben nur bei Block-Verdrängung
-
- Schnell
-
– Komplexer (dirty-bit notwendig)
-
🏎 Cache-Performance
-
Miss Types:
-
Compulsory: erste Referenz
-
Capacity: Cache zu klein
-
Conflict: Set-Associative Caches
-
-
Formeln:
-
AMAT (Average Memory Access Time):
AMAT=HitTime+MissRate×MissPenaltyAMAT = HitTime + MissRate × MissPenalty
-
Effective CPI:
CPIeff=CPIbase+MemoryStallsCPI_{eff} = CPI_{base} + MemoryStalls
-
🔥 Optimierungen
🪜 Multilevel-Caches
-
L1: klein & schnell, Fokus auf kurze Zugriffszeit
-
L2/L3: größer, Fokus auf niedrige Missrate
📐 Cache Blocking (Beispiel DGEMM)
-
Matrix-Multiplikation optimiert durch Blockierung → bessere Cache-Nutzung
-
Vermeidet Cache-Pollution & reduziert Misses
#define BLOCKSIZE 32
for (sj = 0; sj < n; sj += BLOCKSIZE)
for (si = 0; si < n; si += BLOCKSIZE)
for (sk = 0; sk < n; sk += BLOCKSIZE)
do_block(n, si, sj, sk, A, B, C);
🚀 Software-Optimierung
- Compiler & Algorithmus-Anpassung nutzen Lokalität besser aus
📝 Für die Klausur merken
✅ Prinzip der Lokalität (zeitlich & räumlich)
✅ Speicherhierarchie & typische Zugriffszeiten
✅ Direct-Mapped vs. Set-Associative vs. Fully-Associative
✅ Write-Through vs. Write-Back + Vor- & Nachteile
✅ AMAT-Formel und Cache-Performance-Berechnungen
✅ Cache Blocking bei DGEMM (Grundidee)