-
Die
Erfindung betrifft eine Synchronisationsschaltung zur Behandlung
und Synchronisation eines Schreibvorgangs auf einen Halbleiterspeicher,
insbesondere einen DDR-Graphikspeicher.
-
Bei
modernen Computer- und Software-Anwendungen besteht zunehmend der
Bedarf, immer größere Datenmengen
in immer kürzerer
Zeit zu verarbeiten. Zur Speicherung der Daten werden hochintegrierte
Speicher, wie zum Beispiel DRAM-Speicher, verwendet. Um nun dem
Bedarf einer immer höheren Geschwindigkeit
bei der Verarbeitung von Daten gerecht zu werden, müssen die
Daten entsprechend schnell in den Speicher geschrieben werden bzw. wieder
aus diesem Speicher herausgelesen werden. Dies lässt sich zum Beispiel mit einer
immer weiter steigenden Betriebsfrequenz, mit der die Daten aus einem
oder in einen Halbleiterspeicher gelesen bzw. geschrieben werden
können,
realisieren.
-
Eine
weitere Möglichkeit
besteht in der Verwendung speziell für hohe Datenraten ausgelegten Halbleiterspeichern.
Ein Vertreter eines solchen Halbleiterspeichers ist der so genannte DDR-DRAM-Speicher,
wobei DDR für "Double Data Rate" steht. Obwohl auf
beliebige Halbleiterspeicher anwendbar, werden die vorliegende Erfindung
sowie die ihr zugrunde liegende Problematik nachfolgend mit Bezug
auf DDR-DRAM-Halbleiterspeicher und hier insbesondere auf solche
Graphikspeicher erläutert.
Während
bei herkömmlichen
Halbleiterspeichern Schreib- und Leseoperationen nur bei der ansteigenden
oder bei der abfallenden Flanke eines Taktsignals vorgenommen werden,
werden bei den genannten DDR-Halbleiterspeichern Daten sowohl bei
der ansteigenden als auch bei der abfallenden Flanke eines Taktsignals
aus dem Halbleiterspeicher ausgelesen bzw. wieder in den Speicher
geschrieben. Diese Halbleiterspeicher zeichnen sich also durch eine
doppelte Datenrate aus.
-
Zukünftige DDR-Graphikspeicher
der 3. Generation (G-DDR-III) weisen eine verbesserte Leistungsfähigkeit
auf. Der G-DDR-III-Spezifikation
zufolge ist es nun erlaubt, Serien von Schreibbefehlen an den Graphikspeicher
zu senden, wobei zumindest ein so genannter NOP-Befehl (NOP = No
Operation) zwischen zwei aufeinanderfolgenden Schreibbefehlen WR
vorgesehen sein muss. 1 zeigt ein Ablaufdiagramm für einen
G-DDR-III-Schreibzugriff,
bei dem für
eine Serie von zwei Schreibbefehlen WR zunächst ein erster Schreibbefehl
WR und anschließend
ein zweiter Schreibbefehl WR abgearbeitet wird. Mit WL ist hier
die Schreiblatenz bezeichnet.
-
Im
Falle eines G-DDR-III-Speichers ist die Burst-Länge auf 4 festgelegt, das heißt innerhalb
eines Datenbursts der Dauer von zwei Takten (WL = 2) des Taktsignals
CLK werden vier Datenpakete D00–D03,
D10–D13
parallel verarbeitet. Nach Ende eines jeweiligen Schreibbefehls
WR steht der Zähler jeweils
auf CS = "0". Die Steuerung des
Schreibzugriffs wird von dem Taktsignal CLK oder einem davon abgeleiteten
Steuersignal WDQS vorgenommen. Bei diesem Steuersignal WDQS handelt
es sich um das Datenstrobe-Schreibtaktsteuersignal WDQS, nachfolgend
auch als Schreibtaktsteuersignal WDQS oder kurz WDQS-Signal WDQS
bezeichnet. Bei einer ersten fallenden Flanke des WDQS-Signals WDQS
wird der Zähler
gestartet. Diese Flanke des WDQS-Signals WDQS wird auch als Präambel PR bezeichnet.
Bei jeder nachfolgenden ansteigenden oder abfallenden Flanke des
WDQS-Signals WDQS wird jeweils ein Datenpaket D00–D03 eines
ersten Datenbursts DB1 gelatcht, das heißt in einen Zwischenspeicher
geschrieben. Das bedeutet, dass bei einem Zählerstand "4" das
jeweils letzte Datenpaket D03 des ersten Datenbursts DB1 gelatcht
wird. Die nachfolgende, dem Zählerstand "5" entsprechende ansteigende Flanke des
WDQS-Signals WDQS
wird auch als Postambel PO bezeichnet. Bei der Postambel PO wird
der Zähler
von "5" auf "0" zurück
gesetzt.
-
Der
Zählerstand
bleibt dann solange auf "0", bis über einen
zweiten Schreibbefehl WR ein weiterer Schreibzugriff signalisiert
wird, um Datenpakete D10–D13
eines nachfolgenden zweiten Datenbursts DB2 zu latchen.
-
Ein
für den
Zähler
kritischer Fall ergibt sich bei einem Schreibzugriff, bei dem zwischen
zwei aufeinanderfolgenden Schreibbefehlen WR jeweils nur ein einziger
NOP-Befehl (NOP = No Operation) vorhanden ist, das heißt für die Befehlsfolge
WR, NOP, WR, NOP, etc. Eine derartige Folge mit lediglich einem
NOP-Befehl NOP zwischen zwei Schreibbefehlen WR wird nachfolgend
auch als "Gapless"-Schreibbefehl bezeichnet,
da hier die Daten zweier aufeinander folgender Datenbursts in Form
eines kontinuierlichen Datenstroms in den Graphikspeicher geschrieben
werden sollen. 2 zeigt ein Ablaufdiagramm zur
Darstellung dieses kritischen Falls im Falle dreier aufeinander
folgender Gapless-Schreibbefehle. Problematisch ist hier, dass jeweils
die letzte ansteigende Flanke, also die Postambel PO, welche dem
letzten Datenpaket D03 des Datenbursts DB1 zugeordnet ist, und die
erste abfallende Flanke, also die Präambel PR, welche dem ersten Datenpaket
D10 des nachfolgenden Datenbursts DB2 zugeordnet ist, sich überlappen.
Damit ist eine eindeutige Unterscheidung der Datenpakete D00–D03, D10–D13 zweier
aufeinander folgender Datenbursts DB1, DB2 nicht mehr möglich.
-
Das
Problem offenbart sich vor allem bei dem Zähler bzw. dessen Zählerstand.
Entsprechend dem Zählerstand
würde der
Zähler
die Flanke des WDQS-Signals WDQS des zweiten Datenbursts DB2 hier
als Präambel
PR interpretieren, obwohl die Präambel
PR dieses Datenbursts DB2 tatsächlich
bereits einen Takt vorher vorhanden war. Analogerweise wäre das Zählerausgangssignal
beim dritten Gapless-Schreibbefehl, also beim dritten Datenburst DB3,
entsprechend zwei Takte zu spät.
Insbesondere bei einer großen
Anzahl solcher aufeinander folgender Gapless-Schreibbefehlen WR
kommt es dann zwangsläufig
zu einer zunehmenden Verschiebung des Zählerausgangssignals mit der
Folge, dass die einzelnen Datenpakete Dx0–Dx3 der verschiedenen Datenbursts
DBx nicht mehr ordnungsgemäß gelatcht
werden und damit nicht mehr ordnungsgemäß in den Speicher geschrieben
werden können.
-
In
der nach-veröffentlichten
Deutschen Patentanmeldung mit dem Aktenzeichen
DE 10 2004 021 694.0-55 ist ein
Verfahren zum Steuern eines Schreibzugriffs und zur Behandlung solcher
Konflikte bei Gapless-Schreibbefehlen beschrieben. Dort ist ein
Zähler
zum Zählen
der WDQS-Flanken sowie eine Logikschaltung vorgesehen, die Gapless-Schreibbefehle
anhand der detektierten Kommandofolgen erkennt und ein Steuersignal
(bzw. Steuerflag) setzt, welches das Vorhandensein eines Gapless-Schreibbefehls
anzeigt. Bei Vorhandensein des Steuerflags wird der Zähler dazu
veranlasst, zwei Flanken des WDQS-Signals weniger zu zählen, als dies für herkömmliche,
also nicht Gapless-Schreibbefehle (so genannte Gapped-Schreibbefehle)
der Fall ist.
-
Problematisch
hieran ist allerdings, dass dieses Steuerflag synchron zum chipinternen
Takt CLK ist und das WDQS-Signal synchron zu den Schreibdaten DQ
ist. Da somit das WDQS-Signal asynchron zu dem internen Taktsignal
ist, kann es zu einer Schwankung zwischen dem Takt des WDQS-Signals und
des internen Taktsignals kommen. Laut der G-DDR-III-Spezifikation
dürften
sich die Phasen des WDQS-Signals und des internen Taktsignals um
bis zu einem halben Takt unterscheiden. Bei Betriebsfrequenzen des
DRAM-Halbleiterspeichers bis in den MHz-Bereich lässt sich
dies auch mehr oder weniger problemlos realisieren. Problematisch
ist diese Forderung allerdings für
Betriebsfrequenzen im hohen MHz-Bereich und ab dem GHz-Bereich, da dort
der Unterschied zwischen den Phasen des WDQS-Signals und des internen
Taktsignals sich zunehmend vergrößern kann.
Zudem spielen dort Laufzeitunterschiede zunehmend eine Rolle.
-
Die
US 6,337,809 B1 beschreibt
einen DDR-SDRAM-Halbleiterspeicher,
der ein Adress-FIFO und ein Daten-FIFO aufweist. Das Daten-FIFO
dient hier dem Zweck, Daten solange aufzuheben, bis eine Leseoperation,
die den internen Datenbus zwischen Daten-FIFO und Speicherzellenfeld
belegt, abgeschlossen ist. Auf diese Weise wird eine interne Datenkollision
verhindert und der externe Datenfluss optimiert. Das Daten-FIFO
sendet also immer nur dann Daten zu dem Speicherzellenfeld des Halbleiterspeichers,
wenn der interne Datenbus gerade nicht durch einen Lesezugriff belegt
wird. Gleichzeitig werden die Adressen, die zu einem Schreibzugriff
gehören,
abgesendet. Der Selektor prüft,
ob die Adresse des Lese- und Schreibzugriffs gleich sind, und sendet
dann zusätzlich
zu den von dem Daten-FIFO an das Speicherzellenfeld zu sendende
Schreibdaten die selben Daten von dem Daten-FIFO zu einem externen
Controller. Da die Lesedaten für
diesen Spezialfall mit den Schreibdaten identisch sind, kann insgesamt
ein Lesezugriff auf das Speicherzellenfeld eingespart werden.
-
Vor
diesem Hintergrund liegt der vorliegenden Erfindung die Aufgabe
zugrunde, eine verbesserte Steuerung bei der Behandlung von Schreibbefehlen,
insbesondere bei sehr hohen Betriebsfrequenzen, zu ermöglichen.
-
Erfindungsgemäß wird zumindest
eine dieser Aufgaben durch eine Synchronisationsschaltung mit den
Merkmalen des Patentanspruchs 1 gelöst.
-
Demgemäß ist eine
Synchronisationsschaltung zur Behandlung und Synchronisation eines Schreibvorgangs
auf einen Halbleiterspeicher, insbesondere einen DDR-Graphikspeicher,
bei dem ein Schreibvorgang mehrere Schreibbefehle enthält, vorgesehen,
mit einem durch ein WDQS-Signal getakteten steuerbaren ersten FIFO,
in welchem Schreibdaten aufgrund eines oder mehrerer aufeinander
folgender Schreibbefehle abgelegt sind, mit einem durch ein internes
Taktsignal getakteten steuerbaren zweiten FIFO, in welchem bei einem
Schreibvorgang die Adressen lediglich der im ersten FIFO abgelegten gültigen Schreibdaten
abgelegt sind, wobei die Adressen anzeigen, an welcher Stelle des
ersten FIFOs diese Schreibdaten abgelegt sind.
-
Bei
der vorliegenden Erfindung werden zwei unterschiedliche FIFOs verwendet,
um Gapless-Schreibbefehle von herkömmlichen Gapped-Schreibbefehlen
zu unterscheiden. Die der vorliegenden Erfindung zugrunde liegende
Idee besteht darin, neben dem ersten FIFO, in dem die Schreibdaten
abgelegt werden, nun ein zusätzliches
zweites FIFO bereitzustellen, welches mit jedem Schreibbefehl die
Startadresse, ab dem im ersten FIFO gültige Schreibdaten abgelegt
sind, speichert. Das erste FIFO fungiert somit als Daten-FIFO und
das zweite FIFO fungiert als Adress-FIFO für die im ersten FIFO abgelegten
gültigen
Daten.
-
Dabei
werden die auf den Datenleitungen ankommenden Schreibdaten mit jeder
gültigen
Flanke des WDQS-Schreibtaktsteuer signals in das erste FIFO eingelesen,
ohne zu berücksichtigen,
ob es sich hier um gültige
Schreibdaten handelt oder nicht. Dieses Einlesen der Schreibdaten
erfolgt also synchron zum Takt des WDQS-Schreibtaktsteuersignals und
ist somit nicht abhängig
von weiteren Einflüssen, beispielsweise
von dem Takt des internen Taktsignals oder dem Einfluss von Verbindungsleitungen.
-
Zudem
ist das zweite FIFO vorgesehen, in dem die Adressen lediglich der
gültigen,
im ersten FIFO gespeicherten Schreibdaten abgelegt sind. Hierfür ist ein
Adresszähler
vorgesehen, dessen Inhalt mit jedem Schreibkommando um einen festen Wert
erhöht
wird, und ein Decoder zur Unterscheidung eines kontinuierlichen
und unterbrochenen Datenflusses vorgesehen.
-
Handelt
es sich um einen Zugriff mit kontinuierlichem, also nicht unterbrochenem
Datenfluss (so genannter Gapless-Schreibbefehl),
dann wird der Zählerstand
des Adresszählers
bei jedem Schreibbefehl, also mit jedem Datenburst, kontinuierlich
um +2 erhöht.
Dieser Wert (+2) leitet sich aus der Länge von zwei Takten ab, welche
bei dem DDR-Standard einer Burstlänge von vier entsprechen. Ist
hingegen ein Zugriff mit unterbrochenem, also nicht kontinuierlichem Datenfluss
(so genannter Gapped-Schreibbefehl) vorhanden, dann wird aufgrund
der Präambel
und Postambel der Zählerstand
des Adresszählers
zusätzlich
um +1 erhöht.
-
Erfindungsgemäß ist nun
ein Decoder vorgesehen, der einen solchen Gapped-Schreibbefehl erkennt
und im Falle eines erkannten Gapped-Schreibbefehls ein entsprechendes
Steuersignal ausgibt, sodass der Adresszähler zusätzlich um +1 erhöht wird. Das
zweite FIFO enthält
dadurch die Startadressen, ab denen im ersten FIFO gültige Schreibdaten
abgelegt sind, ungeachtet dessen, ob die Daten aufgrund eines Gapless-Schreibbefehls oder
eines Gapped-Schreibbefehls ausgelesen wurden. Beim Auslesen des
ersten FIFOs wird für
jeden Schreibbefehl – also
sowohl für
einen Gapless-Schreibbefehl als auch bei einem Gapped-Schreibbefehl – die Startadresse
aus dem zweiten FIFO geholt und die Daten ab dieser Startadresse
aus dem ersten FIFO wieder ausgelesen.
-
Das
zweite FIFO wird durch ein Taktsignal des Speichers, beispielsweise
des internen Taktsignals, getaktet. Das Beschreiben des zweiten
FIFOs erfolgt also vollständig
in der Domain des internen Taktsignals, ist also vollständig unabhängig vom
Takt des WDQS-Schreibtaktsteuersignals. Dies hat insgesamt zur Folge,
dass das Einlesen der Daten in das erste FIFO und das Abspeichern
der diesen Daten entsprechenden Adressen in das zweite FIFO vollständig unabhängig und
voneinander entkoppelt ist. Ein Einsynchronisieren des ersten und
zweiten FIFOs bzw. des WDQS-Schreibtaktsteuersignals auf das interne
Taktsignal ist hier nicht erforderlich, da das erste FIFO eben unabhängig von
dem zweiten FIFO betrieben werden kann.
-
Die
erfindungsgemäße Schaltung
zeichnet sich durch eine sehr hohe Leistungsfähigkeit im Falle eines Schreibzugriffes
aus, da selbst bei Vorhandensein von Gapless-Schreibzugriffen keine
Verzögerung
eingebaut werden muss und damit eine hohe Schreibgeschwindigkeit
beim Schreiben von Daten in den Halbleiterspeicher gewährleistet
wird. Ein weiterer Vorteil besteht vor allem darin, dass das Schreiben
von Daten in einen Halbleiterspeicher, wie beispielsweise einen
DDR-Halbleiterspeicher,
auch bei sehr hohen Betriebsfrequenzen möglich ist. Insbesondere lassen
sich nun auch G-DDR-III-Halbleiterspeicher
bei Betriebsfrequenzen von 1 GHz ohne Datenverluste bei Gapless-Schreibbefehlen
betreiben.
-
Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus
den weiteren Unteransprüchen
sowie der Beschreibung unter Bezugnahme auf die Zeichnungen.
-
Eine
bevorzugte Ausgestaltung der Erfindung sieht eine durch das WDQS-Signal
getaktete erste Steuerschaltung zur Steuerung des ersten FIFOs vor.
Diese erste Steuerschaltung ist dazu ausgelegt, aus dem WDQS-Signal
einen Eingangszeiger zu erzeugen, der anzeigt, an welche Stelle – also in welche
FIFO-Zellen – des ersten
FIFOs die Schreibdaten zwischenzuspeichern sind. Zum Latchen der Schreibdaten
weist die erste Steuerschaltung vorzugsweise zumindest ein Latch
oder eine entsprechende Pufferspeicherschaltung auf. Das Latchen der
Schreibdaten erfolgt unter Steuerung des WDQS-Signals oder eines
davon abgeleiteten Signals, beispielsweise eines inversen WDQS-Signals.
-
Eine
bevorzugte Ausgestaltung sieht ein erstes Latch zum Latchen der
Schreibdaten bei einer abfallenden Flanke des WDQS-Signals und ein zweites Latch
zum Latchen der Schreibdaten bei einer ansteigenden Flanke des WDQS-Signals
vor, wobei das Latchen jeweils abwechselnd bei einer abfallenden und
einer ansteigenden Flanke des WDQS-Signals erfolgt. In diesem Zusammenhang
ist es auch vorteilhaft, wenn das erste FIFO zweiteilig ausgebildet
ist und entsprechend zwei Zähler
zur Erzeugung jeweils eines Eingangszeigers jeweils für eine der
beiden FIFO-Teile vorgesehen sind. Ein solcher Eingangszeiger zeigt
an, an welcher Stelle die Schreibdaten in das erste FIFO zu schreiben
sind. Im Falle des zweiteiligen Aufbaus des ersten FIFOs ist eine
erste Hälfte
der FIFO-Zellen zum Ablegen der bei einer abfallenden Flanke des
WDQS-Signals gelatchten Schreibdaten und eine zweite Hälfte der
FIFO-Zellen des zweiten FIFOs zum Ablegen der bei einer ansteigenden
Flanke des WDQS-Signals gelatchten Schreibdaten vorgesehen. Auf
diese Weise lassen sich die Daten sehr viel schneller in den Halbleiterspeicher
schreiben.
-
In
einer ebenfalls bevorzugten Ausgestaltung ist eine durch das interne
Taktsignal getaktete zweite Steuerschaltung zur Steuerung des zweiten FIFOs
vorgesehen. Anhand des internen Taktsignals und der Schreibbefehle
erzeugt die zweite Steuerschaltung einen Ausgangszeiger zur Ansteuerung des
ersten FIFOs, der anzeigt, an welcher Stelle des ersten FIFOs die
gültigen
Schreibdaten abgelegt sind.
-
Hierzu
weist die zweite Steuerschaltung zum Einen einen Decoder auf, der
aus dem Schreibbefehl und der Dauer zumindest zweier aufeinanderfolgender
Schreibbefehle ein Steuersignal ableitet, welches angibt, ob aufgrund
zweier aufeinander folgender Schreibbefehle ein kontinuierlicher
(gapless) oder ein unterbrochener (gapped) Datenstrom vorhanden
ist. Zum Anderen weist die zweite Steuerschaltung einen Adresszähler auf,
dessen Zählerstand
bei jedem Schreibbefehl um einen zweiten Wert inkrementiert wird
und bei Vorhandensein zweier unmittelbar aufeinander folgender Schreibbefehle
zusätzlich
um einen zweiten Wert inkrementiert wird. Am Ende eines jeweiligen
Schreibbefehls – also
bei Erreichen eines Endwertes des Adresszählers – wird dessen Zählerstand
auf einen Startwert zurückgesetzt.
Typischerweise beträgt
der erste Wert zwei und der zweite Wert eins.
-
In
einer weiteren Ausgestaltung ist der Adresszähler ausgangsseitig mit Eingängen des zweiten
FIFOs verbunden. Ferner weist die zweite Steuerschaltung einen zweiten
Zähler
auf, der für
jeden Schreibbefehl einen Eingangszeiger erzeugt, welcher angibt,
an welcher Stelle des zweiten FIFOs eine sich aus dem Zählerstand
des Adresszählers
ergebende Startadresse abzulegen ist. Anhand einer gespeicherten
Startadresse im zweiten FIFO stellt dieses ausgangsseitig einen
Ausgangszeiger bereit, der angibt, an welcher Stelle des ersten
FIFOs gültige
Schreibdaten abgelegt sind.
-
Bei
zwei nicht unmittelbar aufeinander folgenden Schreibbefehlen, die
zu einem unterbrochenen Datenstrom führen, also bei so genannten
Gapped-Schreibbefehlen, sind am Anfang (Präambel) und am Ende (Postambel)
des jeweiligen Datenbursts Zellen mit ungültigem Inhalt im ersten FIFO vorhanden.
Hingegen gibt es bei zwei unmittelbar aufeinander folgenden Schreibbefehlen,
die zu einem kontinuierlichen Datenstrom führen, also bei so genannten
Gapless-Schreibbefehlen, nur am Anfang des ersten Datenbursts und
am Ende des letzten Datenbursts Zellen im ersten FIFO mit ungültigem Inhalt.
Speziell die FIFO-Zellen
des ersten FIFOs, die jeweils benachbarten Datenbursts zugeordnet
sind, enthalten aber gültige
Schreibdaten.
-
Die
Erfindung eignet sich vor allem für DDR-Halbleiterspeicher und
insbesondere für
entsprechende Graphikspeicher der dritten Generation (G-DDR-III).
Gemäß der G-DDR-III-Spezifikation weist
das WDQS-Signal im inaktiven Zustand einen fest definierten ersten
logischen Pegel ("0" oder LOW) auf. Zu
Beginn eines Schreibvorgangs wechselt das WDQS-Signal von einem
fest definierten zweiten logischen Pegel ("1" oder
HIGH) auf den ersten logischen Pegel ("0").
Laut der G-DDR-III-Spezifikation
sind alle Signale auf einen logischen hohen Pegel ("1") und auf 60 OHM terminiert. Im Betrieb
beträgt
die "1" 40 OHM.
-
Die
Erfindung wird nachfolgend anhand der in den schematischen Figuren
der Zeichnung angegebenen Ausführungsbeispiele
näher erläutert. Es zeigt
dabei:
-
1 ein
Ablaufdiagramm zur Darstellung eines unterbrochenen Datenstroms
bei einer Serie von Schreibbefehlen;
-
2 ein
Ablaufdiagramm zur Darstellung der Präambel-Problematik bei Gapless-Schreibbefehlen;
-
3 ein
Blockschaltbild einer erfindungsgemäßen Schaltungsanordnung zur
Umgehung der Präambel-Problematik
bei Gapless-Schreibbefehlen;
-
4 ein
Blockschaltbild einer Ausgestaltung des Daten-FIFOs und der ersten Steuerschaltung;
-
5 anhand
eines Signal-Zeit-Diagramms den Signalverlauf der Daten- und Taktsignale
der Schaltungsanordnung aus 4;
-
6 ein
Blockschaltbild einer Ausgestaltung der zweiten Steuerschaltung
und des Adress-FIFOs;
-
7 anhand
eines Signal-Zeit-Diagramms den Signalverlauf der Signale der Schaltungsanordnung
aus 6;
-
8 anhand
eines Blockschaltbildes eine erste beispielhafte Ausgestaltung des
Gap-Decoders der Steuerschaltung aus 6;
-
9 ein
Blockschaltbild für
eine beispielhafte Ausgestaltung des Start-Adresszählers der Steuerschaltung
aus 6;
-
10 ein
Blockschaltbild für
eine zweite bevorzugte Ausgestaltung eines Gap-Decoders der Steuerschaltung
aus 6.
-
In
den Figuren der Zeichnung sind gleiche bzw. funktionsgleiche Elemente,
Merkmale und Signale – sofern
nichts Anderes angegeben ist – mit
denselben Bezugszeichen versehen worden. Die Ausführungsbeispiele
werden nachfolgend anhand des G-DDR-III-Standards beschrieben.
-
3 zeigt
ein Blockschaltbild einer erfindungsgemäßen Schaltungsanordnung zur
Umgehung der Präambel-Problematik
bei Gapless-Schreibbefehlen. Die erfindungsgemäße Schaltungsanordnung ist
hier mit Bezugszeichen 10 bezeichnet. Die Schaltungsanordnung 10 ist
dazu ausgelegt, einen kontinuierlichen, d. h. durchgehenden Datenstrom
im Falle von Gapless-Schreibbefehlen von
einem unterbrochenen Datenstrom im Falle von Gapped-Schreibbefehlen
zu unterscheiden. Hierzu weist die erfindungsgemäße Schaltungsanordnung 10 ein
erstes FIFO 11 und ein zweites FIFO 12 auf. Das
erste FIFO 11 wird nachfolgend auch als Daten-FIFO, das
zweite FIFO 12 als Adress-FIFO bezeichnet.
-
Die
Schaltungsanordnung 10 weist einen Dateneingang 13 zur
Einkopplung der Datensignale DQ und einen Datenausgang 14 zum
Abgreifen der Datensignale DQOUT auf. Die Datensignale DQ, DQOUT
liegen in Burst-Form vor, wobei ein Daten-Burst jeweils ein Datenpaket
mit jeweils mehreren einzelnen Datenbits enthält. Die Datensignale DQ enthalten
die Schreibdaten. Die Schaltungsanordnung 10 weist einen
Befehlseingang 15 zum Einkoppeln von codierten Schreibkommandos
COM auf. Ferner sind zwei Takteingänge 16, 17 vorgesehen, wobei
der Takteingang 16 zum Einkoppeln eines internen Taktsignals
CLK dient. Dieses interne Taktsignal CLK kann beispielsweise von
einem jeweiligen Halbleiterspeicher selbst generiert werden oder über ein
extern generiertes Taktsignal, beispielsweise unter Verwendung einer
DLL-Schaltung, abgeleitet werden. In den zweiten Takteingang 17 ist
das Datenstrobe-Schreibtaktsignal WDQS einkoppelbar. Das interne
Taktsignal CLK und das Schreibtaktsignal WDQS sind typischerweise
asynchron zueinander.
-
Die
Schaltungsanordnung 10 weist zwei Steuerschaltungen 18, 19 auf.
Die erste Steuerschaltung 18 ist zwischen dem Dateneingang 13 und
dem Takteingang 17 und den Eingängen des Daten-FIFOs 11 angeordnet.
Die zweite Steuerschaltung 19 ist zwischen dem Befehlseingang 15 und dem
Takteingang 16 und den Eingängen des Adress-FIFOs 12 angeordnet.
Die erste Steuerschaltung 18 erzeugt aus dem Datensignal
DQ das datensynchrone Datensignal DQ', welches dem Daten-FIFO 11 zugeführt wird.
Ferner wird dort aus dem Schreibtaktsignal WDQS ein Eingangszeiger
INPX erzeugt, mittels dem eingangsseitig die einzelnen Zellen des
Daten-FIFOs 11 angesteuert werden. Die zweite Steuerschaltung 19 erzeugt
aus dem Schreibkommando COM und dem internen Taktsignal CLK eine
Adresse AY zum Abspeichern im Adress-FIFO 12 sowie einen
Eingangszeiger INPY zur eingangsseitigen Ansteuerung des Adress-FIFOs 12.
Das Adress-FIFO 12 liefert
ausgangsseitig eine Startadresse AX, die dem Daten-FIFO 11 zugeführt wird
und die dem Daten-FIFO 11 signalisiert, an welcher Stelle des
Daten-FIFOs 11 gültige
Daten abgelegt sind, um diese als Ausgangsdaten DQOUT dem Datenaus gang 14 zuzuführen. Die
Startadresse AX bildet den Ausgangszeiger AX für die jeweils richtige Zelle
des Daten-FIFOs 11.
-
Nachfolgend
werden der Aufbau und die Funktionsweise der erfindungsgemäßen Schaltung 10 und
insbesondere dessen Steuerschaltungen 18, 19 anhand
der nachfolgenden 4–10 detailliert
beschrieben.
-
4 zeigt
eine Ausgestaltung des Daten-FIFOs 11 und der ersten Steuerschaltung 18 im Detail.
Die erste Steuerschaltung 18 enthält zwei Empfängerschaltungen 20, 21,
denen zwei Pufferschaltungen 22a, 22b, beispielsweise
Input/Output-Latches 22a, 22b,
nachgeschaltet sind. Die erste Empfängerschaltung 20 dient
der Aufnahme des Datensignals DQ, welches anschließend beiden
Pufferschaltungen 22a, 22b zugeführt wird.
Die zweite Empfängerschaltung 21 dient
dem Zweck, aus dem Schreibtaktsignal WDQS zwei zueinander invertierte Taktsignale
DWS, bDWS zu erzeugen. Ferner sind zwei Zähler 25a, 25b vorgesehen,
die jeweils bei einer abfallenden bzw. bei einer ansteigenden Flanke des
Schreibtaktsignals WDQS ihren Zählerstand
beispielsweise durch aufwärts
Zählen,
verändern.
Die Zählerstände dieser
Zähler 25a, 25b bilden
die Eingangszeiger INPa, INPb zur Ansteuerung der FIFO-Zellenhälften 24a, 24b.
-
Das
Daten-FIFO 11 weist hier zwei FIFO-Zellenhälften 24a, 24b mit
jeweils einer gleichen Anzahl an FIFO-Zellen 24 auf, um
dadurch sowohl bei der ansteigenden als auch bei der abfallenden
Flanke des Schreibtaktsignals WDQS jeweils Daten Ya, Yb in das Daten-FIFO 11 schreiben
zu können.
Hier ist eine FIFO-Zellenhälfte 24a jeweils
Daten-synchron zu der fallenden Flanke des Schreibtaktsignals WDQS,
wohingegen die zweite FIFO-Zellenhälfte 24b Daten-synchron
zu der ansteigenden Flanke des Schreibtaktsignals WDQS ist. Die
in das Daten-FIFO 11 zu schreibenden Daten DQ sind im Falle
der Pufferschaltung 22a bei einer fallenden Flanke und
im Falle der Pufferschaltung 22b bei einer ansteigenden Flanke
des Schreibtaktsignals WDQS ge taktet. In 4 sind diejenigen
Elemente, die der ersten und der zweiten FIFO-Zellenhälfte 24a, 24b zugeordnet sind,
jeweils mit einem "a" bzw. einem "b" im jeweiligen Bezugszeichen gekennzeichnet.
-
Die
Schreibdaten DQ werden über
die Empfängerschaltung 20 in
den beiden Pufferschaltungen 22a, 22b auf die
aus dem Schreibtaktsignal WDQS abgeleiteten internen Taktsignalen
DWS, bDWS synchronisiert, um die Setup- und Hold-Zeiten zum Einlesen
der Daten DQ in die einzelnen FIFO-Zellen 24 aufeinander
abzustimmen. Anschließend
werden die Schreibdaten DQ getrennt nach synchron aufsteigender
und synchron abfallender Flanke des Schreibtaktsignals WDQS in parallel
zueinander betriebenen FIFO-Zellenhälften 24a, 24b des
Daten-FIFOs 11 abgelegt.
-
5 zeigt
anhand eines Signal-Zeit-Diagramms den entsprechenden Signalverlauf
der Daten- und Taktsignale der Schaltungsanordnung aus 4.
Die ersten beiden Zeilen zeigen den Signalverlauf der empfangenen
Schreibdaten DQ und des entsprechenden internen Taktsignals DWS.
Aus Gründen
der besseren Übersicht
wurde hier auf die Darstellung des inversen Taktsignals bDWS verzichtet. 5 zeigt,
dass zu Beginn des empfangenen Datenstroms die mit 0 bis 7 bezeichneten
Segmente des DQ-Signals DQ einem Gapless-Schreibbefehl zuzuordnen
sind.
-
Mit
Xa ist der Wert des Zählers 25a und
mit Xb der Wert des Zählers 25b bezeichnet.
Mit Ya sind entsprechend die synchronen Daten für die erste FIFO-Zellenhälfte 24a und
mit Yb die Daten für
die zweite FIFO-Zellenhälfte 24b bezeichnet.
-
Aus
dem Signalverlauf des Datensignals DQ und des Datensignals Yb in 5 wird
ersichtlich, dass das Datum „7" des Datensignals
Yb, welches entsprechend dem Zählerstand
Xb = 4 in der Zelle 4 (schraffiert) der zweiten FIFO-Zellenhälfte 24b abgelegt
werden soll, ungültig
ist, da es zur Postambel PO des zweiten Daten-Bursts des Gapless-Schreibbefehls
gehört.
Dasselbe gilt für
das Datum „b" (schraffiert) des
Datensignals YB, welches entsprechend dem Zählerstand Xb in die Zelle 7
(schraffiert) der zweiten FIFO-Zellenhälfte 24b geschrieben
werden soll. Analog kann man aus dem Datensignal DQ und dem davon
abgeleiteten Datensignal Ya die Zellen 4 und 7 der
ersten FIFO-Zellenhälfte 24a für die Daten synchron
zur fallenden WDQS-Flanke ableiten. Die gültigen Daten befinden sich
demzufolge in beiden FIFO-Zellenhälften 24a, 24b jeweils
in den Zellen 0, 1, 2, 3, 5, 6, 0, 1. Da in dem gewählten Beispiel
die Burst-Länge
4 ist und eine DDR-Datenübertragung vorliegt,
ergibt sich somit die Abfolge der gültigen Startadressen der einzelnen
Daten-Bursts mit 0, 2, 5, 0.
-
6 zeigt
ein Blockschaltbild einer Ausgestaltung der zweiten Steuerschaltung 19 und
des Adress-FIFOs 12. Die zweite Steuerschaltung 19 weist
einen Kommando-Decoder 30, einen Gap-Decoder 31,
einen Adresszähler 32 sowie
einen Zähler 33 zur
Erzeugung des Eingangszeigers INPY auf. Der Kommando-Decoder 30,
dem über
den Eingang 15 die Schreibkommandos COM zugeführt werden, decodiert
diese und erzeugt ausgangsseitig decodierte Schreibbefehle WR, die
getaktet über
das interne Taktsignal CLK den Zähler 33 fortwährend erhöhen. Der
Zählerstand
des Zählers 33 stellt
dann den Wert des Eingangszählers
INPY für
das Adress-FIFO dar. In gleicher Weise werden die Schreibbefehle
WR auch dem Adresszähler 32 zugeführt und
erhöhen
dessen Zählerstand
getaktet über das
interne Taktsignal CLK fortwährend,
wobei der Adresszähler 32 den
Zählerstand
AY ausgibt, der im Adress-FIFO 12 abgespeichert wird. Die
im Adress-FIFO 12 abgespeicherten Adressen geben an, an
welchen Stellen im Daten-FIFO 11 gültige Daten abgelegt sind. Über ein
entsprechend vom Adress-FIFO 12 erzeugtes Signal AX, das
als Ausgangszeiger des Daten-FIFOs 11 fungiert, können die
Daten DQOUT dort ausgelesen werden.
-
Da
die Daten DQ sowohl als kontinuierlicher Datenstrom, als auch als
unterbrochener Datenstrom (Gapped-Schreibbefehl) auftreten können, müssen diese
beiden Konstellationen voneinander unterschieden werden, um die
entsprechenden Daten DQ auch korrekt weiterbehandelt werden können. Zu
diesem Zwecke enthält
die zweite Steuerschaltung 19 einen Gap-Decoder 31,
der diesen Unterschied eines kontinuierlichen und nicht-kontinuierlichen
Datenstroms erkennt. Ist ein nicht-kontinuierlicher Datenstrom vorhanden,
d. h. handelt es sich um einen Gapped-Schreibbefehl, dann gibt der
Gap-Decoder 31 ein entsprechendes Steuersignal WRGAP aus.
Jeder Schreibbefehl WR erhöht
den Zählerstand
des Adresszählers 32 um
+2, wohingegen das Steuersignal WRGAP den Zählerstand des Adresszählers 32 zusätzlich um
+1 erhöht.
Das Steuersignal WRGAP zeigt also an, ob es sich bei einem empfangenen
Datenstrom um einen nicht-kontinuierlichen, d. h. unterbrochenen
Datenstrom handelt oder nicht.
-
Nachfolgend
wird die Funktionsweise dieser Steuerschaltung 19 anhand
des Ablaufdiagramms in 7 näher erläutert. 7 nimmt
hier Bezug auf das Beispiel in 5, d. h.
die Zählabfolge
des Adresszählers 32 muss
bei diesem Beispiel die Ergebnisse, 0, 2, 5, 0 liefern. Die erste
Zeile in dem Ablaufdiagramm in 7 zeigt
den Verlauf der Schreibbefehle WR, die zweite Zeile zeigt den Verlauf
des Steuerbefehls WRGAP und die dritte Zeile zeigt das Adresssignal
AY.
-
Es
sei angenommen, dass es sich bei dem Adresszähler 32 um einen binären 3-Bit-Adresszähler 32 handelt,
dessen Zählerstände also
von 0 bis 7 reichen. Ausgangsseitig gibt der Adresszähler 32 ein 3-Bit-Adresssignal
AY für
das Adress-FIFO 12 aus. Es sei ferner angenommen, dass
der Adresszähler 32 zunächst auf
6 initialisiert ist. Eine Erhöhung
um +2 im ersten Schritt S1 (erster Schreibbefehl) ergibt 0. Bei
dem zweiten Schreiben S2 handelt es sich um einen Gapless-Schreibbefehl, so
dass der Zählerstand
um +2 auf 2 erhöht
wird. Das dritte Schreiben S3 ist unterbrochen ("gapped"), so dass der Zähler über das Steuersignal WRGAP
zunächst
um +1 auf 3 erhöht
wird und anschließend über den
Schreibbefehl WR um +2 auf 5 erhöht
wird. Der nächste
Steuerbefehl WRGAP erhöht
den Zähler
um +1 auf 6 und das vierte Schreiben S4 erhöht den Zähler wiederum um +2 auf 0.
Es folgt ein weiterer Steuerbefehl WRGAP, so dass der Zähler um
+1 auf 1 erhöht
wird und dort stehen bleibt. Somit wäre die Einstellung für die Steuerschaltung 19 und
insbesondere dessen Adresszähler 32 für einen
nachfolgenden Schreibbefehl WR bereits wieder richtig eingestellt.
-
8 zeigt
anhand eines Blockschaltbildes eine beispielhafte Ausgestaltung
des GAP-Decoders 31 der Steuerschaltung 19 aus 6.
Der GAP-Decoder 31 erzeugt ausgangsseitig ein Steuersignal WRGAP
zur Ansteuerung des Start-Adresszählers 32. Der GAP-Decoder 31 weist
drei DQ Flip-Flops 40a–40c,
ein UND-Gatter 41 und ein ODER-Gatter 42 auf.
Dem Daten-Eingang
D des ersten Flip-Flops 40a wird der Schreibbefehl WR zugeführt. Die Q-Ausgänge der
ersten beiden Flip-Flops 40a, 40b sind jeweils über Inverter 43a, 43b mit
den Daten-Eingängen des
jeweils nachfolgenden, benachbarten Flip-Flops 40b, 40c verbunden.
Sämtliche Flip-Flops 40a–40c werden über das
interne Taktsignal CLK getriggert. Dem UND-Gatter 41 wird
das invertierte Ausgangssignal des ersten DQ-Flip-Flops 40a und
die beiden Ausgangssignale der anderen beiden DQ-Flip-Flops 40b, 40c zugeführt. Das UND-Gatter 41 erzeugt
somit das Steuersignal WRGAP. Dieses Steuersignal WRGAP wird zusammen mit
dem Ausgangssignal des ersten DQ-Flip-Flops 40a dem ODER-Gatter 42 zugeführt, der
ausgangsseitig ein Steuersignal CLK_1 erzeugt. Das Ausgangssignal
des ersten DQ-Flip-Flops 40a bildet
gleichermaßen
das Steuersignal CLK_2. Das Steuersignal CLK_1 gibt eine Inkrementierung
um +1 und das Steuersignal CLK_2 gibt eine Inkrementierung um +2 an.
Das Steuersignal CLK_1 wird also durch jeden Schreibbefehl WR getriggert,
der kein Schreiben anzeigt.
-
9 zeigt
ein Blockschaltbild für
eine beispielhafte Ausgestaltung des Start-Adresszählers 32 der
Steuerschaltung 19 aus 6. Der Start-Adresszähler 32 weist
drei DQ-Flip- Flops 50a–50c auf,
von denen jeweils das erste DQ-Flip-Flop 50a von dem Steuerbefehl
WRGAP und die beiden andere DQ-Flip-Flops 50b, 50c von
dem Steuersignal CLK_1 getriggert werden. Das Ausgangssignal des ersten
Flip-Flops wird über
einen Inverter in dessen Dateneingang rückgekoppelt. Ferner wird das
Ausgangssignal des ersten DQ-Flip-Flops 50a über ein ODER-Gatter 51,
dem eingangsseitig das Steuersignal CLK_2 zugeführt wird, eingekoppelt. Dieses ODER-Gatter 51 erzeugt
ausgangsseitig ein Signal, welches zusammen mit dem Ausgangssignal
des zweiten DQ-Flip-Flops 50b, einem UND-Gatter 52 zugeführt wird.
Das Ausgangssignal des UND-Gatters 52 wird zusammen mit
dem Ausgangssignal des dritten DQ-Flip-Flops 50c einem
NOR-Gatter 53 zugeführt,
dessen Ausgangssignal in den Dateneingang des dritten DQ-Flip-Flops 50c rückgekoppelt wird.
Das Ausgangssignal des UND-Gatters 51 wird zusammen mit
dem Ausgangssignal des zweiten DQ-Flip-Flops 50b einem
NOR-Gatter 54 zugeführt, dessen
Ausgangssignal dem Dateneingang des zweiten DQ-Flip-Flops 50b zugeführt wird.
An den Q-Ausgängen
der drei DQ-Flip-Flops 50a–50c liegen somit
die Adress-Bits A0–A2
für das
3-Bit-Adress-Signal AY an, welches in das Adress-FIFO 12 geschrieben
werden kann. 9 zeigt somit eine vorteilhafte Ausführung eines
Start-Adresszählers 32,
der abhängig
davon, ob ein kontinuierlicher Datenstrom vorliegt oder nicht, den
Zählerstand
nach Maßgabe des
Taktsignals CLK_1 jeweils um +1 oder nach Maßgabe des Taktsignals CLK_2
um +2 inkrementiert.
-
10 zeigt
ein Blockschaltbild für
eine bevorzugte Ausgestaltung eines Gap-Decoders 31 der Steuerschaltung 19 aus 6.
Der Gap-Decoder 31 enthält
einen Decoder 60, dem eingangsseitig das interne Taktsignal
CLK und der Schreibbefehl WR zugeführt wird. Der Decoder 60 ermittelt
daraus, ob es sich bei dem Schreibbefehl WR um einen kontinuierlichen
Datenstrom (gapless) oder einen unterbrochenen Datenstrom (gapped)
handelt. Der Decoder 60 gibt ausgangsseitig das Steuersignal
WRGAP aus, welches im Falle eines unterbrochenen Datenstroms (gapped)
einen hohen logischen Pegel (HIGH, "1") und
im Falle eines kontinuierlichen Datenstroms (gapless) einen niedrigen
logischen Pegel (LOW, "0") aufweist. Dieses
Steuersignal WRGAP kann nun zur Ansteuerung des Start-Adresszählers 32 verwendet werden.
-
Zur
Erzeugung der Taktsignale CLK_1, CLK_2 weist die Steuerschaltung 31 ferner
ein RS-Flip-Flop 61 auf. In den Set-Eingang des RS-Flip-Flops 61 wird
das Steuersignal WRGAP eingekoppelt. Ferner ist ein DQ-Flip-Flop 62 vorgesehen,
in dessen Dateneingang D das Schreibsignal WR und in dessen Takteingang
das Taktsignal CLK eingekoppelt wird. Das invertierte Ausgangssignal des
DQ-Flip-Flops 62 wird zusammen mit dem Ausgangssignal des
RS-Flip-Flops 61 in ein UND-Gatter 63 eingekoppelt,
das ausgangsseitig das Taktsignal CLK_1 erzeugt.
-
Das
RS-Flip-Flop 61 weist ferner einen Reset-Eingang R auf,
in welchen ein Reset-Signal STOP einkoppelbar ist. Zur Erzeugung
dieses Reset-Signals STOP ist ein Zähler 64 vorgesehen,
der über
das Taktsignal CLK_1 getriggert wird und der über das invertierte Steuersignal
WRGAP rückgesetzt
werden kann. Der Zähler 64 ermittelt
einen Zählerstand,
der als Zählerstandsignal
CNT_OUT zusammen mit dem Schreibsignal WR einem ODER-Gatter 65 zugeführt wird.
Das ODER-Gatter 65 erzeugt ausgangsseitig das Reset-Signal
STOP.
-
Der
Zähler 64 weist
ferner einen Steuereingang MCP auf, über welchen der Zähler 64 für verschiedene
Betriebsmodi programmierbar ist.
-
Der
Gap-Decoder 31 weist ferner ein weiteres DQ-Flip-Flop 66 auf,
welches ausgangsseitig das Taktsignal CLK_2 erzeugt. Zu diesem Zwecke
wird in dessen Dateneingang D das Schreibsignal WR und in dessen
Takteingang das interne Taktsignal CLK zugeführt. Alternativ wäre es auch
denkbar, das Taktsignal CLK_2 direkt aus dem Q-Ausgang des DQ-Flip-Flops 62 abzuleiten.
-
Nachfolgend
sei die Funktionsweise des Gap-Decoders 31 aus 10 näher beschrieben. Der über den
Gap-Decoder 31 anzusteuernde Adresszähler 32 wird bei jedem
Schreibbefehl um +2 erhöht.
Dies geschieht über
das auf das interne Taktsignal CLK synchronisierte Schreibsignal
WR und das Taktsignal CLK_2, welches eine Inkrementierung um +2
angibt. Der Decoder 60 kann ähnlich wie der in 8 dargestellte
Decoder 31, jedoch ohne das ODER-Gatter 42 zur
Erzeugung des Taktsignals CLK_1 ausgebildet sein. Das von dem Decoder 60 ausgangsseitig
erzeugte Steuersignal WRGAP erfüllt hier
zwei Funktionen: Zum Einen wird dadurch das RS-Flip-Flop 61 gesetzt.
Zum Anderen wird der Reset dieses Flip-Flops 61 über den
Zähler 64 vorgenommen.
Wird das Flip-Flop 61 nicht gesetzt, dann wird der Zähler 64 zurückgesetzt.
Der Zähler 64 ist
so implementiert, dass er auf den binären Wert zurückgesetzt
wird, der beispielsweise über
den Steuereingang MCP vorgegeben wird. Im Betrieb zählt der Zähler 64 somit
mit jedem Takt des Taktsignals CLK_1 um +1 zurück. Sobald der Zählerstand
0 erreicht ist, wird das Ausgangssignal CNT_OUT gesetzt, welches
unter Verwendung des Schreibsignals WR das Reset-Signal STOP generiert,
welches das RS-Flip-Flop 61 wieder zurücksetzt und die Generierung
des Taktsignals CLK_1 beendet. Für
verschiedene Werte des Steuersignals MCP kann der Zähler 64 auch
programmierbar ausgeführt
werden.
-
Obgleich
die vorliegende Erfindung vorstehend anhand eines bevorzugten Ausführungsbeispiels
näher erläutert wurde,
sei sie nicht darauf beschränkt,
sondern ist auf nachfolgend genannte Art und Weise modifizierbar.
-
Insbesondere
wurde die Realisierung der Steuerschaltungen und der beiden FIFOs
bewusst sehr einfach gestaltet. Es versteht sich von selbst, dass
diese Schaltungsanordnungen beliebig anders ausgebildet sein können, ohne
vom grundsätzlichen Prinzip
der vorliegenden Erfindung abzuweichen. Grundsätzlich gilt, dass die Funktionalität dieser Schaltungen
selbstverständlich
auch durch eine programmgesteuerte Einrichtung, beispielsweise durch einen
Mikroprozessor oder einen Mikrocontroller, oder auch durch eine
programmierbare Logikschaltung, zum Beispiel eine PLD- oder FPGA-Schaltung, realisiert
werden kann.
-
Die
Erfindung wurde ferner beispielhaft anhand eines als Graphikspeicher
ausgebildeten DDR-Halbleiterspeichers beschrieben. Die Erfindung lässt sich
aber bei beliebig anderen Halbleiterspeichern ebenfalls einsetzen,
die ein WDQS-Schreibsteuersignal
mit definierter Präambel
und Postambel aufweisen. Darüber
hinaus muss nicht notwendigerweise ein so genannter Prefetch-4 Schreibzugriff,
bei dem bei jedem Datenburst und damit mit jedem Schreibzugriff
jeweils vier Datenpakete in den Speicher geschrieben werden, vorgesehen
sein. Denkbar wären
auch andere Prefetch-Schreibzugriffe, bei denen weniger oder auch
mehr Datenpakete pro Schreibzugriff verarbeitet werden.
-
- 10
- Schaltungsanordnung
- 11
- erstes
FIFO, Daten-FIFO
- 12
- zweites
FIFO, Adress-FIFO
- 13
- Dateneingang
- 14
- Datenausgang
- 15
- Eingang
- 16
- Takteingang
für das
interne Taktsignal
- 17
- Takteingang
für das
WDQS-Signal
- 18,
19
- Steuerschaltungen
- 20,
21
- Empfängerschaltungen
- 22a,
22b
- Pufferschaltungen,
Latches
- 24
- FIFO-Zellen
- 24a,
24b
- FIFO-Zellenhälften
- 25a,
25b
- Zähler
- 30
- Kommandodecoder,
Schreibbefehlsdecoder
- 31
- GAP-Decoder
- 32
- (Start-)Adresszähler
- 33
- Zähler für den Eingangszeiger
- 40a–40c
- DQ-Flip-Flops
- 41
- UND-Gatter
- 42
- ODER-Gatter
- 43a,
43b
- Inverter
- 43
- Inverter
- 50a–50c
- DQ-Flip-Flops
- 51
- ODER-Gatter
- 52
- UND-Gatter
- 53,
54
- NOR-Gatter
- 60
- Decoder
- 61
- RS-Flip-Flop
- 62
- DQ-Flip-Flop
- 63
- UND-Gatter
- 64
- Zähler
- 65
- ODER-Gatter
- 66
- DQ-Flip-Flop
- A0–A2
- Adress-Bits
für den
Adresszeiger
- AX
- Startadresse,
Ausgangszeiger
- AY
- Adresssignal
- bDWS
- aus
dem WDQS-Signal abgeleitetes inverses Taktsignal
- CLK
- internes
Taktsignal
- CLK_1
- Steuer-/Taktsignal
zum Anzeigen einer Inkrementierung um +1
- CLK_2
- Steuer-/Taktsignal
zum Anzeigen einer Inkrementierung um +2
- CNT_OUT
- Zählerstandsignal
- COM
- Kommando
- DQ,
DQ'
- Datensignale
- DQOUT
- Datenausgangssignal
- DWS
- aus
dem WDQS-Signal abgeleitetes Taktsignal
- INPa,
INPb
- Eingangszeiger
- INPX,
INPY
- Eingangszeiger
- INPY
- Eingangszeiger
- MCP
- Steuereingang
- S1–S4
- Schreibschritte
- STOP
- Reset-Signal
- WDQS
- WDQS-Signal,
Datenstrobesignal, Schreibtaktsteuersignal
- WR
- Schreibbefehl,
Schreibsignal
- WRGAP
- Steuersignal
für das
Vorhandensein eines unterbrochenen Datenstroms
- XA,
XB
- Zählerstände
- Ya,
Yb
- synchronisierte
Datensignale
- CS
- Zählerstand
- PR
- Präambel
- PO
- Postambel
- NOP
- NOP-Befehl
- DB1–DB3
- Datenbursts