PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie berechnet man die Speicherbandbreite?


Steffko
2005-05-18, 16:33:37
Servus, ich bin grade in den 3dcenter News über die Speicherbandbreiten Angaben des PS3 GGDR3 Speichers gestolpert und da hab ich mich natürlich gefragt, wie diese Berechnung eigentlich zustandekommt und ob die Speichergröße da miteinbezogen wird oder ob das ne Angabe a la "xx GB/Sec/MB" o.Ä. ist ^^
Thx für eure Hilfe

deekey777
2005-05-18, 16:36:30
Speichertakt x Bandbreite. Oder?

Exxtreme
2005-05-18, 16:36:37
Busbreite x Taktfreuquenz. :)

Das ist aber die theoretische Bandbreite und nicht die reale. Die reale liegt um einiges niedriger.

Steffko
2005-05-18, 16:39:58
Hmm, Busbreite = 256bit * Takt = 350mhz = 89600 und jetzt noch mit der Speichermenge multiplizieren? Das wären dann 22,4GB, käme also hin ^^
Nur frage ich mich gerade, wie die 10mb eDRAM der Xbox 360 GPU da auf 256GB/s kommen können. Die müßten doch dann, verglichen mit beispielsweise dem PS3 Speicher, um WELTEN schneller sein. Und da ist ja auch noch der normale Speicher :confused:

Neomi
2005-05-18, 16:47:18
Hmm, Busbreite = 256bit * Takt = 350mhz = 89600 und jetzt noch mit der Speichermenge multiplizieren?

So nicht, sondern so:

256 Bit (= 32 Bytes) * 350 MHz * 2 (DDR) = 22,4 GB/s

Immer die Einheiten beachten. 1 m + 100 cm sind ja auch nicht 101 km.

Steffko
2005-05-18, 16:52:16
Ah ok :D

Bei den Einheiten war ich mir nicht so ganz sicher, aus den Mhz werden dann also quasi MB/s.

Und diese 22,4GB/s gelten nun für welche Größenordnung des Speichers? Schafft ein MB des Speichers so viel pro Sekunden, oder wie?

dargo
2005-05-18, 17:31:29
Die Speicherbandbreite hat doch nichts mit der Menge zu tun. :|

Steffko
2005-05-18, 18:29:14
Ok, jetzt bin ich hinreichend verwirrt ;)

Wie genau setze ich denn dann die Menge mit der Bandbreite in Verbindung?

patermatrix
2005-05-18, 18:43:10
Die Menge hat mit der Bandbreite nichts zu tun... Wie dargo über dir schon sagte! :|

SKYNET
2005-05-18, 19:00:23
Die Speicherbandbreite hat doch nichts mit der Menge zu tun. :|


stimmt, aber die menge der speichersteine hat damit zutun. ;)


und warum rechnet ihr alle so kompliziert ?

SC(64bit) = speichertakt mal 16 = bandbreite
DC(128bit) = speichertakt mal 32 = bandbreite
QC(256bit) = speichertakt mal 64 = bandbreite
OC(512bit) = speichertakt mal 128 = bandbreite

dargo
2005-05-18, 19:04:20
stimmt, aber die menge der speichersteine hat damit zutun. ;)

Könntest du das bitte genauer erklären. Verstehe jetzt nicht genau worauf du hinaus willst.

SKYNET
2005-05-18, 19:06:39
Könntest du das bitte genauer erklären. Verstehe jetzt nicht genau worauf du hinaus willst.


probiere dochmal mit 2 speichersteinen 256bit zu bedienen. ;)

dargo
2005-05-18, 19:15:19
Verstehe immer noch nicht was du meinst. ;(

Neomi
2005-05-18, 19:27:34
Bei den Einheiten war ich mir nicht so ganz sicher, aus den Mhz werden dann also quasi MB/s.

Nein, aus den Bit werden Byte, nicht aus den MHz, die werden nur zu 1000000/s. 2 ist ein Multiplikator ohne Einheit.

Und diese 22,4GB/s gelten nun für welche Größenordnung des Speichers? Schafft ein MB des Speichers so viel pro Sekunden, oder wie?

Der gesamte Speicher schafft diese Menge pro Sekunde, völlig unabhängig von der Größe. Stell dir einfach mal eine Festplatte vor. Kopierst du eine Datei von 1 GB Größe, dauert das vielleicht eine halbe Minute. Kopierst du eine Datei, die 2 GB groß ist, dauert das schon eine ganze Minute, da die Geschwindigkeit sich nicht ändert. Und ob die Festplatte nun 80, 120, 160 oder 200 GB groß ist, hat auch nichts mit der Geschwindigkeit an sich zu tun (wenn die ahl der Platter und die Technologie gleich ist).

Muh-sagt-die-Kuh
2005-05-18, 21:51:46
probiere dochmal mit 2 speichersteinen 256bit zu bedienen. ;)Technisch gesehen ist das problemlos möglich.

