DE60221235T2 - Datenerfassungstechnik für die schnelle zeichengabe - Google Patents

Datenerfassungstechnik für die schnelle zeichengabe Download PDF

Info

Publication number
DE60221235T2
DE60221235T2 DE60221235T DE60221235T DE60221235T2 DE 60221235 T2 DE60221235 T2 DE 60221235T2 DE 60221235 T DE60221235 T DE 60221235T DE 60221235 T DE60221235 T DE 60221235T DE 60221235 T2 DE60221235 T2 DE 60221235T2
Authority
DE
Germany
Prior art keywords
data
window
bit
node
der
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
DE60221235T
Other languages
English (en)
Other versions
DE60221235D1 (de
Inventor
Wayne M. N.W. Rochester BARRETT
Dong c/o IBM United Kingdom Limited CHEN
Paul W. Yorktown Heights COTEUS
Alan G. Mount Kisco GARA
Rory D. Eastchester JACKSON
Gerard V. Yorktown Heights KOPCSAY
Ben J. Teaneck NATHANSON
Todd E. Takken
Pavlos M. Bedford Hills VRANAS
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 DE60221235D1 publication Critical patent/DE60221235D1/de
Publication of DE60221235T2 publication Critical patent/DE60221235T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • 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
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Description

  • QUERVERWEIS AUF ZUGRUNDE LIEGENDE ANMELDUNGEN
  • Die vorliegende Erfindung beansprucht den Nutzen aus der gleichzeitig anhängigen provisorischen US-Patentanmeldung desselben Inhabers mit der Seriennummer 60/271 124 , eingereicht am 24. Februar 2001, mit dem Titel „Massively Parallel Supercomputer". Diese Patentanmeldung betrifft außerdem die am selben Tag eingereichten und gleichzeitig anhängigen US-Patentanmeldungen: die US-Patentanmeldung mit der Seriennummer (YOR920020027US1, YOR920020044US1 (15270)) mit dem Titel „Class Networking Routing"; die US-Patentanmeldung mit der Seriennummer (YOR920020028US1 (15271)) mit dem Titel „A Global Tree Network for Computing Structures"; die US-Patentanmeldung mit der Seriennummer (YOR920020029US1 (15272)) mit dem Titel „Global Interrupt and Barrier Networks"; die US-Patentanmeldung mit der Seriennummer (YOR920020030US1 (15273)) mit dem Titel „Optimized Scalable Network Switch"; die US-Patentanmeldung mit der Seriennummer (YOR920020031US1, YOR920020032US1 (15258)) mit dem Titel „Arithmetic Functions in Torus and Tree Networks"; die US-Patentanmeldung mit der Seriennummer (YOR920020033US1, YOR920020034US1 (15259)) mit dem Titel „Data Capture Technique for High Speed Signaling"; die US-Patentanmeldung mit der Seriennummer (YOR920020035US1 (15260)) mit dem Titel „Managing Coherence Via Put/Get Windows"; die US-Patentanmeldung mit der Seriennummer (YOR920020036US1, YOR920020037US1 (15261)) mit dem Titel „Low Latency Memory Access and Synchronization"; die US-Patentanmeldung mit der Seriennummer (YOR920020038US1 (15276)) mit dem Titel „Twin-Tailed Fail-Over for Fileservers Maintaining Full Performance in the Presence of Failure"; die US-Patentanmeldung mit der Seriennummer (YOR920020039US1 (15277)) mit dem Titel „Fault Isolation Through No-Overhead Link Level Checksums"; die US-Patentanmeldung mit der Seriennummer (YOR920020040US1 (15278)) mit dem Titel „Ethernet Addressing Via Physical Location for Massively Parallel Systems"; die US-Patentanmeldung mit der Seriennummer (YOR920020041US1 (15274)) mit dem Titel „Fault Tolerance in a Supercomputer Through Dynamic Repartitioning"; die US-Patentanmeldung mit der Seriennummer (YOR920020042US1 (15279)) mit dem Titel „Checkpointing Filesystem"; die US-Patentanmeldung mit der Seriennummer (YOR920020043US1 (15262)) mit dem Titel „Efficient Implementation of Multidimensional Fast Fourier Transform an a Distributed-Memory Parallel Multi-Node Computer"; die US-Patentanmeldung mit der Seriennummer (YOR20010211US2 (15275)) mit dem Titel „A Novel Massively Parallel Supercomputer"; und die US-Patentanmeldung mit der Seriennummer (YOR920020045US1 (15263)) mit dem Titel „Smart Fan Modules and System".
  • HINTERGRUND DER ERFINDUNG
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung stellt einen Hardwaremechanismus zur automatischen Anpassung von Übertragungsverzögerungen für die optimale simultane bidirektionale (SiBiDi) Zweibit-Signalisierung bereit.
  • ERÖRTERUNG DES STANDES DER TECHNIK
  • Eine große Klasse bedeutender Berechnungsaufgaben kann durch Massivparallelrechnersysteme bewältigt werden. Solche Systeme bestehen aus vielen identischen Rechenknoten, die üblicherweise jeweils aus einer oder mehreren CPUs, Speichern und einer oder mehreren Netzschnittstellen zur Verknüpfung mit anderen Knoten enthalten.
  • Der in der verwandten provisorischen US-Patentanmeldung mit der Seriennummer 60/271 124 , eingereicht am 24. Februar 2001, mit dem Titel „"A Massively Parallel Suptercomputer" verleiht der SOC-Technologie (system-on-a-chip, System auf einem Chip) neuen Schwung, indem sie ein skalierbares kostengünstiges Rechensystem mit hoher Rechenleistung hervorbringt. Mittels der SOC-Technologie ist es gelungen, unter Verwendung von Bibliotheken von integrierten Komponenten, die CPU-Kerne mit integrierten Cachespeichern der ersten Ebene beinhalten, einen ganzen Multiprozessorknoten auf einem einzigen Chip unterzubringen. Durch derartige Packungen wird die Anzahl der Komponenten eines Knotens erheblich verringert und die Möglichkeit des Aufbaus eines zuverlässig arbeitenden Großcomputers geschaffen.
  • Die vorliegende Erfindung betrifft das Gebiet von Massivparallelcomputern, die für verschiedene Anwendungen wie zum Beispiel für die Biowissenschaften eingesetzt werden. Insbesondere betrifft diese Erfindung das Gebiet der schnellen Signalisierung (Zeichengabe), entweder die unidirektionale Signalisierung oder die simultane bidirektionale Signalisierung (SiBiDi).
  • Manchmal müssen große Datenmengen übertragen werden, aber die Anzahl der zur Verfügung stehenden Leitungen ist begrenzt. Die simultane bidirektionale Signalisierung ermöglicht das gleichzeitige Senden und Empfangen von Signalen über dieselbe Leitung. Dadurch wird die Anzahl der Leitungen um den Faktor zwei verringert. Ein Beispiel, wo große Datenmengen bei stark eingeschränkter Anzahl der Kabel übertragen werden müssen, stellt ein großer Parallelsuperrechner mit Tausenden von Prozessoren dar, die über Leitungen Daten miteinander austauschen.
  • Bei der SiBiDi-Signalisierung werden Daten über dieselbe Leitung gesendet, während gleichzeitig Daten empfangen werden. Deshalb werden während des Empfangs nicht nur die vom anderen Ende der Leitung gesendeten erwünschten Daten, sondern auch die gerade selbst gesendeten Daten empfangen. Dadurch wird natürlich das gewünschte Signal beschädigt. Da die gerade selbst gesendeten Daten jedoch bekannt sind, können diese „heraussubtrahiert" werden. Dies erfolgt unter Verwendung einer SiBiDi-Standardschaltlogik.
  • Die Aufgabe der Erfindung besteht darin, einen Hardwaremechanismus zum automatischen Anpassen der Übertragungsverzögerungen für die optimale 2-Bit-SiBiDi-Signalisierung bereitzustellen, um deren Signalqualität zu verbessern. Es wird ein spezieller Hardwarealgorithmus eingesetzt und jedes der beiden Bits in unidirektionalen Kanälen dazu genutzt, dass die Hardwarealgorithmen der beiden Knoten während der Einrichtphase Einstellparameter sicher austauschen können. Ein unidirektionaler Kanal mit derselben Frequenz weist die halbe Bandbreite des SiBiDi-Kanals auf, zeichnet sich jedoch durch eine wesentlich bessere Signalqualität aus.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen Aufgaben und Vorteile der vorliegenden Erfindung für die schnelle Signalisierung werden dem Fachmann aus der folgenden detaillierten Beschreibung mehrerer ihrer Ausführungsarten und Beispiele in Verbindung mit den beiliegenden Zeichnungen klar, bei denen in allen Ansichten gleiche Elemente durch identische Bezugsnummern bezeichnet werden, wobei:
  • 1 einen Makroblock für den Datenempfang veranschaulicht, der serielle Daten mit einer Datenrate von 2 GBit/s erfassen und in die lokale Taktdomäne überführen kann.
  • 2 ein Makroblock für das Datensenden ist, der Eingangsdaten mit einer Breite von 1 Byte bei einer Datenrate von 500 MHz empfängt und 2 Datenströme von Ausgangsdaten in Form serieller Daten mit einer Datenrate von je 2 GBit/s erzeugt, die über eine differenzielle SiBiDi-Datenleitung (simultan bidirektional) übertragen werden und dann die Eingangsdaten für den Makroblock für die Datenerfassung von 1 darstellen.
  • 3 einen 2-Bit-Makroblock einer Stufe veranschaulicht.
  • 4 eine Ausführungsform einer getakteten Verzögerungsleitung veranschaulicht, bei der serielle Daten in Reihe geschaltete Inverter passieren, die jeweils die Verzögerung schrittweise erhöhen.
  • 5 einen Protokolllogikblock veranschaulicht, der als Erweiterung der Taktverzögerungsleitung dargestellt ist und eine Taktphase zeigt.
  • Die 6A und 6B Daten- und Protokollmultiplexer veranschaulichen, die jeweils dem in 3 unten gezeigten Multiplexer entsprechen, wobei für die ansteigende und die abfallende Flanke des Takts je ein Multiplexer vorgesehen ist, während der Multiplexer von 6C die Ausgangssignale von 5 unten empfängt.
  • 7 eine Logik zum Verknüpfen serieller Bits und zur Byteausrichtung zeigt, die als Leitungspaar genutzt werden, um 4 Datenbits pro Taktzyklus zu erfassen, wobei die Logik zwei (in 3 gezeigte) 2-Bit-Makros in sich vereinigt und die richtige Byteausrichtung zwischen den beiden Eingangsdatenströmen ermittelt.
  • 8 in einem Fenstererkennungs-Ablaufplan den Fenstererkennungsprozess veranschaulicht.
  • 9 ein Statusdiagramm 1 von 2 für ein Zweibit-Makro veranschaulicht, das den Statusverlauf der Phase zeigt, während der die Abtastpunkte für die Fensterposition ermittelt werden.
  • 10 ein Statusdiagramm 2 von 2 für ein Zweibit-Makro veranschaulicht, das wiederum den Statusverlauf während normaler Datenerfassungsoperationen zeigt.
  • 11 eine erste Ausführungsart veranschaulicht, bei der zwei differenzielle Datenleitungen ein Paar identischer Knoten 1 und 2 verbinden, jeder Knoten eine eindeutige Kennung (ID) aufweist und jeder Knoten mit einer 2-Bit-Sende-CPU und einer 2-Bit-Erfassungs-CPU arbeitet.
  • 12 eine zweite Ausführungsart elektrischer SiBiDi-Datenübertragungen zwischen zwei Knoten veranschaulicht, dem Knoten 1 und dem Knoten 2, bei der eine einzige differenzielle Datenübertragungsleitung die Knoten miteinander verbindet.
  • Die Ablaufsteuerungen der 13A und 13B veranschaulichen die vom Rechenchip des Knotens ausgeführten Schritte beim Einrichten einer synchronen SiBiDi-Verbindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Übersicht
  • Die Nutzung der vorliegenden Erfindung ist zur Einrichtung von Verbindungen in einem Massivparallel-Supercomputer vorgesehen und löst zwei seit langem bestehende Probleme in der Computerindustrie: (1) den zunehmenden, in Taktzyklen gemessenen Abstand zwischen den Prozessoren und dem Speicher und (2) die hohe Leistungsdichte von Parallelcomputern, die aus normalen Einzelprozessoren oder symmetrischen Multiprozessoren aufgebaut sind.
  • Ein Beispiel betrifft im Allgemeinen ein Datenerfassungsverfahren zur schnellen Signalisierung und im Besonderen ein Verfahren zum optimalen Abtasten eines asynchronen Datenstroms. Dieses Verfahren lässt extrem hohe Datenraten zu und ist nicht darauf angewiesen, dass wie bei den quellensynchronen Systemen zusammen mit den Daten ein Takt gesendet wird.
  • Untersuchungen zu seriellen Leitungen
  • Die Zielbandbreite für serielle Leitungen zum Verbinden von Knoten des Massivparallel-Supercomputers beträgt 1,4 GBit/s (in jeder Richtung). Diese Bandbreite muss bidirektional sein. Die bidirektionale Anforderung kann auf unterschiedliche Art erfüllt werden. Auf jeden Fall lautet die Bedingung, dass dies mit geringem Energieverbrauch und kostengünstig erfolgen muss. Die gewählte Ausführungsform wird in einen ASIC (Application-Specific Integrated Circuit, anwendungsspezifischer integrierter Schaltkreis) in einem Verarbeitungsknoten integriert. Eine besondere Herausforderung stellt bei diesem Ansatz die Forderung nach geringem Energieverbrauch dar. Durch diese Forderung in Verbindung mit den fehlenden relativen Phaseninformationen für die Datenübertragung über die Leitung sind Standardlösungen für die PLL-Takt- und Datenwiederherstellung von vornherein ausgeschlossen. In diesem Fall muss die Phase ohne Verwendung einer PLL zuverlässig den Daten selbst entnommen werden.
  • DIGITALE DATENERFASSUNG
  • Übersicht
  • Diese Beschreibung legt ausführlich ein digitales Datenerfassungsverfahren dar. 1 veranschaulicht ein Datenempfangsmakro, das serielle Daten mit einer Datenrate von 2 GBit/s erfassen und in die lokale Taktdomäne überführen kann. Die Aufgabe besteht darin, dies unter Verwendung einer kleinen Anzahl Zellen mit geringem Energieverbrauch zuverlässig abzuwickeln. 2 veranschaulicht einen Makroblock für das Datensenden, der wesentlich einfacher als der Makroblock für den Datenempfang ist. Er wird im zweiten Abschnitt dieser Beschreibung beschrieben. Dieser beschreibt eine DDR-Datenwiederherstellung (double data rate, doppelte Datenrate), für die ein halb so großer interner Takt wie die Frequenz der Bitzeit zulässig ist. Dieses Verfahren lässt sich bei Bedarf im SDR-Modus (single data rate, einfache Datenrate) nutzen oder auf die vierfache Datenrate erweitern.
  • Der Dateneingang des Datenempfangs-Makroblocks von 1 besteht aus zwei Datenströmen von seriellen Eingangsdaten mit einer Datenrate von 2 GBit/s, die einen Datenstrom von insgesamt 4 GBit/s ausmachen, und der Datenausgang besteht aus einem Datenstrom mit einer Breite von einem Byte (Breite von 8 Bit) bei einer Datenrate von 500 MHz. Die anderen Eingangssignale bestehen aus einem 1-GHz-Takt, einem Rücksetzsignal zum Zurücksetzen des Datenerfassungsmakros in einen bekannten Zustand, einem Trainingssignal für das Makro, damit es optimale Fenster (Positionen oder Zustände entlang der Verzögerungsstrecke mit mehreren Abzweigungen (siehe die 3, 4 und 5), an denen keine Datenübergänge erfolgen und die daher wahrscheinlich die genauesten Datenerfassungspositionen darstellen, an denen mit größter Wahrscheinlichkeit keine Datenfehler zu erwarten sind) zur Wiederherstellung von Daten findet, einem Leerlaufbyte-Signal, das aus einem vorgegebenen Leerlaufdatenmuster besteht, das empfangen wird, wenn das Makro keine Daten empfängt, einem DDR-Modus, der das Makro in einen Modus mit doppelter Datenrate versetzt, und einem Mindestabstand, der als Abgrenzungsparameter zum Auffinden der optimalen Daten oder des Leerlauffensters dient. Die anderen Ausgangssignale beinhalten ein Signal Valid_Idle zum Anzeigen des gültigen Empfangs eines Leerlaufmusters, ein Signal Eye_found zum Anzeigen, dass die optimalen Fensterpositionen und Parameter gefunden wurden, ein Fixierungssignal zum Anzeigen, dass die optimale Fensterposition fixiert ist, und ein Warnsignal zum Anzeigen, dass die Gefahr besteht, dass die optimale Fensterposition verloren geht, da sie sich zu nahe an einem Ende einer digitalen Verzögerungsstrecke mit mehreren Abzweigungen befindet.
  • Das Makro von 1 wird unter Bezug auf die 3, 4, 5, 6 und 7 näher erläutert.
  • Die Latenz im Empfangsmakro liegt je nach der Bytephase der Daten zwischen 7 und 12 Bitzeiten. Die Latenz kann durch Überspringen des Byteausgangs auf 5 bis 7 Bitzeiten verringert werden. Dies ist beim erneuten Ansteuern eines Signals sinnvoll, wenn auf den Dateninhalt verzichtet werden kann.
  • 2 zeigt einen Datensende-Makroblock, der Eingangsdaten mit einer Breite von 1 Byte bei einer Frequenz von 500 MHz empfängt und als Ausgangsdaten 2 serielle Datenströme zu je 2 GBit/s erzeugt, die in der oben beschriebenen Weise über eine unidirektionale oder differenzielle SiBiDi-Datenleitung übertragen und dann als Eingangsdaten vom Datenempfangs-Makroblock von 1 empfangen werden. Ferner wird am Eingang ein Signal Byte_valid empfangen, um anzuzeigen, dass gerade ein gültiges Datensignal empfangen und dann anstelle eines Leerlaufsignals gesendet werden muss, sowie ein 1-GHz- Taktsignal und ein Rücksetzsignal, welches das Datensendemakro in einen bekannten Zustand zurücksetzt.
  • Die 3, 4 und 5 veranschaulichen den Datenempfang und die Datenerfassung. Die Daten werden erfasst, indem Datenbits über eine schnelle Verzögerungsleitung mit mehreren Abzweigungen (siehe die 3, 4 und 5) gesendet werden und alle Abzweigungen mit dem lokalen Takt verglichen werden. Jede Abzweigung wird mit ihren Nachbarn (3 und 5) daraufhin verglichen, ob beide gleich sind. Die Gesamtheit dieser Vergleiche bildet eine getaktete Zeichenkette, die zusammen mit früheren getakteten Zeichenketten ein Protokoll bildet, mit dessen Hilfe die optimalen Abtastpunkte ermittelt werden können. Die optimalen Abtastpunkte können aus der Protokoll-Zeichenkette (siehe 5, Register A, B, C und D) durch die Suche nach Bereichen ermittelt werden, in denen es zwischen den Verzögerungsabzweigungen keine Änderungen gibt, die hier als „Fenster" (Augen) bezeichnet werden. Das Protokoll wird periodisch, zum Beispiel während jedes lokalen Takts, aktualisiert. Die periodische Aktualisierung gleicht Parameteränderungen aus, zum Beispiel Temperatur- oder Spannungsänderungen verschiedener Komponenten. Ferner gibt es drei weitere verkettete „Fenster"-Register (siehe 5, Register B, C und D), die nicht so oft aktualisiert werden. Dadurch kann ein Erfassungssystem entwickelt werde, das nicht nur eine programmierbare Persistenzzeit aufweist, sondern auch gegen vereinzelte Bitfehler nicht anfällig ist. Die änderungsfreie Zeitspanne kann beliebig lang gewählt werden, muss jedoch kürzer als die maximale Zeitspanne sein, die zum zuverlässigen Abtasten der Datensignalflanken erforderlicht ist. Damit die Bitabtastzeiten kürzer sein können als die lokale Taktperiode, werden zum Erfassen der DDR-Daten beide Flanken des Takts verwendet (siehe die 3 und 4). Zu jeder Flanke des Takts gehören eigens zugewiesene Erfassungsregister und eine unabhängige Logik zum Ermitteln des optimalen Fensters. Deshalb ist dieses Verfahren weitgehend unanfällig gegen Asymmetrien der Taktzyklen des lokalen und des Sendetakts.
  • Aufgrund der Änderungen der Protokollregister verschiebt sich auch der optimale Abtastpunkt. Diese Aktualisierung sollte in Zeitabständen erfolgen, die kürzer als die Persistenzzeit sind. Diese Funktion wird in der Histogramm- und Abtastpunktermittlungseinheit ausgeführt.
  • Dieses Datenerfassungsverfahren beinhaltet eine zweistufige Initialisierung, die entweder nach einem Zurücksetzen des Systems oder nach Bestätigung eines separaten „Trainingssignals" durchgeführt wird.
    • • Stufe 1: Nach einem Rücksetzsignal oder nach einem „Trainingssignal" (siehe 1 und 2) werden die Protokollregister gelöscht und in alle 3 „Fenster"-Register ein neues Protokollmuster eingetragen. Nach der Übernahme eines gültigen Satzes von „Fenster"-Registern wird durch eine Sequenz der Ablaufsteuerung (siehe 9 und 10) der beste Abtastpunkt ermittelt. Dies erfolgt unabhängig für jede Taktphase. Diese Abtastpunkte werden dann verwendet, und die beiden Bits werden während jedes Systemtakts an die nächste Stufe weitergeleitet.
    • • Stufe 2: Die beiden Bits werden empfangen und in ein Schieberegister eingetragen, das zusammen mit einer Schiebelogikschaltung (barrel shifter) geeignete Halbbytegrenzen (1 nibble = 4 Bits) ermöglicht (siehe 7). Die Grenzen werden während der Initialisierungssequenz durch die Verwendung eindeutiger freier Halbbytemuster ermittelt.
  • Der Block der getakteten Verzögerungsleitung
  • Die 4 und 5 veranschaulichen eine Ausführungsform einer getakteten Verzögerungsleitung, bei der serielle Daten beginnend mit dem linken Inverter eine Reihe von Invertern durchlaufen, welche die Verzögerung schrittweise erhöhen. An jedem Inverterausgang befinden sich zwei Flipflop-Registersignalspeicher FF (3 bis 5), von denen der eine durch die ansteigende und der andere durch die abfallende Flanke des Takts getaktet wird. Dadurch ist die Logik in der Lage, Daten mit der doppelten Taktrate zu erfassen. Eine Bank der Signalspeicher erfasst das Datenfenster für die ansteigende Taktphase und die andere das Datenfenster für die abfallende Taktphase. Beide Fenster werden unabhängig voneinander ermittelt und abgetastet, sodass jede Taktphase eine extra Schaltung gemäß 5 erfordert. Die unabhängig voneinander durch die ansteigende und die abfallende Flanke getakteten Logikschaltungen weisen nur eine sehr geringe Abhängigkeit vom Tastverhältnis des Taktsignals und insbesondere von den Asymmetrien der Taktzyklen des lokalen und des Sendetakts auf.
  • Bei diesem Modul liegt am Eingang das schnelle Signal vom Empfangsmodul an. Am anderen Eingang dieses Moduls liegt der lokale Takt an, der gleichzeitig allen Flipflop-Schaltungen zugeteilt wird. Die einzigen Ausgänge dieses Moduls sind N+1 getaktete Verzögerungsleitungen D[0:N]. Jeder Abzweig entspricht etwa einer Verzögerung von 50 ps mit einer relativ guten Übereinstimmung zwischen ansteigenden und abfallenden Flanken. Die erforderliche Übereinstimmung der Verzögerung zwischen der abfallenden und der ansteigenden Flanke beträgt etwa 20 bis 30 %. In der vorliegenden Anmeldung wird gefordert, dass der Takt zwischen allen benachbarten Signalspeichern bis auf ~10 ps übereinstimmt. Dies lässt sich mit einer verzweigten Verzögerungsleitung besser erreichen als mit einem Taktbaum. Da viele dieser Datenerfassungsschaltungen eingesetzt werden können, ist der Stromverbrauch von entscheidender Bedeutung.
  • Das Layout dieses Moduls ist von entscheidender Bedeutung und bedarf deshalb besonderer Aufmerksamkeit.
  • Zu Testzwecken wurde die Anzahl der Elemente des Chips auf 32 festgelegt. Dies ergibt einen Nennverzögerungswert von insgesamt ungefähr 1,6 ns, was für die Erfassung von DDR-Daten bei Frequenzen oberhalb etwa 1 GBit/s ausreicht.
  • Der Ausgang jedes Flipflop-Registers FF in den 3 und 5 und insbesondere in 5 geht zu einem XOR-Gatter, das auch ein Eingangssignal vom nächsten FF-Register in der Verzögerungsleitung empfängt. Da in der ersten und zweiten Stufe der Verzögerungsleitung das Datenbit vor dem Eintragen in das zweite FF-Register durch den zweiten Inverter invertiert wird, wenn das Datenbit nicht von einem Übergang zwischen den zwei aufeinanderfolgenden Stufen betroffen ist, enthalten das erste und das zweite Register entgegengesetzte Werte, sodass das XOR-Gatter der ersten Stufe eine 1 erzeugt und anzeigt, dass zwischen den Stufen kein Übergang erfolgt ist. Wenn das Datenbit hingegen von einem Übergang zwischen den beiden aufeinanderfolgenden Stufen betroffen ist, ist im ersten und zweiten Register derselbe Wert gespeichert, sodass das XOR-Gatter der ersten Stufe eine 0 erzeugt und anzeigt, dass zwischen den Stufen ein Übergang erfolgt ist.
  • Das System von 5 such nach einer stabilen Position oder einem stabilen Fenster entlang der getakteten Verzögerungsleitung, um Daten zu finden, bei denen gerade keine Übergänge stattfinden, was sich in einer Reihe von Einsen einer Reihe aufeinanderfolgender XOR-Gatter äußert, wobei das Fenster der Datenerkennung auf die Mitte der Reihe der Einsen ausgerichtet sein sollte. Der Ausgang jedes XOR-Gatters führt zum Eingang eines UND-Gatters, dessen Ausgang wieder zum Eingang eines Registers A geht, welches das erste einer Reihe von Protokoll-Flipflopregistern FF A, B, C und D darstellt. Das erste Register A wird mit der vollen Taktrate von 1 GHz abgetastet und periodisch mit einer relativ kleinen Taktrate, z.B. > 1 Millisekunde (ms) durch ein Signal Set_to_high wieder auf HIGH zurückgesetzt, während die Register B, C und D mit derselben Taktrate der Schaltlogik wie das Signal Set_to_high abgetastet und aktualisiert werden.
  • Das Register A wird durch den Takt mit einer Taktrate von > 1 ms auf einen Ausgangswert HIGH 1 gesetzt oder zurückgesetzt, und wenn nach einem Zurücksetzen der Ausgang des XOR-Gatters gleich 1 ist, sind auch der Ausgang des UND-Gatters und der Ausgang des Registers A gleich 1, und dies wird im Takt (eines Aktualisierungssignals für den Ladeeingang (1d) der Register B, C und D) nacheinander mit den Registern B, C und D durchgeführt. Wenn hingegen der Ausgang des XOR-Gatters gleich 0 und der Ausgang des Registers A auf 1 gesetzt oder zurückgesetzt wurde, ist der Ausgang des UND-Gatters gleich 0 und der Ausgang des Registers A gleich 0, und dies wird im Takt nacheinander mit den Registern B, C und D durchgeführt. Die Anordnung so aufgebaut, dass der Ausgang des Registers A, wenn er zuvor gleich 0 war, gleich 0 bleibt, bis das Register durch das Signal Set_to_high zurückgesetzt werden, sodass die Ausgänge jedes der Register B, C und D nacheinander im Takt auf 0 gesetzt werden und so lange auf 0 bleiben, bis das Register A durch das Signal Set_to_high auf 1 zurückgesetzt wird.
  • Die Ausgänge jedes der Protokollregister B, C und D führen zu einem 2-aus-3-Logikelement, dass einen Ausgangswert von 1 oder HIGH (H) erzeugt, wenn 2 der 3 Eingänge auf 1 stehen. Die Aufgabe der 2-aus-3-Logikschaltung besteht darin, Störimpulse im Datenstrom auf der digitalen Verzögerungsleitung auszugleichen, die fälschlicherweise einen der drei Eingänge auf 0 setzen könnten, damit anstelle der gestörten Daten ein genaues Ergebnis erzeugt wird. Das Vorliegen einer 2-aus-3-Logikerkennung kann als Hinweis auf die Unversehrtheit der empfangenen Daten gewertet und angegeben werden. Die Ausgänge H (0 bis N-1) führen zu den Eingängen des Multiplexers gemäß 6C. Im Allgemeinen zeigt eine Zeichenkette von Einsen in den Ausgängen H einen guten Kandidaten für ein Fenster zur Datenabtastung an, das in der Mitte der Zeichenkette von Einsen zentriert werden sollte.
  • 3 zeigt den 2-Bit-Makroblock der Eingangsstufe, der zum größten Teil bereits in Verbindung mit 5 erläutert worden ist. Die Histogramm- und Abtastpunktermittlungseinheit beinhaltet die UND-Gatter, die Protokollregister und die 2-aus-3-Logikschaltungen von 5, den Multiplexer von 6C und die Zustandsdiagramme der 9 und 10. Der Makroblock beinhaltet auch einen Multiplexer, der an seinen Eingängen alle Ausgangswerte der FF-Register der digitalen Verzögerungsleitung empfängt, und leitet diese Eingangswerte, gesteuert durch die Signale H[0], H[1], H[N-1] von 5 unten, als Datenausgangswerte Data_out selektiv weiter.
  • Der Protokollblock
  • 5 veranschaulicht einen Protokolllogikblock in Form einer Erweiterung des Blocks der getakteten Verzögerungsleitung während einer Taktphase. Für die andere Taktphase wird eine identische Schaltung benötigt. Die in 5 gezeigte Inverter-Zeichenkette trifft für beide Taktphasen in gleicher Weise zu.
  • Abtastpunktblock
  • Der Abtastpunktblock lässt sich am einfachsten durch ein Zustandsdiagramm beschreiben, das die beiden optimalen Abtastpunkte für jeweils eine der beiden Taktphasen ermittelt. Da die Abtastpunkte nicht oft aktualisiert werden (mindestens 50 Takte zwischen den Aktualisierungen), kann zum Ermitteln der optimalen Abtastpunkte ein Mehrfachtaktprozess verwendet werden.
  • Die 6A und 6B veranschaulichen Daten- und Protokoll-Abtastmultiplexer, wobei die geraden und die ungeraden Eingänge der Abtastmultiplexer gleich D_even[N:0] bzw. D_odd[N:0] sind, die jeweils dem in 3 unten gezeigten Multiplexer für eine der Taktphasen mit ansteigender bzw. abfallender Signalflanke entsprechen, während der Multiplexer von 6C die oben erläuterten Ausgangssignale in 5 unten empfängt.
  • Verknüpfung von zwei 2-Bit-Makros
  • 7 zeigt eine Logik zum Verknüpfen serieller Bits und zur Byteausrichtung, die als Leitungspaar genutzt werden, um 4 Datenbits pro Taktzyklus zu erfassen, wobei die Logik zwei (in 3 gezeigte) 2-Bit-Makros in sich vereinigt und die richtige Byteausrichtung zwischen den beiden Eingangsdatenströmen mit einer Frequenz von je 2 GHz ermittelt, die in die beiden (in 3 dargestellten) 2-Bit-Makros 70 eingegeben werden. Die beiden Eingangssignale können als die Eingangssignale von 1 angesehen werden, die mit der richtigen Byteausrichtung verknüpft werden. Die Ausgänge der beiden 2-Bit-Makros von 3 liefern zwei Datenströme mit einer Frequenz von jeweils 1 GHz, die in ein Register 71 eingegeben werden, das die beiden Datenströme verzögert und standardisiert und in ein 12-Bit-Schieberegister 72 eingibt, das mit der halben Taktrate Clk/2 getaktet ist und die beiden Datenströme in einen 12 Bit breiten Datenstrom mit einer Frequenz von 500 MHz umwandelt. Diese Datenströme werden in eine Schaltlogik 73 und eine Schiebelogikschaltung 74 eingegeben, deren Eingang für die beiden 12 Bit breiten Datenströme 24 Bit breit ist und die unter Steuerung der Logik 73 im Wesentlichen 8 ordnungsgemäß ausgerichtete Bits der 24 Bits auswählt, um die richtige Bitverschiebung für die Schiebelogikschaltung zu ermitteln. Die Logik 73 verwendet ein bekanntes Trainingsmuster zum Erzeugen von zwei 4 Bit breiten Ausgangswerten, welche die Schiebelogikschaltung steuern. Die Logik 73 sendet im Wesentlichen softwaregesteuert immer wieder dasselbe bekannte Datentrainingsmuster durch die getaktete Verzögerungsleitung, bis sie die richtige Bitverschiebung für die Schiebelogikschaltung kennt. Die Schiebelogikschaltung wählt durch die Logik gesteuert aus dem 24 Bit breiten Eingangssignal selektiv die 8 am besten ausgerichteten Bits aus, um diese als Byte auszugeben und weiterzuleiten.
  • Ablauf der Fensterermittlung
  • 8 veranschaulicht den allgemeinen Ablauf des Fensterermittlungsprozesses in einem Ablaufplan zur Fensterermittlung und beginnt mit dem Zurücksetzen 80, um das System mit bekannten Werten zu initialisieren und dann in Kasten 81 auf eine ausreichende Anzahl von Datenübergängen zu warten, um ein Fenster sicher ermitteln zu können. In Kasten 82 werden die Einsen und Nullen in den geraden Fenster-Protokollregistern geprüft, um für die geraden Flanken ein Fenster zu ermitteln, das den getakteten Daten der ansteigenden Flanken entspricht, und ein erstes Fenster mit der geringsten Verzögerung in der getakteten Verzögerungsleitung auszuwählen. In Kasten 83 werden genauso die Einsen und Nullen in den ungeraden Fenster-Protokollregistern geprüft, um ein den getakteten Daten der abfallenden Flanken entsprechendes Fenster zu ermitteln, und ein entsprechendes Fenster mit der geringsten Verzögerung in der getakteten Verzögerungsleitung zu ermitteln.
  • Entsprechend den verschiedenen Positionen entlang der Verzögerungsleitung kann es mehrere verschiedene Fenster für gerade und ungerade Phasen geben, sodass der Prozess nach der Erkennung des Fensters mit der geringsten Verzögerung von Kasten 84 zu Kasten 82 zurückspringt, um zyklisch das nächste Paar Fenster mit der nächstgrößeren Verzögerung zu ermitteln, bis die Verzögerungsleitung auf ihrer gesamten Länge nach entsprechenden Fenstern für gerade und ungerade Phasen geprüft wurde. In Kasten 84 wird jedes nächste ermittelte Fensterpaar mit dem zuvor ermittelten Fensterpaar verglichen und das jeweils beste Paar reserviert, sodass auf diese Weise das beste aus allen zur Auswahl stehenden Fensterpaaren ausgewählt wird; diese Funktion wird durch die Logik 73 von 7 ausgeführt.
  • An dieser Stelle wartet die Logik 73 dann in Kasten 85 auf ein „Ausrichtungs"-Paket, das als Trainingsmuster mit einer bekannten Bitfolge bekannt ist, um eine Bytegrenze festzulegen, die bis dahin unbekannt ist. Nach der Festlegung der Bytegrenze durch die Logik 73 in 7 mittels des Ausrichtungs-Trainingsmusters werden in Kasten 86, der auch der Logik 73 entspricht, die Ausrichtungswerte in die Schiebelogikschaltung eingegeben, damit dieser die ordnungsgemäß ausgerichteten 8 Bits als Byte-Ausgangswert auswählt und bereitstellt, und die Logik 73 erzeugt auch das fixierte Ausgangssignal. Dann ist die Schiebelogikschaltung in der Lage, während eines normalen Datenempfangs 8 ordnungsgemäß ausgerichtete Bits als Byte-Ausgangswert bereitzustellen. Kasten 87 zeigt an, dass die Fenster zur Datenabtastung ständig aktualisiert werden. Eine bevorzugte Neuausrichtung beginnt mit den vorhandenen Fenstern zur Abtastung der geraden und ungeraden Daten und sucht dann links und rechts der vorhandenen Fenster nach dem linken und rechten Rand der Fenster und richtet dann die Mitte der Fenster der geraden und ungeraden Phasen zwischen ihren linken und rechten Rändern neu aus, wie dies in Verbindung mit 9 erläutert wird.
  • Zustandsdiagramm zur Ermittlung des Trainingsfensters
  • 9 veranschaulicht ein Zustandsdiagramm 1 von 2 eines 2-Bit-Makros, das die Zustandsänderungen der Phase zeigt, in deren Verlauf die Abtastpunkte der Fensterposition ermittelt werden, und entspricht im Allgemeinen den Schritten in Kasten 82 und 83 von 8.
  • In 9 werden die H[N-1:0] Eingangswerte des Multiplexers von 6C, die den Ausgangswerten in 5 unten entsprechen, nacheinander abgetastet und gleichzeitig mit dem bereitgestellten Ausgangswert Hsamp des Multiplexers von 6C geprüft. Das erste Bit H[0], das entweder gleich 0 ist und einen Datenübergang außerhalb eines Fensters anzeigt oder gleich 1 ist und möglicherweise keinen Datenübergang innerhalb eines Fensters anzeigt, wird in der Reihenfolge der Schritte von 9 geprüft, wobei eine 0 durch Samp(Abtastung)=0 und eine 1 durch Samp=1 dargestellt wird. Nachdem das erste Bit H[0] nacheinander alle Prüfschritte SO bis ZUSAMMENFASSUNG von 9 durchlaufen hat, wird das zweite Bit H[1] in derselben Reihenfolge der Schritte geprüft usw., bis das letzte Bit H[N-1] geprüft worden ist.
  • Die Zustande des Zustandsdiagramms 1 von 2 des 2-Bit-Makros in 9 werden wie folgt beschrieben:
    • • S0 ist der Rücksetzzustand. Die Steuerung erfolgt hiermit, während ein Zurücksetzen erfolgt.
    • • S1 ist ein Initialisierungszustand. Nachdem das Zurücksetzen erledigt ist, wartet die Steuerung bis zur Zeitüberschreitung eines Aktualisierungszählers und geht dann weiter zu S2, wenn samp=0 ist (was anzeigt, dass die geprüfte Abzweigung von 5 eine 0 erzeugt und somit nicht innerhalb des Fensters liegt), oder zu S3, wenn samp=1 ist (der Ausgangswert der geprüften Abzweigung ist gleich 1 und ist möglicherweise Teil eines Fensters).
  • Die Zustände S2 bis S3.5 suchen durch schrittweise Prüfung im Protokoll der Verzögerungsleitung für gerade Signalflanken nach einem Fenster für gerade Signalflanken, das den getakteten Daten mit ansteigender Signalflanke entspricht.
    • • S2 sucht nach einem Fenster für gerade Signalflanken (samp=1), indem er schrittweise das Protokoll der Verzögerungsleitung für gerade Signalflanken von links nach rechts durchsucht. Er findet das linke Ende eines Fensters für gerade Signalflanken. Wenn das rechte Ende der Verzögerungsleitung gefunden wird, wechselt der Zustand nach S3, ansonsten bleibt der Zustand S2 erhalten.
    • • S3 sucht so lange nach dem rechten Ende eines Fensters für gerade Signalflanken, bis er den Wert samp=0 findet. Die Steuerung bleibt in Zustand S3, während samp=1 ist, da sich dieser innerhalb des Fensters befindet. Wenn der Wert samp=0 gefunden wird, geht die Steuerung weiter zu S3.5, einem Verzögerungszustand, der in bestimmten Fällen zum ordnungsgemäßen Funktionieren erforderlich ist.
    • • S3.5 geht sofort weiter zu S4.
  • Die Zustände S4 bis S13 suchen nach einem Fenster für ungerade Signalflanken, das den getakteten Daten mit abfallender Signalflanke entspricht. Die Suche nach dem Fenster für ungerade Signalflanken beginnt beim ermittelten Mittelpunkt des Fensters für gerade Signalflanken und ist komplexer als die Suche nach dem Fenster für gerade Signalflanken.
    • • S4 beginnt mit der Suche nach dem Fenster für ungerade Signalflanken. Im Normalmodus, wenn beim Fenster für ungerade Signalflanken samp=0 ist, geht der Prozess weiter zu S7, wenn jedoch samp=1 ist, geht der Prozess weiter zu S5. samp=0 bedeutet, dass das Fenster für ungerade Signalflanken im Protokoll der Verzögerungsleitung für ungerade Signalflanken nicht auf das Fenster für gerade Signalflanken ausgerichtet ist, sodass im Normalfall nach links und rechts gesucht und das nächstgelegene Fenster für ungerade Signalflanken gewählt wird. Es gibt zwei alternative Modi. Bei der Suche nach rechts geht der Prozess weiter zu S13 und bei der Suche nach links nach S12.
    • • S5 bedeutet, dass das Fenster für ungerade Signalflanken auf das Fenster für gerade Signalflanken ausgerichtet ist und sich der anfängliche Abtastpunkt bereits im Fenster für ungerade Signalflanken befindet. Somit sucht dieser Zustand vom anfänglichen Abtastpunkt aus nach links, indem er einen Abtastzeiger (der zum Auswählen von Datenpunkten dient) so lange schrittweise verringert, bis er das linke Ende des Fensters für ungerade Signalflanken oder das linke Ende der Verzögerungsleitung findet. Dann geht die Steuerung weiter zu S6.
    • • S6 sucht auf der rechten Seite nach dem rechten Ende des Fensters für ungerade Signalflanken. Wenn er dieses oder das rechte Ende der Verzögerungsleitung findet, geht die Steuerung weiter zum Zustand ZUSAMMENFASSUNG, der den Zustand am Ende der Suche nach dem Schritt S13 darstellt, wo die Zeiger für die Datenabtastung für die normale Verarbeitung von Fenstern mit geraden und ungeraden Signalflanken gesetzt werden.
    • • S7 bedeutet, dass das Fenster für ungerade Signalflanken nicht auf das Fenster für gerade Signalflanken ausgerichtet ist und sich der anfängliche Abtastpunkt in einem verrauschten Bereich außerhalb aller Fenster befindet. Dieser Zustand sucht auf der linken Seite durch schrittweises Abwärtszählen des Abtastzeigers nach einem passenden Fenster für ungerade Signalflanken. Wenn samp=1 ist, ist der rechte Rand eines Fensters für ungerade Signalflanken gefunden worden, der in MAX (einem Register für den rechten Rand) eingetragen wird, und die Steuerung geht weiter zu S8. Ansonsten wird das linke Ende der Verzögerungsleitung erreicht, wo kein Fenster für ungerade Signalflanken gefunden wird, woraufhin die Steuerung weitergeht zu S11.
    • • S8 dient der Suche nach einem nicht ausgerichteten rechten Fenster für ungerade Signalflanken. Bei einem Wert von samp=0 wird so lange gesucht, bis der Wert samp=1 gefunden wird, was das Erreichen des linken Endes eines rechten Fensters für ungerade Signalflanken anzeigt und in MIN (ein Register für den linken Rand) eingetragen wird, und die Steuerung geht weiter zu S9. Wenn das rechte Ende der Verzögerungsleitung erreicht wird, bevor der Wert samp=1 gefunden wird, liegt kein rechtes Fenster vor, sodass die Steuerung direkt zur Verarbeitung des linken Fensters in S10 weitergeht.
    • • S9 vergleicht die Abstände MIN und MAX vom Fenster für gerade Signalflanken miteinander. Wenn MIN näher liegt, geht die Steuerung weiter zu S6. Wenn MAX näher liegt, geht die Steuerung weiter zu S10.
    • • S10 sucht nach dem linken Ende des Fensters für ungerade Signalflanken. Die Steuerung bleibt so lange in S10, wie samp=1 ist. Wenn samp=0 oder das linke Ende der Verzögerungsleitung erreicht ist, geht die Steuerung weiter zu ZUSAMMENFASSUNG.
    • • S11 sucht nach einem nicht ausgerichteten rechten Fenster für ungerade Signalflanken, wenn es kein linkes Fenster für ungerade Signalflanken gibt. Die Steuerung bleibt so lange in S11, wie samp=0 ist. Wenn der Wert samp=1 gefunden wird, geht die Steuerung weiter zu S6. Wenn das rechte Ende der Verzögerungsleitung erreicht wird, bevor ein Wert samp=1 gefunden wurde, gibt es keine Fenster für ungerade Signalflanken. Dies stellt eine Fehlerbedingung dar, die durch Warnanzeigen erkannt und angezeigt wird.
    • • S12 sucht nach einem nicht ausgerichteten Fenster für ungerade Signalflanken auf der linken Seite des Fensters für gerade Signalflanken in den Verzögerungsleitungen. Die Steuerung bleibt so lange in S12, wie samp=0 ist und geht weiter zu S10, wenn ein Wert samp=1 gefunden wird. Wenn das linke Ende der Verzögerungsleitung gefunden wird, bevor ein Wert samp=1 gefunden wurde, gibt es kein linkes Fenster, und die Steuerung sucht in S13 auf der rechten Seite weiter, sofern die Steuerung nicht von S13 nach S12 gekommen war. Dann nämlich liegt der Fall vor, dass es keine Fenster für ungerade Signalflanken gibt. Dies stellt eine Fehlerbedingung dar, die durch Warnanzeigen erkannt und angezeigt wird, und die Steuerung geht weiter zu ZUSAMMENFASSUNG.
    • • S13 sucht nach einem nicht ausgerichteten Fenster für ungerade Signalflanken auf der rechten Seite des Fensters für gerade Signalflanken in den Verzögerungsleitungen. Die Steuerung bleibt so lange in S13, wie samp=0 ist und geht weiter zu S6, wenn ein Wert samp=1 gefunden wird. Wenn das rechte Ende der Verzögerungsleitung erreicht ist, bevor ein Wert samp=1 gefunden wurde, gibt es kein Fenster auf der rechten Seite, und die Steuerung sucht in S12 auf der linken Seite weiter, sofern die Steuerung nicht von S12 nach S13 gekommen war. Dann nämlich liegt der Fall vor, dass es keine Fenster für ungerade Signalflanken gibt. Dies stellt eine Fehlerbedingung dar, die durch Warnazeigen erkannt und angezeigt wird, und die Steuerung geht weiter zu ZUSAMMENFASSUNG.
    • • ZUSAMMENFASSUNG ist der Zustand, in welchem die Abtastpunkte für die Fensterdaten für den Normbetrieb festgelegt werden.
  • Zustandsdiagramm für den Normalbetrieb mit Neuausrichtung der Abtastpunkte der Fenster
  • 10 veranschaulicht ein Zustandsdiagramm 1 von 2 für ein 2-Bit-Makro, das den wiederholten Ablauf der Zustände während normaler Datenerfassungsoperationen zeigt. In dieser Phase hat die Logik die Aufgabe, serielle Daten zu erfassen und in ein byteparalleles Format umzuwandeln.
  • 10 zeigt den Ablauf der Zustände während normaler Datenerfassungsoperationen. Die Steuerung ist normalerweise im Zustand RUND (Ausführung 0) untergebracht. Das Signal done_update wird periodisch durch einen Taktzähler ausgelöst und überführt die Steuerung in den Zustand RUN1. Die Zustände RUN1 und RUN2 laufen schrittweise abwärts und aufwärts bis zu den Rändern des Fensters für gerade Signalflanken, die sich geändert haben können. Die neuen Grenzen werden gespeichert. Desgleichen laufen die Zustände RUN3 und RUN4 schrittweise aufwärts und abwärts bis zu den Rändern des Fensters für ungerade Signalflanken, und die Grenzen werden gespeichert. Der Zustand RUN5 berechnet unter Verwendung der in den Zuständen RUN1 bis RUN4 ermittelten Ergebnisse neue Datenabtastpunkte, die zur Weiterverwendung zwischengespeichert werden. Dann geht die Steuerung wieder zurück zum Zustand RUND, um eine neue Aktualisierungsperiode zu durchlaufen.
  • SiBiDi
  • Die vorliegende Erfindung stellt einen Hardwaremechanismus zur automatischen Anpassung von Übertragungsverzögerungen für die optimale simultane bidirektionale Zwei-Bit-Signalisierung bereit.
  • Die (simultane bidirektionale) SiBiDi-EA-Zellen-„Subtraktion” des übertragenen Signals ist erfolgreicher, wenn sich das zu subtrahierende Signal zu den Zeitpunkten ändert, da sich das gewünschte empfangene Signal nicht ändert. Das lässt sich dadurch erreichen, dass die Übertragung des Signals um eine ausreichende Zeitspanne (einen Teil eines Taktzyklus) verzögert wird. Eine Verzögerung der Übertragung auf einer Seite bedeutet jedoch, dass die Daten auf der anderen Seite verzögert ankommen. Daher muss die Schaltlogik auf der anderen Seite ihre Verzögerung der Übertragung so anpassen, dass ihre eigene „Subtraktion" optimal ist. Deshalb muss ein Paar Verzögerungseinstellungen für jede Schaltlogik an den beiden Enden der Leitung vorhanden sein, sodass die „Subtraktion" für beide Seiten Ergebnisse mit gleich hoher Qualität liefert.
  • Zu diesem Zweck müssen die beiden Seiten darüber hinaus für jede einzelne Übertragungsverzögerung auf der jeweils anderen Seite Informationen über die Qualität der lokalen Subtraktion austauschen. Diese Informationen können jedoch nicht unter Verwendung desselben Übertragungsverfahrens für die Signalisierung ausgetauscht werden, das gerade optimiert wird. Wenn ein Satz Verzögerungsdaten fehlerhaft ist, können dadurch die gesendeten Daten beschädigt werden, die den Grad der Verschlechterung beschreiben. Die vorliegende Erfindung beschreibt einen Hardwaremechanismus zum automatischen Anpassen der Übertragungsverzögerungen für die optimale 2-Bit-SiBiDi-Signalisierung.
  • 11 veranschaulicht eine erste Ausführungsart, bei der zwei differenzielle Datenleitungen ein Paar identischer Knoten 1 und 2 miteinander verbinden, wobei jeder Knoten eine eindeutige Kennung aufweist und jeder Knoten mit einer 2-Bit-Sende-CPU und einer 2-Bit-Erfassungs-CPU arbeitet.
  • Das Verfahren verwendet eine Einrichtphase zum „sicheren Datenaustausch", um die Ergebnisse jedes Satzes Übertragungsverzögerungen mitzuteilen. Die 2-Bit-Sende-/Erfassungseinheiten dienen zum sicheren Datenaustausch unter Verwendung unidirektionaler Einstelldaten für die EA-Zellen (wobei die Übertragung in einer Richtung nur zur Verringerung des Rauschens dient) und lediglich eines der 1-Bit-Teile der Einheiten.
  • 11 veranschaulicht die elektrischen Verbindungen zwischen einem Knotenpaar und zeigt zwei differenzielle Datenleitungen (die aus je 2 Drähten bestehen, um eine differenzielle Signalisierung zu ermöglichen). Die Pfeile zeigen die Richtung der unidirektionalen Signale während der Einrichtphase zum sicheren Datenaustausch an. Ansonsten sind die elektrischen Verbindungen während normaler Datenübertragungen bidirektional.
  • Die Einheiten Sel A und B sind Multiplexer, wobei durch Sel = 0 der obere Pfad von der 2-Bit-Sendeeinheit und zur 2-Bit-Erfassungseinheit und durch Sel = 1 der untere Pfad gewählt wird.
  • Ein (nicht gezeigtes) Register READY wird auf 0 gesetzt.
    • 1) E/A-Zelle A = unidirektionaler Sendemodus. E/A-Zelle B = unidirektionaler Empfangsmodus. Sel A = 1 (Auswahl des oberen Pfades). Sel B = 1 (Auswahl des untern Pfades).
    • 1) Sende-Verzögerungsmodus auf Nullverzögerung setzen.
    • 2) Das oben beschriebene Training zum Auffinden und Erkennen von guten Datenerfassungsfenstern beginnen.
    • 3) Fensterparameter für den sicheren unidirektionalen Datenaustausch während der Einrichtphase in der Mitte eines guten Datenerfassungsfensters speichern.
    • 4) Erstes Bit der Kennung senden. Bei dieser Ausführungsart wird durch die eindeutigen Kennungen der beiden Knoten 1 und 2 festgelegt, welcher als Master bzw. als Slave dient, wobei die höhere Kennung automatisch den Master-Knoten festlegt. Warten bis zum Empfang des ersten Bits der Kennung vom anderen Knoten. Die ersten Bits der Kennungen miteinander vergleichen. Bei Gleichheit wiederholen. Wenn lokales Bit kleiner als das Nachbarbit ist, PRIORITÄT = 0 setzen. Wenn lokales Bit größer als das Nachbarbit ist, Priorität = 1 setzen.
    • 1) E/A-Zelle A = SiBiDi-Modus. E/A-Zelle B = SiBiDi-Modus. Sel A = 0 Sel B = 0
    • 1) Sender-Verzögerungsmodus = 0 Mit dem Training beginnen. Nach Fenstern suchen. Lokale Fensterparameter speichern.
    • 1) Zum sicheren Modus wie in Schritt 1) übergehen.
    • 2) Lokale Fensterparameter an den anderen Knoten senden. Fensterparameter des anderen Knotens empfangen.
    • 1) Parameter vergleichen und Minimalwert speichern.
    • 2) Aktuelle minimalle Fensterparameter mit vorhergehenden minimalen Fensterparameter vergleichen und den größeren der beiden zusammen mit dem Verzögerungsmodus des lokalen Senders des Maximalwerts speichern. Dieser Modus wird als optimaler Modus angesehen und als OPT_SENDER_MODE bezeichnet.
  • Bei dieser ersten Ausführungsart wird von einer Verzögerungsleitung mit 8 Abzweigungen ausgegangen, sodass jeder Knoten über eine Auswahl von 8 verschiedenen Verzögerungen verfügt, die in 8 Schritten von einer Nullverzögerung bis zur Maximalverzögerung reicht, sodass die Anzahl der möglichen Kombinationen 8 × 8 = 64 beträgt. Mit anderen Worten, für jeder der 8 Verzögerungen bei einem Knoten gibt es am zweiten Knoten ebenfalls 8 mögliche Verzögerungen. Daher müssen 64 mögliche Kombinationen geprüft werden, um die optimale Kombination auszuwählen. In Schritt 12 werden nacheinander alle 64 Kombinationen zyklisch durchlaufen.
  • Zurückgehen zu Schritt 6) und unter Verwendung der folgenden Sequenz des Sendeverzögerungsmodus insgesamt 64 mal wiederholen:
    Wenn PRIORITÄT = 0 ist, ändert der Nachbar zuerst den Modus. Die lokale Sequenz lautet:
    0 für 8 Schritte
    1 für 8 Schritte
    2 für 8 Schritte
    3 für 8 Schritte
    4 für 8 Schritte
    5 für 8 Schritte
    6 für 8 Schritte
    7 für 8 Schritte
    Wenn PRIORITÄT = 1 ist, lautet die lokale Sequenz:
    0 für 1 Schritt
    1 für 1 Schritt
    2 für 1 Schritt
    3 für 1 Schritt
    4 für 1 Schritt
    5 für 1 Schritt
    6 für 1 Schritt
    7 für 1 Schritt
    8-mal wiederholen
    • 1) Zur SiBiDi-Operation wie in Schritt 6) mit Senderverzögerungsmodus = OPT_SENDER_MODE übergehen.
    • 2) Register READY (FERTIG) auf 1 setzen, um anzuzeigen, dass das System optimiert ist und für normale SiBiDi-Datenübertragungen bereitsteht.
  • Wenn in einem der Schritte ein Fehler auftritt und Schritt 14 dadurch nicht erreicht wird, ist der Knoten fehlerhaft. Der fehlerhafte Knoten kann anhand des Inhalts des Registers READY erkannt werden.
  • 12 veranschaulicht eine zweite Ausführungsart elektrischer SiBiDi-Datenübertragungen zwischen einem Knoten 1 und einem Knoten 2, wobei der Unterschied zur ersten Ausführungsart darin besteht, dass die Verbindung zwischen den Knoten über eine einzige differenzielle Datenübertragungsleitung erfolgt. Ein zweiter Unterschied besteht darin, dass diese Ausführungsart nicht mit 2-Bit-Daten wie bei der Ausführungsart von 11, sondern mit 1-Bit-Daten arbeitet. Ein weiterer Unterschied besteht darin, dass der Master-Knoten und der Slave-Knoten bei dieser Ausführungsart nicht durch IDs, sondern durch die Steuersoftware gekennzeichnet werden. Ferner geht diese Ausführungsart nicht von einer Verzögerungsleitung mit 8 Abzweigungen wie in 11, sondern von einer Verzögerungsleitung mit 16 Abzweigungen aus.
  • Übersicht:
  • Eine anfängliche Ausrichtungsprozedur (Initial Alignment Procedure, IAP) besteht aus einer Folge von Schritten, wobei jedes synchrone Signal an jedem Anschluss die optimalen Einstellwerte der Verzögerungsleitung zum Senden (für ihre Ausgangsstufe) ermittelt. Der in der provisorischen US-Patentanmeldung mit der Seriennummer 60/271 124 beschriebene Massivparallel-Supercomputer wird als Massivparallelcomputer mit 32 × 32 × 64 Knoten beschrieben, die als dreidimensionaler Ring miteinander verbunden sind, wobei jeder Knoten mit 6 benachbarten Knoten verbunden ist. Jeder Knoten weist 6 Anschlüsse mit 20 synchronen Signalen pro Anschluss auf, sodass alle 120 synchronen Signale (6 Anschlüsse × 20 synchrone Signale/Anschluss) auf einem Knoten-Chip an einem Knoten des Supercomputers dieses individuelle Training unabhängig durchführen können. Alles kann (softwaregesteuert) parallel oder einzeln nacheinander abgewickelt werden. Das Training erfolgt gleichzeitig in beiden Richtungen einer SiBiDi-Leitung; dadurch können die erforderliche Signalverbreiterung (Inter Symbol Interference, ISI) und das Randrauschen (zusammen mit dem Umgebungsrauschen) berücksichtigt werden. 12 zeigt den verallgemeinerten Datenfluss der IAP-Sequenz:
    • 1. Softwarefunktion: Erkennen einer Seite einer synchronen Verbindung als „Master" und der anderen Seite als „Slawe" durch Schreiben in das IAP-Steuerregister jedes Knoten-Chips.
    • 2. Hardwarefunktion: Datenaustausch zwischen der Master-Seite (Seite A in 12) und der Slawe-Seite (Seite B in 12), um mit dem Training zu beginnen. Dieser Vorgang ist recht kompliziert, da die Daten über eine Leitung übertragen werden müssen, bevor diese richtig trainiert wurde. (Siehe unten: „Datenübertragung über eine untrainierte Leitung")
    • 3. Hardwarefunktion: Jede Seite einer einzelnen Leitung weist eine (in den 13A und 13B gezeigte) Ablaufsteuerung auf, die alle möglichen Einstelldaten der Verzögerungsleitung abarbeitet und die Ergebnisse zur Ermittlung der optimalen Einstelldaten der Verzögerungsleitung vergleicht. Eine Änderung der Einstelldaten der Verzögerungsleitung beeinflusst das Fenster auf beiden Seiten, sodass das System alle 16 × 16 Kombinationen abarbeiten muss. (Hinweis: die Verzögerungsleitung der Ausgangs (datensende) stufe weist gemäß der obigen Erläuterung 16 Einstelldaten auf.) Für jeden Trainingsdurchlauf der Verzögerungsleitung empfängt das Makro der Eingangs(datenerfassungs)stufe einen Zufallsdatenstrom von der anderen Seite, sucht nach dem Fenster und stellt die Größendaten des Fensters zur Analyse bereit.
    • 4. Softwarefunktion: Lesen der IAP-Zustandsregister, um den Erfolg/das Fehlschlagen des Trainings festzustellen. Die erhaltenen genauen Einstelldaten der Verzögerungsleitung und Fensterabmessungen können über andere leitungsspezifische Zustandsregister gelesen werden, auf welche die Software zugreifen kann.
  • Trainingssequenz der Leitung:
  • Die Ablaufsteuerung der 13A und 13B veranschaulicht die vom Knoten-Chip ausgeführten Schritte während des Trainings einer synchronen SiBiDi-Verbindung. Jede Seite der Leitung nutzt die folgenden Register:
  • DTR – Abzweigungsregister der Verzögerungsleitung (Delay Tap Register) – Steuert die Verzögerungsleitung in der Ausgangsstufe. (Die gültigen Einstelldaten sind 0 bis 15). Während einer IAP-Sequenz werden zwei zusätzliche „Arbeits" kopien benötigt: Mst-DTR und Slv-DTR:
  • LEDTR – Abzweigungsregister für besten lokalen Verzögerungswert (Local Best Delay Tap Register) – Speichert den DTR-Wert, der der besten während des Trainings bis dahin angetroffenen Fenstergröße entspricht. Am Ende des Trainings werden die Inhalte des LEDTR dauerhaft in das DTR geladen.
  • MBESR – Größenregister der besten Fenstergröße für beide Seiten (Mutual Best Eye Size Register) – Speichert die beste während des Trainings bis dahin angetroffene Fenstergröße (ausgehend vom Minimalwert der Fenstergrößen auf Seite A und Seite B für einen bestimmten Trainingsschritt).
  • Während des Leitungstrainings können Rauschgeneratormakros gestartet werden, um durch künstliche Verstärkung des Rauschens eine sehr verrauschte Umgebung zu simulieren und einen größeren vertikalen Spannungsabstand zu gewährleisten, was sich auf die Größe des Fensters auswirkt. Die Software beginnt die IAP-Sequenz, indem sie das „Start" bit in das IAP-Steuerregister schreibt, und legt den Chip als Master (Seite A) oder als Slave (Seite B) fest.
  • Datenübertragung über eine untrainierte Leitung
  • Zwischen den beiden Seiten einer Leitung müssen bereits Daten übertragen werden, bevor diese richtig trainiert wurde. Um eine möglichst sichere Datenübertragung zu gewährleisten wird die folgende Prozedur angewendet:
    • 1) Die Daten werden zu jedem Zeitpunkt nur in eine Richtung gesendet.
    • 2) Die Daten werden mit einer niedrigeren Datenrate gesendet. Es kann ein Verhältnis von 1:8 gewählt werden (d.h. eine „1" oder eine „0" wird für die Dauer von acht Bit gehalten).
  • Vor dem Training weisen die beiden Seiten einer Leitung keine vorhersagbare Phasenbeziehung auf. Deshalb überträgt eine Seite eine Zeichenkette „110011", und wenn ein Abtastpunkt mit den Vermittlungsdaten übereinstimmt, können die Daten in Form einer „111011" oder „100011" usw. empfangen werden. Die Übertragungsrate muss so langsam sein, dass stabile Daten über mehrere aufeinander folgende Abtastpunkte hinweg richtig erkannt werden können und keine Verwirrung durch Fehlabtastungen entsteht, die während Übergängen von 0ô1 oder 1ô0 innerhalb des Bitstroms auftreten können.
  • Wenn zwischen dem Master und dem Slave „Befehle" gesendet werden, wird diesen eine lange Zeichenkette aus Einsen und acht nachfolgenden Nullen vorangeschickt. Ein Befehl äußert sich durch: ... viele Einsen, 8 Nullen, das 8 Bit lange erste Bit des Befehls, das 8 Bit lange zweite Bit des Befehls, ... das 8 Bit lange letzte Bit des Befehls. Die Empfangsseite erkennt den 1ô0-Übergang und schätzt den Mittelpunkt des 8 Bit langen Fensters. (In Wirklichkeit kann dies das dritte, vierte oder fünfte Bit des 8 Bit langen Fensters sein, die alle stabil und gültig sein müssen.) Anschließend wird jedes achte Bit abgetastet, um den Befehl/die Information zu entschlüsseln.
  • Alle Befehle in den 13A und 13B sind in Großbuchstaben dargestellt und die Bezeichnung „identisch" in den Kästen von 13B zeigt an, dass der Inhalt des Kastens derselbe wie in 13A ist.
  • 13A zeigt die Master-Seite, wo in Stufe (0) auf einen Software-Startbefehl gewartet wird und dann die Register DTR, LBDTR und MBESR zurückgesetzt werden. In Stufe (1) wartet der Master auf den Empfang eines Befehls BEGIN vom Slave und sendet selbst einen Befehl BEGIN an den Slave, wenn er keinen empfängt, und wartet auf eine Antwort BEGIN vom Slave. Wenn der Master immer noch keinen Befehl BEGIN empfängt, sendet er wiederholt den Befehl BEGIN an den Slave. Wenn der Master einen Befehl BEGIN von einem anderen Master empfängt, bricht er den Vorgang ab.
  • Wenn der Befehl BEGIN erfolgreich empfangen wurde (JA), Stufe (4), sendet der Master einen Befehl TRAIN (Trainieren) und zeigt damit an, dass er gerade die Synchronisierung startet und dann anhält.
  • In Stufe (5) überträgt der Master einen Zufallsdaten-Bitstrom, um die Erfassung der Fenster zu starten.
  • In Stufe (6) wartet der Master auf das Erfassen der Fenster und wertet die Daten über jedes Fenster aus, zum Beispiel über die Fenstergröße.
  • In Stufe (7) wartet der Master auf den Empfang von Daten über die Fenstergröße, und wenn er keine Daten empfängt, wartet er (z.B. 1 μs), sendet Daten über die Fenstergröße und wartet weiter auf den Empfang von Daten über die Fenstergröße.
  • Wenn der Master die Daten empfangen hat, aktualisiert er die Register MBESR und LBDTR und erhöht das Register Mst-DTR um eins, und wenn das Register Slv-DTR durch einen Überlauf (Zählerüberlauf) um eins erhöht wird, werden die Stufen (4) bis (9) für alle 256 Kombinationen wiederholt.
  • Wenn das Ergebnis der Stufe (9) JA lautet, sendet der Master in Stufe (10) einen Befehl ENDE, um das Fenstertraining zu beenden.
  • In Stufe (11) wartet der Master auf den Empfang eines Befehls ENDE vom Slave.
  • Wenn dies der Fall ist, lädt der Master in Stufe (12) das DTR mit den LBDTR-Registern und setzt die Eingangsstufe zurück, die ein Installationsknoten ist.
  • In Stufe (13) werden die optimalen Fensterparameter zum Übertragen von Zufallsdaten genutzt.
  • Die Stufen (12) und (13) nutzen optimale Fensterparameter zum Übertragen von Daten, woraufhin die optimalen Fensterparameter noch einmal geprüft und bei positivem Ergebnis fest gespeichert werden.
  • In Stufe (14) bestätigt der Master ein Signal Störsignal_zurücksetzen, um die Datenerfassung zurückzusetzen und noch einmal zu prüfen, vergleicht dann die Fenstergröße mit den Daten der Mindestfenstergröße und aktualisiert ein IAP-Zustandsregister.
  • Der Ablauf auf der Slave-Seite von 13B ergibt sich aus der obigen Beschreibung der Master-Seite.
  • Obwohl hier verschiedene Ausführungsarten und Varianten der vorliegenden Erfindung zur schnellen Signalisierung ausführlich beschrieben werden, sollte klar sein, dass die Beschreibung und die Lehren der vorliegenden Erfindung dem Fachmann viele alternative Ausgestaltungen nahe legen.

