
Cache-Miss
Ein Cache-Miss tritt auf, wenn ein Computer Daten in seinem schnellen Zwischenspeicher sucht, sie dort aber nicht findet. Er muss die Daten dann aus einem langsameren Speicher holen, was den Vorgang spürbar verzögert.
Ein Computer speichert Daten an verschiedenen Orten. Manche davon sind sehr schnell, aber klein und teuer. Andere sind groß und billig, dafür langsam. Damit ein Rechner nicht ständig auf den langsamen Speicher warten muss, legt er häufig benötigte Daten in einem kleinen Zwischenspeicher ab. Dieser Zwischenspeicher heißt Cache. Findet der Rechner dort, was er sucht, spricht man von einem Treffer. Findet er es nicht, ist das ein Cache-Miss: die Daten müssen aus dem langsameren Speicher nachgeladen werden.
Warum ein einziger Fehlzugriff so viel Zeit kostet
Die Größenordnungen sind extrem unterschiedlich. Ein Zugriff auf den schnellsten Cache eines Prozessors dauert wenige Milliardstel Sekunden. Ein Zugriff auf den Hauptspeicher dauert oft hundertmal länger. Muss der Rechner sogar auf eine Festplatte zugreifen, wird es noch einmal deutlich langsamer. Ein einzelner Miss klingt harmlos. Millionen davon pro Sekunde entscheiden über die gefühlte Geschwindigkeit eines Programms.
Deshalb misst man in der Praxis die sogenannte Miss-Rate. Sie gibt an, welcher Anteil aller Zugriffe danebengeht. Bei gut geschriebener Software liegt sie oft unter fünf Prozent. Steigt sie auf zwanzig oder dreißig Prozent, wird das Programm spürbar träge, obwohl der Prozessor selbst gar nicht ausgelastet ist. Er wartet einfach die meiste Zeit auf Daten.
Ein verbreiteter Irrtum ist, dass mehr Cache das Problem immer löst. Das stimmt nur teilweise. Wenn ein Programm wild über riesige Datenmengen springt, hilft auch ein größerer Zwischenspeicher wenig. Wichtiger ist meist, wie die Daten angeordnet sind und in welcher Reihenfolge das Programm sie abruft.
Wodurch Misses entstehen
Man unterscheidet grob drei Ursachen. Erstens: Daten werden zum allerersten Mal angefordert und konnten noch gar nicht im Cache liegen. Zweitens: Der Cache ist voll, ältere Einträge wurden hinausgeworfen und werden nun erneut gebraucht. Drittens: Zwei Datenblöcke konkurrieren um denselben Platz im Cache und verdrängen sich gegenseitig, obwohl anderswo noch Raum wäre.
Man kann sich das wie einen Schreibtisch neben einem großen Archiv vorstellen. Auf dem Schreibtisch liegen die Unterlagen, die man gerade braucht. Ist eine Akte nicht da, muss man ins Archiv laufen. Weil der Weg lang ist, holt man nicht ein einzelnes Blatt, sondern gleich den ganzen Ordner. Genauso lädt ein Prozessor bei einem Miss nicht ein einzelnes Byte, sondern einen ganzen Block benachbarter Daten.
Daraus folgt eine wichtige Regel für Programmierer: Daten, die zusammen gebraucht werden, sollten auch nah beieinander liegen. Zusätzlich versuchen moderne Prozessoren vorherzusagen, welche Daten als Nächstes gebraucht werden, und laden sie vorsorglich. Dieses Vorabladen senkt die Miss-Rate deutlich, funktioniert aber nur bei halbwegs regelmäßigen Zugriffsmustern.
Caches in KI-Systemen und im Web
Das Prinzip gilt weit über Prozessoren hinaus. Ein Browser speichert Bilder und Schriftarten besuchter Seiten zwischen. Beim zweiten Besuch lädt die Seite schneller, weil vieles schon vorhanden ist. Nach dem Leeren des Browser-Caches ist jeder Zugriff ein Miss, und alles wirkt kurzzeitig langsam.
Bei Sprachmodellen taucht der Begriff besonders häufig auf. Wenn ein Chatbot antwortet, speichert er Zwischenergebnisse zum bisherigen Gesprächsverlauf. Diesen Speicher nennt man KV-Cache. Wiederholt sich der Anfang einer Anfrage, kann das System darauf zurückgreifen und spart Rechenzeit. Anbieter berechnen solche wiederverwendeten Anteile deshalb oft günstiger als frisch berechnete.
In Firmenmeldungen und Quartalszahlen begegnet einem das Thema indirekt. Wenn von Optimierung der Betriebskosten bei KI-Diensten die Rede ist, geht es häufig genau darum: möglichst viele Anfragen aus dem Zwischenspeicher bedienen statt neu zu rechnen. Jeder vermiedene Miss ist gesparte Energie und gesparte Hardwarezeit.