Alle Tabs der Lerneinheit (Erklärung · Interaktiv verstehen · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).
Diese Lerneinheit wurde für typische Bachelor-Klausuren konzipiert. So prüfen wir · Fehler entdeckt? Melde ihn uns oder markiere die fragliche Stelle direkt im Text oben.
Alle Tabs der Lerneinheit (Erklärung · Interaktiv verstehen · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).
Warum ist dein RAM riesig, aber die CPU trotzdem schnell? Weil zwischen CPU und RAM kleine, blitzschnelle Caches sitzen. Die Speicher-Hierarchie täuscht der CPU einen Speicher vor, der so schnell wie der Cache und so groß wie die Festplatte ist. Klausurpflicht in 6/8 Rechnerarchitektur-Modulen, oft mit Cache-Mapping- und AMAT-Rechnungen.
Klausur-Tipp: Greife zweimal auf dieselbe Adresse zu (erst Miss, dann Hit = zeitliche Lokalität). Probiere dann zwei Adressen mit gleichem Index, aber anderem Tag, sie verdrängen sich gegenseitig (Conflict-Miss). Übe das Zerlegen einer Adresse in Tag/Index/Offset.
Anmelden, um den Fortschritt zu speichern.
Nächster Schritt
Aktives Abrufen festigt Wissen schneller als nochmal lesen.
Warum ist dein RAM riesig, aber die CPU trotzdem schnell? Weil zwischen CPU und RAM kleine, blitzschnelle Caches sitzen. Die Speicher-Hierarchie täuscht der CPU einen Speicher vor, der so schnell wie der Cache und so groß wie die Festplatte ist. Klausurpflicht in 6/8 Rechnerarchitektur-Modulen, oft mit Cache-Mapping- und AMAT-Rechnungen.
CPUs sind viel schneller als der Hauptspeicher. Eine CPU mit 3 GHz macht einen Takt in ~0,3 ns, ein RAM-Zugriff dauert aber ~100 ns. Ohne Tricks würde die CPU hunderte Takte auf jeden Speicherzugriff warten (Von-Neumann-Flaschenhals).
| Ebene | Latenz | Größe | Eigenschaft |
|---|---|---|---|
| Register | < 1 ns | ~1 KB | in der CPU, am schnellsten |
| L1-Cache | ~1 ns | 32-64 KB | pro Kern |
| L2-Cache | ~4 ns | 256 KB-1 MB | pro Kern |
| L3-Cache | ~10-40 ns | 8-32 MB | geteilt |
| Hauptspeicher (RAM) | ~100 ns | 8-32 GB | flüchtig |
| SSD | ~50-150 µs | 256 GB-2 TB | persistent |
| Festplatte (HDD) | ~5-10 ms | 1-8 TB | persistent, billig |
Faustregel: nach oben schneller, kleiner, teurer pro Byte. Nach unten langsamer, größer, billiger.
Programme greifen nicht zufällig auf den Speicher zu, sondern lokal:
AMAT = Trefferzeit + Miss-Rate × Miss-Strafe
(Average Memory Access Time, mittlere Speicherzugriffszeit.) Beispiel: Trefferzeit 1 ns, Miss-Rate 5 %, Miss-Strafe 100 ns → AMAT = 1 + 0,05 × 100 = 6 ns.
Die Speicheradresse wird zerlegt:
Adresse = Tag | Index | Offset
| Mapping | Block kann liegen in... | Eigenschaft |
|---|---|---|
| Direct-Mapped | genau EINER Zeile (Index) | einfach, schnell, viele Konflikte |
| Voll-assoziativ | JEDER Zeile | flexibel, teuer (alle Tags vergleichen) |
| n-fach satz-assoziativ | einer von n Zeilen pro Satz | Kompromiss (üblich: 4-/8-fach) |
| Typ | Ursache |
|---|---|
| Compulsory (Cold) Miss | erster Zugriff auf einen Block (Cache noch leer) |
| Capacity Miss | Cache zu klein für alle aktiven Daten |
| Conflict Miss | mehrere Blöcke konkurrieren um denselben Index (nur bei Direct/Satz-assoziativ) |
1. Hierarchie: nach oben schnell/klein/teuer, nach unten langsam/groß/billig.
2. Lokalität: zeitlich (wieder) + räumlich (benachbart). Caches leben davon.
3. Adresse = Tag | Index | Offset. Offset = log₂(Blockgröße), Index = log₂(Sätze).
4. AMAT = Trefferzeit + Miss-Rate × Miss-Strafe.
5. 3 Mapping-Arten: Direct-Mapped, voll-assoziativ, n-fach satz-assoziativ.
6. 3 C's: Compulsory, Capacity, Conflict.
1. Tag und Index vertauschen. Der Index sind die MITTLEREN Bits (wählt die Zeile), der Tag die OBEREN (identifiziert den Block), der Offset die UNTEREN.
2. Register als Teil des RAM sehen. Register sind in der CPU, ganz oben in der Hierarchie, nicht im Hauptspeicher.
3. Conflict-Miss bei voll-assoziativem Cache. Conflict-Misses gibt es nur bei Direct-Mapped oder satz-assoziativ, nicht bei voll-assoziativ (dort nur Compulsory + Capacity).
4. Hit-Rate mit Miss-Rate verwechseln. Miss-Rate = 1 − Hit-Rate. Bei 95 % Hit-Rate ist die Miss-Rate 5 %.
5. Cache lädt einzelne Bytes. Nein, der Cache lädt immer ganze Blöcke (Cache-Lines), das nutzt die räumliche Lokalität.
6. SSD und Cache verwechseln. Die SSD ist persistenter Massenspeicher unten in der Hierarchie, der Cache ist flüchtiger SRAM oben in der CPU.
Erkunde im ersten Tab die Speicher-Pyramide mit Latenz und Größe pro Ebene. Im zweiten Tab steuerst du einen Direct-Mapped-Cache: wähle eine Adresse, sieh ihre Zerlegung in Tag, Index und Offset, und löse mit "Zugriff" einen Hit oder Miss aus. Die Hit-Rate wird live mitgezählt.
Interaktive Visualisierung
Interaktive Komponente: probiere sie im Topic-Player oben aus.
Klausur-Tipp: Greife zweimal auf dieselbe Adresse zu (erst Miss, dann Hit = zeitliche Lokalität). Probiere dann zwei Adressen mit gleichem Index, aber anderem Tag, sie verdrängen sich gegenseitig (Conflict-Miss). Übe das Zerlegen einer Adresse in Tag/Index/Offset.
6 Aufgaben zu Hierarchie, Lokalität und Cache.
Klausurfragen mit Lösungen (6)
Antwort: Je weiter oben, desto schneller, kleiner und teurer pro Byte
Erklärung: In der Speicher-Hierarchie gilt: nach oben (Register, Cache) schneller, kleiner und teurer pro Byte; nach unten (RAM, SSD, HDD) langsamer, größer und billiger. Der L1-Cache (~1 ns) ist viel schneller als RAM (~100 ns). Klausur-Grundprinzip.
Antwort: Die gesuchten Daten liegen bereits im Cache
Erklärung: Ein Cache-Hit bedeutet, dass die gesuchten Daten bereits im Cache liegen, der Zugriff ist schnell. Ein Miss bedeutet, die Daten fehlen und müssen aus der nächsten (langsameren) Ebene nachgeladen werden. Die Hit-Rate ist der Anteil der Treffer. Klausur-Grundbegriff.
Zuordnungen:
Erklärung: Die Adresse wird zerlegt: Offset (untere Bits) = Byte im Block, Index (mittlere Bits) = Cache-Zeile/Satz, Tag (obere Bits) = Block-Identifikation. Das Valid-Bit sagt, ob die Zeile überhaupt gültige Daten hat. Klausur-Pflicht-Zuordnung.
Typ: Zuordnung
Antwort: 3
Erklärung: Index-Bits = log₂(Anzahl Zeilen) = log₂(8) = 3. Mit 3 Bits adressiert man genau 8 Cache-Zeilen (000 bis 111). Bei 16 Zeilen wären es 4 Index-Bits. Klausur-Rechenregel.
Antwort: Wahr
Erklärung: RICHTIG. Der Cache lädt bei einem Miss immer eine ganze Cache-Line (z.B. 64 Byte), nicht nur das eine angeforderte Byte. Das nutzt die räumliche Lokalität: benachbarte Daten werden wahrscheinlich bald gebraucht und sind dann schon da. Klausur-Konzept.
Typ: Wahr/Falsch
Antwort: 22 ns
Erklärung: AMAT = Trefferzeit + Miss-Rate × Miss-Strafe = 2 + 0,10 × 200 = 2 + 20 = 22 ns. Die Miss-Strafe wird mit der Miss-Rate gewichtet und auf die Trefferzeit addiert. Schon 10 % Misses verzehnfachen die Zugriffszeit hier. Klausur-Rechenaufgabe.
6 Klausur-Fragen zu Cache-Mapping, Miss-Typen und Lokalität.
Klausurfragen mit Lösungen (6)
Antwort: Zeitliche und räumliche Lokalität
Erklärung: Caches nutzen zeitliche Lokalität (kürzlich genutzte Daten werden bald wieder gebraucht, z.B. Schleifenvariablen) und räumliche Lokalität (benachbarte Daten werden bald gebraucht, z.B. Array-Elemente). Ohne Lokalität wären Caches nutzlos. Klausur-Pflichtwissen.
Antwort: Voll-assoziativ
Erklärung: Beim voll-assoziativen Cache kann ein Block in JEDER Zeile liegen, das ist am flexibelsten (keine Conflict-Misses), aber teuer, weil beim Suchen alle Tags parallel verglichen werden müssen. Direct-Mapped erlaubt nur eine Zeile, satz-assoziativ einen von n Plätzen pro Satz. Klausur-Vergleich.
Zuordnungen:
Erklärung: Die 3 C's: Compulsory (erster, unvermeidbarer Zugriff), Capacity (Cache zu klein), Conflict (Index-Kollision bei Direct/Satz-assoziativ). Write-Back ist dagegen eine Schreibstrategie (erst beim Verdrängen in den RAM, markiert per Dirty-Bit). Klausur-Pflicht-Zuordnung.
Typ: Zuordnung
Antwort: Offset 4, Index 8
Erklärung: Offset-Bits = log₂(Blockgröße) = log₂(16) = 4. Index-Bits = log₂(Zeilen) = log₂(256) = 8. Der Tag bekommt den Rest: 32 − 4 − 8 = 20 Bits. Vorgehen: erst Offset (Blockgröße), dann Index (Zeilen), Tag ist der Rest. Klausur-Rechenaufgabe.
Antwort: Wahr
Erklärung: RICHTIG. Conflict-Misses entstehen, wenn mehrere Blöcke um denselben Index konkurrieren, das gibt es nur bei Direct-Mapped oder satz-assoziativ. Im voll-assoziativen Cache kann jeder Block überall liegen, also keine Index-Konflikte, nur Compulsory- und Capacity-Misses. Klausur-Stolperstein.
Typ: Wahr/Falsch
Antwort: Größere Blöcke nutzen mehr räumliche Lokalität, aber zu große Blöcke verdrängen nützliche Daten und erhöhen die Miss-Strafe
Erklärung: Größere Blöcke nutzen anfangs mehr räumliche Lokalität (mehr benachbarte Daten vorgeladen → bessere Hit-Rate). Werden Blöcke zu groß, passen weniger in den Cache, nützliche Daten werden verdrängt (mehr Capacity/Conflict-Misses) und die Miss-Strafe steigt (mehr nachzuladen). Es gibt ein Optimum. Klausur-Transferfrage.