Chief o Hara
2005-05-18, 22:39:44
Verstehe immer noch nicht was du meinst. ;(

Jeder Speicherbaustein wird vom Chip mit einer gewissen Busbreite angesprochen, die wiederum multipliziert mit der Anzahl an der Bausteine die Busbreite des gesamten Speicherinterfaces ergibt.
Hast du zum Beispiel Speicherbausteine die mit jeweils 32bit angebunden sind, bräuchtest du 8 von denen um eine High End Karte mit einem 256bit Speicherinterface zu bedienen.
Hoffe mal das ist jetzt soweit korrekt.

SKYNET
2005-05-19, 01:30:05
Technisch gesehen ist das problemlos möglich.

nein, dafür bräuchtest du mindestens 4 steine.

128bit kannste mit 2 steinen machen.

Coda
2005-05-19, 01:33:59
Es lassen sich auch Chips mit 256bit Interface produzieren wenn man denn lustig wäre.

Spasstiger
2005-05-19, 01:49:05
@Steffko:

Die Speicherbandbreite ist ein Maß dafür, welche Datenmengen (in Byte) pro Sekunde maximal aus dem Speicher ausgelesen oder in den Speicher geschrieben werden können.

Man benötigt also zur Berechnung eine Angabe, die etwas mit der Datenmenge zu tun hat und eine, die etwas mit der Zeit zu tun hat.

Für ersteres nimmt man die Busbreite, sprich wie "breit" sind die Verbindungen des Speichers mit dem Grafikprozessor bzw. wieviel Bits können gleichzeitig in den Speicher geschrieben werden/ausgelesen werden. Bildlich stellt man sich den Speicherbus als Autobahn vor. Je mehr Spuren diese hat, umso mehr Autos passen drauf und können gleichzeitig an einem bestimmten Zielort ankommen.

Die Busbreite wird immer in Bit angegeben. Da man die Speicherbandbreite aber gerne mit einer Einheit byte sieht, muss man noch Bit in Byte umrechnen.
Aus 256 Bit Busbreite werden also 256/8=32 Byte (also immer durch 8 teilen).

Ein Maß für die Zeit ergibt sich aus der Taktfrequenz. Die Frequenz hat ja die Einheit Hertz (Hz) = "Eins geteilt durch Sekunde" (1/s). D.h. wie oft pro Sekunde passiert etwas. Um die Speicherbandbreite zu ermitteln rechnet man mit der Taktfrequenz des Speichers (kurz: Speichertakt).
Nun kommt bei DDR-Speicher noch hinzu, dass pro Takt 2 Datenpakete geschrieben/ausgelesen werden können. Deshalb muss man die Speicherbandbreite nach Berechnung noch verdoppeln.

Die Gesamtrechnung für eine Grafikkarte mit DDR-Speicher sieht nun so aus:

Speicherbandbreite = Busbreite in Byte * Speichertakt * 2

Z.B.
Busbreite = 256 Bit = 32 Byte
Speichertakt = 500 MHz = 500 Millionen/Sekunde
DDR-Speicher
=> Speicherbandbreite = 64 Byte * 500 MHz * 2 =32 Byte * 500 Millionen/Sekunde * 2 = 32 Milliarden Byte/Sekunde = 32 GB/s

Ailuros
2005-05-19, 04:38:59
stimmt, aber die menge der speichersteine hat damit zutun. ;)


und warum rechnet ihr alle so kompliziert ?

SC(64bit) = speichertakt mal 16 = bandbreite
DC(128bit) = speichertakt mal 32 = bandbreite
QC(256bit) = speichertakt mal 64 = bandbreite
OC(512bit) = speichertakt mal 128 = bandbreite

*seufz* haette ich wohl patentieren muessen.... ;) :D

