-
HINTERGRUND
-
Die Erfindung betrifft im allgemeinen das Regulieren einer Taktung zwischen einem Abtastsignal und einem Datensignal.
-
Zum Zwecke des Kommunizierens von Daten über einen Bus zwischen einer Quelle (welche die Daten liefert) und einem Empfänger (welcher die Daten empfängt) in einem Busbetrieb liefert die Quelle typischerweise sowohl Datenbitsignale, die die Bits der Daten angeben, und ein Abtastsignal an den Bus. Das Abtastsignal hat deutliche Taktkanten (zum Beispiel ansteigende Kanten), die von einem Empfänger verwendet werden, um den Einfang der Daten aus den Datenbitsignalen zu synchronisieren; und jedes Datenbitsignal hat ”Datenaugen”, in denen das Datenbitsignal ein Bit der Daten angibt. Somit antwortet während des Busbetriebes der Empfänger auf jede ansteigende Kante des Abtastsignals, um in idealer Weise die Datenbitsignale innerhalb der Datenaugen abzunehmen, um einen Satz aus Bits von dem Bus einzufangen.
-
Die
US 6 401 213 B1 offenbart ein System mit einem Bus, der eine Datenbitleitung und eine Taktleitung aufweist, einem dynamischen Speicher mit wahlfreiem Zugriff, der mit dem Bus gekoppelt ist, einem Prozessor, der mit dem Bus gekoppelt ist, einem Agenten, der mit dem Bus gekoppelt ist, und einer Schaltung, um basierend auf einer Kommunikation zwischen dem Prozessor und dem Agenten in einem Trainingsmodus einen Takt zwischen einem Abtastsignal und einem Signal, das sich über die Datenbitleitung fortpflanzt, zu regulieren.
-
Zudem ergibt sich daraus ein Verfahren, das als Antwort auf einen Trainingsmodus Kommunizieren zwischen einer Vorrichtung und einem Prozessor eines Computersystems über eine Datenbitleitung eines Busses und basierend auf der Kommunikation Regulieren eines Taktes zwischen einem Abtastsignal und einem Signal, das sich über die Datenbitleitung fortpflanzt, aufweist.
-
Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, für eine bessere Regulierung der Taktung zwischen einem Abtastsignal und einem Datensignal zu sorgen.
-
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren nach Anspruch 1, ein System nach Anspruch 10, eine Bus-Schnittstelle nach Anspruch 14 sowie einen Gegenstand nach Anspruch 16 gelöst.
-
Die jeweiligen Unteransprüche betreffen vorteilhafte Weiterentwicklungen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 und 10 sind schematische Schaubilder von Computersystemen gemäß unterschiedlicher Ausführungsformen der Erfindung.
-
2 ist eine Veranschaulichung eines Bereichs von Verzögerungen, die die Eingabe/Ausgabeschaltung der 1 während eines anfänglichen Verbindungstraining-Modus gemäß einer Ausführungsform der Erfindung auf ein Abtastsignal bringt.
-
3 ist ein Ablaufdiagramm, das eine Technik veranschaulicht, um eine Taktung zwischen einem Abtastsignal und einem Datenbitsignal in einem anfänglichen Verbindungstraining-Modus gemäß einer Ausführungsform der Erfindung einzurichten.
-
4 und 5 sind Ablaufdiagramme, die Techniken veranschaulichen, um die Taktung zwischen dem Abtastsignal und dem Datenbitsignal in einem aktiven Verbindungstraining-Modus gemäß Ausführungsformen der Erfindung zu regulieren.
-
6 ist eine Tabelle, die beispielhafte Zustände für einen Testvektor veranschaulicht, der bei dem Verbindungstraining des Abtastsignals gemäß einer Ausführungsform der Erfindung verwendet wird.
-
7 ist ein schematisches Schaubild, das die Eingabe/Ausgabeschaltung des Computersystems der 1 gemäß einer Ausführungsform der Erfindung veranschaulicht.
-
8 ist ein schematisches Schaubild, das die Taktverzögerungsschaltung der 7 gemäß einer Ausführungsform der Erfindung veranschaulicht.
-
9 ist ein schematisches Schaubild der Verzögerungseinstellschaltung der 8 gemäß einer Ausführungsform der Erfindung.
-
GENAUE BESCHREIBUNG
-
Mit Bezug auf 1 benutzt eine Ausführungsform 10 eines Computersystems gemäß der Erfindung Verbindungstraining, um Taktbeziehungen zwischen einem Abtastsignal (strobe signal) und Datenbitsignalen zu bestimmen und einzustellen, die von einem Frontside-Bus (FSB) 16 empfangen werden. Genauer stellt der FSB 16 eine Kommunikationsverbindung zwischen einem Prozessor 12 (einer zentralen Verarbeitungseinheit (CPU – Central Processing Unit) als ein Beispiel) und weiteren Busagenten, die an den FSB 16 gekoppelt sind, so wie zum Beispiel einer North Bridge oder einem Speicherhub 14, zur Verfügung. Der FSB 16 umfaßt Datenbitleitungen 17, welche die Datenbitsignale kommunizieren, und ebenso eine Abtastsignalleitung 19, die das Abtastsignal (in 1 ”BCLK” genannt) kommuniziert.
-
Gemäß einigen Ausführungsformen der Erfindung umfassen die Agenten, die mit dem FSB 16 gekoppelt sind, so wie der Prozessor 12 und der Speicherhub 14, jeder eine Eingangs/Ausgangs(I/O – Input/Output)-Schaltung 20. Zum Beispiel umfaßt der Prozessor 12 eine I/O-Schaltung 20a und der Speicherhub 14 umfaßt eine I/O-Schaltung 20b, die jede eine übliche Gestaltung haben, welche mit der Bezugsziffer ”20” bezeichnet ist.
-
Die I/O-Schaltung 20 stellt Taktbeziehungen zwischen den Datenbitsignalen und dem Abtastsignal ein. Genauer, gemäß einigen Ausführungsformen der Erfindung, erzeugt die I/O-Schaltung 20 intern verzögerte Abtastsignale, wobei jedes dieser einem unterschiedlichen der Datensignale zugewiesen ist und verwendet wird, das Einfangen von Daten aus dem zugewiesenen Datenbitsignal einzuleiten. Die I/O-Schaltung 20 benutzt Verbindungstraining, um für jedes Datenbitsignal eine Abtastverzögerung zu bestimmen, die dem Abtastsignal aufgegeben wird, um das entsprechende verzögerte Abtastsignal zu erzeugen. Somit, wenn zum Beispiel der FSB 16 vierundsechzig Datenbitleitungen 17 umfaßt, dann bewertet die I/O-Schaltung 20 unabhängig den Takt zwischen dem Abtastsignal und jedem der vierundsechzig Datenbitsignale, die über die Leitungen 17 geliefert werden, und als Antwort auf diese Bewertung richtet die I/O-Schaltung 20 vierundsechzig Abtastverzögerungen ein.
-
Gemäß einigen Ausführungsformen der Erfindung kann die I/O-Schaltung 20 in einen von zwei Verbindungstraining-Modi gebracht werden: einen anfänglichen Verbindungstraining-Modus, in dem die I/O-Schaltung 20 anfangs die Abtastverzögerungen bestimmt; und einen zweiten aktiven Verbindungstraining-Modus, in dem die I/O-Schaltung 20 kontinuierlich die Abtastverzögerungen bewertet und einstellt, zum Zwecke des Anpassens an Änderungen, so wie zum Beispiel Spannungs- und Temperaturänderungen, welche die Taktbeziehungen zwischen dem Abtastsignal und den Datenbitsignalen beeinflussen.
-
Neben den weiteren Merkmalen des Computersystems 10 umfaßt bei manchen Ausführungsformen der Erfindung das Computersystem 10 solche Merkmale wie einen Speicherbus 60, einen Peripheriekomponentenanschluß(PCI – Peripheral Component Interconnect)-Bus 64 und einen Bus 30 für einen Port für beschleunigte Grafik (AGP – Accelerated Graphics Port), die alle mit dem Speicherhub 14 gekoppelt sind. Die Specifikation des PCI ist bei The PCI Special Interest Group, Portland, Oregon 97214, verfügbar. Der AGP ist in Einzelheiten in der Accelerated Graphics Port Interface Specification, Auflage 1.0, veröffentlicht am 31. Juli 1996 von der Intel Corporation, Santa Clara, Californien, beschrieben.
-
Der Speicherbus 60 koppelt einen Systemspeicher 62 (zum Beispiel einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM – Dynamic Random Access Memory), wie in 1 veranschaulicht) mit dem Speicherhub 14; und der PCI-Bus 64 kann zum Beispiel eine Netzwerkschnittstellenkarte (NIC – -Network Interface Card) 28 an den PCI-Bus 64 koppeln. Weiterhin kann eine Anzeige 34 über eine Anzeigesteuerschnittstelle 32 an den AGP-Bus 30 gekoppelt sein.
-
Bei manchen Ausführungsformen der Erfindung kann das Computersystem 10 auch eine South Bridge oder einen I/O-Hub 40 umfassen, der mit dem Speicherhub 14 über eine Hubverbindung 36 kommuniziert. Der I/O-Hub 40 kann zum Beispiel eine Schnittstelle für eine oder mehrere Festplattenlaufwerke bilden, so wie ein Festplattenlaufwerk 52, und ebenso eine Schnittstelle für ein CD-ROM-Laufwerk 50 zur Verfügung stellen. Weiterhin kann bei manchen Ausführungsformen der Erfindung der I/O-Hub 40 an einen Erweiterungsbus 42 gekoppelt sein. Ein I/O-Controller 44 kann zum Zwecke des Ankoppelns einer Tastatur 46 und einer Maus 48 an das Computersystem 10 an den Erweiterungsbus 42 gekoppelt sein.
-
Es wird angemerkt, daß das Computersystem 10 für ein Beispiel einer aus vielen möglichen Ausführungsformen der Erfindung veranschaulicht ist; und somit sind andere Ausführungsformen möglich und liegen innerhalb des Umfangs der angehängten Ansprüche.
-
Mit Bezug auf 2 wendet gemäß einiger Ausführungsformen der Erfindung für jede Datenbitleitung 17 die I/O-Schaltung 20 eine Abtastverzögerung an, die in einen Bereich 90 möglicher Abtastverzögerungen fällt. Somit kann bei manchen Ausführungsformen der Erfindung am Beginn des Bereiches 90 die Verzögerung Null sein, obwohl andere beginnende Verzögerungen des Bereichs 90 bei weiteren Ausführungsformen der Erfindung verwendet werden können. Es wird bei den Ausführungsformen hiernach allgemein angenommen, daß der Bereich 90 drei verschiedene Bereiche für den Dateneinfang definiert: einen Bereich 100 (ein ”Ausfallbereich” genannt), der sich am Anfang des Bereiches 90 befindet, der ein Bereich ist, in dem die Abtastverzögerung nicht bewirkt, daß sich das verzögerte Abtastsignal innerhalb des Auges des zugewiesenen Datenbitsignals ausrichtet (und somit einen verfehlten Dateneinfang hervorruft); einen Zwischenbereich des Bereiches 90 (ein ”Durchführungsbereich 102” genannt), der ein Bereich ist, in dem die Abtastverzögerung bewirkt, daß das verzögerte Abtastsignal sich innerhalb des Datenauges ausrichtet (und somit einen erfolgreichen Dateneinfang hervorruft); und einen Bereich (ein ”Ausfallbereich 104” genannt), der sich an dem Ende des Bereichs 90 befindet, welcher ein weiterer Bereich ist, in dem die Abtastverzögerung nicht bewirkt, daß sich das verzögerte Abtastsignal mit dem Datenauge des Datenbitsignals ausrichtet.
-
Idealerweise fällt bei manchen Ausführungsformen der Erfindung die Abtastverzögerung nahe (oder an) den Mittelpunkt des Durchführungsbereiches 102. Zum Zwecke des Lokalisierens des Mittelpunktes des Durchführungsbereichs 102 finden bei manchen Ausführungsformen der Erfindung die Techniken, die hierin beschrieben sind, die linke Grenze 101 oder die geringste Verzögerung des Durchführungsbereiches 102 und die rechte Grenze 103 oder den größten Verzögerungswert des Durchführungsbereichs 102. Somit bestimmt die I/O-Schaltung 20 den Mittelpunkt des Durchführungsbereiches 102 durch Bestimmen des Mittelwertes der linken 101 und der rechten 103 Grenze.
-
Bei manchen Ausführungsformen der Erfindung kann der Bereich 90, der in 2 veranschaulicht ist, einem Bereich einzelner Verzögerungswerte entsprechen. Als ein genaueres Beispiel werden bei den Ausführungsformen der Erfindung, die hiernach beschrieben sind, sechzehn mögliche Werte für die Abtastverzögerung und somit für den Bereich 90 angenommen. Abhängig von der bestimmten Ausführungsform der Erfindung können die Verzögerungen zeitlich regelmäßig beabstandet sein, obwohl bei anderen Ausführungsformen der Erfindung andere Beziehungen zwischen den Verzögerungen vorliegen können. Ungeachtet der Beziehung zwischen den Verzögerungen des Bereichs wachsen die Verzögerungen von einer minimalen Verzögerung zu einer maximalen Verzögerung an. Das Ziel des hierin beschriebenen Verbindungstrainings besteht darin, die Mitte des Durchführungsbereichs 102 oder den Mittelpunkt der Verzögerungen zu definieren, um die Taktkanten des Datenabtastsignals in den Datenaugen des Datenbitsignals zu zentrieren.
-
Wie oben angesprochen hat gemäß einigen Ausführungsformen der Erfindung die I/O-Schaltung 20 zwei Betriebsmodi für das Verbindungstraining. Der erste Betriebsmodus ist der anfängliche Verbindungstraining-Modus, in dem die I/O-Schaltung 20 für jede Datenbitleitung den Mittelpunkt des Durchführungsbereiches 102 findet. Somit, mit Bezug auf 3, umfaßt gemäß einigen Ausführungsformen der Erfindung eine Technik 120, die von der I/O-Schaltung 20 verwendet wird, das Prüfen (Block 122) aller der Verzögerung über dem Bereich 90 (siehe 2) der Verzögerung zum Zwecke des Erzeugens eines Testvektors. Zum Beispiel, wie es weiter hiernach beschrieben wird, prüft bei manchen Ausführungsformen der Erfindung die I/O-Schaltung 20 jede Verzögerung des Bereichs 90; und ein binärer Wert wird zugewiesen, der das Ergebnis der Prüfung angibt. Um zum Beispiel eine bestimmte Verzögerung des Bereichs zu prüfen, wird ein oder werden mehrere vorbestimmte Datenbitsignale (d. h. ein Testmuster) über die relevante Datenbitleitung 17 des FSB 16 kommuniziert. Wenn die Daten, die eingefangen und von der Bitleitung gelesen werden, gültig sind (d. h. wenn die eingefangenen Daten mit dem Testmuster der Daten übereinstimmen), dann verwendet die I/O-Schaltung einen Merker, so wie ”0”, um die geprüfte Verzögerung als erlaubt zu bezeichnen. Im Gegensatz dazu, wenn die eingefangenen Daten nicht mit dem Testmuster übereinstimmen, dann benutzt die I/O-Schaltung 20 einen anderen Merker, so wie einen Binärwert ”1”, um die Erfolglosigkeit zu bezeichnen. Das Ergebnis dieser Technik ist die Erzeugung eines Testvektors, eines Strangs aus binären ”1” en und ”0” en.
-
Zum Beispiel kann, nach dem Prüfen von sechzehn (als ein Beispiel) Verzögerungswerten eines bestimmten Bereichs 90 die I/O-Schaltung 20 einen Testvektor aus sechzehn Bits erzeugen, so wie den folgenden (als ein Beispiel): ”1111100000111111”. Somit geben die Bitpositionen Null bis Vier verfehlte Verzögerungen oder den Ausfallbereich 100 an; die Bitpositionen Fünf bis Neun geben fünf erfolgreiche Verzögerungen oder den Durchführungsbereich 102 (2) an; und die Bitpositionen Zehn bis Fünfzehn geben den Ausfallbereich 104 an, oder Werte, für die die Verzögerungen nicht erfolgreich sind.
-
Es wird angemerkt, daß, wie weiter hiernach beschrieben wird, ein bestimmter Testvektor ungültig sein kann. Zum Beispiel kann es sein, daß der Testvektor keinen Durchführungsbereich enthält. Wenn gemäß der Technik 120 die I/O-Schaltung 20 feststellt (Diamant 124), daß der Testvektor ungültig ist, dann benutzt die I/O-Schaltung 20 (Block 128) eine Standardverzögerung als die Abtastverzögerung für die zugewiesene Datenbitleitung 17. Wie weiter hiernach beschrieben wird, kann diese Standardverzögerung zum Beispiel eine herstellungsmäßig eingestellte Standardverzögerung sein. Wenn jedoch die I/O-Schaltung 20 feststellt (Diamant 124), daß der Testvektor gültig ist, dann zieht die I/O-Schaltung 20 (Block 130) die Grenzen des Durchführungsbereichs 102 heraus und setzt anschließend (Block 134) die Abtastverzögerung für die zugewiesene Datenbitleitung 17 nahe der Mitte des Durchführungsbereichs 102.
-
Nach dem anfänglichen Einstellen der Abtastverzögerung für jede Datenbitleitung tritt die I/O-Schaltung 20 in den aktiven Verbindungstraining-Modus ein, in dem die I/O-Schaltung 20 die Grenzen des Durchführungsbereichs 102 überprüft (zum Beispiel periodisch überprüft). Mit anderen Worten prüft in dem aktiven Verbindungstraining-Modus die I/O-Schaltung 20 nicht kontinuierlich alle sechzehn möglichen Verzögerungen für die Zwecke des Optimierens der Verzögerung, die dem Abtastsignal aufgegeben wird. Statt dessen führt gemäß einigen Ausführungsformen der Erfindung die I/O-Schaltung 20 eine Technik 150 durch, die in 4 veranschaulicht ist.
-
Gemäß der Technik 150 prüft (Block 152) die I/O-Schaltung 20 die Verzögerungen an den Grenzen des Durchführungsbereichs 102. Somit prüft die I/O-Schaltung 20 unter Verwendung der zuvor gesammelten Verbindungstrainingsdaten die Verzögerungen an der linken 101 und der rechten 103 Grenze. Basierend auf diesen Prüfergebnissen ändert die I/O-Schaltung 20 ausgewählt die Grenzen des Durchführungsbereichs 102, wie im Block 154 veranschaulicht. Anschließend setzt (Block 156) die I/O-Schaltung 20 die Verzögerung, die dem Abtastsignal aufgegeben wird, nahe dem Mittelpunkt des Durchführungsbereichs 102.
-
Als ein genaueres Beispiel, mit Bezug auf 5, kann gemäß einigen Ausführungsformen der Erfindung die I/O-Schaltung 20 eine Technik 180 in dem aktiven Verbindungstraining-Modus verwenden. Gemäß der Technik 180 prüft (Block 182) die I/O-Schaltung 20 die Verzögerung an der linken Grenze 101 des Durchführungsbereichs 102. Wenn die Prüfmusterdaten erfolgreich empfangen worden sind und somit die I/O-Schaltung 20 feststellt (Diamant 184), daß die Verzögerung bestanden hat, dann bewegt die I/O-Schaltung 20 (Block 186) die Grenze 101 nach links. Mit anderen Worten, gemäß einigen Ausführungsformen der Erfindung kann als Antwort auf die Verzögerung, die an der linken Grenze 101 besteht, die I/O-Schaltung 20 die nächstkleinste Verzögerung für die linke Grenze 101 benutzen. Wenn jedoch die Verzögerung an der linken Grenze 101 nicht erfolgreich ist, dann bewegt die I/O-Schaltung 20 die linke Grenze nach rechts entsprechend dem Block 188. Wenn somit die Verzögerungsprüfung nicht erfolgreich ist, benutzt die I/O-Schaltung die nächstgrößere Verzögerung für die linke Grenze 101.
-
Anschließend prüft (Block 190) die I/O-Schaltung 20 die Verzögerung an der rechten Grenze 103. Wenn die Prüfung dieser Verzögerung positiv ist (Diamant 192), dann bewegt die I/O-Schaltung 20 (Block 194) die rechte Grenze 103 nach rechts. Anderenfalls bewegt (Block 196) die I/O-Schaltung 20 die rechte Grenze 103 nach links.
-
6 veranschaulicht eine Tabelle 200, die beispielhafte potentielle Grenzfälle darstellt, in denen der Testvektor dem Ausfall-100, Durchlaß-102 und Ausfall-104-bereich des beispielhaften Bereichs 90 nicht oder wenigstens anscheinend nicht stark ähnelt, der in 2 veranschaulicht ist. Somit können die Testvektoren, die in 6 veranschaulicht sind, während des anfänglichen Verbindungstraining-Modus auftreten, wenn die I/O-Schaltung 20 den Testvektor erzeugt, indem jede Verzögerung des Bereichs 100 geprüft wird. Die Tabelle 200 umfaßt drei Zeilen 202, in denen die Durchführungsbedingungen erfüllt sind, und zwei Zeilen 204, in denen Ausfallbedingungen auftreten und bewirken, daß die I/O-Schaltung 20 die herstellungsmäßig eingestellte Standardverzögerung benutzt.
-
Genauer, bewirkt in der ersten Zeile (bezeichnet von der Oberseite der Tabelle 200 her) der Tabelle 200 ein Testvektor ”1000111111111111”, daß die I/O-Schaltung 20 die linke Grenze 101 an einer Positionszahl Eins des Testvektors erfaßt und die rechte Grenze 103 an einer Positionszahl Vier des Eingabevektors erfaßt. Dieser Testvektor führt zu einem Durchführungszustand. Mit anderen Worten werden die linke und die rechte Grenze benutzt, um die Mittelpunktverzögerung zu bestimmen, die sich zwischen der linken und der rechten Grenze befindet.
-
Die zweite Zeile der Tabelle 200 umfaßt einen Testvektor nur mit Nullen. Für diesen Testvektor wird die linke Grenze an der Bitposition Null erfaßt. Obwohl die I/O-Schaltung 20 die rechte Grenze nicht erfassen kann (d. h. es gibt keine ”01” in dem Testvektor in Zeile zwei der Tabelle 200), bezeichnet die I/O-Schaltung dies weiterhin als eine Durchführungsbedingung und weist die Verzögerung der Positionszahl Acht zu, da alle geprüften Verzögerungen positiv waren.
-
Zeile Nummer 3 der Tabelle 200 veranschaulicht einen Testvektor mit ”0111111111111111”. Für diesen Testvektor erfaßt die I/O-Schaltung 20 die linke Grenze an der Bitposition Null und die rechte Grenze an der Bitposition Eins. Somit ist dies ein Durchführungszustand.
-
Zeile Nummer 4 der Tabelle 200 veranschaulicht einen Testvektor mit ”1111111111111110”. Für diesen Testvektor erfaßt die I/O-Schaltung 20 die linke Grenze an der Bitposition Fünfzehn, kann aber die rechte Grenze nicht erfassen. Jedoch wird dieser Vektor weiter als positiv festgestellt, und eine Abtastverzögerung, die der Bitposition Fünfzehn entspricht, wird verwendet.
-
Die Zeilen 204 der Tabelle 200 veranschaulichen Ausfallbedingungen, bei denen der Testvektor kein Ergebnis erzeugt, das verwendet werden kann, um die Abtastverzögerung zu bestimmen. Bei jedem der Testvektoren, die in den Zeilen 204 veranschaulicht sind, weist die I/O-Schaltung 20 eine herstellungsmäßig festgelegte Standardverzögerung zu. Genauer veranschaulicht die Zeile 5 der Tabelle 200 einen Testvektor mit ”1110010111111111”. Dieser Testvektor verfehlt, da zwei linke Grenzen erfaßt werden: eine erste linke Grenze an der Bitposition Drei und eine zweite linke Grenze an der Position Nummer Sechs. Somit ist der einzige Durchführungsbereich 102, in 2 veranschaulicht, in diesem Testvektor nicht vorhanden.
-
Die Zeile 6 der Tabelle 200 veranschaulicht einen Testvektor mit ”1111111111111111”. Für diesen Testvektor kann die I/O-Schaltung 20 (keine Durchführungsgrenze ist erfaßt worden) weder die linke noch die rechte Grenze erfassen.
-
Mit Bezug auf 7 kann gemäß einigen Ausführungsformen der Erfindung die I/O-Schaltung 20 mehrere Taktverzögerungsschaltungen 400 umfassen (wobei als Beispiele N Taktverzögerungsschaltungen 400 0, 400 1...400 N dargestellt sind), wobei jede von ihnen mit einer bestimmten Dateneingabeleitung verknüpft ist, die ”I/O[]” genannt wird. Als ein genaueres Beispiel ist die Taktverzögerung 400 mit dem Datenbitsignal I/O[0] verknüpft; die Taktverzögerungsschaltung 400 1 ist mit dem Datenbitsignal I/O[1] verknüpft; und die Taktverzögerungsschaltung 400 N ist mit dem Datenbitsignal I/O[N] verknüpft.
-
Für jedes Datenbitsignal I/O[] bewertet jede Taktverzögerungsschaltung 400 die geeignete Verzögerung und bringt sie auf das BCLK-Signal (d. h. das Abtastsignal) von dem FSB 16 (siehe 1) auf, um ein verzögertes BCLK-Signal zu erzeugen, das ”BCLK_ADJ[]” genannt wird. Somit bewertet und bestimmt zum Beispiel die Taktverzögerungsschaltung 400 1 die Verzögerung, die auf das BCLK-Signal aufgegeben wird, um das BCLK_ADJ[1]-Signal zu erzeugen. Das BCLKADJ[1]-Signal wird wiederum verwendet, um Daten aus dem I/O[1]-Datenbitsignal einzufangen.
-
Jede Taktverzögerungsschaltung 400 arbeitet entsprechend dem anfänglichen Verbindungstraining-Modus, in dem die Taktverzögerungsschaltung 400 die linke und die rechte Verzögerungsgrenze bestimmt und die anfängliche Verzögerung einrichtet, die dementsprechend auf das BCLK-Signal aufgegeben wird. Anschließend, in einem aktiven Verbindungstraining-Modus, prüft die Taktverzögerungsschaltung 400 die Grenzen des Durchführungsbereiches zum Zwecke des Optimierens der Verzögerung, die dem BCLK-Signal aufgegeben wird.
-
Mit Bezug auf 8 umfaßt bei manchen Ausführungsformen der Erfindung die Taktverzögerungsschaltung 400 eine Verzögerungsleitung 402, die einen Eingangsanschluß 404 hat, der das BCLK-Signal empfängt. Die Verzögerungsleitung 402 legt eine Abtastverzögerung entsprechend einem digitalen Signal an, das auf den Eingangsleitungen 411 der Verzögerungsleitung 402 empfangen worden ist. Dieses digitale Signal wird wiederum durch eine Verzögerungsanpaßschaltung 410 zur Verfügung gestellt. Die Verzögerungsanpaßschaltung 410 empfängt ein Signal, das ”V1” genannt wird, ein Signal, das angibt, ob eine bestimmte Verzögerung positiv ist oder verfehlt ist. Mit anderen Worten wird das V1 verwendet, um die ”1” en und ”0” en des Testvektors bei manchen Ausführungsformen der Erfindung zu bilden. Wie in 8 veranschaulicht, liefert bei manchen Ausführungsformen der Erfindung die Verzögerungsleitung 402 das BCLK_ADJ-Signal an einen Takteingangsanschluß eines Datenbitpuffers 600, eines Puffers, der auch das zugewiesene I/O[]-Datenbitsignal empfängt.
-
Wenn eine Bewertungsschaltung 605 (die an den Datenbitpuffer 600 gekoppelt ist) feststellt, daß der Puffer das Verbindungstrainingmuster der Daten nicht eingefangen hat, dann bestätigt (treibt es zum Beispiel hoch) die Bewertungsschaltung 605 das V1-Signal. Anderenfalls, wenn die Bewertungsschaltung 605 bestimmt, daß der Puffer 600 das Testmuster empfangen hat, dann deaktiviert die Bewertungsschaltung 605 das V1-Signal (treibt das V1-Signal zum Beispiel auf niedrig).
-
Die Verzögerungsanpaßschaltung 410 benutzt den Testvektor, der von dem V1-Signal zur Verfügung gestellt wird, für das Einrichten der Verzögerung für die Verzögerungsleitung 402 in dem anfänglichen Verbindungstraining-Modus. Die Verzögerungsanpaßschaltung 410 antwortet auf das V1-Signal während des aktiven Trainingsverbindungs-Modus zum Optimieren der Verzögerung. Bei manchen Ausführungsformen der Erfindung wird der anfängliche Trainingsmodus durch die Bestätigung eines Signals angegeben, das ”INIT_TRAIN” genannt wird, und der aktive Trainingsverbindungs-Modus wird durch die Bestätigung eines Signals angegeben, das ”ACT_TRAIN” genannt wird.
-
Als ein genaueres Beispiel veranschaulicht 9 eine Ausführungsform der Verzögerungsanpaßschaltung 410 gemäß einer Ausführungsform der Erfindung. Die Verzögerungsanpaßschaltung 410 umfaßt einen Mehrbit-Multiplexer 422, der auf ein Auswahlsignal (das ”SEL[1:0]” genannt wird, antwortet, zum Zwecke des Auswählens des digitalen Verzögerungswertes, der auf den Eingangsleitungen 411 der Verzögerungsleitung 402 (siehe 8) erscheint. Wie in 9 gezeigt, liefert abhängig von dem Wert der Bits des SEL[1:0]-Signals der Multiplexer 422 entweder einen Wert ”1111” (der Wert, der in Verbindung mit dem Testvektor verwendet wurde, welcher in Zeile 4 der Tabelle 200 (6) als Beispiel gezeigt worden ist), ein Signal; das ”FD[3:0]” genannt wird (einen Wert, der einen herstellungsgemäßen Standard angibt), ein Signal, das ”TEST[3:0]” genannt wird (die gegenwärtige Verzögerung, die während des anfänglichen oder des aktiven Verbindungstraining-Modus verwendet wird, oder ein digitales Signal, das ”MR[3:0]” genannt wird (ein Signal, das den Mittelpunkt des Durchführungsbereichs 102 (2) angibt).
-
Wenn sie in den aktiven Verbindungstraining-Modus gebracht wird, bewirkt die Verzögerungsanpaßschaltung 410, daß der Multiplexer 422 das TEST[3:0]-Signal auswählt, ein Signal, das von einer Verzögerungswert-Erzeugerschaltung 426 zur Verfügung gestellt wird. Der Verzögerungswert-Erzeuger 426 ist mit einem Zähler 430 gekoppelt, der sechzehn Trainingszyklen über dem FSB 16 zählt. Somit gibt zum Beispiel der Zähler 430 während des ersten Trainingszyklus einen Wert ”0000” an, gibt den Wert ”0001” während des zweiten Trainingszyklus an, usw. Der Verzögerungswert-Erzeuger 426 antwortet auf jeden Wert, der von dem Zähler 430 erzeugt wird, um eine digitale Angabe (über das TEST[3:0]) der Abtastverzögerung zu erzeugen, die von der Verzögerungsleitung 402 (8) aufgegeben werden soll. Somit wird über den Zähler 430, den Verzögerungswert-Erzeuger 426 und die Verzögerungsleitung 402 (siehe 8) durch die Verzögerungsleitung 402 für jeden Trainingszyklus während des anfänglichen Verbindungstraining-Modus eine unterschiedliche Verzögerung aufgebracht.
-
Für jeden Trainingszyklus setzt die Bewertungsschaltung 605 (siehe 8) den Zustand des V1 entsprechend, um anzuzeigen, ob die Verzögerung bestanden oder versagt hat. Eine Erfassungsschaltung 440 für die linke Grenze der Verzögerungsanpaßschaltung 410 empfängt das V1-Signal zum Zwecke des Erfassens einer linken Grenze in dem Testvektor. Mit anderen Worten erfaßt die Erfassungsschaltung 440 für die linke Grenze, wenn das V1-Signal bei einigen Ausführungsformen der Erfindung von einem logischen Eins-Zustand in einen logischen Null-Zustand übergeht. Der Ausgangsanschluß der Erfassungsschaltung 440 für die linke Grenze ist mit einem Freigabeeingang eines linken Registers 442 gekoppelt. Die Dateneingangsanschlüsse des linken Registers 442 sind wiederum mit den Ausgangsanschlüssen des Zählers 430 verbunden. Daher, wenn die Erfassungsschaltung 440 für die linke Grenze die linke Grenze des Testvektors erfaßt, speichert das linke Register 442 den Ausgangswert von dem Zähler 430, der die Position angibt, an der die linke Grenze auftritt.
-
In ähnlicher Weise umfaßt die Verzögerungsanpaßschaltung 410 eine Erfassungsschaltung 450 für die rechte Grenze, eine Schaltung, die einen Übergang von einer logischen Null zu einer logischen Eins in dem Testvektor erfaßt. Beim Erfassen der rechten Grenze bestätigt die Erfassungsschaltung 450 für die rechte Grenze ein Signal, das an ein rechtes Register 460 gegeben wird. Ähnlich wie das linke Register 442 sind bei dem rechten Register 460 dessen Dateneingangsanschlüsse mit den Ausgangsanschlüssen des Zählers 430 gekoppelt. Daher speichert beim Erfassen der rechten Grenze das rechte Register 460 einen Wert, der die Bitposition der rechten Grenze in dem Testvektor angibt.
-
Somit enthält am Schluß der sechzehn Prüfzyklen in dem anfänglichen Verbindungstraining-Modus das linke Register 442 Daten, die die linke Grenze 101 angeben (siehe 2), und das rechte Register 410 enthält Daten, die die rechte Grenze 103 angeben (siehe 2). Die Ausgangsanschlüsse des linken Register 442 liefern ein digitales Signal (das „L[3:0]” genannt wird), das die linke Grenze angibt, und die Ausgangsanschlüsse des rechten Registers 460 liefern ein digitales Signal (das „R[3:0]” genannt wird), das die Position der rechten Grenze 103 angibt.
-
Ein Mehrbit-Addierer 490 der Verzögerungsanpaßschaltung 410 empfängt die Signale L[3:0] und R[3:0] und addiert die rechte und die linke Grenze, um ein Ausgangssignal zu erzeugen, das die Summe der rechten und der linken Grenze angibt. Dieses Ausgangssignal wird um eine Bitposition nach rechts verschoben, um die Summe durch Zwei zu dividieren. Das Ergebnis wird in einem Mittelregister 494 gespeichert. Somit speichert das Mittelregister 494 den geeigneten Mittelwert der linken und der rechten Grenze, d. h. den ungefähren Mittelpunkt des Durchführungsbereiches. Dieser Wert wird durch das Signal MR[3:0] angegeben. Somit gibt am Schluß des anfänglichen Verbindungstrainings-Modus der Eingangsanschluß 411 der Verzögerungsleitung 402 die Mitte des Durchführungsbereiches an.
-
Die Verzögerungsanpaßschaltung 410 umfaßt auch Schaltung zum Erfassen mehrerer rechter oder linker Grenzen in dem Testvektor. Genauer umfaßt bei manchen Ausführungsformen der Erfindung die Verzögerungseinstellschaltung 410 eine Fehlererfassungsschaltung 470 für die linke Grenze, die, wie der Name sagt, das Ausgangssignal beim Erfassen zweier linker Grenzen in dem Testvektor bestätigt. In ähnlicher Weise umfaßt die Verzögerungsanpaßschaltung 410 eine Fehlererfassungsschaltung 472 für die rechte Grenze, die ihr Ausgangssignal als Antwort auf die Erfassung von mehr als einer rechten Grenze bestätigt. Ein ODER-Gatter 480 empfängt die Ausgangssignale von den Fehlererfassungsschaltungen 470 und 472 und alarmiert die Steuerlogik 420, wenn mehr als eine linke Grenze oder mehr als eine rechte Grenze erfaßt wird. Das ODER-Gatter 480 alarmiert auch die Steuerlogik 420, wenn keine der Verzögerungen des Testvektors bestanden hat (d. h. wenn der Testvektor gleich „1111111111111111” ist).
-
Die Steuerlogik 420 steuert die Modi der Verzögerungsanpaßschaltung 410 ebenso wie sie die Anpassung der Verzögerung während des aktiven Verbindungstraining-Modus steuert. Genauer steuert bei manchen Ausführungsformen der Erfindung die Steuerlogik 420 (über die Steuerleitungen 491) den Zähler 430 und steuert den Verzögerungswert-Erzeuger 426 (über die Steuerleitungen 493) in der folgenden Weise in dem aktiven Verbindungstraining-Modus. Die Steuerlogik 430 bewirkt zunächst, daß der Verzögerungswert-Erzeuger 426 die Verzögerung erzeugt, auf die von dem Signal L[3:0] gezeigt wird, d. h. den Inhalten des linken Registers 442. Somit gibt in Antwort auf den Trainingszyklus das Signal V1 das Ergebnis an, ob die Verzögerung an der linken Grenze gültig ist. Wenn die Verzögerung nicht gültig ist, bestätigt die Steuerlogik 420 ein Signal (das „LI” genannt wird), um zu bewirken, daß das linke Register 442 seinen gespeicherten Wert um eins inkrementiert, um die linke Grenze nach rechts zu verschieben. Wenn jedoch der Test erfolgreich war, dann bestätigt die Steuerlogik 420 ein Signal (das „LD” genannt wird), um zu bewirken, daß das linke Register 442 seinen gespeicherten Wert um eins dekrementiert, um tatsächlich die linke Grenze nach links zu verschieben.
-
Anschließend bewirkt die Steuerlogik 420, daß der Verzögerungswert-Erzeuger 426 das Signal R[3:0] lädt, d. h. die Inhalte des rechten Registers 460, so daß ein weiterer Testzyklus beginnen kann, um die Verzögerung zu prüfen, die der rechten Grenze entspricht. Falls, wie es durch das Signal V1 angegeben wird, die Verzögerung an der rechten Grenze gültig ist, dann inkrementiert die Steuerlogik 420 über die Bestätigung eines Signals (das „RI” genannt wird), die Inhalte des rechten Registers 460, um die rechte Grenze um Eins nach rechts zu verschieben. Wenn jedoch die Prüfung versagt, dann bestätigt die Steuerlogik 420 ein Signal (das „RD” genannt wird), um zu bewirken, daß das rechte Register 460 seinen gespeicherten Wert dekrementiert, um die rechte Grenze um eins nach links zu verschieben.
-
Es wird angemerkt, daß die Verzögerungsanpaßschaltung 410 eine von vielen möglichen Ausführungsformen der Erfindung ist. Somit können Abänderungen vorgenommen werden, die in den Umfang der angefügten Ansprüche fallen. Zum Beispiel können bei anderen Ausführungsformen der Erfindung die Techniken, die hierin beschrieben sind, angewandt werden, indem Software anstelle von Hardware verwendet wird. Als ein genaueres Beispiel veranschaulicht 10 ein Computersystem 500 gemäß einer weiteren Ausführungsform der Erfindung.
-
Das Computersystem 500 umfaßt einen Prozessor 502, einen Busagenten 504 und eine Northbridge oder einen Speicherhub 520, die alle an einen Frontsidebus (FSB) 506 gekoppelt sind. Anstatt daß die oben beschriebene I/O-Schaltung enthalten ist, umfaßt jeder Agent, der mit dem FSB 506 gekoppelt ist, einen Satz Register 510b, und der Speicherhub 520 umfaßt die Register 510c. Jeder Satz Register 510 speichert Daten, die Verzögerungen angeben, welche bei den Datenbitsignalen angewendet werden, die von dem entsprechenden Busagenden empfangen werden. Um die Verzögerungen für diese Register 510 einzurichten, führt gemäß einigen Ausführungsformen der Erfindung der Prozessor 502 ein Programm 526 aus, das in einem Systemspeicher 524 zum Implementieren einer oder mehrerer der Techniken 120 (3), 150 (4) und 180 (5), die oben diskutiert sind, gespeichert ist.
-
Somit sind viele Abänderungen möglich und liegen innerhalb des Umfangs der angefügten Ansprüche.
-
Obwohl die Erfindung in bezug auf eine beschränkte Anzahl von Ausführungsformen offenbart worden ist, werden die. Fachleute, die den Nutzen aus dieser Offenbarung ziehen, zahlreiche Modifikationen und Variationen für diese erkennen. Es ist beabsichtigt, daß die angefügten Ansprüche alle solchen Modifikationen und Variationen abdecken, wie sie in den wahren Gedanken und Umfang der Erfindung fallen.