2013-02-19 8 views
8

Da Cache im Inneren des Prozessors die Befehlsausführung Geschwindigkeit 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.Führt eine größere Cache-Größe immer zu einer verbesserten Leistung?

+0

Cache-Größe ist wichtig. für Intel ist es die Größe, mehr Anweisungen auf dem sterben, deshalb haben sie haben 12 MB L3 Cache. Für Amd ist Gaming, der Cache leert sich und füllt auf, sobald der Prozessor es benutzt. Deshalb denkt Intel zu viel. und amd nicht. ich bevorzuge sowieso amd. –

Antwort

3

Dies ist eine Vereinfachung, aber einer der Hauptgründe, warum 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 verbunden mit einem so großen Cache und mit Problemen wie Cache-Kohärenz, Cache-Algorithmen etc.

3

Es gibt einen Kompromiss zwischen Cache-Größe und Trefferrate auf der einen Seite und Lese-Latenz bei eingeschaltetem Stromverbrauch Ein weiterer. 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 wenigen MB eine Latenzzeit von etwa dutzenden von Zyklen hat.

Die Leistung hängt mehr vom Speicherzugriffsmuster als von der Cachegröß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), ist die Cache-Größe wirklich wichtig.

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.