Ich versuche zu verstehen, warum bestimmte CPU-Cache-Speicher schneller sind als andere. Beim Vergleich von Cache-Speicher mit etwas wie Hauptspeicher gibt es Unterschiede im Speichertyp (SRAM vs. DRAM) und Lokalitätsprobleme (On-Chip vs. Notwendigkeit, einen Speicherbus zu durchlaufen), die die Zugriffsgeschwindigkeiten beeinflussen können. Aber L1 und L2 befinden sich im Allgemeinen auf demselben Chip oder zumindest auf demselben Chip, und ich denke, dass es sich um denselben Speichertyp handelt. Warum ist L1 also schneller?
Nein, es handelt sich nicht um dieselbe Art von RAM, obwohl sie sich auf demselben Chip befinden, der denselben Herstellungsprozess verwendet.
Von allen Caches muss der L1-Cache die schnellstmögliche Zugriffszeit (geringste Latenz) haben, im Vergleich dazu, wie viel Kapazität er haben muss, um eine angemessene "Treffer"-Rate bereitzustellen. Daher wird es mit größeren Transistoren und breiteren Metallbahnen gebaut, wobei Platz und Leistung gegen Geschwindigkeit eingetauscht werden. Die Caches auf höherer Ebene müssen über höhere Kapazitäten verfügen, können es sich aber leisten, langsamer zu sein, sodass sie kleinere Transistoren verwenden, die dichter gepackt sind.
L1 wird normalerweise als Speicher für decodierte Anweisungen verwendet, während L2 ein allgemeiner Cache für einen einzelnen Kern ist. Je niedriger der Cache, desto kleiner ist er und schneller ist er normalerweise. Als grobe Faustregel für PC-Prozessoren gilt:
L1-Cache: 2–3 Taktzykluszugriff
L2-Cache: Zugriff auf ~10 Taktzyklen
L3-Cache: Zugriff auf ~20–30 Taktzyklen
Das Design des L1-Cache sollte darauf ausgerichtet sein, die Trefferrate (die Wahrscheinlichkeit, dass sich die gewünschte Befehlsadresse oder Datenadresse im Cache befindet) zu maximieren, während die Cache-Latenz so gering wie möglich gehalten wird. Intel verwendet einen L1-Cache mit einer Latenz von 3 Zyklen. Der L2-Cache wird von einem oder mehreren L1-Caches gemeinsam genutzt und ist oft viel, viel größer. Während der L1-Cache darauf ausgelegt ist, die Trefferrate zu maximieren, ist der L2-Cache darauf ausgelegt, die Fehltrefferstrafe (die Verzögerung, die entsteht, wenn ein L1-Fehltreffer auftritt) zu minimieren. Bei Chips mit L3-Caches ist der Zweck spezifisch für das Design des Chips. Für Intel tauchten L3-Caches erstmals 2002 in 4-Wege-Multiprozessorsystemen (Pentium 4 Xeon MP-Prozessoren) auf. L3-Caches in diesem Sinne reduzierten Verzögerungen in Multithread-Umgebungen erheblich und entlasteten den FSB. Damals,
Zitat hier aus der Antwort von "Pinhedd".
Es gibt mehrere Gründe, warum die Geschwindigkeit umgekehrt proportional zur Größe ist. Das erste, was mir in den Sinn kommt, ist die physische Dominanz von Leitern, bei denen die Signalausbreitung auf einen Faktor der Lichtgeschwindigkeit beschränkt ist. Eine Operation kann so lange dauern, wie ein elektrisches Signal benötigt, um die längste Strecke innerhalb der Speicherkachel und zurück zurückzulegen. Ein weiterer verwandter Grund ist die Trennung von Taktdomänen. Jede CPU betreibt ihren eigenen Taktgenerator, wodurch die CPU mit Multi-GHz-Takten laufen kann. Der Level-1-Cache läuft mit und wird mit der CPU-Uhr synchronisiert, die die schnellste im System ist. Der Level-2-Cache hingegen muss viele CPUs bedienen und läuft in einer anderen (langsameren) Taktdomäne. Nicht nur der L2-Takt ist langsamer (größere Kachel), sondern das Überqueren einer Taktdomänengrenze fügt eine weitere Verzögerung hinzu. Dann gibt es natürlich die Fan-Out-Probleme (bereits erwähnt).
Abgesehen von den inhärenten Leistungsmerkmalen spielt auch die Lokalität eine Rolle (L1 liegt näher an der CPU). Nach Was jeder Programmierer über Speicher wissen sollte :
Es ist interessant festzustellen, dass für den On-Die-L2-Cache ein großer Teil (wahrscheinlich sogar der Großteil) der Zugriffszeit durch Leitungsverzögerungen verursacht wird. Dies ist eine physikalische Einschränkung, die sich mit zunehmender Cache-Größe nur verschlimmern kann. Nur eine Prozessverkleinerung (zum Beispiel von 60 nm für Merom auf 45 nm für Penryn in Intels Lineup) kann diese Zahlen verbessern.
Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams
hassan789
Peter Kordes