Muh-sagt-die-Kuh
2005-05-19, 22:53:15
Es lassen sich auch Chips mit 256bit Interface produzieren wenn man denn lustig wäre.Korrekt....genau darauf zielte mein Kommentar ab ;)

Scream
2007-03-19, 21:13:16
kann mir jemand kurz sagen wie man die bandbreite eines core 2 duo errechnet und die dazugehörige speicherbandbreite??

weil ich les immer dass er 8 GB/sec hat, was auf nem DualChannel DDR2 533 Interface erreicht wird.
nur wie rechne ich das genau?

Spasstiger
2007-03-19, 21:19:12
kann mir jemand kurz sagen wie man die bandbreite eines core 2 duo errechnet und die dazugehörige speicherbandbreite??

weil ich les immer dass er 8 GB/sec hat, was auf nem DualChannel DDR2 533 Interface erreicht wird.
nur wie rechne ich das genau?
Ein Kanal zum Speicher hat 64 Bit, bei zwei Kanälen (=Dual-Channel) sinds dementsprechend 128 Bit.
DDR2-533-Speicher taktet mit 266 MHz. Und es werden zwei Datenpakete während einem Taktzyklus übertragen (Double-Data-Rate = DDR).
Jetzt multiplizierst du einfach 266 MHz mit 2 und mit den 128 Bit und kommst auf 68096 MBit/s. Das ganze noch durch 8 teilen, um auf MByte/s zu kommen.
(68096 MBit/s) / (8 Byte/Bit) = 8512 MByte/s.

Die prozessorinterne Bandbreite von der Anbindung an den Cache ist aber noch ein ganzes Stück höher.

Und dann gibts noch die Anbindung des Prozessors an die Northbridge, in der ja der Speichercontroller sitzt. Hier kann man fast genauso wie beim Speicher rechnen, nur dass hier die Anbindung nur 64 Bit breit und man mit dem FSB-Takt statt dem Speichertakt rechnet. Da der FSB bei Intel quad-pumped ist, also vier Datenpakete pro Taktzyklus übertragen werden, kommt man aber dennoch auf die gleiche Bandbreite wie beim Speicher (wenn Speichertakt = FSB-Takt).

Bei AMD muss man die Bandbreite der Anbindung des CPU-Kerns an den Chipsatz etwa anders rechnen. Statt dem FSB-Takt verwendet man hier den Hyper-Transport-Takt (typischerweise 1 GHz). Hier werden 2 Datenpakete pro Taktzyklus übertragen, dafür ist die Anbindung nur 16 Bit breit - jeweils in beide Richtung, bei gleichzeitigem Up- und Downstream also effektiv 32 Bit.

Die Anbindung an den Speichercontroller ist bei AMD-CPUs prozessorintern, weil der Speichercontroller dort Bestandteil des Prozessors ist. Die Anbindung ist dabei 128 Bit breit und wird mit vollem Prozessortakt betrieben.

Hier nochmal als Formeln:


Speicherbandbreite einer Grafikkarte mit DDR-Speicher:
Speicherbandbreite = Speichertakt (real) * 2 (wg. DDR) * Interfacebreite / (8 Bit/Byte)
=> Speicherbandbreite in MByte/s = Speichertakt (real, in MHz) * Interfacebreite (in Bit) / 4


DDR-Arbeitsspeicher mit Dual-Channel-Anbindung:
Speicherbandbreite = Speichertakt (real) * 2 (wg. DDR) * 2 (wg. Dual-Channel) * 64 Bit / (8 Bit/Byte)
=> Speicherbandbreite in MByte/s = Speichertakt (real, in MHz) * 32


Anbindung Intel-CPU an Speichercontroller und Chipsatz:
Speicherbandbreite = FSB-Takt (real) * 4 (wg. quad-pumped) * 64 Bit / (8 Bit/Byte)
=> Bandbreite in MByte/s = FSB-Takt (real, in MHz) * 32


Anbindung AMD64-CPU an Speichercontroller (prozessorintern):
Speicherbandbreite = Prozessortakt (real) * 128 Bit / (8 Bit/Byte)
=> Bandbreite in MByte/s = Prozessortakt (real, in MHz) * 16


Anbindung AMD64-CPU an Chipsatz:
Speicherbandbreite = HT-Takt (real) * 2 (DDR) * 2 (Up- und Downstream) * 16 Bit / (8 Bit/Byte)
=> Bandbreite in MByte/s = HT-Takt (real, in MHz) * 8