Claims (5)

  1. System zum automatischen Anpassen von Übertragungsverzögerungen zur optimalen gleichzeitigen bidirektionalen (SiBiDi) Signalisierung (Zeichengabe) zwischen zwei Knoten (Knoten 1, Knoten 2), um die Signalqualität der gleichzeitigen bidirektionalen Signalisierung über eine Datenübertragungsleitung zu verbessern, wobei während einer Installationsphase Einstelldaten der Verzögerungsleitung in einer unidirektionalen Datenübertragung über die Datenübertragungsleitung gesendet werden, damit die beiden Knoten (Knoten 1, Knoten 2) während der Installationsphase die Parametereinstelldaten genauer austauschen können, wobei die Signalqualität der unidirektionalen Datenübertragung besser ist und einen genaueren Austausch der Parametereinstelldaten ermöglicht.
  2. System nach Anspruch 1, bei dem Daten während der Installationsphase mit einer geringeren Datenrate gesendet werden als bei der SiBiDi-Signalisierung und bei dem ein Verhältnis von 1:n verwendet wird, indem eine „1" oder eine „0" für eine Dauer von n Bits gehalten wird.
  3. System nach Anspruch 1, bei dem jeder Knoten n verschiedene Verzögerungen wählen kann, die in n Schritten von einer minimalen oder Nullverzögerung bis zu einer maximalen Verzögerung reichen, sodass die Anzahl möglicher Kombinationen von Verzögerungen gleich n × n ist, sodass zum Auswählen einer optimalen Kombination von Verzögerungen n × n Kombinationen getestet werden und der Mechanismus nacheinander alle n × n Kombinationen durchläuft.
  4. System nach Anspruch 1, bei dem eine differenzielle Datenleitung die beiden Knoten verbindet und jeder Knoten mit einer 1-Bit-Sende-CPU und einer 1-Bit-Empfangs-CPU arbeitet.
  5. System nach Anspruch 1, bei dem zwei differenzielle Datenleitungen die beiden identischen Knoten verbinden und jeder Knoten mit einer 2-Bit-Sende-CPU und einer 2-Bit-Empfangs-CPU arbeitet.
