-
Die Erfindung betrifft einen DDR-Speicher und
ein Verfahren zum Abspeichern in einem derartigen DDR-Speicher nach
dem Oberbegriff von Anspruch 1 bzw. 4 und insbesondere die Stabilisierung von
Schreibzugriffen.
-
Die
US
6317372 beschreibt eine integrierte Schaltung mit einer
Umwandlungseinheit, die von außen
zugeführte
serielle Daten in parallele Daten umwandelt, einer Vielzahl von
Speicherzellen für
die parallelen Daten und mit einer weiteren Umwandlungseinheit,
die die aus den Speicherzellen ausgelesenen parallelen Daten in
serielle Daten umwandelt. In einem Testbetriebsmodus werden die
aus dem Speicherzellenfeld ausgelesenen parallelen Daten einer logischen
Operation unterzogen. Der Schaltkreis wird vorzugsweise als DDR-SDRAM
implementiert.
-
Die
US 2001/0005012A1 beschreibt
einen DDR-Speicher mit seriellem Dateneingang und einen Seriell/Parallelkonverter.
Der DDR-Speicher weist einen Schnittstellenspeicher auf, der mit
einem aus dem Systemtaktsignal abgeleiteten Signal gesteuert wird.
-
Während
bei gewöhnlichen
Speichern Schreib- und Leseoperationen nur bei steigender oder fallender
Flanke eines Taktsignals erfolgen, werden bei DDR-(double data rate-)Speichern
Daten sowohl bei steigender Flanke als auch bei fallender Flanke
des Taktsignals gelesen und geschrieben, d. h.
mit der doppelten Datenrate. Dabei unterscheidet sich das Taktsignal,
mit dem die Daten eingelesen werden, von dem Taktsignal, mit dem
Befehle übertragen
werden. Die Daten (DQ) werden beim Schreibzugriff auf den Speicher
von einem Controller zusammen mit einem Schreibtaktsignal (data
strobe clock, DQS) geliefert, um ein festes Zeitverhältnis zwischen
Daten und dem Schreibtaktsignal DQS zu gewährleisten. Der Schreibbefehl
wird mit einem Befehlstakt CLK synchronisiert.
-
Die Phase des Schreibtaktsignals
DQS (und somit der Daten) kann relativ zu einem externen Taktsignal
für Adressen
und Kommandos (CLK) schwanken, und zwar bis zu einer Verschiebung
um einen viertel Takt nach vorne oder hinten. Für den Schreibteil des Datenpfads
im Speicher bedeutet dies, dass die Daten nicht mit dem von dem
externen Taktsignal CLK abgeleiteten internen Taktsignal eingelesen
und synchronisiert werden, sondern mit dem Schreibtaktsignal DQS.
Jedoch wird der Zugriff von außen
auf das Speicherfeld einschließlich
der Adressdekodierung von dem jeweiligen Schreibkommando WR und einer
Adressinformation ADR abgeleitet. Das Schreibkommando WR und die
Adressinformation ADR sind ihrerseits mit dem externen Taktsignal
CLK synchronisiert. Dies hat zur Folge, dass es im Schreibpfad eine
Schnittstelle zwischen Signalen, die mit dem Schreibtaktsignal DQS
synchronisiert sind, und Signalen, die mit dem Taktsignal CLK für Adressen
und Kommandos synchronisiert sind, geben muss. Der Übergang
zwischen den beiden Synchronisationsdomänen wird "Clock-domain-Wechsel" genannt. Im einzelnen sind bei DDR-Speichern die
Daten am Eingang mit dem Schreibtaktsignal DQS synchronisiert und
werden anschließend
in einer weiteren Schaltung mit einem externen Schreibtaktsignal
WRCLK synchron auf einen speicherinternen Datenbus geschrieben.
-
Wenn das Schreibtaktsignal DQS und
das externe Schreibtaktsignal WRCLK nicht bestimmte Spezifikationen
einhalten, kann es sein, dass Daten bei der Übergabe zwischen DQS- und CLK-Bereich versehentlich überschrieben
werden. Die Sicherheit der Datenübergabe
zwischen DQS- und CLK-Bereich ist von der maximalen Verschiebung
des externen Schreibtaktsignals WRCLK gegenüber dem Taktsignal CLK und
somit auch gegenüber
dem Schreibtaktsignal DQS abhängig.
-
Aufgabe der Erfindung ist es, die Übergabe der
Daten von einem Synchronisationsbereich in einen anderen Synchronisationsbereich
und ihre Neusynchronisation sicherer zu machen.
-
Diese Aufgabe wird erfindungsgemäß gelöst durch
den DDR-Speicher
nach Anspruch 1 bzw. das Speicherverfahren nach Anspruch 4. Bevorzugte Ausführungsformen
der Erfindung sind Gegenstand der Unteransprüche.
-
Durch Einführung einer gepulsten Schnittstelle
zwischen dem DQS- und dem CLK- synchronen Bereich wird das Schreibtaktsignal
DQS gegenüber
dem externen Schreibtaktsignal WRCLK verschoben, so dass sich größere Zeitabstände zwischen
beiden ergeben. Eine Verdopplung des Abstandes ist möglich. Damit
gewinnt man Zeit für
die Übernahme
der Daten in dem nachfolgenden Synchronisationsbereich, und die
Datenübergabe
wird sicherer.
-
Der erfindungsgemäße DDR-Speicher mit mehreren
Speicherzellen, die jeweils eine vorgegebene Wortbreite haben, der
umfasst: einen ersten Taktsignaleingang zum Empfangen eines Systemtaktsignals,
einen zweiten Taktsignaleingang zum Empfangen eines Datentaktsignals,
einen Befehlseingang für
das Einlesen und Dekodieren eines Schreib- Befehls, der mit dem
Systemtaktsignal synchronisiert ist, einen seriellen Dateneingang
für das Einlesen
von seriellen Daten bei einer steigenden Flanke und bei einer fallenden
Flanke des Datentaktsignals, einen Seriell-Parallel-Konverter zum
Zusammenfassen einer vorgegebenen Datenanzahl der eingelesenen Daten
zu einer vorgegebenen Wortanzahl von Datenworten mit der vorgegebenen
Wortbreite, ist gekennzeichnet durch einen Schnittstellenspeicher,
der das wenigstens eine Datenwort aus dem Seriell-Parallel-Konverter
kopiert, wenn er ein Kopiersignal erhält, das synchron zu dem Datentaktsignal
ist, und der das wenigstens eine Datenwort auf einen Bus ausgibt,
wenn er ein Ausgabesignal erhält, das
synchron zu dem Systemtaktsignal ist.
-
Insbesondere ist eine Einrichtung
zum Erzeugen eines Zeitfensters vorgesehen, in welchem das Erzeugen
des Kopiersignals durch den Datentakt inhibiert ist.
-
Bei einer bevorzugten Ausführungsform
der Erfindung umfasst die Einrichtung zum Erzeugen eines Zeitfensters
einen Zähler,
dessen Ausgangszustand sich zwischen dem Einlesen eines ersten Datenwerts
und eines letzten Datenwerts des wenigstens einen Datenwortes einmal
von einem ersten auf einen zweiten Ausgangszustand ändert, und
eine Taktsynchronisationseinrichtung, die das Kopiersignal ausgibt,
wenn ein Datentaktsignal anliegt und der Zähler den zweiten Ausgangszustand
aufweist.
-
Das erfindungsgemäße Speicherverfahren zum Abspeichern
von Daten in einem oben beschriebenen DDR- Speicher mit mehreren
Speicherzellen, die jeweils eine vorgegebene Wortbreite haben, ist gekennzeichnet
durch Kopieren des wenigstens einen Datenworts aus dem Seriell-Parallel-Konverter bei
Empfang eines Kopiersignals, das synchron zu dem Datentaktsignal
ist, und Ausgeben des wenigstens einen Datenworts auf einen Bus
bei Empfang eines Ausgabesignals, das synchron zu dem Systemtaktsignal
ist, durch einen Schnittstellenspeicher.
-
Ein Vorteil der Erfindung besteht
darin, dass durch den gepulsten Schnittstellenspeicher der maximal
mögliche
Spielraum für
fertigungs- und betriebsbedingte Schwankungen (Spannung, Temperatur) erweitert
wird, so dass Anforderungen an andere Schaltkreise verringert werden
können.
-
Weitere Merkmale und Vorteile der
Erfindung ergeben sich aus der folgenden Beschreibung eines Ausführungsbeispiels,
bei der Bezug genommen wird auf die beigefügten Zeichnungen.
-
1 zeigt
schematisch eine Speicherschnittstelle nach dem Stand der Technik.
-
2 zeigt
ein Zeitdiagramm der Takt- und Datensignale bei der Speicherschnittstelle
nach 1.
-
3 zeigt
die Abfolge der Datenübergabeoperationen
nach dem Stand der Technik.
-
4 zeigt
schematisch eine Ausführungsform
der erfindungsgemäßen Speicherschnittstelle.
-
5 ist
eine Darstellung zur Erläuterung des
Zeitgewinns bei der Speicherschnittstelle nach 4.
-
In 1 ist
schematisch der Aufbau einer Speicherschnittstelle eines DDR-Speichers
gezeigt. Über
eine serielle Datenleitung 1 kommen die zu schreibenden
Daten am Speicher an. Gleichzeitig mit den Daten liegt ein Datentaktsignal 2 an.
Beide Signale werden von einer Dateneinleseeinrichtung 3 er fasst,
deren Aufbau im einzelnen später
erläutert werden
wird. Über
eine interne Datenleitung 4 werden die Daten weitergeleitet.
-
Der Datentakt schwankt gegenüber dem Systemtakt
innerhalb einer spezifizierten Breite. Ein Schreibbefehl, der außen an den
Speicher angelegt wird, wird in dem Speicher synchron zu einem Befehlstakt
bearbeitet, der seinerseits synchron zu dem Systemtakt ist. Der
Befehlstakt liegt auf einer Leitung 5 an einer Neusynchronisationseinrichtung 6 an,
die die Daten auf der internen Datenleitung 4 einliest.
In der Neusynchronisationseinrichtung 6 werden die Daten
mit dem Befehlstakt bzw. dem Systemtakt synchronisiert, und anschließend werden
sie auf einen internen parallelen Datenbus 7 ausgegeben,
der i. a. die gleiche Breite hat, wie
die einzelnen (nicht dargestellten) Speicherzellen des Speichers.
-
Die Neusynchronisation der Daten
auf den Systemtakt erfolgt mit einer Folge von Signalen, die im
einzelnen in 2 dargestellt
sind. Die Daten DQ kommen auf der Leitung 1 an. Es sind
zwei Datenwerte als schwarze Flächen
gezeigt, nämlich
ein erster Datenwert D0 und ein letzter Datenwert D3. Dazwischen
können
sich weiterer Daten bei einer Übertragung
befinden, etwa D1 und D2 etc. Gleichzeitig mit den Daten erhält der Speicher über die
Leitung 2 das Signal DQS. Dieses Signal DQS schwankt zeitlich
gegenüber
dem Systemtaktsignal CLK bzw. dem negierten Systemtaktsignal CLK#.
Als einzulesende Daten werden nur die anerkannt, die eine bestimmte zeitliche
Beziehung zu dem Datentakt DQS haben, in der Darstellung also die
Datenwerte D0 bis D3. Die Grenzen, innerhalb die zeitliche Beziehung
zwischen Daten und Datentakt liegen muss, ist in den unteren beiden
Signalverläufen
gezeigt: der unterste Verlauf gibt die maximale Verschiebung des
Taktsignals gegenüber
dem Datensignal zu großen
Zeiten an, der Verlauf darüber
die minimale Verschiebung.
-
Grau gefüllte Bereiche der Signale in 2 bleiben unberücksichtigt.
-
Das Einlesen der ankommenden Daten
und ihre Zwischenspeicherung in der Schnittstelle beim Stand der
Technik ist in 3 gezeigt.
Dabei wird angenommen, dass auf der Dateneingangsleitung 1 die Datenwerte
A, B, C und D ankommen, die ein zusammenhängendes Datenpaket oder "burst" bilden. Die dazugehörigen Datentaktsignalpulse
auf Leitung 2 sind darüber
gezeigt. Bei der ersten steigenden Flanke des Datentaktsignals 2 wird
der Wert A in einem Register in der Dateneinleseeinrichtung 3 abgespeichert.
Bei der darauffolgenden fallenden Flanke des Datentaktsignals 2 wird
der Wert B in der Dateneinleseeinrichtung 3 in einem zweiten
Register abgespeichert. Bei der zweiten steigenden Flanke des Datentaktsignals 2 wird
der Wert C in einem dritten Register abgespeichert, und bei der
zweiten fallenden Flanke des Datentaktsignals 2 wird der
Wert D in einem vierten Register abgespeichert.
-
Sobald alle Werte eines "bursts" eingelesen und abgespeichert
sind, wird beim Stand der Technik ein Datenwort, dessen Breite der
Anzahl der gespeicherten Datenwerte entspricht, über den internen parallelen
Bus 7 ausgegeben. Die Ausgabe der Daten auf dem Bus 7 wird
durch das Systemtakt-synchrone Signal auf der Leitung 5 veranlasst.
Wie oben bereits beschrieben, kann daher die Zeit τ zwischen
dem Abschluss des Abspeicherns in den Registern und der Ausgabe
der Daten auf den parallelen Bus 7 sehr kurz sein, so kurz,
dass durch bereits anliegende Daten eines nachfolgenden "bursts" der erste Wert (in diesem
Fall A) in einem der Register bereits überschrieben ist und damit
der Schreibvorgang fehlerhaft abläuft.
-
In 4 ist
eine Ausführungsform
der erfindungsgemäßen Speicherschnittstelle
gezeigt, bei der zwischen Abschluss des Abspeicherns aller Datenwerte
eines Datenpakets und der Ausgabe auf den parallelen Bus genügend Zeit
bleibt, so dass es nicht zu einem ungewollten Überschreiben von Daten bei deren Übergabe
von einer Synchronisation auf eine andere kommen kann.
-
Die über die Leitung 1 kommenden
Daten werden bei einer stei genden Flanke des Datentaktsignals 2 in
ein erstes Register und bei einer fallenden Flanke des Datentaktsignals 2 in
ein zweites Register eingelesen. Die beiden Register sind zusammengefasst
zu einem Zwischenspeicher 3a. Nachdem bei der ersten steigenden
und der ersten fallenden Flanke der Wert A bzw. B in jeweils ein
Register eingelesen wurde, wird bei der nächsten steigenden Flanke und
der nächsten
fallenden Flanke der jeweilige Wert in den beiden Registern von
Zwischenspeicher 3a in ein nachgeordnetes Register kopiert,
und der Wert in den Registern von Zwischenspeicher 3a wird
durch die nachfolgenden Daten C und D desselben Datenpaktes überschrieben.
Bei einer weiteren Flanke des Datentaktsignals 2 werden
auch diese beiden Werte C und D in ein nachgeordnetes Register geschrieben,
so dass also nach dem Zwischenspeicher 3a ein weiterer
Zwischenspeicher 3b mit vier Registern folgt. Die Register
des Zwischenspeichers 3a und 3b sind jeweils mit "FF" (Flip-Flop) bezeichnet.
Der Zwischenspeicher 3a und der Zwischenspeicher 3b bilden
zusammen die Dateneinleseeinrichtung 3.
-
Das Einlesen des Daten wird durch
einen Schreibbefehl ausgelöst,
der auf einer Befehlsleitung 8 anliegt. Der Schreibbefehl
wird in einem Befehlsdekodierer 9 des Speichers erfasst
und ausgewertet. Gleichzeitig liegt ein Systemtaktsignal 10 an
der Speicherschnittstelle an. Das Systemtaktsignal 10 wird
von einem Signalgenerator 11 erfasst, der aus dem Schreibbefehl 8 und
dem Systemtakt 10 einen internen Schreibtakt bildet, der
dem Signal auf Leitung 5 in 1 entspricht.
Außerdem
erzeugt der Signalgenerator 11 aus dem Schreibbefehl 8 und
dem Systemtakt 10 ein weiteres Signal, mit dem ein Zähler 12 aktiviert
wird, der die Pulse des Systemtakts zählt. Da die Länge des
Datenpakets, d. h. die Anzahl der Datenwerte
A, B, C und D, bekannt ist (die in 4 vier
beträgt),
kann mit Abzählen
der Systemtaktpulse das Ende des Datenpaketes im voraus erkannt
werden. Ist ein Datenpaket eingelesen worden, so kann das Datenwort
in dem Zwischenspeicher 3b ausgegeben werden. Um sicherzustellen,
dass das Einlesen tatsächlich
beendet wurde und alle Werte des Datenpaketes in den Registern 3b vorliegen,
erfolgt die Freigabe der Werte synchron zu dem Datentakt 2.
Dazu ist der Zähler 12 mit
einer Taktsynchronisationseinrichtung 13 verbunden. An dieser Taktsynchronisationseinrichtung 13 liegt
permanent der Datentaktpuls 2 an. Jedoch erst bei Anliegen
des Ergebnisses von Zähler 12,
das das Ende eines Datenpakets anzeigt, lässt die Taktsynchronisationseinrichtung 13 einen
Datentaktpuls als Maskierten Datentaktpuls 14 an den Zwischenspeicher 3b durch.
Damit gibt der Zwischenspeicher 3b den Registerinhalt an
seinen (nicht dargestellter) Ausgängen aus, wo sie durch einen
Schnittstellenspeicher 15 kopiert werden.
-
Nach dem Kopiervorgang erfolgt synchron zu
dem Befehlstakt 5 die Ausgabe des Inhalts des Schnittstellenspeichers 5 auf
den internen parallelen Bus 7.
-
Mit anderen Worten, der Zähler 12 und
die Taktsynchronisationseinrichtung 13 erzeugen gemeinsam
ein Zeitfenster, in welchem das Kopieren des Inhalts vom Zwischenspeicher 3b durch
den Schnittstellenspeicher 15 inhibiert ist.
-
Vorzugsweise ist bei einer Datenpaketlänge von
vier Bit der Zähler 12 ein
Ein-Bit-Zähler,
dessen Ausgangszustand sich zwischen dem Einlesen des ersten Datenwerts
A und des letzten Datenwerts D genau einmal von einem ersten auf
einen zweiten Ausgangszustand ändert.
So liegt der Ausgang des Zählers 12 beispielsweise
am Ende des Datenpaketes auf Eins, nachdem er zu Beginn des Einlesens auf
Null lag. Wenn dann ein Datentaktsignal 2 anliegt, so lässt die
Taktsynchronisationseinrichtung 13 das nächste Datensignal 2 durch,
und der Kopiervorgang mit anschließender, unabhängiger Ausgabe
der Daten auf den internen Bus 7 wird ausgelöst.
-
Mit diesem Aufbau des Speicherschnittstelle hat
man eine große
zeitliche Unabhängigkeit
zwischen Einlesen und internem Ausgeben der Daten erreicht, und
damit eine größeren Spielraum
bei der Neusynchronisation der Daten.
-
Dies wird im folgenden anhand von 5 erläutert.
-
In 5 sind
zwei aufeinander folgende Datenpakete A, B, C, D, A, B, C und D
auf der Datenleitung 1 gezeigt. Gleichzeitig mit den Daten
liegt der Datentakt 2 an, der darüber dargestellt ist. Die Daten werden
in den Zwischenspeicher 3 eingelesen, genauer gesagt in
die Register 3b. Das erste Datenpaket liegt damit zur Speicher-internen
Weitergabe bereit, es muss kopiert werden, bevor es überschrieben wird.
-
Der Fall, dass ein Kopierbefehl sehr
früh kommt,
ist links in der unteren Hälfte
der 5 dargestellt, der
Fall, dass ein Kopierbefehl sehr spät kommt, ist rechts dargestellt.
Es gilt, dass bei einer festen Datenpaketlänge von vier Datenwerten der nächste Puls
frühestens
nach zwei Takten folgen kann. Dadurch wird die mögliche Schwankungsbreite des
Kopierbefehls 14 gegenüber
dem Datentakt 2 bei einer Datenpaketlänge von vier und einem "prefetch" von ebenfalls vier
auf zwei Takte erhöht.
-
- 1
- serielle
Dateneingangsleitung
- 2
- Datentaktleitung
DQS
- 3
- Dateneinleseeinrichtung,
3a erster Zwischenspeicher, 3b
-
- zweiter
Zwischenspeicher
- 4
- interne
Datenleitung für Übertragung
von DQS- synchroni
-
- sierten
Daten
- 5
- Befehlstaktleitung
WRCLK
- 6
- Umsynchronisierungseinrichtung
DQS/WRCLK
- 7
- interner
paralleler Datenbus
- 8
- Befehlsleitung
- 9
- Befehlsdekodierer
- 10
- Systemtaktleitung
- 11
- Signalgenerator
- 12
- Zähler
- 13
- Taktsynchronisationseinrichtung
- 14
- maskierter
Datentaktpuls, sync DQS
- 15
- Schnittstellenspeicher