vault backup: 2025-07-07 19:57:44

This commit is contained in:
fzzinchemical
2025-07-07 19:57:44 +02:00
parent 1638e96536
commit ed7da1341b
14 changed files with 1982 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
## 📘 **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)
---