-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein synchrone Bustransaktionen
in digitalen Systemen und insbesondere solche Systeme, bei denen
die Verzögerungen
der Schnittstelle größer als
die Systemzykluszeit sind.
-
HINTERGRUND
DER ERFINDUNG
-
In
einem synchronen digitalen System, insbesondere in einem Computersystem,
werden als Schnittstellenbusse zwischen Subsystemen im Allgemeinen
bevorzugt synchrone Busse eingesetzt (normalerweise als Schnittstellen
zwischen Chips), um die bei diesen Systemen erforderlichen großen Bandbreiten
zu erreichen. Damit synchrone Bustransaktionen richtig ablaufen,
müssen
bei Hochfrequenzsystemen sowohl Sender- (mehrere Bits auf binären Leitungen)
als auch Empfängerseite
nach einem synchronen Takt von einem gemeinsamen Taktoszillator
und möglicherweise
mit Hilfe von Phasenregelkreisen auf beiden Seiten arbeiten. Eine
weitere Anforderung besteht darin, dass die Empfängerseite alle Signalbits des
Busses während
desselben Taktzyklus erfassen muss, damit die Synchronisation erhalten
bleibt.
-
Wenn
die Verzögerung
von den Sender-Flipflops oder -Signalspeichern zu den Empfänger-Flipflops
(Flipflop, FF) (minus die FF-Vorbereitungszeit) im schlimmsten Fall
kürzer
als die Zykluszeit (eine Taktperiode) und im besten Fall länger als
die FF-Haltezeit ist, hat die über
die Schnittstelle laufende synchrone Bustransaktion eine Verzögerung von einem
Zyklus. Dies ist die einfachste synchrone Busschnittstelle. Wenn
jedoch bei synchronen Hochfrequenzsystemen die Verzögerung im
schlimmsten Fall länger
als ein Zyklus ist und die Verzögerungsdifferenzen
zwischen den Bits/Leitungen des Busses mehr als nur eine Zykluszeit
betragen, werden synchrone Bustransaktionen deutlich erschwert.
-
Andere
Autoren haben dieses Verzögerungsproblem
bei synchronen Bustransaktionen bereits behandelt, hauptsächlich durch
zwei Ansätze. Der
erste Ansatz besteht darin, durch Einfügen einer zusätzlichen
Verzögerung
(Leitungsverlängerung)
in die Bitleitungen mit der geringeren Verzögerung eine Feinabstimmung
aller Bits eines synchronen Busses vorzunehmen. Dieser Ansatz verschärft die
Anforderungen an das physische Schnittstellendesign und macht das
Systemdesign komplizierter; zudem ist es bei hohen Frequenzen auch
mit diesem Ansatz immer noch schwierig zu ermitteln, in welchem
Zyklus die Daten übernommen
werden sollen.
-
Der
zweite bekannte Ansatz besteht darin, zur Anpassung der Signalbits
auf den Takt verschiedene quellensynchrone Verfahren (beispielsweise „Dynamic
Wave-pipelined Interface Apparatus and Methods Therefor", Oktober 1999, Internationale
Patentanmeldung WO-0054164) sowie Signalpufferung und -umlauf auf
der Empfängerseite
anzuwenden (beispielsweise „An
Elastic Interface Apparatus and Method Therefor", Oktober 1999, Internationale Patentanmeldung
WO-0054163). Einige dieser quellensynchronen Schnittstellen- und
Pufferverfahren sind zwar sehr hoch entwickelt, jedoch auch kompliziert und
ihre Implementierungen erfordern größeren Schaltungsaufwand als
das Verfahren und das System der vorliegenden Erfindung.
-
In
dem Dokument US5465346 wird eine Vorrichtung beschrieben, mittels
derer Einheiten an einen Bus angeschlossen werden können, um
die vorzeitige Ankunft auf dem Bus ankommender Signale zu erkennen
und auszunutzen. Eine in eine Vorrichtung integrierte Signalankunftscodierschaltung
codiert den Ankunftszeitpunkt eines eingehenden Signals, dessen
vorzeitige Ankunft erkannt werden soll. Der Ankunftszeitpunkt des
betrachteten Signals wird je nach der gewünschten Genauigkeit in Kategorien eingeteilt.
Diese codierte Information zur Signalankunft wird dann durch die
entsprechende Einheit verwendet, um zu ermitteln, wann das andere
entsprechende eingehende Signal abgetastet werden soll. Da die Einheit
die vorzeitige Ankunft dieses eingehenden Signals erkennt, braucht
sie nicht bis zur ungünstigsten
Ankunftszeit des Signals (Worst Case) zu warten.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Die
vorliegende Erfindung stellt ein Verfahren zur automatischen Verzögerungserkennung
und Empfängeranpassung
für einen
synchronen Bus mit Verzögerungen
von mehreren Zyklen dar. In erster Linie wird die vorliegende Erfindung
bei Signal- und Datenübertragungen
zwischen integrierten Schaltungen in einem synchronen System eingesetzt,
jedoch ist die Anwendbarkeit der vorliegenden Erfindung nicht auf
Chip-Schnittstellen beschränkt.
-
Ein
mit dem vorliegenden Verfahren implementiertes System ist in der
Lage zu ermitteln, ob die Sender-zu-Empfänger-Verzögerung jedes Signal- oder Datenbits
während
einer Erkennungs- und Kalibrierungsperiode länger ist als die projektierte
Erfassungszykluszeit (die nicht unbedingt einen Zyklus betragen
muss), und diese Verzögerungsinformation
in der Empfängerschaltung
zu speichern. Dann werden die Empfänger anhand der Verzögerungsinformation einzeln
so angepasst, dass sie die Signale zur richtigen Zykluszeit empfangen.
Daher ist eine mit der vorliegenden Erfindung implementierte synchrone Schnittstelle
in der Lage, Daten in einer möglichst
geringen Anzahl von Zyklen über
die Schnittstelle zu übertragen,
die anhand des Verzögerungsgrenzwerts
dieser Busschnittstelle so optimiert wurde, dass die bestmögliche Bandbreite
erreicht wird.
-
Da
der Empfangszeitpunkt jedes Empfängers
(Erfassungszeitpunkt jedes Empfänger-Flipflops oder
-Signalspeichers) anhand seiner Sender-zu-Empfänger-Verzögerung angepasst wird, ist es
nicht erforderlich, dass alle Datenbits innerhalb des einen Zyklus
vor der Flanke des Erfassungstaktes der Empfänger-Flipflops, welche die
Signale zur internen Empfangsschaltung des Chips übertragen, bei
den Empfängern
eintreffen.
-
Das
vorliegende Verfahren zur automatischen Verzögerungserkennung und Empfängeranpassung
für synchrone
Bustransaktionen ermöglicht die
Datenübertragung
bei höheren
Frequenzen und erreicht eine höhere
Toleranz gegenüber
Bus-Bitverschiebungen
als herkömmliche
synchrone Bustransaktionen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Aufgaben und Merkmale der Erfindung werden anhand einer detaillierten
Beschreibung in Verbindung mit den Zeichnungen klar, in denen:
-
1 ein
Blockdiagramm einer typischen synchronen Busschnittstelle darstellt;
-
2 eine
Schaltlogik zur Verzögerungserkennung
auf der Senderseite einer gemäß den Prinzipien
der Erfindung angeordneten Busschnittstelle veranschaulicht;
-
3 eine
Schaltlogik zur Verzögerungserkennung,
zur Kalibrierung und für
den Normalbetrieb auf der Empfängerseite
der Busschnittstelle veranschaulicht;
-
4 eine
Implementierung der Logik zur Erkennung der größten Verzögerung des Systems (Worst Case)
für ein
Bit auf dem Empfängerbus
gemäß der Erfindung
veranschaulicht; und
-
5 den
Zeitablauf der Logik des Systems von 2 und 3 veranschaulicht,
wenn die größte Verzögerung weniger
als 1,5 Taktperioden beträgt.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
In
einem digitalen System mit einer synchronen Busschnittstelle 100 gemäß 1 enthält das Sender-Subsystem 102 einen
oder mehrere Chips mit einer integrierten Schaltung, beispielsweise
den Chip A, und das Empfänger-Subsystem 104 einen oder
mehrere Chips, beispielsweise den Chip B, deren Taktsynchronisierung
mittels des gemeinsamen Referenztaktes 106 aufrechterhalten
wird. Diese gemeinsame Taktquelle 106 wird für gewöhnlich durch eine
Taktschwingquarzschaltung bzw. -chip bereitgestellt. Die beiden
Subsysteme 102 und 104 minimieren die Taktsignalverzögerung in
Hochfrequenzsystemen durch bestimmte Taktverteilungsverfahren und
in den meisten Fällen
durch Phasenregelkreise (phase-locked loop, PLL) 108A und 108B. 1 zeigt
als Sender den Chip A und als Empfänger den Chip B. Bei einer
bidirektionalen Busschnittstelle ist jedoch ein Subsystem wie beispielsweise
Chip A oder Chip B in 1 gleichzeitig Sender und Empfänger. 1 veranschaulicht
eine unidirektionale N-Bit-Busschnittstelle, in welcher die Sender-Flipflops (FF) 104-I bis 104-N,
oder die Master-Slave-Signalspeicherpaare
in einer LSSD-Architektur (level-sensitive scan design), im Chip
A 102 Signale zu den Empfänger-Flipflops (FF) 106-I bis 106-N oder Signalspeichern
im Chip B 104 übertragen.
-
Bei
der Ermittlung der Verzögerung
von Sender zu Empfänger
durchläuft
ein gemäß den Prinzipien
der vorliegenden Erfindung angeordnetes System zunächst eine
Verzögerungserkennungs-
und Kalibrierungsphase. Während
dieser Phase sendet der Sender 102 gemäß 2 einige
Tausend Zyklen lang einen Datenstrom mit Testmustern. Das einfachste
Testmuster ist ein Schaltmuster „10101...", das von der Kalibrierungsmuster-Generatorlogik 204 in 2 generiert
wird. Zur Erhöhung
der Genauigkeit und Zuverlässigkeit
der Verzögerungserkennung und
Kalibrierung des Systems kann eine Vielzahl von Testmustern verwendet
werden, zum Beispiel ein Muster „110110...". Das an den FF 208 des Kalibrierungsmustergenerators 204 gesendete
Signal set(synch.) 206 soll veranschaulichen, dass die
Testmuster mit dem Signal select 350 der Logik 306 zur Erkennung
der größten Verzögerung in 3 synchronisiert
werden müssen.
Die Testmuster dienen der Empfängerseite 304 (3)
zur Ermittlung der größten (längsten)
Verzögerungen
während
der mehreren Tausend Testzyklen.
-
3 veranschaulicht
die Empfängerschaltungen
der Logikschaltungen 306 der vorliegenden Erfindung zur
Erkennung der größten Verzögerung. Während der
Phase der Verzögerungserkennung und
Kalibrierung wird für
jedes Bit des Busses das Ausgangssignal wc_ok 308 der Logik
zur Erkennung der größten Verzögerung ermittelt.
Wenn die Verzögerung
eines empfangenen Testmusters in einem Empfängerbit jemals größer ist
als die planmäßige Erfassungstaktflanke
während
der Phase der Verzögerungserkennung,
wird das Signal wc_ok 308 für dieses Bit gelöscht, indem
es auf logisch „0" gesetzt wird. Andernfalls
bleibt es logisch „1". Die Ausgangssignale
(wc_ok) aller Logikschaltungen 350 zur Erkennung der größten Verzögerung dienen
der in 3 gezeigten Steuerlogik 310 zur Takt-
und Signalauswahl dazu, die Multiplexer (MUX) 312-I bis 312-N und
den Takt für
die FF2 314-I bis 314-N der Empfänger auszuwählen.
-
Wenn
alle wc_ok auf logisch „1" stehen, steht der
Ausgang 318 des NAND-Gatters 316 der Steuerlogik 310 zur
Takt- und Signalauswahl in 3 auf logisch „0". Als Eingangssignale
der FF2 314-I bis 314-N werden anstelle der Ausgangssignale
der FF1 320-I bis 320-N die ankommenden Bussignale Bit[0:N]
gewählt.
Der für
die Logik 306-I bis 306-N zur Erkennung der größten Verzögerung verwendete Takt
wird auch als Takt für
die FF2 zur Erfassung der Bussignale Bit[0:N] gewählt.
-
Wenn
ein oder mehrere Ausgangssignale der Logik 306 zur Erkennung
der größten Verzögerung auf
logisch „0" stehen, wird der
Ausgang des NAND-Gatters 316 in 3 auf logisch „1" gesetzt. Das Busbit,
dessen Ausgang wc_ok 308 der Logik zur Erkennung der größten Verzögerung auf
logisch „1" steht, wählt den
Ausgang von FF1 als Eingang des FF2, um das vorzeitige Bit zu einem
frühen
Zeitpunkt zu erfassen. Dasjenige Busbit, dessen Ausgang wc_ok 308 der
Logik zur Erkennung der größten Verzögerung auf
logisch „0" steht, wählt das
Busbit direkt als Eingang des FF2, um das verspätete Bit zu einem späteren Zeitpunkt
zu erfassen. Der invertierte Takt 341 wird als Takt sowohl
für die
FF2 als auch für
die interne Logik 360 des Chips 304 gewählt. Dann
steht das System für
den Normalbetrieb bereit.
-
Die
Phase der Verzögerungserkennung
und Kalibrierung des Systems muss abgeschlossen sein, bevor das
System für
die Busübertragungen
bereit ist. Normalerweise erfolgt diese Phase während einiger Tausend Zyklen,
wenn das System erstmalig eingeschaltet wird. Während des normalen Systembetriebs
braucht diese Prozedur zur Verzögerungserkennung
und Kalibrierung nicht wiederholt zu werden.
-
Es
muss hier betont werden, dass eine typische Implementierung darin
besteht, dass der Sender des Subsystems Chip 202 und der
Empfänger des
Subsystems Chip 304 mit um 180° phasenverschobenem Takt arbeiten
(invertierter Takt für
den FF2 von Chip B 360 und für die interne Logik in 3,
wenn ein oder mehrere Ausgangssignale der Logik 306 zur
Erkennung der größten Verzögerung auf
logisch „0" stehen). Bei einem
System mit mehreren Subsystemen, in welchem es unpraktisch oder schwierig
ist, mit phasenverschobenen Takten für die chipinternen Logikblöcke zwischen
den Sendern und Empfängern
zu arbeiten, muss zur Implementierung der vorliegenden Erfindung
der Takt der Sender-FF 210-I bis 210-N in 2 und
der Empfänger-FF1 320-I bis 320-N in 3 um
180° phasenverschoben werden
gegenüber
dem Takt der FF2 314-I bis 314-N in 3 und
der internen Sender- und Empfängerlogik 212 und 360,
wenn ein oder mehrere Ausgangssignale der Logik zur Erkennung der
größten Verzögerung auf
logisch „0" stehen. Bei einer
solchen alternativen Implementierung ist ein 1-Bit-Indikatorsignal vom
Empfänger
an den Sender oder ein anderes Kommunikationsverfahren zwischen
beiden erforderlich, damit der Sender für seine Treiber-FF 314-I bis 314-N den
nicht invertierten Takt 340 oder den invertierten Takt 341 wählt. Es
muss auch sichergestellt werden, dass die Kombinationslogikpfade
von der internen Senderlogik 212 zu den Treiber-Flipflops
nicht die Vorbereitungszeit der Treiber-Flipflops beeinträchtigen, wenn die Sender-Flipflops
mit dem um 180° phasenverschobenen
Takt betrieben werden. Zur Lösung
solcher Zeitablaufprobleme sind viele Verfahren bekannt.
-
Am
häufigsten
wird das vorliegende System bis zu einer größten Verzögerung von 1,5 Taktperioden
eingesetzt. Während
eine herkömmliche
synchrone Busschnittstelle eine Taktverschiebung von weniger als
einer Taktperiode erfordert, kann bei der vorliegenden Erfindung
die Taktverschiebung zwischen allen Busbits fast 1,5 Taktperioden
betragen. Die Anforderung besteht darin, dass die kleinste Verzögerung innerhalb
von einem Zyklus vor der Takterfassungsflanke der Logik zur Erkennung
der größten Verzögerung liegen
muss und die größte Verzögerung nicht
mehr als 0,5 Zyklen nach dieser Taktflanke betragen kann. Eine weitere
Anforderung für
das System der vorliegenden Erfindung besteht darin, dass die kleinste
und die größte Verzögerung eines Busbits
für jedes
Bitmuster unter den jeweiligen Umgebungsbedingungen (Temperatur,
Spannung usw.) weniger als 0,5 Taktperioden betragen müssen.
-
Bei
einer Busschnittstelle, deren kleinste und größte Verzögerung zwischen 0,5 und 2 Taktperioden
liegen, muss der Takt für
die Logik zur Erkennung der größten Verzögerung gegenüber dem
Senderchiptakt phasenverschoben sein. Die vorliegende Erfindung
kann auch in Fällen
angewendet werden, bei denen die größte Verzögerung mehr als 2 Taktperioden/-zyklen
beträgt,
solange der Bus die im vorigen Absatz beschriebenen Zeitablaufbedingungen erfüllt. Die
Taktfrequenzen des Sender- oder
des Empfänger-Subsystems
können
auch ein Vielfaches oder die Hälfte
der Frequenz der Bustransaktion betragen, wobei die Implementierungsform
des Systems in diesen Fällen
geringfügig
geändert
werden muss.
-
Eine
Variante des vorliegenden Verfahrens und Systems besteht darin,
den Treibertakt zusammen mit den Busbits als Takt für die Empfängerlogik zur
Erkennung der größten Verzögerung und
der FF1 320-I bis 320-N in 3 zu senden.
Dies hat den Vorteil, dass die FF1 320-I bis 320-N quellensynchronisiert
sind und es bei hohen Frequenzen zu weniger PLL-Schwankungsproblemen
kommt. Die empfangenen Treibertakte müssen in einer bekannten Phasenbeziehung
zum Empfängertakt
stehen.
-
Um
eine genauere Verzögerungserkennung und
feiner abgestufte Schritte der Empfänger-Flipflop-Erfassungszeiten
zu erreichen, können
auch mehrere Logikschaltungen zur Erkennung der größten Verzögerung mit
unterschiedlicher Taktphase für jedes
Busbit arbeiten.
-
4 veranschaulicht
eine typische Implementierung der Logik 306 zur Erkennung
der größten Verzögerung (Worst-Case-Erkennungslogik)
von 3. Zum Ausgleich der größten Verzögerungsdifferenz zwischen dem
Testmuster „10101..." und einem realen
Signal, das normalerweise schlechter als das Testmuster ist, wird
ein optionales Verzögerungselement 402 zwischengeschaltet,
damit das Busbit um einen Teil der Taktperiode verzögert wird. Das
Signal set 406 als Eingangssignal in den FF4 408 (alternativ
die Initialisierung der Abtastung) in 4 dient
dazu, das Ausgangssignal wc_ok 308 vor der Verzögerungserkennungs-
und Kalibrierungsphase auf logisch „1" zu setzen. Wie 5 zeigt,
ist Signal select 410 von 4 ein Schaltmuster,
das mit dem Testmuster „10101..." synchronisiert ist,
sodass der FF3 412 das Testmuster zur Verzögerungserkennung
in wechselnden Zyklen abtastet. Das Signal calibrate 414 in 4 kann
nur dann aktiviert (auf logisch „1" gesetzt) werden, wenn am Empfängereingang
das Testmuster „10101..." ankommt. 5 zeigt,
dass das Ausgangssignal wc_ok[0] der Logik zur Erkennung der größten Verzögerung für das Bit[0],
dessen größte Ankunftsverzögerung vor
der ansteigenden Flanke des Taktsignals liegt, auf logisch „1" bleibt und dass
das Ausgangssignal wc_ok[N] der Logik zur Erkennung der größten Verzögerung für das Bit[N],
dessen größte Ankunftsverzögerung während der
Verzögerungserkennungsphase,
wenn das Signal calibrate 414 in 4 auf logisch „1" steht, hinter der
ansteigenden Flanke des Taktsignals liegt, auf logisch „0" geschaltet wird.
-
Wie
in 5 dargestellt, sendet der Sender-Chip A 202 das
Testmuster „10101..." während der
Verzögerungserkennungsphase
in allen Busbits. Die gestrichelten Linien 501 für die Wellenformen
des Bit[0] und 502 für
die Wellenformen des Bit[N] am Empfänger-Chip B 304 zeigen die frühestmöglichen und
die durchgezogenen Linien 501A und 502B die spätestmöglichen
Ankunftszeitpunkte der Bits an. 5 zeigt
den Fall, dass die größte Verzögerung zwischen
allen Busbits weniger als 1,5 Taktperioden beträgt.
-
Nach
der Kalibrierung während
der Verzögerungserkennungsphase
wird das früh
ankommende Bit[0] vom FF1 320-I in 3 (dargestellt
durch Bit[0].FF1.Q als FF1-Ausgangssignal) erfasst und dann zum
FF2 314-I weitergeleitet und mit dem spät ankommenden Busbit[N] synchronisiert.
Anstelle des in 5 gezeigten Schaltmusters können die
Busbits jedes beliebige Muster aufweisen.
-
Auch
wenn eine bevorzugte Ausführungsart der
Erfindung beschrieben wurde, ist klar, dass der Fachmann heute und
in Zukunft diverse Verbesserungen und Weiterentwicklungen vornehmen
kann, die in den Geltungsbereich der folgenden Ansprüche fallen.
Diese Ansprüche
sind so zu verstehen, dass die oben beschriebene Erfindung in geeigneter
Weise geschützt
wird.