DE60002571T2 - Elastische schnittstelleanornung und verfahren dafür - Google Patents

Elastische schnittstelleanornung und verfahren dafür Download PDF

Info

Publication number
DE60002571T2
DE60002571T2 DE60002571T DE60002571T DE60002571T2 DE 60002571 T2 DE60002571 T2 DE 60002571T2 DE 60002571 T DE60002571 T DE 60002571T DE 60002571 T DE60002571 T DE 60002571T DE 60002571 T2 DE60002571 T2 DE 60002571T2
Authority
DE
Germany
Prior art keywords
data
clock
output
input
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60002571T
Other languages
English (en)
Other versions
DE60002571D1 (de
Inventor
Mark Daniel DREPS
David Frank FERRAIOLO
Charles Kevin GOWER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE60002571D1 publication Critical patent/DE60002571D1/de
Publication of DE60002571T2 publication Critical patent/DE60002571T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/104Delay lines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Telephone Function (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Pens And Brushes (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Absorbent Articles And Supports Therefor (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Communication Control (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)

Description

  • 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 29 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 4A8B 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 808818 empfangen. Jeder der Zwischenspeicher 808818 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 832842 zwischen den Signalen an den Eingängen 804 und 806. Die Gattersignale 832840 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 808818 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 848858 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 848858 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 838842 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 808818 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 808810 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 848858 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.

Claims (26)

  1. Schnittstellenvorrichtung, die Folgendes umfasst: eine zum Speichern einer ersten Menge von Datenwerten bestimmte erste Speichereinheit (408); eine zum Speichern einer zweiten Menge von Datenwerten bestimmte zweite Speichereinheit (422); eine mit der ersten und der zweiten Speichereinheit verbundene Schaltlogik (432) zum sequenziellen Ausgeben eines ersten Datenwertes aus der ersten Speichereinheit und eines zweiten Datenwertes aus der zweiten Speichereinheit als Reaktion auf mindestens ein Steuersignal (343), wobei in dir ersten und der zweiten Speichereinheit während einer vorbestimmten Anzahl von Zyklen eines ersten Takts Datenwerte gespeichert sind und die Schnittstellenvorrichtung dadurch gekennzeichnet ist, dass sie ferner Folgendes umfasst: eine erste und eine zweite Auswahlschaltlogik (402, 416), die jeweils einen mit dem entsprechenden Eingang der ersten und der zweiten Speichereinheit verbundenen Ausgang aufweisen, wobei die erste und die zweite Auswahlschaltlogik jeweils einen zum Empfangen eines Datenstroms bestimmten ersten Eingang sowie einen mit dem entsprechenden Ausgang der ersten und der zweiten Speichereinheit verbundenen zweiten Eingang aufweisen, wobei die erste und die zweite Auswahlschaltlogik zum Auswählen und zum Ausgeben eines Signals eines ihrer ersten und zweiten Eingänge als Reaktion auf ein erstes und ein zweites Steuersignal (414, 428) bestimmt ist.
  2. Vorrichtung nach Anspruch 1, bei der das Ausgeben synchron zu einem zweiten Takt erfolgt.
  3. Vorrichtung nach Anspruch 2, bei der der zweite Takt eine Periode aufweist, die gleich der Periode des ersten Takts ist.
  4. Vorrichtung nach einem der vorangehenden Ansprüche, bei der die erste und die zweite Speichereinheit zum Empfangen eines eine Vielzahl von Datenwerten umfassenden Datenstroms bestimmt sind.
  5. Vorrichtung nach einem der vorangehenden Ansprüche, bei der die erste Speichereinheit Daten an einer ersten vorbestimmten Flanke eines zweiten Takts und die zweite Speichereinheit Daten an einer zweiten vorbestimmten Flanke des zweiten Takts zwischenspeichert.
  6. Vorrichtung nach Anspruch 5, bei der der zweite Takt aus einem von einer Sendevorrichtung empfangenen Taktsignal abgeleitet wird.
  7. Vorrichtung nach einem der vorangehenden Ansprüche, bei der das erste und das zweite Steuersignal jeweils eine doppelt so große Periode wie der erste Takt aufweisen, und bei dem das zweite Steuersignal ein Komplement des ersten Steuersignals ist.
  8. Vorrichtung nach einem der vorangehenden Ansprüche, bei der die erste und die zweite Auswahlschaltlogik jeweils erste und zweite Multiplexer umfassen.
  9. Vorrichtung nach Anspruch 1, bei der die Schaltlogik zum selektiven und sequenziellen Ausgeben erster und zweiter Datenwerte einen Multiplexer mit einem zum Empfangen des ersten Datenwertes bestimmten ersten Eingang sowie einem zum Empfangen des zweiten Datenwertes bestimmten zweiten Eingang aufweist, wobei der Multiplexer als Reaktion auf ein Auswahlsteuersignal mit einer Periode, die ein vorbestimmtes Vielfaches einer Periode des ersten Takts ist, einen ersten oder zweiten Datenwert zum Ausgeben auswählt.
  10. Vorrichtung nach Anspruch 9, bei der die Periode des Auswahlsteuersignals doppelt so groß wie die Periode des ersten Takts ist.
  11. Vorrichtung nach Anspruch 1, bei der die zum selektiven und sequenziellen Ausgeben des ersten und des zweiten Datenwertes bestimmte Schaltlogik Folgendes umfasst: einen ersten Zwischenspeicher mit einem zum Empfangen des ersten Datenwertes bestimmten Eingang; einen zweiten Zwischenspeicher mit einem zum Empfangen des zweiten Datenwertes bestimmten Eingang; und einen Multiplexer, der einen an einen Ausgang des ersten Zwischenspeichers angeschlossenen ersten Eingang sowie einen an einen Ausgang des zweiten Zwischenspeichers angeschlossenen zweiten Eingang aufweist, wobei der Multiplexer zum Auswählen für die Ausgabe eines ersten oder eines zweiten Datenwertes als Reaktion auf ein Auswahlsteuersignal bestimmt ist, dessen Periode ein vorbestimmtes Vielfaches der Periode des ersten Takts aufweist, und bei dem der erste und der zweite Zwischenspeicher Daten auf einem ersten und einem zweiten vorbestimmten Logikzustand (level) des ersten Takts zwischenspeichert.
  12. Vorrichtung nach Anspruch 11, bei der das erste Speicherelement einen dritten Zwischenspeicher und das zweite Speicherelement einen vierten Zwischenspeicher umfasst, wobei der dritte Zwischenspeicher ein transparenter Zwischenspeicher ist, der Daten auf einem ersten vorbestimmten Pegel eines zweiten Takts hält, und der vierte Zwischenspeicher ein transparenter Zwischenspeicher ist, der Daten auf einem zum ersten vorbestimmten Takt-Logikzustand komplementären Logikzustand hält.
  13. Vorrichtung nach Anspruch 12, die ferner einen dritten und einen vierten Multiplexer umfasst, welche jeweils an den dritten und den vierten Zwischenspeicher angeschlossene Ausgänge aufweisen, wobei der dritte und der vierte Multiplexer einen zum Empfangen eines Stroms von Datenwerten bestimmten ersten Eingang sowie einen jeweils an einen Ausgang des dritten und des vierten Zwischenspeichers angeschlossenen zweiten Eingang aufweisen, wobei der dritte Multiplexer zum Auswählen zwischen dem ersten und dem zweiten Eingang als Reaktion auf ein erstes Steuersignal bestimmt ist und der vierte Multiplexer zum Auswählen zwischen dem ersten und dem zweiten Eingang als Reaktion auf ein zweites Steuersignal bestimmt ist, welches zum ersten Steuersignal komplementär ist.
  14. Schnittstellenvorrichtung nach Anspruch 1, die Folgendes umfasst: eine Vielzahl M erster Multiplexer, die jeweils einen ersten zum Empfangen eines Datenstroms bestimmten Eingang sowie einen Ausgang aufweisen; eine Vielzahl M erster Zwischenspeicher, die jeweils einen mit einem Ausgang eines entsprechenden ersten Multiplexers verbundenen Eingang aufweisen, wobei der erste Zwischenspeicher einen ersten und einen zweiten mit einem zweiten Eingang des entsprechenden ersten Multiplexers verbundenen Ausgang aufweist; eine Vielzahl M zweiter Multiplexer, die jeweils einen zum Empfangen des Datenstroms bestimmten ersten Eingang sowie einen Ausgang aufweisen; eine Vielzahl M von zweiten Zwischenspeichern, wobei jeder zweite Zwischenspeicher ein Zwischenspeicherpaar umfasst, bei dem ein Eingang eines ersten Zwischenspeicherpaars mit einem Ausgang eines entsprechenden zweiten Multiplexers verbunden ist und einen Ausgang aufweist, und bei dem ein zweites Paar einen mit dem Ausgang des ersten Paars verbundenen Eingang aufweist und wobei ein Ausgang mit einem zweiten Eingang des entsprechenden zweiten Multiplexers verbunden ist; eine Vielzahl dritter Zwischenspeicher, die einen mit dem ersten Ausgang eines entsprechenden ersten Zwischenspeichers verbundenen Eingang sowie einen mit einem entsprechenden Eingang eines dritten Multiplexers verbundenen Ausgang aufweisen; eine Vielzahl vierter Zwischenspeicher, die einen mit dem Ausgang des ersten Zwischenspeichers des Zwischenspeicherpaars verbundenen Eingang sowie einen mit einem entsprechenden Eingang des dritten Multiplexers verbundenen Ausgang aufweisen, wobei der dritte Multiplexer zum Ausgeben einer Folge von Datenwerten als Reaktion auf ein Auswahlsteuersignal bestimmt ist, welches eine Vielzahl k von Signalen umfasst, wobei ein erstes Signal der Vielzahl k von Signalen eine Halbperiode aufweist, die gleich einer Periode eines ersten Takts ist, wobei jeder der ersten und zweiten Zwischenspeicher zum Reagieren auf ein zweites Taktsignal mit einer der Periode des ersten Takts gleichen Halbperiode bestimmt ist, und wobei jeder der dritten Zwischenspeicher zum Reagieren auf den ersten Takt bestimmt ist.
  15. Vorrichtung nach Anspruch 14, bei der der erste Takt einen lokalen Chip-Takt und der zweite Takt einen E/A-Takt (input/output, Eingabe/Ausgabe) umfasst.
  16. Vorrichtung nach Anspruch 14, bei der 2(k-1) gleich M ist.
  17. Verfahren zum Verbinden von integrierten Schaltkreiseinheiten, das die folgenden Schritte umfasst: Speichern einer ersten Menge von Datenwerten in einer ersten Speichereinheit (408), in der jeder Datenwert der ersten Menge während einer vorbestimmten Anzahl von Zyklen eines ersten Takts gespeichert wird; Speichern einer zweiten Menge von Datenwerten in einer zweiten Speichereinheit (422), in der jeder Datenwert der zweiten Menge während einer vorbestimmten Anzahl von Zyklen eines ersten Takts gespeichert wird; sequenzielles Ausgeben eines ersten Datenwertes aus der ersten Speichereinheit und eines zweiten Datenwertes aus der zweiten Speichereinheit durch Anschließen eines Schaltkreises (432) an die erste und die zweite Speichereinheit und Bereitstellen eines Steuersignals (343) für den Schaltkreis, wobei das Steuersignal eine Periode aufweist, die ein Vielfaches einer Periode des ersten Takts ist; wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist: Empfangen eines Datenstroms (Rx 330) an einem ersten Eingang (404, 418) jeder ersten und zweiten Auswahlschaltlogik (402, 416); Bereitstellen der Ausgangssignale der ersten und der zweiten Speichereinheit an dem zweiten Eingang jeder ersten bzw. zweiten Auswahlschaltlogik; Ausgeben jedes Datenwertes der ersten Menge von Datenwerten an die erste Speichereinheit von der ersten Auswahlschaltlogik als Reaktion auf ein erstes Auswahlsignal (414); und Ausgeben jedes Datenwertes der zweiten Menge von Datenwerten an die zweite Speichereinheit von der zweiten Auswahlschaltlogik als Reaktion auf ein zweites Auswahlsignal (428).
  18. Verfahren nach Anspruch 17, bei dem die erste und die zweite Menge von Datenwerten eine Vielzahl von Datenwerten umfasst, die in einem Datenstrom empfangen wurden.
  19. Verfahren nach Anspruch 17, bei dem das erste und das zweite Auswahlsignal komplementäre Signale sind.
  20. Verfahren nach Anspruch 17, bei dem das erste und das zweite Auswahlsignal eine Periode aufweisen, die doppelt so groß wie die Periode des ersten Takts ist.
  21. Verfahren nach Anspruch 17, bei dem das erste und das zweite Auswahlsignal eine Periode aufweisen, die ein vorbestimmtes Vielfaches einer Periode des ersten Takts ist.
  22. Verfahren nach Anspruch 17, das ferner den Schritt des Initialisierens des ersten und des zweiten Auswahlsignals umfasst.
  23. Verfahren nach Anspruch 22, bei dem der Schritt des Initialisierens des ersten und des zweiten Auswahlsignals die folgenden Schritte umfasst: Senden eines vorausgewählten Datenstroms; und Anpassen einer Phase jedes ersten und zweiten Auswahlsignals als Reaktion auf den vorausgewählten Datenstrom.
  24. Verfahren nach Anspruch 23, bei dem der Schritt des Anpassens der Phase jedes der Auswahlsignale ferner den Schritt des Auswählens einer Phase beinhaltet, bei dem ein erster vorbestimmter Datenwert im Datenstrom im ersten Speicherelement sowie ein zweiter vorbestimmter Datenwert im zweiten Speicherelement gespeichert wird.
  25. Verfahren nach Anspruch 23, bei dem der Datenstrom ein Synchronisationsmuster (sync) umfasst.
  26. Datenverarbeitungssystem, das Folgendes umfasst: eine erste Datenverarbeitungseinheit; und eine mit der ersten Datenverarbeitungseinheit über eine elastische Schnittstelle verbundene zweite Datenverarbeitungseinheit, wobei die elastische Schnittstelle die Vorrichtung nach einem der Ansprüche 1-13 enthält.
DE60002571T 1999-03-05 2000-03-03 Elastische schnittstelleanornung und verfahren dafür Expired - Lifetime DE60002571T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US263661 1999-03-05
US09/263,661 US6334163B1 (en) 1999-03-05 1999-03-05 Elastic interface apparatus and method therefor
PCT/GB2000/000754 WO2000054163A1 (en) 1999-03-05 2000-03-03 Elastic interface apparatus and method therefor

Publications (2)

Publication Number Publication Date
DE60002571D1 DE60002571D1 (de) 2003-06-12
DE60002571T2 true DE60002571T2 (de) 2004-04-29

Family

ID=23002731

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60002571T Expired - Lifetime DE60002571T2 (de) 1999-03-05 2000-03-03 Elastische schnittstelleanornung und verfahren dafür

Country Status (17)

Country Link
US (2) US6334163B1 (de)
EP (1) EP1166210B1 (de)
JP (1) JP4384819B2 (de)
KR (1) KR100457868B1 (de)
CN (1) CN1129853C (de)
AT (1) ATE239945T1 (de)
AU (1) AU2925000A (de)
BR (1) BRPI0009250B1 (de)
CA (1) CA2366898C (de)
CZ (1) CZ302550B6 (de)
DE (1) DE60002571T2 (de)
ES (1) ES2193940T3 (de)
HU (1) HUP0200283A3 (de)
IL (2) IL145275A0 (de)
PL (1) PL200520B1 (de)
RU (1) RU2212048C2 (de)
WO (1) WO2000054163A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017217051A1 (de) * 2017-09-26 2019-03-28 Spinner Gmbh Vorrichtung und Verfahren zur Übertragung von Daten zwischen zwei physikalischen Schnittstellen

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE232317T1 (de) * 1997-10-10 2003-02-15 Rambus Inc Verfahren und vorrichtung zur ausfallsicheren resynchronisation mit minimaler latenzzeit
US6636980B1 (en) * 1999-08-19 2003-10-21 International Business Machines Corporation System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter
US6775339B1 (en) * 1999-08-27 2004-08-10 Silicon Graphics, Inc. Circuit design for high-speed digital communication
US6571346B1 (en) * 1999-11-05 2003-05-27 International Business Machines Corporation Elastic interface for master-slave communication
US6542999B1 (en) * 1999-11-05 2003-04-01 International Business Machines Corp. System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US6675331B1 (en) * 1999-12-22 2004-01-06 Texas Instruments Incorporated Testable transparent latch and method for testing logic circuitry that includes a testable transparent latch
US7031420B1 (en) 1999-12-30 2006-04-18 Silicon Graphics, Inc. System and method for adaptively deskewing parallel data signals relative to a clock
JP2001195355A (ja) * 2000-01-14 2001-07-19 Sony Corp データ処理回路
US6977979B1 (en) * 2000-08-31 2005-12-20 Hewlett-Packard Development Company, L.P. Enhanced clock forwarding data recovery
US7117126B2 (en) * 2001-09-05 2006-10-03 International Business Machines Corporation Data processing system and method with dynamic idle for tunable interface calibration
JP3798292B2 (ja) * 2001-10-31 2006-07-19 富士通株式会社 データ同期化回路及び通信インターフェース回路
US6661726B2 (en) * 2002-01-09 2003-12-09 International Business Machines Corporation Multiple mode elastic data transfer interface
US6954870B2 (en) * 2002-03-12 2005-10-11 International Business Machines Corporation Method for receiver delay detection and latency minimization for a source synchronous wave pipelined interface
US6934867B2 (en) * 2002-05-17 2005-08-23 International Business Machines Corporation Digital system having a multiplicity of self-calibrating interfaces
US6891406B2 (en) * 2003-01-09 2005-05-10 International Business Machines Corporation Method and apparatus for supplying a reference voltage for chip-to-chip communication
US7313210B2 (en) * 2003-02-28 2007-12-25 Hewlett-Packard Development Company, L.P. System and method for establishing a known timing relationship between two clock signals
US7143304B2 (en) 2003-05-30 2006-11-28 Sun Microsystems, Inc. Method and apparatus for enhancing the speed of a synchronous bus
KR100594294B1 (ko) * 2004-09-21 2006-06-30 삼성전자주식회사 메모리 장치 및 데이터 트레이닝 방법
US7254656B2 (en) 2004-11-13 2007-08-07 International Business Machines Corporation Method and service and computer program code for broadcast of interface group bring-up in a multiprocessor computer system having multiple nodes
US7412618B2 (en) * 2005-02-11 2008-08-12 International Business Machines Corporation Combined alignment scrambler function for elastic interface
US20060188046A1 (en) * 2005-02-24 2006-08-24 Broadcom Corporation Prediction of an optimal sampling point for clock resynchronization in a source synchronous data channel
US7684534B2 (en) * 2005-07-11 2010-03-23 International Business Machines Corporation Method and apparatus for handling of clock information in serial link ports
US20070098020A1 (en) * 2005-10-27 2007-05-03 Yee Ja Methods and arrangements to model an asynchronous interface
US7752475B2 (en) * 2006-06-27 2010-07-06 International Business Machines Corporation Late data launch for a double data rate elastic interface
US7734944B2 (en) * 2006-06-27 2010-06-08 International Business Machines Corporation Mechanism for windaging of a double rate driver
US7739538B2 (en) * 2006-06-27 2010-06-15 International Business Machines Corporation Double data rate chaining for synchronous DDR interfaces
US7783911B2 (en) * 2006-06-27 2010-08-24 International Business Machines Corporation Programmable bus driver launch delay/cycle delay to reduce elastic interface elasticity requirements
US7882322B2 (en) * 2006-06-27 2011-02-01 International Business Machines Corporation Early directory access of a double data rate elastic interface
US7739545B2 (en) * 2006-09-13 2010-06-15 International Business Machines Corporation System and method to support use of bus spare wires in connection modules
US7624244B2 (en) * 2007-06-22 2009-11-24 International Business Machines Corporation System for providing a slow command decode over an untrained high-speed interface
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device
JP5921264B2 (ja) * 2012-03-09 2016-05-24 キヤノン株式会社 シリアル通信システムおよびその通信初期化の方法、並びにシリアル通信装置およびその通信初期化の方法
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
US10274922B2 (en) * 2013-04-16 2019-04-30 Siemens Aktiengesellschaft Programmable logic controller having low latency
CN104348889B (zh) * 2013-08-09 2019-04-16 鸿富锦精密工业(深圳)有限公司 切换开关及电子装置
US9547609B2 (en) * 2013-10-25 2017-01-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Data interface for point-to-point communications between devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5060280A (en) * 1986-09-30 1991-10-22 Canon Kabushiki Kaisha Masking control for image processing systems
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5560017A (en) * 1990-11-09 1996-09-24 Wang Laboratories, Inc. System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock
WO1993018463A1 (en) * 1992-03-06 1993-09-16 Rambus, Inc. Method and circuitry for minimizing clock-data skew in a bus system
US5229668A (en) 1992-03-25 1993-07-20 North Carolina State University Of Raleigh Method and apparatus for high speed digital sampling of a data signal
US5424996A (en) * 1992-09-29 1995-06-13 Hewlett-Packard Company Dual transparent latch
US5394106A (en) * 1993-08-31 1995-02-28 Gadzoox Microsystems Apparatus and method for synthesis of signals with programmable periods
US5509038A (en) * 1994-04-06 1996-04-16 Hal Computer Systems, Inc. Multi-path data synchronizer system and method
JPH07311735A (ja) 1994-05-18 1995-11-28 Hitachi Ltd データ転送装置
US5598113A (en) * 1995-01-19 1997-01-28 Intel Corporation Fully asynchronous interface with programmable metastability settling time synchronizer
US5603050A (en) * 1995-03-03 1997-02-11 Compaq Computer Corporation Direct memory access controller having programmable timing
US5835729A (en) * 1996-09-13 1998-11-10 Silicon Graphics, Inc. Circuit to separate and combine color space component data of a video image
US5915128A (en) * 1997-01-29 1999-06-22 Unisys Corporation Serial speed-matching buffer utilizing plurality of registers where each register selectively receives data from transferring units or sequentially transfers data to another register
US5838936A (en) 1997-03-10 1998-11-17 Emulex Corporation Elastic bus interface data buffer
US6031847A (en) 1997-07-01 2000-02-29 Silicon Graphics, Inc Method and system for deskewing parallel bus channels
US6041417A (en) * 1998-06-04 2000-03-21 Hewlett-Packard Company Method and apparatus for synchronizing data received in an accelerated graphics port of a graphics memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017217051A1 (de) * 2017-09-26 2019-03-28 Spinner Gmbh Vorrichtung und Verfahren zur Übertragung von Daten zwischen zwei physikalischen Schnittstellen
WO2019063318A1 (de) 2017-09-26 2019-04-04 Spinner Gmbh Vorrichtung und verfahren zur übertragung von daten zwischen zwei physikalischen schnittstellen
US10877513B2 (en) 2017-09-26 2020-12-29 Spinner Gmbh Device and method for transmitting data between two physical interfaces

Also Published As

Publication number Publication date
CN1129853C (zh) 2003-12-03
AU2925000A (en) 2000-09-28
BRPI0009250B1 (pt) 2016-08-23
HUP0200283A3 (en) 2004-12-28
IL145275A0 (en) 2002-06-30
BR0009250A (pt) 2001-11-27
CN1343335A (zh) 2002-04-03
EP1166210A1 (de) 2002-01-02
PL350133A1 (en) 2002-11-04
CA2366898C (en) 2005-04-12
US6334163B1 (en) 2001-12-25
DE60002571D1 (de) 2003-06-12
WO2000054163A1 (en) 2000-09-14
RU2212048C2 (ru) 2003-09-10
US6671753B2 (en) 2003-12-30
JP2002539525A (ja) 2002-11-19
IL145275A (en) 2006-08-01
ES2193940T3 (es) 2003-11-16
CZ302550B6 (cs) 2011-07-13
HUP0200283A2 (hu) 2002-05-29
PL200520B1 (pl) 2009-01-30
KR20010102501A (ko) 2001-11-15
CA2366898A1 (en) 2000-09-14
ATE239945T1 (de) 2003-05-15
KR100457868B1 (ko) 2004-11-18
US20020013875A1 (en) 2002-01-31
EP1166210B1 (de) 2003-05-07
JP4384819B2 (ja) 2009-12-16

Similar Documents

Publication Publication Date Title
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE60002567T2 (de) Dynamische wellenpipelineschnittstellenanordnung und verfahren dafür
DE10235739B4 (de) Register, das auf einem Speichermodul montiert ist sowie Verwendung eines Registers in einem Speichermodul
DE69120586T2 (de) Rechnersystem mit synchronem Bus
DE10330796B4 (de) Registergesteuerter Delay Locked Loop mit Beschleunigungsmodus
DE69838852T2 (de) Verfahren und vorrichtung zur kopplung von signalen zwischen zwei schaltungen, in verschiedenen taktbereichen arbeitend
DE10249886B4 (de) Verfahren und Vorrichtung zum Erzeugen eines Taktsignals mit vorbestimmten Taktsingaleigenschaften
DE19914986B4 (de) Vorrichtung zum Verzögern eines Taktsignals
DE69304632T2 (de) Parallel-Seriell-Umsetzer
DE10210904A1 (de) Speichermodul, zugehöriges Speichersystem und Taktsignalerzeugungsverfahren
DE112007000758B4 (de) Datensignal-Erzeugungsvorrichtung #
DE69819648T2 (de) Zweitorpuffer
DE68922984T2 (de) Programmierbare Zeitsteuerung der Datenübertragung.
DE3850808T2 (de) Erzeugung von Taktimpulsen.
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
DE3788783T2 (de) Multiplexer für Taktsignale.
DE10312260A1 (de) Verzögerungsregelschleife, die einen Kantendetektor und eine feste Verzögerung aufweist
DE60220338T2 (de) Schaltung und Methode zur Erzeugung eines verzögerten internen Taktsignals
DE3782343T2 (de) Zustandsanpassung fuer parallele verarbeitung.
DE10310065A1 (de) Verfahren und Vorrichtung für eine Verzögerungsverriegelungsschleife
DE10018988B4 (de) Hochgeschwindigkeits-Pipelinevorrichtung und Verfahren zum Erzeugen von Steuersignalen dafür
DE60214379T2 (de) Verfahren und vorrichtung für eine taktschaltung
EP1721407A1 (de) Schnittstellenvorrichtung und verfahren zur synchronisation von daten
DE10122702C2 (de) Verfahren und Vorrichtung zum Erzeugen eines zweiten Signals mit einem auf einem zweiten Takt basierenden Takt aus einem ersten Signal mit einem ersten Takt
WO1998044674A1 (de) Phasenjustierung schneller paralleler signale

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: INTERNATIONAL BUSINESS MACHINES CORP., ARMONK, N.Y

8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8328 Change in the person/name/address of the agent

Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7