Sind die Prozessor-Caches L1, L2 und L3 alle aus SRAM? Wenn ja, warum ist L1 schneller als L2 und L2 ist schneller als L3? Ich habe diesen Teil nicht verstanden, als ich darüber las.
Sind die Prozessor-Caches L1, L2 und L3 alle aus SRAM? Wenn ja, warum ist L1 schneller als L2 und L2 ist schneller als L3? Ich habe diesen Teil nicht verstanden, als ich darüber las.
Antworten:
Im Allgemeinen werden sie alle mit SRAM implementiert.
(Die POWER- und zArchitecture-Chips von IBM verwenden DRAM-Speicher für L3. Dies wird als eingebetteter DRAM bezeichnet, da er in derselben Prozesstechnologie wie die Logik implementiert ist und die schnelle Logik in denselben Chip wie der DRAM integriert werden kann. Für POWER4 ist der Off- Chip L3 verwendet eDRAM; POWER7 hat den L3 auf dem gleichen Chip wie die Prozessorkerne.)
Obwohl sie SRAM verwenden, verwenden sie nicht alle dasselbe SRAM-Design. SRAM für L2 und L3 sind hinsichtlich der Größe optimiert (um die Kapazität bei begrenzter herstellbarer Chipgröße zu erhöhen oder die Kosten einer bestimmten Kapazität zu senken), während SRAM für L1 eher hinsichtlich der Geschwindigkeit optimiert wird.
Noch wichtiger ist, dass die Zugriffszeit von der physischen Größe des Speichers abhängt. Bei einem zweidimensionalen Layout kann man erwarten, dass die physische Zugriffslatenz ungefähr proportional zur Quadratwurzel der Kapazität ist. (Eine ungleichmäßige Cache-Architektur nutzt dies aus, um eine Teilmenge des Caches mit geringerer Latenz bereitzustellen. Die L3-Slices der jüngsten Intel-Prozessoren haben einen ähnlichen Effekt. Ein Treffer im lokalen Slice hat eine erheblich geringere Latenz.) Dieser Effekt kann einen DRAM-Cache schneller machen als ein SRAM-Cache bei hohen Kapazitäten, da der DRAM physikalisch kleiner ist.
Ein weiterer Faktor ist, dass die meisten L2- und L3-Caches den seriellen Zugriff auf Tags und Daten verwenden, während die meisten L1-Caches parallel auf Tags und Daten zugreifen. Dies ist eine Leistungsoptimierung (L2-Fehlerraten sind höher als L1-Fehlerraten, sodass der Datenzugriff mit größerer Wahrscheinlichkeit zu Arbeitsverschwendung führt, der L2-Datenzugriff erfordert im Allgemeinen mehr Energie - bezogen auf die Kapazität - und L2-Caches weisen normalerweise eine höhere Assoziativität auf was bedeutet, dass mehr Dateneinträge spekulativ gelesen werden müssten). Wenn Sie vor dem Zugriff auf die Daten auf den Tag-Abgleich warten müssen, erhöht sich natürlich die Zeit, die zum Abrufen der Daten erforderlich ist. (Der L2-Zugriff beginnt normalerweise auch erst, nachdem ein L1-Fehler bestätigt wurde, sodass die Latenz der L1-Fehlererkennung zur Gesamtzugriffslatenz von L2 addiert wird .)
Darüber hinaus ist der L2-Cache physisch weiter von der Ausführungs-Engine entfernt. Das Platzieren des L1-Datencaches in der Nähe der Ausführungs-Engine (so dass der häufige Fall eines L1-Treffers schnell ist) bedeutet im Allgemeinen, dass L2 weiter entfernt platziert werden muss.