-
Die
vorliegende Erfindung betrifft einen digitalen Datenbuffer mit einem
Datenpfad oder einer Mehrzahl von parallelen Datenpfaden, die jeweils
einen Dateneingang für
den Empfang eines digitalen Dateneingangssignals, einen Takteingang
für den Empfang
eines Takteingangssignals und einen Datenausgang, der ein digitales
Datenausgangssignal zum Anlegen an ein Datenzielbauelement bereitstellt,
aufweisen. Während
es sich bei dem Datenzielbauelement um jedes beliebige Bauelement
handeln könnte,
das eine digitale Dateneingabe mit einem zugehörigen Taktsignal benötigt, dessen
Vorbereitungs-/Haltezeitbeziehung (setup/hold timing) optimiert
und das im Wesentlichen frei von Phasenjitter ist, stellt dessen
Verwendung in einem Speichersystem, das mit Taktfrequenzen bis zu
800 MHz oder höher
arbeitet, eine bevorzugte Anwendung dar.
-
Aus
der
US 2003/0221044
A1 ist ein Datenbuffer mit einer Doppelflipflop-Pipelinestruktur
und einem Regelkreis in Form einer DLL bekannt, der mittels einer
externen Rückkoppelung
die Ausgabe von Kontrollsignalen an die nachfolgenden Speicherbausteine
zeitlich steuert.
-
Ferner
ist aus der
US 5 952
857 A eine Eingangsstruktur für Halbleiterbauelemente bekannt,
die mit einer Logikschaltung zur Anpassung der Verzögerung aller
Eingangssignale auf das „langsamste" Eingangsignal über einen
Phasenvergleich versehen ist.
-
In
einer unveröffentlichten
deutschen Patentanmeldung neueren Datums wird eine Doppelflipflop-Pipelinestruktur
für einen
Datenbuffer vorgeschlagen. Die Eingabedaten, bei denen es sich tatsächlich um
Adressdaten in einem Speichersystem handeln kann, werden mit dem
Systemeingangstakt und von dem Ausgang des zweiten Flipflops in
das erste Flipflop hineingetaktet (allgemeiner ein „Datenregister"), und sie werden
in das zweite Flipflop mit einem internen Taktsignal hineingetaktet,
das von einem Phasenregelkreis (PLL) bereitgestellt wird, dessen
Referenzeingang den Systemeingangstakt empfängt. Der PLL stellt ebenfalls
interne Taktsignale für Datenzielbauelemente
wie z. B. RAM-Module in einem Speichersystem bereit.
-
Mit
einer derartigen Doppelflipflop-Pipelinestruktur wird die Laufzeitverzögerung (tpd)
von dem Systemtakteingang zu den Taktausgängen durch den PLL gesteuert.
Sofern der PLL kein Phaseneinstellungsmittel enthält, ist
die Laufzeitverzögerung
unveränderlich
und wird durch die Taktfrequenz bestimmt. Für die ordnungsgemäße Funktionalität der Struktur
muss die Phase des internen Takts an dem zweiten Flipflop so eingestellt
werden, dass selbst unter den ungünstigsten Bedingungen keine Störung der
Vorbereitungs-/Haltezeitsteuerung
auftritt, wodurch vermieden wird, dass die falschen Daten in dem
zweiten Flipflop gespeichert werden. In Hinblick auf diese Anforderung
wäre es
sicher, die Phase des internen Takts des zweiten Flipflops ausreichend
weit weg von der Phase des Takts des ersten Flipflops zu bewegen,
um den Fall der ungünstigsten
Bedingungen abzudecken. Dies würde
jedoch ebenso die längste
Laufzeitverzögerung
erzeugen.
-
Die
vorliegende Erfindung geht aus von einem Datenbuffer der in der
US 2003/0221044 A1 beschriebenen
Gattung und betrifft einen Datenbuffer mit einem Mechanismus zur
Optimierung der Vorbereitungs-/Haltezeitsteuerung an dem zweiten
Flipflop (oder Datenregister), um die Laufzeitverzögerung zu verringern.
Die in Patentanspruch 1 angegebene Erfindung stellt einen digitalen
Datenbuffer mit einem Datenpfad oder einer Mehrzahl von parallelen
Datenpfaden bereit, die jeweils einen Dateneingang für den Empfang
eines digitalen Dateneingangssignals, einen Takteingang für den Empfang
eines Takteingangssignals und einen Datenausgang, der ein digitales
Datenausgangssignal zum Anlegen an ein Datenzielbauelement wie z.
B. ein RAM-Modul in einem Speichersystem bereitstellt, aufweisen.
Der Datenbuffer umfasst ferner einen Taktausgang zur Bereitstellung
eines Ausgangstaktsignals für
das Datenzielbauelement und einen Phasenregelkreis (PLL) mit einem
Phasen-Aligner, einem Takteingang, einem Rückkopplungseingang, einem Rückkopplungsausgang
und einer Mehrzahl von Taktausgängen. Der
Datenpfad weist ein erstes Datenregister mit einem Dateneingang,
einem Takteingang und einem Datenausgang auf. Der Datenpfad weist
ebenfalls ein zweites Datenregister mit einem Dateneingang, einem
Takteingang und einem Datenausgang auf. Der Dateneingang des ersten
Datenregisters wird durch einen Multiplexer selektiv mit dem Dateneingang
des Buffers oder mit einem Referenzdateneingang gekoppelt. Der Datenausgang
des ersten Datenregisters ist mit dem Dateneingang des zweiten Datenregisters
verbunden. Der Datenausgang des Buffers ist mit dem Datenausgang
des zweiten Datenregisters gekoppelt. Der Takteingang des Buffers ist
mit dem Takteingang des ersten Datenregisters gekoppelt. Der Takteingang
des Buffers ist mit dem Takteingang des Phasenregelkreises (PLL)
gekoppelt. Ein erster Taktausgang des Phasenregelkreises (PLL) stellt
ein Rückkopplungstaktsignal
zum Anlegen an den Rückkopplungseingang
des Phasenregelkreises bereit. Parallel zu dem Datenpfad wird ein Referenzdatenpfad
bereitgestellt, der ein drittes Datenregister mit einem Dateneingang,
mit dem der Referenzdateneingang gekoppelt ist, und einen Referenzdatenausgang
enthält.
Ein zweiter Taktausgang des Phasenregelkreises stellt ein Taktsignal,
dessen Phase in Bezug auf das Rückkopplungstaktsignal durch
den Phasen-Aligner verschoben ist, zum Anlegen an den Takteingang
des zweiten Datenregisters und an den Takteingang des dritten Datenregisters bereit.
Die aus dem zweiten Datenregister ausgegebenen Daten und die aus
dem dritten Datenregister ausgegebenen Referenzdaten werden an Eingänge einer
Logikschaltung, die einen Steuerausgang aufweist, angelegt. Der
Phasen-Aligner in dem Phasenregelkreis weist eine zugehörige Steuerschaltung
mit einem mit dem Steuerausgang der Logikschaltung gekoppelten Steuereingang
auf. An den Multiplexer und an die Steuerschaltung des Phasen-Aligners wird
parallel ein Lernperiodesteuersignal angelegt, das verursacht, dass
der Phasen-Aligner die Phase des Taktsignals an dem zweiten Taktausgang
des Phasenregelkreises in einer Lernperiode so einstellt, dass die
Vorbereitungs-/Haltezeitsteuerung an dem Dateneingang des zweiten
Datenregisters optimiert wird.
-
Der
Referenzdatenpfad in dem erfindungsgemäßen Datenbuffer hat die kürzest mögliche Laufzeitverzögerung.
Der parallele Datenpfad wird zu Anfang als „Verzögerungspfad für den ungünstigsten Fall" angesehen. Jedes
Mal, wenn es als angebracht erachtet wird, und besonders beim Einschalten
des Systems wird ein Lerndurchgang ausgeführt. In einem solchen Lerndurchgang
werden identische Datensignale parallel sowohl über den Datenpfad als auch über den
Referenzdatenpfad gesendet. Wenn die Phase des internen Taktsignals
an dem zweiten Datenregister richtig gewählt ist, treten an den Ausgängen des
zweiten und des dritten Datenregisters identische Signale auf. Wenn
sich die Signale voneinander unterscheiden, wird der Phasen-Aligner
in dem PLL angewiesen, die Phase z. B. durch Einfügen eines
Phasenschritts einzustellen. Durch wiederholtes Einfügen oder
Entfernen von Phasenschritten kann ein Phasenbereich, in dem die
Signale identisch sind, bestimmt werden. Je nach dem, ob die Datenintegrität oder die
Geschwindigkeit das Kriterium ist, wird die Phase des PLL-Taktausgangssignals
innerhalb der Grenzen des somit bestimmten Phasenbereichs festgesetzt.
Typischerweise werden nach einer vollständig ausgeführten Lernperiode Prozessschwankungen,
schwankende Versorgungsspannungen bzw. Temperaturen oder andere
Betriebsbedingungen des Bauelements mit dem erfindungsgemäßen Mechanismus
kompensiert. Vorzugsweise befindet sich dann eine Flanke des Ausgangstakts
in der Mitte des Auges des Datenausgangs. Der Signalpfad des Ausgangstakts
wird vorzugsweise an den Signalpfad des Datenausgangs angeglichen.
-
Es
sollte klar sein, dass integrierte CMOS-Schaltkreise praktische
Implementierungen des erfindungsgemäßen Datenbuffers wären. Je nach
den jeweiligen Prozessbedingungen kann ein tatsächlicher Schaltkreis mehr oder
weniger leistungsstark sein. Das erfindungsgemäße Konzept ermöglicht es,
tatsächliche
Hardwareprodukte gemäß der Leistungsfähigkeit
in Hinblick auf die Laufzeitverzögerung
(pdt) zu untersuchen, indem die Produkte unter sicheren Vorbereitungs-/Haltezeitbedingungen auf
eine minimale Laufzeitverzögerung
getestet werden.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein Speichersystem bereitgestellt,
das einen Speichercontroller und zumindest eine Speicherplatine
umfasst, die wiederum einen wie soeben offenbarten digitalen Datenbuffer
umfasst. Das Speichersystem enthält
eine Mehrzahl von RAM-Modulen. Es werden digitale Adress- und Taktsignale
von dem Speichercontroller an jeden Zweig des digitalen Datenbuffers
als digitales Dateneingangssignal bzw. digitales Takteingangssignal
angelegt, und die Datenausgangssignale sowie die Taktausgangssignale von
dem digitalen Datenbuffer werden parallel an die RAM-Bausteine angelegt.
-
Die
neue Architektur und die Vorteile des erfindungsgemäßen digitalen
Datenbuffers ergeben sich aus der folgenden detaillierten Beschreibung
einer bevorzugten Ausführungsform
unter Bezugnahme auf die beigefügten
Zeichnungen. Es zeigen:
-
1 ein
schematisches Blockdiagramm eines „registered", digitalen Datenbuffers;
-
2 ein
Signaldiagramm, das den Betrieb des Datenbuffers darstellt; und
-
3 ein
schematisches Blockdiagramm eines Speichersystems, in dem der Datenbuffer
verwendet werden kann.
-
Unter
Bezugnahme auf 1 besteht die Grundarchitektur
des erfindungsgemäßen Datenbuffers
aus einer Doppelflipflop-Pipelinestruktur mit einem Datenpfad und
einem dazu parallelen Referenzdatenpfad. In dem vorliegenden Kontext
ist ein Flipflop eine bestimmte Art von Datenregister, wie wohl bekannt
ist.
-
Der
Datenpfad umfasst ein erstes Flipflop FF1 in Reihe mit einem zweiten
Flipflop FF2. Der Dateneingang D des Flipflops FF1 ist mit dem Ausgang eines
Multiplexers MUX verbunden, von dem ein erster Eingang ein Dateneingangssignal
CA/CNTRL empfängt
und ein zweiter Eingang das Ausgangssignal eines Frequenzteilers
DIV empfängt,
der ein Takteingangssignal CLK_FF1 durch 2 teilt, welches ebenfalls
an den Takteingang des Flipflops FF1 angelegt wird. Das Flipflop
FF2 hat seinen D-Eingang mit dem Q-Ausgang des Flipflops FF1 verbunden, seinen
Q-Ausgang mit einem Datenbufferausgang Q_CA/CNTRL verbunden und
seinen Takteingang mit einem Taktausgang PLL_CA/CNTRL eines Phasenregelkreises
PLL mit einem internen Phasen-Aligner
verbunden. Da letztgenannter Taktausgang der ist, der an das Flipflop
FF2 angelegt wird, ist er auch als CLK_FF2 in 1 gekennzeichnet.
-
Der
Referenzdatenpfad enthält
ein drittes Flipflop FF3, dessen Dateneingang ebenfalls mit dem
Ausgang des Frequenzteilers DIV verbunden ist, und dessen Takteingang
ebenfalls das Taktausgangssignal PLL_CA/CNTRL von dem Phasenregelkreis
PLL empfängt.
-
Die
Ausgänge
sowohl des zweiten Flipflops FF2 als auch des dritten Flipflops
FF3 sind mit den Eingängen
eines XOR-(EXKLUSIV-ODER-)Gatters EXOR verbunden, dessen Ausgang
mit dem Dateneingang D eines vierten Flipflops FF4 verbunden ist, dessen
Takteingang ebenfalls das Taktausgangssignal PLL_CA/CNTRL von dem
Phasenregelkreis PLL empfängt.
-
In
der in 1 gezeigten Ausführungsform ist das Eingangstaktsignal
CLK_FF1 ein Eintaktsignal, das mit dem Taktbuffer BUF1 aus den differenziellen
Takteingangssignalen CLK und NCLK gewonnen wird. Dies ist ein erstes
Eingangssignal für
den PLL (mit Phasen-Aligner). Ein zweiter Eingang des PLL ist natürlich ein
Rückkopplungssignal,
das in diesem Fall ein Eintaktsignal ist, das mit einem Buffer BUF2
aus den differenziellen Rückkopplungseingangssignalen
Fbin und NFBin gewonnen wird. Diese Rückkopplungssignale werden mit
einem Ausgangsbuffer BUF3 von einem Direktrückkopplungsausgang PLL_FB des
PLL abgeleitet, der das durch das Verzögerungselement DEL1 verzögerte PLL-Rückkopplungsausgangssignal PLL_FB
in die differenziellen Rückkopplungsausgangssignale Q_FBout
und Q_NFBout umwandelt. Diese werden über einen externen Rückkopplungspfad
EFB an die Eingänge
des Eingangsbuffers BUF2 angelegt. „Externer Rückkopplungspfad" soll einen Signalpfad
außerhalb
des Chips, auf dem sich die Bufferstruktur befindet, festlegen.
-
Der
PLL hat ebenfalls einen weiteren Taktausgang, PLL_CLK, zum Anlegen
an Datenzielbauelemente wie Speichermodule, wie noch erläutert wird,
durch ein Verzögerungselement
DEL2 und einen Ausgangsbuffer BUF4, der die differenziellen Ausgangssignale
Q_CLK und Q_NCLK bereitstellt.
-
Der
PLL enthält
einen Ringoszillator mit Phasenabgriffen zwischen aufeinander folgenden
Inverterstufen, von denen in dem Beispiel gemäß 1 fünf gezeigt
sind. Die Phasenabgriffe des Ringoszillators sind Eingänge eines
Phaseninterpolators. Der Phaseninterpolator hat Steuereingänge „links" und „rechts" und einen Ausgang,
der die identischen Taktsignale PLL_CA/CNTRL sowie PLL_CLK bereitstellt. Die
Steuereingänge „links" und „rechts" des Phaseninterpolators
stammen von einer Steuerschaltung innerhalb des PLL- und Phasen-Aligner-Blocks.
-
In
einer normalen Betriebsart ist ein an den Multiplexer MUX angelegtes
Steuersignal „Lernperiode" inaktiv, und der
Multiplexer schaltet das Dateneingangssignal CA/CNTRL auf den Dateneingang von
FF1 um. Ebenso wird dasselbe inaktive Steuersignal an die Steuerschaltung
innerhalb des PLL angelegt, so dass die Phase der Ausgangssignale PLL_CLK
und PLL_CA/CNTRL durch den Phasen-Aligner innerhalb des PLL nicht
verändert
wird.
-
In
einer Betriebsart „Lernen" ist das an den Multiplexer
MUX angelegte Steuersignal „Lernperiode" aktiv, und der Multiplexer
schaltet das geteilte Eingangstaktsignal CLK_FF1 auf den Dateneingang von
FF1. Außerdem
versucht nun das System, die Phasen der Takteingangssignale des
PLL einzustellen, um den auferlegten Zielen, also Geschwindigkeit und Datenintegrität, zu genügen, da
dasselbe Signal „Lernperiode" auch an der Steuerschaltung
innerhalb des PLL angelegt ist.
-
2 ist
ein Signaldiagramm, das den Betrieb des Datenbuffers darstellt.
Der Dateneingang von FF2 empfängt
die verzögerte
Version D_DEL der Eingabedaten CA/CNTRL (typischerweise Adressdaten).
FF3 empfängt
die Daten D_REF mit minimaler Verzögerung. Während der Inbetriebnahme oder
zu einem bestimmten Zeitpunkt während
des Betriebs kann das System in eine Lernperiode umschalten. Während einer
Lernperiode wird ein Signal CLK_FF1 durch zwei geteilt und an den
Referenzpfad sowie über
den Multiplexer MUX an den Datenpfad weitergeleitet. FF2 und FF3
werden durch PLL_CN/CNTRL mit einer vorbestimmten Phasenbeziehung
zu PLL_CLK getaktet. Die entsprechenden Ausgangssignale von FF2
und FF3 sind in 2 als Q_REF und Q_CA/CNTRL gezeigt.
Während
der Lernroutine verschiebt die Steuerschaltung die Phase des Taktsignals
PLL_CA/CNTRL und bestimmt, ob die Ausgangssignale Q_REF bzw. Q_CA/CNTRL
von FF2 bzw. FF3 dieselben oder unterschiedliche Zustände für die entsprechenden
verschiedenen Phasen der steigenden Flanke des Taktsignals PLL_CA/CNTRL aufweisen. 2 gibt
lediglich eine Situation wieder, in der beide Ausgangssignale Q_REF
und Q_CA/CNTRL dieselben Zustände
für eine
Anfangsphase der steigenden Flanke des Taktsignals PLL_CA/CNTRL
aufweisen. Das Verschieben der steigenden Flanke erzeugt jedoch
Konstellationen, in denen die Ausgangssignale Q_REF und Q_CA/CNTRL
unterschiedlich sind. Die Ausgangssignale Q_REF und Q_CA/CNTRL werden
an ein XOR-Gatter weitergeleitet, um zu bestimmen, ob sie unterschiedliche
oder gleiche Zustände
aufweisen. Hierdurch wird es der Steuerschaltung ermöglicht,
die Verzögerung
basierend auf der Phasenverschiebung zwischen dem Referenzpfad und
dem Verzögerungspfad
zu ermitteln. Letztendlich wird die Phase von PLL_CA/CNTRL in Bezug
auf die Ergebnisse der Lernperiode eingestellt. Für Hochgeschwindigkeitsanwendungen
kann die Phase von PLL_CA/CNTRL für eine minimale Verzögerung oder
für eine
minimale Vorbereitungszeit eingestellt werden, was durch das Signal
,PLL_CA/CNTRL fast' dargestellt
wird. Wenn jedoch auf Grund von Produktionsspannen oder auf Grund
von schwankenden Betriebsbedingungen eine größere Spanne benötigt wird,
kann die Phase für eine
andere optimale Vorbereitungs- und/oder Haltezeitsteuerung eingestellt
werden, wie durch ,PLL_CA/CNTRL save' dargestellt ist.
-
Die
externen Ausgabedaten Q_CA/CNTRL sollen gemeinsam mit dem externen
Ausgangstaktsignal Q_CLK an ein Zielbauelement angelegt werden. 3 zeigt
als eine bevorzugte Anwendung ein RAM-Speichersystem mit einem Speichercontroller und
einem DIMM-Modul, das einen der erfindungsgemäßen Datenbuffer, der „Registered
Buffer" genannt
wird, und eine Mehrzahl von gleichen Speicherbausteinen SDRAM1,
SDRAM2 ... beinhaltet, mit der offensichtlichen Option, dem Speichersystem
weitere gleiche DIMM-Module hinzuzufügen. Obwohl lediglich ein Datenpfad
mit dem Eingangssignal CA/CNTR und dem Ausgangssignal Q_CA/CNTR
gezeigt ist, sollte es klar sein, dass die Signale n Bit breit sein
würden.