Archiv verlassen und diese Seite im Standarddesign anzeigen : Cacheanbindung von E6320/E6420
C.D.B.
2007-06-07, 08:59:08
Moin!
Frage mich gerade, ob o.g. CPUs "nur" 2MB mehr L2 als E6300/E6400 haben (bei 8-fach-Assoziativ), oder der L2 auch 16-fach-Assoziativ wie bei E6600/E6700 angebunden ist. Wo gibts dazu was genaueres nachzulesen?
thx!
man liest sich, bye
die kerne werden sicher nicht extra gefertigt werden, man kann also von 4MB 16x-assoziativ ausgehen.
BlackBirdSR
2007-06-07, 12:27:05
Intel fertigt CPUs mit weniger Cache anscheinend nicht extra. (bzw man hat einen genauen Baukasten)
Kleinere Caches werden durch Halbierung erzeugt. Zum Beispiel kann man den Cache einfach bei 2 MB abtrennen. Dadurch geht auch zwangsläufig die Assoziativtät flöten.
4 MB -> 16-way
2 MB -> 8-way
1 MB -> 4-way
Beim Pentium4 Celeron war das mit unter einer der Leistungskiller schlechthin.
was bedeutet z.B. das 8-fach-Assoziativ? heißt das ich ahbe 8 Datenleitungen zum Cache?
Intel fertigt CPUs mit weniger Cache anscheinend nicht extra. (bzw man hat einen genauen Baukasten)
Kleinere Caches werden durch Halbierung erzeugt. Zum Beispiel kann man den Cache einfach bei 2 MB abtrennen. Dadurch geht auch zwangsläufig die Assoziativtät flöten.
4 MB -> 16-way
2 MB -> 8-way
1 MB -> 4-way
Beim Pentium4 Celeron war das mit unter einer der Leistungskiller schlechthin.
Und wie lief das beim Dothan-Celeron? Der soll ja seine Assoziativität beibehalten haben, was auch ein Grund sein sollte, warum er sackschnell war. Oder ist die Info überholt?
MfG,
Raff
was bedeutet z.B. das 8-fach-Assoziativ? heißt das ich ahbe 8 Datenleitungen zum Cache?
nein das bezieht sich auf die abbildung vom cache auf den hauptspeicher.
bei einem direkt abbildenden cache hat jede cacheline im hauptspeicher genau eine möglichkeit im cache zu landen.
erfolgt nun ein weiterer speicherzugriff, der auf die gleiche cacheline abbildet, dann fliegen alle daten die vorher in dieser cacheline waren aus dem cache, selbst wenn eigentlich noch platz im cache frei wäre.
bei einem 8-fach-assoziativen cache hat jede adresse im hauptspeicher 8 verschiedene möglichkeiten im cache zu landen. erst wenn alle 8 möglichen cachelines besetzt sind muss eine platz machen. bei einem 16x assoziativen cache gibt es dementsprechend 16 möglichkeiten, bei einem 4x assoziativen entsprechende 4.
bei einem vollassoziativen cache kann jede line im cache auf jede beliebige stelle im hauptspeicher abgebildet werden. dann muss eine cacheline erst aus dem cache entfernt werden wenn wirklich kein freier platz mehr vorhanden ist.
BlackBirdSR
2007-06-07, 14:21:40
Und wie lief das beim Dothan-Celeron? Der soll ja seine Assoziativität beibehalten haben, was auch ein Grund sein sollte, warum er sackschnell war. Oder ist die Info überholt?
MfG,
Raff
keine Ahnung.
Ich würde darauf tippen, dass auch hier nur jeweils die Hälfte genutzt wird. Man müsste sich mal ein paar Intel Dokumente zur Brust führen.
puntarenas
2007-06-07, 14:26:51
bei einem 8-fach-assoziativen cache hat jede adresse im hauptspeicher 8 verschiedene möglichkeiten im cache zu landen. erst wenn alle 8 möglichen cachelines besetzt sind muss eine platz machen. bei einem 16x assoziativen cache gibt es dementsprechend 16 möglichkeiten, bei einem 4x assoziativen entsprechende 4.
Interessant. Für mich als DAU stellt sich aber vor allen Dingen die Frage, warum dies in der Praxis beim C2D kaum Auswirkungen auf die Performance zu haben scheint.
Interessant. Für mich als DAU stellt sich aber vor allen Dingen die Frage, warum dies in der Praxis beim C2D kaum Auswirkungen auf die Performance zu haben scheint.
eine genaue antwort auf diese frage werden dir wohl nur die intel-ingenieure geben können. ;)
auf jeden fall hängt das ganze natürlich stark davon ab wie die speicherzugriffe verteilt sind.
wenn du beispielsweise ein array hast, welches hintereinander im speicher liegt und auf jedes element gewisse operationen ausführst, dann werden auch die speicherzugriffe eher sequentiell sein und dementsprechend auf hintereinanderliegende cachelines abgebildet.
kommt man nun zu einem element, welches wieder in die gleiche cacheline abgebildet wird, so fliegt diese zwar raus (bzw. je nach cacheassoziativität auch erst nach 4/8/16 zugriffen die auf die gleiche line abbilden), die wahrscheinlichkeit dass dieses datum überhaupt noch gebraucht wird ist allerdings recht gering und damit auch der einfluss auf die performance.
puntarenas
2007-06-07, 14:43:05
Danke, also schön dass bei höherer Assoziativität auch mehr Cache zur Verfügung steht. Jedenfalls theoretisch :)
Hamud
2007-06-07, 16:11:33
Moin!
Frage mich gerade, ob o.g. CPUs "nur" 2MB mehr L2 als E6300/E6400 haben (bei 8-fach-Assoziativ), oder der L2 auch 16-fach-Assoziativ wie bei E6600/E6700 angebunden ist. Wo gibts dazu was genaueres nachzulesen?
Wenn du auf den Hauptspeicher zugreifst hast du eine Speicheradresse, die du ausgelesen haben möchstest. Mit der Adresse ist der Speicherort exact festgelegt(Ich tu mal so als ob es die MMU nicht gibt, das ist hier ohne belangen). Jetzt zum Cache: Dort werden Kopien des Hauptspeiches abgelegt(meist mit 64 Byte größe und auch noch aligned). Sobald die CPU eine Speicherzelle braucht, sucht diese erst im Cache. Das komplette durchsuchen des Caches würde lange dauern, gerade bei großen Caches, deshalb wird aus der Speicheradresse eine Cache adresse ermittelt unter der der Eintrag zu suchen ist. Und jetzt kommt die Assoziativität ins Spiel. Bei X facher Asoziativität, können unter einer Adresse X Einträge gespeichert werden. D.h. es müssen nur noch sehr wenige Einträge durchsucht werden. In der Praxis ist das meist so, das mit steigenden X auch die Zugriffszeit größer wird. Die Zugriffszeit wird auch beim Speichern größer. Der Vorteil an einem hohen X ist aber, dass unterschiedliche Cachelines mit er Selben Cacheadresse sich nicht gegenseitig andauern verdrängen.
Deshalb ist es wichtig zur Prozessorarchitektur die richtige Assozaitivität zu finden.
ASrock_User
2007-06-07, 18:55:57
Intel fertigt CPUs mit weniger Cache anscheinend nicht extra. (bzw man hat einen genauen Baukasten)
Kleinere Caches werden durch Halbierung erzeugt. Zum Beispiel kann man den Cache einfach bei 2 MB abtrennen. Dadurch geht auch zwangsläufig die Assoziativtät flöten.
4 MB -> 16-way
2 MB -> 8-way
1 MB -> 4-way
Beim Pentium4 Celeron war das mit unter einer der Leistungskiller schlechthin.
Also im Datenblatt zur E2000 Serie klick (ftp://download.intel.com/design/processor/datashts/31698101.pdf) findet sch auf Seite 7 folgendes wieder:
8-way cache associativity provides improve
cache hit rate on load/store operations
Sprich, dich 8-way E2140/E2160 ?!?
Gruß
Asrock_USer
Es kommt auf die Art und Weise an wie man den Cache halbiert. Halbiert man die Anzahl an Sätzen, dann nimmt nur die Kapazität ab und die Assotiativität bleibt gleich. Halbiert man die Anzahl an Ways pro Satz und lässt die Satzanzahl gleich, dann halbiert man nicht nur die Kapazität sondern eben auch noch die Assotiativität.
Anscheinend ist Letzteres bei den C2Ds der Fall.
C.D.B.
2007-06-08, 10:21:04
thx ASrock_User für den Link. Im selben Verzeichniss gibts ja auch das Datenblatt für E4x00/E6xx0 (ftp://download.intel.com/design/processor/datashts/31327804.pdf) ...
Interessant ist Seite 8:4 MB Advanced Smart Cache (Intel Core™2
Extreme processor X6800 and Intel Core™2
Duo desktop processor E6700, E6600, E6420,
and E6320, only)
...
2 MB Advanced Smart Cache (Intel Core™2
Duo desktop processor E6400, E6300, E4400,
and E4300 only)
...
8-way cache associativity provides improved
cache hit rate on load/store operations
Den Datenblättern nach ist bei ALLEN C2D-Prozessoren (inkl. E21x0) der L2 8-fach-Assoziativ angebunden! :O
Jetzt bin ich reichlich verwirrt ... :uconf2:
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.