Ich versuche, Einzelheiten über Caches herauszufinden (insbesondere welche Caches zwischen Kernen geteilt werden und welche nicht) und bin auf eine Inkonsistenz gestoßen.
sudo lshw
sagt
*-cache:0
description: L1 cache
physical id: a
slot: Internal Cache
size: 64KiB
capacity: 64KiB
capabilities: synchronous internal write-back
*-cache:1
description: L2 cache
physical id: b
slot: External Cache
size: 8MiB
capabilities: synchronous internal write-back
aber lscpu
behauptet
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
Ich mache mir keine allzu großen Sorgen, dass Anweisung und Datencache zusammengefügt werden, aber wohin ist L2 gegangen?
Beobachtet auf einem Rechner mit Ubuntu 10.10, oder uname -a
sprechen lassen :
Linux name 2.6.35-32-generic #66-Ubuntu SMP Mon Feb 13 21:04:32 UTC 2012 x86_64 GNU/Linux
Dies ist eine allgemeine Frage, aber beachten Sie, dass weder die genauesten Herstellerspezifikationen, die ich finden konnte, noch Wikipedia die erforderlichen Details aufweisen.
Unabhängige Bonusfrage: Bedeutet das, External Cache
dass der Cache zwischen den (vier) Kernen (und Internal Cache
dem Gegenteil) geteilt wird?
cpu
cache
system-information
Raphael
quelle
quelle
Antworten:
Vielen Dank, dass Sie die zusätzlichen Informationen zum Prozessor zu Ihrer Frage hinzugefügt haben. Es ist hilfreich zu wissen, dass sich die von Ihnen veröffentlichten Beispiele auf eine beziehen
Intel Core i7-920 Processor
.Die von bereitgestellten Informationen
lscpu
sind genauer, da sie alle drei Cache-Ebenen L1, L2 und L3 enthalten. Es scheint, dasslshw
nur geringfügig geändert wurde, um Intels Hinzufügung eines L3-Caches zu ihren CPUs widerzuspiegeln. Anstatt Informationen zu allen drei Cache-Ebenen anzuzeigen, werden die Informationen zur Größe des L3-Caches anscheinend als L2-Cache gemeldet.Ich gehe davon aus, dass die von Ihnen betrachteten Spezifikationen keinen L1- und L2-Cache enthielten, da sie innerhalb einer bestimmten Mikroarchitektur alle gleich sind. Für Nehalem ist dies beispielsweise " 64 KB L1-Cache / Kern (32 KB L1-Daten + 32 KB L1-Anweisung) und 256 KB L2-Cache / Kern ".
Ich glaube, dass im Rahmen der Nehalem (Mikroarchitektur) (im November 2008?) Zum ersten Mal jeder Kern sein eigenes L1 und L2 mit einem einzigen, viel größeren gemeinsamen L3 erhalten hat .
Ich weiß nicht, warum
lshw
sich der BegriffExternal Cache
auf den L3 bezieht. Aber es kommt mir irreführend vor, da der L3-Cache auf dem CPU-Würfel liegt und nicht das, was ich für extern halte . Wiederum scheint dies der Versuch zu sein, alte Software zu verwenden, um neuere Hardware zu beschreiben, während nur minimale Änderungen an der Software vorgenommen werden.(Wahrscheinlich könnte man mehr lernen, wenn man sich den tatsächlichen Quellcode ansieht, aber ich hatte keine Zeit, das zu versuchen.)
Schließlich wird der L3-Cache von den Kernen / Threads gemeinsam genutzt. Das folgende Zitat stammt aus dem Wikipedia-Artikel, der oben verlinkt wurde: " Hyper-Threading wird wieder eingeführt, zusammen mit einer Reduzierung von L2, das als L3-Cache aufgenommen wurde, der von allen Kernen verwendet werden kann . "
quelle
lshw
die Cache-Ergebnisse zurückgegeben werden. Aber möglicherweise wollten sie ihr Ausgabeformat nicht ändern, um ein Skript zu beschädigen, das ihre Ausgabe analysiert. Mit Software-Tools können Sie sich allzu leicht in eine Ecke malen.