PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ram-timings / speicherdurchsatz


Binaermensch
2002-07-17, 19:04:31
hi!

die definition von CAS-latenz is ja imho diese hier: "Zeit zwischen dem Anlegen des CAS-Signals und dem Bereitstehen der Daten am Ausgang."

kann man, nachdem man ein so ein cas-signal angelegt hat, und noch auf die daten wartet bereits ein nächstes cas-signal anlegen?

wenn dem nicht so wäre, würde doch der datendurchsatz von der cas-latenz mitbestimmt werden, oder? (omg klingt das hochgestochen)

google spuckt beim thema timings net so viel aus..


thx,
- suka


ps: bin ich hier im richtigen forum? falls nciht, in welches forum gehören fragen zu rams? (eigenes forum wör nciht schlecht)

BlackBirdSR
2002-07-17, 19:59:19
Die Latenz (hier ist nicht CL2(3) gemeint) des Speichers hängt direkt mit der effektiv nutzbaren Bandbreite zusammen.

je niedriger die Latenz des Zugriffs desto höher die effektive Bandbreite.
Deshalb liefert PC266 DDRRAM auch nicht das selbe was ein echtes 266MHZ Modul liefern würde, da sich die Latenz trotz DDR nicht verändert.
daher ist es auch quatsch bei DDR von 266MHZ effektiv zu reden.

CAS ist allerdings nicht das einzige was zählt,
CAS steht ja nur für column address strobe, genauso wichtig ist RAS (row address strobe).

Der Speicher ist in Reihen und Spakten aufgebaut, und wird auch auf diese weise adressiert.
Zuerst wird das Signal für die Reihe abgeschickt, und dann kommt RAS ins Spiel,
je nachdem wieviele Takte RAS hat, wird gewartet, damit sich das signal für die Reihen adressierung stabilisieren kann,
danach wird das Signal für die spalten geschickt... und nach den 2 bzw 3 latenzzyklen (wieder damit sich das signal stabilisieren kann)wird CAS auf 0 gesetzt und damit der Weg freigemacht für die Daten.
(dabie wiegt das RAS Signal nicht so schwer wie das CAS signal, da das RAS nur ab und zu neu generiert werden muss, und auch zwischengespeichert wird.)

zumindest stark vereinfacht und soweit ich das im Kopf habe ;)

CAS und RAS bestimmen also teilweise die Latenz des Speicherchips, und damit auch die max effektive Bandbreite.

kann man, nachdem man ein so ein cas-signal angelegt hat, und noch auf die daten wartet bereits ein nächstes cas-signal anlegen?

kann man, allerdings nicht wirklich ndas CAS signal
die Reihen und Spalten des Speichers sind in Gruppen ->Seiten eingeteilt, (Pages) die erstmal alle geschlossen sind.
wird ein Datum angefordert, entscheidet der Speichercontroller welche
Seite geöffnet wird, und erst dann können die adress signale angelegt werden.
Nachdem das Datum ausgelesen wurde wird die Seite wieder geschlossen, und erst dann kann eine neue geöffnet werden.

Durch das berüchtigte Interleaving, kann eine Seite schon mal spekulativ geöffnet werden noch während die vorherige gerade adressiert wird.
das spart Zeit und damit erhöht sich wieder die effektive Bandbreite.

ich hoffe ich hab nicht zuviel ungeordneten Mist gepostet :D

Binaermensch
2002-07-17, 22:14:08
wooow.. harter tobak :O


hab aber ncoh fragen.. :bäh:

1) bei sovielen "warte-takten", schränkt sich da nciht die bandbreite EXTREM ein?
wenn bei cl2-ram zb 2 takte ungenutzt vergehen bis die reihen-addressierung stabilisiert ist, dann nochmal 2 takte gewartet wird bis die spalten-adressierung stabilisiert ist; sind ja praktisch 4 takte ungenutzt damit dann endlcih mal 1 takt daten übertragen werden kann? das heißt nur jeder fünfter takt wird genutzt? (ich denk da hab ich was falschverstanden..)

2) imho gibts ja 3 solche "cl-werte", CAS, RAS und "cas-to-ras-delay" (wenn cih mich recht erinnere).
was macht dieses rascasdelay? (du hast nur cas und ras erwähnt..)


jo, das wars.. wär nett wenn du die auch noch beantworten könntest :D


thx für die hilfe! =)

BlackBirdSR
2002-07-17, 22:44:14
tja ;)

fangen wir mit der ras to cas delay an.. dann muss ich mich nicht im kreis drehen..

Wenn das RAS signal anliegt werden ja die Adressen der benötigten Reihe weitergegeben.
Nachdem dies geschehen ist, wird die ganze Reihe in einen Puffer geladen der die Datenbits, nun in gewisserweise verstärkt, bzw einfach bereithält.
dies dauert eben seine Zeit (2-3Takte RAS to CAS delay), erst danach können die Spalten per CAS adressiert werden.


nun zu der Datenübertragung..
es ist sogar noch viel höher als von dir angesetzt..
wofür hab ich allerdings z.B 133 Millionen Takte pro Sekunde? :D

nach AcesHardware sollten bei SDRAM ca 9 Takte für die ersten bytes reichen ;)



The latency between the FSB and the chipset (+/- 1 clockcycle)

The latency between the chipset and the DRAM (+/- 1 clockcycle)