DE60221235T 2001-02-24 2002-02-25 Datenerfassungstechnik für die schnelle zeichengabe Expired - Lifetime DE60221235T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
US271124P 2001-02-24
PCT/US2002/005568 WO2002069552A1 (en) 2001-02-24 2002-02-25 Data capture technique for high speed signaling

Publications (2)

Publication Number Publication Date
DE60221235D1 DE60221235D1 (de) 2007-08-30
DE60221235T2 true DE60221235T2 (de) 2008-04-10

Family

ID=68499831

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60221235T Expired - Lifetime DE60221235T2 (de) 2001-02-24 2002-02-25 Datenerfassungstechnik für die schnelle zeichengabe

Country Status (10)

Country Link
US (2) US7418068B2 (de)
EP (1) EP1378090B1 (de)
JP (1) JP3870162B2 (de)
KR (2) KR100612068B1 (de)
CN (2) CN1303774C (de)
AT (1) ATE367690T1 (de)
CA (1) CA2436412A1 (de)
DE (1) DE60221235T2 (de)
IL (1) IL157513A0 (de)
WO (1) WO2002069552A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010097375A (ko) * 2000-04-21 2001-11-08 이희창 빙정석 대용품 제법
US7490275B2 (en) 2001-02-02 2009-02-10 Rambus Inc. Method and apparatus for evaluating and optimizing a signaling system
US7076377B2 (en) * 2003-02-11 2006-07-11 Rambus Inc. Circuit, apparatus and method for capturing a representation of a waveform from a clock-data recovery (CDR) unit
US7408981B2 (en) * 2003-05-20 2008-08-05 Rambus Inc. Methods and circuits for performing margining tests in the presence of a decision feedback equalizer
US7627029B2 (en) * 2003-05-20 2009-12-01 Rambus Inc. Margin test methods and circuits
US7590175B2 (en) * 2003-05-20 2009-09-15 Rambus Inc. DFE margin test methods and circuits that decouple sample and feedback timing
KR100617387B1 (ko) * 2004-02-18 2006-08-31 광주과학기술원 비동기식 이중선 버스를 이용한 데이터 전송 장치 및 그방법
US7983142B2 (en) 2004-03-30 2011-07-19 Intel Corporation Apparatus, systems, and methods for the reception and synchronization of asynchronous signals
US7924909B2 (en) * 2004-06-02 2011-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for interference cancellation in wireless receivers
JP4533715B2 (ja) * 2004-10-07 2010-09-01 川崎マイクロエレクトロニクス株式会社 位相比較器
US7839768B2 (en) * 2005-02-04 2010-11-23 Quasar Technologies, Inc. Redundant ethernet packet network management
US7970087B2 (en) * 2005-04-06 2011-06-28 Freescale Semiconductor, Inc. Eye center determination system and method
JP4718933B2 (ja) 2005-08-24 2011-07-06 富士通株式会社 並列信号のスキュー調整回路及びスキュー調整方法
US7587015B2 (en) * 2006-02-15 2009-09-08 Verigy (Singapore) Pte. Ltd. Asynchronous digital data capture
JP2007248379A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd 半導体装置及び半導体装置のテスト方法
US7889824B2 (en) * 2006-09-28 2011-02-15 Intel Corporation System and method for alignment of clock to data
US8108738B2 (en) * 2007-06-26 2012-01-31 International Business Machines Corporation Data eye monitor method and apparatus
US7661084B2 (en) * 2007-08-17 2010-02-09 International Business Machines Corporation Implementing memory read data eye stretcher
US7703063B2 (en) * 2007-08-17 2010-04-20 International Business Machines Corporation Implementing memory read data eye stretcher
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
US8208521B2 (en) * 2007-12-31 2012-06-26 Agere Systems Inc. Methods and apparatus for detecting a loss of lock condition in a clock and data recovery system
US8428195B2 (en) * 2007-12-31 2013-04-23 Agere Systems Llc Methods and apparatus for detecting and decoding adaptive equalization training frames
US8121239B2 (en) * 2008-02-11 2012-02-21 Intel Corporation Unidirectional sweep training for an interconnect
US8543005B2 (en) * 2008-04-30 2013-09-24 Hewlett-Packard Development Company, L.P. Intentionally skewed optical clock signal distribution
WO2009147697A1 (ja) 2008-06-03 2009-12-10 富士通株式会社 情報処理装置及びその制御方法
US9008196B2 (en) * 2011-04-28 2015-04-14 International Business Machines Corporation Updating interface settings for an interface
US9153198B2 (en) * 2012-09-25 2015-10-06 Ati Technologies Ulc Method and device for link over-training
JP6098171B2 (ja) * 2013-01-09 2017-03-22 富士通株式会社 信号処理回路
TWI514775B (zh) * 2013-07-22 2015-12-21 Realtek Semiconductor Corp 時脈邊緣偵測裝置與方法
US9660656B2 (en) * 2015-04-15 2017-05-23 Sandisk Technologies Llc Delay compensation
KR102645150B1 (ko) * 2016-12-30 2024-03-07 엘지디스플레이 주식회사 디스플레이 인터페이스 장치 및 그의 데이터 전송 방법
US10230360B2 (en) * 2017-06-16 2019-03-12 International Business Machines Corporation Increasing resolution of on-chip timing uncertainty measurements
CN110196825B (zh) * 2019-05-20 2020-11-20 中国科学院微电子研究所 并行数据同步发送的方法及系统
CN112013506B (zh) * 2019-05-31 2022-02-25 青岛海尔空调电子有限公司 用于通讯检测的方法及装置、空调
US10784874B1 (en) * 2020-02-05 2020-09-22 Intel Corporation All-digital voltage monitor (ADVM) with single-cycle latency
CN113468095B (zh) * 2021-07-07 2023-12-15 西北核技术研究所 高速串行传输数据相位对齐方法、存储介质及终端设备
CN117009267B (zh) * 2023-10-07 2024-01-30 成都博宇利华科技有限公司 源同步数据流中插入时间信息的方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821296A (en) * 1987-08-26 1989-04-11 Bell Communications Research, Inc. Digital phase aligner with outrigger sampling
US5144525A (en) * 1990-09-27 1992-09-01 Tektronix, Inc. Analog acquisition system including a high speed timing generator
EP0511836B1 (de) * 1991-05-01 1997-04-16 Motorola, Inc. Breitbandiger digitaler Phasenausrichter
US5258933A (en) * 1992-08-27 1993-11-02 Quantum Corporation Timing control for PRML class IV sampling data detection channel
US5491722A (en) * 1992-12-21 1996-02-13 Communications Technology Corporation Eye pattern margin measurement and receiver stress detection device
DE69415378T2 (de) 1993-04-05 1999-06-17 Koninkl Philips Electronics Nv Digitaler Phasenregelkreis
US5642386A (en) * 1994-06-30 1997-06-24 Massachusetts Institute Of Technology Data sampling circuit for a burst mode communication system
US5729597A (en) * 1995-05-16 1998-03-17 At&T Corp Service and information management system for a telecommunications network
US5852600A (en) 1995-06-07 1998-12-22 Mci Communications Corporation System and method for resolving substantially simultaneous bi-directional requests of spare capacity
US5844908A (en) 1996-11-14 1998-12-01 Alcatel Network Systems, Inc. Digital delay system and method for digital cross connect telecommunication systems
JP3006524B2 (ja) * 1996-12-25 2000-02-07 日本電気株式会社 双方向遷移数削減インターフェース回路
JP2993463B2 (ja) * 1997-05-08 1999-12-20 日本電気株式会社 同期回路制御装置
US5968180A (en) * 1997-09-30 1999-10-19 Intel Corporation Data capture circuit for asynchronous data transfer
KR100261295B1 (ko) * 1997-12-03 2000-07-01 이계철 준안정이 고려된 디지털 위상 정렬장치
US6108794A (en) * 1998-02-24 2000-08-22 Agilent Technologies Signal comparison system and method for improving data analysis by determining transitions of a data signal with respect to a clock signal
JP3767997B2 (ja) 1998-02-27 2006-04-19 沖電気工業株式会社 ビット位相同期回路
US7206397B1 (en) * 1998-08-04 2007-04-17 At&T Corp. Method for allocating network resources
US6112283A (en) * 1998-08-06 2000-08-29 Intel Corporation Out-of-order snooping for multiprocessor computer systems
US6341326B1 (en) * 1998-12-23 2002-01-22 Intel Corporation Method and apparatus for data capture using latches, delays, parallelism, and synchronization
US6516363B1 (en) * 1999-08-06 2003-02-04 Micron Technology, Inc. Output data path having selectable data rates
US6396329B1 (en) * 1999-10-19 2002-05-28 Rambus, Inc Method and apparatus for receiving high speed signals with low latency
US6452428B1 (en) * 1999-11-23 2002-09-17 Intel Corporation Slew rate control circuit
JP2001230824A (ja) * 2000-02-18 2001-08-24 Matsushita Electric Ind Co Ltd データ受信方式
US6617871B2 (en) * 2001-07-09 2003-09-09 Rambus Inc. Methods and apparatus for bi-directional signaling
US6868134B2 (en) * 2001-07-30 2005-03-15 Matsushita Electric Industrial Co., Ltd. Method and apparatus for recovering a clock signal from an asynchronous data signal

