Rambandbreite Theorie und Praxis

Agent

Fleet Captain Special
Mitglied seit
21.04.2002
Beiträge
311
Renomée
0
Standort
Wien/Österreich
Hallo Leute.

Wie im Betreff schon formuliert interessiert mich die Theorie und Praxis bzw. habe dazu eine konkrete Frage die ich schon selbst versucht habe zu klären, aber noch nicht wirklich die erklärende Lösung entdeckt habe.

Habe einen Core2 Duo E6750 mit DDR2 800 2GB Corsair und verwendet die natürlich auf Dual Channel (wird auch beim Posten angezeigt "Dual Channel interleaved")
Auch der Ram ist im Bios fix auf DDR2 800 eingestellt.

Wie wir ja alle wissen hat DDR2 800 eine theoretische Bandbreite von 12,8 GB.
Dies errechnet sich durch : DDR2-800: 200 MHz (Speichertakt) x 2 (DDR) x 2 (doppelter I/O-Takt) x 128 Bit (Busbreite) = 102400 MBit/s = 12800 MB/s

Mein Core2 Duo welcher einen FSB von 1333 besitzt sollte laut Berechnungen eine theoretische Bandbreite von 10.6 GB haben.
Dies errechnet sich durch:FSB1333: 333 MHz FSB + 64 Bit * 4 (QDR) Datenpakete pro Takt = 85248 MBit/s = 10600 MB/s

Habe dies beim Kauf auch berücksitigt, denn es würde ja DDR2 667 noch reichen.. hat auch 10.6 GB, ABER ich wollte etwas "Luft nach oben" haben und ein bisserl mehr Bandbreite vom Ram her kann nicht schaden. Vor allem bei den tollen Preisen für DDR2 800.

Gleich vorweg ich bin nicht der Benchmark-König bzw. gebe nicht all zu viel auf 3DMarks... Superpi, Sisoft Sandra und Konsorten.
Jedoch wollte ich trotzdem ansehen was ich an Rambandbreite nun habe. Und siehe da Sandra spuckt mir aus einen Wert von 6700 MB/sec.

Hier z.B ---> http://www.hardware-mag.de/hardware.php?id=468&page=4
ist deutlich ersichtlich dort konnte auch nicht mehr Rambandbreite erreicht werden.

Nun zu meiner Frage. Und die würde ich gerne verstehen. Ich weiß wieviel theoretisch zur Verfügung steht und ich weiß wieviel ich praktisch habe. Nun versuche ich zu erkennen warum der Unterschied so groß ist. Das man nicht genau den theoretischen Wert erreicht ist mir ja klar aber um die Hälfte verfehlen ist schon etwas seltsam.

Wäre mir noch einleuchtend wenn ich Singel Channel hätte aber das ist ja nicht der Fall. Für Single Channell wäre der Wert eher passend.

Wenn mir das jemand erklären könnte wäre ich äussert dankbar.

greets
 
Zuletzt bearbeitet:
mhm... Es sieht so aus als ob niemand dazu eine passende Antwort parat hat. Sehr schade denn das hätte mich sehr interessiert.

Es hat doch fast den Anschein, als ob der Core 2 Duo einen schlechtern Speicherkontroller hat.. bzw. im Chipsatz, sitzt ja nicht in der CPU wie beim AMD. Ein AMD kommt da auf 8000-9000 MB/s. Nur sehr seltsam, daß er wieder dem C2D dann fast überall unterlegen ist.

Schon eigenartig.
 
Die Taktrate der DDR(2) Rams gibt lediglich die Datentaktrate während eines Bursts an. Du unterschlägst somit die initialie Zugriffszeit (CAS + RAS), wenn Du lediglich die Burstrate betrachtest. Ein DDR2 Modul kann max 8 Datenwörter á 64Bit lesen. Anschließend muss eine erneute Adressierung erfolgen. Es kann sein, dass die erneute Adressierung jedoch schon während dem Auslesen anliegt und durch das erzielte Pipelining keine weitere Verzögerung auftritt.

Wie schaut's mit dem Refresh aus? Muss dies der Memory Controller machen? Oder schafft dies das Ram allein? Ansonsten klaut Dir das nochmal Bandbreite.

Hierzu müsste man mal c't nachlesen. Diese Artikel:
http://www.heise.de/ct/Redaktion/ciw/speicher.html

Durch Megabyte Große 2nd Level Caches wird der (langsame) Hauptspeicher gut entkoppelt. Deshalb schlägt sich eine Performance Steigerung des Rams nur zu einem Bruchteil in einer gesteigerten Gesamtleistung nieder.

