-
In
der Elektronikindustrie ist es üblich,
mehrere Integrierte-Schaltung-Vorrichtungen ähnlicher Funktion zur Bildung
eines in der Industrie bekannten Mehrkomponentenmoduls auf eine
gemeinsame Schaltungsplatine anzubringen. Beispielsweise werden
mehrere Halbleiter-Integrierte-Schaltung-Speichervorrichtungen
oder -komponenten zur Bildung eines Speichermoduls an eine gemeinsame
Schaltungsplatine angebracht. Das Speichermodul ist mit einer Hauptschaltungsplatine
verbunden, um mit anderen Komponenten in einem System, z. B. in
einem Computersystem, zusammenzuwirken. Die Komponenten auf dem
Speichermodul werden in Kooperation miteinander ausgelesen und beschrieben.
Eine Steuerung steuert einen Zugriff auf die Komponenten auf dem
Modul.
-
In
der Vergangenheit wurden die Komponenten auf der Modulschaltungsplatine
so angeordnet, um die Zeitverzögerung
von Signalen zu und von den Komponenten auszugleichen. Mit dem Fortschreiten von
Halbleiterherstellungstechnologien und Schaltungsentwürfen sind
die Komponenten jedoch so schnell geworden, dass es nicht erforderlich
ist, Signalausbreitungsverzögerungen
berücksichtigen
zu müssen,
um Signale zu und von den Komponenten zu synchronisieren. Beispielsweise
verwenden Speichermodule der nächsten
Generation, die gemäß dem DDR3-Standard
(Doppeldatenraten-3-Standard) (und späteren Standards) hergestellt
wurden, so genannte „Fly-By"-Verbindungen (Verbindungen „im Vorbeiflug") für Eingaben
von Steuersignalen in die Komponenten auf dem Modul. Fly-By-Verbindungen sind
so ausgelegt, dass Verbindungen, die zwischen der Steuerung und
den Komponenten hergestellt werden, den kürzest möglichen Weg wählen, und
dass die Steuerung die Steuersignale bei jeder Komponente sequen tiell
zuführt.
Jedoch weist jede Komponente fest zugeordnete Ausgänge auf,
die parallel zu der Steuerung geschaltet sind. Die Steuersignale
kommen an den Komponenten, die näher
an der Steuerung gelegen sind, früher an als an Komponenten,
die nachgelagert sind. Folglich reagiert jede Komponente auf das
Steuersignal von der Steuerung zu einem geringfügig anderen (späteren) Zeitpunkt und
reagiert daher auf die Steuerung geringfügig später, derart, dass die Ausgaben
aus den Komponenten nicht zeitlich ausgerichtet sind. Dieser Fehlabgleich
der Ausgabe aus den Komponenten macht ein Verarbeiten der Daten
an der Steuerung kompliziert und macht auch einen Entwurf von Testervorrichtungen
zum Testen der Mehrkomponentenmodule komplexer.
-
Es
ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Steuern
der Zeitgebung einer Datenausgabe aus einer Mehrzahl von Komponenten
eines Mehrkomponentenmoduls und eine Mehrkomponentenelektronikmodulvorrichtung
mit verbesserten Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch ein Verfahren gemäß Anspruch 1 oder 6 sowie eine
Mehrkomponentenelektronikmodulvorrichtung gemäß Anspruch 11 oder 19 gelöst.
-
Kurz
gesagt werden ein Verfahren und eine Mehrkomponentenelektronikmodulvorrichtung
bereitgestellt, die die Zeitgebung einer Datenausgabe aus einer
Mehrzahl von Komponenten auf dem Mehrkomponentenmodul steuern. Eine
oder mehrere der Komponenten sind programmiert, um ein Ausgeben von
Daten um einen entsprechenden Zeitbetrag zu verzögern. Bei einem Ausführungsbeispiel
ist die eine oder sind die mehreren Komponenten derart programmiert,
dass alle der Komponenten Daten Wesentlichen gleichzeitig ausgeben,
wenn sie auf ein Steuersignal ansprechen. Dies ist besonders bei Mehrkomponentenmodulen
nützlich,
die so konfiguriert sind, dass sie auf Steuersignale in einer so
genannten Fly-By-Konfiguration
(oder einer anderen Konfiguration) ansprechen, die dazu führt, dass
das Steuersignal zu unterschied lichen Zeitpunkten bei den Komponenten
ankommt, was bewirkt, dass die Komponenten zu unterschiedlichen
Zeitpunkten auf das Steuersignal reagieren.
-
Bei
Anwendungen, bei denen die Komponenten eine Taktverarbeitungsschaltung,
wie beispielsweise eine Verzögerungsregelschleifenschaltung
(DLL-Schaltung; DLL = delay lock loop) aufweisen, die die Zeitgebung
von Komponentenoperationen bezüglich
eines Eingabetaktsignals steuert, ist die Zeitverschiebung der Taktverarbeitungsschaltung auf
einen Wert programmiert, der bestimmt ist, um die erwünschten
Zeitversätze
(d. h., keinen Zeitversatz) von Daten, die aus der Mehrzahl von
Komponenten ausgegeben werden, zu erzielen. Bei einem Ausführungsbeispiel,
bei dem die Komponenten Halbleiter-Integrierte-Schaltung-Speichervorrichtungen
sind, kann der den Komponenten zugeführte Programmierbefehl von
einer Speichersteuerung bei einer Einschaltung, oder von einer Testervorrichtung, die
am Beginn einer Testprozedur mit dem Modul verbunden ist, stammen.
Um die Verzögerung
in den Komponenten zu programmieren, wird ein Steuersignal an die
Komponenten gesendet, das sie dazu veranlasst, Daten auszugeben.
Die ausgegebenen Daten werden an der Steuerung oder der Testervorrichtung
empfangen, und die Zeitversätze
der Daten überall
in der Mehrzahl von Speicherkomponenten werden bestimmt. Basierend
auf den gemessenen Zeitversätzen
berechnet die Steuerung oder Testervorrichtung Werte für Zeitverschiebungen,
die in eine oder mehrere der Komponenten programmiert werden müssen, um
die erwünschte
Zeitgebung einer Datenausgabe aus den Komponenten zu erzielen.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm, das ein herkömmliches
Mehrkomponentenmodul zeigt.
-
2 ein
Zeitdiagramm, das eine Operation des in 1 gezeigten
herkömmlichen
Mehrkomponentenmoduls zeigt.
-
3 ein
Zeitdiagramm, das eine Operation einer herkömmlichen DLL-Schaltung in Komponenten
des Mehrkomponentenmoduls des Stands der Technik darstellt.
-
4 ein
Blockdiagramm, das ein Mehrkomponentenmodul gemäß einem Ausführungsbeispiel der
Erfindung zeigt.
-
5 ein
Flussdiagramm, das ein Verfahren zum Konfigurieren des Mehrkomponentenmoduls gemäß einem
Ausführungsbeispiel
der Erfindung zeigt.
-
6 ein
Blockdiagramm einer DLL-Schaltung und einer programmierbaren Schaltung
zum Einstellen der Zeitverschiebung der DLL-Schaltung gemäß einem
Ausführungsbeispiel
der Erfindung.
-
7 ein
Zeitdiagramm, das eine Operation des Mehrkomponentenmoduls und ein
Verfahren gemäß einem
Ausführungsbeispiel
der Erfindung veranschaulicht.
-
8 ein
Zeitdiagramm, das einen Abgleich der Ausgabedaten aus den individuellen
Komponenten gemäß einem
Ausführungsbeispiel
der Erfindung zeigt.
-
Gemäß einem
Ausführungsbeispiel
betrifft die vorliegende Erfindung ein Verfahren zum Steuern der
Zeitgebung einer Datenausgabe aus einer Mehrzahl von Komponenten
eines Mehrkomponentenmoduls. Jede Komponente ist so programmiert,
um ein Ausgeben ihrer Daten um einen entsprechenden Zeitbetrag zu
verzögern.
Bei einer Anwendung sind die Komponenten durch eine außerhalb
des Mehrkomponentenmoduls gelegene Vorrichtung, wie beispielsweise
eine externe Steuerung oder Testervorrichtung, programmiert. Der
Verzögerungsbetrag,
der in jede Komponente programmiert ist, kann derart ausgewählt sein,
dass alle der Komponenten Daten ansprechend auf einen Befehl oder
ein Steuersignal im Wesentlichen gleichzeitig ausgeben. Der Verzögerungsbetrag,
der in die entsprechenden Komponenten programmiert ist, ist so eingestellt,
dass er die Tatsache ausgleicht, dass die nachgelagerten Komponenten
auf dem Modul den Befehl oder das Steuersignal von einer Steuerung
später
empfangen und somit später
auf denselben oder dasselbe reagieren. Beispielsweise können die
am weitesten nachgelagerten Komponenten mit null Verzögerung programmiert
sein, wohingegen der Verzögerungsbetrag,
der in die Komponenten programmiert ist, die sich fortschreitend
näher zu
der Steuerung hin bewegen, mit fortschreitend größeren Verzögerungsbeträgen programmiert sind, so dass
alle der Komponenten Daten im Wesentlichen gleichzeitig ausgeben.
-
Unter
Verwendung dieser Techniken kann die Steuerung, die die Komponenten
auf dem Modul steuert, vereinfacht sein, da sie nicht länger entworfen
sein muss, um Ausgabedaten von den Komponenten zu verschiedenen
Zeitpunkten zu erwarten. Ferner kann auch die Komplexität von Testervorrichtungen,
die verwendet werden, um die Komponenten auf dem Modul zu testen,
ebenfalls vereinfacht werden. Testervorrichtungen sind nicht entworfen,
um Daten zu verschiedenen Zeitpunkten zu erwarten. Als Folge muss
eine Testervorrichtung entworfen sein, Strobe-Signale zu verwenden,
um zu identifizieren, wo sie nach Daten suchen muss. Es gibt eine
begrenzte Anzahl von Strobe-Signal-Ressourcen auf einer Testvorrichtung.
Durch Berücksichtigen
einer externen Programmierung der Zeitverschiebung jeder Komponente
kann die Testervorrichtung jede Komponente auf dem Modul testen,
ohne zusätzliche Strobe-Signal-Ressourcen
einsetzen zu müssen.
-
Zunächst Bezug
nehmend auf 1 ist ein Mehrkomponentenmodul
des Stands der Technik bei Bezugszeichen 10 gezeigt. Eine
Mehrzahl von Komponenten 20(0) bis 20(x) ist an
die Schaltungsplatine 12 des Moduls angebracht. Bei einem
Beispiel ist das Modul 10 ein DDR3-Speichermodul (oder
ein Speichermodul einer späteren
Generation) und die Komponenten sind identische Halbleiter-Integrierte-Schaltung-Speichervorrichtungen
(IC-Speichervorrichtungen; IC = integrated circuit). Im Allgemeinen
können
die Komponenten 20(0) bis 20(x) Vorrichtungen ähnlicher
Funktion sein, aber es kann Anwendungen geben, bei denen die Komponenten nicht
alle identische Vorrichtungen ähnlicher
Funktion sind. Das Modul 10 weist eine Steckerleiste 24 auf,
die das Modul 10 mit einer Schaltungsplatine 30 verbindet.
Eine Steuerung 40 ist auf der Schaltungsplatine 30 bereitgestellt
oder mit derselben verbunden. Die Steuerung 40 liefert
Befehle oder Steuersignale an die Komponenten 20(0) bis 20(x) in
einer „Fly-By"-Konfiguration, wie
es in der Figur gezeigt ist. Das heißt, auf dem Modul 10 befindet
sich ein Steuerbus 28, der an einem ersten Ende 28A,
das zu der Steckerleiste 24 benachbart ist, mit einem Bus 42 auf der
Hauptschaltungsplatine 30 eine Verbindung herstellt und
Befehle von demselben empfängt.
Der Bus 28 stellt in einer sequentiellen Art und Weise
eine Verbindung mit jeder der Komponenten 20(0) und 20(x) zwischen
dem ersten Ende 28A und einem zweiten Ende 28B,
das mit einer Abschlussschaltung 14 verbunden ist, her.
Folglich empfangen die Komponenten 20(0), 20(1), 20(2),
die sich näher
an dem ersten Ende 28A befinden, die Befehle von der Steuerung 40 zeitlich
früher
als die Komponenten 20(3), 20(4), ..., 20(x),
die sich weiter nachgelagert befinden. Jedoch geben die Komponenten
Daten auf jeweils fest zugeordneten Eingabe/Ausgabe-Bussen 22(0) bis 22(x) an
die Steckerleiste 124 aus. Die Anzahl von Komponenten auf
dem Modul 10 kann variieren, daher gibt eine Verwendung
der Bezeichnung „x" an, dass eine beliebige
Anzahl von Komponenten auf dem Modul 10 eingesetzt werden
kann.
-
Bezug
nehmend auf 2 ist die Zeitgebung einer Eingabe
eines Befehls und einer Ausgabe von Daten ansprechend auf den Befehl
für jede
Komponente 20(0) bis 20(x) in 2 gezeigt.
Insbesondere empfängt
die Komponente 20(0) den Befehl als erste und reagiert
folglich als erste darauf, um Daten auszugeben. Die Komponenten 20(1) bis 20(x) sprechen fortschreitend
zeitlich später
auf den Befehl an und geben somit fortschreitend zeitlich später ansprechend
auf den Befehl Daten aus. Die Steuerung 40 sieht Ausgabedaten
aus den Komponenten zu fortschreitend späteren Zeitpunkten.
-
3 veranschaulicht
ein Zeitdiagramm, das eine Operation einer DLL-Schaltung darstellt,
die in verschiedenen IC-Komponenten,
wie beispielsweise Speichervorrichtungen, üblich ist. Die DLL-Schaltung
empfängt
ein extern zugeführtes
Taktsignal als eine Eingabe und ist in der Regel entworfen, um eine DQ-
und DQS-Datenausgabe mit dem externen Taktsignal abzugleichen, wobei
tDQSCK der Versatz zwischen dem Takt und den DQ- und DQS-Datenausgaben
ist. In der Regel ist die DLL-Schaltung entworfen, um tDQSCK (auf
Null) zu minimieren. Gemäß einem Aspekt
der vorliegenden Erfindung ist die Zeitverschiebung oder die Verzögerung tDQSCK
der DLL-Schaltung in jeder Komponente jedoch auf einen Wert oder
einen Betrag programmiert, der bestimmt ist, eine erwünschte Beziehung
bezüglich
der Datenausgabe durch alle der Komponenten zu erzielen.
-
4 veranschaulicht
ein Mehrkomponentenmodul gemäß einem
Ausführungsbeispiel
der Erfindung. Das Modul ist bei Bezugszeichen 100 gezeigt
und weist eine Mehrzahl von Komponenten 120(0) bis 120(x) auf,
die an eine Schaltungsplatine 112 angebracht sind. Das
Modul 100 weist eine Steckerleiste 124 auf, die
das Modul 100 mit einer Hauptschaltungsplatine 120 verbindet.
Ein Steuer- oder Befehlsbus 128 ist bereitgestellt, der
eine Verbindung mit den Komponenten 120(0) bis 120(x) in einer „Fly-By"-Konfiguration herstellt.
Der Bus 128 weist ein erstes Ende 128A an der
Steckerleiste 124 und ein zweites Ende auf, das eine Verbindung
mit einer Abschlussschaltung 114 herstellt. Entlang der Länge des
Busses 128 zwischen seinem ersten und zweiten Ende befindet
sich eine Verbindung zu jeder Komponente 120(0) bis 120(x) in
einer „Fly-By"-Konfiguration. Eine
Steuerung 140, die sich auf der Hauptschaltungsplatine 130 befindet
oder mit derselben verbunden ist, steuert die Komponenten auf dem Modul 100.
Alternativ kann ein Bezugszeichen 140 einer Testervorrichtung
entsprechen, die Testbefehle an das Modul 100 liefert und
Ansprechausgabedaten analysiert, um die Operation der Komponenten 120(0) bis 120(x) auf
dem Modul zu testen. Zur Vereinfachung wird bei der nachfolgenden
Beschreibung der Begriff Steuerung verwendet, es sei jedoch darauf
hingewiesen, dass die Methodologie, die hierin beschrieben ist,
gleichermaßen
anwendbar ist, wenn eine Testervorrichtung verwendet wird, wie es
hierin nachfolgend beschrieben ist. Die Steuerung 140 sendet
mittels eines Busses 142 auf der Hauptschaltungsplatine 130,
der über
die Steckerleiste 124 eine Verbindung mit dem Steuerbus 128 auf
dem Modul 100 herstellt, Befehle an das Modul 100.
Jede der Komponenten 120(0) bis 120(x) gibt jeweils
Daten auf einem fest zugeordneten Bus der Eingabe/Ausgabe-Busse 122(0) bis 122(x) an
die Steckerleiste 124 aus.
-
Die
Steuerung 140 konfiguriert die Speicherkomponenten, um
den Abgleich der Datenausgabe aus den Speicherkomponenten zu steuern.
Eine Anwendung für
diese Technik, wie sie im Vorhergehenden angedeutet ist, ist es,
die Komponenten 120(0) bis 120(x) so zu programmieren,
dass sie ansprechend auf einen Befehl von der Steuerung 140 Daten im
Wesentlichen gleichzeitig ausgeben. Es sei jedoch darauf hingewiesen,
dass es auch andere Verwendungen dieser Techniken geben kann, bei
denen die Zeitgebung der Komponenten 120(0) bis 120(x) so
programmiert ist, dass sie Daten in irgendeiner anderen zeitlichen
Beziehung, die nicht notwendigerweise gleichzeitig ist, ausgibt.
Die Steuerung 140 programmiert eine Schaltung, wie beispielsweise eine
DLL-Schaltung, in
jeder der Komponenten 120(0) bis 120(x), um beabsichtigt
eine Zeitverschiebung in die Komponenten einzubringen, um die erwünschte Ausgabezeitgebung
zu erzielen.
-
Bezug
nehmend auf 5 und mit fortgesetztem Bezug
auf 4 ist der Prozess eines Programmierens der Komponenten 120(0) bis 120(x) wie
folgt. Bei 200 sendet die Steuerung 140 einen Befehl
entlang des Steuerbusses 128, der die Komponenten veranlasst,
Daten an ihren fest zugeordneten Eingabe/Ausgabe-Bussen an die Steckerleiste 124 auszugeben.
Beispielsweise kann der Befehl in dem Fall von Speicherkomponenten
auf dem Modul 100 ein Lesen-Befehl sein. Der Befehl wird
durch jede der Komponenten 120(0) bis 120(x) empfangen, jedoch
empfangen die Komponenten näher
an der Steuerung oder Testervorrichtung 140 den Befehl
früher
(und reagieren demzufolge früher
auf denselben) als die von der Steuerung oder Testervorrichtung 140 weiter
entfernten Komponenten. Die Steuerung 140 empfängt die
Ausgabedaten aus jeder der Komponenten 120(0) bis 120(x) über ihre
fest zugeordneten Eingabe/Ausgabe-Busse 122(0) bis 122(x).
-
Als
nächstes
misst bei 210 die Steuerung 140 die Zeitversätze der über die
Steckerleiste 124 von den Komponenten 120(0) bis 120(x) empfangenen
Ausgabedaten. Diese Zeitversätze
zeigen den Verzögerungsbetrag
an, der durch die Komponenten bezüglich einer Ankunft eines Befehls
von der Steuerung 140 erfahren wird. Unter Verwendung der
gemessenen Zeitversätze
berechnet die Steuerung 140 bei 220 jeweils Zeitverschiebungswerte
ts0, ts1, ..., tsx, für
die Komponenten 120(0) bis 120(x), um den Zeitversatz
von Ausgabedaten aus den Komponenten zu steuern. Bei einem Ausführungsbeispiel
berechnet die Steuerung 140 die Zeitverschiebungswerte
ts0, ts1, ..., tsx, um zu bewirken, dass die Komponenten Daten
im Wesentlichen gleichzeitig ansprechend auf einen Befehl oder Befehle
von der Steuerung 140 ausgeben. Anschließend sendet
die Steuerung 140 bei 230 Befehle an die Komponenten 120(0) bis 120(x),
die die Zeitverschiebungswerte in die jeweiligen Komponenten programmieren.
Daraufhin können
normale Moduloperationen oder Testmodi unter Verwendung der programmierten
Verzögerungswerte
in den Komponenten 120(0) bis 120(x) fortfahren,
wie es bei 230 gezeigt ist. Jedes Mal, wenn das Speichermodul eingeschaltet
wird, oder an dem Beginn eines Funktionstestmodus unter Befehlen
von einer Testervorrichtung, können
die Zeitverschiebungsinformationen gemessen werden, und die Zeitverschiebung
kann durch die Steuerung programmiert werden. Bei einem Ausführungsbeispiel sind
die programmierten Zeitverschiebungswerte ausgewählt, um für ausgewählte Komponenten beabsichtigt
eine Verschiebung einzubringen, so dass alle der Komponenten im
Wesentlichen gleichzeitig auf einen Befehl reagieren und Daten ausgeben.
-
Mit
Bezug auf 6 gibt es bei jeder Komponente 120(0) bis 120(x) eine
Taktverarbeitungsschaltung, eine DLL-Schaltung 300, die die Zeitgebung von
Operationen der Komponente steuern. Die DLL-Schaltung 300 ist
eine in Halbleiter-IC-Speichervorrichtungen häufig verwendete Komponente.
Die DLL-Schaltung 300 empfängt ein extern, wie beispielsweise
von der Modulsteuerung, zugeführtes Taktsignal
als eine Eingabe. Normalerweise wird die DLL-Schaltung 300 betrieben,
um eine Zeitverschiebung zwischen einer Flanke des Taktsignals und
Dateneingabe-/Ausgabeübergängen zu
minimieren. Gemäß der vorliegenden
Erfindung ist die Verschiebung jedoch durch die Steuerung programmiert,
um einen erwünschten
Zeitversatz zu erzielen. Die DLL-Schaltung 300 ist
lediglich ein Beispiel einer Taktverarbeitungsschaltung, die ein
extern, wie beispielsweise von einer Steuerung 140 (4),
zugeführtes
Taktsignal als eine Eingabe empfängt
und ein Ausgabesignal erzeugt, das verwendet wird, um eine Zeitgebung
von Operationen und eine Datenausgabe in einer Komponente zu steuern.
Andere Typen von Zeitgebungsschaltungen können in den Komponenten bestehen
und wie hierin beschrieben programmiert sein.
-
DLL-Schaltungen
sind in dem Fachbereich weithin bekannt und aus diesem Grund hierin
lediglich kurz beschrieben. Die DLL-Schaltung 300 weist einen
Phasendetektor 310, ein Filter 320, eine Steuerung 330,
ein Grobverzögerungselement 340,
einen Mischer 350 und eine Rückkopplungsverzögerungsleitung 360 auf.
Der Phasendetektor 210 misst einen Phasen versatz zwischen
dem Eingabetaktsignal und einem Rückkopplungstaktsignal, das
durch die Rückkopplungsverzögerungsleitung 360 ausgegeben wird.
Das Filter 320 filtert die Ausgabe des Phasendetektors 310.
Die Steuerung 330 gibt ein Grobsteuersignal (Grob-CTRL-Signal)
und ein Fein-CTRL-Signal
an das Grobverzögerungselement 340 bzw.
den Mischer 330 aus. Die Eingabe in die Rückkopplungsverzögerungsleitung 360 bildet
im Wesentlichen die Ausgabe der DLL-Schaltung, DLLout. Die Steuerung 330 erzeugt
in der Regel die Grob-CTRL- und Fein-CTRL-Signale, um eine Zeitverschiebung
zwischen der Eingabetaktsignalflanke und Ausgaben (oder Eingaben)
der Komponente zu minimieren.
-
Eine
Technik zum einstellbaren/programmierbaren Verändern der Zeitverschiebung
zwischen dem Eingabetaktsignal DLL und dem Ausgabesignal DLLout
ist es, eine Mehrzahl von Verzögerungselementen 370(1) bis 370(N) bereitzustellen,
die in der Lage sind, eine Zeitverzögerung im Bereich von x bis Nx
(Mikrosekunden oder Millisekunden) einzubringen, z. B. Das DLLout-Signal
ist mit dem Eingang jedes der Verzögerungselemente 370(1) bis 370(N) verbunden.
Der Ausgang der DLL-Schaltung 300 und die
Ausgänge
jedes der Verzögerungselemente 370(1) bis 370(N) sind
mit jeweiligen Eingängen
eines Multiplexers 380 verbunden. Der Multiplexer 380 wählt zur
Ausgabe als das eingestellte Zeitgebungssignal DLLout' eine seiner Eingaben
entsprechend einer von Ausgaben der Verzögerungselemente 370(1) bis 370(N) oder
das DLLout-Signal selbst (nicht verzögert) aus. Somit gibt der Multiplexer 380 entweder
DLLout, DLLout(t – x),
DLLout(t – 2x),
DLLout(t – 3x),
... DLLout(t – Nx)
aus. Die Steuerinformationen, die bestimmen, welche der Eingaben
der Multiplexer 380 zur Ausgabe auswählt, können in einem Register, wie
beispielsweise einem Modusregister 390, gespeichert sein.
Wenn die Steuerung 140 (4) einen
Programmierbefehl an eine Komponente sendet, schreibt der Programmierbefehl
einen Wert in das Modusregister 390, den eine Komponentensteuerung 395 liest
und konfiguriert den Multiplexer 380 dahingehend, welche
Eingabe zur Ausgabe als das Signal DLLout' ausgewählt werden soll. Als Folge
ist der Verzögerungsbetrag
oder die Zeitverschiebung, die der Ausgabe der DLL-Schaltung 300 auferlegt
wird, durch einen (bezüglich
des Moduls 100) externen Programmierbefehl programmierbar.
-
7 veranschaulicht
die Effekte eines Programmierens der DLL-Schaltungen in einer Mehrzahl von
Komponenten gemäß einem
Ausführungsbeispiel.
Bei diesem Ausführungsbeispiel
sind die Zeitverschiebungswerte, die in die jeweiligen Komponenten 120(0) bis 120(x) (4)
programmiert werden, derart beschaffen, dass die Komponenten näher an der
Steuerung, die Befehle zeitlich früher empfangen, mit einer Zeitverschiebung
oder einem Verzögerungsbetrag
programmiert sind, die oder der größer als die in Komponenten
weiter weg von der Steuerung programmierte Zeitverschiebung ist.
Beispielsweise ist die Zeitverschiebung ts0 am
größten für die nahest
gelegene Komponente 120(0), die in die Komponente 120(1) programmierte
Zeitverschiebung ts1 ist geringfügig geringer
als ts0, die in die Komponente 120(2) programmierte
Zeitverschiebung ts2 ist geringfügig geringer
als ts1, usw. Die in die letzte Komponente 120(x),
die am weitesten von der Steuerung entfernt ist, programmierte Zeitverschiebung
tsx kann ein sehr kleiner Betrag oder beispielsweise
Null sein. Als eine Folge dieser Programmierungskonfiguration der
Komponenten sind die DQ- und DQS-Ausgabesignale
für die
Komponente 120(0) um einen Zeitintervall gleich ts0 bezüglich
der ansteigenden Flanke des Taktsignals verzögert, die DQ- und DQS-Ausgabesignale
ts1 für
die Komponente 120(1) sind um einen Zeitintervall gleich
ts1 bezüglich
der ansteigenden Flanke des Taktsignals verzögert, usw.
-
Es
wird nun Bezug auf 8 genommen, die die relative
Zeitgebung der Ausgaben aus der Mehrzahl von Komponenten 120(0) bis 120(x),
die wie in dem Ausführungsbeispiel
der 7 dargestellt programmiert sind, zeigt. Auf der
linken Seite der 8 ist die Ankunftzeitgebung
des Befehls, der in jede der Komponenten in der Fly-By-Konfiguration
der 4 eingegeben wird, gezeigt, wobei die inhärente Signalverzögerung des
Befehls zwischen den Komponenten so veranschaulicht ist, dass sie
für von
der Modulsteuerung weiter entfernte Komponenten fortschreitend größer wird.
Als eine Folge der in die Komponenten programmierten Zeitverschiebungswerte
sind die Ausgaben der Komponenten 120(0) bis 120(x) jedoch
zeitabgeglichen, wie es auf der rechten Seite der 8 gezeigt
ist.
-
Da
die Datenausgabe aus den Komponenten gleichzeitig stattfindet, kann
der Entwurf der Modulsteuerung und einer Testervorrichtung für das Modul
vereinfacht werden. Die Modulsteuerung kann davon ausgehen, dass
die Ausgabedaten aus den Komponenten im Wesentlichen gleichzeitig
(bei der Steckerleiste) ankommen, anstatt die Daten von den Komponenten
zu verschiedenen Zeitpunkten einsammeln zu müssen. Wiederum können die
Zeitversatzmessungen und die Zeitverschiebungsprogrammierung durch
eine Modulsteuerung oder eine Testervorrichtung, die verwendet wird,
um eine Operation des Moduls zu testen, durchgeführt werden. Der Vorteil für eine Testervorrichtung
liegt darin, dass lediglich eine einzige Strobe-Signal-Zeitgebungsressource
zugeordnet werden muss, um die Ausgabe (und Zeitgebung) der Komponentenausgänge zu analysieren.
-
Die
vorliegende Erfindung ist nicht auf eine beliebige hierin offenbarte
Implementierung beschränkt.
Beispielsweise kann es andere Techniken als eine extern programmierbare
DLL-Schaltung zum Steuern der Zeitverschiebung in den Komponenten geben.
Während
das Vorangehende ein Ausführungsbeispiel
präsentiert,
bei dem die in die Komponenten auf einem Modul programmierten Zeitverschiebungsdaten
eine synchronisierte (zeitabgeglichene) Datenausgabe aus den Komponenten
erzielen, kann es darüber
hinaus auch andere Verwendungen für die hierin beschriebenen
Techniken geben, um die Ausgabezeitgebung der Komponenten derart
beabsichtigt zu steuern, dass sie eine vorbestimmte Zeitbeziehung aufweisen,
jedoch nicht notwendigerweise miteinander Zeit abgeglichen sind.
-
Auch
darüber
hinaus sind die hierin beschriebenen Techniken nicht auf ein Speichermodul
oder eine Fly-By-Konfiguration von Komponenten auf einem Mehrkomponentenmodul
beschränkt.
Sie sind auf einen beliebigen Typ von Mehrkomponentenmodul anwendbar,
der mehrere Komponenten desselben oder unterschiedlicher Typen aufweist,
wobei es erwünscht
ist, die Zeitversätze
bezüglich
eines Taktsignals von Ausgaben aus den Komponenten zu steuern.
-
Das
hierin beschriebene System und die hierin beschriebenen Verfahren
können
in anderen spezifischen Formen ausgeführt sein, ohne von der Wesensart
oder essenziellen Charakteristika derselben abzuweichen. Die vorangehenden
Ausführungsbeispiele
sind daher in allen Gesichtspunkten als veranschaulichend zu betrachten
und sollen keine Beschränkung
darstellen.