Theoretisch reicht eine Speichergeschwindigkeit aus, die die Bandbreite der Verbindung von Speichercontroller zur CPU voll auslasten kann. Bei aktuellen Intel-CPUs wäre das DDR2-533 mit Dual-Channel-Anbindung.

/EDIT: Ein paar Sachen bezüglich der AMD64-Architektur korrigiert.

Noch ein paar Beispiele:

Grafikkarte mit 512-Bit-Speicherbus und 1 GHz schnellem GDDR4-Speicher: 128 Gigabyte/s Bandbreite
DDR2-800-Speicher (400 MHz real) im Dual-Channel-Betrieb: 12,8 Gigabyte/s
Intel-CPU mit FSB1066 (266 MHz real), Anbindung an Chipsatz und Speichercontroller: 8,51 Gigabyte/s
AMD64-CPU mit 2 GHz CPU-Takt, interne Anbindung an Speichercontroller: 32 Gigabyte/s
AMD64-CPU mit 1 GHz HT-Takt, Anbindung an Chipsatz: 8 Gigabyte/s

Hier sieht man z.B. auch, dass DDR2-800-Speicher im Dual-Channel eine höhere Datenübertragungsrate aufweist, als überhaupt an eine Intel-CPU mit FSB1066 übertragen werden kann.

Scream
2007-03-19, 21:31:44
besten dank
ich wusste das grob aber wie man genau rechnet wusste ich nicht mehr, das merk ich mir aber jetzt :D

Spasstiger
2007-03-19, 21:48:36
besten dank
ich wusste das grob aber wie man genau rechnet wusste ich nicht mehr, das merk ich mir aber jetzt :D
Hab mein Posting noch um eine zusätzliche Merkhilfe erweitert.

Gast mit Zweifeln
2007-03-20, 10:58:44
Mal eine Frage: Was hier als Speicherbandbreite bezeichnet wird, müsste doch eigentlich Speicherdurchsatz heißen, oder?
Denn als Durchsatz bezeichnet man eine Transportierte Menge von 'Irgendwas' pro Zeit. Bandbreite hingegen klingt mir sehr als ein äquivalent zu Busbreite und hätte damit alleine Stehend für den Durchsatz keine Bedeutung.

Spasstiger
2007-03-20, 11:06:43
Denn als Durchsatz bezeichnet man eine Transportierte Menge von 'Irgendwas' pro Zeit. Bandbreite hingegen klingt mir sehr als ein äquivalent zu Busbreite und hätte damit alleine Stehend für den Durchsatz keine Bedeutung.
Physikalisch gesehen bezeichnet Begriff Bandbreite einen Frequenzunterschied und trägt die Einheit Hz bzw. 1/Sekunde.
Im Computerbereich wird der Begriff Bandbreite auch gerne mit der Einheit Bit/Sekunde als Äquivalent zum Durchsatz verwendet. Ist physikalisch natürlich nicht korrekt.
In keinem Sprachgebrauch wird allerdings Bandbreite als Äquivalent zur Busbreite in Bit verwendet. Bandbreite muss immer etwas mit 1/Zeiteinheit zu tun haben.

EDIT: Siehe auch Wikipedia:
http://de.wikipedia.org/wiki/Bandbreite
in der Telekommunikation und Digitaltechnik umgangssprachlich die Datenmenge, die über ein bestimmtes Medium in einer bestimmten Zeit übertragen werden kann. Die richtige Bezeichnung hierfür ist Datenübertragungsrate.

Senior Sanchez
2007-03-20, 11:40:59
stimmt, aber die menge der speichersteine hat damit zutun. ;)


und warum rechnet ihr alle so kompliziert ?

SC(64bit) = speichertakt mal 16 = bandbreite
DC(128bit) = speichertakt mal 32 = bandbreite
QC(256bit) = speichertakt mal 64 = bandbreite
OC(512bit) = speichertakt mal 128 = bandbreite

Was hat das mit kompliziert zu tun? ;) Das System was anfangs hier erläutert wurde ist das allgemein gültige, mit dem man dann auch problemlos QDR-Bandbreiten ausrechnen kann oder andere von DDR abweichende Normen ;)

Was du da erläuterst sind doch quasi bloß einmal ausgerechnete Konstanten, mehr nicht.