Also Published As

Publication number Publication date
CN1529958A (zh) 2004-09-15
CN1901439B (zh) 2011-04-20
JP3870162B2 (ja) 2007-01-17
US7418068B2 (en) 2008-08-26
US20040114698A1 (en) 2004-06-17
EP1378090A4 (de) 2005-02-09
IL157513A0 (en) 2004-03-28
JP2004531117A (ja) 2004-10-07
EP1378090B1 (de) 2007-07-18
CA2436412A1 (en) 2002-09-06
KR20030080028A (ko) 2003-10-10
KR100612068B1 (ko) 2006-08-14
US7817585B2 (en) 2010-10-19
WO2002069552A1 (en) 2002-09-06
ATE367690T1 (de) 2007-08-15
KR100546971B1 (ko) 2006-01-31
CN1901439A (zh) 2007-01-24
EP1378090A1 (de) 2004-01-07
CN1303774C (zh) 2007-03-07
KR20060002014A (ko) 2006-01-06
DE60221235D1 (de) 2007-08-30
US20090028073A1 (en) 2009-01-29

Similar Documents

Publication Publication Date Title
DE60221235T2 (de) Datenerfassungstechnik für die schnelle zeichengabe
EP0961980B1 (de) Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
DE69634824T2 (de) Integrierte schaltungstestanordnung mit paralleler ansteuerung
EP0489944B1 (de) Master-Slave-Datenübertragungsverfahren mit flexiblem Eindraht-Bus
DE69923814T2 (de) Leitweglenkungschaltung einer Schaltmatrix mit hoher Geschwindigkeit und mit Flusskontrolle
DE69819648T2 (de) Zweitorpuffer
DE60124161T2 (de) Datenverarbeitungsvorrichtung, -system und -verfahren benützend eine Zustandstransitiontabelle
DE19941196B4 (de) Zweikanal-FIFO mit synchronisierten Lese- und Schreibzeigern
DE60132445T2 (de) Kalibrierung von bustaktsignalen für speicheranordnungen
DE69833708T2 (de) Kommunikationsverfahren für eine medienunabhängige Schnittstelle (MII) für ein hochintegriertes Ethernet-Netzelement
DE10102887B4 (de) Verzögerungsvorrichtung, die eine Verzögerungssperrschleife aufweist und Verfahren zum Kalibrieren derselben
DE10235739B4 (de) Register, das auf einem Speichermodul montiert ist sowie Verwendung eines Registers in einem Speichermodul
DE60317629T2 (de) Konfigurierbare synchrone oder asynchrone busschnittstelle
DE4307449C2 (de) Verfahren und Schaltung zur Resynchronisation einer synchronen seriellen Schnittstelle
DE102004014450A1 (de) Verfahren zum Messen und Kompensieren von Versatz von Datenübertragungsleitungen
DE4023527A1 (de) Bruecke zur netzwerkverbindung
DE10326925A1 (de) Speichersystem und Steuerungsverfahren dafür
DE10346559A1 (de) Dateninvertierungsschaltung und Halbleitervorrichtung
DE60213443T2 (de) Speicherschaltung und schaltung zur erkennung eines gültigen überganges
DE10128770A1 (de) Verfahren zum Übertragen von Daten in ein Speicherzellenfeld und Schaltungsanordnung
DE10344818B4 (de) Vorrichtung zum Kalibrieren der relativen Phase zweier Empfangssignale eines Speicherbausteins
DE60131355T2 (de) Paketverarbeitungsvorrichtung
DE102006025133A1 (de) Speicher- und Speicherkommunikationssystem
DE3729732C2 (de)
DE69531810T2 (de) Verfahren zum Abtasten eines seriellen digitalen Signals

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)