PatentDe  


Dokumentenidentifikation DE102005053916A1 16.05.2007
Titel Synchronisationsschaltung für einen Schreibvorgang auf einen Halbleiterspeicher
Anmelder Infineon Technologies AG, 81669 München, DE
Erfinder Dietrich, Stefan, 82299 Türkenfeld, DE
Vertreter PAe Reinhard, Skuhra, Weise & Partner GbR, 80801 München
DE-Anmeldedatum 11.11.2005
DE-Aktenzeichen 102005053916
Offenlegungstag 16.05.2007
Veröffentlichungstag im Patentblatt 16.05.2007
IPC-Hauptklasse G11C 7/22(2006.01)A, F, I, 20051111, B, H, DE
Zusammenfassung Die Erfindung betrifft eine Synchronisationsschaltung zur Behandlung und Synchronisation eines Schreibvorgangs auf einen Halbleiterspeicher, insbesondere einen DDR-Graphikspeicher, bei dem ein Schreibvorgang mehrere Schreibbefehle enthält, 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.

Beschreibung[de]

Synchronisationsschaltung für einen Schreibvorgang auf einen Halbleiterspeicher

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 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 ist.

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 noch nicht 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 können. Zudem spielen dort Laufzeitunterschiede zunehmend eine Rolle.

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. Eine alternative Aufgabe besteht darin, den oben beschriebenen Konflikt im Falle von aufeinander folgenden Gapless-Schreibbefehlen möglichst zu vermeiden.

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.

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-Schreibtaktsteuersignals 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.

Das erfindungsgemäße Verfahren 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 ersten 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 erste 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 18 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 Datenausgang 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 410 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 im Falle der Pufferschaltung 22a bei einer fallenden Flanke und im Falle der Pufferschaltung 22b bei einer ansteigenden Flanke des Schreibtaktsignals WDQS getaktet. 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 ÜP 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 40a40c, 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 40a40c 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 50a50c auf, von denen jeweils das erste DQ-Flip-Flop 50a von dem Steuerbefehl WRGRP 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 50a50c 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 vielfältige 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 Takt
signal
CLK
internes Taktsignal
CLK_1
Steuer-/Taktsignal zum Anzeigen einer Inkremen
tierung um +1
CLK_2
Steuer-/Taktsignal zum Anzeigen einer Inkremen
tierung 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, Schreibtaktsteu
ersignal
WR
Schreibbefehl, Schreibsignal
WRGAP
Steuersignal für das Vorhandensein eines unter
brochenen Datenstroms
XA, XB
Zählerstände
Ya, Yb
synchronisierte Datensignale
CS
Zählerstand
PR
Präambel
PO
Postambel
NOP
NOP-Befehl
DB1-DB3
Datenbursts


Anspruch[de]
Synchronisationsschaltung (10) zur Behandlung und Synchronisation eines Schreibvorgangs auf einen Halbleiterspeicher, insbesondere einen DDR-Graphikspeicher, bei dem ein Schreibvorgang mehrere Schreibbefehle (WR) enthält,

mit einem durch ein WDQS-Signal (WDQS) getakteten steuerbaren ersten FIFO (11), in welchem Schreibdaten (DQ) aufgrund eines oder mehrerer aufeinander folgender Schreibbefehle (WR) abgelegt sind,

