PatentDe  


Dokumentenidentifikation DE102004050890B4 19.07.2007
Titel Datenempfänger mit servogesteuertem verzögertem Takt
Anmelder Agilent Technologies, Inc. (n.d.Ges.d.Staates Delaware), Palo Alto, Calif., US
Erfinder Wood, Glenn, Colorado Springs, Col., US
Vertreter Schoppe, Zimmermann, Stöckeler & Zinkler, 82049 Pullach
DE-Anmeldedatum 19.10.2004
DE-Aktenzeichen 102004050890
Offenlegungstag 27.10.2005
Veröffentlichungstag der Patenterteilung 19.07.2007
Veröffentlichungstag im Patentblatt 19.07.2007
IPC-Hauptklasse H04L 7/08(2006.01)A, F, I, 20051017, B, H, DE
IPC-Nebenklasse H04L 7/033(2006.01)A, L, I, 20051017, B, H, DE   H03L 7/081(2006.01)A, L, I, 20051017, B, H, DE   H03L 7/091(2006.01)A, L, I, 20051017, B, H, DE   

Beschreibung[de]

Man betrachte ein digitales System, bei dem ein Kommunikationsweg, wie z. B. ein Bus, sowohl einen Takt als auch begleitende Daten überträgt. Der Kommunikationsweg könnte auch eine Funkverbindung sein, die von einem Taktwiedergewinnungsmechanismus begleitet wird. Typischerweise ist die Phase des Takts um einen halben Zyklus zu den Daten verzögert, so dass die Daten Zeit haben, sich einzustellen bzw. einzurichten, woraufhin ein Übergang in dem Takt anzeigt, dass es Zeit ist, den Wert der Daten zu erfassen, die eine logische EINS oder eine logische NULL sein können. Wie es gut bekannt ist, tragen Temperaturschwankungen, Leistungsversorgungsdrift, höhere Geschwindigkeiten, längere Datenwege, breitere Busbreiten und verschiedene Störungsformen alle dazu bei, Zeit- und Spannungsgrenzwerte bzw. -toleranzen zu verschlechtern, die alle sowohl bei dem Einheitsintervall als auch der Taktplatzierung (der Phase des Takts) in dem Einheitsintervall Drift bewirken können.

Andere grundlegendere Umstände können manchmal bewirken, dass es erscheint, als würde das Einheitsintervall verschoben. Man betrachte ein sich schnell bewegendes Fahrzeug, wie z. B. ein Raumfahrzeug in der Umlaufbahn. Telemetrie von dem Fahrzeug kann durch Doppler-Verschiebung beeinträchtigt werden. Man nehme beispielsweise an, dass das Fahrzeug einfache binäre Pulse bei einer Rate von 10 Mc auf einer Trägerfrequenz von 1 GHz überträgt. Man nehme an, dass beim Ausstatten des Fahrzeugs mit erstklassiger Ausrüstung keine Kosten gescheut wurden und dass dieselbe einen eingebauten Frequenzstandard von bis zu 1014 aufweist. Dasselbe hat eine interne Logik, die effektiv einhundert interne Zyklen dieses Standards zählt, um jede ihrer EINSen und NULLen für die binäre Pulsmodulation zu machen, und soweit ist das Einheitsintervall exakt korrekt, ohne wahrnehmbare Drift. Aber für einen beobachtenden Empfänger, beispielsweise auf der Erde, während das Fahrzeug den Mond umkreist, sind diese einhundert Zyklen des Trägers, die vorliegen (eine EINS) und die einhundert Zyklen des Trägers mit anderem Wert (eine NULL), obwohl sie nach wie vor genau (!) jeweils einhundert Zyklen sind, nicht bei 1.000.000... GHz. Statt dessen sind dieselben bei einer Frequenz, die durch die Doppler-Verschiebung bestimmt wird. Somit ist das Einheitsintervall einhundert Zyklen bei dieser anderen Frequenz und nicht die nominalen 100.000... nsec. Dieser Effekt unterscheidet sich ziemlich von allen relativistischen Effekten und muss überwacht werden, wenn Datenraten hoch genug werden, dass die Änderung bei dem Einheitsintervall aufgrund der Doppler-Verschiebung zu einem wesentlichen Prozentsatz des nominalen Einheitsintervalls wird. Man nehme beispielsweise an, dass die Datenrate 100 Mc ist, mit nur zehn Trägerzyklen pro Bit. Nun ist jeder dopplerinduzierte Taktpositionierungsfehler, der in dem Fall von 10 Mc tolerierbar gewesen wäre, sehr viel schlimmer.

Diese verschiedenen Schwierigkeiten haben zu verschiedenen Kompensationsstrategien geführt. Eine solche Strategie ist das regelmäßige Trainieren des Empfängermechanismus durch Senden einer bekannten Datenstruktur, so dass der Empfänger den Phasenabgleich des Takts zu einem optimalen Wert einstellen kann, der die korrekte Erfassung dieser bekannten Strukturen maximiert. Im Zusammenhang mit diesem Lösungsansatz gibt es eine Anzahl von Nachteilen.

Diese Nachteile umfassen den zusätzlichen Mehraufwand auf dem Bus, der benötigt wird, um die Trainingsstrukturen zu übertragen, und die zusätzliche Logik, die in dem Empfängermechanismus benötigt wird, um dieselben zu erkennen und auf dieselben zu antworten. Es kann schwierig sein, eine kurze Trainingssequenz zu entwickeln, die effektiv alle Möglichkeiten behandelt, die auftreten können, und eine robuste Trainingssequenz kann den Busmehraufwand wesentlich erhöhen. Im allgemeinen kann der Empfängermechanismus selbst das Neutrainieren nicht einleiten und es gibt keine Garantie, dass eine korrekte Operation fortlaufend während dem Intervall zwischen Trainingssequenzen beibehalten wird. In dem Fall eines entfernten Senders, der keiner effektiven Steuerung durch den Empfänger unterliegt, muss der Empfänger einfach mit der Situation zurechtkommen, die auftritt.

Es wäre wünschenswert, wenn es eine Möglichkeit gäbe, den Empfängermechanismus unabhängig zu machen bezüglich einer Fähigkeit, die Daten fortlaufend zu dem optimalen Zeitpunkt abzutasten (ordnungsgemäßer Taktphasenabgleich), trotz Änderungen bei dem Einheitsintervall, und den Empfänger davon zu befreien, regelmäßige Trainingssequenzen zu benötigen, und die sendende Einrichtung davon, dieselben senden zu müssen. Ein wahrlich lohnenswertes Ziel, aber wie ist es zu erreichen?

Die US 5,313,501 A beschreibt ein Computersystem, in dem parallele Ströme von digitalen Daten von einer Quelle zu einem Zielort in Paketen übertragen werden. Zu Beginn jedes Pakets enthalten alle parallelen Datensignale ein Start-Bit. Jedes Datensignal wird durch einen die Laufzeit entzerrenden Puffer empfangen, der das Datensignal durch eine Verzögerungsleitung mit mehreren Abgriffstellen überträgt. Zum Beginn jedes Taktzyklus wird der Signalwert an jeder Abgriffstelle in der Verzögerungsleitung zwischengespeichert. Jedes sich ergebende, zwischengespeicherte Signal wird mit dem für den nächsten Abgriff entlang der Verzögerungsleitung zwischengespeicherten Signal verglichen, um einen Satz von Vergleichssignalen zu erzeugen. Wenn das Start-Bit eines neuen Pakets empfangen wird, wird eines der Vergleichssignale einen Wert aufweisen, der sich von den anderen unterscheidet, wodurch die Abgriffstelle der Verzögerungsleitung angezeigt wird, an der die Phase des empfangenen Datensignals etwa mit dem Empfängertaktsignal synchronisiert ist.