Spasstiger
2007-03-20, 13:28:41
Ich möchte noch etwas anmerken, wieso man umgangssprachlich die Datenübertragungsrate auch als Bandbreite bezeichnet:
Wenn man das Fouríerspektrum eines Rechteckimpulses mit der Länge T betrachtet (ergibt im Transformierten eine sinc-Funktion), so sieht man, dass die 3db-Bandbreite dort gerade wieder 1/T beträgt. D.h. bei einem Signal, bei dem 1 Bit in einer Sekunde übertragen wird, kommt man auf eine physikalische Bandbreite von 1 Hz. Bei 200 Megabit in der Sekunde hätte man eine physikalische Bandbreite von 200 MHz.

Hier noch visualisiert:

http://www.directupload.net/images/070320/IXCVjBbb.gif

Die rote Kurve ist die auf 1 normierte Fouriertransformierte (das Spektrum) eines Rechtecksignal, das von t=0 bis t=T den Wert 1 hat. T ist hier zu 1/(2 GHz) gewählt, das Signal hat also eine Datenübertragungsrate von 2 Gigabit/s.
Die grüne Gerade ist bei y=1/sqrt(2), markiert also gerade einen Amplitudenabfall von 3 db. An den Schnittpunkten der grünen und der roten Kurve kann man demnach die 3-db-Grenzfrequenzen ablesen. Die Differenz zwischen den Grenzfrequenzen ist die Bandbreite.

Hier kann man f1=-1 GHz und f2=1 GHz ablesen, die Bandbreite beträgt demnach B=2 GHz.
Multipliziert man diesen Wert mit 1 Bit kommt man wieder genau auf die Datenübertragungsrate des Signals in Höhe von 2 Gigabit/s.

Gast
2007-03-20, 16:43:24
Bei AMD muss man die Bandbreite der Anbindung des CPU-Kerns an den Speichercontroller nochmal anders rechnen, da hier ja der Speichercontroller direkt in der CPU sitzt. Statt dem FSB-Takt verwendet man hier den Hyper-Transport-TaktDer K8 greift bei Einsockelsystemen aber nicht über Hypertransport auf den Speicher zu.

Spasstiger
2007-03-20, 16:46:06
Der K8 greift bei Einsockelsystemen aber nicht über Hypertransport auf den Speicher zu.
Öhm, ich weiß jetzt nicht, was du meinst. Der Speicher ist erstmal überhaupt nicht mit dem Hyper-Transport-Bus verbunden.
Und prozessorintern ist der Speichercontroller über den Hyper-Transport-Bus mit dem eigentlichen Prozessor verbunden. Oder redet man von Hypertransport nur im Zusammenhang mit der Anbindung an den Chipsatz (Systembus)?
Wie wäre dann der AMD64-Speichercontroller intern angebunden? Mit Prozessortakt? Und wie breit?

/EDIT: http://www.hardtecs4u.com/reviews/2004/amd_athlon64_4000/index2.php
Der Punkt "Integrierte Northbridge", bedeutet das, dass der Speichercontroller mit Prozessortakt und 128 Bit angebunden ist? Gilt dabei auch das DDR-Prinzip? In dem Fall sollte ich ja meine Angaben oben korrigieren.

/EDIT2: Hab jetzt mal meine Angaben oben korrigiert.

G.A.S.T.
2007-03-22, 15:51:21
stimmt, aber die menge der speichersteine hat damit zutun. ;)
Mal ne Frage an euch: Da es ja von der Speicherbandbreite einer GraKa abhängt, wie leistungsfähig deren FSAA ist - wird eigentlich das fertig gerenderte Bild auf die Speicherchips aufgeteilt und dann erst die Kanten geglättet, oder wie läuft es?

Coda
2007-03-22, 21:39:41
Und prozessorintern ist der Speichercontroller über den Hyper-Transport-Bus mit dem eigentlichen Prozessor verbunden.
Ist er nicht.

Oder redet man von Hypertransport nur im Zusammenhang mit der Anbindung an den Chipsatz (Systembus)?
Ja. Und mit anderen Prozessoren in einem Multiprozessor-System und natürlich deren Speichercontrollern.

Wie wäre dann der AMD64-Speichercontroller intern angebunden? Mit Prozessortakt? Und wie breit?
Naja. Sehr wahrscheinlich halt 256-Bit breit und Prozessortakt. DDR wird in Chips nicht verwendet.

