Cache (L1 / L2 / L3)
Der Cache ist ein spezieller Zwischenspeicher, der zwischen dem Prozessor und dem Arbeitsspeicher liegt. Er enthält Programmcode und Daten, die der Prozessor als nächstes verarbeitet. Dadurch werden Verzögerungen beim Zugriff auf den langsamen Arbeitsspeicher vermieden und der Prozessor wird besser ausgelastet. Die Performance eines Prozessors ist also auch davon abhängig, wie wenig Speicherzugriffe nötig sind. Je weniger, desto mehr Daten kann er verarbeiten. Unter diesem Gesichtspunkt muss man auch Datenstrukturen bewerten. Je besser sie zur Cache-Struktur eines Prozessors passen, desto besser.
Hintergrund ist, dass Prozessoren sehr schnell arbeiten, aber der Speicher vergleichsweise langsam ist. Damit der Prozessor nicht jeden Programm-Befehl oder jedes Datenwort einzeln aus dem langsamen Arbeitsspeicher holen muss, wird gleich ein ganzer Befehls- bzw. Datenblock vom Arbeitsspeicher in den Cache geladen. Die Wahrscheinlichkeit, dass die nachfolgenden Programmbefehle im Cache liegen, ist relativ hoch.
Erst wenn alle Programm-Befehle abgearbeitet sind oder ein Sprungbefehl zu einer Sprungadresse außerhalb des Caches führt, dann muss der Prozessor erneut auf den Arbeitsspeicher zugreifen. Deshalb sollte der Cache möglichst groß sein, damit der Prozessor die Programm-Befehle ohne Wartezeit hintereinander ausführen kann. Das Problem von großen Caches ist, dass sie viel Platz und Energie brauchen.
Cache-Hierarchie

In der Regel arbeiten Prozessoren mit mehrstufigen Caches, die unterschiedlich groß und schnell sind. Je näher der Cache am Rechenkern ist, desto kleiner und schneller arbeitet er.
- L1-Cache (klein, sehr schnell)
- L2-Cache
- L3-Cache (groß, langsam)
L1-Cache / First-Level-Cache
In der Regel ist der L1-Cache nicht besonders groß. Aus Platzgründen bewegt er sich in der Größenordnung von etwa 16 bis 64 kByte. Je nach Prozessor kann er auch größer sein. Meistens ist der L1-Cache für Befehle und Daten voneinander getrennt.
Im L1-Cache werden die am häufigsten benötigten Befehle und Daten zwischengespeichert, damit möglichst wenige Zugriffe auf den langsamen Arbeitsspeicher erforderlich sind. Dieser Cache vermeidet Verzögerungen und hilft dabei den Rechenkern optimal auszulasten. Die Bedeutung des L1-Caches wächst mit höherer Geschwindigkeit eines Prozessors.
L2-Cache / Second-Level-Cache
Im L2-Cache werden die Daten des Arbeitsspeichers (RAM) zwischengespeichert, die später im L1-Cache laden. Die Größe des L2-Caches ist vom Hersteller abhängig. Normalerweise optimiert der den L2-Cache an die Pipeline im Rechenkern.
L3-Cache / Third-Level-Cache
In der Regel verwenden Multicore-Prozessoren einen integrierten L3-Cache. Mit dem L3-Cache kann das Cache-Koheränz-Protokoll von Multicore-Prozessoren viel schneller arbeiten. Dieses Protokoll gleicht die Caches aller Kerne ab, damit die Datenkonsistenz erhalten bleibt. Der L3-Cache hat also weniger die Funktion eines Caches, sondern soll das Cache-Koheränz-Protokoll und den Datenaustausch zwischen den Kernen vereinfachen und beschleunigen. Man könnte das auch über den Arbeitsspeicher machen. Das wäre dann aber wieder langsamer.
Inklusiv-Cache und Exklusiv-Cache
Mit den Multicore-Prozessoren kamen die Begriffe Inklusiv- und Exklusiv-Cache auf. Inklusiv-Cache bedeutet, dass Daten im L1-Cache auch im L2- und L3-Cache vorhanden sind. So lässt sich die Datenkonsistenz zwischen den Kernen leichter sicherstellen. Im Vergleich zum Exklusiv-Cache wird etwas Speicherkapazität verschenkt, weil die Daten redundant in den Caches mehrerer CPU-Kerne liegen.
Exklusiv-Cache bedeutet, der Cache steht einem Prozessor-Kern exklusiv, also für ihn alleine, zur Verfügung. Er muss den Cache nicht mit einem anderen Kern teilen. Ein Nachteil davon ist, dass mehrere Prozessor-Kerne untereinander dann nur auf einem Umweg Daten miteinander austauschen können.
Write-Trough und Write-Back
Write-Trough ist ein Verfahren bei dem der L2-Cache die Daten sofort in den Arbeitsspeicher schreibt. Die Steuerung für den Schreibvorgang wird vom Cache übernommen. Der Prozessor kann in dieser Zeit weiterarbeiten.
Write-Back ist ein Verfahren bei dem der L2-Cache dem Prozessor mitteilt, das die Daten in den Arbeitsspeicher geschrieben sind.
Write-Allocation
Write-Allocation ist ein Cache-Verwaltungsstrategie. Bei Schreibvorgängen auf Adressen, die nicht im Cache vorhanden sind, führt das dazu, dass die Daten zuerst in den Cache gelesen werden. Der Schreibvorgang erfolgt dann nur noch auf den Cache.
Write-Allocation muss im BIOS eingeschaltet sein.
Höherer Takt oder größerer Cache?
Die Wahl zwischen einem Prozessor mit mehr Taktgeschwindigkeit oder einem größeren L2/L3-Cache lässt sich vereinfacht wie folgt beantworten:
- Mit einem höheren Takt laufen einzelne Programme, insbesondere mit hohem Rechenbedarf, schneller.
- Sobald mehrere Programme gleichzeitig laufen, ist ein größerer Cache von Vorteil.
In der Regel ist ein größerer Cache nützlicher als eine höhere Taktrate.
Wenn der Speichercontroller im Prozessor ist, dann kann der Prozessor sehr viel schneller auf den Arbeitsspeicher zugreifen. Damit verringert sich die Bedeutung des L2-Caches. Hier ist ein größerer L3-Cache wichtiger.
Weitere verwandte Themen:
- Prozessor (CPU)
- Prozessortechnik
- Prozessor-Architektur
- RAM
- Arbeitsspeicher/Hauptspeicher
- Motherboard
- Multiplikator
Lernen mit Elektronik-Kompendium.de
Noch Fragen?
Bewertung und individuelles Feedback erhalten
Aussprache von englischen Fachbegriffen
Computertechnik-Fibel
Alles was du über Computertechnik wissen musst.
Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.
Computertechnik-Fibel
Alles was du über Computertechnik wissen musst.
Die Computertechnik-Fibel ist ein Buch über die Grundlagen der Computertechnik, Prozessortechnik, Halbleiterspeicher, Schnittstellen, Datenspeicher, Laufwerke und wichtige Hardware-Komponenten.
Artikel-Sammlungen zum Thema Computertechnik
Alles was du über Computertechnik wissen solltest.





