-
Dynamische Wellenpipelineschnittstellenanordnung und
Verfahren dafür
-
TECHNISCHES
GEBIET
-
Die vorliegende Erfindung betrifft
allgemein Datenverarbeitungssysteme und insbesondere Busschnittstellen
in Datenverarbeitungssystemen.
-
HINTERGRUND
DER ERFINDUNG
-
Mit der Zunahme der Systemtaktgeschwindigkeiten
in Datenverarbeitungssystemen, die eine Geschwindigkeitszunahme
der Zentraleinheiten widerspiegeln, musste die Übertragungsgeschwindigkeit
auf den Bussen in dem System entsprechend zunehmen. Die Übertragung
von Daten über
einen Bus, der Einheiten des Datenverarbeitungssystems miteinander
verbindet, unterliegt notwendigerweise aufgrund der physischen Trennung
der Einheiten Beschränkungen.
Ein Verfahren, das zur Übertragung von
Daten über
einen Bus entwickelt wurde, besteht in der Anordnung in Form einer
Wellenpipeline, in der ein Datensignal auf den Bus geschickt wird,
bevor eine Empfangseinheit die vorigen Daten über den Bus erhalten hat. Mit
anderen Worten, die Daten werden in Form einer Pipeline, etwa wie
bei einem „Montageband", über die
Busschnittstelle zwischen den Einheiten in einem Datenverarbeitungssystem
verteilt. Sobald die „Pipeline" oder das „Montageband" voll ist, werden
die Daten mit einer Durchschnittsrate geliefert, die die Latenzzeit
der Schnittstelle übersteigt.
-
Bei einem typischen Datenverarbeitungssystem
können
Daten von einer Quelleneinheit zu einer Vielzahl von Empfangseinheiten übertragen
werden. Über
Busschnittstellen mit unterschiedlichen elektrischen Längen und
damit unterschiedlichen Latenzzeiten werden verschiedene Empfangseinheiten
mit der Quellen- bzw. Sendeeinheit verbunden.
-
Außerdem kann bei einer einzelnen
Einheit, die eine Vielzahl von Datensignalen empfängt, jedes Signal
eine unterschiedliche Latenzzeit haben. Schwankungen können sich
aus Fertigungstoleranzen, konstruktiven Beschränkungen wie zum Beispiel Schwankungen
der Leitungslängen
und zeitabhängigen
Effekten wie zum Beispiel datenabhängigen Schwankungen (Symbolinterferenz),
Taktschwankungen und Rauschen ergeben.
-
Darüber hinaus wird angenommen,
dass Daten synchron geliefert werden. Das heißt, dass die Ankunft der Daten
während
eines vorgegebenen Zyklus des Systemtakts erwartet wird. Wenn Daten
früher
oder später
als erwartet angeliefert werden, kann es zu Fehlern kommen.
-
Bei einer in Form einer Wellenpipeline
angeordneten Schnittstelle wird die Zeitablaufanalyse wesentlich
komplizierter, da der schnelle und der langsame Pfad gleich wichtig
sind. Der Bereich der Datengültigkeit,
das heißt
das Zeitintervall, während dessen
die Daten zuverlässig übertragen
werden können,
wird kürzer,
wenn die Zeitdifferenz zwischen dem schnellen und dem langsamen
Pfad, die die Quellen- oder Sendeeinheit mit einer oder mehreren Empfangseinheiten
verbinden, zunimmt. Wenn die Zeitdifferenz zwischen dem schnellen
und dem langsamen Pfad so groß wie
Periode des Bustaktes wird, geht die Synchronität verloren. Darüber hinaus
kann der Gültigkeitsbereich
der Daten durch die Verschiebung des Übertragungstaktes weiter verringert
werden. Mit zunehmenden Geschwindigkeiten der Busschnittstelle müssen die
Zeitschwankungen zwischen dem schnellen und dem langsamen Pfad kleiner
sein und die Auflagen an die Taktverschiebung werden strenger. Allerdings
kann die Steuerung der Taktverschiebung und der Zeitablaufschwankungen durch
physische Einschränkungen
seitens des Layouts des Datenverarbeitungssystems begrenzt werden.
Deshalb besteht in der Technik ein Bedarf an Verfahren und Vorrichtungen
zum Aufheben der Verschiebung der Daten auf der Empfangsseite der Schnittstelle
und zum Verlängern
der Zeitspanne, während
der Daten zuverlässig übertragen
werden können.
-
Die US-Patentschrift Nr. 5 229 668
beschreibt „ein
Datensignal, das mit hoher Geschwindigkeit unter Verwendung eines
Taktsignals übertragen
werden kann, indem das Datensignal und das Taktsignal durch eine
Reihe von Datenbzw. Taktverzögerungselementen
geleitet und die entsprechenden verzögerten Daten- und Taktsignale
in Signalspeichern zwischengespeichert werden. Dabei wird die Übertragungsgeschwindigkeit
durch die relative Verschiebung zwischen den Takt- und Datensignalen bestimmt,
die sich relativ stark verkleinern lässt, und kann nur durch Rauschen
und Zufallsschwankungen bei der Fertigung begrenzt werden. Dadurch
wird eine Hochgeschwindigkeitsübertragung
ermöglicht."
-
In dem Dokument „Inserting Active Delay Elements
to Achieve Wave Pipelining" von
Wong et al. werden Algorithmen zum automatischen Ausgleich von Verzögerungen
beschrieben, indem eine Mindestanzahl von aktiven Verzögerungselementen zur
Verlängerung
kurzer Pfade eingefügt
wird.
-
Eine Aufgabe der vorliegenden Erfindung besteht
darin, ein Verfahren bereitzustellen, durch das die obigen Nachteile
beseitigt werden.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Gemäß der vorliegenden Erfindung
wird eine Schnittstellenvorrichtung bereitgestellt, die Folgendes
umfasst: Eine Vielzahl von Verzögerungs-Bauelementen,
wobei jedes Bauelement in der Lage ist, ein entsprechendes Datensignal
zu empfangen, jedes Verzögerungs-Bauelement
eine vorher auswählbare
Verzögerungszeit
hat und das Datensignal nach der vorher auswählbaren Verzögerungszeit
auszugeben; gekennzeichnet durch: Eine Schaltung, die mit der Vielzahl
von Verzögerungs-Bauelementen
verbunden ist, die zum Einstellen jeder vorher auswählbaren
Verzögerungszeit
in der Lage sind, wobei jede vorher auswählbare Verzögerungszeit als Reaktion auf
eine Ankunftszeit des entsprechenden Datensignals eingestellt wird
und die zum Einstellen jeder vorher auswählbaren Verzögerungszeit
fähige
Schaltung Folgendes umfasst: Eine Datenvergleichslogik, die zum
Empfang einer vorher festgelegten Teilmenge von Datensignalen und
zur Ausgabe eines ersten vorher festgelegten Wertes eines Ausgabesignals, wenn
die Teilmenge von Datensignalen eine erste vorher festgelegte Menge
von werten umfasst, und zur Ausgabe eines zweiten vorher festgelegten
Wertes eines Ausgabesignals fähig
ist, wenn als Reaktion auf die zugehörigen Ankunftszeiten die Teilmenge von
Datensignalen einen aus der ersten und der zweiten vorgegebenen
Menge von Werten annimmt; und eine Schaltung, die in der Lage ist,
die vorher ausgewählten
Verzögerungszeiten
als Reaktion auf die Werte des ersten und des zweiten vorher festgelegten
Ausgabesignals zu verändern.
-
Gemäß der vorliegenden Erfindung
wird ein Verfahren zur dynamischen Anordnung in Form einer Wellenpipeline
in einer Schnittstelle mit einer Vielzahl von Verzögerungs-Bauelementen
und einer mit der Vielzahl von Verzögerungs-Bauelementen verbundenen
Schaltung bereitgestellt, das die folgenden Schritte umfasst: Empfangen
eines entsprechenden Datensignals durch jedes der Bauelemente, wobei jedes
Verzögerungs-Bauelement eine vorher
auswählbare
Verzögerungszeit
hat, und Ausgabe des Datensignals nach der vorher ausgewählten Verzögerungszeit,
dadurch gekennzeichnet, dass: Durch die Schaltung jede vorher auswählbare Verzögerungszeit
eingestellt wird, wobei jede vorher ausgewählte Verzögerungszeit als Reaktion auf
eine Ankunftszeit des entsprechenden Datensignals eingestellt wird
und die Schaltung Folgendes umfasst: Eine Datenvergleichslogik,
die in der Lage ist, eine vorgegebene Teilmenge der Datensignale
zu empfangen und einen ersten vorgegebenen Ausgabesignalwert auszugeben,
wenn die Teilmenge der Datensignale eine erste vorgegebene Menge
von Werten umfasst, und einen zweiten vorgegebenen Ausgabesignalwert auszugeben,
wenn die Teilmenge von Datensignalen eine zweite vorgegebene Menge
von Werten hat, wobei die Teilmenge von Datensignalen als Reaktion auf
die zugehörigen
Ankunftszeiten eine der ersten und der zweiten vorgegebenen Wertmengen
annimmt; und eine Schaltung zum Verändern der vorher ausgewählten Verzögerungszeiten
als Reaktion auf den ersten und zweiten vorher festgelegten Ausgabesignalwert.
-
Oben wurden die Merkmale und die
technischen Vorteile der vorliegenden Erfindung ziemlich umfassend
dargelegt, damit die folgende detaillierte Beschreibung besser verstanden
werden kann. Im Folgenden werden weitere Merkmale und Vorteile der
Erfindung beschrieben, die Bestandteil der Ansprüche der Erfindung sind.
-
KURZBESCHREIHUNG
DER ZEICHNUNGEN
-
Zum vollständigeren Verständnis der
vorliegenden Erfindung und deren Vorteile wird auf die folgenden
Beschreibungen in Verbindung mit den beiliegenden Zeichnungen Bezug
genommen, in denen:
-
1 als
Blockschaltbild ein Datenverarbeitungssystem gemäß einer Ausführungsart
der vorliegenden Erfindung veranschaulicht;
-
2 als
Blockschaltbild eine Ausführungsart
einer dynamischen Schnittstelle in Form einer Wellenpipeline gemäß der vorliegenden
Erfindung veranschaulicht;
-
3 schematisch
ein Eingabe-Zeitablaufdiagramm für
die Schnittstelle von 2 veranschaulicht;
-
4 als
Blockschaltbild eine Datenempfangseinheit gemäß einer Ausführungsart
der vorliegenden Erfindung veranschaulicht;
-
5A als
Flussdiagramm eine Methodologie gemäß einer Ausführungsart
der vorliegenden Erfindung veranschaulicht;
-
5B als
Flussdiagramm ein Verfahren zur Takteinstellung gemäß einer
Ausführungsart
der vorliegenden Erfindung veranschaulicht;
-
5C schematisch
ein Zeitablaufdiagramm für
das Verfahren von 5B veranschaulicht;
-
5D als
Flussdiagramm ein Verfahren zum Aufheben der Verschiebung von Datensignalen gemäß einer
Ausführungsart
der vorliegenden Erfindung veranschaulicht;
-
5E schematisch
ein Zeitablaufdiagramm für
das Verfahren von 5D veranschaulicht;
-
5F als
Flussdiagramm ein Verfahren zur Taktphaseneinstellung gemäß einer
Ausführungsart der
vorliegenden Erfindung veranschaulicht; und
-
5G schematisch
ein Zeitablaufdiagramm für
das Verfahren von 5F veranschaulicht.
-
DETAILLIERTE
BESCHREIBÜNG
-
Die vorliegende Erfindung stellt
einen Wellenpipelinemechanismus bereit, durch den Schwankungen des
Zeitablaufs der Datensignale sowie Taktschwankungen verringert werden.
Mittels einer Initialisierungsprozedur kann der Gültigkeitsbereich
von Daten durch eine entsprechende Verringerung der Anfälligkeit
der Schnittstelle gegenüber
Schwankungen des Zeitablaufs zwischen den Chips auf einem Bus vergrößert werden.
Schwankungen des Zeitauflaufs zwischen einer Vielzahl an der Empfangseinheit
ankommender Datensignale werden dadurch beseitigt, dass das früheste und
das späteste
ankommende Datensignal ermittelt und das am frühesten ankommende-Datensignal
um einen vorgegeben Betrag verzögert
wird, der durch die Differenz der Ankunftszeiten zwischen dem frühesten und
dem spätesten
ankommenden Datensignal bestimmt wird. Außerdem wird die Verschiebung
eines von der Sendeeinheit kommenden Bustaktes beseitigt, wodurch der
davon abgeleitete Signalspeichertakt in der Mitte eines Datensignalfensters
zu liegen kommt.
-
Bei der folgenden Beschreibung werden
eine Reihe von speziellen Einzelheiten wie Bustaktfrequenzen, Taktsignalflanken
usw. dargelegt, um die vorliegende Erfindung voll verständlich zu
machen. Dem Fachmann ist jedoch klar, dass die vorliegende Erfindung
auch ohne solche speziellen Einzelheiten realisiert werden kann.
In anderen Fällen
wurden bekannte Schaltungen in Form eines Blockschaltbildes gezeigt,
um die vorliegende Erfindung nicht durch überflüssige Details in den Hintergrund
zu drängen.
-
In den 1 bis 5G werden die dargestellten Elemente
nicht notwendigerweise maßstabsgerecht gezeigt,
und gleiche oder ähnliche
Elemente werden in den verschiedenen Ansichten durch dieselben Bezugszahlen
bezeichnet.
-
Eine repräsentative Hardwareumgebung
zur Realisierung der vorliegenden Erfindung wird in 1 dargestellt, die eine typische Hardwarekonfiguration
eines Datenprozessors 113 gemäß der vorliegenden Erfindung
veranschaulicht, welcher eine Zentraleinheit (CPU) 110,
wie beispielsweise einen herkömmlichen
Mikroprozessor, und eine Anzahl anderer über einen Systembus 112 miteinander
verbundener Einheiten besitzt.
-
Der Datenprozessor 113 enthält einen
Speicher mit wahlfreiem Zugriff (RAM) 114, einen Nur-Lese-Speicher
(ROM) 116, einen Eingabe-/Ausgabe-Adapter (E/A) 118 zum
Verbinden von Peripherieeinheiten wie Plattenlaufwerken 120 und
Bandlaufwerken 140 mit dem Bus 112, einen Schnittstellenadapter 122 zum
Verbinden einer (nicht gezeigten) Tastatur 124, einer Maus 126 und/oder
anderer Benutzerschnittstelleneinheiten wie etwa eines (nicht gezeigten)
berührungsempfindlichen
Bildschirms (Touchscreen) mit dem Bus 112, einen Datenübertragungsadapter 134 zum
Verbinden eines Arbeitsplatzrechners 113 mit einem Datenverarbeitungsnetz
und einen Bildschirmadapter 136 zum Verbinden der Bildschirmeinheit 138 mit
dem Bus 112. Die CPU 110 kann weitere hier nicht
gezeigte Schaltungen, darunter üblicherweise
in einem Mikroprozessor enthaltener Schaltungen, enthalten, wie
z. B. eine Ausführungseinheit,
eine Busschnittstelleneinheit, eine arithmetische Logikeinheit usw.
Die CPU 110 kann sich auch in einer einzigen integrierten
Schaltung befinden.
-
2 veranschaulicht
eine Wellenpipelineschnittstelle 200 gemäß der vorliegenden
Erfindung. Die Schnittstelle 200 ist in jedem Chip 202 und
Chip 204 enthalten, die über eine entsprechende Schnittstelle 200 Daten
miteinander austauschen. Bei einer Ausführungsart der vorliegenden
Erfindung können die
Chips 202 und 204 zum Beispiel der CPU 110 und dem
RAM 114 im Datenprozessor 113 entsprechen. Die
Daten werden zwischen den Chips 202 und 204 mit
einer durch einen Bustakt, wie beispielsweise durch die Bustakte 206 und 208,
vorgegebenen Geschwindigkeit übertragen.
Die Sollfrequenzen der Bustakte 206 und 208 sind
gleich und leiten sich von dem durch eine PLL 212 in jedem
der Chips 202 und 204 bereitgestellten Referenztakt 210 ab.
Bei einer Ausführungsart
der vorliegenden Erfindung kann der Referenztakt 210 der
Systemtakt sein. Jede PLL 212 gibt einen lokalen Takt aus,
und zwar den lokalen Takt 214 in Chip 202 und
den lokalen Takt 216 in Chip 204, der auf die
Phase des Referenztaktes 210 einrastet und ein vorgegebenes
ganzzahliges Vielfaches M der Periode des Referenztaktes 210 sein kann.
Der lokale Takt 214 wird durch den Treiber 218 gepuffert,
um den durch den Chip 202 ausgegebenen Bustakt 206 bereitzustellen.
Entsprechend wird der lokale Takt 216 durch den Treiber 220 gepuffert,
um den durch Chip 204 ausgegebenen Bustakt 208 bereitzustellen.
-
Der Bustakt wird parallel zu den
durch den Chip gesendeten Datensignalen bereitgestellt. Die Daten 222 vom
Chip 202 werden im Ausgabesignalspeicher 224 zwischengespeichert
und durch den Treiber 226 gesteuert und gepuffert. Die
Daten werden an einer vorher ausgewählten Flanke des lokalen Taktes 214 zwischengespeichert.
Die Daten werden über
den Multiplexer (MUX) 228 empfangen. Der Multiplexer 228 empfängt im Rahmen
einer Initialisierungs-Einstellprozedur (IAP) auch ein vorgegebenes Synchronisationsmuster.
Dies wird im Folgenden beschrieben.
-
Die Daten 222 werden durch
den Empfänger (RX) 230 gepuffert
und zu einer Datenempfangseinheit 232 geleitet. Der parallel
zu den Daten 222 gesendete Bustakt 206 wird durch
den RX 234 gepuffert, dessen Ausgang den E/A-Takt 236 bildet,
welcher ebenfalls zur Datenempfangseinheit 232 geleitet
wird. Die parallel mit dem Bustakt 208 vom Chip 204 zum
Chip 202 gesendeten Daten werden auf ähnliche Weise durch die Schnittstelle 200 im
Chip 202 empfangen, und es ist klar, dass die Beschreibung
der Datenempfangseinheit 232 genauso für den Empfang der Daten vom
Chip 204 durch den Chip 202 gilt.
-
In 3 wird
schematisch ein Zeitablaufdiagramm für das an einem Eingang des
Chips 204 ankommende Datensignal 222 veranschaulicht.
Der Zeitablauf wird zwar bezüglich
des Datensignals 222 beschrieben, jedoch ist die Schnittstelle 200 bidirektional,
und es ist klar, dass für
die vom Chip 204 zum Chip 202 übertragenen Datensignale ein ähnliches Diagramm
gilt. Ein erstes Datensignal 302 kommt nach einer Soll-Latenzzeit an, die
sich aus der endlichen Übertragungsdauer
auf dem Pfad zwischen den Chips 202 und 204 ergibt.
In 3 wird die Ankunft des
Datensignals 302 zu einem Referenzzeitpunkt To veranschaulicht. Ein zweites Datensignal 304 hat eine
Latenzzeit, die länger
als die Latenzzeit des Datensignals 302 ist, und wird gegenüber dem
Referenzzeitpunkt um einen Betrag Ts verzögert, der
unter einer Vielzahl verzögerter
Datensignale auf dem Datenbus 222 als Maximalverzögerung angenommen
wird. Desgleichen besitzt ein drittes Datensignal 306 eine
kürzere
Latenzzeit als die Soll-Latenzzeit und
kommt früher
als das Datensignal 302 an. Das Datensignal 306 ist
so veranschaulicht, dass seine Ankunftszeit um den Betrag Tf vor dem Referenzzeitpunkt To liegt. Um die Funktion der Datenempfangseinheit 232 im
Folgenden zu beschreiben, soll Tf die früheste Ankunftszeit
aus einer Vielzahl verfrühter Datensignale
auf dem Datenbus 222 darstellen. Die Differenz der Ankunftszeiten
der Datensignale auf dem Datenbus 222 wird als Datensignalverschiebung
bezeichnet. Zur Datensignalverschiebung kann es aus verschiedenen
Ursachen kommen, unter Anderem durch Fertigungstoleranzen, konstruktive
Beschränkungen
wie beispielsweise Schwankungen der Leitungslängen, und zeitabhängige Effekte
wie zum Beispiel datenabhängige
Schwankungen (Symbolinterferenz), Taktschwankungen und Rauschen. (In 3 wurden die Referenzwerte
in den schematischen Zeitablaufdiagrammen zur besseren Veranschaulichung
bezüglich
der Mittelpunkte der Signalübergänge dargestellt.
Dem Fachmann ist jedoch klar, dass gültige Übergänge auch an anderen vorgegebenen
Punkten des Signalpegels festgelegt werden können.) Das Datensignal wird
in der Empfangseinheit, zum Beispiel im Chip 204, an einer
Flanke des E/A-Taktes 236 zwischengespeichert. Wenn keine Datensignalverschiebung
vorliegt, kann das Datensignal in einem Datengültigkeitsfenster mit einer
Breite der Periode des E/A-Taktes 236 übernommen
werden. Durch die Datenverschiebung wird die Breite des Datengültigkeitsfensters Tw um die Summe von Tf und Ts verringert.
-
Um die Breite des Datengültigkeitsfensters wiederherzustellen,
gibt die Schnittstelle 200 gemäß der vorliegenden Erfindung
wie in 4 veranschaulicht
eine Vielzahl von Datensignalen in die Datenempfangseinheit 232 ein.
Die Datensignale werden in einem Empfänger 230 gepuffert
und in eine programmierbare Verzögerungsleitung,
das heißt
in eine der Verzögerungsleitungen 406 bis 408,
eingekoppelt. Die programmierbaren Verzögerungsleitungen 406 bis 408 verzögern das
entsprechende in die Verzögerungsleitung
eingegebene Datensignal um einen vorher ausgewählten Betrag. Die das letzte
ankommende Datensignal, welches dem Datensignal 304 in 3 entspricht, empfangende
Verzögerungsleitung
wird auf eine Verzögerung
von null programmiert. (Es ist klar, dass jede Schaltung eine Mindestlaufzeit
hat. Eine Verzögerung
von null ist im Folgenden auf eine solche Mindestlaufzeit zu beziehen.) Daher
wird, wenn zum Beispiel das Datensignal 402 in 4 dem Datensignal 304 in 3 entspricht, die Verzögerungsleitung 408 auf
eine Verzögerung von
null programmiert. Die die übrigen
Datensignale empfangenden Verzögerungsleitungen
werden auf zunehmende Verzögerungswerte
programmiert, wobei die das Datensignal mit der frühesten Ankunftszeit;
welches dem Datensignal 306 in 3 entspricht, empfangende Verzögerungsleitung
auf die längste
Verzögerung
programmiert wird. Dann wird, wenn zum Beispiel das Datensignal 404 in 4 dem am frühesten ankommenden
Datensignal entspricht, die Verzögerungsleitung 408 auf
den längsten
Verzögerungswert
programmiert. Auf diese Weise wird die Verschiebung aller Datensignale 402 bis 404,
die in den Chip 204 eingegeben werden, auf die Ankunftszeit
des letzten ankommenden Datensignals eingestellt. Obwohl die in 4 veranschaulichte Ausführungsart
der vorliegenden Erfindung in Verbindung mit einzelnen Datensignalen
gezeigt und beschrieben wurde, ist klar, dass die Prinzipien der
vorliegenden Erfindung auf Gruppen von Datensignalen wie beispielsweise
ein Datenbyte oder andere derartige Gruppen von Datensignalen angewendet
werden können.
-
Die Verzögerungsleitungen 406 bis 408 werden
mittels einer Initialisierungs-Einstellprozedur (IAP) so programmiert,
dass sie ihre vorher ausgewählten
Verzögerungswerte
erhalten. Die IAP kann während
des Einschaltens oder beim Zurücksetzen des
Datenverarbeitungssystems 100 erfolgen, in der die in Form
einer dynamischen Wellenpipeline angeordnete Schnittstelle 200 enthalten
ist. Bei einer Ausführungsart
der vorliegenden Erfindung kann die IAP durch ein Signal von der
CPU 110 in 1 gesteuert werden.
Bei der IAP wird durch Bestätigung der IAP-Modusauswahl 240 ein
vorgegebenes Synchronisationsmuster (sync) über den Datenbus 222 gesendet,
woraufhin der MUX 228 das vorgegebene Synchronisierungsmuster
ausgibt. Das Synchronisierungsmuster wird mit allen Datensignalen
gesendet, die den Datenbus 222 bilden.
-
Das Synchronisierungsmuster wird
durch die Signalspeicher 412 bis 414 erfasst,
die die Ausgangssignale der Datenleitungen 406 bis 408 empfangen.
Die in die Signalspeicher 412 bis 414 eingegebenen
Datensignale werden an einer Flanke des E/A-Taktes 236 zwischengespeichert,
der über
den Puffer 234 vom Bustakt 206 abgeleitet wird.
Der E/A-Takt 236 wird in der Verzögerungsleitung 410 in der
Datenempfangseinheit 232 verzögert. Der verzögerte E/A-Takt
wird wieder im Puffer 416 aktiviert und zu den Signalspeichern 412 bis 414 geleitet.
-
Die Steuerung der Verzögerungsleitung 410 sowie
der Verzögerungsleitungen 406 bis 408 erfolgt mittels
der Ablaufsteuereinheit 418. Während der IAP stellt die Ablaufsteuereinheit 418 die
programmierbaren Verzögerungen
in jeder der Verzögerungsleitungen 406 bis 408 als
Reaktion auf den Eingang des Synchronisierungsmusters in den Signalspeichern 412 bis 414 ein.
-
Die Ausgänge 420 bis 422 sind
mit den entsprechenden Eingängen
der Datenvergleichslogik 424 verbunden. Durch ein geeignetes
Synchronisierungsmuster wird die eindeutige Auflösung der synchronen Datenerfassung
beim Fehlen jeglicher Datensignaiverschiebung ermöglicht.
Ein solches Muster stellt einen Datenwert mit der Folge „100010001000" dar. Diese Folge
ist periodisch und besitzt eine Periodizität von vier E/A-Taktperioden und
wird in Verbindung mit einer elastischen Schnittstelle verwendet,
die eine Elastizität
von vier Taktperioden besitzt. Eine elastische Schnittstelle ist
Gegenstand der gleichzeitig anhängigen,
an denselben Empfänger
abgetretenen US-Patentanmeldung „An Elastic Interface Apparatus
and Method Therefor". Alternativ
können
andere Synchronisierungsmuster realisiert werden, wenn diese eine
eindeutige Auflösung
der synchronen Datenerfassung ermöglichen. Zum Beispiel kann
alternativ ein der Folge des obigen Datenwertes komplementäres Synchronisierungsmuster
realisiert werden. Die Auswahl der Verzögerungswerte in den Verzögerungsleitungen 406 bis 408 und 410 wird
im Folgenden unter Bezug auf die Funktion der Ablaufsteuereinheit 418 beschrieben.
-
In 5A wird
das Verfahren 500 zum Auswählen der Verzögerungswerte
mittels der Ablaufsteuereinheit 418 veranschaulicht. In
Schritt 502 wird der E/A-Takt auf das letzte ankommende
Datensignal eingestellt, indem ein geeigneter Verzögerungswert in
der Verzögerungsleitung 410 ausgewählt wird.
Der Schritt 502 wird später
auch zusammen mit den 5B und 5C erörtert. Die Verschiebung der
Datensignale wird in Schritt 504 aufgehoben, was später zusammen
mit den 5D und 5E beschrieben wird. In Schritt 508 wird
der Bezugspunkt des E/A-Takts eingestellt. Der Schritt 508 wird
im Folgenden zusammen mit den 5F und 5G beschrieben.
-
5B veranschaulicht
ein Flussdiagramm des Schritts 502 zur Verzögerung des
E/A-Takts. In Schritt 512 wird wie oben beschrieben die
IAP mit einer Ausgabe des Synchronisierungsmusters gestartet. In
Schritt 514 stellt die Ablaufsteuereinheit 418 in 4 fest, dass das in den Signalspeichern 412 bis 414 zwischengespeicherte
Synchronisierungsmuster demselben Datensignal entspricht, was beidem
oben beschriebenen beispielhaften Synchronisierungsmuster dem Wert „1" entspricht. Die
Ablaufsteuereinheit 418 stellt fest, ob dasselbe Datensignal
zwischengespeichert wurde, indem sie ermittelt, ob der Ausgang 426 der
Flip-Flop-Schaltung 428 zum Setzen/Rücksetzen (S-R) zurückgesetzt
wurde. Der Ausgang 426 der S-R-Flip-Flop-Schaltung 428 wird durch
die Datenvergleichslogik 424 gesteuert, die Ungleichheiten
erkennt und daraufhin ihren Ausgang 430 bestätigt. Als
Reaktion auf das Erscheinen desselben Datensignals an jedem der
Eingänge 421 bis 423 der
Datenvergleichslogik 424 wird der Ausgang 430 negiert
und somit die S-R-Flip-Flop-Schaltung zurückgesetzt. Die Datenvergleichsschaltung 424 wird
durch den verzögerten
E/A-Takt 411 angesteuert,
wodurch am Ausgang 430 der Datenvergleichslogik 424 als
Reaktion auf das Zwischenspeichern der Datensignale in den Signalspeichern 412 bis 414 ein Ausgangssignal
entsteht. Eine beispielhafte Ausführungsart der Datenvergleichslogik 424,
die der Realisierung in positiver Logik entspricht, kann die logische
NAND-Verknüpfung
der Signale an den Eingängen 421 bis 423 und
des vom verzögerten
Takt 411 abgeleiteten Steuersignals bilden. Alternativ
kann eine beispielhafte Ausführungsart,
die der Realisierung in negativer Logik entspricht, die logische ODER-Verknüpfung der
Eingänge 421 bis 423 und des
vom Komplement des verzögerten
Takts 411 abgeleiteten Steuersignals bilden. Eine solche
Ausführungsart
entspräche
dem Komplement des oben erörterten
Synchronisierungsmusters.
-
Statistische Schwankungen bei Einstellen der
Verzögerungen
in den Verzögerungsleitungen 406 bis 408 können verringert werden,
indem das Synchronisierungsmuster über mehrere Zyklen des verzögerten E/A-Takts 411 erfasst
wird. Der verzögerte
E/A-Takt 411 erhöht
den Zähler 432.
Der Zähler 432 bestätigt den
Ausgang 434 nach einer vorgegebenen Anzahl K von Zyklen
des verzögerten E/A-Takts 411 und
beginnt von vorn. Der Ausgang 434 des Zählers 432 ist mit
dem Rücksetzeingang 436 der
S-R-Flip-Flop-Schaltung 428 verbunden und setzt daher den
Ausgang 426 zurück.
Dann kann eine neue Folge zur Prüfung
des Synchronisierungsmusters auf Ungleichheit ausgeführt werden.
Wenn bei einer Prüfung
eine Ungleichheit gefunden wird, wird die S-R-Flip-Flop-Schaltung
gesetzt.
-
Wenn, um bei 5B zu bleiben, während der durch den Wert der
Ganzzahl K bestimmten Prüfperiode
an allen Eingängen 421 bis 423 der
Datenvergleichslogik 424 dasselbe Datensignal anliegt, folgt
nach dem Schritt 514 der „Ja"-Zweig, und das Verfahren 500 geht
weiter zum Schritt 504. Für diesen Fall, bei dem die
Verzögerungen
in den Verzögerungsleitungen 406 bis 408 noch
nicht gesetzt worden sind, gilt der in 5C schematisch veranschaulichte Zeitablauf.
Der E/A-Takt 236 ist durch die Verzögerungsleitung 410 um
einen Betrag Td verzögert worden,
wobei die Flanke t1 innerhalb des
durch das Zeitintervall Tw dargestellten
Datengültigkeitsfensters liegt.
-
Anfangs kann die Verzögerungszeit Td gleich null sein, wobei die Flanke To außerhalb des Datengültigkeitsfensters
liegt und in den Signalspeichern 412 bis 414 für die Flanke To beim Empfangen des Datenwertes 306 der
Wert „1" und beim Empfangen der
Datenwerte 302 und 304 der wert „0" gespeichert wird.
Dies führt
zum Feststellen der Ungleichheit. Dann wird der Ausgang 430 der
Datenvergleichslogik 424 bestätigt und der Ausgang 426 der S-R-Flip-Flop-Schaltung 428 gesetzt.
Daraufhin folgt nach dem Schritt 514 in 5B der „Nein"-Zweig. In Schritt 516 erhöht die Ablaufsteuereinheit 418 über die
Verzögerungsleitung 410 die
Verzögerung.
-
Die Verzögerung wird durch die Ablaufsteuereinheit 418 erhöht, indem
sie an den bidirektionalen Zähler 440 ein
Signal „Aufwärts" für die Zählrichtung 438 sendet.
Der Zähler 440 erhöht als Reaktion auf
die Ausgangsbestätigung 434 des
Zählers 432 seinen
Zählerstand,
wenn der Zähler 432 den
durch den Wert der Ganzzahl K festgelegten Zählerendstand erreicht. Der
in dem bidirektionalen Zähler 440 enthaltene
Zählerstand
wird zur der Schaltung zum Steuern der Verzögerung 442 geschickt.
Die Schaltung zum Steuern der Verzögerung 442 decodiert den
Zählerstand
und sendet ein entsprechendes Steuersignal 444 zur Verzögerungsleitung 410,
woraufhin die Verzögerungsleitung 410 die
Verzögerungszeit Td um einen vorgegebenen Zuwachsschritt erhöht. (Eine
programmierbare Verzögerungsleitung 410,
die in der vorliegenden Erfindung verwendet werden kann, ist Gegenstand
der gleichzeitig anhängigen,
an denselben Empfänger
abgetretenen US-Patentanmeldung „Programmable
Delay Locked Loop".)
Dann kehrt der Schritt 502 der Verzögerung des E/A-Taktes zum Schritt 514 zurück.
-
Wenn der in Schritt 514 erhöhte Wert
von Td ausreicht, um die Flanke t1 in das Datengültigkeitsfenster zu bringen,
folgt nach dem Schritt 514 der oben beschriebene „Ja"-Zweig. Ansonsten
wird die Verzögerung über die
Verzögerungsleitung 410 in Schritt 516 erneut
erhöht
und der Schritt R der Verzögerung des E/A-Taktes durchläuft die
Schleife durch die Schritte 514 und 516 so lange,
bis die Flanke tl in das Datengültigkeitsfenster
fällt.
Die Ablaufsteuereinheit 418 geht dann weiter zu Schritt 504,
in dem die Verschiebung der Datensignale aufgehoben wird.
-
Der Schritt 504 des Aufhebens
der Verschiebung der Datensignale wird in 5D ausführlich beschrieben. In Schritt 504 wird
die Vielzahl der Verzögerungsleitungen 406 bis 408 programmiert.
In Schritt 518 wird eine erste Verzögerungsleitung, die einem ersten
Datensignal entspricht, zum Programmieren ausgewählt. (Dies kann einem Index
j entsprechen, der auf einen ersten Wert initialisiert werden kann,
der gleich null sein kann). In Schritt 520 wird ein Datenvergleich
durchgeführt.
Der Datenvergleich in Schritt 520 erfolgt in genau derselben
Weise wie der Datenvergleich in Schritt 514 von 5B und wird daher hier nicht
noch einmal ausführlich
beschrieben.
-
Wenn alle Datensignale synchron sind,
wird in Schritt 522 in der j-ten Verzögerungsleitung, die dem j-ten
Datensignal entspricht, eine Erhöhung
der Verzögerung
eingestellt. Man beachte, dass zunächst infolge des E/A-Takt-Einstellschrittes 502 nach
Schritt 520 der „Ja"-Zweig folgt. Nach
Erhöhung der
Verzögerung
in Schritt 522 wird in Schritt 520 erneut ein
Datenvergleich durchgeführt.
Dann durchläuft
der Schritt 504 zum Aufheben der Verschiebung der Datensignale
die Schleife zwischen den Schritten 520 und 522 so
lange, bis die Datensynchronität
verloren geht, und in Schritt R wird der „Nein"-Zweig gewählt, woraufhin
in Schritt 524 die Verzögerung
des j-ten Datensignals um einen Zuwachsschritt der Verzögerungszeit
verringert wird. Auf diese Weise kann die Phase des j-ten Datensignals
an den E/A-Takt angepasst werden.
-
Dies wird wiederum aus 5C verständlich. Zuerst wird beispielsweise
angenommen, dass in den Schritten 520 und 522 das
j-te Datensignal das letzte ankommende Datensignal 304 ist.
Dann wird das Datensignal 304 durch Hinzufügen des
ersten Zuwachsschrittes der Verzögerungszeit
zur entsprechenden Verzögerungsleitung
verschoben, so dass seine Flanke t2 hinter
der Flanke t1 des verzögerten E/A-Taktes 411 liegt.
Dann geht Schritt 520 über
den „Nein"-Zweig weiter zu
Schritt 524, wo der in Schritt 522 hinzugefügte Zuwachsschritt
der Verzögerungszeit
wieder entfernt wird. Somit wird dem letzten ankommenden Datensignal
keine weitere Verzögerung zugewiesen.
Dies stellt die erwünschte
Funktion des Schrittes 504 zum Aufheben der Verschiebung
der Datensignale dar, da das letzte ankommende Datensignal als Referenzsignal
für das
Aufheben der Verschiebung aller anderen Datensignale dienen kann.
-
Desgleichen soll nun wiederum in
Form eines Beispiels die Funktion der Schritte 520 und 522 für ein Datensignal
betrachtet werden, welches das früheste ankommende Datensignal 306 in 5C ist. Für das früheste ankommende
Datensignal werden in dessen entsprechender programmierbarer Verzögerungsleitung
durch wiederholte Ausführung der
Schritte 520 bis 522 mehrere Zuwachswerte der Verzögerungszeit
zugewiesen, bis seine Flanke t3 zeitlich
hinter die Flanke t1 des verzögerten E/A-Taktes 411 verschoben
ist. Dann geht wie oben in Bezug auf das Datensignal 304 beschrieben
der Datenvergleichsschritt 520 über den „Nein"-Zweig weiter zu Schritt 524,
wo die programmierbare Verzögerung um
einen Zuwachswert der Verzögerung
verringert und die Flanke t3 an
die Flanke t1 des verzögerten E/A-Taktes 411 angepasst
wird.
-
Nach dem Aufheben der Verschiebung
des j-ten Datensignals ermittelt der Schritt 504 zum Aufheben
der Verschiebung in Schritt 526, ob die Verzögerungen
aller Datensignale programmiert worden sind. Wenn dies nicht der
Fall ist, geht der Schritt 504 zum Aufheben der Verschiebung
in Schritt R zur nächsten
Verzögerungsleitung
weiter und kehrt zu Schritt 520 zurück. Nachdem alle Verzögerungsleitungen
eingestellt worden sind, sind alle Datensignale an die Flanke t1 des verzögerten E/A-Taktes 411 angepasst,
was im Zeitablaufdiagramm von 5E schematisch
veranschaulicht wird, und der Schritt 504 zum Aufheben
der Verschiebung geht weiter zu Schritt 506 des Verfahrens 500.
-
In Schritt 506 zum Einstellen
des Taktbezugspunktes kann die Flanke t1 des
verzögerten E/A-Taktes 411 auf
eine Mitte des Datengültigkeitsfensters
eingestellt werden. Selbst wenn eine Taktflanke beim Start zentriert
ist, kann sie infolge von Unterschieden der Latenzzeit des Pfades,
durch Rauschen usw. bei Ankunft am Empfänger verschoben sein. Der Schritt 506 zum
Einstellen des Prüfpunktes
hebt die Verschiebung des Taktsignals auf. In Schritt 528 von 5F wird ein Datenvergleich durchgeführt. Wegen
des Schritts 506 zum Aufheben der Verschiebung geht der
Datenvergleichsschritt 526 zuerst über seinen „Ja"-Zweig weiter zu Schritt 540,
und die Zeitverzögerung
wird in der Verzögerungsleitung 410 in
Schritt 530 um einen Zuwachsschritt der Zeitverzögerung erhöht. Der
Schritt 506 zum Einstellen des Taktprüfpunktes kehrt dann zu Schritt 528 zurück, wo erneut
der Datenvergleich erfolgt. Der Schritt 506 zum Einstellen
des E/A-Taktes durchläuft
dann die Schleife zwischen den Schritten 528 und 530 so
lange, bis der Datenvergleichsschritt 528 eine Ungleichheit
ergibt, wodurch angezeigt wird, dass die mit t1 bezeichnete
Flanke t1 des verzögerten E/A-Taktes 411 eine
spätere
Flanke des Datengültigkeitsfensters
von 5G überschritten
hat. Dann folgt der Datenvergleichsschritt 528 dem „Nein"-Zweig, und der Zählerstand
des Zählers 440 wird
in Schritt 532 gespeichert.
-
Der Schritt 506 zum Einstellen
des Bezugspunktes des E/A-Taktes
ermittelt sodann die frühe Flanke
des Datengültigkeitsfensters.
Die Verzögerung
in der Verzögerungsleitung 410 wird
in Schritt 534 um einen Zuwachsschritt der Verzögerungszeit verringert,
und in Schritt 536 wird ein Datenvergleich durchgeführt. Da
die Flanke t1' in Schritt 534 in das Datengültigkeitsfenster
zurück
verschoben worden ist, geht der Datenvergleichsschritt 536 über seinen „Ja"-Zweig weiter zu
Schritt 538, und die in der Verzögerungsleitung 410 programmierte
Verzögerung wird
um einen weiteren Zuwachsschritt der Verzögerungszeit verringert. Der
Schritt 506 zum Einstellen des Taktbezugspunktes durchläuft dann
die Schleife zwischen den Schritten 536 und 538 so
lange, bis der Datenvergleich im Datenvergleichsschritt 536 eine Ungleichheit
ergibt. Dadurch wird angezeigt, dass die Flanke t1 des
verzögerten
E/A-Taktes 411 in 5G früher als
eine frühe
Flanke te des Datengültigkeitsfensters
angekommen ist. Dieser Übergang
des verzögerten
E/A-Taktes 411 wird durch t1'' bezeichnet. Dann geht der Datenvergleichsschritt 536 über seinen „Nein"-Zweig weiter zu
Schritt 540, wo der Zählerstand
des Zählers 440 für die frühe Flanke
gespeichert wird.
-
In Schritt 542 wird die
Phase des verzögerten
E/A-Taktes 411 auf den Mittelwert zwischen der frühen und
der späten
Flanke des Datengültigkeitsfensters
eingestellt. Dies entspricht in 5G der durchgezogenen
Linie der Kurve des verzögerten E/A-Taktes 411 und
der Flanke t1'''. Dann geht
der Schritt R für
das Einstellen des Prüfpunktes
des verzögerten
E/A-Taktes weiter zu Schritt 508, und das Verfahren 500 verlässt den
IAP-Modus.
-
Durch die Vorrichtung und das Verfahren, welche
in den hier beschriebenen Ausführungsarten dargestellt
wurden, wird eine dynamische Anordnung einer Schnittstelle in Form
einer Wellenpipeline bereitgestellt. Die Verschiebung der Vielzahl
an der Schnittstelle ankommender Datensignale zueinander wird aufgehoben,
indem die Laufzeitunterschiede zwischen den Datensignalen, Pfadunterschiede
zwischen dem E/A-Takt und den Datensignalen sowie konstruktiv bedingte
Toleranzen zwischen den Datensignalen, wie beispielsweise durch
die Verdrahtung der Chips, der Module und der Steckkarten, ausgeglichen
werden. Dies führt
zu einer Verbreiterung des Datensignalbereichs. Die Schnittstelle
stellt ferner den Bezugstakt so ein, dass der Bezugspunkt im Wesentlichen
in der Mitte des Datengültigkeitsfensters
liegt, wodurch Unterschiede der Pfadlängen zwischen dem E/A-Takt
und den Datensignalen, sowie in der Verdrahtung der Module und der
Steckkarten ausgeglichen werden können.