Spasstiger
2007-03-22, 22:44:41
Mal ne Frage an euch: Da es ja von der Speicherbandbreite einer GraKa abhängt, wie leistungsfähig deren FSAA ist - wird eigentlich das fertig gerenderte Bild auf die Speicherchips aufgeteilt und dann erst die Kanten geglättet, oder wie läuft es?
FSAA in Form von SSAA ist genauso füllratenlastig wie bandbreitenlastig, man kann also nicht pauschal sagen, dass die FSAA-Leistung einer Grafikkarte maßgeblich von deren Bandbreite abhängt. MSAA ist eher bandbreitenlastig als füllratenlastig, aber auch hier spielt die Füllrate nicht die alleinige Rolle.

AntiAliasing ist auch kein Postprocessing-Filter, der aufs fertige Bild angewendet. AntiAliasing kommt schon vor dem Rendering von Pixeln zum Einsatz, das AntiAliasing legt ja schließlich fest, für welche Punkte pro Dreieck und Pixel Farbwerte bestimmt werden. Die Bandbreite spielt beim AA deshalb eine Rolle, weil für jedes Pixel mehrere Speicherzugriffe statt einer notwendig sind, um den Framebuffer und beim MSAA die Multisample-Buffers zu schreiben.
Wie die Buffer in den Speicherbausteinen verteilt sind, ist fürs Rendering völlig egal, solange die Hardware die Speicherzellen richtig adressiert.

Naja. Sehr wahrscheinlich halt 256-Bit breit und Prozessortakt. DDR wird in Chips nicht verwendet.
In dem Hardtecs4u-Link, den ich oben gepostet habe, steht was von einer "integrierten Northbridge" mit 128 Bit. Ist die prozessorinterne Anbindung an den Speichercontroller jetzt 128 oder 256 Bit breit? Im Prinzip ists ja auch egal, da die interne Bandbreite die externe bei Weitem überschreitet.

G.A.S.T.
2007-03-22, 23:40:25
Die Bandbreite spielt beim AA deshalb eine Rolle, weil für jedes Pixel mehrere Speicherzugriffe statt einer notwendig sind
nun soll ja die GPU der xBox360 sehr schnelles MSAA ermöglichen, weil diese 10MB embeddedRAM besitzt...

werden durch diesen eRAM dann nur die mehreren Zugriffe auf den Grafikspeicher pro Pixel überflüssig, oder wodurch kommt der Geschwindigkeitsvorteil zustande?

Spasstiger
2007-03-23, 00:13:21
nun soll ja die GPU der xBox360 sehr schnelles MSAA ermöglichen, weil diese 10MB embeddedRAM besitzt...

werden durch diesen eRAM dann nur die mehreren Zugriffe auf den Grafikspeicher pro Pixel überflüssig, oder wodurch kommt der Geschwindigkeitsvorteil zustande?
Der embedded RAM ist sehr viel schneller angebunden als der gemeinsame Systemspeicher für CPU und Grafikchip. Und er ist auch schneller als der Grafikspeicher bei High-End-Karten für den PC. Deshalb der potentielle Geschwindigkeitsvorteil.
Mehrere Speicherzugriffe pro Pixel sind bei AA immer erforderlich, weil eben mehrere Farbwerte pro Pixel geschrieben werden.

Gast
2007-03-23, 07:29:40
nun soll ja die GPU der xBox360 sehr schnelles MSAA ermöglichen, weil diese 10MB embeddedRAM besitzt...Das gilt allerdings nur, solange der eDRAM nicht ausgeht. Hint: 720p mit 2x AA passt schon nicht mehr rein. Dann muss Tiling verwendet werden, was wohl nicht ganz so problemlos zu implementieren ist.

Spasstiger
2007-03-23, 08:32:13
Man muss aber sagen, dass der eDRAM auch ohne AA Vorteile bringen kann.
Durch die Auflösungssteigerung gegenüber der Xbox von 640x480 auf 1280x720 sind die Bandbreitenanforderungen um den Faktor 3 gestiegen. Durch den eDRAM mit seiner gigantischen Bandbreite verhindert man nun, dass Framebuffer-Operationen eine Bandbreitenlimitierung bewirken. Man hat einen Engpass beseitigt; dieser Engpass wäre aber natürlich eh nur aufgetreten, wenn keine Füllratenlimitierung bzw. eine Limitierung beim Pixelshading vorliegt.
Den größten Vorteile dürfte der eDRAM in 480p-Auflösung mit 4xMSAA bringen (wird ja von manchen Spielen unterstützt), da hier ohne eDRAM noch am ehesten eine Bandbreitenlimitierung vorliegen würde (gegenüber einer Pixelshading-/Füllratenlimitierung).