Die US 5,022,056 A beschreibt ein Verfahren und eine Struktur zur digitalen Phasensynchronisation eines empfangenen digitalen Datenstromes mit einem Empfängertakt. Eine Mehrzahl von Verzögerungsleitungen werden verwendet, um eine Mehrzahl von verzögerten Eingangssignalen zu erzeugen, die dann mit dem Empfängertaktsignal verglichen werden, um zu bestimmen, welches der verzögerten Eingangssignale phasenmäßig am nächsten an dem Empfängertaktsignal liegt. Sobald diese Feststellung durchgeführt wurde, wird ein Multiplexer verwendet, um das geeignete der Mehrzahl von verzögerten Eingangssignalen für die Verwendung durch den Empfänger auszuwählen.

Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Positionieren der aktiven Flanke eines Taktsignals in das Einheitsintervall eines Datensignals mit verbesserten Charakteristika zu schaffen.

Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 gelöst

Ein Datensignal, das, falls ein Mitglied eines Busses Parameter aufweist, die als repräsentativ für diese gleichen Parameter für die verschiedenen anderen Datensignale des Busses genommen werden können, wird an eine Schaltung angelegt, die ihr Einheitsintervall (UI; UI = Unit Interval) entdeckt. Es wird nicht davon ausgegangen, dass sich das UI abrupt ändert, aber mit der Zeit und verschiedenen Umgebungsparametern driftet. Diese UI-Informationen werden nach Bedarf erzeugt und in einer Form, die es ermöglicht, dass dieselben mit einer Kenntnis der vorliegenden und nicht eingestellten Position der aktiven Flanke des Takts kombiniert werden. Das Ergebnis ist ein Fehlersignal, das an eine Taktverzögerungsschaltung angelegt wird, um die aktive Flanke des Taktsignals in der Mitte der gemessenen UI zu positionieren.

Die Grundtechnik für UI-Entwicklung ist der Gegenstand der US 2005/0220238 A1 mit dem Titel UNIT INTERVAL DISCOVERY FOR A BUS RECEIVER und hier wird nur eine sehr kurze Zusammenfassung für den Leser gegeben: die ausgewählten Daten werden an einen Zeitmaßstab angelegt (Datenverzögerungsleitung mit Abgriffen, die beispielsweise von links nach rechts geht), dessen Gesamtverzögerung zumindest ein Einheitsintervall ist. Die verschiedenen zunehmend verzögerten Datenwerte, die an den Abgriffen der Verzögerungsleitung für eine isolierte EINS vorliegen, werden in jeweilige Zellen eines klebrige-NULLen-Registers (sticky ZER0s register) getaktet, das vorher auf nur EINSen initialisiert wurde, und falls es auch für eine isolierte NULL gewünscht wird, in jeweilige Zellen eines klebrige-EINSen-Registers (sticky ONEs register), das vorher zu lauter NULLen initialisiert wurde. Das klebrige-NULLen-Register SZERO misst UI(EINS), was das Einheitsintervall einer EINS ist. Angenommen, die aktive Flanke eines Bussignals ist die ansteigende Flanke, dann wird die Inversion des ausgewählten Datensignals verwendet, um SZERO zu takten, während das nicht-invertierte Signal SONE taktet. Über eine Zeitperiode nach der Initialisierung kann davon ausgegangen werden, dass das Datensignal isolierte EINSen erfährt (d. h. eine einzige EINS mit NULLen davor und danach) und gleichartig isolierte NULLen. Ein EINS-zu-NULL-Übergang in den Daten wird alle weit rechts liegenden NULLen in den Verzögerungsleitungen mit Abgriffen in SZERO takten, die klebrig (sticky) werden und die Anzeige von UI(EINS) in am weitesten links liegenden und verbleibenden anfänglichen EINSen abschneiden. Auf ähnliche Weise wird ein NULL-zu-EINS-Übergang in den Daten alle weit rechts liegenden EINSen in der Verzögerungsleitung mit Abgriffen in SONE takten, die klebrig werden und die Anzeige von UI(NULL) in den am weitesten links liegenden und verbleibenden anfänglichen NULLen abschneiden. Die UI(EINS) kann mit UI(NULL) kombiniert werden (z. B. Mittelwertbildung), um ein einheitliches UI-Ergebnis zu erzeugen.

Da nun mit erneuter Bezugnahme auf den aktuellen Gegenstand UI-Informationen nur periodisch während einem Einheitsintervallentdeckungsmodus (Unit Interval Discovery Mode) erhalten werden müssen, kann der Zeitmaßstab, der bei diesem Prozess verwendet wird, anderweitig verwendet werden, wenn er nicht dazu verwendet wird, UI-Informationen zu finden. Insbesondere kann derselbe in einem Taktservomodus verwendet werden, um zu bestimmen, wo in dem tatsächlichen UI die Daten getaktet werden. Da die aktuelle Größe des UI bekannt ist, kann das Taktsignal nach Bedarf einstellbar verzögert werden, um die aktive Flanke desselben in der Mitte des gemessenen UI zu halten. Der Servomechanismus, der den Takt einstellbar verzögert, spricht auf inkrementale Fehlerinformationen an (so dass sich nichts ändert, falls die Servoschleife unterbrochen ist und kein Fehlersignal erzeugt wird), so dass während Zeiten, wenn der Zeitmaßstab vorübergehend für UI-Entdeckungszwecke verwendet wird oder anderweitig ruhig ist, die aktuellste eingestellte Taktverzögerung beibehalten wird, bis aktives Einstellen (Servoing) fortgesetzt werden kann.

In dem Taktservomodus ist das ausgewählte Datensignal nach wie vor an den Zeitmaßstab angelegt, aber die verschiedenen zunehmend verzögerten Datenwerte, die an den Abgriffen vorliegen, werden in jeweilige Latches getaktet, durch einen verzögerten Takt, der um einen bestimmten Betrag verzögert wurde, der variiert werden kann. Die Position eines Übergangs in den gelatchten Daten zeigt die Phase des verzögerten Takts als um den aktuellen bestimmten Betrag verzögert an. Das heißt, falls es einen Übergang in den gelatchten verzögerten Daten gäbe, ist seine Position eine Abtastphasenanzeige, die idealerweise an einer Position erscheint, die der Hälfte des Einheitsintervalls entspricht. Eine Bank von XOR-Gattern erfasst das Vorliegen eines solchen Übergangs zwischen benachbarten Latches. Die Position eines solchen Übergangs von Interesse in den gelatchten Daten ist eine Ordnungszahl, die einer Reihenfolge der Latches entlang der Verzögerungsleitung mit Abgriffen zugeordnet ist. Diese Zahl kann mit einer Kenntnis des gemessenen Einheitsintervalls (eine ähnliche Ordnungszahl) kombiniert werden, und ein erzeugtes Servofehlersignal erhöht, wenn es an eine variable Taktverzögerungsschaltung angelegt wird, den aktuellen bestimmten Verzögerungsbetrag für den Takt, wenn die Zahl (Verzögerung) zu niedrig ist, und verringert denselben, wenn die Zahl (Verzögerung) zu hoch ist. Bei der vorübergehenden Abwesenheit eines solchen erfassten Übergangs (bewirkt durch Zeichenfolgen aufeinanderfolgender EINSen oder NULLen) ist der Servo einfach im Leerlauf durch Beibehalten der aktuellsten Korrektur, bis ein anderer Übergang erfasst wird.

