Files
2025-07-07 19:57:44 +02:00

160 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 📘 **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
```c
#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)
---