-
Die
Erfindung betrifft ein Verfahren und eine Schaltungsanordnung zur
Initialisierung einer Leselatenz, insbesondere für oder in einem DDR-Graphikspeicher.
-
Obwohl
auf beliebige Halbleiterspeicher anwendbar, werden die vorliegende
Erfindung sowie die ihr zugrunde liegende Problematik nachfolgend
mit Bezug auf DDR-Halbleiterspeicher und hier insbesondere auf Graphikspeicher
erläutert.
-
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. Solche Halbleiterspeicher,
insbesondere dynamische Schreib-Lese-Speicher wie ein DRAM-Speicher,
werden in unterschiedlichen Ausführungsformen
und Varianten hergestellt, wobei sich die einzelnen Ausführungsformen
im Wesentlichen durch ihr Betriebsverhalten voneinander unterscheiden.
-
Um
nun dem eben genannten Bedarf einer immer höheren Geschwindigkeit bei der
Verarbeitung von Daten gerecht zu werden, müssen im Falle eines solchen
Halbleiterspeichers diese 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.
-
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 des Taktsignals
aus dem Halbleiterspeicher ausgelesen bzw. wieder in den Speicher
geschrieben. Diese Halbleiterspeicher zeichnen sich also durch eine
doppelte Datenrate aus.
-
In
einer synchronen, das heißt
taktgesteuerten Datenkommunikation liegt typischerweise zwischen dem
Befehl, der die Datenübertragung
einleitet, und der eigentlichen Datenübertragung eine gewisse Zeitspanne,
die so genannte Latenzzeit. Erhält
in einem Computersystem bestehend aus einem Prozessor und einem
Speicherbaustein dieser Speicherbaustein vom Prozessor einen Lesebefehl
zusammen mit der gewünschten
Adresse, so sendet der Speicherbaustein daraufhin die angeforderten
Daten zurück
an den Prozessor. Die Lesedaten werden dabei aber nicht unmittelbar,
sondern nach einer vorher eingestellten, festen Anzahl an Takten,
der so genannten Leselatenz, an den Prozessor gesandt. Entsprechendes
gilt für
den Schreibvorgang.
-
Die
Leselatenz wie auch die Schreiblatenz hängt unter anderem von der absoluten
Zeit ab, die der Speicherbaustein benötigt, um die Daten bereit zu
stellen, sowie von der Dauer eines Taktes des Systemtaktes. Die
Leselatenzzeit ist bei herkömmlichen
DRAM-Halbleiterspeichern in einem Mode-Register des Halbleiterspeichers
einprogrammiert. Die Schreiblatenz ist beispielsweise bei einem
DDR-DRAM-Halbleiterspeicher der zweiten Generation (DDR-II) an die
Leselatenz gekoppelt und beträgt
typischerweise einen Taktzyklus weniger als die Leselatenz. Es gilt
also: Schreiblatenz = Leselatenz minus eins.
-
Der
Aufbau und die Funktionsweise eines Latenzgenerators und insbesondere
einer Leselatenzschaltung ist allgemein bekannt, sodass nachfolgend
darauf nicht näher
eingegangen wird. Le diglich zum allgemeinen Hintergrund solcher
Latenzschaltungen wird auf die
DE 102 39 322 A1 , die
DE 102 08 715 A1 , die
DE 102 08 716 A1 sowie
die
DE 102 10 726
A1 verwiesen.
-
In
der Veröffentlichung
ISSCC 2003/Session 17/SRAM and DRAM/Paper 17.8 der Konferenz "IEEE International
Solid State Circuits Conference 2003" ist eine Leselatenzsteuerschaltung
für SDRAM-Halbleiterspeicher
beschrieben. Das Grundprinzip einer solchen Leselatenzsteuerschaltung
ist dort in Figur 17.8.4 dargestellt und besteht in der Erzeugung
und Bereitstellung zweier interner Taktsignale CLKDQ, CLKRD. Diese Taktsignale
werden verwendet, um eine FIFO-Schaltung anzusteuern, welche die
Information über
ein gegebenes Lesesignal unter Verwendung eines von einer DLL-Schaltung
bereitgestellten Taktsignals CLKDQ mit dem richtigen Timing dem
Datenpfad des Halbleiterspeichers zur Verfügung stellt.
-
Die
bekannte Leselatenzsteuerschaltung weist also eine FIFO-Schaltung auf, die
dazu ausgelegt ist, zwei Taktsignale von einer ersten Zeitreferenz
(Zeitdomäne)
für das
Einlesen von Daten in eine dazu verschiedene, zweite Zeitreferenz
für das
Auslesen der Daten zu überführen. Die
FIFO-Schaltung wird also von zwei unterschiedlichen Taktsignalen,
die einem entsprechenden Ringzähler
zugeführt
werden, angesteuert, wobei jeweils ein Taktsignal für den Ausgangszeiger
und ein weiteres, davon abgeleitetes Taktsignal für den Eingangszeiger
der FIFO-Schaltung verwendet wird. Der FIFO-Schaltung wird eingangsseitig
ein Lesebefehl zugeführt.
Am Ausgang der FIFO-Schaltung
ist ein Latenzsteuersignal abgreifbar.
-
In
der eingangs genannten ISSCC 2003 Veröffentlichung wird zwar die
Verwendung einer FIFO-Schaltung zur Latenzsteuerung beschrieben,
eine Initialisierung des Eingangszeigers und des Ausgangszeigers
und damit eine Synchronisierung der beiden Zeiger ist dort allerdings
nicht beschrieben. Für
ein korrektes Funktionieren einer solchen Latenzsteuerschaltung
ist jedoch eine Initialisierung des FIFO-Schaltung unerlässlich.
-
Bei
der Initialisierung muss eine Phasenbeziehung der Eingangszeiger
und der Ausgangszeiger definiert festgelegt werden, damit die Zeit
zwischen dem Beschreiben einer FIFO-Zelle durch den Eingangszeiger und
dem Auslesen dieser Zelle durch den Ausgangszeiger der in dem Mode-Register
gespeicherten gewünschten
Lese-Latenz entspricht.
-
Problematisch
im Falle einer ungenügenden
Initialisierung für
Eingangs- und Ausgangszeiger der FIFO-Schaltung ist, dass dann für den Startzähler zur
Bereitstellung des Eingangszeigers nicht eindeutig ist, wann er
zu zählen
beginnen soll und auf welches Latch er somit zugreifen soll. Bei
relativ geringen Frequenzen des Halbleiterspeichers ist dies unter
Umständen
noch nicht problematisch. Allerdings hat mangelhafte Initialisierung
insbesondere bei zunehmend höheren
Frequenzen des Taktsignals zur Folge, dass unter Umständen der
Eingangszeiger und der Ausgangszeiger der FIFO-Schaltung nicht mehr
miteinander synchronisiert sind, also keinen wohldefinierten zeitlichen
Abstand mehr zueinander aufweisen. Dies ist jedoch für einen
zuverlässigen
Speicherbetrieb notwendig.
-
Da
bei heutigen und zukünftigen
Halbleiterspeichern, wie zum Beispiel DDR-DRAM-Speicher der dritten
Generation (DDR-III), die Tendenz hin zu immer größeren Frequenzen
geht, wird sich in der Folge das genannte Problem immer weiter verstärken. Ein
definiertes Auslesen der Daten aus dem Halbleiterspeicher ist dann
nicht mehr oder nur mit sehr hohen schaltungstechnischen Zusatzaufwand
möglich.
-
In
diesem Zusammenhang sei noch auf das Lehrbuch von W. Dally, "Digital Systems Engineering", Cambridge 1998,
Seiten 477–480
verwiesen. Auch dort ist eine der in der ISSCC-Veröffentlichung
beschriebene, entsprechende FIFO-basierte Latenzsteuerschaltung
dargestellt, die allerdings ebenfalls keine Initialisierung offenbart.
-
Vor
diesem Hintergrund liegt der vorliegenden Erfindung die objektiv
technische Aufgabe zugrunde, eine sichere, das heißt eine
möglichst
fehlerfreie Initialisierung einer Leselatenzsteuerschaltung insbesondere für einen
Halbleiterspeicher bereit zu stellen. Insbesondere sollen durch
die Initialisierung die Eingangs- und Ausgangszeiger einer FIFO-Schaltung
einer FIFO-basierten Leselatenzsteuerschaltung in einen wohldefinierten
zeitlichen Abstand zueinander gebracht werden.
-
Erfindungsgemäß wird zumindest
eine dieser Aufgaben durch ein Verfahren mit den Merkmalen des Patentanspruchs
1 sowie durch eine Leselatenzsteuerschaltung mit den Merkmalen des
Patentanspruchs 16 gelöst.
-
Gemäss einer
bevorzugten Weiterbildung ist das gemeinsame Taktsignal ein von
einer DLL-Schaltung erzeugtes Taktsignal.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird das zweiten Taktsignal durch
Verzögerung aus
dem ersten Taktsignal abgeleitet.
-
Gemäss einer
weiteren bevorzugten Weiterbildung entspricht das erste Taktsignal
dem gemeinsamen Taktsignal.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird die Verzögerung derart eingestellt,
dass sie der Summe der Zeitdauer für das Bereitstellen eines Lesesignals
auf einen entsprechenden Lesebefehl hin zum Auslesen der Lesedaten
und der Laufzeit eines Ausgangstreibers des Halbleiterspeichers
entspricht.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird die Leselatenz über ein
Steuersignal eingestellt.
-
Gemäss einer
weiteren bevorzugten Weiterbildung bestimmt die eingestellte Leselatenz
den Startpunkt des Ausgangszeigers und/oder den Startpunkt des Eingangszeigers.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird die Leselatenz in einem
Mode-Register abgespeichert und eine jeweils abgespeicherte Leselatenz
für die
Festlegung des Startabstands zwischen den Eingangszeigern und den
Ausgangszeigern verwendet.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird die Initialisierung von
Eingangszeigern und Ausgangszeigern jeweils bei einem Neustart der
DLL-Schaltung vorgenommen.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird bei einem Reset mindestens
ein Ausgang der DLL-Schaltung unterbrochen. Insbesondere bei differentiellen
Signalen bzw. Ausgängen
hat dies den Vorteil, dass ein Ausgangsanschluss auf einen bestimmten
Potentialpegel gelegt werden kann, während der zweite Signalanteil
weiterläuft,
wodurch eine Steuersequenz angezeigt werden kann ohne zusätzliche
Steuersignale vorsehen zu müssen.
-
Gemäss einer
weiteren bevorzugten Weiterbildung erfolgt das Unterbrechen synchron.
-
Gemäss einer
weiteren bevorzugten Weiterbildung werden nach einem Reset der DLL-Schaltung
die Anzahl der Takte des von der DLL-Schaltung erzeugten Taktsignals
gezählt,
wobei die Initialisierung erst nach einer ersten Anzahl von Takten
des Taktsignals eingeleitet wird und wobei die erste Anzahl kleiner
ist als eine durch die Spezifikation des Halbleiterspeichers vorgegebene
Anzahl der Takte dieses Taktsignals, ab der nach einem Reset Lesezugriffe
wieder erlaubt sind.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird die Initialisierung erst
vorgenommen, nachdem die DLL-Schaltung eingeschwungen ist und bevor
Lesezugriffe auf den Halbleiterspeicher vorgenommen werden können.
-
Gemäss einer
weiteren bevorzugten Weiterbildung wird der fest vorgegebene Zeitversatz
durch zwei Ringzähler
eingestellt, die jeweils durch eines der beiden Taktsignale angesteuert
werden.
-
Gemäss einer
weiteren bevorzugten Weiterbildung ist die Datenbreite des Lesesignals
so gewählt, dass
der Ausgangszeiger zur Ansteuerung eines Ausgangstreibers verwendbar
wird.
-
Vorteilhafte
Ausgestaltungen und Weiterbildungen der Erfindung ergeben sich aus
den weiteren Unteransprüchen
sowie der Beschreibung unter Bezugnahme auf die Zeichnungen.
-
Die
vorliegende Erfindung geht von einer FIFO-basierten Leselatenzsteuerschaltung
aus.
-
Die
der vorliegenden Erfindung zugrunde liegende Erkenntnis besteht
zum einen darin, dass die beiden Taktsignale für den Eingangszeiger und den
Ausgangszeiger jeweils aus einem gemeinsamen Taktsignal als Basis
abgeleitet werden. Es handelt sich hier um ein internes Taktsignal,
welches aus einer DLL-Schaltung (DLL
= Delay Locked Loop) innerhalb der integrierten Schaltung bzw. des
Halbleiterspeichers generiert wird. Zum anderen besteht die Erkenntnis
darin, dass das eine Taktsignal (CLKRD) für den Eingangszeiger des FIFO
und das andere Taktsignal (CLKDQ) für den Ausgangszeiger des FIFO
voneinander verschieden sind. Allerdings besteht ein definierter
Zeitversatz zwischen diesen beiden Taktsignalen für den Eingangszeiger
und den Ausgangszeiger. Dieser Versatz, das heißt die entsprechende Zeitdauer
zwischen den beiden Taktsignalen ist definiert festgelegt und aufgrund
der asynchronen Betriebsweise sowohl bei geringen, als auch bei
hohen Frequenzen immer gleich.
-
Das
erfindungsgemäße Verfahren
zur Initialisierung des Eingangszeigers und Ausgangszeigers der FIFO-Schaltung
basiert auf einer Initialisierungssequenz der dem Eingangszeiger
und dem Ausgangszeiger zugeordneten Taktsignalen (CLKRD, CLKDQ).
Diese Initialisierungssequenz wird jedes Mal durchgeführt, wenn
die entsprechende DLL-Schaltung zur Bereitstellung eines Basistaktsignals
(DLLCLK) eingeschwungen ist, jedoch noch bevor irgendwelche Lesezugriffe
auf den Halbleiterspeicher erfolgen können.
-
Die
Idee der vorliegenden Erfindung besteht nun darin, zunächst einen
Ausgang eines entsprechenden differentiellen Anschlusspaares der
DLL-Schaltung abzuschalten. Insbesondere wird der Ausgang dabei synchron
abgeschaltet, um zu verhindern, dass es zu verkürzten HIGH- oder LOW-Phasen
des DLL-Taktsignals
kommt. Währenddessen,
das heißt
bei weggeschaltetem DLL-Ausgang, läuft die DLL-Schaltung weiter und
bleibt damit im eingerasteten Zustand, dem so genannten Lock-Zustand. Wird nur
einer der differentiellen Ausgänge
entkoppelt oder auf ein festes Potential gelegt und der zweite Ausgang
liefert weiter den zweiten Teil des entsprechenden von der DLL-Schaltung
erzeugten differenziellen Taktsignals wird dadurch eine Initialisierungssequenz
signalisiert. Diese "Kodierung" ermöglicht das
Einsparen zusätzlicher
Steuerleitungen. Nach einer vorbestimmten Zeit, vorzugsweise am
Ende der Einschwingphase der DLL-Schaltung, findet dann die erfindungsgemäße Initialisierung
der Taktsignale für
den Eingangs- und
Ausgangszeiger der FIFO-Schaltung der Leselatenzsteuerschaltung
statt. Durch die so vorgenommene Initialisierung wird sichergestellt,
dass die dem Eingangs- und Ausgangszeiger zugeordneten Taktsignale
einen festen definierten Versatz zwischen ihnen aufweisen. Auf diese
Weise wird auch sichergestellt, dass durch die Initialisierung die
Eingangs- und Ausgangszeiger
der FIFO-Schaltung neu gesetzt werden.
-
Der
besondere Vorteil besteht nun darin, dass am Ende dieser Initialisierung
ein Startzeiger für
die Startposition des Eingangszeigers und ein Startzeiger für die Startposition
des Ausgangszeigers vorhanden ist, die für eine ordnungsgemäße Datenübertragung
eingestellt sind. Sobald die Flanken der beiden Taktsignale, das
heißt
das Taktsignal CLKRD für
den Eingangszeiger und das Taktsignal CLKDQ für den Ausgangszeiger, erscheinen,
arbeiten die beiden Ringzähler
und Startzeiger und Ausgangszeiger wandern mit einem festen Abstand
zueinander los. Der besondere Vorteil der vorliegenden Erfindung
besteht nun darin, dass auf diese Weise ein fester Abstand zwischen
Eingangszeiger und Ausgangszeiger definiert wird.
-
In
einer besonders vorteilhaften Ausgestaltung findet die Initialisierung
und damit die Synchronisation von Eingangs- und Ausgangszeiger der FIFO-Schaltung
immer dann statt, wenn die DLL-Schaltung neu gestartet wird. Auf
diese Weise kann sichergestellt werden, dass mit jedem auf diese
Weise neu erzeugten DLL-Taktsignal der Eingangszeiger und der Ausgangszeiger
für die
FIFO-Schaltung und damit auch die entsprechende Phasenbeziehung
der diesen Zeigern zugeordneten Taktsignalen bei jedem Neustart
definiert festgelegt ist.
-
In
einer weiteren, ebenfalls vorteilhaften Ausgestaltung der vorliegenden
Erfindung wird die Datenbreite des Lesesignals so gewählt, dass
der Ausgangszeiger der FIFO-Schaltung direkt, das heißt ohne
irgendwelche Umwege zur Ansteuerung des Ausgangstreibers des Halbleiterchips
genutzt werden kann.
-
In
einer ebenfalls besonders vorteilhaften Ausgestaltung wird die in
einem Mode-Register gespeicherte Latenz, die so genannten CAS-Latenz
(CAS = Column Address Select), für
die Festlegung des Startabstands zwischen Eingangs- und Ausgangszeiger
verwendet. Dies kann beispielsweise durch ein so genanntes "Scrambeln" oder durch die Wahl
eines anderen Startwertes für
zumindest einen der beiden Ringzähler
der FIFO-Schaltung
realisiert werden.
-
In
einer ebenfalls besonders vorteilhaften Ausgestaltung der Erfindung
wird ein Zähler
verwendet, der mit dem Ausgang der DLL-Schaltung verbunden ist.
Dieser Zähler
zählt nun
die An zahl der Taktzyklen des von der DLL-Schaltung ausgangsseitig
erzeugten DLL-Taktsignals beginnend von dem Reset. Viele Halbleiterspeicher,
wie zum Beispiel in der SDRAM-Spezifikation
vorgesehen ist, schreiben eine vorgegebene Anzahl von Taktzyklen
vor, bevor nach einem Reset der DLL-Schaltung Lesezugriffe wieder erlaubt
sind. Im Falle einer SDRAM-Spezifikation sind dies 200 Taktzyklen
des DLL-Taktsignals.
Bei dem erfindungsgemäßen Verfahren löst dieser
Zähler
nun nach einer bestimmten Anzahl von Taktzyklen (z.B. 180 Taktzyklen),
die geringer ist als die vorbestimmte Anzahl an Taktzyklen, (hier
200 Taktzyklen) die Initialisierungssequenz für die entsprechenden Eingangs-
und Ausgangszeiger der FIFO-Schaltung aus. Für diese Initialisierung bleibt
dann noch ausreichend Zeit, im vorliegenden Fall die 20 Taktzyklen
entsprechende Zeit, um den Eingangszeiger und den Ausgangszeiger
miteinander zu synchronisieren.
-
Erfindungsgemäß weist
die FIFO-Schaltung eine Schaltung auf, die die Initialisierungssequenz
erkennt und unter Berücksichtigung
der jeweils geforderten oder gewünschten
Leselatenz die entsprechenden Eingangs- und Ausgangszeiger der FIFO-Schaltung richtig
einstellt. Statt die Implementierung dieser Schaltung zur Erkennung
einer Initialisierungssequenz innerhalb der FIFO-Schaltung kann
diese selbstverständlich auch
mit der FIFO-Schaltung gekoppelt sein.
-
Die
Erfindung wird nachfolgend anhand der in den schematischen Figuren
der Zeichnungen angegebenen Ausführungsbeispiele
näher erläutert. Es
zeigt dabei:
-
1 ein Blockschaltbild für eine DLL-Schaltung
zur ausgangsseitigen Erzeugung von DLL-Taktsignalen in einer typischen
Arbeitsumgebung (a) sowie ein entsprechendes Signalzeitdiagramm
für die
entsprechend von der DLL-Schaltung erzeugten Taktsignale (b);
-
2 den
prinzipiellen Verlauf der von der DLL-Schaltung erzeugten Taktsignale
CLKDQ, CLKRD während
der erfindungsgemäßen Initialisierungssequenz;
-
3 ein
schematisches Blockschaltbild für
eine FIFO-basierte
Leselatenzsteuerschaltung;
-
4 anhand
eines detaillierten Funktionsschaltbildes den Aufbau und die Funktionsweise
der Leselatenzsteuerschaltung entsprechend 3;
-
5 ein
Signal-Zeit-Diagramm für
die an der FIFO-Schaltung
des Funktionsschaltbildes in 4 anliegenden
Signale;
-
6 ein
Blockschaltbild einer erfindungsgemäßen Leselatenzsteuerschaltung
mit Latenz-FIFO;
-
7 ein
Signal-Zeit-Diagramm für
eine Initialisierung für
die entsprechenden Eingangs- und Ausgangszeiger des Latenz-FIFOs.
-
In
den Figuren der Zeichnungen sind gleiche bzw. funktionsgleiche Elemente,
Merkmale und Signale – sofern
nichts anderes angegeben ist – mit
den selben Bezugszeichen versehen worden.
-
1 zeigt ein Blockschaltbild für eine DLL-Schaltung
zur ausgangsseitigen Erzeugung von DLL-Taktsignalen in einer typischen
Arbeitsumgebung (a) sowie ein entsprechendes Signalzeitdiagramm
für die
entsprechend von der DLL-Schaltung erzeugten Taktsignale (b).
-
In 1(a) ist mit Bezugszeichen 1 die
DLL-basierte Schaltungsanordnung zur Bereitstellung verschiedener
Taktsignale bezeichnet. Die Schaltungsanordnung 1 weist
eine DLL-Schaltung 2 auf.
Die DLL-Schaltung 2 ist mit einem Eingang 5 und
einem Ausgang 6 verbunden. Über den Eingang 5 ist
ein externes Signal CLK, beispielsweise das Taktsignal des Systemtaktes,
in die DLL-Schaltung 2 einkoppelbar. Im eingerasteten Zustand
erzeugt die DLL-Schaltung 2 am Ausgang 6 ein DLL-Taktsignal CLKDQ.
Die Schaltungsanordnung 1 weist ferner einen Rückkopplungspfad 8 auf,
in dem eine als OCD-Schaltung (OCD = Off Chip Driver) ausgebildete
Verzögerungsschaltung 3 angeordnet
ist. Diese OCD-Schaltung 3 erzeugt aus dem DLL-Taktsignal CLKDQ
ausgangsseitig ein davon abgeleitetes, verzögertes Taktsignal CLKVE, welches
einem weiteren Eingang der DLL-Schaltung 2 zugeführt wird.
Dieses Taktsignal CLKVE wird darüber
hinaus einer weiteren Verzögerungsschaltung 4 zugeführt, die
mit einem weiteren Taktausgang 7 verbunden ist. Die Verzögerungsschaltung 4 erzeugt
ausgangsseitig damit das Taktsignal CLKRD. Diese Taktsignale CLKDQ
und CLKRD werden typischer Weise einer erfindungsgemäßen Leselatenzsteuerschaltung 10,
wie sie in den folgenden Figuren näher erläutert wird zugeführt. Die
Leselatenzsteuerschaltung 10 erhält ein Lesesignal PREAD und
gibt ein Latenzsteuersignal LT aus. Das Lesesignal PREAD wird von
einer durch das externe Taktsignal CLK getakteten Ablaufsteuerung 104 erzeugt.
Das generierte Lesesignal PREAD ist gegenüber dem Taktsignal CLK verzögert, da
das externe Taktsignal CLK in der Ablaufsteuerung 104 eine
Empfängerschaltung 100 durchläuft, mit
Verdrahtungslaufzeiten eines Taktverzweigungsbaumes 101 und
eines Lesesignalverteilers 103 beaufschlagt wird und die
State-Machine 102, welche unter Anderem die einschlägigen Steuersignale RAS,
CAS, WE, CS empfängt,
eine gewisse Signalverzögerung
verursacht. Das von der Ablaufsteuerung 104 gelieferte
Lesesignal PREAD ist um eine Zeit tRD im Vergleich zum externen
Taktsignal CLK versetzt.
-
Die
Verzögerungsschaltungen 3, 4 sind
als so genannte Replika-Schaltungen ausgebildet, wobei die Replika-Schaltung 4 der
Nachbildung des Signalpfades in der Ablaufsteuerung 104 und
damit der Verzögerung der
Zeitdauer tRD dient. Ein durch Steuersignale an die Ablaufsteuerung 104 signalisiertes
Lese kommando RD wird mit dem externen Taktsignal CLK angelegt, woraufhin
nach der Zeit tRD das Lesesignal PREAD bereitsteht. Die Verzögerung tRD
entspricht also dem Zeitraum zwischen dem Anlegen eines Lesebefehls
RD und dem Bereitstellen des Lesesignals PREAD durch die Ablaufsteuerung 104.
-
Die
Replika-Schaltung 3 bildet die Schaltungsanordnung eines
Offset-Treibers nach und verzögert
somit um die Laufzeit dieses Offset-Treibers tDP.
-
1(b) zeigt die entsprechenden Signal-Zeit-Diagramme
der von der Schaltungsanordnung 1 bzw. der DLL-Schaltung 2 ausgangsseitig
erzeugten Taktsignale CLKDQ, CLKVE, CLKRD. Das Taktsignal CLKVE weist
durch die Replika-Schaltung 3 eine Verzögerung von tDP gegenüber dem
Taktsignal CLKDQ auf. Das Taktsignal CLKRD weist eine Verzögerung tRD
gegenüber
dem Taktsignal CLKVE auf. Insgesamt ergibt sich somit für die an
den Ausgängen 6, 7 bereitgestellten
Taktsignale CLKDQ, CLKRD ein Zeitversatz von Δt = tDP + tRD.
-
2 zeigt
den prinzipiellen Verlauf der von der DLL-Schaltung erzeugten Taktsignale CLKDQ,
CLKRD während
der erfindungsgemäßen Initialisierungssequenz.
-
In 2 ist
dabei der Zeitpunkt, bei dem der Ausgang der DLL-Schaltung 2 und
damit das Taktsignal CLKDQ abgeschaltet wird, mit t1 bezeichnet.
Der korrespondierende Zeitpunkt für das Taktsignal CLKRD ist mit
t1' bezeichnet.
Nach einer Anzahl, von beispielsweise 20 Takten (t = 20·tCK) wird
zum Zeitpunkt t2 die DLL-Schaltung 2 wieder zugeschaltet
und stellt ausgangsseitig wieder das volle Taktsignal CLKDQ bereit.
Der entsprechende, um die Dauer Δt
verzögerte
Zeitpunkt für
das Taktsignal CLKRD ist mit t2' bezeichnet.
-
Die
beiden Taktsignale CLKDQ, CLKRD werden für die Synchronisierung der
jeweiligen Eingangs- und Ausgangszeiger der FIFO-Schaltung einer Leselatenzsteuerschaltung
herangezogen. Der Aufbau und die Funktionsweise dieser Leselatenzsteuerschaltung
bzw. des entsprechenden Latenz-FIFOs wird nachfolgend anhand der 3, 4, 6 noch
detailliert beschrieben. Mittels der Schaltungsanordnung 1 wird
also das Ausgangstaktsignal CLKDQ über eine Nachbildung der relevanten
Teile des Datenpfades und der relevanten Teile der Erzeugung bzw.
Verteilung des internen Lesesignals, des so genannten PREAD-Signals
geführt,
um daraus das Taktsignal CLKRD zu erzeugen. Das erfindungsgemäße Verfahren
zur Initialisierung des Eingangs- und
Ausgangszeigers des Latenz-FIFOs basiert nun auf einer erfindungsgemäßen Initialisierungssequenz
dieser beiden Taktsignale CLKDQ, CLKRD. Diese Initialisierungssequenz
wird durchgeführt,
nachdem die DLL-Schaltung 2 eingeschwungen ist, das heißt eingerastet
ist, jedoch noch bevor irgendwelche Lesezugriffe auf den Halbleiterspeicher
erfolgen können.
-
In
einem bevorzugten Ausführungsbeispiel
der Erfindung wird die DLL-Schaltung in Verbindung mit einem Zähler verwendet,
der die Anzahl der Taktzyklen nach einem Reset der DLL-Schaltung 2 zählt. Nach
einer vorgegebenen Anzahl von Taktzyklen in der Einschwingphase
der DLL-Schaltung löst
dieser Zähler
die erfindungsgemäße Initialisierungssequenz
für das
Latenz-FIFO aus. Diese Initialisierungssequenz besteht zum Beispiel
darin, dass zunächst
der Ausgang der DLL-Schaltung 2 und damit das Taktsignal
CLKDQ synchron abgeschaltet wird. Die DLL-Schaltung 2 läuft währenddessen
weiter, da lediglich der Ausgang weggeschaltet wurde, die DLL-Schaltung
sich aber weiterhin im eingerasteten Zustand befindet. Nach einer
vorgegebenen Anzahl von Taktzyklen wird die DLL-Schaltung 2 wieder
synchron eingeschaltet, wodurch an dem Ausgang der DLL-Schaltung 2 das
Taktsignal CLKDQ ansteht. Nach einer Verzögerungszeit von Δt = tDP +
tRD liegt dann auch am Ausgang 7 das Taktsignal CLKRD an.
-
3 zeigt
anhand eines Blockschaltbildes den schematischen Aufbau einer FIFO-basierten
Leselatenzsteuerschaltung. Die in 3 beschriebene
Schaltungsanordnung baut auf der Schaltungstopologie der eingangs
genannten ISSCC Veröffentlichung
und dort der in Figur 17.8.4 beschriebenen Schaltungsanordnung auf.
-
Die
Leselatenzsteuerschaltung ist in 3 mit Bezugszeichen 10 bezeichnet.
Die Leselatenzsteuerschaltung 10 weist ein Latenz-FIFO 11 auf,
welches zwischen einem Eingang 12 und einem Ausgang 13 angeordnet
ist. Am Eingang 12 liegt dabei ein Lesesignal PREAD an
und am Ausgang 13 ist ein Latenzsteuersignal LT abgreifbar.
Das Latenz-FIFO 11 weist eine Latcheinrichtung 14 sowie
eine Schaltereinrichtung 15 auf. Die Latcheinrichtung 14 enthält im vorliegenden
Ausführungsbeispiel
vier parallel zueinander angeordnete Latches 16–19.
An den Ausgängen
eines jeweiligen Latches 16–19 ist jeweils ein
Datensignal L0–L3
abgreifbar. Die Schaltereinrichtung 15 ist der Latcheinrichtung 14 nachgeschaltet
und enthält
in gleicher Weise vier parallel zueinander angeordnete Schalter 20–23,
beispielsweise Multiplexer. Ein jeweiliges Latch 16–19 ist
dabei eingangsseitig mit dem Eingang 12 der Leselatenzsteuerschaltung 10 und
ausgangsseitig jeweils mit einem der in Reihe nachgeschalteten Schalter 20–23 verbunden.
Die Schalter 20–23 sind
ausgangsseitig mit dem Ausgang 13 verbunden. Das Latenz-FIFO 11 weist
damit vier FIFO-Zellen auf.
-
Zwischen
der Schaltereinrichtung 15 und dem Ausgang 13 ist
ferner eine Inverteranordnung 24 vorgesehen. Die Inverteranordnung 24 weist
jeweils zwei in Reihe zueinander angeordnete Inverter 25, 26 auf, wobei
dem einen Inverter ein Rückkoppelinverter 27 antiparallel
dazugeschaltet ist.
-
Die
Schaltungsanordnung 10 weist ferner zwei Zähler 28, 29 auf,
die vorzugsweise als Ringzähler 28, 29 ausgebildet
sind. Der Zähler 28 ist
eingangsseitig mit dem Anschluss 7 verbunden, so dass diesem
Zähler 28 das
Taktsignal CLKRD zugeführt
wird. Der Zähler 28 ist
ausgangsseitig jeweils mit Steueranschlüssen der einzelnen Latches 16–19 verbunden.
Der Zähler 28 erzeugt
somit ausgangsseitig vier verschiedene Eingangs zeiger für die vier
verschiedenen Latches 16–19, wie nachfolgend
anhand der 4 noch dargestellt wird.
-
Der
Ringzähler 29 ist
eingangsseitig mit dem Anschluss 6 mit dem Taktsignal CLKDQ
verbunden. Ausgangsseitig ist der Zähler 29 mit jeweils
einem Schalter 20–23 verbunden.
Zwischen dem Zähler 29 und
der Schaltereinrichtung 15 ist ferner ein so genannter
Scrambler 30, also eine Vermischschaltung 30,
zwischengeschaltet. Der Scrambler 30 erzeugt ausgangsseitig
vier Ausgangszeiger, welche den vier verschiedenen Schaltern 20–23 zugeführt werden.
Der genaue Aufbau und die Funktionsweise eines solchen Scramblers 30 ist
allgemein bekannt, so dass nachfolgend darauf nicht näher eingegangen
wird.
-
An
dem Latenz-FIFO 11 ist eine in 3 nicht
dargestellte Initialisierungserkennungsschaltung vorgesehen, die
eine Initialisierungssequenz, wie in 2 dargestellt,
erkennt und dann unter Berücksichtigung
der geforderten Leselatenz die Ausgangszeiger des Latenz-FIFOs 11 richtig
einstellt.
-
9 zeigt anhand eines detaillierten Funktionsschaltbildes
den Aufbau und die Funktionsweise der Leselatenzsteuerschaltung
entsprechend 3.
-
Im
Unterschied zu dem Ausführungsbeispiel
in 3, bei dem die Leselatenzsteuerschaltung mit einem
Latenz-FIFO 11 mit vier FIFO-Zellen ausgestattet ist und
damit eine FIFO-Tiefe von vier aufweist, weist das Latenz-FIFO 11 in 4 eine
FIFO-Tiefe von fünf
auf. Es sei ferner angenommen, dass die Leselatenzsteuerschaltung 10 in 4 für eine Latenz
von L = 5 ausgelegt ist.
-
Der
Ringzähler 28 erzeugt
ausgangsseitig fünf
Eingangszeiger INP<0>–INP<4>.
Der Ringzähler 29 erzeugt
ausgangsseitig fünf
Ausgangssignale 0<0>–0<4>,
die in Eingänge
des nachgeschalteten Scramblers 30 eingekoppelt werden.
Die beiden Ringzähler 28, 29 sind über ein
Reset-Signal RESET zurücksetzbar.
-
Dem
Scrambler 30 wird steuerseitig ein Steuersignal LATINFO
zugeführt, über welches
dem Scrambler 30 steuerseitig ein zum Beispiel in einem
Mode-Register gespeicherter Latenzwert eingekoppelt wird. Der Scrambler 30 dient
dem Zweck, verschiedene Latenzen einzustellen. Der Scrambler 20 erzeugt
ausgangsseitig fünf
verschiedene Ausgangszeiger OUTP<0>–OUTP<4>.
-
Die
so über
die Ringzähler 28, 29 sowie
den Scrambler 30 erzeugten Eingangs- und Ausgangszeiger INP<0>–INP<4>,
OUTP<0>–OUTP<4> werden
in entsprechende Steuereingänge
des Latenz-FIFOs 11 eingekoppelt.
Dieses Latenz-FIFO 11 weist insgesamt-fünf
FIFO-Zellen 31–35 auf,
die jeweils ein Latch und ein diesem Latch nachgeschalteten Schalter
(siehe 3) aufweisen können.
Den verschiedenen FIFO-Zellen 31–35 wird darüber hinaus
das interne Leseeingangssignal PREAD zugeführt. Abhängig von diesem Leseeingangssignal
PREAD sowie den jeweiligen Eingangszeigern INP<0>–INP<4> und Ausgangszeigern OUTP<0>–OUTP<4> erzeugt
das Latenz-FIFO 11 am Ausgang ein Ausgangssignal OUTEN.
-
5 zeigt
das entsprechende Ablaufdiagramm für das Funktionsschaltbild entsprechend 4.
Das Signal CLK bezeichnet dabei das externe Taktsignal, beispielsweise
das Taktsignal des Systemtaktes. Das Signal CMD bezeichnet das Kommandosignal,
also beispielsweise ein Lesekommando RD. Das Signal DQ bezeichnet
das externe Datensignal, welches beispielsweise aus dem Halbleiterspeicher
ausgelesen werden soll.
-
Nachfolgend
sei die erfindungsgemäße Initialisierungssequenz
anhand der 5 und 2 kurz erläutert:
Das
Taktsignal CLKRD wird mit der entsprechenden Verzögerung Δt = tRD +
tDP aus dem Taktsignal CLKDQ unter Verwendung der Replika-Schaltungen 3, 4 konstruiert.
Am Anfang der Initiali sierungsphase für die Synchronisierung werden
beide Taktsignale CLKDQ, CLKRD für
eine vorbestimmte Zeitdauer, im Falle des Ausführungsbeispiels in 2 für ca. 20
Taktzyklen, auf einen niedrigen logischen Pegel ("0", LOW) geschaltet. Sobald diese, so
genannte LOW-Phase der beiden Taktsignale CLKDQ, CLKRD von einer
eingangs dafür
vorgesehenen Detektorschaltung erkannt wird, werden die jeweiligen
Ausgangszeiger OUTP<0>–OUTP<4> entsprechend
der gewünschten
Latenz auf einen Anfangszustand eingestellt. Für das in den 4 und 5 dargestellte
Ausführungsbeispiel
ist eine Latenz von L = 5 vorgesehen. In diesem Falle muss als Startpunkt
der Ausgangszeiger OUTP<4> gewählt werden.
Mit der Flanke "5" des Taktsignals
CLKDQ wird demnach der Ausgangszeiger vom OUTP<4> nach
OUTP<0> geschaltet. In der
FIFO-Zelle 31, die durch diesen Ausgangszeiger OUTP<0> geöffnet wird, liegen dann die
Informationen darüber,
ob mit der Flanke "0" des Taktsignals
CLKRD ein Lesekommando RD übernommen
wurde oder nicht.
-
In
der 5 sind zur Veranschaulichung drei Lesekommandos
dargestellt. Bei den Eingangszeigern INP<0>–INP<4> wird durch die eingezeichnete "0" oder durch die eingezeichnete "1" verdeutlicht, ob das intern generierte
Lesesignal PREAD als "1" oder als "0" erkannt wird. Dieses interne Lesesignal
PREAD gibt somit eine Information über das Vorhandensein eines
Lesekommandos RD, wobei im Falle eines hohen logischen Pegels oder
einer "1" des PREAD-Signals
ein Lesekommando RD erkannt wurde und im Falle eines niedrigen logischen
Pegels oder einer "0" des PREAD-Signals
kein Lesekommando vorhanden ist.
-
Das
Ausgangssignal OUTEN am Ausgang 36 des Latenz-FIFOs 11 enthält die Informationen
dahingehend, zu welchen Zeitpunkten die Ausgangstreiber des Halbleiterspeichers
das Freigabesignal zum Lesen der Daten erhalten werden. Das Lesesignal
PREAD ist im vorliegenden Ausführungsbeispiel
insgesamt zwei Takte lang, wodurch der Notwendigkeit Genüge getan
wird, pro Lesezugriff vier Daten jeweils der Datenbreite eines halben
Tak tes extern nach außen
bereitzustellen. Dieser Lesevorgang wird im Allgemeinen auch als
Prefetch-4-Zugriff bezeichnet. Durch die Wahl der Datenbreite des
PREAD-Signals entsprechend der Breite des verwendeten Prefetch-Zugriffs
kann auf sehr vorteilhafte Weise direkt der Ausgang des Latenz-FIFOs 11 zur Ansteuerung
des Ausgangstreibers für
den Halbleiterspeicher genutzt werden. Diese vorteilhafte Ausgestaltung
der Erfindung sei nachfolgend anhand der Tabelle 1 dargestellt,
bei der der Zusammenhang der Breite des PREAD-Signals und eines
Prefetch-Zugriffs wiedergegeben ist:
-
-
Der
Scrambler 30 wertet zum Zeitpunkt der Initialisierung die
in dem Mode-Register (nicht dargestellt) gespeicherte Leselatenz,
welche dem Scrambler 30 in Form des Latenzsteuersignals
LATINFO zugeführt
wird, aus. In einer sehr vorteilhaften Ausgestaltung weist die erfindungsgemäße Leselatenzsteuerschaltung 10 eine einstellbare
Leselatenz L auf. Beispielsweise können hier Leselatenzen von 5, 6 und 7 eingestellt
werden, je nachdem welchen Wert das Latenzsteuersignal LATINFO aufweist.
Die nachfolgende Tabelle 2 veranschaulicht den Zusammenhang des
jeweiligen Startpunktes des Ausgangszeigers OUTP<0>–OUTP<4> für die Leselatenzen 5, 6, 7.
-
-
Die
obige Tabelle 2 gilt nur für
ein Latenz-FIFO der Tiefe 5, also ein Latenz-FIFO, wie
es in 4 dargestellt ist. Die Tiefe des Latenz-FIFOs 11 hängt von
der höchsten
wählbaren
Latenz und von den Verzögerungszeiten
tDP, tRD ab. Die Verzögerungszeit
tDP entspricht dabei im Wesentlichen der Vorlaufzeit der DLL-Schaltung.
Die Zeit tRD bezeichnet die Zeit zwischen der Übernahme eines externen Lesesignals
und dem Anliegen des Signals PREAD am Latenz-FIFO.
-
6 zeigt
ein Blockschaltbild einer erfindungsgemäßen Leselatenzsteuerschaltung.
-
Die
erfindungsgemäße Leselatenzsteuerschaltung
entsprechend 6 weist einerseits eine Einrichtung
zum Abschalten des Ausgangs der DLL-Schaltung 2 auf. Darüber hinaus
enthält
die Leselatenzsteuerschaltung 10 auch eine Schaltung, die
die Initialisierungssequenz erkennt und die unter Berücksichtigung
der geforderten Leselatenz die Ausgangszeiger des Latenz-FIFOs 11 richtig
einstellt. Die Schaltungstopologie in dem Ausführungsbeispiel in 6 baut
dabei auf der DLL-Schaltung 2 in 1 sowie der Schaltungsanordnungen in den 3 und 4 auf.
-
Zwischen
dem Ausgang 6 und dem Ausgang der DLL-Schaltung 2 ist
eine Schaltung 40 vorgesehen, über die eine synchrone Abschaltung
des von der DLL-Schaltung 2 ausgangsseitig bereitgestellten
DLL-Taktsignals DLLCLK vorgenommen werden kann. Diese Schaltungsanordnung 40 wird über ein
Abschaltsteuersignal R1 angesteuert. Dieses Abschaltsteuersignal
R1 wird von einem Zähler 41 bereitgestellt.
Der Zähler 41 ist
eingangsseitig mit einem Reset-Eingang 42 sowie mit dem
differentiellen Ausgangsanschlusspaar 43 der DLL-Schaltung 2 verbunden. Über den
Reset-Eingang 42 ist ein Reset-Signal RESET einkoppelbar.
Dieses Reset-Signal RESET wird einerseits in die DLL-Schaltung 2 und
andererseits in den Zähler 41 eingekoppelt.
-
Dem
Zähler 41 wird
darüber
hinaus das Ausgangssignal DLLCLK der DLL-Schaltung 2 zugeführt. Der Zähler 41 erzeugt
aus diesen beiden Signalen das Abschaltsteuersignal R1, welches
zum Abschalten der Schaltungsanordnung 40 dieser zugeführt wird.
-
Darüber hinaus
ist eine Detektoreinrichtung 44 vorgesehen. Die Detektoreinrichtung 44 ist
dazu ausgelegt, ein Reset-Signal
R2 zu erzeugen, über
welches das Latenz-FIFO 11 zurückgesetzt werden kann. Zu diesem
Zwecke ist die Detektorschaltung 44 eingangsseitig mit
dem Ausgang 6 verbunden und ausgangsseitig mit einem Steuereingang
des Latenz-FIFOs 11 verbunden. Der Detektorschaltung 44 wird
somit eingangsseitig das Taktsignal CLKDQ zugeführt.
-
In 6 sind
im Unterschied zu der 3 die beiden Replika-Schaltungen 3, 4 in
einem einzigen Schaltungsblock implementiert.
-
Nachfolgend
sei die Funktionsweise der erfindungsgemäßen Leselatenzsteuerschaltung 10 entsprechend 6 kurz
dargestellt.
-
Das
Ausgangssignal DLLCLK der DLL-Schaltung 2 wird in den Zähler 41 eingekoppelt.
Nach einem von außen
vorgegebenen DLL-Reset wird das entsprechende Reset-Signal RESET
ebenfalls in den Zähler 41 eingekoppelt.
-
In
einer alternativen Ausführungsform
kann auf eine Steuerleitung zwischen dem Reset-Eingang 42 und
dem Zähler 41 verzichtet
werden, indem ein Reset dadurch mitgeteilt wird, dass nur eines
der differentiellen Teilsignale DLLCLK an den Zähler geführt wird, während das Zweite als Steuer-
bzw. Reset-Signal
verwendet wird.
-
Der
Zähler 41 zählt nach
Einkoppeln dieses Reset-Signals RESET die Taktzyklen des Taktsignals DLLCLK
bis zu einer vorgegebenen Zahl von beispielsweise 180. Im Anschluss
daran ist die DLL-Schaltung 2 im eingeschwungenen Zustand.
Es bleiben dann noch etwa 20 Taktzyklen Zeit, um die erfindungsgemäße Initialisierung
des Latenz-FIFOs vorzunehmen. Die Schaltungsanordnung 40 zur
synchronen Abschaltung unterbricht bei Vorhandensein des Abschaltsteuersignals
R1, welches dem Zählerwert 180 entspricht,
den Ausgang 43 der DLL-Schaltung 2, so dass über den
Ausgang 6 kein Taktsignal CLKDQ in das Latenz-FIFO 11 eingekoppelt
wird. In der Folge wird damit auch das Taktsignal CLKRD unterbrochen.
Der besondere Vorteil der Funktionalität dieser Abschalteinrichtung 40 in
Verbindung mit dem Zähler 41 besteht
darin, dass das Taktsignal CLKDQ für einige Taktzyklen unterbrochen
wird, ohne dass halbe Takte oder Taktteile des Taktsignals CLKDQ
entstehen können.
-
Die
Detektorschaltung 44 entdeckt das Fehlen von mehreren HIGH-Phasen
des Taktsignals CLKDQ und erzeugt am Ausgang das Reset-Signal R2
zur Ansteuerung des Latenz-FIFOs 11. Der Aufbau und die Funktionsweise
der Detektorschaltung 44 sowie des mit dem Ausgang 43 der
DLL-Schaltung 2 verbundenen Zählers 41 sind allgemein
bekannt, so dass nachfolgend darauf nicht näher eingegangen wird.
-
7 zeigt
anhand eines Ablaufdiagramms das erfindungsgemäße Verfahren zur Initialisierung
und damit zur Synchronisierung der Ausgangs- und Eingangszeiger
eines Latenz-FIFOs 11. Bei diesem Verfahren werden für die Initialisierung
sowohl der Verzögerungszeit
tDP, welche eine Funktion der Laufzeit der Offset-Treibers der Halbleiterschaltung
ist, wie auch der Verzögerung
tRD, welche die Zeit für
das Bereitstellen des Lesesignals PREAD zum Auslesen der Daten bezeichnet,
Rechnung getragen.
-
In 7 ist
ein Ausführungsbeispiel
mit einer Latenz L = 5 dargestellt. Zum Zeitpunkt t10 wird ein Lesebefehl
RD ausgegeben. Damit die unter Berücksichtigung der Latenz L =
5 ausgelesenen Lesedaten D0–D3 auch
synchron ausgelesen werden, müssen
die entsprechenden Verzögerungszeiten
tRD, tDP berück sichtigt werden.
Unter synchronem Auslesen ist zu verstehen, dass die Lesedaten D0–D4 synchron
bezüglich
des extern bereitgestellten Taktsignals CLK oder eines davon abgeleiteten,
zum Beispiel des invertierten Taktsignals CLK# sind.
-
Im
Beispiel in 7 soll das erste Datum D0 der
Lesedaten D0–D4,
also beginnend mit dem Zeitpunkt t11, ausgelesen werden. Der Zeitpunkt
t11 entspricht dabei der ansteigenden Flanke des externen Taktsignals CLK
bzw. der entsprechenden abfallenden Flanke des invertierten Taktsignals
CLK#. Der Auslesevorgang bzw. die Steuerung dieses Auslesevorgangs
und insbesondere die Einstellung der gewünschten Latenz von L = 4 erfolgt
allerdings nicht anhand dieses externen Taktsignals CLK. Hierfür wird ein
internes Taktsignal DLLCLK, CLKDQ verwendet, welches zur Einstellung
der Leselatenz verwendet wird. Dieses interne Taktsignal DLLCLK,
CLKDQ wird von einer DLL-Schaltung 2 abgeleitet. Problematisch
daran ist, dass hier allerdings die Verzögerungszeiten tRD und tDP zu
berücksichtigen
sind. Das bedeutet, dass einerseits für ein synchrones Auslesen der
Daten D0–D4
nach der Latenz L = 5 der entsprechende Ausgangszeiger für das Auslesen
der Daten die Verzögerung
tDP, also die Laufzeit bedingte Dauer der Offset-Treiber, mit berücksichtigt werden muss. Insofern
muss die entsprechende ansteigende Flanke des Taktsignals CLKDQ, über welche
signalisiert wird, dass synchron zum Taktsignal CLK die Daten D0–D4 ausgelesen
werden sollen, zeitlich um die Verzögerungszeit tDP vorverlegt
werden, um diesen Auslesevorgang synchron einzuleiten. Der Ausgangszeiger
für das
Taktsignal CLKDQ muss damit auf den Zeitpunkt t12 zeigen. Der Zeitpunkt
t12 liegt zeitlich derart vor dem Zeitpunkt t11, dass die Differenz
zwischen t11 und t12 der Verzögerungszeit
tDP entspricht.
-
Darüber hinaus
ist für
ein synchrones Auslesen auch noch die Zeit tRD zu berücksichtigen.
Nach diesem Zeitpunkt tRD bezogen auf den Zeitpunkt t10 wird das
interne Lesesignal PREAD ausgegeben, welches einen Lesevorgang anfordert.
Diese Lese signal PREAD wird über
das Lesekommando RD extern angefordert.
-
Damit
ein synchrones Auslesen der Daten bezogen auf das externe Taktsignal
CLK erfolgen kann, muss das interne, von der DLL-Schaltung 2 bereitgestellte
Taktsignal CLKDQ unter Berücksichtigung
der Zeitdauern Δt
= tDP + tRD entsprechend eingestellt werden. Da die Verzögerungszeit
tRD bezogen auf den Zeitpunkt t10 fest vorgegeben ist, muss zur
Bestimmung des Zeitpunktes t14, bei dem das interne Taktsignal CLKDQ
seine ansteigende Flanke aufweist, die Verzögerung tDP von dem Zeitpunkt
t10 abgezogen werden, so dass die Differenz aus den Zeitpunkten
t13 und t14 genau der Zeitdauer Δt
= tDP und tRD entspricht. Das interne Taktsignal CLKDQ weist somit
zum Zeitpunkt t14 seine ansteigende Flanke auf, so dass sichergestellt ist,
dass zum Zeitpunkt t11 die Daten unter Berücksichtigung der Latenz L =
5 synchron ausgelesen werden können.
-
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 erfindungsgemäße Leselatenzsteuerschaltungen
wie auch das entsprechende FIFO, die Ringzähler und der Scrambler bewusst
sehr einfach dargestellt. Es versteht sich von selbst, dass diese
beschrieben Schaltungstopographie beliebig modifiziert werden kann,
ohne vom grundsätzlichen
Prinzip der vorliegenden Erfindung abzuweichen. So wurde in den
vorstehenden Ausführungsbeispielen
der Scrambler dem Ringzähler
zur Bereitstellung der verschiedenen Ausgangszeiger zugeordnet.
Der Scrambler kann aber zusätzlich
oder alternativ auch dem Ringzähler
zur Bereitstellung der Eingangszeiger zugeordnet sein.
-
Grundsätzlich gilt,
dass die Funktionalität
dieser Leselatenzsteuerschaltungen 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.
Jedoch ist die anhand der vorstehenden Figuren beschriebene Ausgestaltung
insbesondere aus schaltungstechnischen Gründen und aus Gründen der
Leistungsfähigkeit
besonders vorteilhaft und daher zu bevorzugen.
-
Darüber hinaus
muss nicht notwendigerweise ein so genannter Prefetch-4 Lesezugriff,
bei dem bei jedem Lesezugriff jeweils vier Datenpakete in den Speicher
geschrieben werden, vorgesehen sein. Denkbar wären auch andere Prefetch-Lesezugriffe,
bei denen weniger oder auch mehr Datenpakete pro Schreibzugriff
verarbeitet werden, beispielsweise ein Prefetch-2 oder ein Prefetch-8-Lesezugriff.
-
In
den vorstehenden Ausführungsbeispielen
wurde die Leselatenzsteuerschaltung für ein Latenz-FIFO der Tiefe 4 bzw. 5 dargestellt.
Denkbar wäre
hier selbstverständlich
eine beliebig andere Ausgestaltung des Latenz-FIFOs 11 mit
mehr oder weniger großen
Tiefe. Darüber
hinaus ist die Leselatenz nicht wie im Ausführungsbeispiel der 5 und 7 auf
Leselatenzen von 5 beschränkt.
Selbstverständlich
lassen sich hier auch größere oder
kleine Leselatenzen bereitstellen. Hierzu ist lediglich eine schaltungstechnische
Variation der entsprechenden FIFO-Zellen bzw. des Latenz-FIFOs erforderlich.
-
Obgleich
in den Figuren lediglich schematisch einfache Signale bzw. Signalwege
eingezeichnet sind, umfasst die Erfindungsgemäße Latenzsteuerung ebenfalls
das Einstellen und Erzeugen differentieller Signale. Entsprechend
sind die dargestellten Anschlüsse
und Signalpfade auch als differentielle Anschlusspaare bzw. Signalwege
zu verstehen.
-
- 1
- Schaltungsanordnung
- 2
- DLL-Schaltung
- 3
- Replika-Schaltung,
Verzögerungsschaltung
für
-
- tDP
- 4
- Replika-Schaltung,
Verzögerungsschaltung
für
-
- tRD
- 5
- Eingang
- 6
- Ausgang
- 7
- Ausgang
- 8
- Rückkopplungspfad
- 10
- Leselatenzsteuerschaltung
- 11
- Latenz-FIFO
- 12
- Eingang
- 13
- Ausgang
- 14
- Latcheinrichtung
- 15
- Schaltereinrichtung
- 16–19
- Latches
- 20–23
- Schalter,
Multiplexer
- 24
- Inverterschaltung
- 25,
26
- Inverter
- 27
- Rückkoppelinverter
- 28
- Ringzähler für Eingangszeiger
- 29
- Ringzähler für Ausgangszeiger
- 30
- Scrambler,
Vermischschaltung
- 31–35
- FIFO-Zellen
- 36
- Ausgang
des Latenz-FIFOs
- 40
- Schaltung
zur synchronen Abschaltung
- 41
- Zähler
- 42
- Reset-Eingang
- 43
- Ausgang
der DLL-Schaltung
- 44
- Detektorschaltung
- 100
- Empfangsschaltung
- 101
- Taktverzweigungsbaum
- 102
- State-Machine
- 103
- Lesesignalverteiler
- 104
- Ablaufsteuerung
- CLK#
- inverses
externes Taktsignal
- CLK
- externes
Taktsignal
- CLKDQ
- internes
Taktsignal
- CLKRD
- verzögertes internes
Taktsignal
- CLKVE
- verzögertes internes
Taktsignal
- DLLCLK
- Taktsignal
am Ausgang der DLL-Schaltung
- INP<0>..<4>
- Eingangszeiger
- L
- Latenz
- L0–L3
- Datensignale
- LATINFO
- Latenzsteuersignal
- LT
- Latenzsteuersignal
- 0<0>–0<4>
- Ausgangssignal
- OUTEN
- Ausgangssignal
- OUTP<0>..<4>
- Ausgangszeiger
- PREAD
- Lesesignal
- R1
- Abschaltsteuersignal
- R2
- Reset-Signal
- RESET
- Resetsignal
- Δt
- Verzögerungsdauer,
Zeitversatz
- t1,
t1'
- erster
Zeitpunkt
- t10–t14
- Zeitpunkte
- t2,
t2'
- zweiter
Zeitpunkt
- tDP
- erste
Verzögerung
- tRD
- zweite
Verzögerung
- tCLK
- Taktdauer
- t
- Zeit
- D0–D3
- Daten
- DQ
- Datensignale
- CMD
- Kommandosignale
- RD
- Lesekommando,
Lesebefehl
- RAS
- Steuersignal
- CAS
- Steuersignal
- WE
- Steuersignal
- CS
- Steuersignal