Wenn eine Webseite beim zweiten Öffnen schneller da ist oder ein Spiel nach dem ersten Laden flüssiger läuft, arbeitet oft ein Cache im Hintergrund. Du siehst ihn meistens nicht, aber er entscheidet mit darüber, ob ein Computer schnell reagiert oder warten muss.
In dieser Erklärung lernst du, was ein Cache-Speicher ist, warum er trotz kleiner Größe so nützlich ist und woran du typische Cache-Probleme erkennst.
- Ich kann erklären, warum ein Cache zwischen einem schnellen und einem langsameren Speicher liegt.
- Ich kann Cache Hit und Cache Miss unterscheiden.
- Ich kann beschreiben, warum zeitliche und räumliche Lokalität Caches wirksam machen.
- Ich kann Beispiele für Hardware-Caches und Software-Caches nennen.
- Ich kann einschätzen, wann Cache-Daten veraltet sein können und wann Leeren oder Aktualisieren hilft.
- Ich kann Write-Through und Write-Back als zwei Schreibstrategien unterscheiden.
Warum ein Cache überhaupt gebraucht wird
Computer haben ein Tempo-Problem: Nicht alle Speicher sind gleich schnell. Ein Prozessor kann sehr schnell rechnen, aber Daten aus dem Hauptspeicher, von einer SSD oder aus dem Internet kommen langsamer an. Ohne Hilfe müsste die schnelle Stelle immer wieder auf die langsamere Stelle warten.
Cache-Speicher
Ein Cache-Speicher ist ein schneller Zwischenspeicher. Er hält Kopien von Daten bereit, die wahrscheinlich bald wieder gebraucht werden. Dadurch muss das System nicht jedes Mal den langsameren Ursprungsspeicher fragen.
Der Cache ersetzt die ursprüngliche Datenquelle nicht dauerhaft. Er speichert nur ausgewählte Kopien. Die eigentlichen Daten liegen weiterhin zum Beispiel im Arbeitsspeicher, auf einer Festplatte, auf einem Server oder in einer Datenbank.
Du öffnest eine Webseite mit einem großen Logo.
- Beim ersten Besuch lädt der Browser das Logo aus dem Internet.
- Der Browser legt eine Kopie im Browser-Cache ab.
- Beim nächsten Besuch nimmt er die Kopie direkt vom Gerät.
- Die Seite erscheint schneller, weil nicht alles erneut übertragen werden muss.
Der Cache spart hier Zeit und Netzwerkverkehr. Er ist aber nur nützlich, solange die Kopie noch zur Webseite passt.
Ein Cache ist wie ein sehr schneller Notizzettel neben einem dicken Ordner: Er hilft nur, wenn darauf genau das steht, was du gerade brauchst.
Interaktive Quizfrage wird geladen ...
Cache Hit und Cache Miss
Ob ein Cache hilft, merkst du an einer einfachen Frage: Liegen die gesuchten Daten bereits im Cache?
Cache Hit
Ein Cache Hit liegt vor, wenn die angefragten Daten im Cache gefunden werden. Das System kann sie schnell aus dem Cache liefern.
Cache Miss
Ein Cache Miss liegt vor, wenn die angefragten Daten nicht im Cache liegen. Dann muss das System die Daten aus dem langsameren Ursprungsspeicher holen.
Je mehr Anfragen der Cache beantworten kann, desto nützlicher ist er. Deshalb misst man oft die Trefferquote, also den Anteil der Cache Hits an allen Zugriffen.
Ein Programm fragt 100-mal Daten ab. 80-mal liegen die Daten im Cache, 20-mal nicht.
- Cache Hits: 80
- Cache Misses: 20
- Trefferquote: \(80\) von \(100\)
- Als Dezimalzahl: \(0{,}8\)
- Als Prozentwert: \(80\%\)
Diese Schreibweisen meinen dieselbe Trefferquote: \(80\) von \(100 = 0{,}8 = 80\%\). In vier von fünf Fällen kann der Cache schnell antworten.
Interaktives Diagramm wird geladen ...
Ein Cache Miss ist nicht automatisch ein Fehler. Beim ersten Zugriff auf neue Daten kann der Cache sie noch gar nicht kennen. Langsam wird es erst, wenn Misses sehr häufig auftreten.
Interaktiver Lückentext wird geladen ...
Warum kleine Caches trotzdem viel bringen
Ein Cache ist oft viel kleiner als der Speicher dahinter. Trotzdem kann er stark beschleunigen. Der Grund liegt darin, wie Programme und Menschen Daten meistens nutzen.
Zeitliche Lokalität
Zeitliche Lokalität bedeutet: Was gerade benutzt wurde, wird wahrscheinlich bald wieder benutzt. Beispiele sind Schleifen, geöffnete Webseiten oder wiederholte Zugriffe auf dieselbe Datei.
Räumliche Lokalität
Räumliche Lokalität bedeutet: Wenn eine Speicherstelle gebraucht wird, werden oft auch nahegelegene Speicherstellen gebraucht. Beispiele sind aufeinanderfolgende Programmbefehle oder benachbarte Werte in einer Liste.
Caches nutzen diese Muster aus. Sie behalten kürzlich verwendete Daten und laden manchmal gleich benachbarte Daten mit. So steigt die Chance, dass der nächste Zugriff ein Hit wird.
Ein Programm verarbeitet eine Liste mit Zahlen:
[12, 14, 15, 19, 23, 24]
- Das Programm liest zuerst die Zahl
12. - Der Cache holt nicht nur diese eine Zahl, sondern einen ganzen kleinen Block aus dem Speicher.
- Die nächsten Zahlen liegen direkt daneben.
- Beim Lesen von
14und15kann der Cache wahrscheinlich schneller liefern.
Das ist räumliche Lokalität. Wenn die Liste in einer Schleife mehrfach durchlaufen wird, kommt zeitliche Lokalität dazu.
Caches sind erfolgreich, weil Zugriffe selten völlig zufällig sind. Programme wiederholen Dinge und arbeiten oft in Nachbarschaften.
Interaktive Quizfrage wird geladen ...
Cache im Prozessor
In der Rechnerarchitektur liegt ein wichtiger Cache direkt am Prozessor. Der Prozessor rechnet extrem schnell. Der Arbeitsspeicher ist viel größer, aber im Vergleich langsamer. Der CPU-Cache überbrückt diesen Abstand.
CPU-Cache
Ein CPU-Cache ist ein schneller Hardware-Cache in oder nahe am Prozessor. Er speichert Kopien von Speicherbereichen, damit Befehle und Daten schneller beim Prozessor ankommen.
Moderne Prozessoren haben meist mehrere Cache-Ebenen. Eine kleinere Ebene ist näher am Rechenkern und sehr schnell. Eine größere Ebene ist etwas langsamer, aber kann mehr Daten halten.
Ein Prozessor sucht einen benötigten Wert.
- Er prüft zuerst den sehr schnellen L1-Cache.
- Ist der Wert dort nicht vorhanden, prüft er den größeren L2-Cache.
- Danach kann ein L3-Cache folgen.
- Erst wenn keine Cache-Ebene trifft, wird der Arbeitsspeicher angefragt.
Die Idee ist: Das schnellste Regal wird zuerst durchsucht. Nur wenn dort nichts liegt, geht die Suche weiter nach außen.
Cache-Line
Eine Cache-Line ist die kleinste Datenmenge, die ein CPU-Cache typischerweise als zusammengehörigen Block verwaltet. Bei einem Nachladen aus dem Hauptspeicher wird die ganze Cache-Line geladen, auch wenn das Programm gerade nur einen Teil davon braucht.
Cache-Lines passen gut zur räumlichen Lokalität. Wenn das Programm nacheinander Speicherstellen liest, liegen die nächsten Daten mit etwas Glück schon in derselben Cache-Line.
Beim CPU-Cache gilt: näher am Prozessor heißt schneller, aber meistens auch kleiner.
Interaktive Lernkarten wird geladen ...
Interaktive Quizfrage wird geladen ...
Schreiben, Aktualität und Cache leeren
Bisher ging es vor allem um Lesen. Beim Schreiben wird es kniffliger: Was passiert, wenn eine Kopie im Cache geändert wird? Dann muss irgendwann auch der Ursprungsspeicher den richtigen Stand haben.
Write-Through
Bei Write-Through wird eine Änderung sofort in den Cache und zusätzlich in den Ursprungsspeicher geschrieben. Das hält die Daten leicht aktuell, kann aber langsamer sein.
Write-Back
Bei Write-Back wird eine Änderung zunächst nur im Cache gespeichert. Der Ursprungsspeicher wird später aktualisiert. Das kann schneller sein, braucht aber genaue Verwaltung.
Wenn mehrere Stellen dieselben Daten nutzen, muss klar sein, welche Version gültig ist. Sonst kann ein Gerät oder Programm mit einer veralteten Kopie arbeiten.
Eine Webseite ändert ihr Bild von logo-alt.png zu logo-neu.png.
- Dein Browser hat noch die alte Bilddatei im Cache.
- Die Webseite fordert eigentlich das neue Bild an.
- Wenn der Browser die Änderung nicht erkennt, zeigt er weiter das alte Bild.
- Ein Neuladen ohne Cache oder das Leeren des Browser-Caches zwingt ihn, die aktuelle Datei neu zu holen.
Das Leeren ist also kein Beschleunigungszauber. Es hilft vor allem, wenn veraltete oder fehlerhafte Kopien stören. Danach müssen viele Dateien aber neu geladen werden; manche Seiten können kurz langsamer sein oder verlangen eine neue Anmeldung.
Browser-Caches speichern oft Bilder, Skripte und Stylesheets. App-Caches speichern zum Beispiel Vorschaubilder, Kartendaten oder bereits berechnete Ergebnisse. In beiden Fällen gilt: Der Cache soll wiederholte Arbeit vermeiden.
Cache-Daten müssen gültig sein. Eine schnelle falsche Antwort ist schlechter als eine etwas langsamere richtige Antwort.
Interaktive Quizfrage wird geladen ...
Prüfungsmodus
In Aufgaben geht es selten nur um die Definition. Du sollst oft erkennen, ob ein Cache in einer Situation wirklich hilft, wo ein Miss entsteht oder warum Daten plötzlich veraltet wirken.
Aufgabe: Ein Videoplayer lädt jede Sekunde einen komplett neuen Live-Stream-Abschnitt, der nie wieder gebraucht wird. Beschleunigt ein Cache das stark?
Lösung:
- Die Daten werden nicht wiederholt verwendet.
- Zeitliche Lokalität ist kaum vorhanden.
- Räumliche Lokalität kann beim blockweisen Lesen noch etwas helfen.
- Ein großer Geschwindigkeitsgewinn durch Wiederverwendung ist aber nicht zu erwarten.
Begründung: Caches helfen besonders bei Wiederholung oder Nachbarschaft. Ständig neue, nie wieder genutzte Daten passen schlecht dazu.
Finde den Fehler: "Je größer der Cache ist, desto schneller ist er immer."
Korrektur:
- Ein größerer Cache kann mehr Daten halten.
- Er ist aber technisch oft langsamer oder teurer als ein kleiner Cache.
- Deshalb nutzt man mehrere Ebenen: klein und sehr schnell nahe am Prozessor, größer und etwas langsamer weiter außen.
- Entscheidend ist nicht nur Größe, sondern auch Trefferquote und Zugriffszeit.
Interaktive Quizfrage wird geladen ...
Interaktiver Lückentext wird geladen ...
Alles auf einen Blick
Interaktive Mindmap wird geladen ...
Interaktive Lernkarten wird geladen ...
Abschluss-Check
Interaktive Quizfrage wird geladen ...
Zusammenfassung
Ein Cache-Speicher ist ein schneller Zwischenspeicher für Kopien von Daten. Er beschleunigt Zugriffe, wenn Daten wiederholt oder in der Nähe bereits geladener Daten gebraucht werden.
Die wichtigsten Begriffe sind Cache Hit, Cache Miss und Trefferquote. Ein Hit spart Zeit, ein Miss führt zum Nachladen aus einer langsameren Quelle.
In der CPU arbeitet der Cache oft in mehreren Ebenen und mit Cache-Lines. In Browsern und Apps speichert er Dateien oder Ergebnisse, damit sie nicht ständig neu geladen oder berechnet werden müssen.
Ein Cache muss aber aktuell bleiben. Wenn alte Kopien stören, kann Aktualisieren oder Cache leeren sinnvoll sein. Die Grundfrage lautet immer: Ist die schnelle Kopie noch die richtige Kopie?
Mit Google fortfahren