Prozessor-Cache L1, L2 und L3 bestehen alle aus SRAM?

10982
Acaz Souza

Sind die Prozessor-Caches L1, L2 und L3 alle aus SRAM hergestellt? Wenn ja, warum ist L1 schneller als L2 und L2 ist schneller als L3? Ich habe diesen Teil nicht verstanden, als ich über sie las.

9
Zugehörige Frage: [Warum brauchen wir mehrere Ebenen des Cache-Speichers?] (Http://superuser.com/questions/695632/why-do-we-need-multiple-levels-of-cache-memory). Auch etwas verwandt: [Was ist eigentlich ein mehrstufiger Cache in Prozessoren?] (Http://superuser.com/questions/269080/what-isactually-multilevel-cache-in-processors). Aus Ihrem Kommentar dort habe ich bereits die letzte Frage gefunden. Paul A. Clayton vor 10 Jahren 0

1 Antwort auf die Frage

12
Paul A. Clayton

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 Art von Prozesstechnologie wie Logik implementiert ist. Dadurch kann schnelle Logik in denselben Chip wie der DRAM integriert werden. Für POWER4 Chip L3 verwendet eDRAM; POWER7 hat den L3 auf demselben Chip wie die Prozessorkerne.)

Obwohl sie SRAM verwenden, verwenden sie nicht alle das gleiche SRAM-Design. SRAM für L2 und L3 sind hinsichtlich der Größe optimiert (um die Kapazität bei einer begrenzten herstellbaren Chipgröße zu erhöhen oder die Kosten einer bestimmten Kapazität zu senken), während SRAM für L1 eher für die Geschwindigkeit optimiert wird.

Noch wichtiger ist, dass sich die Zugriffszeit auf die physische Größe des Speichers bezieht. Bei einem zweidimensionalen Layout kann man davon ausgehen, dass die Latenz für physische Zugriffe in etwa proportional zur Quadratwurzel der Kapazität ist. (Die nicht einheitliche Cache-Architektur nutzt dies, um einen Teil des Caches mit niedriger Latenz bereitzustellen. Die L3-Slices neuerer Intel-Prozessoren haben einen ähnlichen Effekt; ein Treffer im lokalen Slice hat eine wesentlich geringere Latenz.) Dieser Effekt kann einen DRAM-Cache schneller machen als ein SRAM-Cache bei hohen Kapazitäten, da der DRAM physisch kleiner ist.

Ein weiterer Faktor ist, dass die meisten L2- und L3-Caches den seriellen Zugriff auf Tags und Daten verwenden, wobei die meisten L1-Caches parallel auf Tags und Daten zugreifen. Dies ist eine Energieoptimierung (L2-Missraten sind höher als L1-Missraten, sodass der Datenzugriff mit höherer Wahrscheinlichkeit verschwendet wird; 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 auf den Tag-Abgleich warten müssen, bevor Sie auf die Daten zugreifen, erhöht sich natürlich die zum Abrufen der Daten erforderliche Zeit. (Der L2-Zugriff beginnt normalerweise auch erst, nachdem ein L1-Fehltreffer bestätigt wurde, sodass die Latenzzeit der L1-Fehlschlagserkennung zur Gesamtzugriffslatenz von L2 addiert wird .)

Außerdem ist der L2-Cache physisch weiter von der Ausführungsmaschine entfernt. Ein Platzieren des L1-Datencaches in der Nähe der Ausführungsengine (damit der häufige Fall des Treffers L1 schnell ist) bedeutet im Allgemeinen, dass L2 weiter entfernt angeordnet werden muss.

Gute Antwort. Ich stimme jedoch nicht mit Ihrer Aussage überein, dass L2-Misserfolgsraten höher als L1-Misserfolgsraten sind. Wenn wir uns in der Speicherhierarchie weiter nach unten bewegen, verfügen wir über größere Strukturen, die weniger Fehlschüsse liefern, jedoch eine höhere Latenz haben. Harshavardhan Ramanna vor 6 Jahren 0
@HarshavardhanRamanna Yes erhöht die Kapazität und die Assoziativität helfen die Fehlquote, aber die niedrigeren Stufen filtern die Zugriffe (die herkömmliche Übertragung eines gesamten Blocks von L2 filtert die kurzfristige räumliche Lokalität innerhalb des Blocks heraus; der Treffer zählt nur für einen Zugriff in L2, während der Block selbst liefert wahrscheinlich Treffer in L1 für zusätzliche Zugriffe). Die * Gesamt * - Fehlquote sinkt (z. B. eine L2 mit einer anständigen Trefferquote von 80% und eine L1 mit einer Trefferquote von 95% ergibt eine Trefferquote von insgesamt 99%). Paul A. Clayton vor 6 Jahren 0