Das verzögerte Taktsignal kann von einer einstellbaren Taktverzögerungsleitung mit Abgriffen erzeugt werden, die mit der Schrittgröße der Datenverzögerung übereinstimmt, und die Stufen von Taktverzögerung als eine Funktion des Servofehlersignals einfügen und entfernen kann. Mehr als ein Datenkanal kann an entsprechende zusätzliche Datenverzögerungsleitungen angelegt werden, und mehrere anfängliche Servosignale können erzeugt werden, die dann gemittelt oder anderweitig kombiniert werden können, um ein einziges Endservosignal zu erzeugen, das für den Bus als Ganzes verwendet wird. Diese letztere Technik hat den Vorteil, dass wenn mehr Datenkanäle betrachtet werden, erwartet werden kann, dass es weniger Behinderung des Servobetriebs aufgrund aufeinanderfolgender EINSen oder NULLen in den Daten gibt, da davon ausgegangen werden kann, dass unterschiedliche Kanäle unterschiedliche Bitstrukturen übertragen, während es wahrscheinlich bleibt, dass der Drift in der Taktphase, der korrigiert wird, im wesentlichen für alle Signale in dem Bus gleich ist.

Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf beiliegende Zeichnungen näher erläutert. Es zeigen:

1 ein vereinfachtes Blockdiagramm einer herkömmlichen Technik zum Entdecken eines Einheitsintervalls unter Verwendung eines Zeitmaßstabs, die für die vorliegende Technik zum Steuern der Phase eines Taktsignals zum Abtasten eines Datensignals in seinem Einheitsintervall von Interesse ist;

2 ein vereinfachtes Blockdiagramm einer Schaltung zum Positionieren der aktiven Flanke eines Taktsignals in der Mitte eines Einheitsintervalls, dessen Länge variieren kann;

3 ein vereinfachtes Blockdiagramm eines servogesteuerten variablen Verzögerungselements, das bei der Schaltung von 2 verwendet wird; und

4 ein vereinfachtes Blockdiagramm des Funktionsverhaltens einer Auswahlmatrix, die in der Schaltung von 2 verwendet wird.

Nachfolgend wird auf 1 Bezug genommen, in der eine vereinfachte Darstellung 1 einer herkömmlichen Technik zum Entdecken eines Einheitsintervalls unter Verwendung eines Zeitmaßstabs gezeigt ist, und das der Gegenstand der aufgenommenen UNIT INTERVAL DISCOVERY FOR A BUS RECEIVER ist. Als Vorteil für den Leser und der Vollständigkeit halber wird nun eine sehr verkürzte Beschreibung dieser Technik gegeben, während zu berücksichtigen ist, dass dieselbe in UNIT INTERVAL DISCOVERY FOR A BUS RECEIVER in allen Einzelheiten beschrieben ist.

1 entdeckt das Einheitsintervall eines EINS-Bits [UI(EINS)] und auch die eines NULL-Bits [UI(NULL)] für ein Signal 2. Das Signal 2 ist ein besonders individuelles Signal, dessen UI von Interesse ist, und kann als repräsentativ für Umstände gesehen werden, die einem gesamten Bus 3 zugeordnet sind, dessen Signale durch einen Busempfänger 4 empfangen werden sollen, der durch ein Signal CLKD 5 getaktet wird. Durch Einstellen einer Verzögerung, die dem CLKD zugeordnet sind, werden die Daten in der Mitte des Einheitsintervalls getaktet.

Zu diesem Zweck wird das Signal 2 an einen Zeitmaßstab 6 angelegt, der aus einer Anzahl von kaskadierten Verzögerungselementen (7, 8, 9, ... 10) besteht. Diese Verzögerungselemente können von der gut bekannten Sorte sein, die eine Flanke für ein Digitalsignal verzögern, wie z. B. jedes Verzögerungselement, das eine Reihe von ein oder mehreren kaskadierten Puffern ist. Das vordere oder erste Verzögerungselement kann eine wesentlich größere Verzögerung haben als die anderen. In jedem Fall ist der Gesamtverzögerungsbetrag vom Eingang zum Endausgang an dem Ende des Zeitmaßstabs zumindest so lang wie das längste erwartete Einheitsintervall.

Daher sei angenommen: (1) man gehe davon aus, dass es k Verzögerungselemente gibt; (2) nenne das Signal, das zum Anlegen an den Zeitmaßstab ausgewählt ist, „DATA IN" und (3) bezeichne die verschiedenen verzögerten Versionen, im Stil eines Registers, als TR:1, TR:2, ... TR:i, ... TR:k. Die gesamte Sammlung könnte als TR:[0-k] bezeichnet werden. Somit ist TR:0 einfach DATA IN, und die verschiedenen TR:i sind die k aufeinanderfolgenden verzögerten Signale (d. h. Fälle einiger früherer DATA IN).

Man betrachte nun zwei Register SZERO 11 und SONE 12, deren Latching-Elemente sind für NULLen bzw. EINSen „klebrig", und die wie nachfolgend beschrieben initialisiert und getaktet werden. Jedes Register hat so viele Latching-Elemente oder Zellen wie es Verzögerungselemente gibt. Das heißt, jedes Register hat k Zellen, die als SZERO:[1-k] und SONE:[1-k] bezeichnet werden. SZERO steht für „Sticky ZEROs" (klebrige NULLen) und wird auf nur EINSen initialisiert, während SONE für „Sticky ONEs" (klebrige EINSen) steht und auf nur NULLen initialisiert wird. Jede Zelle von SZERO ist gleich und jede Zelle von SONE ist gleich, obwohl die Vorrichtungen zum Initialisieren und Klebrigmachen von SONE sich von SZERO unterscheiden.

Wenn UI-Informationen gewünscht werden, wird angeordnet, dass es einen Fall des Signals INITIALIZE 13 gibt. Dann wird dasselbe für eine Zeitperiode ausgeführt, beispielsweise mehrere hundert oder mehrere tausend Taktzyklen des Bus 3. Dann bekommt man SZERO:[1-k] und SONE:[1-k] und verarbeitet dieselben zum Erhalten einer einheitlichen Anzeige des gemessenen Einheitsintervalls.

Daher betrachte man nun die Situation von SZERO, während eine abfallende Flanke einer isolierten EINS an dem Eingang des Zeitmaßstabs 6 ankommt. Mit dem Begriff „isoliert" ist eine EINS gemeint, der eine NULL sowohl vorangeht als auch folgt. Es wird angenommen, dass ein solches Ereignis nicht garantiert in jedem Buszyklus auftritt, aber dass es zumindest gelegentlich auftreten muss. Wir sind bereit zu warten, bis zumindest einige oder sogar bis viele solche isolierten EINSen aufgetreten sind, bevor SZERO entladen wird. Es wird selbstverständlich auch daran erinnert, dass am Anfang der Messung für UI(EINS) ein Fall von INITIALIZE 13 alle Bits von SZERO auf EINSen gesetzt hat.

Um fortzufahren, ordnet der Inverter 14 an, dass die abfallende Flanke einer isolierten EINS die ansteigende Flanke liefert, die alle Latches in SZERO taktet. Nun und mit Bezugnahme auch auf das Diagramm 15, falls in der Tat eine isolierte EINS vorliegt, bekommen TR:1 bis zu einem anderen Zeitmaßstabelement, beispielsweise TR:j alle EINSen (18) in die entsprechenden Latches von SZERO getaktet. Die Latches, die TR:j+1 bis TR:k entsprechen, bekommen NULLen (aufgrund der vorhergehenden NULL). Es ist selbstverständlich die nächste (folgende) NULL, die den Übergang (A) liefert, der durch den Inverter 14 invertiert wird, um das Takten der Latches von SZERO zu bewirken. Diese NULLen für TR:j+1 bis TR:k werden die klebrige NULL-Eigenschaft aktivieren, und wahrlich kleben bleiben, wie es durch diagonale Schattierung 16 angezeigt wird. Aus dem gleichen Grund erzeugt jede nachfolgende isolierte EINS, die gemäß den Ausgängen des Zeitmaßstabs ein kürzeres UI(EINS) aufweist, eine größere Anzahl solcher klebriger NULLen an dem Ende dieser kürzeren EINS. Längere Perioden für nachfolgende isolierte EINSen werden die geklebten NULLen NICHT „lösen". Dies „trimmt" das angezeigte UI(EINS) auf die kürzeste beobachtete Länge, in Einheiten der Verzögerung &Dgr;T, zumindest für die bisherige Dauer der Messung. Diese angezeigte Länge ist eine Reihe von verbleibenden aufeinanderfolgenden EINSen.

