Forum: FPGA, VHDL & Co. DDR2 Datenleitung


von Karl (Gast)


Lesenswert?

Hallo,

ich bin recht neu in der Materie und beschaeftige mich gerade mit 
externen Speichern. Ich bin ein bischen verwirrt was die Spezifikation 
von DDR2-SDRAM's angeht.

Wenn ich es richtig verstanden habe, dann sind die Speicher aus einer 
gewissen Anzahl an einzelnen Chips aufgebaut. Die Chips wiederrum haben 
sogenannte Baenke mit einer gewissen Anzahl an Woertern und Wortbreiten.

Ein Chip fuer sich ist mir eigentlich recht klar (denke ich).
Der verfuegt ueber 16 Datenleitungen, einer Wortbreite von z.B. 16 Bit 
und z.B. 2^19 Woertern je Bank und sagen wir 2 Baenken.

Nun habe ich gelesen, dass die meiseten DDR2 ueber 64 Datenleitungen 
verfuegen.

Heisst das, dass man hier 4 Chips mit je 16 Datenleitungen (4*16=64) 
"zusammenschliest". Wenn ja, kann man dann jeden Chip einzeln ein bzw. 
auslesen. Also, kann man z.B. die Datenleitungen [0:31] einlesen 
waehrend man [32:63] ausliest?

Ich hoffe man kann die Frage so verstehn.

Ueber Antworten ware ich sehr dankbar.

von Timmo H. (masterfx)


Lesenswert?

Ja genau.
Du hast z.B. 4 Chips mit 16 Datenleitungen. 0:15 geht an Chip1, 16:31 an 
Chip2, 32:47 an Chip3 und 48:63 an Chip4.
Wenn du nun ein 64 Bit Wert in den Speicher schreibst wird dieser auf 4 
Chips aufgeteilt (gleiches Chipselect)

von Karl (Gast)


Lesenswert?

Hallo,

danke fuer die Antwort.
Brauche ich dann auch 4 16-Bit Adresssignale oder reicht ein 15-Bit 
Adresssignal und die 64 bit werden dann so aufgeteilt das jeweils 4 Bits 
an der selben Adresse liegen aber in unterschiedlichen Chips? Und kann 
man die 4 chisp getrennt von einander beschreiben/ auslesen?

von Duke Scarring (Gast)


Lesenswert?

Karl schrieb:
> Brauche ich dann auch 4 16-Bit Adresssignale oder reicht ein 15-Bit
> Adresssignal
Einmal Adresse reicht dann.

> und die 64 bit werden dann so aufgeteilt das jeweils 4 Bits
> an der selben Adresse liegen aber in unterschiedlichen Chips?
Ganz genau.

> Und kann
> man die 4 chisp getrennt von einander beschreiben/ auslesen?
Nur wenn Du an die einzelnen Chipselects rankommst.

Diese Art der Speicherzusammenschaltung kannst Du übrigens auch mit 
SRAMs oder im FPGA mit BlockRAMs machen.

Duke

von Timmo H. (masterfx)


Lesenswert?

Karl schrieb:
> Brauche ich dann auch 4 16-Bit Adresssignale oder reicht ein 15-Bit
Deine 64-Bit Worte sind immer 64 bit aligned. Wenn du z.B. einen 8 Bit 
Wert abfragst dann wird immer ein 64 Bit wert gelesen und das 
entsprechende Byte was du letzenendes haben willst rausgefiltert. Das 
macht der DDR-Controller Chip aber selbstständig.
An den Chips liegt beim Zugriff auf Adresse "0" überall "0" an, der 
erste Chips liefert dir die ersten 16 Bit, der zweite bit 17-31 etc. für 
jeden einzelnen Chip ist es aber Adresse "0". Das nächste Wort für jeden 
Chip ist dann bei Adresse "1", damit erhälst du aber gleich einen 64 Bit 
Wert, folglich ist Adresse "2" bereits Bit 128-191.
Somit brauchst du, um 256MB zu adressieren (eigentlich 28 Bit Adresse) 
nur noch 25 Adressleitungen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
Lade...