Und vier Multisample-Buffer mit einer Auflösung von 1280x720 (=720p mit 4xMSAA) passen - wie bereits im Posting eins drüber angedeutet - nicht in den eDRAM.

Btw. die übernächste Grafikkartengeneration für den PC wird die Füllrate des eDRAM sicherlich erreichen und das bei evtl. schon 2 Gigabyte Grafikspeicher (gegenüber 10 MB eDRAM). Trotzdem wird dann wohl keiner behaupten, dass MSAA kostenlos ist. Mit fp32-HDR-Rendering und in hohen Auflösungen (1920x1200, 2560x1600) wird man die hohe Bandbreite trotzdem brauchen. Außerdem werden vom Speicher ja auch die ganzen Geometrie- und Texturdaten geladen, das kann ebenfalls Engpässe beim Rendering bedeuten. Beim Laden von Textur- und Geometrie-Daten muss die Xbox 360 mit der relativ niedrigen Bandbreite von 22,4 Gigabyte/s des Systemspeichers auskommen (die GeForce 8800 GTX erreicht 86,4 GB/s, die Radeon X2900 XTX wird evtl. sogar auf mehr als 150 GB/s kommen).

=Floi=
2007-03-23, 09:54:20
an 1200mhz speichertakt glaube ich jetzt noch nicht das trifft eher auf die übernächste generation zu

Schimi1983
2007-03-23, 10:06:54
hier ein kleines prog von mir (von 1995) das die speicherbandbreiten etc berechnet... habe ich mir damals gemacht weil ich das sehr oft gebraucht habe... vielleicht kann jemand was damit anfangen oder nen bissel rumspielen:

http://rapidshare.com/files/22366624/Project1.exe.html

Gast
2007-03-23, 18:19:33
Man muss aber sagen, dass der eDRAM auch ohne AA Vorteile bringen kann.
Durch die Auflösungssteigerung gegenüber der Xbox von 640x480 auf 1280x720 sind die Bandbreitenanforderungen um den Faktor 3 gestiegen. Durch den eDRAM mit seiner gigantischen Bandbreite verhindert man nun, dass Framebuffer-Operationen eine Bandbreitenlimitierung bewirken.

Naja wann ist das mal der Fall das "Framebuffer Operationen" Bandbreiten Limitiert sind, kannst du das ein Beispiel geben?
Ich halte die eDRAM Geschichte eher für ein Schmankerl. 512MB GDDR2 mit bissl mehr Taktrate wäre besser gewesen. 4xAA frisst doch auch Füllrate und bei einer USA kann das schon einiges ausbremsen, zumal eine Konsolen GPU ja eher schwachbrüstig ist.
Da hät ich lieber mal ne kehrtwende von der alten Konsolen Generation gemacht und mit RAM geklotzt, da können sich die Entwickler dran austoben. Zumal ja nicht nur die Bandbreitenanforderung höher wurde. Mehr Platz brauchen die Texturen die ja selbst auch höher aufgelöst werden sollen.

Spasstiger
2007-03-23, 19:02:02
Naja wann ist das mal der Fall das "Framebuffer Operationen" Bandbreiten Limitiert sind, kannst du das ein Beispiel geben?
fp16-HDR-Rendering, was die XBox 360 bei einigen Spielen anwendet, braucht schonmal die doppelte Füllrate von normalen FX8-LDR-Rendering.
Die 22,4 GB/s Bandbreite des Systemspeichers wären dafür wohl schon etwas zu knapp zumal die Bandbreite ja mit der CPU geteilt wird. Klar wäre ein großer Grafikspeicher, der mit einer höheren Bandbreite angebunden ist, besser gewesen als der eDRAM, aber der eDRAM war wohl die günstigere oder einfacher zu realisierende Lösung. Und für alle Operationen, die in den Framebuffer schreiben oder vom Framebuffer lesen, entfällt eine mögliche Engpassstelle.
Beim G80 erscheinen manche Dinge auch überdimensioniert, z.B. die 32 Tri-TMUs oder die gewaltige z-Füllrate der ROPs. Die Ingenieure werden aber schon ihre Gründe für diese Maßnahmen gehabt haben.