Frage:
Daten-Strobe im DDR-Speicher
pazel1374
2018-11-23 20:31:03 UTC
view on stackexchange narkive permalink

Im DDR3-Speicher gibt es ein Signal namens DQS, zu dem ich mehrere Fragen habe.

  1. Wofür wird DQS abgekürzt? speziell Q
  2. Was ist der Zweck von Daten-Strobe im DRAM und warum nicht die einfache Uhr verwenden.
  3. Ist DQS auf dem DRAM-Chip ein Ausgang oder ein Eingang, der vom Speichercontroller kommt?
  4. Wie ist die Beziehung von DQS zu CLK-, Adress- und Steuersignalen? Bei der Längenanpassung von DDR-Signalen stellte ich fest, dass die Flugzeit von "CLK + Adresse + Strg-Signalen" nicht mit der Flugzeit von Data Lane zusammenhängt. wie das möglich ist. Bedeutet das, dass sie völlig unabhängig sind?
  5. ol>

    Erläuterung

    Micron TN4605 erklärt die Notwendigkeit von Data Strobe:

    In einem rein synchronen System beziehen sich Datenausgabe und -erfassung auf eine gemeinsame, frei laufende Systemuhr. Die maximale Datenrate für eine solche Das System ist erreicht, wenn sich die Summe aus Ausgangszugriffszeit und Flugzeit der Bitzeit (dem Kehrwert der Datenrate) nähert. Obwohl das Erzeugen verzögerter Takte für einen frühen Datenstart und / oder eine späte Datenerfassung eine erhöhte Datenrate ermöglicht, berücksichtigen diese Techniken nicht die Tatsache, dass sich das datengültige Fenster (oder Datenauge) aufgrund von Änderungen relativ zu einem festen Taktsignal bewegt in Temperatur, Spannung oder Belastung. Also zu erlauben Für noch höhere Datenraten wurden DDR-Geräten Daten-Strobe-Signale hinzugefügt.

    Aber ich verstehe die Erklärung für die maximale Datenrate für ein rein synchrones System nicht.

Zwei antworten:
TemeV
2018-11-24 01:03:34 UTC
view on stackexchange narkive permalink
  1. Das Q ist nur eine alte Notation. Datensignale werden als DQ bezeichnet und der Daten-Strobe ist DQS

  2. Daten-Strobe ist das Taktsignal für die Datenleitungen. Jedes Datenbyte hat einen eigenen Strobe

  3. Es ist ein bidirektionales Signal. Es wird von derselben Komponente wie die Datensignale übertragen. Vom Speichercontroller beim Schreiben und vom Speicher beim Lesen.

  4. Steuer- und Adressensignale sind unidirektional und werden vom CLK-Signal getaktet. DQS läuft mit der gleichen Geschwindigkeit wie CLK, sie sind jedoch nicht synchronisiert.

  5. ol>

    Stellen wir uns vor, die Flugzeit für alle Signale beträgt 1 ns.

    Situation mit nur einem Clk, der von der Steuerung übertragen wird:

    - Beim Schreiben gibt es kein Problem. Datensignale können auf das CLK-Signal getaktet werden und alles ist in Ordnung. Wenn die Spuren längenangepasst sind, können Sie Timing-Toleranzen verwenden, die enger als die Flugzeit sind.

    - Beim Lesen liegt ein Problem vor. Die Steuerung muss zuerst die Uhr in den Speicher senden, wo sie 1 ns später eintrifft. Dann sendet der Speicher Datenbits an die Steuerung und dies dauert eine weitere Nanosekunde. Es gibt einen Versatz von 2 ns, der die Übertragungsgeschwindigkeit begrenzt.

    Wenn dieselbe Komponente, die die Daten sendet, die Uhr sendet, ist alles synchronisiert. Daten können noch schneller übertragen werden als die Flugzeit

Danke, du hast mir ein paar Stunden gespart.Ich frage mich immer noch, warum Q in DQS, aber nicht F?das ist überhaupt nicht wichtig :).Danke nochmal
Q wird aufgrund von Q in FlipFlop verwendet, siehe https://electronics.stackexchange.com/questions/281813/rams-and-dq-lines
Lewis Kelsey
2020-04-20 07:06:18 UTC
view on stackexchange narkive permalink

Der Grund, warum Sie einen Daten-Strobe benötigen, ist der Zeitversatz. Wenn ein Taktsignal 20 Sekunden lang hoch ist, beträgt die Zeit, die es sowohl für den Sender als auch für den Empfänger gleichzeitig hoch ist, weniger als 20 Sekunden. Es überlappt sich nicht perfekt. Die 20 Sekunden des Absenders beginnen früher als die 20 Sekunden des Empfängers. Je kleiner die Dauer des Signals ist oder je weiter Sender und Empfänger voneinander entfernt sind, desto kleiner wird das gemeinsame Fenster (Überlappungsbereich), bis sich die Fenster schließlich überhaupt nicht mehr überlappen (da der Versatz größer wird als die Zeitdauer, in der das Signal hoch ist für beim Sender - die 20 Sekunden des Empfängers beginnen, wenn das Signal beim Sender niedrig geworden ist). Offensichtlich ist der Unterschied auf dieser makroskopischen Zeitskala nicht bemerkbar. In einer Zeitskala von Nanosekunden könnte der Empfänger die Daten zurücksenden und sie kommen an, wenn die Uhr am Absender wieder zu niedrig ist.

DDR4-4000 hat einen Taktzyklus von 0,4 ns. Dies bedeutet, dass das Signal für den Speichercontroller für 0,2 ns hoch ist. Das Licht bewegt sich 6 cm in 0,2 ns. Wenn der DDR-Bus 2 cm lang war, ist das High-Signal zu dem Zeitpunkt, zu dem es das DIMM erreicht und sofort Daten auf der Uhr bestätigt und zum Speichercontroller zurückkehrt, bereits 2/3 der Zeit, die die Uhr benötigt ist hoch für. Dies bedeutet, dass der Speichercontroller nur 1/3 der üblichen Zeit zum Zwischenspeichern der Daten hat. Wenn der Bus 3 cm lang wäre, würde der Taktpegel, auf dem die Daten zwischengespeichert werden sollen (nach Ablauf der TCL (CAS-Latenz)), alle Nullen zwischenspeichern, ohne zu wissen, ob die Speicheradresse 8 Byte Nullen enthielt oder ob es eine war Hardwareproblem.

So begrenzt der Taktversatz hohe Taktraten (je kleiner das Taktintervall, desto näher müssen die Komponenten sein und die DIMM-Pins dürfen geometrisch nicht weniger als 2 cm vom Speichercontroller entfernt sein) oder wie schnell Sie können Senden ', das mit dem DQS-Paar eliminiert werden kann.

Der Speichercontroller kann immer den Taktversatz und die Busgeschwindigkeit / -entfernung in die Timings einbeziehen, dies ist jedoch verschmutzt und erfordert zusätzliche Logik.Es ist sinnvoll, jegliche strikte Abhängigkeit von TCL zu beseitigen, indem der DIMM-Rang das Daten- und Taktsignal senden kann, wann er möchte, und die Daten werden automatisch bei der zugehörigen Uhr zwischengespeichert.Die Speichercontroller-Operationen sind dann nicht streng an die DRAM-Timings gebunden - sie können langsamer arbeiten, wenn sie wollen (natürlich nicht schneller).Es dient als Markierung für die eingehenden Daten, sodass der Speichercontroller diese nicht verfolgen muss.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...