mit einem durch ein internes Taktsignal (CLK) getakteten steuerbaren zweiten FIFO (12), in welchem bei einem Schreibvorgang die Adressen (AX, AY) lediglich der im ersten FIFO (11) abgelegten gültigen Schreibdaten (DQ) abgelegt sind.
Schaltung nach Anspruch 1, dadurch gekennzeichnet, dass eine durch das WDQS-Signal (WDQS) getaktete erste Steuerschaltung (18) zur Steuerung des ersten FIFOs (11) vorgesehen ist, welche aus dem WDQS-Signal (WDQS) einen Eingangszeiger (INPX; INPb, INPa) erzeugt, der anzeigt, an welche Stelle des ersten FIFOs (11) die Schreibdaten (DQ) zwischenzuspeichern sind. Schaltung nach Anspruch 2, dadurch gekennzeichnet, dass die erste Steuerschaltung (18) zumindest ein Latch (22a, 22b) zum Latchen der Schreibdaten (DQ) aufweist, wobei das Latchen der Schreibdaten (DQ) unter Steuerung des WDQS-Signals (WDQS) erfolgt. Schaltung nach Anspruch 3, dadurch gekennzeichnet, dass ein erstes Latch (22a) zum Latchen der Schreibdaten (DQ) bei einer abfallenden Flanke des WDQS-Signals (WDQS) und ein zweites Latch (22b) zum Latchen der Schreibdaten (DQ) bei einer ansteigenden Flanke des WDQS-Signals (WDQS) vorgesehen sind, wobei das Latchen jeweils abwechselnd bei einer abfallenden und einer ansteigenden Flanke des WDQS-Signals (WDQS) erfolgt. Schaltung nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass die erste Steuerschaltung (18) zumindest einen ersten Zähler (25a, 25b) aufweist, der jeweils einen Eingangszeiger (INPb, INPa) erzeugt, der anzeigt, an welcher Stelle die Schreibdaten (DQ) in das erste FIFO (11) zu schreiben sind. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das erste FIFO (11) zweiteilig aufgebaut ist, wobei eine erste Hälfte (24a) der FIFO-Zellen (24) des ersten FIFOs (11) zum Ablegen der bei einer abfallenden Flanke des WDQS-Signals (WDQS) gelatchten Schreibdaten (DQ) und eine zweite Hälfte (24b) der FIFO-Zellen (24) des zweiten FIFOs (12) zum Ablegen der bei einer ansteigenden Flanke des WDQS-Signals (WDQS) gelatchten Schreibdaten (DQ) vorgesehen ist. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine durch das interne Taktsignal (CLK) getaktete zweite Steuerschaltung (19) zur Steuerung des zweiten FIFOs (12) vorgesehen ist, welche anhand des internen Taktsignals (CLK) und der Schreibbefehle (WR) einen Ausgangszeiger (AX) für das erste FIFO (11) erzeugt, der anzeigt, an welcher Stelle des ersten FIFOs (11) die gültigen Schreibdaten (DQ) abgelegt sind. Schaltung nach Anspruch 7, dadurch gekennzeichnet, dass die zweite Steuerschaltung (19) einen Decoder (31) aufweist, der aus dem Schreibbefehl (WR) und der Dauer zumindest zweier aufeinanderfolgender Schreibbefehle (WR) ein Steuersignal (WRGAP) ableitet, welches angibt, ob aufgrund zweier aufeinander folgender Schreibbefehle (WR) ein kontinuierlicher oder ein unterbrochener Datenstrom vorhanden ist. Schaltung nach wenigstens einem der Ansprüche 7 oder 8, dadurch gekennzeichnet, dass die zweite Steuerschaltung (19) einen Adresszähler (32) aufweist, dessen Zählerstand (AY) bei jedem Schreibbefehl (WR) um einen ersten Wert (CLK_2) inkrementiert wird und bei Vorhandensein zweier unmittelbar aufeinander folgender Schreibbefehle (WR) zusätzlich um einen zweiten Wert (CLK_1) inkrementiert wird und dessen Zählerstand (AY) am Ende eines jeweiligen Schreibbefehls (WR) bei Erreichen eines Endwertes des Adresszählers (32) auf einen Startwert zurückgesetzt wird. Schaltung nach Anspruch 9, dadurch gekennzeichnet, dass der erste Wert (CLK_2) zwei ist und der erste Wert (CLK_1) eins ist. Schaltung nach wenigstens einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass die zweite Steuerschaltung (19) einen zweiten Zähler (33) aufweist, der für jeden Schreibbefehl (WR) einen Eingangszeiger (INPY) erzeugt, welcher angibt, an welcher Stelle des zweiten FIFOs (12) eine sich aus dem Zählerstand (AY) des Adresszählers (32) ergebende Startadresse abzulegen ist. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass anhand einer gespeicherten Startadresse im zweiten FIFO (12) dieses ausgangsseitig einen Ausgangszeiger (AX) bereit stellt, der angibt, an welcher Stelle des ersten FIFO (11) gültige Schreibdaten (DQ) abgelegt sind. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei zwei nicht unmittelbar aufeinander folgenden Schreibbefehlen (WR), die zu einem unterbrochenen Datenstrom führen, sämtliche im ersten FIFO (11) abgelegten Schreibdaten (DQ) gültig sind. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bei zwei unmittelbar aufeinander folgenden Schreibbefehlen (WR), die zu einem kontinuierlichen Datenstrom führen, ein Teil der im ersten FIFO (11) abgelegten Schreibdaten (DQ) ungültig ist. Schaltung nach wenigstens einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das WDQS-Signal (WDQS) im inaktiven Zustand einen fest definierten ersten logischen Pegel ("0") aufweist und dass das WDQS-Signal (WDQS) zu Beginn eines Schreibvorgangs von einem fest definierten zweiten logischen Pegel ("1") auf den ersten logischen Pegel ("0") wechselt.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com