Ein Cache ist ein kleiner, besonders schneller Zwischenspeicher zwischen zwei unterschiedlich schnellen Komponenten eines Rechensystems – meist zwischen dem schnellen Prozessor und dem deutlich langsameren Arbeitsspeicher.
Ein Prozessor kann Daten viel schneller verarbeiten, als der Arbeitsspeicher sie liefern kann. Der Cache überbrückt diesen Geschwindigkeitsunterschied, indem er gerade benötigte oder häufig verwendete Daten zwischenspeichert, sodass der Prozessor meist nicht auf den langsameren Arbeitsspeicher warten muss.
Moderne Rechner nutzen dafür eine Speicherhierarchie aus mehreren Stufen, die von sehr klein und sehr schnell (Cache direkt im Prozessor) bis groß und vergleichsweise langsam (Arbeitsspeicher) reicht. Fordert der Prozessor Daten an, wird zunächst im Cache nachgesehen: Liegen die Daten dort bereits vor, spricht man von einem Cache-Hit, der Zugriff ist sehr schnell. Fehlen sie, liegt ein Cache-Miss vor, die Daten müssen aus dem langsameren Arbeitsspeicher geholt und zugleich in den Cache übernommen werden, damit ein erneuter Zugriff wieder schneller erfolgt. Weil der Cache klein ist, müssen ältere, seltener gebrauchte Daten regelmäßig verdrängt werden, um Platz für neue zu schaffen.
Ein Prozessor verarbeitet in einer Schleife wiederholt dieselben Daten. Beim ersten Zugriff werden sie aus dem Arbeitsspeicher geladen und im Cache abgelegt; bei allen folgenden Durchläufen liefert der Cache dieselben Daten um ein Vielfaches schneller, ohne dass der Arbeitsspeicher erneut angesprochen werden muss.
Caches werden eingesetzt, um die Rechenleistung von Prozessoren tatsächlich nutzbar zu machen, Wartezeiten beim Datenzugriff zu verringern und den Energieverbrauch zu senken, da seltenere Zugriffe auf den langsameren und stromhungrigeren Arbeitsspeicher nötig sind. Das Prinzip findet sich nicht nur im Prozessor, sondern auch zwischen anderen unterschiedlich schnellen Komponenten, etwa zwischen Rechner und Peripheriegeräten.
Ein größerer Cache macht ein System nicht automatisch proportional schneller: Entscheidend ist, wie gut die tatsächlich benötigten Daten vorhergesagt und im Cache gehalten werden können. Ein Cache ist außerdem kein dauerhafter Speicher – sein Inhalt geht beim Abschalten verloren und dient nur der kurzfristigen Beschleunigung, nicht der Datensicherung.
Nicht zu verwechseln mit Arbeitsspeicher: Dieser hält die laufenden Programme und ihre Daten vollständig vor, während der Cache nur einen kleinen, besonders schnellen Ausschnitt davon zwischenspeichert. Ebenfalls abzugrenzen ist Solid-State-Drive: Dieses ist ein dauerhafter Massenspeicher, kein flüchtiger Geschwindigkeitspuffer.