Speicher-Caches - Größen der einzelnen Ebenen

360
Tyler

Ich habe mich nur gefragt, wann ein Programm wie CPU-Z oder CPU-ID Ihre Cache-Level erkennt und beispielsweise Folgendes sagt:

L1 D-Cache-Größe: 16 Kb "x 8" (4-Wege-Satzassoziativ) L1 I-Cache-Größe: 64 Kb "x 4" (2-Wege-Satzassoziativ)

Worauf beziehen sich x 8 und x 4? Bitte geben Sie wenn möglich ein wenig Hintergrundwissen an. Ich habe ein paar Gedanken darüber, was es bedeuten könnte, möchte aber nicht uninformiert bleiben.

Ich interessiere mich für diese Wesen, wie ich bereits die verschiedenen Cache-Level meiner CPU in einer Zeitung beschreibe.

Für diejenigen, die Visuals schätzen, hier Bilder des Programms: http://image.prntscr.com/image/b6d216efd51449efb7da115cea064824.png http://image.prntscr.com/image/ae3a164e2cbb48a1a192c445d6179c1c.png

Vielen Dank!

1
Fragen Sie nach verschiedenen Wegen, wie diese beschrieben werden, oder suchen Sie nach einer maßgeblichen Antwort? music2myear vor 7 Jahren 0

1 Antwort auf die Frage

0
misha256

Nehmen Sie das Beispiel einer AMD FX-8350-CPU mit 8 Kernen.

Ein "Cache" kann für einen einzelnen Kern reserviert sein oder von Cores gemeinsam genutzt werden.

Wenn CPU-Z sagt x8, dass es 8 dieser Caches gibt, so erhält jeder Kern einen Cache für sich. x4bedeutet 4 Caches, daher wird jeder dieser Caches von zwei Kernen geteilt.

Wenn es einen x2Eintrag gab, würde dies 2 Caches bedeuten, die sich jeweils auf 4 Kerne teilen. Der L3-Cache ist effektiv x1(CPU-Z lässt dieses Feld leer), so dass dieser Cache von allen Kernen gemeinsam genutzt wird. Ich hoffe das macht Sinn. AMD sagt es so :

  • 16-KByte 4-fach-assoziativer, durchschreibbarer ECC-geschützter L1-Datencache pro Kern
  • 64-KByte 2-Wege-Associative Parity-Protected-L1-Anweisungscache, der von zwei Kernen gemeinsam genutzt wird
  • 1024-KByte 16-fach assoziierter ECC-geschützter L2-Cache, der von zwei Kernen gemeinsam genutzt wird
  • 8192-KByte (8 MByte) Maximaler 64-fach assoziativer Cache, der von allen Kernen eines Knotens gemeinsam genutzt wird