Das würde aber eine gewaltige Umorganisation der Cache-Hierarchie bedeuten.
http://www.sandpile.org/impl/k8.htm
Level 1 Data
64 KB, 2-Way, 64 Byte/Line, SI, LRU, Pre-decode and Branch Information, Parity
Level 1 Code
64 KB, 2-Way, 64 Byte/Line, MOESI, LRU, Dual-ported, WB, WA, 8 Banks, ECC
Level 2 Cache
1,024 KB, 16-Way, 64 Byte/Line, Pseudo-LRU, Exclusive, ECC (is used for Parity, Pre decode, and Branch Information if L2 Line holds Code)
Ich weiß nicht wie die Simulationen aussehen.
Ein rücksichtloses Aufbohren des L2 Caches bringt eine Erhöhung der Latenz mit. Evtl. kann man über die flächenmäßige Verkleinerung(wegen des ZRAMs) eine Verdoppelung des Caches bei gleicher Latenz erreichen.
Ein gemeinsamer Cache für zwei Cores wäre aber wirklich wichtig, damit man zukünftig von stark voneinander abhängigen Threads auch profitieren kann.
Der Smartcache bei Intel ist noch nicht zwingend der Weisheit letzter Schluß.
- L1D 64KB in SRAM L1C 64KB in SRAM
- für jeden Core 2MB L2 in ZRAM
- 8MB shared L3 in ZRAM
Evtl lässt sich von einem kleineren L2-Cache(1MB) mit noch kürzeren Latenzen stärker profitieren als von 2MB - evtl. kommt man aber hier schon in den Grenzbereich des ZRAM.
Spekulationen -
Grüße,
Tom