Führt eine größere Cache-Größe immer zu einer verbesserten Leistung?

8

Da der Cache innerhalb des Prozessors die Befehlsausführungsgeschwindigkeit erhöht. Ich frage mich, was passiert, wenn wir die Größe des Cache auf viele MB wie 1 GB erhöhen. Ist es möglich? Wenn dies der Fall ist, führt die Erhöhung der Cachegröße immer zu einer erhöhten Leistung?

    
Taha Taha 19.02.2013, 10:59
quelle

3 Antworten

3

Dies ist eine Vereinfachung, aber einer der Hauptgründe dafür, dass der Cache die "Geschwindigkeit" erhöht, ist, dass er einen schnellen Speicher in der Nähe des Prozessors bietet - dies ist viel schneller als der Hauptspeicher. Theoretisch könnte eine Vergrößerung des Caches mehr Informationen in diesem 'schnellen' Speicher speichern und dadurch die Performance verbessern. In der realen Welt sind die Dinge offensichtlich viel komplexer als das, und das wird es natürlich auch geben zusätzliche Komplexität und Kosten, die mit einem so großen Cache verbunden sind, und mit Problemen wie Cache-Kohärenz, Caching-Algorithmen usw. umgehen.

    
Michael 19.02.2013 13:22
quelle
3

Es gibt einen Kompromiss zwischen Cachegröße und Trefferrate auf einer Seite und Lese-Latenz mit Stromverbrauch auf einer anderen Seite. Die Antwort auf Ihre erste Frage lautet also: technisch (wahrscheinlich) möglich, aber unwahrscheinlich, weil L3-Cache in modernen CPUs mit einer Größe von nur ein paar MB eine Latenz von etwa Dutzenden von Zyklen aufweist.

Die Leistung hängt mehr vom Speicherzugriffsmuster als von der Cache-Größe ab. Genauer gesagt, wenn das Programm hauptsächlich sequentiell ist, ist die Cache-Größe keine große Sache. Wenn ziemlich viel zufälliger Zugriff vorhanden ist (zB wenn assoziative Container aktiv verwendet werden), spielt die Cache-Größe eine große Rolle.

Das obige gilt für einzelne Rechenaufgaben. In einer Multiprocess-Umgebung mit mehreren aktiven Prozessen ist eine größere Cachegröße immer besser, da die Interprozesskonflikte abnehmen.

    
leventov 20.02.2013 14:57
quelle
0

Cache speichert Daten temporär. Cache wird verwendet, um die Datei zu finden, die häufig verwendet wurde. Wenn die Cache-Größe also bis zu 1 GB oder mehr ansteigt, bleibt sie nicht als Cache, sondern wird zu RAM. Daten werden im RAM temporär gespeichert. Wenn der Cache also nicht verwendet wird, wenn Daten vom Prozessor aufgerufen werden, benötigt Ram aufgrund seiner großen Größe von 4 GB oder mehr Zeit, um Daten zu holen, die dem Prozessor zur Verfügung gestellt werden. Daher verwenden wir Cache als temporären Speicher für die Dinge, die wir kürzlich oder häufig benutzt haben. Auf diese Weise ist RAM RAM nicht erforderlich, Daten zu finden und zu holen, um sie dem Prozessor zu geben, da Prozessor-Direktzugriffsdaten aus dem Cache aufgrund der geringen Größe des Cache keine Zeit benötigen, Daten zu finden, und der Prozessor nicht aufrufen muss ram, um Daten zu holen, alles schnell erledigt ohne RAM. Nehmen wir ein Beispiel, wir haben einen großen Klassenraum (RAM), unsere prinzipielle (Prozessor-) Anrufklasse CR (Daten) für einige Zwecke, dann werden diejenigen in den Klassenraum gehen und die CR in der Klasse von 1000 Schülern finden und nehmen er zum Direktor. Es braucht Zeit. Wenn wir einen Speicherplatz (Cache) für CR in der Klasse angeben, weil der Prinzipal meistens CR der Klasse aufruft, so wird es leicht, CR zu finden, weil CR meistens von Principal aufgerufen wird.

    
Faizan Khan Ghauri 08.04.2018 12:08
quelle

Tags und Links