vault backup: 2025-07-07 19:57:44
This commit is contained in:
160
Semester 6/COMARCH/Zusammenfassung/Vorlesung 8b.md
Normal file
160
Semester 6/COMARCH/Zusammenfassung/Vorlesung 8b.md
Normal 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)
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user