Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieso ist die L3-Assoziativität der 8xx-AMD-Modelle höher?
Hallo,
in der Überschrift stehts ja schon, wieso hat AMD den 8xx Phenom2 Modellen einen 64fach assoziativen L3 verpasst ?
Von Intel ist man ja gewöhnt, dass die Assoziativität bei kleineren Caches sinkt (weiss ich seit gestern ^^).
Also wieso steigt das bei AMD ?
Das 4MB Modell hat 64fach, das 6MB Modell 48fach.
Sollte der 6MB L3 vielleicht mal 96fach assoziativ sein, aber es ist noch irgendwas verbuggt ?
Oder konnte AMD bei den 4 MB Modellen irgendwas von den abgeschalteten 2MB recyceln ?
Danke & ciao
Alex
CrazyIvan
2009-02-25, 19:39:09
Das ist bei AMD IMHO auch immer der Fall gewesen. Vielleicht hat man einen höheren Aufwand in Kauf genommen, um die Assoziativität trotz steigender Cache-Größe nochmal ein Stück zu senken. Quasi als Premium-Angebot. Kosten ja schließlich auch n paar Euronen mehr, als die anderen Modelle ;)
die assoziativität des caches sagt aus wieviele möglichkeiten es gibt das datum einer bestimmten speicheradresse im cache abzulegen.
bei einem vollassoziativen cache kann jede speicheradresse auf jede stelle im cache abgebildet werden, der cache kann also immer voll ausgenützt werden. (der TLB ist üblicherweise ein vollassoziativer cache)
das genaue gegenteil wäre ein direktabbildender cache, bei dem es für jede speicheradresse genau eine möglichkeit gibt sie im cache abzulegen. wenn nun ein lesezugriff stattfindet und an der entsprechenden stelle bereits ein anderes datum steht fliegt es raus, auch wenn der komplette restliche cache leer ist.
dazwischen gibt es eben den x-fach assoziativen cache, wobei x für die anzahl der abbildungsmöglichkeiten steht.
das aufwändige ist nun, dass man bei einem zugriff auf den speicher bei allen cachelines die das datum enthalten können überprüfen muss ob es bereits im cache ist oder nicht. da das natürlich schnell gehen muss, werden alle überprüfungen parallel ausgeführt.
je nachdem wie der cache hardwaremäßig aufgebaut ist muss deshalb beim deaktivieren nicht zwangsläufig die assoziativität auch verloren gehen.
reallord
2009-02-25, 23:35:13
Das heisst dann aber, dass mehr Assoziviatät besser ist, warum gibt's dann bei "höherwertigen" AMD Prozzis weniger?
Vermutlich um das fehlen an Cache etwas auszugleichen.
Vermutlich um das fehlen an Cache etwas auszugleichen.
Jo aber deswegen meine Frage, wo kommen die Transistoren her, um 64fach zu ermöglichen ? Habe keine Ahnung, wie das in Silizium implementiert wird, aber wieso macht mans nicht auch bei den vollen 6MB ?
Beide Chips sind ja C2 Revision, da kanns keinen großen Unterschied geben .. aus dem Grund verwundert mich die ganze Sache ja.
@Gast:
Hast Du vielleicht nen Link zu möglichen Cacheaufbaudesigns ?
ciao
Alex
CrazyIvan
2009-02-26, 07:50:46
Entweder steh ich grad auf dem Schlauch, oder hier wird irgendwie durcheinander geschrieben. Ein vollassoziativer Cache kann auch als 1-fach assoziativ bezeichnet werden. Ergo müsste also ein Cache umso besser sein, je geringer die Assoziativität ist. Beisst sich imho ein bißchen mit obigem Gast-Statement.
Aquaschaf
2009-02-26, 07:58:54
Ein vollassoziativer Cache kann auch als 1-fach assoziativ bezeichnet werden.
Nein, genau umgekehrt. N-fach assoziativ ist vollassoziativ, wenn N die Anzahl der Cache-Zeilen ist. So etwas kann man auch auf Wikipedia nachlesen.
CrazyIvan
2009-02-26, 23:35:17
@Aquaschaf
Hast natürlich vöölig recht - habe den letzten Halbsatz in der Klammer nicht aufmerksam genug gelesen. Also halten wir mal fest: Je geringer die Assoziativität, desto geringer der Suchaufwand eines Datums. Ergo: 48-fach assoziativer Cache ist besser als 64-facher. AMD muss also bei den 6 MB Varianten einen höheren Aufwand betrieben haben.
reallord
2009-02-27, 00:16:38
Nein, genau umgekehrt. N-fach assoziativ ist vollassoziativ, wenn N die Anzahl der Cache-Zeilen ist. So etwas kann man auch auf Wikipedia nachlesen.
@Aquaschaf
Hast natürlich vöölig recht - habe den letzten Halbsatz in der Klammer nicht aufmerksam genug gelesen. Also halten wir mal fest: Je geringer die Assoziativität, desto geringer der Suchaufwand eines Datums. Ergo: 48-fach assoziativer Cache ist besser als 64-facher. AMD muss also bei den 6 MB Varianten einen höheren Aufwand betrieben haben.
Wenn n-fach assoziativ das Optimum ist, wieso sollte dann eine geringere Assoziativität (48vs64) besser sein?
Je höher die Assoziativität, desto näher am Optimum (Voll-Assoziativität) und damit besser...
BlackBirdSR
2009-02-27, 01:27:32
Wenn n-fach assoziativ das Optimum ist, wieso sollte dann eine geringere Assoziativität (48vs64) besser sein?
Je höher die Assoziativität, desto näher am Optimum (Voll-Assoziativität) und damit besser...
....und je mehr Segmente müssen abgefragt werden und damit schlechter...
Am Ende ist es immer ein Komprimiss zwischen Zugriffszeit und Hit-Rate. Jeder Hersteller hat da seine eigenen Vorstellungen und Ergebnisse. Es ist aber auch vom Gesamtkonzept des Verbands abhängig. Sicher ist nur, dass die beschnittenen Pentium/Celerons anscheinend massiv an Hit-Rate einbüßen, zusätzlich zur eh schon kleinen Größe des Caches. Das gab dem P4-Celeron z.B. den absoluten Rest.
AMDs Lösung sorgt IMO dafür, dass der L3-Cache eine sehr hohe Trefferwahrscheinlichkeit aufweisen soll. Könnte damit zusammenängen, dass der L3-Cache ausschießlich als Victim-Cache agiert und nicht von den Prefetchern bedient wird. Zudem beliefert er ja alle Kerne.
Spasstiger
2009-02-27, 01:43:39
Im Skript aus meiner Vorlesung zur technischen Info sind Benchmarkergebnisse aggebildet und da sieht man, dass im SPEC2000-Benchmark die Miss-Rate bei einem Alpha-Prozessor mit steigender Assoziativität sinkt. D.h. größere Assoziativität = geringere Miss-Rate = weniger RAM-Zugriffe = bessere Performance. Allerdings wurde da nur mit 2-facher, 4-facher und 8-facher Assoziativität getestet.
Ob bei einem 64-fach assoziativen Cache wieder zusätzliche Latenzen entstehen, weiß ich nicht. Es müssen auf jeden Fall viele Cachezeilen parallel geprüft werden und dadurch vergrößeren sich auch die Komparatoren. Und wenn man die Komparatoren in mehreren Stufen aufbaut, hat man auf jeden Fall zusätzliche Latenzen.
Im Skript aus meiner Vorlesung zur technischen Info sind Benchmarkergebnisse aggebildet und da sieht man, dass im SPEC2000-Benchmark die Miss-Rate bei einem Alpha-Prozessor mit steigender Assoziativität sinkt. D.h. größere Assoziativität = geringere Miss-Rate = weniger RAM-Zugriffe = bessere Performance. Allerdings wurde da nur mit 2-facher, 4-facher und 8-facher Assoziativität getestet.
Dafür brauchst du einen Benchmark? ;)
Ob bei einem 64-fach assoziativen Cache wieder zusätzliche Latenzen entstehen, weiß ich nicht. Es müssen auf jeden Fall viele Cachezeilen parallel geprüft werden und dadurch vergrößeren sich auch die Komparatoren. Und wenn man die Komparatoren in mehreren Stufen aufbaut, hat man auf jeden Fall zusätzliche Latenzen.
Genau.
=Floi=
2009-02-27, 01:59:08
ich dachte beim intel bringt aber genau das die mehrperformance bei den schnelleren modellen? warum macht es intel dann genau umgedreht?
weil es eben NICHT die eindeutige Regel gibt:
- je kleiner die Assoziativität desto schlechter die Performance
- je größer die Assoziativität desto besser die Performance
sondern es irgendwo dazwischen ein Optimum gibt, das jeder Hersteller je nach Cacheaufbau anders ermittelt.
Die Frage nach der besten Assoziativität ist ähnlich wie die nach der besten Pipelinezahl: das Optimieren auf die Leistung des einen Parameter verschlechtert die des anderen.
Die Frage nach der besten Assoziativität ist ähnlich wie die nach der besten Pipelinezahl: das Optimieren auf die Leistung des einen Parameter verschlechtert die des anderen.
Ok, also kann man dann unter Ausschluß techn. Defekte davon ausgehen, dass AMD die Assoziativität bei den 6MB Modellen aus Latenzgründen nicht auf 96 hochschraubt und die Hit Rate mit 6 MB dann gut genug ist, während sich mit dem 4MB Modell die 64fache Assoziativität wg. der größeren Hit Rate rechnen würde.
Oder ? :)
Anschlussfrage ist dann: Kann man den Latzenunterschied zw. 4 und 6 MB Modell irgendwie messen ?
Reichen da die üblichen Wald und Wiesen - Everest, Sandra, CPU-Z etc. benches ?
ciao
Alex
Spasstiger
2009-02-27, 18:58:34
Anschlussfrage ist dann: Kann man den Latzenunterschied zw. 4 und 6 MB Modell irgendwie messen ?
Reichen da die üblichen Wald und Wiesen - Everest, Sandra, CPU-Z etc. benches ?
Hier wurde die L3-Cache-Latenz des Core i7 mit Everest gemessen:
http://www.bit-tech.net/hardware/cpus/2009/01/26/intel-core-i7-memory-performance-review/4
Müsste also auch beim Phenom II gehen.
Hier wurde die L3-Cache-Latenz des Core i7 mit Everest gemessen:
http://www.bit-tech.net/hardware/cpus/2009/01/26/intel-core-i7-memory-performance-review/4
Müsste also auch beim Phenom II gehen.
Danke, hab mich gerade noch an nen alten Phenom1 Test erinnert:
http://ixbtlabs.com/articles3/cpu/rmma-phenom.html
Ich hoffe mal die Typen machen das auch mal mit den Phenom2/ X3 / X4 8xx / DDR3
Wenn die keinen Unterschied messen, dann weiss ich auch nicht ;-)
ciao & Danke für den Link
Alex
BlackBirdSR
2009-02-27, 21:53:17
Danke, hab mich gerade noch an nen alten Phenom1 Test erinnert:
http://ixbtlabs.com/articles3/cpu/rmma-phenom.html
Ich hoffe mal die Typen machen das auch mal mit den Phenom2/ X3 / X4 8xx / DDR3
Wenn die keinen Unterschied messen, dann weiss ich auch nicht ;-)
ciao & Danke für den Link
Alex
Das muss ja alles nicht heißen, dass die CPUs auch wirklich unterschiedliche Latenzen für den L3-Cache besitzen. Die Latenz ist kein physikalischer Parameter, sondern ein vom Designer festgelegter Wert, basierend auf der Zeitspanne die das Signal braucht, bis es stabil abgegriffen werden kann.
Nur weil der eine Phenom2 schneller könnte, muss AMD ihm deswegen noch lang keine niedrigere Latenz verpassen.
Soweit ich mich noch an meine Rechnerstrukturen-Vorlesung erinnern kann, war die Frage der Assoziativität eine Abwägung an Transistorzahl und Geschwindigkeit. Ein direct-mapped Cache (1-assoziativ) braucht nur einen Vergleicher. Ein n-assoziativer Cache dagegen braucht eben n Vergleicher um das gegebene Datum mit allen n Zeilen im Satz zu überprüfen. Je nach Latenz des Caches könnt man da aber sicherlich auch ein paar vergleicher sparen und einfach mehrere passes machen.
Da der L3 eh eine hohe Latenz hat, dürfte mehr Assoziativität besser sein ;).
Ich finde den Wert 48 auch sehr komisch - wenn AMD die Technik im Prinzip seit dem K10 beibehalten hat, müsste er 96-fach assoziativ sein. Vllt ist er im C2 schlicht nicht ganz i.O., oder die Latenz wird durch eine Assoziativität gesprengt und 64fach ist quasi das Maximum.
Bx 2MiB -> 32Fach
Cx 4MiB -> 64Fach
Cx 6MiB -> 48Fach :confused:
Tiamat
2009-06-20, 22:10:51
Ja also ein höherer Assoziationsgrad sorgt für weniger Cache-misses, wie bereits erwähnt. Es muss aber mehr Logik eingesetzt werden, um das zu realisieren. Gleichzeitig nimmt aber zunehmen die Cacheperformance ab, weil z.b die Transferrate höher wird.
Solche Analysen macht man natürlich in den Intel oder AMD Labs auch.
Die Faustregel je höher desto besser, stimmt hier nur bedingt. In Wahrheit ist das ne Art Kalibrierung, bei der man rausfinden muss, welche Einstellungen sich in der Realität optimal auswirken, bzw welcher sich noch lohnt.
In unserem Script ist ne Übersicht an Assoziativitäten und Auswirkung auf die Cache-misses anhand von 2 Programmen Spice und GCC.
Gegenüber 1-facher Assoziativität, also Direct Mapping verbessert sich die Trefferquote beim 4-fach Assoziativen um 0,4% ( GCC ) und bei Spice verändert das gar nichts.
Viel wirksamer hat sich die miss-Rate in Abhängigkeit von der Blockgröße des Caches verändert. Auch hier gabs ne Gegenüberstellung von Blockgröße 1 Wort und Blockgröße 4 Worte.
Und da hat sich die Rate bei GCC von urspünglich 5,4% Gesamtfehlerrate auf 1,9% verbessert und bei Spice von 1,2% auf 0,3% verändert.
Wenn die Assoziativität alleiniges Kriterium für gute Cache-Performance wäre, hätten wir sicher in allen Cache-Stufen vollassoziativen Cache :)
Ja also ein höherer Assoziationsgrad sorgt für weniger Cache-misses, wie bereits erwähnt.
Nicht zwangsläufig, aber in der regel ja ;)
Gleichzeitig nimmt aber zunehmen die Cacheperformance ab, weil z.b die Transferrate höher wird.
Was meinst Du mit "Cacheperformance" ? Zugriffszeit ? Ne höhere Transferrate klingt ja erstmal nicht schlechter ^^
ciao
Alex
BlackBirdSR
2009-06-21, 14:11:30
Was meinst Du mit "Cacheperformance" ? Zugriffszeit ? Ne höhere Transferrate klingt ja erstmal nicht schlechter ^^
ciao
Alex
Die machbare minimale Zugriffslatenz nimmt erfahrungsgemäß ab, wenn die Assoz. erhöht wird.
Update:
Neuer Rekord bei den MagnyCours MCM Chips: 96fache Assoziativität:
http://www.planet3dnow.de/photoplog/file.php?n=7271&w=o
http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?id=1252103269
http://www.xtremesystems.org/forums/showthread.php?t=233565
Da werden die beiden 6 MB Teile wohl clever zusammengeschalten.
Edit:
Ist wohl nur ein Auslesefehler:
http://www.abload.de/img/istanbull3cachesizeasssgqc.jpg
ciao
Alex
Eher nicht. Das sind komplett getrennte Caches, da gibt es keine gemeinsame Assoziativität.
Eher nicht. Das sind komplett getrennte Caches, da gibt es keine gemeinsame Assoziativität.
Jo, deswegen ja der Edit :)
Was das dann aber in Wirklichkeit ist, weiss keiner ^^
Sehr sicher die gleiche Assoziativität wie ein 6 Kerner mit vollem L3. Also 48 fach.
Sehr sicher die gleiche Assoziativität wie ein 6 Kerner mit vollem L3. Also 48 fach.
Wieso nicht 64 ? :)
Der MagnyCours taktet eh nicht so schnell und soll eher stromsparen, ausserdem will man vielleicht das fehlende MB des Probfilters ausgleichen.
Wieso nicht 64 ? :)
Der MagnyCours taktet eh nicht so schnell und soll eher stromsparen, ausserdem will man vielleicht das fehlende MB des Probfilters ausgleichen.
Weil man wohl eine gewisse Anzahl an Komperatoren hat in ihrem Design. Je weniger Cache desto höher wird Assoziativität.
Bei 6 MiB ist sie eben 48.
Weil man wohl eine gewisse Anzahl an Komperatoren hat in ihrem Design. Je weniger Cache desto höher wird Assoziativität.
Bei 6 MiB ist sie eben 48.
Ja, aber der Probefilter braucht doch keine Komperatoren, d.h. da bleiben welche über, da nur 5 MB genutzt werden. Das könnten dann eventuell schon für 64fach reichen. Das gibts im Moment zwar nur für 4 MB L3, aber wer weiss schon genau, wieviel Komperatoren AMD wirklich verbaut hat :)
ciao
Alex
Ja, aber der Probefilter braucht doch keine Komperatoren
Doch, tut er.
Doch, tut er.
Ok, dann die blöde Frage: Wieso ?
Der Teil des Caches dafür arbeitet immer noch als Cache. Es werden nur andere Daten vorgehalten.
Der Teil des Caches dafür arbeitet immer noch als Cache. Es werden nur andere Daten vorgehalten.
Naja, aber fürs Vorhalten brauch ich keine Assoziativität. Die 64fache bei den 4MB Version sieht ausserdem danach aus, als ob die Komperatoren <> Cachezellenzuordnung nicht statisch, sondern eher flexibel ist.
Aber jetzt wirds ziemlich spezifisch, wer weiss wie AMD das genau zugeordnet hat.
ciao
Alex
Naja, aber fürs Vorhalten brauch ich keine Assoziativität.
Doch braucht man. Du hast nicht verstanden was Assoziativität ist. Direct Mapped werden sie ihn auch für diesen Zweck sicher nicht betreiben.
Doch braucht man. Du hast nicht verstanden was Assoziativität ist. Direct Mapped werden sie ihn auch für diesen Zweck sicher nicht betreiben.
Nö, das weiss ich, aber das Wissen über den probe filter ging nicht wirklich über die Erkenntnis hinaus, dass das Teil Probes abfängt. Hab da mal ein Patent ausgegraben:
http://www.patentstorm.us/patents/7155572/description.html
Falls das das richtige Patent ist, sieht es so aus, als ob das Teil eng an den Cache gekoppelt ist, das ist anscheinend nichts anderes als eine MOESI Erweiterung, damit erübrigen sich dann die obige Überlegung.
ciao
Alex
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.