Cache (L1 / L2 / L3)

Cache-Architektur Der Cache ist ein spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem Prozessor liegt.
Damit der Prozessor nicht jeden Programm-Befehl aus dem langsamen Arbeitsspeicher holen muss, wird gleich ein ganzer Befehls- bwz. 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.

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 16 bis 64 kByte. Meistens ist der Speicherbereich für Befehle und Daten voneinander getrennt. Die Bedeutung des L1-Caches wächst mit der höheren Geschwindigkeit der CPU.
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 in der Datenübermittlung und hilft dabei die CPU optimal auszulasten.

L2-Cache / Second-Level-Cache

Im L2-Cache werden die Daten des Arbeitsspeichers (RAM) zwischengespeichert.
Über die Größe des L2-Caches versorgen die Prozessorhersteller die unterschiedlichen Marktsegmente mit speziell modifizierten Prozessoren. Die Wahl zwischen einem Prozessor mit mehr Taktgeschwindigkeit oder einem größeren L2-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 sind normale Desktop-Computer mit einem Prozessor, der einen großen Cache hat, besser bedient, als mit einem Prozessor, der eine hohe Taktrate hat.
Als der Speichercontroller vom Chipsatz in den Prozessor verlagert wurde und der Prozessor damit viel schneller auf den Arbeitsspeicher zugreifen konnte, sank damit die Bedeutung des L2-Caches. Während die Größe des L2-Caches geringer wurde, wurde der L3-Cache ordentlich aufgerüstet.

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.

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 im Speicher 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

Das ist das Verfahren bei dem der Second-Level-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

Das ist das Verfahren bei dem der Second-Level-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.