-
TECHNISCHES
GEBIET
-
Die vorliegende Erfindung betrifft
allgemein Datenverarbeitungssysteme und insbesondere die Schnittstelle
zwischen dynamischen oder getakteten integrierten Schaltkreis-Chips in einem Datenverarbeitungssystem.
-
HINTERGRUNDINFORMATIONEN
-
Moderne Datenverarbeitungssysteme
erfordern die Übertragung
von Daten zwischen dynamischen oder getakteten Schaltkreisen, die
in zahlreichen Chips in dem System enthalten sind. Zum Beispiel
müssen
Daten zwischen CPUs (central processing unit, Zentraleinheit) in
einem Mehr-CPU-System oder zwischen einer CPU und dem Speichersystem übertragen
werden, das einen Speichercontroller und einen außerhalb
des Chips liegenden Cachespeicher enthalten kann. Datenübertragungen
erfolgen synchron, und die Ankunft der an die Schaltlogik des Chips
gelieferten Daten wird während
eines vorbestimmten Systemtaktes erwartet. Da die CPU-Geschwindigkeiten
zugenommen haben, ist die Geschwindigkeit der Schnittstelle zwischen
Chips (Buszykluszeit) zu einem begrenzenden Faktor geworden, da
die Latenzzeit über
die Schnittstelle die Systemtaktperiode übersteigt. Um die Systemsynchronisation
zu wahren, muss der Systementwickler die Busgeschwindigkeit reduzieren,
damit der Zyklus, in dem Daten ankommen, eindeutig ist.
-
Dies wird ferner unter Bezug auf 1A verständlich, in der in Form eines
Blockschaltbilds eine Schnittstelle nach dem Stand der Technik zwischen zwei
integrierten Schaltkreis-Chips,
und zwar Chip 102 und Chip 104, in einem Datenverarbeitungssystem
dargestellt ist. Jeder der Chips 102 und 104 empfängt einen
mit einem Phasenregelkreis PLL 108 gekoppelten Referenztakt 106.
Der PLL 109 erzeugt einen lokalen Takt, und zwar den Takt 110 im
Chip 102 und den Takt 111 im Chip 104,
der an den Referenztakt 106 gekoppelt ist. Der Referenztakt 106 stellt
einen „Zeitnullpunkt" bereit und kann
je nach der Vervielfachung durch den PLL 108 über mehrere
Perioden der lokalen Takte 110 und 111 hinweg
gelten. Der Bustakt 113 wird vom Referenztakt 106 abgeleitet,
indem der lokale Takt 110 im Dividierer 112 durch
eine vorbestimmte ganze Zahl N geteilt wird. Die vom Chip 102 zum
Chip 104 zu sendenden Daten werden an einer vorbestimmten
Flanke des geteilten lokalen Taktes 111 zwischengespeichert
und über
den Treiber 118 auf die Datenleitung 116 geschickt.
Die Daten werden am Empfänger
(RX) 120 empfangen und an einer vorbestimmten Flanke des
geteilten lokalen Taktes 110 im Chip 104 in dem
Ziel-Zwischenspeicher 122 zwischengespeichert. Infolge
der physischen Trennung zwischen Chip 102 und Chip 104 erscheinen
die Daten mit einer zeitlichen Verzögerung am Eingang 124 des
Ziel-Zwischenspeichers 122. (Der Beitrag von RX 120 zur
Latenzzeit ist relativ klein im Vergleich zu der durch die Datenübertragung bewirkten
Verzögerung.)
Die zeitliche Verzögerung wird
als Latenzzeit bezeichnet und wird ausführlicher in Verbindung mit 1B erörtert.
-
Ebenso sendet der Chip 104 Daten über die Datenleitung 126 zum
Chip 102. Die vom Chip 104 gesendeten Daten werden
an einer vorbestimmten Flanke des Ausgangssignals vom Dividierer 130, der den
lokalen Takt 111 durch N teilt, im Zwischenspeicher 128 gespeichert.
Die Daten werden über
den Treiber 132 auf die Datenleitung 126 geschickt
und über
den Empfänger 136 im
Ziel-Zwischenspeicher 134 gespeichert.
Die in den Chip 102 gelangenden Daten werden an einer vorbestimmten
Flanke eines Ausgangssignals des Dividierers 130, der den
lokalen Takt durch N teilt, im Daten-Zwischenspeicher 134 gespeichert.
-
In 1B ist
ein beispielhaftes Zeitablaufdiagramm für die Schnittstelle 100 von 1A gemäß dem Stand der Technik veranschaulicht.
Die vom Chip 102 zum Chip 104 gesendeten Daten 115 werden
an einer ansteigenden Flanke t1 des Bustaktes 113 im
Zwischenspeicher 114 zwischengespeichert. Der Bustakt 113 wird
durch Teilen des lokalen Taktes 110 durch N in den Dividierern 112 und 130 im
Chip 102 erzeugt. Mit einer Verzögerung durch die Latenzzeit
T1 erscheinen die Daten 117 am
Eingang des Ziel-Zwischenspeichers 122 und werden in diesem an
der ansteigenden Flanke t2 des Bustaktes 123 zwischengespeichert.
Der Bustakt 123 wird durch Teilen des lokalen Taktes 111 durch
N in den Dividierern 112 und 130 im Chip 104 erzeugt.
Dadurch erscheinen die Daten 125 in dem System nach dem Stand
der Technik gemäß 1B im Chip 104 einen Buszyklus
nach seinem Start vom Chip 102. In 1B beträgt die Taktverschiebung zwischen
dem Bustakt 113 und dem Bustakt 123 Null.
-
Wenn die Geschwindigkeit des Bustaktes
in der Schnittstelle 100 in 1A erhöht wird,
kann die Latenzzeit einen Bustaktzyklus übersteigen. Das kann dann zu
dem in 1C veranschaulichten
beispielhaften Zeitablaufdiagramm führen. Wie zuvor sind die Daten 115 an
der Flanke t1 des Bustaktes 113 zwischengespeichert
worden. Die Daten 117 erscheinen nach der Latenzzeit T1, die länger
als die Periode des Bustaktes 113 und des Bustaktes 123 ist,
am Eingang 124 des Ziel-Zwischenspeichers 122.
Die Daten 117 werden an der Flanke t3 des
Bustaktes 123 im Chip 104 zwischengespeichert,
um die Daten 125 im Chip 104 bereitzustellen.
Wenn die Schnittstelle 100 zwischen den Chips 102 und 104 die
Schnittstelle mit der längsten
Latenzzeit einer Vielzahl von Schnittstellen zwischen dem Chip 102 und
der Vielzahl anderer Chips im Datenverarbeitungssystem darstellt,
stellt die in 1C veranschaulichte
Latenzzeit von zwei Zyklen den „Zielzyklus" für die Übertragung
und Speicherung von Daten zwischen Chips, wie etwa zwischen dem
Chip 102 und dem Chip 104, dar. Der Zielzyklus
ist der vorbestimmte Zyklus, in dem die Daten durch den Chip erwartet
werden. Bei Schnittstellen mit einer kürzeren Latenzzeit müssen gemäß dem Stand
der Technik eventuell Lücken
aufgefüllt
werden, um einen synchronen Betrieb zu gewährleisten. Durch das Auffüllen wird
gewährleistet,
dass schnellere Pfade in der Schnittstelle 100 Latenzzeiten
größer als
ein Bustaktzyklus und kleiner als zwei Bustaktzyklen besitzen, wodurch
die Datensynchronisation aufrechterhalten werden kann.
-
Dies wird ferner unter Bezug auf 1D verständlich, die eine Vielzahl 101 von
Chips, und zwar die Chips 102, 103 und 104,
veranschaulicht. Der Chip 102 und der Chip 104 sind über einen „langsamen" Pfad 152 mit
einer langen Latenzzeit TS verbunden. Der
Chip 103 ist über
einen „schnellen" Pfad 154 mit
einer kurzen Latenzzeit TF mit dem Chip 102 verbunden.
Ein „Nominalpfad", der die Vielzahl 101 von Chips 102-105 verbindet,
weist die Latenzzeit TN auf, die der Latenzzeit
auf dem Pfad 156 zwischen dem Chip 102 und dem
Chip 105 entspricht.
-
Das Zeitablaufdiagramm in 1E liefert weitere Einzelheiten. 1E veranschaulicht ein Zeitablaufdiagramm ähnlich dem
in 1C gezeigten, in
dem der Zielzyklus für
das Übernehmen
von Daten in einen empfangenden Chip zwei Buszyklen beträgt. In 1E ist die normale Latenzzeit
TM zu 1,5 Buszyklen angegeben, während die
Latenzzeit TF des schnellen Pfades etwas
größer als
ein Buszyklus und die Latenzzeit TS des
langsamen Pfades etwas kleiner als zwei Buszyklen veranschaulicht
ist. In diesem Fall übernimmt
jeder der Vielzahl von Chips 101 in 1D die Daten während des Zielzyklus, nämlich zwei
Buszyklen nach dem Start der Daten.
-
Wenn der schnelle Pfad jedoch kürzer ist, was
durch die Latenzzeit des schnellen Pfades veranschaulicht ist, geht
die Datensynchronisation verloren. In diesem Fall kommen die Daten
vor dem Übergangszeitpunkt
t2 des Bustaktes von Chip 103 am
Chip 103 an, was durch den gestrichelten Teil der Daten 117 am
Chip 103 veranschaulicht ist, und werden nach einem Buszyklus
im Chip 103 zwischengespeichert. Dies wird durch den gestrichelten
Teil der Daten 125 im Chip 103 veranschaulicht.
Um die Synchronisation wiederherzustellen, muss der schnelle Pfad,
nämlich
Pfad 154, zwischen den Chips 102 und 103 aufgefüllt werden,
um die Latenzzeit des schnellen Pfades von TS auf
TF zu erhöhen. Folglich wird der Zeitablauf
einer solchen Schnittstelle nach dem Stand der Technik auf einen
bestimmten Arbeitsbereich, eine bestimmte Schnittstellenlänge, abgestimmt
und gilt nur für
die Technologie, für
die das Design zeitlich ausgerichtet und analysiert worden ist.
-
Desgleichen führt die Erhöhung der Taktgeschwindigkeit
der Chips in 1D zu einem
Synchronisationsverlust. Dies wird an einem konkreten Beispiel deutlich.
Die lokale Taktzykluszeit wird zunächst zu einer Periode von 1
Nanosekunde (ns) angenommen. Der Bustakt hat dann eine Periode,
die ein festes Vielfaches, in diesem Fall zwei, des lokalen Taktes
ausmacht. Die normale Latenzzeit TM der Schnittstelle
sei zu 3 ns mit +/- 0,99 ns Zeitschwankung angenommen, d.h. der
beste Fall oder der schnellste Pfad beträgt für TF 2
ns und der schlechteste Fall oder der langsamste Pfad beträgt für TS 4 ns. Die Daten kommen nach zwei Nanosekunden und
vor vier Nanosekunden an. Das bedeutet, dass die Schnittstelle unter
allen Bedingungen korrekt arbeitet und die Daten garantiert nach
dem ersten und vor dem zweiten Buszyklus ankommen. Wird die Geschwindigkeit
der Chips jedoch auf eine Zykluszeit von 0,9 ns erhöht, ändert sich
die Buszykluszeit auf 1,8 ns. Um den Daten ausreichend Zeit zur
Verfügung
zu stellen, um unter den Bedingungen des schlechtesten Falls die
Schnittstelle zu passieren, dürfen
die Daten nicht vor 2,5 Buszyklen bzw. 4,5 ns übernommen werden, da zwei Buszyklen
kleiner als die Latenzzeit TS des langsamen
Pfades bzw. 4 ns sind. Dann können,
um mit einem Buszyklus von 1,8 ns zu arbeiten, die schnellsten Daten
nach 1,5*1,8 ns = 2,7 ns (einen Buszyklus eher) ankommen, um zu
sicherzustellen, dass die Daten unter allen Bedingungen während desselben
Zyklus eintreffen. Aus den obigen Latenzzeitwerten ergibt sich jedoch,
dass die frühesten
Daten auf dem schnellen Pfad mit einer Latenzzeit TF von
3 ns -0,99 ns = 2,01 ns eintreffen können. Bei einer herkömmlichen
synchronen Bauart kann daher die Arbeit mit einer Buszykluszeit
von 1,8 ns nicht unterstützt
werden. Um ein synchrones Arbeiten zu ermöglichen, muss das Verhältnis vom
Bus zum Prozessor auf mindestens 3 : 1 verlangsamt und bei einer
Zykluszeit von 2,7 ns gearbeitet werden (2,7 ns*1,5 Zyklen = 4,05
ns und 2,7 ns*0,5 Zyklen = 1,35 ns), was den Anstieg der lokalen
Taktgeschwindigkeit verhindert.
-
Folglich besteht in der Technik ein
Bedarf an einer Vorrichtung und einem Verfahren zur Regelung der
Datenübertragung
zwischen Chips in einem Datenverarbeitungssystem mit zunehmenden
Taktgeschwindigkeiten. Insbesondere besteht ein Bedarf an Verfahren
und Vorrichtungen zur Gewährleistung
der Synchronisation zwischen Chips in Datenverarbeitungssystemen,
in denen die Latenzzeiten von Datenpfaden über mehr als einen Buszyklus
schwanken und in denen die Notwendigkeit der vom Hardwaredesign
abhängigen
Latenzzeitkompensation beseitigt ist.
-
Es ist eine Aufgabe der vorliegenden
Erfindung, ein Verfahren bereitzustellen, dass die oben genannten
Nachteile beseitigt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung
wird eine Schnittstellenvorrichtung bereitgestellt, die Folgendes
umfasst:
eine erste Speichereinheit zum Speichern einer ersten
Menge von Datenwerten;
eine zweite Speichereinheit zum Speichern
einer zweiten Menge von Datenwerten;
eine mit der ersten und
der zweiten Speichereinheit verbundene Schaltlogik zum sequenziellen
Ausgeben eines ersten Datenwertes aus der ersten Speichereinheit
und eines zweiten Datenwertes aus der zweiten Speichereinheit als
Reaktion auf mindestens ein Steuersignal, wobei Datenwerte für eine vorbestimmte
Anzahl von Zyklen eines ersten Taktes in der ersten und der zweiten
Speichereinheit verbleiben, sowie eine erste und eine zweite Auswahlschaltlogik, die
je einen einzeln mit entsprechenden Eingängen der ersten und der zweiten
Speichereinheit verbundenen Ausgang aufweisen, wobei die erste und
die zweite Auswahlschaltlogik jeweils einen ersten Eingang zum Empfangen
eines Datenstroms und einen mit dem entsprechenden ersten Ausgang
der ersten und der zweiten Speichereinheit verbundenen zweiten Eingang
aufweisen, wobei die erste und die zweite Auswahlschaltlogik der
Auswahl eines Signals zum Ausgeben an den ersten und zweiten Eingang als
Reaktion auf ein erstes und ein zweites Steuersignal dient.
-
Ebenfalls gemäß der vorliegenden Erfindung wird
ein Verfahren zum Verbinden integrierter Schaltkreiseinheiten bereitgestellt,
das die folgenden Schritte umfasst:
Speichern einer ersten
Menge von Datenwerten in einer ersten Speichereinheit, wobei jeder
Datenwert der ersten Menge für
eine vorbestimmte Anzahl von Zyklen eines ersten Taktes gespeichert
wird;
Speichern einer zweiten Menge von Datenwerten in einer
zweiten Speichereinheit, wobei jeder Datenwert der zweiten Menge
für eine
vorbestimmte Anzahl von Zyklen eines ersten Taktes gespeichert wird;
sequenzielles
Ausgeben eines ersten Datenwerts aus der ersten Speichereinheit
und eines zweiten Datenwerts aus der zweiten Speichereinheit durch
Anschließen
eines Schaltkreises an die erste und die zweite Speichereinheit
und Bereitstellen eines Steuersignals für den Schaltkreis, wobei das
Steuersignal eine Periode aufweist, die ein vorbestimmtes Vielfaches
einer Periode des ersten Taktes ist;
Empfangen eines Datenstroms
an einem ersten Eingang jeder ersten und zweiten Auswahlschaltlogik;
Bereitstellen
der Ausgangssignale der ersten und der zweiten Speichereinheit an
einem zweiten Eingang jeder ersten bzw. zweiten Auswahlschaltlogik;
Ausgeben
jedes Datenwerts der ersten Menge von Datenwerten von der ersten
Auswahlschaltlogik an die erste Speichereinheit als Reaktion auf
ein erstes Auswahlsignal; und
Ausgeben jedes Datenwerts der
zweiten Menge von Datenwerten von der zweiten Auswahlschaltlogik
an die zweite Speichereinheit als Reaktion auf ein zweites Auswahlsignal.
-
Oben sind die Merkmale und die technischen Vorteile
der vorliegenden Erfindung nur grob skizziert worden, damit das
Verständnis
der folgenden detaillierten Beschreibung der Erfindung erleichtert
wird. Im Folgenden werden weitere Merkmale und Vorteile der Erfindung
beschrieben, die Gegenstand der Ansprüche der Erfindung sind.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Um ein vollständiges Verständnis der
vorliegenden Erfindung und deren Vorteile zu ermöglichen, wird nun auf die folgenden Beschreibungen
in Verbindung mit den beiliegenden Zeichnungen verwiesen, in denen
-
1A eine
Chip-Schnittstelle gemäß dem Stand
der Technik veranschaulicht;
-
1B schematisch
ein Zeitablaufdiagramm für
eine Ausführungsform
der Chip-Schnittstelle von 1A gemäß dem Stand
der Technik veranschaulicht;
-
1C ein
Zeitablaufdiagramm für
eine weitere Ausführungsform
der Chip-Schnittstelle von 1A gemäß dem Stand
der Technik veranschaulicht;
-
1D eine
Vielzahl miteinander verbundener Chips in einem Datenverarbeitungssystem
veranschaulicht;
-
1E schematisch
ein Zeitablaufdiagramm für
eine Ausführungsform
der Vielzahl miteinander verbundener Chips von 1D veranschaulicht;
-
2 als
Blockschaltbild eine repräsentative Hardwareumgebung
zur Realisierung der Erfindung veranschaulicht;
-
3 als
Blockschaltbild eine Chip-Schnittstelle gemäß einer Ausführungsform
der vorliegenden Erfindung veranschaulicht;
-
4A als
Blockschaltbild eine elastische Schnittstelle gemäß einer
Ausführungsform
der vorliegenden Erfindung veranschaulicht;
-
4B schematisch
ein Zeitablaufdiagramm der Ausführungsform
der vorliegenden Erfindung von 3A veranschaulicht;
-
5 eine
alternative Ausführungsform
einer Chip-Schnittstelle
gemäß der vorliegenden
Erfindung veranschaulicht;
-
6A eine
weitere alternative Ausführungsform
einer elastischen Schnittstelle gemäß der vorliegenden Erfindung
veranschaulicht;
-
6B schematisch
ein Zeitablaufdiagramm der elastischen Schnittstelle von 5A veranschaulicht;
-
7A eine
weitere alternative Ausführungsform
einer elastischen Ausführungsform
gemäß der vorliegenden
Erfindung veranschaulicht;
-
7B schematisch
ein Zeitablaufdiagramm für
die Ausführungsform
von 7A veranschaulicht;
-
8A als
Blockdiagramm eine weitere alternative Ausführungsform der elastischen
Schnittstelle gemäß der vorliegenden
Erfindung veranschaulicht; und
-
8B schematisch
ein Zeitablaufdiagramm für
die Ausführungsform
von 8A veranschaulicht.
-
DETAILLIERTE BESCHREIBUNG
-
Die vorliegende Erfindung stellt
einen elastischen Schnittstellenmechanismus bereit, der die Datensynchronisation
zwischen einer Vielzahl von Datenverarbeitungschips in einem Datenverarbeitungssystem
herstellt. Für
die Datensynchronisation ist keine Latenzzeitkompensation erforderlich,
durch die der Schaltungsaufwand erhöht und das Hardwaredesign komplizierter
würde.
Die „Elastizität" der Schnittstelle
berücksichtigt
die physische Differenz zwischen Pfaden, die die Datenverarbeitungs-Chips
im System verbinden. Durch Speichern der empfangenen Daten in einer
Vielzahl von Speicherelementen und selektive Steuerung der zwischengespeicherten Daten
wird in einem Datenverarbeitungssystem mit Latenzzeiten, die sich
um mehr als einen Bustaktzyklus voneinander unterscheiden, die Datensynchronisation
hergestellt. Die Synchronisation kann dynamisch hergestellt werden,
indem beim Einschalten oder nach einem Zurücksetzen (Reset) beim Initialisieren
eine Einstellungsprozedur durchgeführt wird. Auf diese Weise kann
die Datensynchronisation gemäß den Prinzipien
der vorliegenden Erfindung erreicht werden, ohne für die Platine
eine Zeitablaufanalyse zu erstellen und ohne eine Latenzzeitkompensation
für schnelle
Pfade durchzuführen.
-
In der folgenden Beschreibung werden
zahlreiche spezielle Einzelheiten, wie Bustaktfrequenzen und Synchronisationszyklen,
Taktflanken usw. dargelegt, um ein vollständiges Verständnis der
vorliegenden Erfindung zu ermöglichen.
Dem Fachmann ist jedoch klar, dass die vorliegende Erfindung auch
ohne derartige spezielle Einzelheiten realisiert werden kann. In
anderen Fällen
wurden bekannte Schaltungen als Blockdiagramm dargestellt, um die vorliegende
Erfindung nicht durch überflüssige Details
unkenntlich zu machen.
-
In den 2 – 9 sind die Elemente nicht notwendigerweise
maßstabsgerecht
dargestellt und gleiche oder ähnliche
Elemente in den verschiedenen Ansichten durch dieselben Bezugsnummern
gekennzeichnet.
-
2 stellt
eine repräsentative
Hardwareumgebung zur Realisierung der vorliegenden Erfindung dar
und zeigt eine typische Hardwareanordnung des Datenverarbeitungssystems 213 gemäß dem Gegenstand
der Erfindung mit einer Zentraleinheit (central processing unit,
CPU) 210, wie beispielsweise einem herkömmlichen Mikroprozessor, und
einer Anzahl anderer über
den Systembus 212 miteinander verbundener anderer Einheiten.
Das Datenverarbeitungssystem 213 enthält einen flüchtigen Speicher (random access
memory, RAM) 214, einen Nur-Lese-Speicher (read only memory, ROM) 216 sowie
E/A-Adapter (input/output, Eingabe/Ausgabe) 218 zum Verbinden
von Peripherieeinheiten wie Platteneinheiten 220 und Bandlaufwerken 240 mit
dem Bus 212, einen Benutzerschnittstellenadapter 222 zum
Verbinden der Tastatur 224, der Maus 226 und/oder
anderer Benutzerschnittstelleneinheiten wie einer (nicht gezeigten)
Touchscreen-Einheit mit dem Bus 212, einen Kommunikationsadapter 234 zum
Verbinden der Arbeitsstation 213 mit einem Datenverarbeitungsnetz
sowie einen Bildschirmadapter 236 zum Verbinden von Bus 212 mit
einer Anzeigeeinheit 238. Die CPU 210 kann weitere
hier nicht gezeigte Schaltlogik enthalten, wozu üblicherweise in einem Mikroprozessor
enthaltene Schaltlogik gehört, wie
z.B. eine Ausführungseinheit,
eine Busschnittstelleneinheit, eine Recheneinheit usw. Die Schnittstelle
der vorliegenden Erfindung kann in der CPU 210 enthalten
sein. Außerdem
kann die vorliegende Erfindung in Speichereinheiten wie dem RAM 214 enthalten
sein (der eine hier nicht gezeigte Speichersteuerschaltlogik enthalten
kann). Die CPU 210 kann sich in einer einzelnen integrierten
Schaltung befinden.
-
In 3 ist
eine Schnittstelle 300 gemäß der vorliegenden Erfindung
veranschaulicht. Die Schnittstelle 300 ist auf dem Chip 302 und
auf dem Chip 304 untergebracht, die über eine entsprechende Schnittstelle 300 Daten
miteinander austauschen. (Obwohl die Ausführungsform der vorliegenden
Erfindung in Verbindung mit einer Schnittstelle zwischen Chips beschrieben
wird, können
die Prinzipien der vorliegenden Erfindung auch in einer Schnittstelle
zwischen beliebigen Paaren von getakteten Zwischenspeichern realisiert
werden.) Zwischen den Chips 302 und 304 werden
Daten mit einer durch einen Bustakt, und zwar die Bustakte 306 und 308,
festgelegten Rate übertragen.
Die Bustakte 306 und 308 weisen nominell dieselbe
Frequenz auf und werden von dem an einem Phasenregelkreis (phase
lock loop, PLL) bereitgestellten Referenztakt 310 abgeleitet;
der PLL 312 ist in jedem Chip 302 und 304 vorhanden.
Bei einer Ausführungsform
der vorliegenden Erfindung kann der Referenztakt 310 ein
Systemtakt sein. Jeder PLL 312 gibt einen lokalen Takt
aus, und zwar den lokalen Takt 314 im Chip 302 und
den lokalen Takt 316 im Chip 304, der mit dem
Referenztakt 310 in Phase gehalten wird und der ein vorbestimmtes
ganzzahliges Vielfaches M der Periode des Referenztakts 310 sein
kann. Der lokale Takt 314 wird durch den Treiber 318 gepuffert,
um von Chip 302 den Bustakt 306 bereitzustellen.
Entsprechend wird der lokale Takt 316 durch den Treiber 320 gepuffert, um
von Chip 304 den Bustakt 308 bereitzustellen.
-
Der Bustakt wird zusammen mit den
vom Chip gesendeten Daten bereitgestellt. Die Daten 322 von
Chip 302 werden im Ausgangszwischenspeicher 324 zwischengespeichert
und durch den Treiber 326 verstärkt und gepuffert. Die Daten
werden an einer vorausgewählten
Flanke des lokalen Taktes 314 zwischengespeichert. Die
Daten werden über
einen Multiplexer (MUX) 328 empfangen. Der MUX 328 empfängt in Verbindung
mit der Einstellungsprozedur auch ein vorbestimmtes Synchronisationsmuster. Diese
Details werden im Folgenden beschrieben.
-
Die Daten 322 werden durch
den Empfänger (RX) 330 gepuffert
und an der elastischen Schnittstelleneinheit 332 bereitgestellt.
Der gemeinsam mit den Daten 322 gesendete Bustakt 306 wird
durch RX 334 gepuffert, dessen Ausgang den E/A-Takt 336 bildet,
welcher ebenfalls an der elastischen Schnittstelle 332 bereitgestellt
wird. Die gemeinsam mit dem Bustakt 308 vom Chip 304 zum
Chip 302 gesendeten Daten werden in analoger Weise von
der Schnittstelle 300 im Chip 302 empfangen, und
es ist klar, dass die folgende Beschreibung der elastischen Schnittstelle 332 in
gleichen Weise auch für
den Empfang der Daten vom Chip 304 durch den Chip 302 gilt.
-
Die Zielzykluseinheit (target cycle
unit) 339 gibt den Zielzyklus vor, bei dem die Daten durch
den lokalen Takt im empfangenden Chip, wie etwa durch den loklalen
Takt 316 im Chip 304, zwischengespeichert werden.
Der Zielzyklus wird in Verbindung mit den 4A/4B erörtert, die
eine Schnittstelle 322 mit einer Elastizität von zwei
veranschaulichen. Für
eine Schnittstelle mit einer Elastizität E kann die Zielzykluseinheit
eine E-Teiler-Schaltung (devide by E circuit) enthalten. Außerdem kann
die Taktzykluseinheit 339 ein Programmierregister zum Speichern
des vorbestimmten Zielzykluswertes enthalten, der mittels des Zielprogramms 341 geladen
werden kann. Der in der Zielzykluseinheit 339 im Chip 302 programmierte Zielzyklus
kann sich von dem in der Zielzykluseinheit 339 im Chip 304 programmierten
Zielzyklus unterscheiden. Die Zielzykluseinheit 339 gibt
ein Auswahlsteuersignal (select control) 343 aus, das in
Abhängigkeit
von der Ausführungsform
der Schnittstelleneinheit 332 und der jeweiligen Elastizität E eine
Vielzahl von Signalen enthalten kann. Das Auswahlsteuersignal 343 wird
in Verbindung mit den 4A – 8B näher beschrieben, in denen Ausführungsformen
der Schnittstelleneinheit 332 veranschaulicht sind.
-
4A veranschaulicht
eine Ausführungsform
einer elastischen Schnittstelleneinheit 332 gemäß der vorliegenden
Erfindung. Die Einheit 332 enthält den Multiplexer (MUX) 402 mit
einem Eingang 404, der Daten vom Empfänger 330 empfängt. Der Ausgang 406 des
Multiplexers 402 ist mit dem Dateneingang (D) des Zwischenspeichers 408 verbunden. Der
Zwischenspeicher 408 wird durch den E/A-Takt 336 getaktet.
Der Zwischenspeicher 408 speichert die Daten an seinem
Eingang D an einer ansteigenden Flanke des Taktes 436 und
hält sie
bis zu einer nächsten
ansteigenden Flanke des Taktes 336. Der Ausgang 410 des
Zwischenspeichers 408 ist an einen zweiten Eingang 412 des
Multiplexers 402 rückgekoppelt.
Der Multiplexer 402 wählt
zur Ausgabe auf dem Ausgang 406 als Reaktion auf das Gatter
(gate) 414 zwischen dem Eingang 404 und dem Eingang 412 aus.
-
Das Gatter 414 wird aus
dem Bustakt 306 abgeleitet und weist eine Periode auf,
die doppelt so groß ist
wie die des Bustaktes 306. Das Gatter 414 kann
unter Verwendung eines Verzögerungsregelkreises
(delay lock loop, DLL) erzeugt werden. Eine Ausführungsform eines DLL, der in
der vorliegenden Erfindung verwendet werden kann, ist in der gleichzeitig
anhängigen
Patentanmeldung derselben Autoren „Dynamic Wave Pipelined Interface
Apparatus und Method Therefor" beschrieben.
Die Phase des Gatters 414 wird durch die oben beschriebene,
während
der Initialisierung durchgeführte
Einstellungsprozedur vorgegeben, und die Funktion des Gatters 414 wird
in Verbindung mit 4B näher beschrieben.
-
Die Daten vom Empfänger 330 werden
parallel über
den Eingang 418 auch einem zweiten Multiplexer 416 zugeleitet.
Der Ausgang 420 des Multiplexers 416 ist mit dem
Eingang D eines zweiten Zwischenspeichers 422 verbunden,
der ebenfalls durch den E/A-Takt 336 getaktet
wird und die Daten an der ansteigenden Flanke des E/A-Taktes 336 zwischenspeichert,
um die Daten bis zur nächstfolgenden
ansteigenden Flanke des Taktes zu halten. Der Ausgang 424 des
Zwischenspeichers 422 ist mit einem zweiten Eingang 426 des
Multiplexers 416 verbunden.
-
Der Multiplexer 416 trifft
als Reaktion auf das \Gatter 428, welches das Komplement
des Gatters 414 ist, die Auswahl zwischen dem Eingang 418 und dem
Eingang 426. Wenn also einer der Multiplexer 402 und 416 die
vom Empfänger 330 empfangenen Daten
auswählt,
wählt der
andere Multiplexer die in seinem entsprechenden Zwischenspeicher,
und zwar im Zwischenspeicher 408 oder 422, enthaltenen
Daten. Auf diese Weise bleibt ein zuvor in einem der Zwischenspeicher 408 und 422 gespeichertes
Datenbit für
einen weiteren Zyklus des E/A-Taktes 336 gespeichert.
-
Es werden also zwei Datenströme erzeugt, von
denen jeder für
zwei Perioden des E/A-Taktes 336 gültig bleibt. Wegen der Phasenumkehr
zwischen Gatter 414 und 428 werden die beiden
Datenströme
durch eine zeitliche Verschiebung um einen Datenwert, d.h. um einen
Zyklus des E/A-Taktes 336 gegeneinander verschoben.
-
Dies kann unter Bezug auf 4B näher erläutert werden, in der ein Zeitablaufdiagramm
gemäß der elastischen
Schnittstelleneinheit 332 in 4A veranschaulicht
ist. Die im Ausgangszwischenspeicher 324 enthaltenen Daten 325 werden,
wie zuvor beschrieben, synchron zum lokalen Takt 314 im
Chip 202 ausgegeben. Die Daten 322 werden am Empfänger 230 im
Chip 204 empfangen und um die durch den Pfad zwischen den
Chips 202 und 204 repräsentierte Latenzzeit verzögert, wie
oben in Verbindung mit 1D erörtert wurde.
Der Datenwert „a" der Daten 322 wird über den
Ausgang 406 des Multiplexers 402 durch den Zwischenspeicher 408 an
der ansteigenden Flanke t1 des E/A-Taktes 336 zwischengespeichert.
Da das Gatter 414 bestätigt
oder „offen" ist, werden die
am Eingang 404 vom Empfänger 330 ankommenden
Daten gewählt,
um durch den Multiplexer 402 ausgegeben zu werden. (Ein
Gatter wird als offen bezeichnet, wenn der entsprechende Multiplexer
den Empfang des ankommenden Datenstroms für den jeweiligen Eingang auswählt. Obwohl dies
in der Ausführungsform
von 4 durch einen Logikzustand „HIGH" dargestellt wird,
ist es klar, dass ein offenes Gatter in einer alternativen Ausführungsform
durch einen Logikzustand „LOW" erreicht werden
kann.)
-
Umgekehrt stellt das \Gatter 428 den
Negationsfall dar. Als Folge dieses Zustands wählt der Multiplexer 416 einen
zuvor im Zwischenspeicher 422 enthaltenen Datenwert aus,
der durch den Multiplexer 416 zum Eingang D des Zwischenspeichers 422 rückgekoppelt
wird. Dadurch bleibt der im Zwischenspeicher 422 enthaltene
Datenwert für
eine weitere Periode des E/A-Taktes 336 gespeichert, der
das Taktsignal sowohl für
den Zwischenspeicher 408 als auch für den Zwischenspeicher 422 bereitstellt,
wie in Verbindung mit 4A beschrieben
wurde.
-
Der E/A-Takt 336 wird, wie
in 3 gezeigt, aus dem
Bustakt 306 erhalten. Es wird vorausgesetzt, dass der Bustakt 306 beim
Start, wie in 4B veranschaulicht,
in einem für
Daten gültigen
Fenster zentriert wird. Das Zentrieren des Bustaktes wird in der
gleichzeitig anhängigen
Patentanmeldung derselben Autoren „Dynamic Wave-Pipelined Interface and
Method Therefor" beschrieben.
Der Bustakt 306 erfährt
beim Passieren der Schnittstelle ebenso wie die Daten eine Verzögerung.
Die Latenzzeit des Bustaktes 306 im Chip 304 ist
vergleichbar mit T1; dies spiegelt sich
im E/A-Takt 336 wider, der dadurch bezüglich der Daten 322 zentriert
wird.
-
Das Gatter 414 wird so erzeugt,
dass die Flanken des Gatters 414 mit den fallenden Flanken des
E/A-Taktes 336 in Phase bleiben. An der Flanke t2 des E/A-Taktes 336 fällt die
Flanke t3 des Gatters 414. Als
Reaktion darauf wählt
der Multiplexer 402 die Daten des Ausgangs 410 des
Zwischenspeichers 408, der mit dem Eingang 412 des
Multiplexers 402 verbunden ist, um sie über den Ausgang 406 auszugeben.
Da das Gatter 414 negiert ist, wird das \Gatter 428 freigegeben,
wodurch der Multiplexer 416 die vom Empfänger 330 am
Eingang 418 ankommenden Daten zur Ausgabe am Ausgang 420 auswählt. Dieser
Ausgang ist mit dem Eingang D des Zwischenspeichers 422 verbunden.
Die vom Empfänger 330 empfangenen
Daten entsprechen nun dem Datenwert „b" der Daten 322.
-
An der Flanke t4 des
E/A-Taktes 336 werden die Daten an den jeweiligen Eingängen D der
Zwischenspeicher 408 und 422 zwischengespeichert.
Im Zwischenspeicher 408 entspricht dies dem zuvor enthaltenen
Datenwert a der Daten 322, der dann für eine weitere Periode des
lokalen Taktes 416 gespeichert bleibt. Der Datenwert b
wird über
den Multiplexer 416 zur Weiterleitung zum Ausgang 424 im
Eingang D des Zwischenspeichers 422 zwischengespeichert.
-
Beim nächsten Übergang t7 des
E/A-Taktes 336 wird der Datenwert „c" gespeichert. Da an der Flanke t7 das Gatter 414 offen ist, erscheint
der Datenwert c der Daten 322 am Ausgang 406 des
Multiplexers 402. Der Datenwert b verbleibt im Zwischenspeicher 422,
da das \Gatter 428 negiert und damit das Komplement zum
Gatter 414 ist. Kommt der Datenstrom 322 weiterhin
an, erzeugt die elastische Schnittstelle 332 auf diese
Weise weiterhin zwei Datenströme 410 und 424 der
Zwischenspeicher 408 bzw. 422. Die beiden Datenströme enthalten
wechselnde Teile des ankommenden Datenstroms 322, die für zwei Perioden
des lokalen Taktes 416 gültig sind, wie in 4B veranschaulicht ist.
-
Die Struktur des Eingangsdatenstroms
wird wiederhergestellt durch abwechselndes Auswählen von Werten aus einem der
beiden Datenströme
synchron zum lokalen Takt 416. Es wird ein lokaler Taktzielzyklus
gewählt.
Der lokale Taktzielzyklus ist der Zyklus, bei dem Daten durch den
lokalen Takt in einen Ziel-Zwischenspeicher
gespeichert werden, wie etwa den lokalen Takt 316 in den 3 und 4.
Der Zielzyklus wird durch Analyse ermittelt. Der Zielzyklus muss
zeitlich nach dem schlechtesten Fall der durch die Schnittstelle
verursachten Latenzzeit erfolgen. Zum Beispiel ist in der in 4B dargestellten Ausführungsform
der Zielzyklus auf drei Perioden des lokalen Taktes 316 festgelegt
worden, was der Flanke t8 entspricht. Der
Zielzyklus wird von dem durch den Referenztakt 310 ermittelten
Referenznullpunkt ab gemessen, wie oben in Verbindung mit dem Referenztakt 106 in 1A beschrieben wurde. In der
Ausführungsform
von 4A/4B mit der Elastizität zwei können die Daten bis zu zwei
lokale Taktzyklen früher
als der Zielzyklus eintreffen. Bei einer solchen Ausführungsform
enthält
die Zielzykluseinheit 339 in 3 eine
Zwei-Teiler-Schaltung.
-
Wenn der Zielzyklus festgelegt worden
ist, werden als Reaktion auf den lokalen Takt 316 Daten zum
Speichern über
den Multiplexer 432 im Zielzwischenspeicher 430 ausgewählt. Der
Multiplexer 432 weist ein Paar Eingänge 434 und 436 auf.
Der Eingang 434 ist mit dem Ausgang 410 des Zwischenspeichers 408 und
der Eingang 436 mit dem Ausgang 424 des Zwischenspeichers 422 verbunden. Der
Multiplexer 432 wählt
als Reaktion auf das Auswahlsteuersignal 343 einen der
beiden durch die Ausgänge
der Zwischenspeicher 408 und 422 angebotenen Datenströme zur Ausgabe
aus. Wenn das Auswahlsteuersignal 343 in der Ausführungsform von 4B einen ersten Logikzustand „HIGH" besitzt, liefert
der Multiplexer 432 die Daten am Eingang 434 zum
Eingang D des Zwischenspeichers 430, und wenn das Auswahlsteuersignal 343 in
der Ausführungsform
von 4B einen zweiten
vorbestimmten Logikzustand „LOW" besitzt, werden
die Daten am Eingang 436 des Multiplexers 432 zum
Eingang D des Zwischenspeichers 430 geliefert. Das Auswahlsteuersignal 343 weist
eine Periode auf, die doppelt so lang wie die Periode des lokalen
Taktes 316 und phasensynchron zum lokalen Takt 316 ist,
so dass sich das Auswahlsteuersignal 343 im ersten logischen
Zustand befindet und bezüglich
des Zielzyklus zentrisch liegt. Somit wird in 4B der Datenwert a am Ausgang 410 an
der Flanke t8 des lokalen Taktes 316 über den
Multiplexer 432 mit dem Eingang D des Zwischenspeichers 430 verbunden
und bei der Flanke t8 des lokalen Taktes 316 zwischengespeichert.
An der nächstfolgenden
positiven Flanke t9 des lokalen Taktes wird
der nächste
Teil des übertragenen
Datenstroms im Zielzwischenspeicher 430 zwischengespeichert.
Die Phase des Auswahlsteuersignals 343 ist inzwischen um
eine halbe Periode fortgeschritten und weist daher den zweiten Logikzustand
auf, wodurch der Ausgang 424 des Zwischenspeichers 422 über den
Multiplexer 432 mit dem Eingang D des Zwischenspeichers 430 verbunden
wird. An der Flanke t9 wird der Datenwert
b am Ausgang 424 des Zwischenspeichers 422 im
Zwischenspeicher 430 zwischengespeichert, und der Datenwert
b erscheint am Datenausgang 338. Während nachfolgender Zyklen
des lokalen Taktes 316 stellt die elastische Schnittstelle 332 den
Datenstrom 225 durch abwechselndes Auswählen zwischen dem Ausgang 410 des
Zwischenspeichers 408 und dem Ausgang 424 des
Zwischenspeichers 422 wieder her.
-
Bevor über die elastische Schnittstelle 322 Daten übertragen
werden können,
muss das Gatter 414 (und gleichzeitig auch dessen Komplement,
das \Gatter 428) initialisiert werden. Da die Latenzzeit durch
die Schnittstelle um mehr als eine lokale Taktperiode schwanken
kann, muss das Gatter 414 durch die richtige Phase initialisiert
werden. Die Periode des Gatters 414 ist, wie zuvor beschrieben,
doppelt so groß wie
die des E/A-Taktes 336 und des lokalen Taktes 316.
Das Gatter 414 ist zum E/A-Takt 316 phasensynchron,
so dass die Logikzustände „HIGH" des Gatters 414 zu
vorausgewählten
Flanken des E/A-Taktes 336 zentriert
sind, und zwar auf positive Flanken in der Ausführungsform von 4B.
-
Bei einer Ausführungsform der vorliegenden Erfindung
kann das Gatter 414 durch Übertragen eines Synchronisationsmusters
(sync) beim Einschalten oder beim Zurücksetzen initialisiert werden.
In 3 wird als Reaktion
auf das Zurücksetzen
oder das Einschalten des Datenverarbeitungssystems das Signal 340 des
Einstellungsprozedurmodus beim Initialisieren (IAP) ausgegeben,
wodurch der Multiplexer 328 ein vorgegebenes Sync-Muster zum Ausgeben
auswählt.
Das IAP-Modussignal 340 kann bei einer Ausführungsform
der vorliegenden Erfindung als Reaktion auf BIOS-Instruktionen aus
dem ROM 216 durch die CPU 210 ausgegeben werden.
-
Bei der in 4A veranschaulichten Ausführungsform
der elastischen Schnittstelleneinheit 332 können Daten
innerhalb eines Fensters von zwei Zyklen ankommen, ohne, wie zuvor
beschrieben, zu Synchronisationsproblemen zu führen. Man sagt, dass die elastische
Schnittstelleneinheit 332 in 4A eine
Elastizität
von zwei besitzt. Bei der IAP muss das Synchronisationsmuster eine
Periode P aufweisen, die gleich der oder größer als die Elastizität der elastischen
Einheit ist. Daher wäre
ein geeignetes Synchronisationsmuster für die elastische Schnittstelleneinheit 332 von 4B eine Vielzahl von Bits,
die bei einem Anfangsbit „1" beginnen und zwischen „1" und „0" wechseln. Im Folgenden
werden Ausführungsformen
von elastischen Schnittstellen mit Elastizitäten ungleich zwei beschrieben
und das Synchronisationsmuster entsprechend geändert. Für eine elastische Schnittstelle
mit einer Elastizität
N (unten in Verbindung mit 8A/8B erörtert) könnte ein geeignetes Muster
wie folgt aussehen: Ein Anfangsbit „1", gefolgt von N-1 Bits „0"; dieses Muster wird
dann wiederholt. Es können
auch andere Bitmuster verwendet werden. Zum Beispiel können alternativ
zu den oben angegebenen Beispielmustern auch komplementäre Bitmuster
verwendet werden.
-
Beim Einstellen der Phase des Gatters 414 kann
während
des Sendens des Sync-Musters der Ausgang 410 des Zwischenspeichers 408 abgefragt werden.
Das Gatter 414 wird durch eine vorausgewählte Phase
initialisiert. Wenn für
das oben beschriebene Sync-Muster für die elastische Schnittstelleneinheit 332 mit
der Elastizität
zwei am Ausgang 410 eine „1" gefunden wird, weisen das Gatter 414 und
gleichzeitig auch das \Gatter 428 die richtige Phase auf.
Sonst würde
die Phase des Gatters 414, und entsprechend die des \Gatters 428,
um eine halbe Periode des E/A-Taktes 336 verschoben. Das Gatter 414 kann,
wie zuvor besprochen, unter Verwendung eines Verzögerungsregelkreises
(DLL) erzeugt werden; eine Ausführungsform
eines DLL ist in der für
die vorliegende Anmelderin gleichzeitig anhängigen Patentanmeldung unter
dem Titel „Dynamic
Wave Pipelined Interface Apparatus und Method Therefor" beschrieben.
-
Die Funktion einer elastischen Schnittstelle gemäß den Prinzipien
der vorliegenden Erfindung, wie der elastischen Schnittstelle 300,
lässt sich
anhand der 5 besser
verstehen. In 5 tauscht der
Chip 302 wie in 3 Daten
mit dem Chip 304 und zusätzlich mit dem Chip 306 aus.
Der Chip 302 enthält
zwei Schnittstellen 300, von denen eine den Chip 302 mittels
einer im Chip 304 enthaltenen Schnittstelle 300 mit
dem Chip 304 und die zweite Schnittstelle den Chip 302 mit
dem Chip 306 verbindet, der ebenfalls eine Schnittstelle 300 gemäß einer Ausführungsform
der vorliegenden Erfindung enthält. Der
die Chips 302 und 304 verbindende Pfad 502 kann, ähnlich dem
Pfad 154 in 1D mit
einer Latenzzeit TF, ein schneller Pfad
sein, und der den Chip 302 mit dem Chip 306 verbindende
Pfad 504 kann, wie der Pfad 152 in 1D mit einer Latenzzeit
TS, ein langsamer Pfad sein. Wenn die Differenz
der Latenzzeiten zwischen den Pfaden 502 und 504 größer als
eine Periode des Bustaktes ist, würde für den Pfad 502 bei
einer Schnittstelle nach dem Stand der Technik eine Latenzzeitkompensation
erforderlich, um, wie oben beschrieben, die Datensynchronisation aufrechtzuerhalten.
Die die elastischen Schnittstelleneinheiten 332 enthaltenden
Schnittstellen 300 hingegen kompensieren die Latenzzeitdifferenzen
zwischen den Pfaden 502 und 504. Durch Einstellen
des Zielzyklus in jeder der elastischen Schnittstellen 332 in
den Chips 304 und 306 auf denselben Zyklus wird, wie
oben beschrieben, die Datensynchronität zwischen den Chips 302, 304 und 306 aufrechterhalten.
-
Es können auch alternative Ausführungsformen
der vorliegenden Erfindung realisiert werden. Eine alternative Ausführungsform
der Schnittstelleneinheit 332 mit einer Elastizität von zwei
ist in 6A veranschaulicht.
Die Ausführungsform
der in 6A gezeigten
elastischen Schnittstelle 232 enthält die Multiplexer 402 und 416,
die wie bei der in 4A veranschaulichten
Ausführungsform
der elastischen Schnittstelle 232 die Zwischenspeicher 408 und 422 ansteuern.
Allerdings enthält
die Schnittstelleneinheit 332 von 6A zusätzlich zum Zwischenspeicher 630,
der dem Zwischenspeicher 430 in der in 4A gezeigten Ausführungsform entspricht, einen
zweiten Zwischenspeicher 628, der durch den lokalen Takt
316 getaktet
wird. Außerdem
ist der dem Multiplexer 432 in 4A entsprechende Ausgangsmultiplexer 632 in
der Ausführungsform
der Schnittstelleneinheit 332 in 6A ausgangsseitig hinter die Zwischenspeicher
verschoben worden.
-
Dadurch wird die Latenzzeit allein
durch die Schnittstelle verkürzt.
Die Eingänge
D der Zwischenspeicher 628 und 630 sind mit den
Ausgängen 424 und 410 der
Zwischenspeicher 422 bzw. 408 verbunden. Die Daten
an den Eingängen
D der Zwischenspeicher 628 und 630 werden durch
den lokalen Takt 316 in die Zwischenspeicher eingetaktet.
Dadurch werden die Daten bereits vor dem Multiplexer 632 im lokalen
Takt 316 gespeichert. Der Datenstrom 322 wird,
gesteuert durch das Auswahlsteuersignal 343, durch Auswählen eines
der Ausgänge 634 und 636 der
Zwischenspeicher 628 und 630 über den Multiplexer 632 zum
Ausgeben wiederhergestellt. Dies ist ähnlich der Funktion des Ausgangs
des Multiplexers 432 in der Ausführungsform von 4A, allerdings ist die Phase des Auswahlsteuersignals 343 im
Vergleich zur Phase des Auswahlsteuersignals 343 in 4A um eine halbe Periode
verschoben. Bei der Ausführungsform
der Schnittstelle 322 in 6A werden
die Daten an einer ansteigenden Flanke des lokalen Taktes 316 zwischengespeichert.
Einem Fachmann ist jedoch klar, dass die Daten bei alternativen
Ausführungsformen
an einer abfallenden Flanke zwischengespeichert werden können, sofern
andere Steuersignale mit geeigneter Phasenlage verwendet werden.
Zum Beispiel wäre
die Phase des Auswahlsteuersignals 343 bei einer Ausführungsform,
bei der die Zwischenspeicher 628 und 630 an der
abfallenden Flanke des lokalen Taktes 316 zwischenspeichern,
um eine halbe Periode verschoben.
-
Die Wirkungsweise der Ausführungsform
der Schnittstelleneinheit 332 von 6A lässt
sich nun unter Bezug auf 6B besser
verstehen, die ein entsprechendes Zeitablaufdiagramm veranschaulicht.
Da die Multiplexer 402 und 416, die Zwischenspeicher 408 und 422 sowie
der E/A-Takt 336 und der lokale Takt 316 den Ausführungsformen
der Schnittstelleneinheit 332 in den 4A und 4B gemeinsam sind,
wird der diese Strukturen betreffende Teil des in 6B veranschaulichten Zeitablaufdiagramms
der Kürze
halber nicht noch einmal besprochen.
-
Die Betrachtung konzentriert sich
auf den mit den Zwischenspeichern 628 und 630 sowie
dem Multiplexer 632 zusammenhängenden Teil des Zeitablaufdiagramms
von 6B; der Datenwert
a wird an der Flanke t8 des lokalen Taktes 316 am
Ausgang 634 des Zwischenspeichers 630 zwischengespeichert.
Desgleichen wird der Datenwert b an der Flanke t9 des
lokalen Taktes 316 am Ausgang 636 des Zwischenspeichers 628 zwischengespeichert.
Damit die Daten innerhalb des Zielzyklus am Datenausgang 338 erscheinen,
muss die ansteigende Flanke des Auswahlsteuersignals 343 bis
zur Flanke t9 des lokalen Taktes 316 verzögert werden,
die mit dem Zielzyklus übereinstimmt.
Somit erscheint der Datenwert a am Datenausgang 338 vom
Multiplexer 632 an der Flanke t10 des
Auswahlsteuersignals 343. Folglich ist das Auswahlsteuersignal 343 zum
lokalen Takt 316 phasensynchron, wobei die Logikzustände „HIGH" bezüglich den
ansteigenden Übergängen des lokalen
Taktes 316 zentriert sind. Entsprechend erscheint der Datenwert
b an der abfallenden Flanke tll des Auswahlsteuersignals 343 am
Datenausgang 338, und der Datenstrom 322 wird
anschließend
weiterhin bei nachfolgenden Übergängen des
Auswahlsteuersignals 343 wiederhergestellt.
-
Außerdem können gemäß der vorliegenden Erfindung
Ausführungsformen
der elastischen Schnittstelle 332 mit anderen vorgegebenen
Elastizitäten
realisiert werden. Dazu gehören
auch Elastizitäten
mit halben Perioden. Eine Ausführungsform
der vorliegenden Erfindung mit einer Elastizität von 1,5 Perioden ist in 7A veranschaulicht. Die
Daten 322 werden an die Eingänge D der Zwischenspeicher 702 und 704 gelegt.
Die Zwischenspeicher 702 und 704 sind „polaritätshaltende" (polarity hold") oder „Durchfluss"(flush)-Zwischenspeicher.
Derartige Zwischenspeicher können
auch als „transparente" Zwischenspeicher
bezeichnet werden. Wenn der Takt (C) im Zwischenspeicher 702 einen
ersten vorgegebenen Logikzustand oder Pegel aufweist, werden die Daten
am Eingang D bis zum Ausgang 706 durchgeleitet. Beim Übergang
des Taktes von dem ersten Zustand zu einem vorgegebenen zweiten
Logikzustand werden die Daten am Eingang D des Zwischenspeichers 702 zwischengespeichert
und die Daten am Ausgang 706 so lange gehalten, bis der
nächste Übergang
des Taktes vom zweiten Zustand in den ersten Zustand erfolgt. (Bei
der Ausführungsform
von 7 entspricht der erste Zustand
einem Logikpegel „LOW" und der zweite Zustand
einem Logikpegel „HIGH", wobei der Übergang
eine ansteigende Flanke ist. Eine alternative Ausführungsform
hätte jedoch komplementäre Logikzustände.) Der
Zwischenspeicher 704 leitet die Daten an seinem Eingang
D bis zum Ausgang 708 durch, wenn sein Takt C auf dem zweiten
Logikpegel liegt. Die Daten werden beim Übergang vom zweiten Logikpegel
zum ersten Logikpegel des Taktes zwischengespeichert und so lange gehalten,
bis die Taktübergänge vom
zweiten Logikpegel zum ersten Logikpegel erfolgt sind, die in der Ausführungsform
von 7 dem Zustand „LOW" entsprechen. Durch das Durchleiten
durch den Speicher brauchen die Daten nicht zu warten, bis ein Zwischenspeicher
getaktet wird, und sind bereits verfügbar; dies entspricht einer
Ausführungsform „kurze
Latenzzeit – niedrige
Elastizität" der Schnittstelleneinheit 332.
-
Bei der in 7A veranschaulichten Ausführungsform
der elastischen Schnittstelle 332 werden die Zwischenspeicher 702 und 704 durch
den E/A-Takt 726 getaktet. Die elastische Schnittstelle 322 von 7A ist ein DDR-Bauelement
(double data rate, doppelte Datenrate), bei dem die Daten bei jedem Übergang
des E/A-Taktes 726 in den Zwischenspeichern 702 und 704 zwischengespeichert werden
und die Periode des E/A-Taktes 726 doppelt so groß ist wie
die Periode der lokalen Takte 314 und 316 und
des Bustaktes 306. Der Bustakt 306 ist in einem
Datenfenster mit einer Breite von zwei lokalen Taktperioden zentriert.
-
Die Ausführungsform der elastischen Schnittstelleneinheit 332 in 7A lässt sich besser unter Bezug
auf das in 7B gezeigte
zugehörige Zeitablaufdiagramm
verstehen. Wenn der Datenwert a an der elastischen Schnittstelleneinheit 332 ankommt,
wird er bis zum Ausgang 706 des Zwischenspeichers 702 durchgeleitet,
da der E/A-Takt 716 beim Pegel 752 „LOW" ist. Mit anderen
Worten, der Datenwert a erscheint vor der Flanke t1 des
E/A-Taktes 716 am Ausgang 706 des Zwischenspeichers 702.
-
Der Datenwert a läuft dem Übergang t1 um eine
Viertelperiode des E/A-Taktes 336 voraus, was einer halben
Periode des lokalen Taktes 316 entspricht. Der E/A-Takt 336 wird
vom Bustakt abgeleitet und, wie oben beschrieben, bezüglich des
Bustaktes zum Startzeitpunkt um die Latenzzeit des Pfades zwischen
den Chips phasenverschoben. Außerdem
erhält
der E/A-Takt 716 einen
Phasenvorsprung von einer Viertelperiode. An der Flanke t1 wird der Datenwert a zwischengespeichert,
so dass er für
eine Periode des lokalen Taktes 316 gespeichert bleibt.
-
Desgleichen wird der Datenwert b
bis zum Ausgang 708 des Zwischenspeichers 704 durchgeleitet,
wenn er vom Empfänger 230 an
der elastischen Schnittstelleneinheit 332 ankommt, da der E/A-Takt 716 beim
Pegel 754 auf „HIGH" steht. Dann bleibt
der Datenwert b durch die negative Flanke t2 des
E/A-Taktes 716 am Ausgang 708 gespeichert. Der
Datenwert b verbleibt dort für
eine Periode des lokalen Taktes 316. Somit liegen die Datenwerte
an den Ausgängen 706 und 708 der
Zwischenspeicher 702 bzw. 704 für 1,5 lokale
Taktperioden an, was der Elastizität der Ausführungsform der elastischen Schnittstelle 332 von 7A entspricht.
-
Der Datenstrom 332 wird
am Ausgang 338 durch die Zwischenspeicher 710 und 712 sowie durch
den Multiplexer 714 wiederhergestellt. Die beiden durch
die Ausgänge 706 und 708 repräsentierten Datenströme werden
durch den lokalen Takt 316 in den Zwischenspeichern 710 bzw. 712 zwischengespeichert.
Die Daten werden bei einer vorgegebenen (bei der Ausführungsform
von 7 positiven) Flanke des lokalen
Taktes 316 zwischengespeichert, wobei der Zielzyklus so
gewählt
werden kann, dass er irgendwo innerhalb der zuvor beschriebenen
Elastizität
des Datenwerts a von einem und eineinhalb Zyklen liegt. Somit wird
der Datenwert a entsprechend dem Zeitablaufdiagramm in 7B bei der Flanke t3 des lokalen Taktes 316 im Zwischenspeicher 710 zwischengespeichert
und in Reaktion auf das Auswahlsteuersignal 343 über den
Multiplexer 714 mit den Daten 338 zusammengeführt. Bei
einem ersten vorgegebenen Wert des Auswahlsteuersignals 343 werden
Daten aus dem Zwischenspeicher 710 und bei einem zweiten
vorgegebenen Wert aus dem Zwischenspeicher 712 gewählt. Der
erste Wert bei der Ausführungsform
von 7 ist „HIGH" und der zweite Wert ist „LOW", es ist jedoch klar,
dass es auch andere vorgegebene Werte sein können. Bei der Flanke t4 des lokalen Taktes 316 wird der
Datenwert b in Reaktion auf das Auswahlsteuersignal 343 mit
dem zweiten Wert im Zwischenspeicher 712 gespeichert und
mit den Daten 338 zusammengeführt. Nachfolgende Datenwerte
werden dann am Ausgang 338 sequenziell ausgegeben, indem,
wie in 7B veranschaulicht,
die Ausgänge
von den Zwischenspeichern 710 bzw. 712 abwechselnd über den
Multiplexer 714 geleitet werden.
-
Außerdem können die elastischen Schnittstellen
gemäß den Prinzipien
der vorliegenden Erfindung erweitert werden, wodurch die Elastizitäten mittels
zusätzlicher
Steuerungs- und Speicherbausteine erhöht werden können. Eine Ausführungsform
einer elastischen Schnittstelle mit einer Elastizität von N-1 Bustaktperioden
ist in 8A veranschaulicht.
Die Schnittstelleneinheit 332 enthält eine Vielzahl N von Multiplexern 802.
An einem ersten Eingang 704 jedes Multiplexers wird der
Datenstrom 322 vom Empfänger 330 empfangen.
An einem zweiten Eingang 806 wird ein Ausgangssignal aus
einem entsprechenden Zwischenspeicher 808 – 818 empfangen.
Jeder der Zwischenspeicher 808 – 818 enthält ein Zwischenspeicherpaar.
Bei den Zwischenspeichern 808, 812 und 816 weisen
die Zwischenspeicherpaare einen internen Ausgang eines der beiden
Zwischenspeicher des Paars auf, der mit einem internen Eingang eines zweiten
Zwischenspeichers des Paars in Master-Slave-Schaltung verbunden
ist. Die Zwischenspeicher 808, 812 und 816 stellen
am Eingang 806 des entsprechenden Multiplexers 802 ein
Ausgangssignal 820 des Slave-Teils bereit. Der Slave-Teil
der Zwischenspeicher 808, 812 und 816 bewirkt
bei der ansteigenden Flanke des E/A-Taktes 336 die Zwischenspeicherung
der Daten am Eingang D. Die Eingänge D
der Zwischenspeicher 808, 812 bzw. 816 sind
mit dem Ausgang des entsprechenden Multiplexers 802 verbunden.
Die Zwischenspeicher 810, 814 und 818 verbinden
den Ausgang 822 vom ersten Zwischenspeicher des Paars mit
dem Eingang 806 eines entsprechenden Multiplexers 802.
Der erste Zwischenspeicher des Paars ist transparent, und die Daten
an einem ersten Eingang 828 werden während eines Pegels „HIGH" des E/A-Taktes 336 zum
Ausgang 822 durchgeleitet. Der Eingang 828 in
jedem der Zwischenspeicher 810, 814 und 818 ist
mit einem entsprechenden Ausgang 826 des zweiten Zwischenspeichers
des Paars verbunden. Außerdem
ist ein Eingang 830 des zweiten Zwischenspeichers des Paars
mit einem Ausgang des entsprechenden Multiplexers 802 verbunden.
Auch der zweite Zwischenspeicher des Paars ist transparent und leitet
die Daten während
eines Pegels „HIGH" des E/A-Taktes 336 durch.
Der erste und zweite Zwischenspeicher der Zwischenspeicherpaare 810, 814 und 818 leiten während der
Pegel „HIGH" des E/A-Taktes 336 mit entgegengesetzter
Polarität
die Daten durch.
-
Die Multiplexer 802 wählen in
Reaktion auf ein entsprechendes Gattersignal der Gatter 832 – 842 zwischen
den Signalen an den Eingängen 804 und 806.
Die Gattersignale 832 – 840 werden
später in
Verbindung mit einem in 8B veranschaulichten
Zeitablaufdiagramm erörtert.
-
Die Daten werden im lokalen Takt
mittels der Datenzwischenspeicher 844 zwischengespeichert, von
denen jeder ein Ausgangssignal aus einem entsprechenden Zwischenspeicher 808 – 818 empfängt. Die
Daten werden durch den lokalen Takt 316 in den Zwischenspeichern 844 zwischengespeichert.
Der Ausgang 824 der Zwischenspeicher 808, 812 und 816 wird
auf den Eingang D eines entsprechenden Datenzwischenspeichers 844 gelegt.
Die Ausgänge 824 kommen
aus dem Master-Teil der Zwischenspeicher 808, 812 und 816,
der, wie oben beschrieben, transparent ist. Die übrigen Datenzwischenspeicher 844 empfangen
an ihren Eingängen
D das Signal vom Ausgang 826 aus jeweils dem zweiten Zwischenspeicher
der Paare 810, 814 und 818. Dieser zweite
Zwischenspeicher der Paare ist ebenfalls ein transparenter Zwischenspeicher,
bei dem die Daten bei einer Polarität des E/A-Taktes 336 durchgeleitet werden,
die derjenigen entgegengesetzt ist, bei der die Daten im ersten
Zwischenspeicher des Paars durchgeleitet werden.
-
Der Multiplexer 846 wählt eines
der in den Datenzwischenspeichern 844 enthaltenen Signale zur
Ausgabe aus. Ein Ausgang jedes der Datenzwischenspeicher 844 ist
mit einem entsprechenden Eingang 848 – 858 verbunden. Das
Signal wird über den
Ausgang 860 des Multiplexers 846 an den Chip, beispielsweise
an den Chip 302 oder 304, ausgegeben. Der Multiplexer 846 wählt anhand
des Auswahlsteuersignals 343 einen der Eingänge 848 – 858 aus. Das
Auswahlsteuersignal 343 enthält k Signale, wobei 2k gleich N ist.
-
Eine alternative Ausführungsform
mit einer Elastizität
N kann unter Verwendung der in 8A gezeigten
Schaltlogik realisiert werden. Durch Verbinden der jeweiligen Eingänge D der
Datenzwischenspeicher 844 mit den Ausgängen 820 der entsprechenden
Zwischenspeicher 808, 812 und 816 sowie
mit den Ausgängen 826 der
entsprechenden Zwischenspeicher 810, 814 und
818 (anstelle
der in 8A gezeigten
Ausgänge 824 und 822)
wird eine Elastizität
N erreicht. Die Schaltlogik der Schnittstelleneinheit 332 in 8A bleibt ansonsten unverändert.
-
In 8B ist
ein Zeitablaufdiagramm für
die in 8A veranschaulichte
Schnittstelleneinheit 332 dargestellt. Der Datenwert kommt
nach der Latenzzeit T1 der Schnittstelle
im Datenstrom auf der Datenleitung 322 an; in Reaktion
auf die Freigabe des dem jeweiligen Multiplexer 802 bereitgestellten
Gatters 832, das durch den Pegel „HIGH" 862 repräsentiert wird, wird der Datenwert
a durch den entsprechenden Multiplexer 802 bis zum Eingang
D des Zwischenspeichers 808 durchgeleitet. Bei der Flanke
t1 des E/A-Taktes 336 speichert
der Zwischenspeicher 808 den Datenwert a, der über den
Ausgang 820 des Zwischenspeichers 808 zum Eingang 806 des
entsprechenden Multiplexers 802 rückgekoppelt wird. Bei der Flanke
t2 des Gatters 832 wählt der
entsprechende Multiplexer 802 das Signal am Eingang 806, das
den Datenwert a besitzt. Das Gatter 832 wird für N-1 Perioden
des Bustaktes 306 negiert, wodurch der Datenwert a am Eingang
D des Zwischenspeichers 808 und damit am Ausgang 824 des
Zwischenspeichers 808 aufrechterhalten bleibt. Der Datenwert a
verbleibt dort infolge des Übergangs
t3 des E/A-Taktes 336 für einen
weiteren Zyklus des Bustaktes 306; danach schaltet der Übergang
t4 des Gatters 832 den entsprechenden
Multiplexer 802, um den Datenstrom auf der Datenleitung 322 zu
wählen,
wodurch bei der Flanke t5 des E/A-Taktes 336 der
(N+2)te Datenwert im Datenstrom 322 im Zwischenspeicher 808 gespeichert
wird. Der Datenwert a wird bei der Flanke t6 des lokalen
Taktes 316 aus dem Ausgang 824 des Zwischenspeichers 808 im
Datenzwischenspeicher 844 gespeichert und erscheint am
Ausgang
848. Der Datenwert a bleibt für N Perioden des Bustaktes 306 am Ausgang 848 erhalten.
-
Ein weiterer Datenwert des Datenstroms 332,
nämlich
Datenwert b, wird ebenso für
N Perioden des Bustaktes 306 in dem mit dem Zwischenspeicher 810 verbundenen
Datenzwischenspeicher 844 gehalten. Wenn der Datenwert
b an der Einheit 332 ankommt, wird das Gatter 834 freigegeben,
was durch den Pegel „HIGH" 864 repräsentiert
wird, und wählt
so am Eingang 804 des entsprechenden Multiplexers 802 den
Datenstrom 332. Der Datenwert b erscheint am Eingang 830 des
Zwischenspeichers 810 und wird bei der Flanke t7 des E/A-Taktes 336 zwischengespeichert,
wodurch der Datenwert b am Ausgang 826 des Zwischenspeichers 810 erscheint. Der
Ausgang 826 des Zwischenspeichers 810 wird wieder
zum Eingang 828 des Zwischenspeichers 810 rückgekoppelt.
Da der E/A-Takt 336 nach der Flanke t7 negiert
wird, wird der Datenwert b am Ausgang 826 des Zwischenspeichers 810 bis
zum Ausgang 822 des Zwischenspeichers 810 durchgeleitet,
wo er wiederum zum Eingang 806 des entsprechenden Multiplexers 802 rückgekoppelt
wird. Bei der Flanke t8 des E/A-Taktes 336 bleibt
der Datenwert b am Ausgang 822 des Zwischenspeichers 810.
Bei der Flanke t9 des Gatters 834 schaltet der entsprechende
Multiplexer 802 und wählt
den Eingang 806 zum Ausgeben des am Ausgang 822 des
Zwischenspeichers 810 gehaltenen Datenwerts b an den Eingang 830 des Zwischenspeichers 810.
Dann wird der Datenwert b bis zum Ausgang 826 des Zwischenspeichers 810 durchgeleitet,
von wo er wieder zum Eingang 828 des Zwischenspeichers 810 rückgekoppelt
wird; der Datenwert b wird weiterhin zum Eingang 806 des
entsprechenden Multiplexers rückgekoppelt,
der das Gattersignal 834 empfängt. Somit wird der Datenwert b
am Ausgang 826 des Zwischenspeichers 810 für N + 1
Perioden des Bustaktes 306 aufrechterhalten, d.h. eine
Taktperiode nach den Gatterübergängen 834 bei
der Flanke t10.
-
Das Gatter 836 wird bezüglich des
Gatters 834 um eine Periode des E/A-Taktes 336 phasenverschoben,
wie auch jedes nachfolgende Gattersignal 838 – 842 bezüglich des
in der Kette vorangehenden Gattersignals um eine Periode des E/A-Taktes 336 phasenverschoben
wird. Auf diese Weise speichert jeder nachfolgende Zwischenspeicher 808 – 818 den nachfolgenden
Datenwert im Datenstrom 332 und hält diesen Datenwert für N + 1
Perioden des Bustaktes 306. Jeder Datenwert in dem entsprechenden Zwischenspeicher 808 – 810 wird
dann für
eine Periode des lokalen Taktes 316 in dem entsprechenden Datenzwischenspeicher 844 gespeichert.
Somit wird der Datenwert b bei der Flanke t11 des
lokalen Taktes 316 im entsprechenden Datenzwischenspeicher
gespeichert und erscheint am Ausgang 850; desgleichen wird
der Datenwert c bei der Flanke t12 des lokalen
Taktes 316 in seinen zugehörigen Datenzwischenspeicher 844 getaktet
und erscheint am Ausgang 852. Der letzte mit dem Zwischenspeicher 818 verbundene
Datenzwischenspeicher 844 speichert den (N+1)ten Datenwert
bei der Flanke t13 des lokalen Taktes 316.
-
Die Daten werden in Reaktion auf
das Auswahlsteuersignal 343 aus dem Multiplexer 846 ausgegeben,
das k Signale enthält.
Jedes der k Signale des Auswahlsteuersignals 343 ist periodisch.
Ein „nulltes" Signal mit der Bezeichnung
S(0) weist eine Halbperiode auf, die gleich der Periode des Bustaktes 306 ist.
Das (k-1)te Signal weist eine Halbperiode auf, die gleich N Bustaktperioden
ist. Jedes zwischen S(0) und S(N) nacheinander folgende Signal weist eine
Periodizität
auf, die gleich der doppelten Periode des vorangehenden Signals ist.
Die in den Datenzwischenspeichern 844 gespeicherten Datenwerte,
die an den entsprechenden Eingängen 848 – 858 des Multiplexers 846 erscheinen,
werden in Reaktion auf das Auswahlsteuersignal 343 nacheinander
auf den Datenausgang 860 ausgetaktet. Der Datenwert a wird
bei der Flanke t14 von S(N) des Auswahlsteuersignals 343 während des
Zielzyklus mit einer Elastizität
N-1 ausgetaktet. Die übrigen
Datenwerte werden in Reaktion auf die zyklischen Übergänge der
k Signale im Auswahlsteuersignal 343 nacheinander ausgetaktet.
Obwohl gezeigt wurde, dass die Signale, aus denen das Auswahlsteuersignal 343 besteht, bezüglich einer
ansteigenden Flanke phasensynchron sind, ist es dem Fachmann klar,
dass bei einer alternativen Ausführungsform
auch die komplementäre
Phase verwendet werden kann.
-
Die in 8 veranschaulichte
Einheit 332 wird während
einer IAP initialisiert, die oben in Verbindung mit 4 beschrieben
wurde. Ein geeignetes Initialisierungsmuster kann eine Periodizität von N-1
für eine
Ausführungsform
mit einer Elastizität
N-1 aufweisen, was der Elastizität
der in 8 veranschaulichten Ausführungsform
der Einheit 332 entspricht. Bei einer alternativen Ausführungsform
mit einer Elastizität
N, wie sie oben beschrieben wurde, kann das Synchronisationsmuster
eine Periodizität
N aufweisen. Während
der Initialisierung bei einem Synchronisationsmuster mit einer „1", gefolgt von einer
Vielzahl von „0", würde die „1" im Zwischenspeicher 808 abgefragt
werden, wenn die Signale im Auswahlsteuersignal 343 richtig
aufeinander folgen.
-
Auf diese Weise wird ein Mechanismus
zum Aufrechterhalten der Synchronität in einem Datenverarbeitungssystem
mittels Schnittstellen bereitgestellt. Empfangene Daten werden in einer
Vielzahl von Speicherelementen gespeichert und während eines vorgegebenen Zielzyklus
selektiv in den Ziel-Chip gelenkt, der mit dem Chip-Takt synchronisiert
ist. Die Startsynchronisation erfolgt dynamisch durch eine IAP.
Der Mechanismus der vorliegenden Erfindung stellt eine Datensynchronisation
in einem Datenverarbeitungssystem mit Latenzzeiten bereit, die um
mehr als einen Bustaktzyklus schwanken.