Ob nun MemoryController intern in der CPU oder extern ist vom theoretischen Standpunkt fast egal. Praktisch gibt's schon ein paar Unterschiede bzw. Buffering, max. Bandbreite auf den Northbridge <-> CPU Kanal usw. Zur Zeit ist ein MemoryController einer Core2 CPU etwas langsamer als ein Athlon64 MemoryController. Allerdings hat auch hier der intel Chipsatz P35 gegenüber dem P965 nochmal 5% draufgelegt:
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2991&p=5

Unabhängig vom Ram leistet die Core2 CPU pro Takt mehr als eine Athlon64 X2 CPU. Gründe finden sich z.B. hier:
http://www.intel.com/technology/arc...o.htm?iid=technology_coreengage+body_viewdemo

7oby
 
Ja natürlich ist das äussert einleuchtend. Den besten Fall erreicht man die theoretische Bandbreite so gut wie fast nie.. nur hat es mich etwas verwundet, daß mir SiSoft Sandra (Ich weiß ist nur ein theoretischer Benchmark und spiegelt nicht wirklich die real live performance wieder) so wenig ausspuckt. Das ich nicht an 10.6 komme hatte ich mir schon gedacht aber 6.5 dachte ich ursprünglich ist etwas seltsam. Wobei mir klar war, daß dies wohl stimmen muss da der Rest der Performance, Games, Superpi usw. absolut schnell sind und ich mit den Werten bei den Referenzwerten aus dem Netz liege.

Wollte es eben nur verstehen und hierbei dürfte eben der Unterschied beim Core2Duo so groß sein, daß also 4 GB Bandbreite werden verschenkt. Dann fragte ich mich noch warum der Core2Duo trotzdem dem Athlon 64 deutlich überlegen ist, wo eben jener doch mehr RAM Performance hat. Wenn ich das richtig verstanden hab liegt das daran, daß die C2D 4 MB 2nd Level Cache besitzen und dies ist im vlg. zum A64 (hat glaub ich 512kb wenn ich jetzt nicht irre, bitte nicht schlagen wenn ich falsch liege) viel mehr.. und der 2nd lvl Cache ist ja um vieles schneller als der RAM, dann kommt noch das prefetching mit welches versucht intelligent zu erahnen was als nächstes benötigt wird usw. Bei 4 MB braucht er weniger oft in den Ram "schauen" als bei 512 kb Cache, daher wirkt sich die etwas schlechtere Ram performance des C2D im vgl. zum A64 nicht schlimm in Real live aus, da er beim Cache die Muskeln spielen lassen kann.

Vielen Dank für die Erklärung ich habe das ganze nun durchschaut.

Schönen Tag noch.
greets
Agent.
 
Dann fragte ich mich noch warum der Core2Duo trotzdem dem Athlon 64 deutlich überlegen ist, wo eben jener doch mehr RAM Performance hat. Wenn ich das richtig verstanden hab liegt das daran, daß die C2D 4 MB 2nd Level Cache besitzen und dies ist im vlg. zum A64 (hat glaub ich 512kb wenn ich jetzt nicht irre, bitte nicht schlagen wenn ich falsch liege) viel mehr..
Ich hätte eher gesagt: Cache entkoppelt, deshalb schlägt sich eine niedrigere Ram Performance nur bedingt auf die Gesamtperformance nieder. Hier wird sehr gut ausgemessen, was eine höhere Ram Performance beim C2D bringt:
http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2991&p=3

FSB1066 -> FSB1333 bringt doch schon einiges, weil die Ram Bandbreite um 33% steigt.

und der 2nd lvl Cache ist ja um vieles schneller als der RAM, dann kommt noch das prefetching mit welches versucht intelligent zu erahnen was als nächstes benötigt wird usw. Bei 4 MB braucht er weniger oft in den Ram "schauen" als bei 512 kb Cache, daher wirkt sich die etwas schlechtere Ram performance des C2D im vgl. zum A64 nicht schlimm in Real live aus, da er beim Cache die Muskeln spielen lassen kann.
Klar, aber große Caches gab es auch schon vor dem C2D siehe Xeon und Opteron. Der Effekt war nicht immer soooo groß. Im Serverbereich schon, da dort viel mehr Threads und Tasks gleichzeitig laufen, die wollen alle günstigerweise im Cache liegen. 64Bit OS ebenso: Programme größer => größerer Cache erforderlich.

Schau' Dir nochmal das Intel Video oben an. In meinen Augen die Killer beim C2D sind: Wide Execution (3 -> 4 Befehle gleichzeitig in jeder Pipelinestufe), Macrofusion und 128Bit SSE Befehle in einem Takt.
 
Zurück
Oben Unten