Taktverdopplung bei DDR-Speicher?
23. März 2003 / von GloomY / Seite 3 von 3
DRAM-Bezeichnungen
Allein hier kann einem schwarz vor Augen werden, wenn man sich die Begriffe ansieht, mit denen die Leute teilweise in Foren um sich werfen. Da wird von "PC266", "PC333" oder "PC400" geredet, was es eigentlich überhaupt nicht gibt. Es existiert schlichtweg kein Speicherstandard mit diesem Namen.
Was ebenfalls gerne falsch gemacht wird, ist in Zusammenhang mit einzelnen Speicherriegeln von "DDR266", "DDR333" oder "DDR400" zu reden, was mindestens genau so falsch ist (Anm. Leonidas: macht auch 3DCenter derzeit falsch, einfach weil es sich eingebürgert hat). Die einzelnen Speicherchips tragen diese Namen mit einem "DDR" am Anfang, jedoch nicht die Module selbst. Denn das Speicherstandardisierungs-Gremium JEDEC hat nicht ohne Grund die DDR Modul-Standards nicht so genannt, sondern eben (ohne den ganzen Verdopplungsmist) nach ihrer theoretischen maximalen Bandbreite. Also heißen die drei Modul-Standards PC1600, PC2100 und PC2700 (für 1.6, 2.1 und 2.7 GB/s).
Auf einem PC2700 Modul sind mehrere DDR333 Speicherchips verbaut.
Gut zu erkennen ist ebenfalls der Unterschied zwischen einem finanziell unabhängigem Konsortium wie der JEDEC und einer Einzelfirma wie RAMBUS, die sämtliche Taktraten auf Grund der benutzten DDR-Übertragung konsequent verdoppelt. Ähnlich sieht es bei den Bezeichnungen PC800 bzw. PC1066 aus (welche allerdings nicht von RAMBUS sondern von Intel stammen), welche praktisch auf dem selbem Prinzip basieren (realer Takt mal zwei). Aber das ist an für sich ein anderes Thema ...
Was die Bezeichnung von noch nicht standardisiertem Speicher angeht, darf man sich gerne an die von der JEDEC vorgegebene Richtung anlehen. Statt von "PC400" oder "DDR450"zu reden, wäre also die Bezeichnung "PC3200" oder "PC3600" sicher in diesem Sinne. Alternativ tut es natürlich auch die Bezeichnung "DDR-SDRAM mit 200 MHz" o.ä. Die Bezeichnung "DDRxxx" sollte man wenn es geht nur verwenden, wenn man wirklich einzelne Speicherchips meint und nicht ein Modul als Ganzes.
Einige User argumentieren an dieser Stelle auch, dass ein Takt lediglich eine Frequenz ist und diese nur angibt, wie oft sich ein "Ereignis" pro Sekunde wiederhole. Nun könnte man auch sagen, dass dieses "Ereignis" die Übertragung eines einzelnen Bits sei, so dass - zumindest für die Datenübertragung die "Mal Zwei" Rechnung stimmen würde. Dies ist eine an sich richtige Überlegung, jedoch muß man dann auch beachten: Die Latenz ist eine Zeit (wie bereits oben erwähnt), die aber oftmals in Form einer multiplen Anzahl an Takten angegeben wird. Wenn ich nun den Takt umdefiniere, muß ich das natürlich auch für die Latenz ändern.
Wie von einigen Speicherherstellern gerne geschrieben, ist "400 MHz CL2" für PC3200 Speicher daher vollkommen falsch. Entweder heißt es "200 MHz CL2" oder "400 MHz CL4". Da die Latenz eine Zeit ist, muß diese auch konstant bleiben. Gerade um solche in sich unlogischen Ausdrücke, andere Mißverständnisse oder Unklarheiten, was denn jetzt genau der "richtige Takt" ist, aus dem Weg zu räumen, plädiere ich dafür, die von sehr vielen Leuten benutzte Angewohnheit der Taktverdopplung bei DDR nicht zu benutzen.
Es ergibt einfach keinen Sinn, einer Technik, die im eigentlichen Sinne nur die Bandbreite erhöht, einen höheren Takt zuzuschreiben. Auf der anderen Seite frage ich mich, was denn letztlich daran so schlimm sein soll, bei den alten Bezeichnungen zu bleiben und noch ein "DDR" oder "im DDR-Verfahren" o.ä. dahinter zu setzen. Wenn man sich darauf einigte, dann würde man erstens nicht weiterhin mit falschen technischen Daten umherhantieren und zweitens wäre man wenigstens sicher, was denn überhaupt gemeint ist.
Und wenn wir gerade beim Thema Missverständnisse von technischen Daten sind, möchte ich in diesem Zusammenhang auch noch auf das nicht tot zu bekommende Gerücht eingehen, dass DDR/II 4 Bits pro Takt übertragen würde. Das ist sowohl richtig, als auch falsch ;-), je nachdem auf welchen Takt man sich bezieht. DDR/II kann genau so viel Bits pro Speichertakt übertragen wie DDR/I (beide 64 Bit x 2). Bei DDR/I läuft der gesamte RAM-Chip aber mit dem gleichen Takt, was bei DDR/II nicht mehr der Fall ist. Der Core (d.h. die eigentlichen Speicherzellen) laufen nur noch mit dem halben Takt, während die I/O Peripherie des DDR/II Speicherchips (Sense Amps usw.) weiterhin mit vollem RAM-Takt laufen.
Da der Core nur noch halb so schnell ist und man bei jedem Takt weiterhin die gleiche Anzahl an Bits wie bei DDR/I überträgt, muß der Core in jedem Takt vier Bits liefern (das bezeichnet man als "Prefetch of 4"). DDR/I hat hingegen nur einen "Prefetch of 2", weil der Core ja mit der gleichen Geschwindigkeit wie die I/O-Peripherie läuft. Was den Speichertakt betrifft (der ist entscheidend), ist DDR/II also kein QDR-Speicher (Quad Data Rate) sondern weiterhin ein DDR-Speicher (Double Data Rate). Dies wurde oftmals von einigen Seiten falsch oder unklar formuliert, dies kann man auch gut einem exzellenten DDR/II Artikel bei LostCircuits nachlesen.
Ich hoffe, die ganze Angelegenheit wurde nun für manchen etwas klarer. Wer Anmerkungen hat, kann mich im 3DCenter Forum finden. Wer weiterführende Informationen zu den Themen RAM, DDR usw. benötigt, dem seien folgende (englischsprachigen) Artikel und Webseiten empfohlen:
- RAM Guide Teil 1, Teil 2 und Teil 3 bei Ars Technica
- Guide to Memory Technology Teil 1, Teil 2 und Teil 3 bei Ace´s Hardware
- SDRAM Bank Interleaving - What is it? bei RealWorld Technologies
- DDR/II Artikel bei LostCircuits