-
HINTERGRUND DER ERFINDUNG
-
1. Technisches Gebiet
-
Die
vorliegende Erfindung betrifft allgemein Netzwerke und insbesondere
Netzwerkbusse.
-
2. Allgemeiner
Stand der Technik
-
Ein
Bus ist im allgemeinen als ein gemeinsamer physischer Signalweg
definiert, der Leitungen oder andere Medien (z.B. optische Faser)
enthält, über die
Signale von einem Teil des Netzwerks zu einem anderen gesendet werden
können.
Eine Gemeinsamkeit von Bussen besteht darin, daß bei einem höherentwickelten Bus
die Funktionen, die übermittelt
und empfangen werden müssen,
zunehmen. Jeder definierte Bus besitzt jedoch entwurfsgemäß eine Obergrenze
für Funktionen,
die der Bus abwickeln kann. Anders ausgedrückt, kann der Bus bezüglich der
Anzahl von Wörtern
in seinem Befehls-/Steuervokabular begrenzt sein. Die Größe des Befehls-/Steuervokabulars
schreibt tendentiell die Vielfalt von Funktionen vor, die der Bus
abwickeln kann.
-
Eine
weitere Gemeinsamkeit von Bussen besteht darin, daß Operationen
auf den Bussen synchronisiert sein müssen, damit der Bus ordnungsgemäß arbeitet.
Ein Bus besitzt in der Regel drei Teile, einen Takt, Datenleitungen
und Steuerleitungen. Der Takt gibt dem Bus Integrität, wodurch
die Busteile als eine Einheit zusammenarbeiten können. Der Takt kann durch die
Grundfrequenz der Übertragung
von den Befehls-/Steuerleitungen oder Datenleitungen abgeleitet
werden. Die Datenleitungen führen
in der Regel Daten und die Befehls-/Steuerleitungen in der Regel
Befehls-/Steuersignalwerte.
-
Ein
Nachteil bestimmter existierender Netzwerke besteht darin, daß eine Beziehung
zwischen dem Takt und den Datenleitungen besteht, die aufrechterhalten werden
muß, damit
das Netzwerk wie beabsichtigt funktioniert. Der Grund dafür besteht
darin, daß der
Takt und die Daten auf den Datenleitungen aus verschiedenen Quellen
kommen. Wenn irgendein Teil des Busses (z.B. Daten auf den Datenleitungen)
schneller oder langsamer läuft,
wobei er außerhalb
eines Reservefensters fällt,
das durch die Taktflanke bestimmt wird, wird der Bus Fehler aufweisen
und vielleicht seine beabsichtigte Funktion nicht ausführen können. Mit
schneller und schneller werdendem Busbetrieb kann es passieren,
daß der
Takt in bezug auf die Datenleitungen und Steuerleitungen seine beabsichtigte
Funktion nicht mehr ausführen
kann.
-
Netzwerke übermitteln
manchmal gleichzeitig mehrere Kanäle, um die Bandbreite zu vergrößern. Kanäle werden
in der Regel durch Verwendung verschiedener Signalbahnen, Leitungen,
Wellenlängen
oder Farben (bei optischer Übertragung)
getrennt. Üblicherweise
nimmt ein Kanal einen Weg zu einem Empfänger, während ein anderer Kanal einen
anderen Weg zu demselben Empfänger
nimmt. Außerdem
kann der Sender eines Kanals zu einem Zeitpunkt abfeuern, während der
Sender eines anderen Kanals zu einem anderen Zeitpunkt abfeuern
kann.
-
Wenn
diese (und andere) Bedingungen vorliegen (z.B. verschiedene Farben,
verschiedene Bahnen, verschiedene Senderschußzeiten), können die Kanäle im Empfänger versetzt
sein. Der Grund dafür
besteht darin, daß sich
verschiedene Farben möglicherweise
mit verschiedenen Geschwindigkeiten durch das Übertragungsmedium (z.B. die
Atmosphäre,
optische Faser) ausbreiten oder möglicherweise verschiedene Wege nehmen
und folglich zu verschiedenen Zeitpunkten am Empfänger ankommen.
Wenn Kanäle
verschiedene Wege nehmen, kann ein Weg länger oder kürzer als ein anderer Weg sein,
oder ein Weg kann schneller oder langsamer als ein anderer Weg sein,
was auch bedeutet, daß die
Signalwerte auf den Kanälen
zu verschiedenen Zeitpunkten am Empfänger ankommen können. Wenn
der Sender zu verschiedenen Zeiten abfeuert, werden die Kanäle zu verschiedenen
Zeiten gestartet, was wieder bedeutet, daß die Signalwerte auf Kanälen zu verschiedenen
Zeitpunkten am Empfänger
ankommen können.
Im Empfänger
kann die Umsetzung in den optischen Wandlern bewirken, daß Kanäle versetzt
werden, auch weil jeder optische Wandler eine verschiedene Verzögerung aufweisen
kann.
-
Um
Kanalversatz zu kompensieren, muß der Empfänger die ankommenden Kanäle auf eine
bestimmte Weise synchronisieren. Bei einem derzeitigen Verfahren
zum Synchronisieren von Kanälen
am Empfangsende werden mehrere Kanäle gleichzeitig aggregiert,
die jeweils mindestens einen eingebetteten Takt aufweisen, und die
aggregierten Leitungen in einem Register verbunden. Daten werden
mit einem diskreten Takt in das Register eingetaktet. Wenn das Register
sieht, daß sich
die Daten erledigt sind, werden die nächsten Daten auf den Kanälen in das
Register eingetaktet. Dieses Verfahren verlangsamt in der Regel
jedoch die Kommunikation, weil der Empfänger darauf warten muß, daß alle Befehls-/Steuerinformationen
und Daten assembliert wurden, bevor er die beabsichtigte Verwendung
dieser Funktion bestimmt.
-
EP 0 597 583 A1 beschreibt
einen integrierten Schaltungsbus zur Übertragung eines seriellen
Datensignals. In dem Bus sind alle Informationen in einem Signal
enthalten. Die Datenübertragung
basiert auf Impulsen verschiedener Länge. Ein Taktsignal wird durch
eine fallende Flanke der Impulse angezeigt.
-
Es
ist immer noch ein Problem, verschiedene Befehlswörter und/oder
Datenwörter
in dem übermittelten
Signal anzuzeigen. Dieses Problem wird durch ein Verfahren gemäß Anspruch
1, ein Computerdatensignal gemäß Anspruch
5 und ein Netzwerk gemäß Anspruch
8 gelöst.
-
KURZE BESCHREIBUNG
DER FIGUREN
-
Die
Erfindung wird am besten durch Bezugnahme auf die Figuren verständlich,
in denen Verweise mit gleichen Bezugszeichen im allgemeinen identische,
funktional ähnliche
und/oder strukturell ähnliche
Elemente bezeichnen. Die Zeichnung, in der ein Element zuerst erscheint,
wird in dem Bezugszeichen durch die erste Stelle(n) angegeben. Es
zeigen:
-
1 eine
graphische Darstellung eines beispielhaften mehrphasenkodierten
Protokolls gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
2 ein
Schaltbild eines für
die Implementierung von Ausführungsformen
der vorliegenden Erfindung geeigneten beispielhaften Netzwerks;
-
3 eine
graphische Darstellung eines mehrphasenkodierten Rahmens auf einer
Leitung in dem Bus von 2 gemäß Ausführungsformen der vorliegenden
Erfindung;
-
4 ein
Schaltbild eines beispielhaften Differenzempfängers gemäß Ausführungsformen der vorliegenden
Erfindung;
-
5 ein
Schaltbild eines Siebenphasen-Treiber-Sequenzers gemäß Ausführungsformen
der vorliegenden Erfindung;
-
6 ein
Schaltbild eines beispielhaften Differenz-Treibers gemäß Ausführungsformen
der vorliegenden Erfindung; und
-
7 ein
Flußdiagramm
eines Verfahrens zur Implementierung einer optischen Bussynchronisation gemäß Ausführungsformen
der vorliegenden Erfindung.
-
AUSFÜHRLICHE
BESCHREIBUNG DER DARGESTELLTEN AUSFÜHRUNGSFORMEN
-
Ein
mehrphasenkodiertes Protokoll und die Synchronisation von Bussen,
einschließlich
Rahmen, Kanäle
usw., wodurch ein mehrphasenkodiertes Protokoll implementiert wird,
wird hier beschrieben. In der folgenden Beschreibung werden zahlreiche
spezifische Einzelheiten, wie zum Beispiel bestimmte Prozesse, Materialien,
Einrichtungen und so weiter, präsentiert,
um ein umfassendes Verständnis
von Ausführungsformen der
Erfindung zu ermöglichen.
Fachleute werden jedoch erkennen, daß die Erfindung ohne eine oder
mehrere der spezifischen Einzelheiten oder mit anderen Verfahren,
Komponenten usw. ausgeübt
werden kann. In anderen Fällen
sind wohlbekannte Strukturen oder Operationen nicht ausführlich gezeigt
oder beschrieben, um nicht von Aspekten verschiedener Ausführungsformen
der Erfindung abzulenken.
-
Bestimmte
Teile der Beschreibung werden unter Verwendung von Begriffen wie
zum Beispiel Bus, Bit, Takt, Befehl und so weiter präsentiert.
Diese Begriffe werden von Fachleuten häufig verwendet, um das wesentliche
ihrer Arbeit anderen Fachleuten mitzuteilen. Im vorliegenden Kontext
bedeutet das Wort „Leitung" eine einzige Leitung
mit einer Mehrphaseneigenschaft. Gemäß einer Ausführungsform
ist eine Mehrphaseneigenschaft ein Zustand, in dem eine einzige
Leitung aus zwei oder mehr Datenfeldbits mit einem oder mehreren
Befehls-/Steuerfeldbits in einer Sequenz besteht. Pro Leitung wird
entweder ein Datenfeldbit oder ein Befehls-/Steuerfeldbit definiert (nicht beides
auf einmal). Wenn bei irgendeiner Leitung für einen Bus ein Befehls-/Steuerfeldbit
gesetzt ist, definieren alle Informationen auf dem Bus einen Befehl.
-
Andere
Teile der Beschreibung werden im Hinblick auf durch ein Netzwerk
durchgeführte
Operationen präsentiert,
wobei Begriffe wie zum Beispiel Kodierung, Empfang, Übermitteln
und so weiter verwendet werden. Fachleuten ist wohlbekannt, daß diese
Größen und
Operationen die Form elektrischer, magnetischer oder optischer Signale
annehmen, die gespeichert, transferiert, kombiniert und durch mechanische
und elektrische Komponenten eines Netzwerks anderweitig manipuliert
werden können;
und der Begriff „Netzwerk" umfaßt sowohl
Vielzweck- als auch spezialisierte Datenbearbeitungsmaschinen, -systeme
und dergleichen, die selbständig,
zugeordnet oder eingebettet sind.
-
Verschiedene
Operationen werden als mehrere diskrete Schritte beschrieben, die
nacheinander auf solche Weise durchgeführt werden, wie es für ein Verständnis der
Erfindung am hilfreichsten ist. Die Reihenfolge, in der sie beschrieben
werden, soll jedoch nicht so aufgefaßt werden, daß diese
Operationen notwendigerweise von der Reihenfolge abhängen oder
daß die
Operationen in der Reihenfolge durchgeführt werden, in der die Schritte
präsentiert
werden.
-
In
der gesamten vorliegenden Beschreibung bedeutet ein Verweis auf „eine Ausführungsform", daß bestimmte
Merkmale, Strukturen, Prozesse, Schritte oder Eigenschaften, die
in Verbindung mit der Ausführungsform
beschrieben werden, in mindestens einer Ausführungsform der vorliegenden
Erfindung enthalten sind. Das Auftreten der Phrasen „bei einer
Ausführungsform" oder „in einer
Ausführungsform" an verschiedenen
Stellen in der gesamten Beschreibung soll also nicht unbedingt immer
auf dieselbe Ausführungsform
bezogen sein. Ferner können
die be stimmten Merkmale, Strukturen oder Eigenschaften auf beliebige
geeignete Weise in einer oder mehreren Ausführungsformen kombiniert werden.
-
Die
vorliegende Erfindung betrifft ein mehrphasenkodiertes Protokoll,
bei dem mit zunehmender Anzahl von Leitungen auf einem das Protokoll
implementierenden Bus die Anzahl der Befehls-/Steuerwörter exponentiell
bis über
die Anzahl der Datenwörter
zunimmt. Zum Beispiel können
bei Verwendung eines mehrphasenkodierten Protokolls zwei Leitungen
16 (24) Varianten von Datenwörtern führen und
dieselben Leitungen können
20 Varianten von Befehls-/Steuerwörtern führen. Zehn Leitungen können 1.048.576
(220) Varianten von Datenwörtern und
6.553.600 oder mehr Varianten von Befehls-/Steuerwörtern führen. 16
Leitungen können
4.294.967.296 (232) Varianten von Datenwörtern und
42.949.672.960 oder mehr Varianten von Befehls-/Steuerwörtern führen.
-
Ein
mehrphasenkodiertes Protokoll gemäß Ausführungsformen der vorliegenden
Erfindung hat mehrere Vorteile. Ein Vorteil besteht darin, daß die Struktur
von Daten und Befehlen ermöglicht,
daß eine
einzigartige Signatur zur leichten Identifikation Teil des Protokolls
ist, wodurch die Hardwareimplementierungen vereinfacht und das Netzwerk-Overhead
vermindert werden. Zum Beispiel ermöglicht das mehrphasenkodierte Protokoll
die Erzeugung einer vereinfachten Schnittstelle von elektrisch zu
optisch und optisch zu elektrisch.
-
Ein
anderer Vorteil des mehrphasenkodierten Protokolls ist ein vermindertes
Risiko eines Verbrennens des optischen Wandlers mit hohen, schmalen
Impulsen. Der Grund dafür
besteht darin, daß ein
mehrphasenkodiertes Protokoll eine Impuls-Packung gestattet, bei der eine erhöhte Informationsdichte
an einen optischen Wandler angelegt wird.
-
Ein
weiterer Vorteil des mehrphasenkodierten Protokolls besteht darin,
daß, weil
die Größe des Befehls-/Steuervokabulars
tendentiell die Vielfalt von Funktionen vorschreibt (z.B. Befehle
und Steuerungen), die der Bus abwickeln kann, ein mehrphasenkodiertes
Protokoll gemäß Ausführungsformen
der vorliegenden Erfindung die Erzeugung neuer Anweisungssätze durch
Verwendung von Software ermöglicht,
was für
Erweiterbarkeitszwecke nützlich
ist.
-
Natürlich wird
die vorliegende Erfindung nicht durch die Anzahl der Phasen bei
der Mehrphasenkodierung beschränkt.
Zum Beispiel zeigt Tabelle 1 beispielhafte Leitungszahlen (und Feldbits)
und ihre entsprechende Anzahl von Befehlswörtern und/oder Datenwörtern, die
transferiert werden.
-
-
Man
beachte, daß die
Anzahl der Permutationen für
Befehls-/Steuerwörter
viel größer als
die Permutationen für
Datenwörter
ist. Außerdem
beachte man, daß 6.553.600
Befehls-/Steuerwörter
mehr Wörter
sind, als die englische Sprache zur Zeit enthält, und daß 42.949.672.960 Befehls-/Steuerwörter mehr
Wörter
sind, als zur Zeit in allen existierenden Sprachen zusammen enthalten
sind. Diese Dichte von Befehlen ermöglicht die Realisierung einer
reichen Sprache. Diese Reichheit von Befehls-/Steuerwörtern in
einem mehrphasenkodierten Protokoll nimmt zu, wenn zwei Datenfeldbits
und zwei Befehls-/Steuerfeldbits verwendet werden, oder drei Datenfeldbits
und drei Befehls-/Steuerfeldbits verwendet werden und so weiter.
-
1 ist
eine graphische Darstellung eines beispielhaften mehrphasenkodierten
Protokolls 100 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das beispielhafte Protokoll 100 verwendet
40 Feldbits, darunter zehn Feldbits (D0–D9) speziell für Befehls-/Steuerwörter (Befehls-/Steuerfeldbits
102), 22 Feldbits (Datenfeldbits 104) speziell für Daten,
Adressierungs- und/oder andere Funktionen und acht Feldbits speziell
für Fehlerkorrektur
(ECC-Feldbits 106). Die Befehls-/Steuerfeldbits 102 halten
die Zweck- oder Funktionalinformationen für übrige Feldbits in dem Protokoll 100.
Bei dieser Ausführungsform
ist es mit zehn Befehls-/Steuerfeldbits möglich, aus 6.553.600 Befehls-/Steuerwörtern pro
Takt auszuwählen.
40 Feldbits ermöglichen
außerdem
vier Sätze
von (zehn Feldbits) Befehls-/Steuerfeldbits 101, entsprechend
vier Befehls-/Steuerwörtern.
Wenn irgendein Feldbit in den 40 Feldbits ein aktives Befehls-/Steuerfeldbit
aufweist, repräsentieren die
gesamten 40 Feldbits eine Befehls-/Steuerstruktur.
-
Gemäß Ausführungsformen
der vorliegenden Erfindung ist das mehrphasenkodierte Protokoll 100 ein siebenphasenkodiertes
Protokoll. Siebenphasenkodierung ist als die Möglichkeit definiert, zwei Datenfeldbits oder
ein Befehls-/Steuerfeldbit pro Taktflanke aufzuweisen. Bei der Siebenphasenkodierung
definiert das Absenken der fallenden Flanke in bezug auf die ansteigende
Taktflanke die Daten mit zwei Bits (00, 01, 10, 11) oder das eine
Befehls-/Steuerfeldbit (0 oder 1). Die Befehls-/Steuerfeldbits 102 enthalten
Bitdefinitionen für
C0, C1, und die
Datenfeldbits 104 hängen
mit den Datenfeldbits 00, 01, 10, 11 zusammen. Alle Bits mit gesetztem C0-Bit abwechselnd mit gesetzten C1-Bit repräsentieren den IDLE-Modus. Dadurch
wird es der Mehrphasenkodierung möglich, Busversätze auszunullen.
Der IDLE-Modus enthält
n Leitungen, wobei alle C0-Bits gesetzt sind,
gefolgt durch eine oder mehrere Leitungen mit gesetzten C1-Bit in sich wiederholenden Zyklen. Dadurch kann
eine Logik erzeugt werden, die Busversätze, die mehr als ein Taktintervall übersteigen,
ausnullen kann.
-
Natürlich wird
die vorliegende Erfindung nicht durch die Anzahl der Phasen in der
Mehrphasenkodierung beschränkt.
Zum Beispiel ist gemäß anderen
Ausführungsformen
der vorliegenden Erfindung das mehrphasenkodierte Protokoll 100 ein
neunphasenkodiertes Protokoll. Neunphasenkodierung ist als die Möglichkeit
definiert, zwei Datenfeldbits oder zwei Befehls-/Steuerfeldbits
pro Taktflanke aufzuweisen. Das Absenken der fallenden Flanke in
bezug auf die ansteigende Taktflanke definiert die Daten mit zwei
Bits (00, 01, 10, 11) oder einen Befehl mit zwei Bits (00, 01, 10,
11).
-
Alternativ
dazu ist das mehrphasenkodierte Protokoll 100 ein elfphasenkodiertes
Protokoll. Elfphasenkodierung ist als die Möglichkeit definiert, drei Datenfeldbits
oder einem Befehls-/Steuerfeldbit pro Taktflanke aufzuweisen. Das
Absenken der fallenden Flanke in bezug auf die ansteigende Taktflanke
definiert die Daten mit drei Bits (000, 001, 010, 011, 100, 101,
110, 111) oder ein Befehls-/Steuerfeldbit (0 oder 1).
-
Als
weitere Alternative ist das mehrphasenkodierte Protokoll 100 ein
dreizehnphasenkodiertes Protokoll. Dreizehnphasenkodierung ist als
die Möglichkeit
definiert, drei Datenfeldbits oder zwei Befehls-/Steuerfeldbits
pro Taktflanke aufzuweisen. Das Absenken der fallenden Flanke in
bezug auf die ansteigende Taktflanke definiert die Daten mit drei
Bits (000, 001, 010, 011, 100, 101, 110, 111) oder den Befehl mit
zwei Bits (00, 01, 10, 11). Nach Durchsicht der vorliegenden Beschreibung
wird Durchschnittsfachleuten offensichtlich sein, wie andere mehrphasenkodierte
Protokolle gemäß der vorliegenden
Erfindung implementiert werden können.
-
Die
vorliegende Erfindung betrifft außerdem eine Architektur zur
Implementierung des mehrphasenkodierten Protokolls und zum Synchronisieren
von Kanälen
auf einem Bus. 2 ist ein Schaltbild eines für die Implementierung
von Ausführungsformen
der vorliegenden Erfindung geeigneten beispielhaften Netzwerks 200.
Das beispielhafte Netzwerk 200 enthält mindestens zwei Einrichtungen
(202, 204) die Daten über einen Bus 206 zueinander übertragen
und voneinander empfangen. Der Bus 206 ist zwischen die
Einrichtungen 202 und 204 geschaltet, um es den
Einrichtungen 202 und 204 zu ermöglichen,
unter Verwendung des mehrphasenkodierten Protokolls 100 Daten
und Befehls-/Steuerinformationen miteinander auszutauschen.
-
Bei
einer Ausführungsform
können
die Einrichtungen 202 und 204 Prozessoren sein,
die herkömmliche
Funktionen von Ausführungsprogrammieranweisungen
ausführen,
darunter Implementierung vieler der Lehren der vorliegenden Erfindung.
Zum Beispiel können
die Einrichtungen 202 und 204 Prozessoren der
Prozessorfamilie Pentium® sein, die von Intel Corporation
in Santa Clara, Kalifornien, erhältlich
sind. Obwohl nur zwei Einrichtungen (202 und 204)
gezeigt sind, können
Ausführungsformen
der vorliegenden Erfindung unter Verwendung von mehr als zwei Einrichtungen
implementiert werden.
-
Befehls-
und/oder Steuerinformationen können
mit Daten zu beliebiger Zeit übermittelt
werden, wodurch sich die Effizienz über den Bus 206 vergrößert. Daten
und Befehls-/Steuerinformationen bestimmen, wie die (nachfolgenden
oder vorherigen) Daten verarbeitet werden sollen. Wenn mehr Daten
und Befehls-/Steuerinformationen ausgetauscht werden, kann sich ändern, wie
die (nachfolgenden oder vorherigen) Daten verarbeitet werden sollen.
-
Ausführungsformen
der vorliegenden Erfindung synchronisieren von Einrichtungen auf
den Bus 206 ausgetauschte Rahmen. 3 ist eine
graphische Darstellung des Rahmens 300, der auf einer Leitung
in der Busstruktur 100 unter Verwendung eines mehrphasenkodierten
Protokolls gemäß Ausführungsformen
der vorliegenden Erfindung übermittelt.
Bei der gezeigten Ausführungsform
wird der Rahmen 300 durch zwei ansteigende Flanken 302,
eine Datenstruktur 304, mindestens eine Befehls-/Steuerstruktur 306 und
mindestens eine fallende Flanke 308 berandet. Jede ansteigende
Flanke 302 zeigt einen Takt an. Der Rahmen 300 (z.B.
die Datenstruktur 304, die Befehls-/Steuerstruktur 306 und
der Takt), können
ein Computerdatensignal sein, das in einer Trägerwelle verkörpert und über den
Bus 206 empfangen wird.
-
Die
Befehls-/Steuerstruktur 306 in Beziehung zu der Datenstruktur 304 definiert
die Informationen auf dem Datenbus des Busses 206. Der
Takt definiert die Synchronisation aller Leitungen auf dem Bus 206.
Für jedes
Befehls-/Steuerwort wird die Bedeutung der Datenstruktur 304 zum
Zeitpunkt des Takts umdefiniert. Die Mehrphasencodierung der Signalform
in dem Rahmen 300 ermöglicht
eine Bestimmung mehrerer Logikzustände und ihrer Funktion, während die
erste ansteigende Flanke der Signalform als Synchronisierungstakt verwendet
wird.
-
Für Leitungen,
die die Ladung auf einer Übertragungsleitung
ausgleichen, können
die ansteigende und die fallende Flanke umgekehrt werden. Zum Beispiel
wird ein Befehl zu dem Empfänger
gesendet, wodurch eine Umkehrung von Anstieg/Fall angegeben wird.
Dadurch kann der Empfänger
auch seine Logik umkehren.
-
Die
Beziehung zwischen Takt und Daten kann in der Empfangseinheit abgeleitet
und kompensiert werden. Eine empfangende Einrichtung (202, 204)
verwendet den Takt zur Einstellung der Phase eines oder mehrerer
ankommender Rahmen 300, um die Rahmen 300 miteinander
zu synchronisieren. Der Takt wird somit in das mehrphasenkodierte
Protokoll eingebettet.
-
Bei
einer Ausführungsform
zeigt eine fallende Flanke 308 an, daß die Struktur, die der fallenden
Flanke 308 folgt, eine Datenstruktur 304 oder
eine Befehls-/Steuerstruktur 306 ist. Wenn eine fallende
Flanke 308 an einem vorbestimmten Punkt (310, 312, 314 oder 306)
in dem Rahmen 300 auftritt, ist die Struktur, die der fallenden
Flanke 308 folgt, eine Datenstruktur 304, und
die übertragenen
und empfangenen Informationen sind Daten. Wenn eine fallende Flanke 308 an
einem vorbestimmten Punkt (318 oder 320) in dem
Rahmen 300 auftritt, ist die Struktur, die der fallenden
Flanke 308 folgt, eine Befehls-/Steuerstruktur 306 und
die übertragenen
und empfangenen Informationen sind Befehls-/Steuerinformationen. Wenn eine fallende
Flanke 308 an dem vorbestimmten Punkt 318 auftritt,
zeigt die Befehls-/Steuerstruktur 306 einen Befehl (C0) an. Wenn eine fallende Flanke 308 an
dem vorbestimmten Punkt 320 auftritt, zeigt die Befehls-/Steuerstruktur 306 einen
weiteren Befehl (C0) an.
-
Die
Datenstruktur 304 und die Befehls-/Steuerstruktur 306 enthalten
jeweils eine vorbestimmte Anzahl von Daten-Befehls-/Steuerfeldbitfeldern.
Jedes Bitfeld enthält
eine vorbestimmte Anzahl von Daten-/Befehls-/Steuerfeldbits. Bei
einer Ausführungsform
besitzt jede Datenstruktur ein D0, D1 = Daten mit zwei Bits oder
ein Bit des Befehls C auf einem Zweileitungsbus. Ein Befehlssatz
in einer beliebigen Leitung verwandelt den Bus in eine Befehls-/Steuerfunktion.
Die erste Leitung von D0 ist D1 0, und D1 ist D1 1. Das Befehls-/Steuerfeldbit
ist C1. Die zweite Leitung ist D2 0 und D2 1, und das Befehls-/Steuerfeldbit ist C2. Wenn man dann den Befehl für jede Leitung
zu einem Zeitpunkt mit den beiden Datenbits der anderen Leitung
zu einem Zeitpunkt nimmt, gilt:
C1 =
0 mit D2 0D2 1 im Bereich von
00 bis 11 der 2. Leitung = 4 Variante;
C1 =
1 mit D2 0D2 1 im Bereich von
00 bis 11 der 2. Leitung = 4 Variante;
C2 =
0 mit D1 0D1 1 im Bereich von
00 bis 11 der 1. Leitung = 4 Variante;
C2 =
1 mit D1 0D1 1 im Bereich von
00 bis 11 der 1. Leitung = 4 Variante; und
C1 =
0 C2 = 0, C1 = 0
C2 = 1, C1 = 1 C2 = 0, C1 = 1 C2 = 1 ist 4 Varianten.
-
Bei
dieser Ausführungsform
insgesamt 20 Varianten für
Befehls-/Steuerwörter
und 16 Varianten für Datenwörter von
zwei Leitungen mit vier Bit. Dieses Konzept kann natürlich auf
jede beliebige Busbreite erweitert werden, wie die obige Tabelle
1 zeigt.
-
Die
Datenstruktur 304 und die Befehls-/Steuerstruktur 306 enthalten
jeweils außerdem
eine vorbestimmte Anzahl von Fehlerkorrektur- und -Detektions- (ECC-)
Bits, die für
8B/10B-Kodierungszwecke verwendet werden können. Die ECC-Bits sind möglicherweise
für bestimmte
Busse nicht notwendig. Außerdem
ist ECC für
10B-Kodierung möglicherweise
nicht erforderlich und kann zur Erweiterung der Busbreite verwendet werden.
-
Bei
einer Ausführungsform
ist der erste Transfer eines Rahmens 300 eine Befehls-/Steuerstruktur 306, der
zusätzliche
Befehls-/Steuerstrukturen folgen können, um etwaige Einschränkungen
bezüglich
des Inhalts des Rahmens 300 klarzustellen. Pakete von Datenstrukturen 304,
die ECC-Bits enthalten können
oder nicht, können
dem Rahmen 300 dann folgen.
-
Jede
Verbindung mit dem Bus 206 enthält einen Treiber und einen
Empfänger.
Der Treiber konstruiert die zu übermittelnden
Daten zu mehrphasenkodierten Rahmen. Die Treiber in der Einrichtung 202 führen zu Empfängern in
der Einrichtung 204. Die Treiber in der Einrichtung 204 führen zu
Empfängern
in der Einrichtung 202. Die Treiber und Empfänger können asymmetrische
Treiber und Differenz-Empfänger mit
einer gemeinsamen Referenzleitung sein. Sowohl Treiber als auch
Empfänger
von innerhalb der Einrichtungen 202 bis 204 können auf
demselben Differenz-Bus verankert sein, wenn jeder Empfänger seine
eigene Treiberspannung ausnullt und die Treiberimpedanz gleich der Übertragungsleitungsimpedanz
ist.
-
Herkömmliche
Netzwerke können
für jeden
in das System eintretenden Kanal Taktextraktion erfordern. Die Synchronisation
von Daten findet nach der Deseriali sierung statt. Da jeder Kanal
seine eigene Taktdomäne
ist, müssen
alle Kanäle
auf einen bestimmten internen Takt synchronisiert werden. Gemäß Ausführungsformen
der vorliegenden Erfindung stellt das Netzwerk 200 einen
Systemtakt und Synchronisation ohne Phasenregelkreise (PLLs) oder
Nach-Deserialisierungsverfahren
für empfangene
Daten oder Befehle/Steuerung bereit. Zum Beispiel wird eine Synchronisation
von Kanal zu Kanal mit Verzögerungsregelkreis-(DLL-)Einrichtungen
erzielt, die unter Verwendung von Ein-Bit-Multiplikatorflipflops gleichphasig
gehalten werden. Die Ein-Bit-Multipliziererflipflops dienen als
Korrelationselemente, die die Rückkopplung
in die Slave-DLL-Einrichtungen bereitstellen. Der Master-DLL-Ausgang
liefert den Systemtakt. Die Synchronisation jedes durch die Ein-Bit-Multipliziererflipflops
realisierten Slave-DLL gestattet eine präzise Phasenverfolgung für den Master-DLL.
Alle Befehls-/Steuerstrukturen und Datenstrukturen werden auf dem
Systemtakt synchronisiert.
-
4 ist
ein Schaltbild eines beispielhaften Differenz-Empfängers 400 gemäß einer
Ausführungsform der
vorliegenden Erfindung, bei dem ein Differenz-Verstärker 402 eine gemeinsame
Offsetspannung von einem Differenz-Dateneingangsdurchgang extrahiert und
die Ergebnisse zu einem Differenz-DLL 404 und zu dem CLKref
sendet, wenn es sich um die erste Leitung auf dem Bus handelt. Eine
Vfreq-Spannung 408 stellt sich
durch das Laden oder Entladen der Stromlenktransistoren 410 und 412 so
ein, daß die
Verzögerung
durch den Differenz-DLL 404 gleich dem Zeitraum von der
ansteigenden Flanke des Differenz-Dateneingangssignals zu der nächsten ansteigenden
Flanke des Differenz-Dateneingangssignals
ist. Die Abgriffe des Differenz-DLL 404 befinden sich in
der Mitte der Übergangsperioden,
wie in dem Diagramm gezeigt.
-
In
bestimmten Systemen, in denen Rauschkopplung in dem Differenz-DLL 402 problematisch
ist und die Schutzringe nicht ausreichen, zählt die Teile/m-Logik 414 die
Frequenz so herunter, daß der
BIAS-Strom in das Substrat des Differenz-Empfängers 400 etwas
negativ eingestellt wird. Dadurch verringert sich die Rauscheinkopplung
zwischen Chips pro DLL- und PLL-Stufe.
-
Am
Empfangsende extrahiert jeder Empfänger seine eigenen Daten aus
dem Bus 206. Der Empfänger verwendet
dann die ansteigende Flanke 302 in den Daten als Taktflanke
zum Extrahieren der protokolleingebetteten Daten oder Befehle. Dieser
Prozeß beseitigt
Versatz und Jitter von Takt zu Daten, weil die ansteigende Flanke 302 zur
Formatierung der ansteigenden Flanke 302 folgenden Daten
verwendet wurde.
-
Diese
Merkmale liefern eine Phasenausrichtung für erfolgreiche Datenextraktion
aus mehreren optischen Fasern. Diese Merkmale ermöglichen
außerdem
die Realisierung sehr großer
Bandbreiten ohne das von herkömmlichen
8B/10B-kodierten Systemen benötigte
zusätzliche
Overhead. Dies liegt daran, daß mehrere
Fasern auf dem optischen Bus 206 kombiniert werden sollen,
wodurch der Datenwegengpaß aus
dem Datenkanal heraus verlagert wird.
-
Bei
einer Ausführungsform
ist der Bus 206 zwischen die Einrichtungen (102, 104)
geschaltet, um Daten und Steuerinformationen in mehrphasenkodierten
Rahmen auszutauschen. Bei dieser Ausführungsform kann jeder Rahmen
so kodiert werden, daß mehrere
Phasen des Rahmens eine Bestimmung von mehreren Logikzuständen und
ihrer Funktionen unter Verwendung der ansteigenden Flanke des Rahmens
als Synchronisierungstakt erlauben. Jede Einrichtung (102, 104)
kodiert Daten vor der Übermittlung
und dekodiert die kodierten Daten beim Empfang.
-
Jeder
Rahmen wird durch zwei beliebige ansteigende Flanken berandet. Die
ansteigenden Flanken erzeugen den Systemtakt. Der zeitliche Ort
einer fallenden Flanke definiert den Inhalt des Rahmens. Der Rahmen
wird in Datenzonen (z.B. sechs Datenzonen) aufgeteilt. Fallende
Flanken senken sich in einer der Datenzonen ab. Die Datenzonen werden
als 00, 01, 10, 11, Befehl 0 und Befehl 1 definiert. Eine fallende
Flanke ist eine lineare Progression von einem Zustand zu dem nächsten Zustand
in Relation zu der ansteigenden Flanke (Takt). Eine Fensterfunktion
kann verwendet werden, um Flankenplazierungsunbestimmtheit zu kompensieren.
-
5 ist
ein Schaltbild eines Siebenphasen-Treiber-Sequenzers 500 gemäß einer
Ausführungsform der
vorliegenden Erfindung. Der beispielhafte Treiber-Sequenzer 500 enthält sieben
Differenz-Eingangs-/Ausgangsverstärker 502, 504, 506, 508, 510, 512 und 514,
die einen Siebenphasen-PLL zum Sequenzieren von Datenwörtern und/oder
Befehls-/Steuerwörtern
zur Übertragung
unter Verwendung mehrerer Gatter 516, 518, 520, 522, 524, 526 und 528 bilden.
Datenwörter
und/oder Befehls-/Steuerwörter
werden an ein Senderegister 530 angelegt. Die sieben Phasen
werden durch die Phasen A, B, C, D, E, F und R repräsentiert.
Die R-Phase setzt
ein Flipflop 532 auf einen High-Zustand. Die Daten mit
zwei Bits D0 und D1 dienen
zum Rücksetzen
des Flipflops 532 mit der korrekten Phase, oder setzt das
C0-Bit die Phase für Befehls-/Steuerausgaben,
wenn ein D/C-Eingang des Senderegisters 530 auf Befehl
gesetzt ist.
-
6 ist
ein Schaltbild eines beispielhaften Differenz-Treibers 600 gemäß einer
Ausführungsform
der vorliegenden Erfindung. Das Ausgangssignal des Treibers-Sequencers 500 wird
zu dem Differenz-Treiber 600 gesendet, der den mehrphasenkodierten
Rahmen bzw. die mehrphasenkodierten Rahmen mit derselben Impedanz
wie der physische Bus auf den Bus ausgibt. Die niedrige Ansteuerspannung
des Flipflops 532 liegt auf demselben Potential wie die
Spannung VCC des Differenz-Treibers 600.
Dadurch wird es möglich,
daß der
Differenz-Treiber 600 für
schnellere Ausgangskenngrößen nicht
gesättigt
wird. VibiasH und VibiasL, die an die Transistoren 610 bzw. 612 angekoppelt
werden, werden von einem (nicht gezeigten) externen Widerstand angetrieben,
der charakteristische Boord-Impedanzwerte
aufweist.
-
7 ist
ein Flußdiagramm
eines Verfahrens 700 zur Implementierung der optischen
Bussynchronisation gemäß Ausführungsformen
der vorliegenden Erfindung. Schritt 702 übermittelt
Rahmen, die eine Datenstruktur, eine Befehlsstruktur und eine Taktstruktur
umfassen, zu einer Empfangseinrichtung. Die Datenstruktur kann mit
einer vorbestimmten Anzahl von Datenfeldbits kodiert werden, und
die Befehlsstruktur kann mit einer vorbestimmten Anzahl von Befehls-/Steuerfeldbits
kodiert werden. Der Rahmen kann ansteigende Flanken und fallende
Flanken enthalten. Die fallenden Flanken können anzeigen, daß einer
bestimmten fallenden Flanke entweder eine Datenstruktur oder eine
Befehlsstruktur folgt, wobei das Absenken der fallenden Flanke an
einem vorbestimmten Punkt in dem Rahmen anzeigt, daß das folgende
eine Datenstruktur ist und an einem anderen vorbestimmten Punkt.
Die ansteigenden Flanken zeigen die Taktstruktur an.
-
Schritt 704 empfängt die
Rahmen und synchronisiert mit dem Takt die Rahmen miteinander. Ein
Empfänger
kann seine Daten aus dem Rahmen extrahieren und die ansteigende
als Taktflanke zum Extrahieren eingebetteter Daten oder Befehls-/Steuerinformationen
verwenden.
-
Das
mehrphasenkodierte Protokoll und die Synchronisation von Buskanälen können auf
vielfältigen Bussen
implementiert werden. Zum Beispiel können das mehrphasencodierte
Protokoll und die Synchronisation von Buskanälen auf einem optischen Bus,
einem Kommunikationsbus, einem Testbus und dergleichen implementiert
werden. Nach Durchsicht der vorliegenden Beschreibung würden Durchschnittsfachleute
ohne weiteres erkennen, wie ein mehrphasenkodiertes Protokoll implementiert
werden kann und wie Buskanäle
auf diesen Bussen synchronisiert werden können.
-
Aspekte
der Erfindung können
mit Hardware, Software oder einer Kombination von Hardware und Software
implementiert werden. Zu solchen Implementierungen gehören Automaten,
ein am Einsatzort programmierbares Gatearray (FPGA), ein Mikroprozessor,
eine anwendungsspezifische integrierte Schaltung (ASIC), diskrete,
in mittlerem Maße
integrierte (MSI-)Schaltungen, analoge Schaltkreise usw. Bei Implementierungen
unter Verwendung von Software kann die Software auf einem Computerprogrammprodukt
(wie zum Beispiel einem optischen Datenträger, einem magnetischen Datenträger, einer
Diskette usw.) oder einer Programmspeichereinrichtung (wie zum Beispiel
einem optischen Plattenlaufwerk, einem magnetischen Datenlaufwerk,
einem Diskettenlaufwerk usw.) gespeichert werden.
-
Die
obige Beschreibung von Ausführungsbeispielen
der Erfindung soll nicht als erschöpfend oder die Erfindung auf
genaue offenbarte Formen beschränkend
aufgefaßt
werden. Obwohl hier zur Veranschaulichung spezifische Ausführungsformen
und Beispiele der Erfindung beschrieben wurden, sind innerhalb des
Schutzumfangs, wie Fachleuten auf dem relevanten Gebiet klar sein
wird, verschiedene äquivalente
Modifikationen möglich.
Diese Modifikationen können
an der Erfindung im Hinblick auf die obige ausführliche Beschreibung vorgenommen
werden.