Der Fall NULL EINS NULL (eine isolierte EINS) wurde behandelt. Auf die Reflektion hin ist es klar, weshalb die anderen Möglichkeiten (NULL EINS EINS, EINS EINS NULL, EINS EINS EINS und jeder Fall mit NULL in der Mitte) die oben beschriebenen Ergebnisse nicht stören. Das heißt, sofern es keine nachfolgende NULL (nach der isolierten EINS) gibt, gibt es keine Möglichkeit SZERO beim Übergang A zu takten, und SZERO bleibt ungestört. Und sofern es keine vorhergehende NULL gab (in dem Diagramm weit rechts), dann gibt es einfach keine weit rechts liegenden NULLen zum Takten in SZERO und klebrig werden.

Nun wird SONE betrachtet. Es wurde selbstverständlich vorher zu nur NULLen initialisiert. Die abfallende Flanke einer isolierten NULL liefert den Übergang bei B, der alle Latches in SONE taktet. Sein Betrieb ist ähnlich wie der von SZERO, obwohl der klebrige Mechanismus leicht unterschiedlich ist und die endgültige abgeschnittene Anzeige eine Reihe von verbleibenden aufeinanderfolgenden NULLen ist.

Man beachte nun die Verarbeitungsschaltung 20, deren Ausgang eine Anzeige des gemessenen Einheitsintervalls UI90 bis UI110 ist. Die Zahlen beziehen sich auf Prozentsätze des nominalen UI und es wird bei diesem Beispiel angenommen, dass bei dieser Familie nur ein Signal zu einem Zeitpunkt WAHR ist. Die Verarbeitungsschaltung 20 selbst kann ein kleiner Mikroprozessor, eine Ersatzkapazität in einer Recheneinrichtung, die für einen anderen Zweck vorgesehen ist, eine Nachschlagtabelle, eine Zustandsmaschine oder eine andere Anordnung einer Logikschaltungsanordnung sein. Die Verarbeitung selbst könnte Mittelwertbildung sein. Die Signale des gemessenen Einheitsintervalls (die UI:i) sind mit einer Auswahlmatrix 22 in 2 gekoppelt.

In den Figuren wird keine Erweiterung dessen gezeigt, was in der Verarbeitungsschaltung 20 vorgeht, aber dies ist nicht geheimnisvoll. Um darzustellen, dass es dies nicht ist, werden nun einige Möglichkeiten aufgezeigt. Die Eingänge sind die aufeinanderfolgenden EINSen 18 von SZERO in dem gesamten Feld SZERO:[1-k], und die aufeinanderfolgenden NULLen 19 von SONE in dem gesamten Feld SONE:[1-k]. Obwohl diese Signale numerische Werte darstellen (in Einheiten in Bezug auf &Dgr;T), tun sie dies in einem Positions- oder Literal-Sinne. Das heißt zum Darstellen der abstrakten Idee von „Fünf" tun sie (beispielsweise für SZERO) dies als die Zeichenfolge von Symbolen „1 1 1 1 1 0 0 ...", anstatt als einen codierten 0101 (binären) oder Fünf-Bit- oder Sieben-Bit-ASCII-Code für "Fünf". Es ist wie der Aborigine, der die Anzahl von Wild an einer Stelle erfasst, indem er dreizehn Kieselsteine in einen Beutel hineinlegt, einen Kieselstein für jedes Tier, um eine Eins-zu-Eins-Entsprechung durchzuführen. Obwohl Addition und Subtraktion unter Verwendung solcher unmittelbarer Darstellungen nicht zu schwierig ist, kann das Mittelwertbilden solcher Werte eine Herausforderung darstellen, daher ist die wahrscheinliche Lösung entweder die Verwendung einer Nachschlagtabelle oder das Anlegen der literalen Darstellungen auf Codierer, um eine reguläre Binärzahl zu erhalten, die ohne weiteres arithmetisch verarbeitet werden kann. In jedem Fall ist das kombinierte (Ausgabe-)Ergebnis der beiden Eingänge als ein 1-von-N-Typ-Format gezeigt, das weder das gleiche ist wie die unmittelbare Darstellung noch eine normale Codierung im arabischen Stil, die feste Symbole und eine Radix verwendet. Falls eine Nachschlagtabelle verwendet würde, würden verschiedene Kombinationen der UI90 – UI110 Ausgänge das sein, was "nachgeschlagen" wird, oder andernfalls würde ein 1-aus-N-Zeilencodierer dieselben erzeugen auf der Basis eines codierten Werts für die Kombination der Eingänge.