The RAS to CAS latency (2-3 clocks, charging the right row)

The CAS latency (2-3 clocks, getting the right column)
1 cycle to transfer the data.
The latency to get this data back from the DRAM output buffer to the

CPU (via the chipset) (+/- 2 clockcycles)

This gets you the first word (8 bytes). A good PC100 SDRAM CAS 2 will have a latency of about 9 cycles, and the next 3 cycles another 24 bytes will be ready. The PC100 SDRAM will, in this case be able to get 32 bytes in 12 cycles.

die CPU selbst sieht allerdings bei SDRAM mit 100MHZFSB/Ramtakt ein vielfaches davon.
eine 500MHZ 100MHzFSB CPU würde dann 9*5=45 Taktzyklen warten bis die ersten Bytes eintreffen.
ein 1GHZ P3 90 Taktzyklen etc..

Allerdings nur wenn im L2 Cache nichts gefunden wurde (was zu über 97% der Fall sein sollte (das im L2 Cache das gesuchte vorhanden ist))
Trotztdem ist der Speicher immernoch ein Hauptgrund warum CPUs eher schlecht skalieren.

zurück zur eigentlichen Frage,
ich glaube PC133 SDRAM CL2 hat (zumindest bei damaligen 133MHZ SD Chipsätzen ca um die 420MB/s effektive Maximalbandbreite, bei 1GB/s theoretischer Bandbreite...
soviel dazu ob die Latenzen die Bandbreite einschränken ;)

Natürlich ist das Alles vereinfacht und nur die halbe Miete...
aber wenn du ganz gut in english bist habe ich einige Links für dich nachdenen du mir erklären darfst wie der Speicher funktioniert :D

harkpabst_meliantrop
2002-07-18, 01:21:19
Originally posted by BlackBirdSR
Die Latenz (hier ist nicht CL2(3) gemeint) des Speichers hängt direkt mit der effektiv nutzbaren Bandbreite zusammen.
Ich versteh's mal wieder nicht. Wenn nicht die CAS Latency, welche Latenz meinst du dann??

zeckensack
2002-07-18, 02:51:29
Originally posted by harkpabst_meliantrop

Ich versteh's mal wieder nicht. Wenn nicht die CAS Latency, welche Latenz meinst du dann?? Er meinte wohl die Summe der einzelnen Latenzen. CAS ist nur ein Teil davon.

@BlackBirdSR:

Falls es dich interessiert:
PC2100-2-2-2 auf VIA KT266A erreicht Leseraten um die 830MB/s, und Schreibraten von 1,7GB/s (cache bypass) bzw 470MB/s (write through, Athlon XP).

Die Relation mit den 40% stimmt also immer noch recht gut, wenn man sich auf die Leserate bezieht :)

BlackBirdSR
2002-07-18, 07:46:17
Originally posted by zeckensack
Er meinte wohl die Summe der einzelnen Latenzen. CAS ist nur ein Teil davon.

@BlackBirdSR:

Falls es dich interessiert:
PC2100-2-2-2 auf VIA KT266A erreicht Leseraten um die 830MB/s, und Schreibraten von 1,7GB/s (cache bypass) bzw 470MB/s (write through, Athlon XP).

Die Relation mit den 40% stimmt also immer noch recht gut, wenn man sich auf die Leserate bezieht :)

hehe eigentlich erschreckend niedrig ;)

Binaermensch
2002-07-18, 15:47:51
hmm.. hoffentlich hab ich das jetzt richtig verstanden.

wenn man zwischen der "datenanforderung" und der "datenlieferung" bereits weitere daten anfordern kann, müsste es dohc in etwa so aussehn:

die daten, die beim ersten takt angefordert werden, werden beim 9. "geliefert";
die daten die beim zweiten takt angefordert werden, werden beim 10. geliefert;
die daten die beim dritten takt angefordert werden, werden beim 11. geliefert;


wenn das stimmt dürfte sich aber imho nciht der datendurchsatz verändern.. man wartet halt nur 9 takte auf die daten (latenz), aber es werden immer noch nach jedem takt neue daten geliefert.


oder hab ich da jetzt irgendwas mit "datenanforderung" und "anlegen eines cas-signals" verwechselt? ?-)

BlackBirdSR
2002-07-18, 16:02:25
nein, du kannst bei heutigen RAM Speichern nicht jeden Takt ein Datum abfragen.

Wenn du eine Page öffnest und die Daten darin adressierst kannstz du solange keine weiteren Daten adressieren bis diese Page wieder geschlossen ist.

Mit Interleaving kannst du nur eine weitere Page öffnen während in der anderen noch gearbeitet wird.
arbeiten kannst du damit nicht, du spaarst dir nur die Zeit diese zu öffnen.


Insgesamt hast du bei PC100 SDRAM zwar nur ca 9 Takte bis zu den ersten Bytes, aber die nächsten 24 kommen ja erst nach weiteren 3 Takten.
will man dann noch mehr Daten aus dieser Gegend geht das schneller als beim ersten mal, man muss die Reihen ja nicht mehr vorladen, dauert aber immernoch seine Zeit.

Ich bekomme also auf keinen Fall jeden Takt neue Daten, schon gar nicht wenn ich zufällig auf verschiedene Adressen zugreife.

Binaermensch
2002-07-18, 18:09:02
k, glaub ich hab jetzt alles mehr oder weniger verstanden.

thx für die hilfe! :)