-
Die
vorliegende Erfindung bezieht sich allgemein auf die Datenkommunikation.
Genauer bezieht sich die vorliegende Erfindung auf Verfahren und
Anordnungen zum Synchronisieren von Daten, die auf einem parallelen
Datenbus weitergeleitet werden, der anfällig für durch Versatz verursachte
Fehler ist.
-
Die
Elektronikindustrie strebt fortlaufend Schaltungen mit hoher Leistungsfähigkeit
und hoher Funktionalität
an. Signifikante Erfolge wurden diesbezüglich durch die Entwicklung
sehr hoch integrierter Schaltungen erzielt. Diese komplexen Schaltungen
sind häufig
als funktionsdefinierte Module gestaltet, die einen Datensatz bearbeiten
und anschließend
diese Daten für
die weitere Verarbeitung weiterleiten. Diese Kommunikation von solchen
funktionsdefinierten Modulen kann in kleinen oder großen Datenmengen
zwischen individuellen diskreten Schaltungen, zwischen integrierten
Schaltungen innerhalb desselben Chips, und zwischen entfernt angeordneten
Schaltungen, die mit oder innerhalb verschiedener Teile eines Systems
oder eines Untersystems verbunden sind, stattfinden. Ungeachtet
der Konfiguration erfordert die Kommunikation typischerweise eng
kontrollierte Schnittstellen, die dafür ausgelegt sind, sicherzustellen,
dass die Datenintegrität
aufrechterhalten bleibt, während
Schaltungsentwürfe verwendet
werden, die in Bezug auf realisierbare Einschränkungen hinsichtlich des Implementierungsraumes
und der verfügbaren
Betriebsleistung empfindlich sind.
-
Der
erhöhte
Bedarf an Halbleitervorrichtungen mit hoher Leistungsfähigkeit
und hoher Funktionalität
hat zu einem ständig
steigenden Bedarf an einer Erhöhung
der Geschwindigkeit geführt,
mit der Daten zwischen den Schaltungsblöcken weitergeleitet werden.
Viele dieser Hochgeschwindigkeits-Kommunikationsanwendungen können unter
Verwendung einer parallelen Datenübermittlung implementiert werden,
bei der mehrere Datenbits gleichzeitig über parallele Kommunikationswege
gesendet werden. Ein solcher "Parallelbusbetrieb" ist ein gut angenommener
Lösungsansatz
zum Erreichen von Datenübertragungen
mit hohen Datenraten. Für
eine gegebene Datenübermittlungsrate
(manchmal mittels eines zusammen mit den Daten weitergeleiteten Takts
bewerkstelligt) ist die Bandbrei te, gemessen in Bits pro Sekunde, äquivalent
zur Datenübertragungsrate
mal der Anzahl der Datensignale, die die parallele Datenverbindung
umfasst.
-
Ein
typisches System kann eine Anzahl von Modulen enthalten, die über eine
parallele Datenkommunikationsleitung (manchmal auch als Datenkanal
bezeichnet) verbunden sind und kommunizieren, z. B. in Form eines
Kabels, einer Rückwandplatinenschaltung,
einer Busstruktur innerhalb eines Chips, einer anderen Verbindung
oder irgendeiner Kommunikation solcher Kommunikationsmedien. Ein sendendes
Modul übermittelt
Daten über
den Bus synchron mit einem Takt auf dem sendenden Modul. Auf diese
Weise verlassen die Übergänge auf
den parallelen Signalleitungen das sendende Modul in einer synchronen
Beziehung zueinander und/oder zu einem Takt auf dem sendenden Modul.
Am anderen Ende der parallelen Datenverbindung empfängt das empfangende
Modul die Daten auf dem parallelen Datenbus, wobei die Kommunikationsanordnung
ein Taktsignal weiterleitet und der Empfangstakt typischerweise
aus dem Takt auf dem sendenden Modul hergeleitet oder synchron mit
diesem ist. Die Rate, mit der die Daten über die parallelen Signalleitungen weitergeleitet
werden, wird manchmal als (parallele) "Busrate" bezeichnet.
-
In
solchen Systemen ist es vorteilhaft, sicherzustellen, dass die empfangenen
Signale (und wo anwendbar der Empfangstakt) eine spezifische Phasenbeziehung
zum Sendetakt aufweisen, um eine einwandfreie Datenrückgewinnung
zu bewerkstelligen. Es ist häufig
ein erwartetes Maß an
Zeit-"Versatz" zwischen den gesendeten
Datensignalen selbst und zwischen den Datensignalen und dem Empfangstakt
am Ziel vorhanden. Es gibt viele Quellen eines Versatzes, einschließlich z.
B. Übertragungsverzögerungen,
die durch die kapazitive und induktive Belastung der Signalleitungen
der parallelen Verbindung hervorgerufen werden, Variationen der E/A-(Eingang/Ausgang)-Treiberquelle,
Zwischensymbolinterferenz und Variationen der Impedanz und Länge der Übertragungsleitungen.
Ungeachtet dessen, welches Phänomen
den Versatz hervorruft, sollte dies zum Erzielen einer Kommunikation
mit einwandfreier Datenrückgewinnung
für viele
Anwendungen berücksichtigt
werden.
-
Das
US-Patent
US 3.457.511 offenbart
ein Mehrkanal-Paralleldatenübertragungssystem,
bei dem eine konstante Verzögerung
in der Signalfortpflanzung zwischen den Kanälen automatisch kompensiert
werden kann. Das empfangende Ende des Systems umfasst in jedem Kanal
ein konfigurierbares Verzögerungselement,
das auf einen Integrator anspricht, wobei dessen Ausgang direkt
mit diesem Integrator gekoppelt ist. Jedes Verzögerungselement ist ferner mit
seinem jeweiligen Integrator über
einen monostabilen Schalter und einen Differenzierer gekoppelt.
Die Ausgänge
dieser Differenzierer sind ferner mit einem ODER-Gatter gekoppelt,
dessen Ausgang über
einen weiteren Differenzierer mit einem UND-Gatter gekoppelt ist.
Die Ausgänge
der Verzögerungsschaltungen
sind ferner mit einem ODER-Gatter gekoppelt, dessen Ausgang mit
einem weiteren Eingang des UND-Gatters gekoppelt ist. Der Ausgang
des UND-Gatters ist mit den jeweiligen Integratoren in den Kanälen gekoppelt.
Jeder Kanalintegrator transformiert die Zeitdifferenz zwischen dem
direkt vom Verzögerungselement
empfangenen Signal, dem vom Kanaldifferenzierer erzeugten Signal
und dem Signal vom UND-Gatter zu einer verzögerungsspezifischen Spannung,
die verwendet wird, um die Verzögerungselemente
im Kanal zu rekonfigurieren. Ein alternierendes Bitmuster wird über jeden
Kanal gesendet, um die Verzögerungselemente zu
kalibrieren und eine geeignete Verzögerungskompensation für die anschließend empfangenen
Signale sicherzustellen, die die gleiche Verzögerungsbeziehung aufweisen
wie die empfangenen alternierenden Bitmuster.
-
Für parallele
Verbindungen, die Anwendungen höherer
Geschwindigkeit dienen, wurde in Verbindung hiermit entdeckt, dass
der Versatz "musterabhängig" ist, und dass der
Schweregrad dieses Problems gelindert werden kann und in vielen
Fällen größtenteils überwunden
werden kann. Wie im Europäischen
Patent
EP 1400081 , veröffentlicht
am 5.12.2002 mit dem Titel "Parallel
Communication Based On Balanced Data-Bit Encoding", beschrieben ist,
resultiert diese Musterabhängigkeit
aus den unvollkommenen Stromquellen, die zwischen den Datenbits
im parallelen Bus gemeinsam genutzt werden. Die gemeinsam genutzten
Stromquellen bewirken einen Versatz beim Treiber, der direkt den
Spielraum beim Empfänger
reduziert, was wiederum Datenübertragungsfehler
hervorrufen kann.
-
Viele
dieser Hochgeschwindigkeits-Parallelkommunikationsanwendungen erfordern
die Parallelübertragung
vieler Datenbits, und erfordern daher die Verwendung einer entsprechenden
Anzahl paralleler Busdatenleitungen. Typischerweise nimmt mit größerer Anzahl
von Datenbits (oder parallelen Busdatenleitungen) die Schwierigkeit
zu, unannehmbare Versatzniveaus über
alle Bits zu verhindern. Mit zunehmenden Übertragungsraten ist diese
Schwierigkeit ein Engpass für
die Anzahl brauchbarer paralleler Busdatenleitungen.
-
Herkömmlicherweise
wird diesem Versatzproblem begegnet, indem Verzögerungen auf jeder Leitung
manuell eingestellt werden. Die Verzögerungen werden so eingestellt,
dass die Daten so erscheinen, als ob sie am empfangenden Ende des
Busses gleichzeitig angekommen wären.
Für viele
Anwendungen ist die Kontrolle des Versatzproblems auf diese Weise
unangemessen mühsam
und/oder aufwendig. Die mit diesem Lösungsansatz einhergehenden Belastungen
nehmen deutlich zu, wenn die Anwendung vervielfacht wird.
-
Verschiedene
Aspekte der vorliegenden Erfindung zielen darauf, Daten über parallele
Kommunikationsleitungsschaltungen in einer Weise zu übertragen,
die auf die obenerwähnten
Probleme eingeht und diese überwindet,
und können
in Verbindung mit den Ausführungsformen
verwendet werden, die in den obenerwähnten Patentdokumenten offenbart sind.
Ein Aspekt der Erfindung zielt auf einen Hochgeschwindigkeits-Paralleldatenkommunikationsansatz,
der Versatzprobleme überwindet,
indem digitale Daten mit automatischer Neuausrichtung übertragen werden.
Parallele Busleitungen übertragen
digitale Daten zusammen mit einem Synchronisierungstaktsignal von
einem ersten Modul zu einem zweiten Modul. Um die Synchronisation
zu kalibrieren, überträgt das erste
Modul Bus-Kipp-Synchronisationscodes, die
entsprechend einer Flanke des Taktsignals vom zweiten Modul abgetastet
und validiert werden, und anschließend verwendet werden, um die
Flanke des Taktsignals relativ zu den abgetasteten Synchronisationscodes
zeitlich einzustellen.
-
Übereinstimmend
mit einer weiteren besonders beispielhaften Ausführungsform zielt die vorliegende
Erfindung auf eine parallele Datenkommunikationsanordnung, in der
parallele Busleitungen in mehreren Gruppen angeordnet sind, wobei
jede Gruppe mehrere Datenträgerleitungen
und einen Taktpfad enthält,
der dafür
ausgelegt ist, ein Taktsignal zum Synchronisieren der über die
mehreren Datenträgerleitungen
der Gruppe transportierten digitalen Daten zu transportieren. Am
sendenden Ende trennt ein erstes Modul Abschnitte der Daten von
der Datenda tei in separate Datensätze und überträgt die Datensätze gleichzeitig
auf den mehreren Gruppen von Busleitungen zusammen mit den Taktsignalen für die jeweiligen
Gruppen. Die Datensätze
enthalten Synchronisierungscodes für das empfangende Ende. Am
empfangenden Ende sammelt ein zweites Modul für jede Gruppe die Datensätze entsprechend
dem Zeitablauf, der als Funktion des für die Gruppe empfangenen Taktsignals
definiert ist, und sucht nach den Synchronisierungscodes. In Reaktion
auf diese Synchronisierungscodes wird der Zeitablauf angepasst und
die für
jede Gruppe gesammelten Daten werden auf das für die Gruppe empfangene Taktsignal
ausgerichtet.
-
In
einer weiteren spezifischeren Ausführungsform ist das Taktsignal
für jede
Gruppe differentiell und wird verwendet, um den Empfang von zwei Sätzen von
codierten Multibitdatenwerten an der Empfängerschaltung zu synchronisieren.
Außerdem bewirken
das zweite Modul und die Zeitanpassungsschaltung das Zentrieren
der Taktflanke relativ zu den abgetasteten digitalen Daten.
-
Ein
weiterer Aspekt der Erfindung bezieht sich auf einen Lösungsansatz
zum inkrementellen Einstellen der Flanke des Taktsignals relativ
zu den Synchronisierungscodes. Die Anpassungsschaltung bewirkt,
dass die Synchronisierungscodes relativ zum Takt bewegt werden,
bis sie fehlabgetastet werden, wobei die Flanke des Taktsignals
relativ zu den Synchronisierungscodes eingestellt wird, bevor und nachdem
die Synchronisierungscodes mittels des zweiten Moduls fehlabgetastet
worden sind. Optional wird die Anpassung fortgesetzt, bis die Flanke
des Taktsignals relativ zu den Synchronisierungscodes zentriert
ist.
-
Andere
Beispielausführungsformen
der vorliegenden Erfindung zielen jeweils auf entsprechende Struktur-,
Verfahrens- und Systemverarbeitungsaspekte solcher Kommunikationsumgebungen.
-
Der
vorangehende Überblick über die
vorliegende Erfindung soll nicht jede dargestellte Ausführungsform
oder jede Implementierung der vorliegenden Erfindung beschreiben.
Die Figuren und die genaue Beschreibung, die folgen, erläutern diese
Ausführungsformen
beispielhaft genauer.
-
Die
Erfindung kann bei Betrachtung der folgenden genauen Beschreibung
verschiedene Ausführungsformen
der Erfindung in Verbindung mit den beigefügten Zeichnungen vollständiger verstanden werden,
in welchen:
-
1 ein Diagramm einer beispielhaften parallelen
Datenkommunikationsanordnung ist, in der digitale Daten parallel
von einem ersten Modul zu einem zweiten Modul über einen Kommunikationskanal übertragen
werden, der mehrere parallele Datenträgerleitungen enthält, entsprechend
der vorliegenden Erfindung; und
-
2 ein Diagramm eines weiteren Beispiels
einer parallelen Datenkommunikationsleitungsanordnung ist, ebenfalls
entsprechend der vorliegenden Erfindung.
-
Obwohl
die vorliegende Erfindung offen für verschiedene Modifikationen
und alternative Formen ist, sind Einzelheiten derselben beispielhaft
in den Zeichnungen gezeigt und werden genauer beschrieben. Es ist
jedoch klar, dass nicht beabsichtigt ist, die Erfindung auf die
beschriebenen bestimmten Ausführungsformen
zu beschränken.
Im Gegenteil ist beabsichtigt, alle Modifikationen, Äquivalente
und Alternativen, die in den Umfang der Erfindung fallen, wie durch
die beigefügten
Ansprüche
definiert ist, abzudecken.
-
Es
wird angenommen, dass die vorliegende Erfindung allgemein auf Verfahren
und Anordnungen zum Übertragen
von Daten zwischen zwei Modulen (Funktionsblöcken), die mittels eines parallelen
Datenkommunikationspfades gekoppelt sind, anwendbar ist. Die Erfindung
hat sich als besonders vorteilhaft für Hochgeschwindigkeits-Datenübertragungsanwendungen
erwiesen, die anfällig
für Datenversatzfehler
sind. Beispiele solcher Anwendungen umfassen unter anderem SSTL
(stub series transceiver/terminated logic), RSL-(Rambus-Signalisierungslogik)-Schnittstellen,
eng verbundene Anwendungen, wie z. B. dort, wo der parallele Datenkommunikationspfad
zwei Module auf einem einzelnen Chip kommunikativ koppelt, eine
bordfremde Hochgeschwindigkeitskommunikation zwischen Chips, die
typischerweise unmittelbar nebeneinander auf der gleichen gedruckten
Leiterplatte angeordnet sind, wie z. B. auf einer Referenzchip-Entwicklungsplattform
des Typs, der in der US-Patentanmeldung mit der laufenden Nr. 09/215.942
eingereicht am 18. Dezember 1988, nun
US-Patent
Nr. 6.347.395 , offenbart ist. Obwohl die vorliegende Erfindung
nicht unbedingt auf solche Anwendungen beschränkt ist, wird eine Wertschätzung der
verschiedenen Aspekte der Erfindung am besten durch eine Diskussion
von Beispielen in einer solchen Umgebung gewonnen.
-
Eine
beispielhafte Anwendung der vorliegenden Erfindung verwendet eine
parallele Datenkommunikationsanordnung, die digitale Daten auf einem parallelen
quellensynchronen Datenbus zwischen einem Paar Schaltungsmodulen
weiterleitet, die als ein sendendes (oder erstes) Modul und ein
empfangendes (oder zweites) Modul bezeichnet werden. Der Takt wird
zusammen mit den Daten zum empfangenen Modul für eine Datensynchronisation übertragen, wobei
eine Flanke (steigend oder fallend) des Takts verwendet wird, um
die Daten in einer Signalspeicherschaltung (z. B. Signalspeicher,
Puffer oder kleiner FIFO) am empfangenden Modul zu speichern. Da jedoch
die über
den Bus gesendeten Daten anfällig für einen
Datenversatz sind (wie vorher beschrieben worden ist), wird angenommen,
dass die (steigende oder fallende) Flanke des Takts exakt mit den
zwischengespeicherten Daten zusammenfällt oder 90° außer Phase ist. Da der Empfänger annimmt,
dass die Beziehung zwischen dem Takt und den Daten gut definiert
ist, ist es wichtig, dass diese Beziehung zwischen der Taktflanke
und den empfangenen Daten gültig
ist.
-
Die
parallelen Daten enthalten Synchronisierungscodes, die speziell
ausgewählt
sind, um die Busleitungen zu veranlassen, zwischen digitalen Zuständen zu
kippen, wenn sie unmittelbar nacheinander gesendet werden. Dieser
Kippvorgang wird verwendet, um einen Übergangspunkt für jede Datenleitung
relativ zu einer Flanke des Taktsignals bereitzustellen. Dieser
Lösungsansatz
stellt sicher, dass irgendwelche durch Versatz hervorgerufenen Fehlausrichtungen
innerhalb einer halben Taktperiode angepasst werden können. Für weitere
Informationen bezüglich
der Anwendung solcher Synchronisierungscodes kann auf das obenerwähnte Patentdokument mit
dem Titel "Parallel
Communication Based On Balanced Data-Bit Encoding" Bezug genommen werden,
das ein Beispiel eines 6b8b-Codierungsansatzes
liefert, in welchem nur 64 der verfügbaren 256 8b-Codes für die Übertragung über acht
Bits paralleler Daten verwendet werden, und in welchem ausgewählte ausgeglichene
Codes, z. B. 0x33 & 0xCC
oder 0xC3 & 0x3C
(Hexadezimal), als Synchronisierungscodes zugewiesen sind und selektiv
verwendet werden, so dass zwei der Synchronisierungscodes wiederholt
und zu sammenhängend
während
des Kalibrierungsprozesses der vorliegenden Erfindung gesendet werden.
Die Verwendung dieses Codierungsansatzes erlaubt vorteilhaft eine
Datenwertvalidierung sowohl für
Synchronisierungscodes als auch nichtspezifische Datenwerte durch
einfaches Programmieren der CPU am empfangenden Ende, so dass sie
die abgetasteten Daten mit den Codes vergleicht, die im 6b8b-Ansatz
verwendet werden (gegenüber
den unbenutzten Codes). Für
weitere Informationen bezüglich
eines kompatiblen Codierungs/Decodierungs-Kommunikationsansatzes
kann im Allgemeinen auf jedes der obenerwähnten Patentdokumente Bezug
genommen werden.
-
In
einer besonderen beispielhaften Implementierung der Erfindung, die
dem obenerwähnten 6b8b-Ansatz
entspricht, jedoch nicht hierauf beschränkt ist, weist der quellensynchrone
Datenbus die Busleitungen in mehreren Gruppen angeordnet auf, wobei
jede Gruppe Datenträgerleitungen
und einen Taktpfad enthält,
der dafür
ausgelegt ist, das Taktsignal für
diese bestimmte Gruppe zu transportieren. Am sendenden Ende trennt
das erste Modul Abschnitte der Daten aus der Datendatei in separate Datensätze und überträgt wiederholt
die Datensätze gleichzeitig
auf den mehreren Gruppen von Busleitungen zusammen mit den Taktsignalen
für die
jeweiligen Gruppen. Die Synchronisierungscodes werden für jede getaktete
Gruppe gesendet; somit würde
für eine
acht Bit breite Busleitungsgruppe ein Synchronisierungscode acht
Bits breit sein. Bei Verwendung des obigen Beispiels ist ein Synchronisierungscode gleich
33 (Hexadezimal), während
ein weiterer CC (Hexadezimal) ist.
-
Am
empfangenden Ende sammelt ein zweites Modul für jede Gruppe die Datensätze entsprechend
dem Zeitablauf, der als Funktion des für die Gruppe empfangenen Taktsignals
definiert ist, und versucht, die Synchronisierungscodes zu validieren. In
Reaktion auf diese Synchronisierungscodes werden Verzögerungsschaltungen
beim sendenden und/oder beim empfangenden Modul (die typischerweise
mit jeder Datenleitung des parallelen Busses verbunden sind) aktiviert
und deaktiviert, in Reaktion auf eine Rückkopplungsleitung, um den
Zeitablauf der gesammelten Daten relativ zu der Taktflanke in jeder
Gruppe anzupassen. Idealerweise wird der Zeitablauf so eingestellt,
dass die Daten bei der Taktflanke zentriert sind. Die Verzögerungsschaltungen können unter
Verwendung verschiedener herkömmlicher
Ansätze
implementiert sein, einschließlich
z. B.
-
Logikschaltungen/Pfade,
die so angeordnet sind, dass sie auswählbare Signalweiterleitungsverzögerungen
zur Verfügung
stellen, und MOS-Transistoren mit festen Stromweiterleitungs-Aktivierungszeiten.
-
Gemäß einer
spezifischeren Implementierung der vorliegenden Erfindung wird diese
ideale zeitlich zentrierte Beziehung erreicht, indem zuerst die
Synchronisierungscodes gesendet, empfangen und validiert werden,
und anschließend
inkrementell der Zeitablauf eingestellt wird, bis die Daten am empfangenden
Ende fehlabgetastet werden (d. h., bis die empfangenen Daten nicht
validiert werden können). Sobald
diese Fehlabtastung auftritt, wird der Zeitablauf inkrementell in
entgegengesetzter Richtung eingestellt (Voreilen gegenüber Nacheilen),
während jede
inkrementelle Anpassung verfolgt wird, bis die Zeitablaufanpassung
ein Fehlabtastung hervorruft, die in dieser entgegengesetzten Richtung
auftritt. Die Verfolgung wird anschließend verwendet, um den Zeitablauf
auf das Inkrement zurückzustellen,
das dem Mittelpunkt im Spektrum von der ersten Fehlabtastung zur
zweiten Fehlabtastung entspricht, und somit die Taktflanke mit den
Daten auf jeder Leitung zu zentrieren. Mit der Rückkopplung vom zweiten Modul
und der Kopplung dieser Informationen in die Datenleitungseinstellschaltung
kann eine solche Datenverarbeitung selbstverständlich unter Verwendung eines
programmierten Prozessors an einem oder an beiden Enden des parallelen
Busses und/oder unter Verwendung einer Hardware-Zustandsmaschine
implementiert werden.
-
Die
vorliegende Erfindung betrachtet gewisse Anwendungen, die eine suboptimale
Kalibrierung erlauben, wobei in solchen Implementierungen diese ideale
zeitlich zentrierte Beziehung gegen einen gewissen Grad der Minimierung
der Schritte (und der zugehörigen
Unterbrechungen der Gesamtkommunikation), die erforderlich ist,
um die ideale zeitlich zentrierte Beziehung zu erreichen, abgewogen
wird. In solchen Anwendungen hängt
das Ausmaß,
bis zu dem die ideale zeitliche zentrierte Beziehung beeinträchtigt wird,
von der bestimmten Anwendung und der Toleranz gegenüber Fehlern
ab.
-
1 zeigt eine parallele Datenkommunikationsleitungsanordnung 100 gemäß einer
weiteren beispielhaften Ausführungsform
der vorliegenden Erfindung. Die Anordnung 100 enthält einen
Differenztakt, der verwendet wird, um die Rate zu definieren, mit
der die Daten synchron von einer Verarbeitungsschaltung, wie z.
B. der CPU 102 und den Registern 106, beim sendenden
Modul 112 zu einem empfangenden Modul 114 weitergeleitet
werden. Ein Fachmann wird erkennen, dass ein Differenztakt nicht
für alle
Anwendungen erforderlich ist, und dass, obwohl 1 die
Daten in nur einer Richtung weitergeleitet zeigt, auch eine Umkehrkommunikation
mit jedem der Module 112 und 114 bewerkstelligt
werden kann, die Teil eines entsprechenden Kommunikationsknotens
sind, der den umgekehrten Satz von Sende- und Empfangsschaltungen
enthält.
-
Die
Anordnung 100 verwendet einen Datenwert-Codierungs-Decodierungs-Ansatz, bei dem Datenwerte
mittels der Schaltung 111 codiert werden und dann vom sendenden
Modul 112 zum empfangenden Modul 114 unter Verwendung
paralleler Datenleitungen 116 und 118 zusammen
mit Taktleitungen 122 weitergeleitet werden. Die Taktleitungen 122 werden
verwendet, um die Kommunikationsrate und die Synchronisierungszeitsteuerung
zwischen sendenden und empfangenden Modulen 112 und 114 zur Verfügung zu
stellen. Beim empfangenden Modul 114 verwendet ein Prozessor
oder eine andere Decodierungsschaltung 130 einen Umkehrcodierungsalgorithmus,
eine Nachschlagtabelle oder eine äquivalente Schaltung, um den
Datenwert zurück
in seinen Datenwert vor der Codierung zu decodieren.
-
Die
Anordnung 112 zielt auf eine Beispielanwendung, die zwei
Taktdomänen
verwendet, wobei jede Domäne
durch ein Taktsignal definiert ist, um die Kommunikation für eine 12-Bit-Datentakt-(12b-DC)-Gruppe
zu synchronisieren, entsprechend einem Paar von 6-Bit-Code-("6b")-Gruppen, die als
ein Paar von 8-Bit-Code-("8b")-Gruppen auf den
Busleitungen 116 und 118 codiert sind, die in Verbindung
mit dem obenerwähnten
Patentdokument beschrieben worden ist. Die ersten und zweiten Taktdomänen sind
jeweils unter Verwendung desselben Basisbezugszeichens gekennzeichnet,
wobei bei der zweiten Taktdomänenschaltung
ein Apostroph folgt; z. B. ist der Differenztakt der ersten Taktdomäne mit 122 bezeichnet,
während
der Differenztakt der zweiten Taktdomäne mit 122' bezeichnet
ist. Die 12b-DC-Gruppen codieren effizient den Datenaustausch oder
Befehle von 12 Signalen. In bestimmten Fällen kann es vorteilhaft sein,
kleinere Gruppen zu verwenden. Wie gezeigt ist, enthält somit
eine 12b-DC-Gruppe ein Differenztaktpaar und zwei 6b8b-Codierungen
für insgesamt
18 Anschlüsse
zwi schen dem sendenden Modul 112 und dem empfangenden Modul 114.
Für jede
Taktdomäne
enthält
eine Hälfte
der 12b-DC-Gruppe einen 6b8b-Codierer und ein Differenztaktpaar
für insgesamt
zehn Anschlüsse. Uncodierte
Differenzpaare können
ebenfalls verwendet werden, um Signale zu transportieren. Diese
Differenzpaare können
das Taktsignal mitbenutzen, das mit einer Hälfte einer 12b-DC-Gruppe verwendet wird,
oder die Differenzpaare können
ihr eigenes Taktpaar aufweisen.
-
Die
Daten in jeder der Codegruppen werden beim empfangenden Modul 114 synchron
empfangen, wo eine Datenverarbeitungsschaltung, oder in diesem Fall
eine 8b6b-Decodiererschaltung 130, die synchron empfangenen
Sätze von
acht Bit breiten Daten in entsprechende Sätze von sechs Bit breiten Datenwerten
wandelt und anschließend
die sechs Bit breiten Datenwerte in einem FIFO-Puffer 134 speichert,
der der durch das Differenztaktsignal 122 definierten Taktdomäne zugeordnet
ist. Somit gibt es für jede
Taktdomäne
einen FIFO-Puffer, der unmittelbar einem Paar 8b6b-Decodiererschaltungen
folgt.
-
Beim
Schaltungsanlauf, oder optional periodisch nach dem Anlauf, werden
die Daten in jeder Codegruppe auf die Mitte der Taktflanke kalibriert,
die verwendet wird, um die Daten vom Bus in das empfangende Modul
(z. B. von 116 nach 114) abzutasten. Die Verwendung
von Synchronisierungscodes, die bewirken, dass die Busleitungen
zwischen digitalen Zuständen
kippen, wenn sie unmittelbar nacheinander gesendet werden, kann
diese Kalibrierung wie oben beschrieben für die zeitlich zentrierte Beziehung
erreicht werden. Mit diesem Zentrierungsansatz, der verwendet wird,
um irgendwelche durch Versatz hervorgerufenen Fehlausrichtungen
zu minimieren, weisen die Daten im FIFO-Puffer der 1 für jede Taktdomäne keine
durch Versatz hervorgerufenen Fehlausrichtungen auf.
-
Wenn
FIFO
134 und FIFO
134' nicht leer sind, werden die Daten
von beiden zu einem größeren FIFO
138 übertragen,
der ausreichend breit ist, um die Daten von beiden Taktdomänen aufzunehmen.
Ein Nachprozessor liest diese Daten und entfernt irgendwelche durch
Versatz hervorgerufenen Fehlausrichtungen zwischen den verschiedenen Gruppen,
wie in dem Patentdokument mit dem Titel "Parallel Data Communication Having Skew
Intolerant Data Groups" (
US 2002/84552 , veröffentlicht
am 5.12.2002) beschrieben ist.
-
Ferner
verwendet gemäß der vorliegenden Erfindung
eine weitere Ausführungsform
eine Teilmenge der in 2 gezeigten
Schaltung. Diese Ausführungsform
erfordert nicht, dass die Busleitungen in mehreren Gruppen mit separat
unter diesen Gruppen übertragenen
Daten angeordnet sind. Stattdessen werden die Daten in ihrer Gesamtheit
unter Verwendung nur eines Taktsignals gesendet. In dieser Anwendung
der vorliegenden Erfindung arbeitet die CPU 102 effektiv
mit den Daten für
nur eine der Taktdomänen.
-
2 zeigt eine weitere Implementierung der
vorliegenden Erfindung, in der sechs Codierungs/Decodierungs-Taktdomänenschaltungen
gleichen Typs der 1 in jedem der zwei
Kommunikationspfade für
die Kommunikation in jeder entsprechenden Richtung verwendet werden.
Zum Weiterreichen eines Datenaustauschs, der an einem ersten Endgerät 210 zum
Empfangen am zweiten Endgerät 212 eingeleitet
wird, wird eine der sechs identischen Taktdomänenschaltungen durch verbundene
Schaltungen 216a und 216b dargestellt. Für einen
Datenaustausch, der am zweiten Endgerät 212 für den Empfang
am ersten Endgerät 210 eingeleitet
wird, werden sechs zusätzliche
Codierungs/Decodierungs-Taktdomänenschaltungen
dieses Typs verwendet; eine dieser Schaltungen ist durch verbundene
Schaltungen 236a und 236b dargestellt. Der Kürze halber
wird die folgende Erörterung
auf den Kommunikationsfluss beschränkt, der am ersten Endgerät 210 zum
Empfang am zweiten Endgerät 212 eingeleitet
wird.
-
Datenaustausch,
der am ersten Endgerät 210 eingeleitet
wird, beginnt bei der CPU 240, oder einer weiteren Quelle,
die Zieldaten zusammen mit irgendwelchen gewünschten Status- oder Steuerdaten zu
einem Frontend-FIFO 242 zuführt. Aus dem FIFO 242 werden
die Daten für
die Kommunikation beim Flusskontrollpuffer 244 formatiert,
um sie den sechs Sätzen
der Codierungs/Decodierungs-Taktdomänenschaltungen (mit 245 bezeichnet)
zu präsentieren; somit
empfangen die Codierungs/Decodierungs-Taktdomänenschaltungen Daten, die 72
Bits breit sind (12 Bits für
jede der sechs Domänenschaltungen).
Nach der 6b8b-Codierung werden die Daten zum zweiten Endgerät 212 über eine
Verzögerungszeitanpassungsschaltung,
die in Bustreibern und/oder Busempfängern eingebaut ist, die ebenfalls als
Schaltungen 216a und 216b darge stellt sind, übermittelt
und dort decodiert. Die Verzögerungszeitanpassungsschaltung
kann unter Verwendung von (nicht gezeigten) Signalen von der CPU 240 oder
einer weiteren Schnittstelle in Reaktion auf die vom zweiten Endgerät 212 bereitgestellte
Rückmeldung gesteuert
werden; alternativ kann die Rückmeldung lokal
kontrolliert werden, indem nur der Busempfänger verwendet wird, der als
Schaltung 216b dargestellt ist. Sobald die Daten decodiert
sind, werden sie dem breiten FIFO 246 präsentiert,
wobei nach Korrektur von durch Versatz hervorgerufenen Fehlausrichtungen
innerhalb jeder Taktdomäne,
wie vorher beschrieben worden ist, die Daten anschließend für die Verarbeitung
durch die CPU 260 des zweiten Endgerätes in einen FIFO 250 gepackt
werden.
-
In 2 sind ferner Flusssteuerungs-Kommunikationspfade 270 und 272 gezeigt.
Diese Pfade 270 und 272 werden verwendet, um Statusinformationen
zu dem einleitenden Endgerät 210 oder 212 zurückzuführen, einschließlich Rückmeldeinformationen
zum Steuern der Verzögerungszeitanpassungsschaltung
der 2. Verschiedene andere Typen von
Kommunikationsstatusinformationen können in Abhängigkeit von der Anwendung
bereitgestellt werden; Beispiele umfassen die Information, ob der
FIFO weniger als bis zu einem unteren Schwellenpegel gefüllt ist,
ob der FIFO mehr als bis zu einem oberen Schwellenpegel gefüllt ist,
ob der FIFO leer ist, ob der FIFO voll ist, ob ein Fehler z. B.
aufgrund eines Überlaufs
aufgetreten ist, oder ob ungültige
Daten vom FIFO gezogen worden sind. Eine solche Flusssteuerung ist üblich und
wird in vielen Kommunikationsmodellen verwendet.
-
Für weitere
Informationen bezüglich
Einzelheiten oder Variationen entweder der 1 oder
der 2 kann auf das obenerwähnte Patentdokument mit
dem Titel "Parallel
Data Communication Having Skew Intolerant Data Groups" Bezug genommen werden.
-
Dementsprechend
wurden verschiedene Ausführungsformen
als beispielhafte Implementierungen der vorliegenden Erfindung beschrieben,
die sich mit Versatzproblemen in Parallelbusanwendungen befassen.
Die vorliegende Erfindung sollte jedoch nicht auf die obenbeschriebenen
bestimmten Beispiele beschränkt
betrachtet werden. Verschiedene Modifikationen, äquivalente Prozesse, sowie
zahlreiche Strukturen, auf die die vorliegende Erfindung anwendbar
sein kann, fallen in den Umfang der vorliegenden Erfindung. Zum
Beispiel können
Multi-Chip- oder
Einzelchip-Anordnungen unter Verwendung einer ähnlich aufgebauten Einweg-
oder Zweiwege-Schnittstelle für
die Kommunikation zwischen den Chipsatzanordnungen implementiert
werden. Ferner ist hervorzuheben, dass am empfangenden Modul die
Daten unter Verwendung der steigenden Flanke, der fallenden Flanke
oder beider Flanken des Takts während
des Kalibrierungsprozesses und/oder während des normalen Datenaustauschs
abgetastet werden können.
Solche Variationen können
als Teil der beanspruchten Erfindung betrachtet werden, wie in den
beigefügten
Ansprüchen
ausgeführt
ist.