Ich versuche zu verstehen, warum bestimmte CPU-Cache-Speicher schneller sind als andere. Beim Vergleich des Cache-Speichers mit so etwas wie dem Hauptspeicher gibt es Unterschiede im Speichertyp (SRAM gegenüber DRAM) und in der Lokalität (auf dem Chip gegenüber dem Durchqueren eines Speicherbusses), die sich auf die Zugriffsgeschwindigkeit auswirken können. Aber L1 und L2 befinden sich im Allgemeinen auf demselben Chip oder zumindest auf demselben Chip, und ich denke, sie sind derselbe Speichertyp. Warum ist L1 also schneller?
14
Antworten:
Nein, sie sind nicht derselbe RAM-Typ, obwohl sie sich auf demselben Chip befinden, der denselben Herstellungsprozess verwendet.
Von allen Caches muss der L1-Cache die schnellstmögliche Zugriffszeit (niedrigste Latenz) aufweisen, im Vergleich zu der Kapazität, die für eine angemessene Trefferquote erforderlich ist. Aus diesem Grund werden größere Transistoren und breitere Metallspuren verwendet, um Platz und Leistung gegen Geschwindigkeit auszutauschen. Die Caches höherer Ebenen müssen höhere Kapazitäten aufweisen, können sich jedoch eine langsamere Ausführung leisten, sodass kleinere Transistoren verwendet werden, die enger gepackt sind.
quelle
L1 wird normalerweise als Speicher für dekodierte Anweisungen verwendet, während L2 ein allgemeiner Cache für einen einzelnen Kern ist. Je niedriger der Cache ist, desto kleiner ist er und desto schneller ist er normalerweise. Als Faustregel für PC-Prozessoren gilt:
L1-Cache: Zugriff auf 2-3 Taktzyklen
L2-Cache: ~ 10-Takt-Zugriff
L3 Cache: ~ 20-30 Taktzyklen
Zitat stammt hier von „Pinhedd der“ Antwort.
quelle
Es gibt mehrere Gründe, warum die Geschwindigkeit umgekehrt proportional zur Größe ist. Das erste, woran ich denke, ist die physische Dominanz von Leitern, bei der die Signalausbreitung auf einen Faktor der Lichtgeschwindigkeit beschränkt ist. Ein Vorgang kann so lange dauern, wie ein elektrisches Signal erforderlich ist, um die längste Strecke innerhalb der Speicherkarte und zurück zurückzulegen. Ein anderer verwandter Grund ist die Trennung von Taktdomänen. Jede CPU verfügt über einen eigenen Taktgenerator, der es der CPU ermöglicht, mit Multi-GHz-Takten zu arbeiten. Der Level-1-Cache wird mit der CPU-Uhr synchronisiert, die die schnellste im System ist. Level-2-Cache hingegen muss viele CPUs bedienen und wird in einer anderen (langsameren) Taktdomäne ausgeführt. Nicht nur der L2-Takt, der langsamer ist (größere Kachel), sondern auch das Überschreiten einer Taktbereichsgrenze führt zu einer weiteren Verzögerung. Dann gibt es natürlich die Fan-Out-Probleme (bereits erwähnt).
quelle
Neben den inhärenten Leistungsmerkmalen spielt auch die Lokalität eine Rolle (L1 ist näher an der CPU). Nach dem, was jeder Programmierer über Speicher wissen sollte :
quelle