Die Auswahl des Verwendens eines 1-von-N-Stil-Signals für UI90 ... UI110 ist motiviert durch die Art und Weise, wie die bestimmte Auswahlmatrix 22 von 2 dieselben verwenden wird. (Es ist ein „Wähle-Eine-Zeile"-Mechanismustyp, und die 1-von-N-Stil-Signalisierung vereinfacht diese Aufgabe. Falls die Auswahlmatrix 22 von 2 statt dessen durch eine Nachschlagtabelle ersetzt wird, dann wäre eine Codierung der kombinierten Eingänge in die Verarbeitungsschaltung 20 ein bevorzugter Ausgang und die In-Line-Darstellung für das gemessene Einheitsintervall würde nie benötigt oder erzeugt werden).

Man nehme nun an, dass bestimmt wurde, dass ein schlimmster Fall von einer Zehn-Prozent-Änderung bei dem UI alles ist, was je gehandhabt werden muss. Daher nehme man für den Moment an, dass k Zwölf ist und auch dass TR:1 90 % des nominalen UI ist, mit &Dgr;T für das andere TR:i bei 2 % eingestellt. Nun sind TR:1 plus TR:[2-5] 100 % und die Messung kann den ganzen Weg nach unten bis zu nur 90 % mit TR:1 allein reichen, und bis zu 110 % reichen mit dem vollen TR:0 plus TR:[2-12], alles in dem Schritt von 2 %. Man nehme also nun an, dass eine Zeit lang mit einem gemessenen UI von 100 % gearbeitet wurde, was genau so ist, wie es sein sollte. Ein anderer Mechanismus (der etwas näher erläutert wird) hat CLKD 5 genau in der Mitte dieses UI gehalten. Voraussichtlich arbeitet dieser andere Mechanismus in Schritten, die eine Position umfassen, die genau der Hälfte des UI entspricht oder sehr nahe dazu. Nun geht das UI um 2 % nach unten. Wo ist die neue 50 %-Position relativ zu der alten 50 %-Position? Dieselbe ist nicht bei einer 2%-Änderung, da diese für das gesamte UI gilt. Die Mitte des (neuen) UI bewegt sich über nur 1 %, daher ist die Antwort 49 %. Falls die gleiche Verzögerungsleitungs-Hardware für sowohl den Einheitsintervall-Entdeckungsmodus als auch den Taktservomodus verwenden werden soll, lässt dies vermuten, dass es ein gewisses Zwei-zu-Eins-Problem gibt.

(Über dieses Problem wird im Lauf der Zeit mehr gesagt und nun werden nur einige bestimmte Möglichkeiten dargestellt. Aus der funktionalen Sicht werden drei Verzögerungsleitungen benötigt, von denen eine variabel sein muss, um die Position von CLK als CLKD einzustellen. Die anderen beiden sind für den Einheitsintervall-Entdeckungsmodus und den Taktservomodus, aber dieselben werden höchstwahrscheinlich nie beide zur gleichen Zeit benötigt, daher ist die Versuchung groß, einen Hardware-Satz für beide zu verwenden. Man könnte in der Tat zwei getrennte Sätze haben, was einen bestimmten zusätzlichen Betriebsbereich und vielleicht eine zusätzliche Flexibilität erfordern würde. Es ist außerdem vielleicht etwas übertrieben, während gemeinschaftliches Verwenden elegant ist. In den Figuren wurden die „beiden" gemeinschaftlich verwendeten Verzögerungsleitungen in der Darstellung nicht explizit gleich gemacht (das wäre wahrscheinlich zunächst verwirrend), obwohl ein solches gemeinschaftliches Verwenden geplant ist, und statt dessen werden die beiden zunächst als getrennt angesehen, während ihnen numerische Werte zugewiesen werden, die sich schließlich als mit einer solchen gemeinschaftlichen Verwendung übereinstimmend herausstellen. Das oben erwähnte Zwei-zu-Eins-Problem findet heraus, was diese Nummern sind, und woher dieselben kommen macht nicht viel Sinn, so lange man keine Kenntnis von diesem Zwei-zu-Eins-Problem hat und den Verdacht hat, dass die Absicht die Verwendung einer gemeinschaftlich verwendeten Hardware ist).

Nachfolgend wird nun auf 2 Bezug genommen, die ein vereinfachtes Blockdiagramm 21 von Hardware ist, die den Taktservomodus ausführt. Ein Zeitmaßstab DD:[0-q] (24) hat anfangs 40 % UI-Verzögerung (25), gefolgt von einer Reihe (26-30) von aufeinanderfolgenden 1%-Verzögerungen, die mit einer gesamten angesammelten Verzögerung von 60 % enden.

Diese verzögerten Fälle von DATA-IN werden als verschiedene DD:i bezeichnet, die in der Figur erscheinen. (DD steht für Delayed Data = verzögerte Daten). Die verschiedenen DD:i sind jeweils mit den D Eingängen entsprechender Latches gekoppelt, für die 32 und 33 repräsentativ sind. Die Ausgänge dieser Latches sind mit LDD:[0-q] bezeichnet (für Latched Delayed Data = gelatchte verzögerte Daten). Jedes nachfolgende Paar von Latches treibt ein zugeordnetes XOR-Gatter, für das 34 repräsentativ ist. Die Ausgänge der XOR-Gatter sind DT:[1-q] (DT steht für Data Transition = Datenübergang). Der Gedanke hierbei ist, dass falls die Daten, die in einen Zeitmaßstab DD:i (24) eintreten, einen Übergang enthalten, es eine benachbarte NULL EINS oder EINS NULL in dem LDD:i gibt. Die Position dieses Übergangs wird durch einen zugeordneten XOR-Gatterausgang angezeigt, der WAHR wird, während der andere FALSCH bleibt. (Es wird angenommen, dass UI NIE berechtigterweise so kurz wird, um zwei Übergänge in der 20%-Abdeckung des Zeitmaßstabs 24 zu ermöglichen!) Außerdem zeigt die Position des Übergangs (welches XOR-Gatter WAHR wurde) den Einrichtungsbetrag vor dem Takten an, falls das UI auch bekannt ist. Daher wird geplant, DT:i mit dem gemessenen Einheitsintervall (UI90, ..., UI110) zu kombinieren, um einen Satz von Signalen abzuleiten, der verwendet werden kann, um die Einrichtung bei 50 % des gemessenen UI zu halten, obwohl entweder die Taktphase oder das tatsächliche UI oder beide driften können.

Zu diesem Zweck werden DT:i und das gemessene UI in eine Auswahlmatrix 22 angelegt. Die Einzelheiten dieser elektrischen Operation werden in Verbindung mit 4 erörtert. Im Moment ist es ausreichend, die logische Operation zu erkennen, falls bekannt ist, dass ein bestimmter DT:i (nämlich DT:q/2 oder eines benachbart davon) der XOR-Gatterausgang wäre, der für eine 50%-Einrichtung erzeugt würde, wenn UI 100 % von Nominal ist. Falls dies passieren würde, gäbe es keinen Bedarf, irgend etwas zu tun: die Einrichtung ist gut. Andererseits wäre ein DT:q/2)+3 definitiv eine Anzeige, dass weniger Einrichtung benötigt wird. (Weshalb es weniger Einrichtung und nicht mehr ist, wird offensichtlich, wenn der Deckel geöffnet wird und in die Auswahlmatrix hineingeschaut wird, kombiniert mit der Anerkennung der Regeln, die den Betrieb des Verzögerungszählers 43 bestimmen). In der Tat sind alle DT:i, wo i > (q/2) ist, eine solche Anzeige (angenommen, dass q/2 als die „Mitte" bestimmt wurde). Alle diese anderen DT-Signale (38) können durch das ODER-Gatter 40 zusammen einer ODER-Operation unterzogen werden, um ein Signal 42 zu erzeugen, das verwendet wird, um weniger Einstellung durchzuführen. Auf ähnliche Weise ist jeder DT:i, wo i < (q/2) ist, eine Anzeige, dass mehr Einstellung benötigt wird. Alle diese DT-Signale 37 können durch das ODER-Gatter 39 zusammen einer ODER-Operation unterzogen werden, um ein Signal 41 zu erzeugen, das verwendet wird, um mehr Einstellung durchzuführen.

Falls in der Tat bekannt wäre, dass das UI konstant bei 100 % bleibt, würden die gemessenen UI-Signale überhaupt nicht nötig werden und die Phase des CLKD würde einfach einer Servooperation unterzogen durch Beobachten von DT:i. Dieselben würden als Feld von 1-von-N-Anzeigen angesehen werden, die in drei Abschnitte unterteilt sind: mehr Einstellung, gleichbleibend und wenig Einstellung. Wo die EINS in 1-von-N fällt, würde bestimmen, was durchzuführen ist. Ferner wäre für den 100 % UI-Fall die „Gleichbleiben"-Anzeige eine EINS in der „Mitte" des DT:i.

(Hier wird kurz abgeschweift, um ein lästiges Thema zu bearbeiten: die verflixte Vorstellung von „Mitte". Angenommen, Sie haben zehn Dinge, die in einer Reihe angeordnet sind. Die „Mitte" kann als der Punkt definiert werden, wo es eine gleiche Anzahl auf jeder Seite gibt. Identifizieren Sie nun das Ding, das in der Mitte ist. Dies kann nicht gehen, es sei denn, es gibt eine ungerade Anzahl von Dingen. Andererseits kann man den Punkt in einer ungeraden Ansammlung nicht identifizieren, wo es eine gleiche Anzahl von (ganzen) Dingen auf jeder Seite gibt. Es gibt eine ähnliche Schwierigkeit beim Sichersein, dass beispielsweise DT:(q/2) in der „Mitte" ist. Der Index kann so gedreht werden, dass es für bestimmte Fälle dies ist, aber dieser Trick gilt nicht mehr, wenn sich die Dinge ändern. Und die Schaltung soll Änderungen handhaben. Das heißt, manchmal sind einem gemessenen UI eine ungerade Anzahl von Verzögerungselementen zugeordnet, und manchmal eine gerade Anzahl. Letztendlich wird eines als Mitte ausgewählt, selbst wenn es „um Eins versetzt" ist, und da das Ding sowieso ein Servo ist, muss man manchmal damit klar kommen, zu einer Position eine Servooperation durchzuführen, die (im Mittelwert) um eine halbe Auflösungseinheit fehlerhaft ist. Falls weniger Fehler gewünscht wird, ist mehr Auflösung zu verwenden. In der Zwischenzeit soll hierin nachfolgend dieses Problem ignoriert werden und von „Mitten" gesprochen werden, als ob dieselben immer identifizierbar wären).

Um fortzufahren, hätte nun das Array von DT:i für eine ideale Situation ein Mittelelement (eine einzelne EINS), die dafür steht, dass keine Änderung benötigt wird, während alle diese Positionen (mit NULLen) auf einer Seite „mehr" anzeigen würden, während alle diese Positionen (mit NULLen) auf der anderen Seite „weniger" anzeigen. Ein Bedarf an einer Phaseneinstellung ist angezeigt, wenn die EINS in einer anderen Position erscheint. Die Gesamtzahl von Positionen ändert sich nicht, falls daher die EINS in der Mitte dessen erscheint, was das „Mehr"-Feld war, wurde das „Mehr"-Feld von Positionen etwas kleiner und die Größe des „Weniger"-Felds wurde entsprechend größer. Dies ist die Art einer „1-von-N"-Anzeige.

All dies unterstützt die Annahme, dass das, was zu tun ist, um Änderungen in einem UI unterzubringen, das Verschieben der „natürlichen" Position der „Keine-Änderung-Benötigt"-Anzeige um einen Betrag und in einer Richtung ist, die der Verschiebung in der ordnungsgemäßen Taktposition entspricht, die der gemessenen Änderung in dem Einheitsintervall entspricht. Die Verschiebung in der ordnungsgemäßen Taktposition ist selbstverständlich die vorher erwähnte Hälfte der Änderung in dem UI. Was daher in die Auswahlmatrix geht, ist eine UI-abhängige Verschiebung des DT:i, bevor dieselbe an die Ausgänge der Auswahlmatrix und somit an die ODER-Gatter 39 und 40 angelegt werden.

Um die Diskussion von 2 zu beenden, werden die Einrichtungsbetrageinstellsignale 41 und 42 an einen Verzögerungszähler 43 angelegt. Falls die variable Verzögerung, die an CLK 23 angelegt wird, um CLKD 5 zu erzeugen, zwanzig Schritte hat, dann hat der Verzögerungszähler 43 einen Bereich von zwanzig Zählwerten, ist auf einen Zählwert in der Mitte dieses Bereichs initialisiert und zählt von diesem Mittelzählwert nach Anweisung vorwärts oder rückwärts. Die Dinge in der Figur sind so angeordnet, dass das Vorwärtszählen mehr Einrichtung bewirkt, was mehr Verzögerung entspricht, die an CLK angelegt wird, um CLKD zu erzeugen. Somit ist das MAKE MORE SET UP-Signal 41 mit einem INC-(für INCrement-)Eingang des Verzögerungszählers 42 gekoppelt. Auf gleiche Weise ist das MAKE LESS SET UP-Signal 42 mit einem DECrement-Eingang gekoppelt.

Der Zähler 43 kann ein binärer Zähler sein. Es ist wünschenswert, obwohl nicht wesentlich, dass derselbe „klebt" und nicht über den Bereich hinauszählt, der der Anzahl von Verzögerungselementen entspricht, die aufgerufen werden können, um CLKD einzustellen. In der Figur sind die m Bits 47 von dem Verzögerungszähler 43 mit einem Codierer 48 gekoppelt. Dies wandelt den binären Zählwert in eine 1-von-q-Darstellung 49 um, die an die variable Verzögerung 50 angelegt wird. Diese q Signale 49 werden mit UDLY:[1-q] bezeichnet (UDLY:i steht für Verwende Verzögerungen 1, 2, ..., i). Es ist wahr, dass der Verzögerungszähler 43 die UDLY:i von Anfang an direkt erzeugen könnte, und dass der Codierer 48 weggelassen werden könnte. Oder der Verzögerungszähler 43 und der Codierer 48 werden weggelassen, für ein vorgeladenes Schieberegister, das verschoben wird anstatt inkrementiert oder dekrementiert. Die dargestellte Zähleranordnung ist einfach und hat vielleicht noch einen weiteren Vorteil. Falls man dazu neigen würde, die Antwort der Servoschleife zu dämpfen, die gebildet wird, könnte das niederwertigste Bit (oder zwei) des Zählers 43 ignoriert werden, der Bereich des Zählers entsprechend erhöht werden und die verbleibenden m höchstwertigsten Bits zu dem Codierer 48 gesendet werden. Dies hätte den Effekt, dass zwei (oder vier) INCremente (und auch DECremente) erforderlich sind, um eine Änderung bei der angelegten Verzögerung für CLKD zu bewirken. Dies kann eine sinnvolle Hysterese liefern, um die Neigung des Servos zu reduzieren, zu verfolgen.

Es gibt eine weitere Möglichkeit zum Erhalten einer ähnlichen Hysterese. Man könnte einen oder mehrere der Ausgänge benachbart zu dem Signal NO CHANGE/CLKD OK 35 in ein logisches Signal gruppieren, das andernfalls gleich behandelt wird wie das Signal 35. Dies wird jedoch nicht bevorzugt, da es die Hysterese auf Kosten des Verbrauchs von Einstellbereich erzeugt.

Um fortzufahren entspricht die feste Verzögerung 51 von 40 % UI, die CLK 23 erfährt, bevor dasselbe an die variable Verzögerung 50 angelegt wird, um zu CLKD 5 zu werden, dem 40 % UI-Verzögerungselement 25 in dem Zeitmaßstab 24.

Bei der letzten Betrachtung von 2 ist die Überwachungs-(Watch-Dog-)Schaltung 36 zu beachten. Dieselbe ist optional. Es wird auch angemerkt, dass das Signal NO-CHANGE/CLKD-OK 35 nicht anderweitig verwendet wurde. Was eine solche Bewachungsschaltung tun würde (und es gibt im Stand der Technik viele Beispiele raffinierter Überwachungsschaltungen) ist, zu erfordern, dass es ein gelegentliches Signal 35 gibt, oder andernfalls nimmt dieselbe an, dass der Servo zum Mittagessen gegangen ist und in der Mitte seines Bereichs neu gestartet werden muss. Das Signal 44 von der Überwachungsschaltung ist mit einem ODER-Gatter 45 gekoppelt, dessen Ausgang 46 der PRELOAD-Eingang in den Verzögerungszähler 43 ist. Dies wurde zwar nicht gezeigt, aber das Signal 44 könnte auch andere Aktionen erzwingen, wie z. B. Aktivieren von UI100 oder Einleiten einer Wiederentdeckung des Einheitsintervalls. Eine komplexere Überwachungsschaltung könnte versuchen, den Verzögerungszähler zuerst neu einzustellen und falls dies nicht funktioniert, eine Einheitsintervalls-Entdeckungsoperation erzwingen. Dies sind Systemarchitektur-Auswahlmöglichkeiten, die dem Entwickler offen stehen, sobald die Mechanismen von 1 und 2 bestehen.

Nun wird auf 3 Bezug genommen, wo das Wesentliche 52 der variablen Verzögerung 50 gezeigt ist, und eine Wahrheitstabelle 53, die ihre Operation auf UDLY:i bezieht, die durch den Codierer 48 von 2 erzeugt werden. Es ist anzumerken, dass jedes UDLY-Signal die Aufnahme eines entsprechenden Verzögerungselements steuert (DLY 54 gesteuert durch die Auswirkung von UDLY:1 auf den MUX 55 ist repräsentativ), mit dem Ergebnis einer monoton variierenden kumulativen Verzögerung, während sich die Anzahl von UD-LY:i's, die EINSen sind, eins nach dem anderen erhöht oder verringert. Normalerweise wäre für eine ideale Bedingung von 50 % UI und keiner benötigten Taktphasenkorrektur diese kumulative Verzögerung bei 50 % UI, wobei UDLY:[1-(q/2)] EINSen sind.

Bei der letzten Bezugnahme auf die Figuren wird nun auf 4 Bezug genommen. Dieselbe ist eine Funktionsbeschreibung 56 der Verschiebung, die in der Auswahlmatrix 22 benötigt wird. An diesem Punkt in der Beschreibung und bezüglich der Figur selbst wird davon ausgegangen, dass die logische Struktur der Verschiebung keine weitere Erklärung benötigt. Es ist klar, dass dieselbe den DT:i nimmt (der anzeigt, wo ein Übergang in den Daten aufgetreten ist) und dieselben mit einem Teilsatz der NDT:[1-30] verbindet (NDT steht für Normalized Data Transition = normierter Datenübergang). Die Größe des Teilsatzes ist der ursprüngliche DT:i, wobei sich die Position des Teilsatzes in dem vollen Bereich von NDT:[1-30] gemäß dem gemessenen UI verschiebt, um die korrekte „Mitte" mit dem NO-CHANGE/CLKD-OK-Signal 35 aufgereiht zu halten, das auch als NDT:16 bezeichnet werden kann. Der Leser, der noch nicht überzeugt ist, wird daran erinnert, dass eine Motivation für diese Art von Verschiebung in Verbindung mit der Erklärung von 2 ausgeführt wurde.

Die Figur nimmt weiterhin die bestimmten Größen für die Bereiche von DT:i und UI:i an, die in den vorhergehenden Erklärungen verwendet wurden. Das Ganze wurde jedoch ohne Ellipsen oder Verallgemeinerungsversuche gezeichnet, obwohl es nachfolgend auf stilisierte Weise beschrieben ist. Dies machte die Figur sehr viel leichter zu zeichnen und die Entsprechungsregel viel leichter zu sehen. Es ist selbstverständlich klar, dass andere Bereiche (und begleitende Anzahlen von Verzögerungselementen in den Zeitmaßstäben und der anderen Verzögerungsleitung für den CLK- zu CLKD-Mechanismus) gut möglich sind.

Die Figur verwendet auch einen stilisierten kurzen dicken Balken zum Anzeigen einer Verbindungsvorrichtung als Teil des Auswahlmechanismus. Es gibt verschiedene Möglichkeiten, wie diese elektrische Aufgabe erreicht werden kann, und zwei solche Möglichkeiten sind an der oberen rechten Ecke der Figur gezeigt. Eine umfasst ein UND-Gatter 57 zwischen einer Zeile und einer Spalte, während die andere einen FET-Schalter 58 verwendet. Von diesen wird ebenfalls angenommen, dass sie keine besonderen Erklärungen benötigen. Es ist ferner klar, dass das angezeigte Funktionsverhalten der Auswahlmatrix durch eine Zustandsmaschine, ein programmiertes Logikarray, allgemeine Software, die an einem nahen Prozessor ausgeübt wird, eine Nachschlagtabelle und zumindest zwei Möglichkeiten durch eine geeignete Anordnung von MUXs implementiert werden könnte.

Nun, bei der Zusammenfassung, kehren wir zurück zu dem Thema der Anzahl und Art der Verzögerungsleitungen mit Abgriffen, die als Zeitmaßstäbe bezeichnet wurden, und deren Beziehung zu der variablen Verzögerung, die verwendet wird, um CLKD von CLK zu erzeugen. Zunächst ist es offensichtlich, dass drei getrennte Verzögerungsleitungen mit Abgriffen verwendet werden könnten. Das heißt, bestimmte Beziehungen sind sinnvoll. Es ist klar, dass der Zeitmaßstab 6 für die Entdeckung von UI eine kumulative Verzögerung haben muss, die zumindest so lange ist wie das längste UI, das angetroffen wird. Außer der linken Verzögerung (7) müssen die anderen eine einheitliche Größe aufweisen (die bei der aufgenommenen UNIT INTERVAL DISCOVERY FOR A BUS RECEIVER als &Dgr;T bezeichnet wird). Falls angeordnet wird, dass der UI-Zeitmaßstab 6 TR:i aufweist, die von 90% UI bis 110 % UI reichen, in zehn Schritten von &Dgr;T = 2 % UI, muss realisiert werden, dass die genau entsprechenden einzelnen Schritte für den Phasenservo-Zeitmaßstab 24 45 % bis 55 % in 1%-Schritten sind.

Falls die Hardware nun nicht gemeinschaftlich verwendet wird, gibt es im Prinzip keinen andernfalls fatalen Grund um zu erzwingen, dass sich die beiden Zeitmaßstäbe auf diese genaue Weise entsprechen (obwohl die hierin verwendeten Zahlen nur ein Beispiel sind). Beispielsweise könnte man algorithmisch zwei Ergebnisse von nicht-identischen Zeitmaßstäben unterschiedlicher Art in Software nach Bedarf kombinieren, frei-interpolieren zum Entdecken einer idealen Taktverzögerung und dann den nächsten Betrag an tatsächlich verfügbarer Taktverzögerung herausnehmen, die ihr eigenes &Dgr;T aufweist, das keinem der anderen zwei entsprechen muss. Im Vergleich zu dem, was gezeigt wurde, wäre eine solche Technik eher abstrakt und würde eine ziemliche Menge an Mehraufwand umfassen, falls keine anderweitig nichtverwendeten Verarbeitungsressourcen verfügbar sind. Das Problem der Schleifeninstabilität kommt hier auf, aufgrund möglicher Artefakte, die sich aus einer ungünstigen Granularität der Zeitmaßstabauflösungen ergeben, was problemlos wird, falls die Granularität klein genug wäre. Ein solcher Lösungsansatz erscheint dennoch ziemlich unschön.

Falls jedoch die beiden Zeitmaßstäbe identisch sind oder anderweitig durch den Zwei-zu-Eins-Gedanken eng verwandt sind, dann ist der Bedarf zum Interpolieren durch Berechnung ersetzt durch die Fähigkeit, durch Verschieben eine Anzeige anstatt der anderen zu verwenden. Aber falls dies der Plan ist, können dieselben auch gemeinschaftlich verwendete Hardware sein, es sei denn, es gäbe einen überzeugenden Grund, dies nicht zu tun (weil dieselben niemals zur gleichen Zeit benötigt werden).

Das gemeinschaftliche Verwenden der Zeitmaßstab-Hardware fügt eine Reihe von kleinen Kniffen hinzu. Zunächst hat ein Zeitmaßstab eine systemeigene &Dgr;T. Die Zwei-zu-Eins-Beziehung kann erhalten werden durch Gruppieren des niedrigsten systemeigenen &Dgr;T (man nehme an, 1 %) in aufeinanderfolgenden Paaren und Behandeln derselben als Einheit in einem Fall, während die getrennten 1 % &Dgr;Ts in dem anderen einzeln erkannt werden. Daher hat ein Zeitmaßstab (es sei denn, dies wird mit großem Aufwand verhindert, was Hardware verschwendet) eine Konfiguration von zwanzig 1%-Verzögerungselementen, während der andere eine Konfiguration (der gleichen Sache) ist, die zehn 2%-Verzögerungselemente ist, von denen jedes zwei 1 % in Reihe ist. Daher war es in 1 gelogen, wenn gesagt wurde, dass der TR-Zeitmaßstab einen Bereich von TR:[1-k] hatte, wobei k Zehn war und &Dgr;T 2 % war. Es ist tatsächlich eine Zeichenfolge von zwanzig 1%-Verzögerungen, wobei jedes zweite als TR:1, TR:2 usw. genommen wird. Dieses Eingeständnis verletzt 1 nicht auf irgendeine Weise, es hat einfach eine darunter liegende Struktur, die etwas komplizierter ist, aber die andernfalls wie angegeben läuft.

Hier gibt es einen weiteren Kniff. Falls der Taktphasen-Zeitmaßstab DD:[0-q] (24) aus der gemeinschaftlich verwendeten Verzögerungsleitungs-Hardware hergestellt ist, hat dieselbe die gleichen zwanzig 1 % von &Dgr;T-Verzögerungselementen. Weshalb soll nun die Hälfte derselben einfach verschwendet werden, weil eine Taktphase einer Servooperation unterzogen wird? Daher werden dieselben alle verwendet, weshalb der angezeigte Bereich für diesen Zeitmaßstab (24) die 20 % von 40 % UI bis 60 % UI ist, und nicht die vorher erwähnten 45 % bis 55%. Es wurde einfach der „Überschuss ausgeglichen", über die 50%-Markierung. Das etwas schmeichelhafte Ergebnis ist ein größerer Phasenmessungsbereich bei einer nach wie vor guten Auflösung für eine Phasenmessung in dem gemessenen UI.

Die drei Register SZERO 11, SONE 12 und DT 31 können ohne weiteres alle von der gleichen Verzögerungsleitung mit Abgriffen getrieben werden, die eine doppelte Pflicht als TR:[1-k] und DD:[1-q] erfüllt. Die Elemente von SZERO und SONE sind an jedem zweiten Abgriff aufgehängt, während die Elemente von DT mit jedem Abgriff verbunden sind. All dies gibt manchmal dem gleichen Knoten in der Hardware zwei unterschiedliche Namen. Das ist keine solche große Sünde.

Es gibt jedoch einen letzten Kniff, der noch aufgezeigt werden muss. Es gibt einen kleinen strukturellen Unterschied bei der Art und Weise, wie die beiden Zeitmaßstäbe verwendet werden. TR:[1-k] latcht verzögerte Fälle von DATA IN gemäß Übergängen in DATA IN, während die LDD:i für den Zeitmaßstab DD:[0-q], (die auch von DATA IN erhalten werden) gemäß CLKD gelatcht werden. Daher bekommt die gemeinsame Hardware in beiden Fällen DATA IN an dem Eingang des „echten" Zeitmaßstabs. Der einzige Unterschied ist, welches Signal das zugeordnete Register von Latchen takten soll. In einem Fall ist es eine Inversion von DATA IN, in einem anderen DATA IN selbst und im letzten Fall CLKD. Diese Auswahl, welches Signal zum Takten der Latche in den Registern (11, 12, 31) verwendet werden soll, ist ein Auftrag für einige MUXs (nicht gezeigt), die die ordnungsgemäßen Signale, gemäß denen der Einheitsintervall-Entdeckungsmodus oder der Taktservomodus wirksam ist, auswählen/weiterleiten. Die begleitende Folgerung ist, dass es auch einen Überwachungsmechanismus gäbe (nicht gezeigt), der diese Modi verwaltet und Signale liefert (die ebenfalls nicht gezeigt sind), die dieselben darstellen.

Da die Hardware für die beiden Zeitmaßstäbe gemeinschaftlich verwendet wird, wird die Zwei-zu-Eins-Beziehung automatisch beobachtet, ohne dass irgend etwas Besonderes durchgeführt werden muss. Außerdem verfolgen die beiden Zeitmaßstäbe einander automatisch, so weit wie die Umgebungsdrift und Herstellungsprozessvariationen gehen. Dies ist ein definitiver Vorteil der gemeinschaftlichen Verwendung von Hardware, ganz zu schweigen von der Reduzierung bei den Kosten und der Chipfläche. Es gehört sich jedoch, die systemeigene &Dgr;T (bei unseren Beispielen 1 %) zu berücksichtigen und anzuordnen, dass die variable Verzögerung 50, die CLK tatsächlich einstellt, um CLKD zu werden, auch 1%-Schrittgrößen aufweist. Dies nicht zu tun könnte die Gesamtsteuerschleife zu Instabilität bringen, sofern keine anderen Maßnahmen durchgeführt werden, um dies zu verhindern. Es scheint auch klar, dass so viele Schritte für die variable Verzögerung 50 vorgesehen sein müssen, wie es Schritte in einem Taktphasen-Zeitmaßstab 24 gibt (was bei unserem Beispiel Zwanzig ist). Falls die variable Verzögerung 50 mit den gleichen Grundtypen von Verzögerungselementen hergestellt ist, wie sie in den Zeitmaßstäben verwendet wird, dann haben alle Verzögerungen eine gute &Dgr;T-Entsprechung und -Verfolgung bei Schwankungen von Umgebungsbedingungen.


Anspruch[de]
Verfahren zum Positionieren der aktiven Flanke eines Taktsignals (23) in dem Einheitsintervall eines Datensignals (2), wobei das Verfahren folgende Schritte umfasst:

(a) Messen des Einheitsintervalls des Datensignals in Einheiten von &Dgr;T durch:

(a1) Anlegen des Datensignals an eine Verzögerungsleitung (6, 24) mit Abgriffen, die um &Dgr;T versetzt sind, wobei die Gesamtverzögerung der Verzögerungsleitung zumindest so lang ist wie das Einheitsintervall

(a2) Latchen (11, 12) der logischen Werte, die an aufeinanderfolgenden Abgriffen, die um 2&Dgr;T versetzt sind, erscheinen, bei einem Übergang des logischen Werts des Datensignals;

(a3) Erzeugen (20) eines gemessenen Einheitsintervallsignals, das die Länge des Einheitsintervalls bezüglich der Anzahl von aufeinanderfolgenden Latches mit dem gleichen logischen Wert, der in Schritt (a2) gelatcht wird, anzeigt;

(b) Verzögern (50, 51) eines Taktsignals (23) in Einheiten von &Dgr;T und um einen ausgewählten Betrag;

(c) Messen in Einheiten von &Dgr;T, wo in dem Einheitsintervall das verzögerte Taktsignal von Schritt (b) eine aktive Flanke zeigt, durch:

(c1) Anlegen des Datensignals an eine Verzögerungsleitung (6, 24) mit Abgriffen, die um &Dgr;T versetzt sind;

(c2) Latchen (31) der logischen Werte, die an aufeinanderfolgenden Abgriffen erscheinen, die um &Dgr;T versetzt sind, auf die aktive Flanke des verzögerten Taktsignals hin;

(c3) Erzeugen eines Taktphasensignals (39, 40), das bezüglich einer Anzahl von aufeinanderfolgenden Latches anzeigt, wo in dem Einheitsintervall ein Übergang in den logischen Werten aufgetreten ist, die in Schritt (c2) gelatcht wurden;

(d) Bestimmen der ausgewählten Verzögerungsdauer von Schritt (b) gemäß den Werten des gemessenen Einheitsintervallsignals von Schritt (a3) und des Taktphasensignals von Schritt (c3).
Verfahren gemäß Anspruch 1, bei dem Schritt (d) den Schritt des Verschiebens (22) des Werts des Taktphasensignals um einen Betrag und in einer Richtung umfasst, die durch den Wert des gemessenen Einheitsintervallsignals bestimmt werden. Verfahren gemäß Anspruch 1 oder 2, das ferner den Schritt des Verwendens der gleichen Verzögerungsleitung für die Schritte (a) und (c) umfasst. Verfahren gemäß einem der Ansprüche 1 bis 3, das ferner den Schritt des Bereitstellens der Verzögerungsleitung von Schritt (a1) mit einer Anfangsverzögerung eines ersten Betrags, der größer ist als &Dgr;T, und des Versehens der Verzögerungsleitung von Schritt (c1) mit einer Anfangsverzögerung eines zweiten Betrags, der größer ist als &Dgr;T, aber geringer als der erste Betrag, umfasst.






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

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

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