L1-, L2- und L3 Cache

Aus Ergun's Wiki
Wechseln zu: Navigation, Suche



Beschreibung

Im einfachen Fall bezieht die CPU Daten und Prozessorbefehle aus dem RAM-Speicher. Da dieser Speicher im Hinblick auf die Verarbeitungsgeschwindigkeit moderner CPU's jedoch relativ langsam ist, werden die Daten und Daten und Prozessorbefehle in schnellere Caches geladen, welche sich direkt in der CPU befinden. Auch wird von der Prozessorlogik eine Art der Voraussage getroffen, welche Daten und Prozessorbefehle als nächstes kommen werden und hält diese sozusagen auf Vorrat.

Diese Cache werden L1-, L2-Caches genannt. Eine Multi-Core CPU hat darüber hinaus noch einen L3-Cache.

Ein Beispiel: Eine ältere Intel Core i7 950 Quad-Core CPU hat drei Caches:

L1 (Data) 32 KBytes * 4
L1 (Instruktion) 32 KBytes * 4
L2 256 KBytes * 4
L3 8 MBytes

Eine neuere Intel Core i7 8700K 6-Core CPU hat drei Caches:

L1 (Data) 32 KBytes * 6
L1 (Instruktion) 32 KBytes * 6
L2 256 KBytes * 6
L3 12 MBytes

L1-Cache, bzw. First-Level-Cache

Dieser Cache ist auf der CPU angesiedelt und in der Regel 16 - 64 kByte groß. Da dieser Prozessor mit dem vollen Prozessortakt arbeitet, kommt es im Idealfall zu keiner Verzögerung durch Wartezyklen. Jeder Core der CPU besitzt seinen eigenen L1-Cache, welcher die häufiger vorkommenden Daten, bzw. Befehle zwischenspeichert und daher weniger auf den RAM-Speicher zugreifen muss. Der Cache wird in zwei Speicherbereiche aufgeteilt: "Data" für Daten und "Instruction" für Prozessorbefehle.

L2-Cache, bzw. Second-Level-Cache

Auch der L2-Cache ist auf der CPU angesiedelt und dem L1-Caches vorgeschaltet. Im L2-Cache sind Daten und Prozessorbefehle in Blöcken (also zusammen) gespeichert. In der Regel lässt sich sagen, dass ein höhere Prozessortakt sich auf die Rechenleistung besser auswirkt und ein größerer L2-Cache sich von Vorteil zeigt, wenn mehrere Anwendungen parallel laufen sollen. Im Normalfall ist also ein größerer L2-Chache den Vorzug zu geben, als eine höhere Taktgeschwindigkeit

L3-Cache, bzw. Third-Level-Cache

Der L3-Cache war in älteren Prozessorgenerationen extern angesiedelt, mittlerweile befindet sich der Cache aber ebenfalls auf der CPU. Dieser Cache wird von Multi-Core Prozessoren verwendet, um Daten zwischen den Cores auszutauschen. Damit die Daten konsistent bleiben, wird das Cache-Kohärenz-Protokoll angewendet. Somit erfüllt der L3-Cache streng genommen nicht die Funktion eines Caches, sondern soll den konsistenten Datenaustausch zwischen den Cores gewährleisten.

Einzelnachweise, Weblinks und Anmerkungen