Was kommt in der CPU fuer Cache-Speicher zum Einsatz? Wie ist dieser angebunden?

Knogle

Lieutenant
Registriert
Mai 2014
Beiträge
682
Moin

Habe eine Frage... Undzwar, was fuer Speicherbausteine kommen in Prozessoren zum Einsatz? Und wie sind diese an den Kern angebunden bzw. implementiert?

Beispiel: Der Xeon X5650 aus 2009 hat im L1 Cache eine Schreibgeschwindigkeit von 1,2TB/s der Xeon E3 1231v3 dagegen nur 800GB/s

Woher kommen diese Unterschiede?


MfG
 
Das sind keine Speicherbausteine. Das sind SRAM Zellen auf dem gleichen Die wie die CPU. Seit ca. 1996 (Pentium 3) oder so gibt es keine extra Speicherbausteine mehr sondern es ist alles auf dem CPU Die, sonst wäre es nicht schnell genug.
Auch auf dem Die können die Speicherzellen unterschiedlich angebunden werden (Latenzen, Takt, etc).
 
Der Speicherdurchsatz setzt sich ja nun aus Bandbreite und Takt. Ohne die beiden genannten CPUs im Detail zu kennen (siehe Intel Datenbank) sag ich mal die beiden unterscheiden sich genau in diesen Details.
Allgemein hat HominiLupus recht, bezieht sich aber auch nur auf den Großteil des Consumermarktes. Bei großen Server CPUs können durchaus Cachestufen ausserhalb des Dies sein, aber immer noch auf dem Package in unmittelbarer Nähe des eigentlichen CPU-Die.

Einfach mal nach "cpu die shot" googlen bzw. Wikipedia besuchen, das sollte aufschlussreich sein.

Beispielsweise ein Intel Lynnfield:
die-lynnfield.jpg

Die Cachestufen L1 und L2 sind hier innerhalb der jeweiligen Cores integriert.

Beispiel einer AMD APU:
mullins-cpu-die-shot-block-amd.jpg
 
Zuletzt bearbeitet:
Von den Caches? Nein, sind ja keine DRAM-Bausteine, die Latenz dürfte hauptsächlich durch den TLB-Lookup und Übertragungswege zustande kommen. Zumal - was will man da groß ändern? Der L1-Cache bei deinem Xeon dürfte lesend eine Latenz von 4 Takten haben, das spielt nur bei extrem langen Pointer-Ketten irgendeine Rolle.

Was die Bandbreite angeht - es ist völliger Blödsinn, die Gesamtbandbreite zwischen zwei CPUs zu vergleichen. Für den L1:
- Nehalem kann pro Takt 1x 16 Bytes lesen und 1x 16 Bytes schreiben.
- Haswell kann pro Takt 2x 32 Bytes lesen und 1x 32 Bytes schreiben (IIRC). Insofern müssten sogar deine Werte falsch sein.
- K10 kann pro Takt 2x16 Bytes lesen oder 2x8 bzw. 1x16 Bytes schreiben oder 1x 16 Bytes lesen und 1x 8 Bytes schreiben.

Die theoretische Gesamtbandbreite errechnet sich dann einfach je nach Szenario aus der Übertragungsrate pro Takt * Takt * Kerne.


Edit:
Du kannst den Cache nicht übertakten
Wobei man den L3-Cache bei den AMD-CPUs, Haswell und IIRC auch Nehalem durchaus übertakten kann, die anderen laufen aber ohnehin mit Kerntakt.
 
Zuletzt bearbeitet:
Nein, die sind fest vorgegeben. Du kannst den Cache nicht übertakten :)

Allgemein hat HominiLupus recht, bezieht sich aber auch nur auf den Großteil des Consumermarktes. Bei großen Server CPUs können durchaus Cachestufen ausserhalb des Dies sein, aber immer noch auf dem Package in unmittelbarer Nähe des eigentlichen CPU-Die.

Touché.
 
VikingGe schrieb:
Von den Caches? Nein, sind ja keine DRAM-Bausteine, die Latenz dürfte hauptsächlich durch den TLB-Lookup und Übertragungswege zustande kommen. Zumal - was will man da groß ändern? Der L1-Cache bei deinem Xeon dürfte lesend eine Latenz von 4 Takten haben, das spielt nur bei extrem langen Pointer-Ketten irgendeine Rolle.

Was die Bandbreite angeht - es ist völliger Blödsinn, die Gesamtbandbreite zwischen zwei CPUs zu vergleichen. Für den L1:
- Nehalem kann pro Takt 1x 16 Bytes lesen und 1x 16 Bytes schreiben.
- Haswell kann pro Takt 2x 32 Bytes lesen und 1x 32 Bytes schreiben (IIRC). Insofern müssten sogar deine Werte falsch sein.
- K10 kann pro Takt 2x16 Bytes lesen oder 2x8 bzw. 1x16 Bytes schreiben oder 1x 16 Bytes lesen und 1x 8 Bytes schreiben.

Die theoretische Gesamtbandbreite errechnet sich dann einfach je nach Szenario aus der Übertragungsrate pro Takt * Takt * Kerne.


Edit:

Wobei man den L3-Cache bei den AMD-CPUs, Haswell und IIRC auch Nehalem durchaus übertakten kann, die anderen laufen aber ohnehin mit Kerntakt.

Ist das denn bei Westmere anders? Weil ich habe das ganze mit AIDA64 getestet, bei dem 6 Kern Xeon warens 1,2TB/s bei deaktivierten ECC Cache, und beim Xeon E3 1231v3 700GB/s
 
Keine Ahnung, ich kenne auch nicht jede Intel-Architektur auswendig. Kann sein, würde mich aber wundern, weil das doch eine größere Änderung an der Architektur gewesen wäre.

Ich habe gerade mal nen eigenen Speicherbenchmark auf nem Server mit zwei E5-645 @2.40 GHz laufen lassen (allerdings nur einen davon benutzt), der spuckt für den L1 lesend wie schreibend rund 230 GB/s aus, beim Kopieren entsprechend 460 GB/s. Hyperthreading hat nebenbei keinen Einfluss darauf, weil der L1 mit seinen zwei Ports geteilt wird.
 
Zurück
Oben