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

3.6 KiB
Raw Permalink Blame History

📘 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)