DE60005528T2 - Willkürliche längenerweiterung eines synchronen busses mit originalem busprotokoll - Google Patents

Willkürliche längenerweiterung eines synchronen busses mit originalem busprotokoll Download PDF

Info

Publication number
DE60005528T2
DE60005528T2 DE60005528T DE60005528T DE60005528T2 DE 60005528 T2 DE60005528 T2 DE 60005528T2 DE 60005528 T DE60005528 T DE 60005528T DE 60005528 T DE60005528 T DE 60005528T DE 60005528 T2 DE60005528 T2 DE 60005528T2
Authority
DE
Germany
Prior art keywords
bus
extender
remote device
remote
uut
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
DE60005528T
Other languages
English (en)
Other versions
DE60005528D1 (de
Inventor
L. Eric TRUEBENBACH
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.)
Teradyne Inc
Original Assignee
Teradyne Inc
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 Teradyne Inc filed Critical Teradyne Inc
Application granted granted Critical
Publication of DE60005528D1 publication Critical patent/DE60005528D1/de
Publication of DE60005528T2 publication Critical patent/DE60005528T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31722Addressing or selecting of test units, e.g. transmission protocols for selecting test units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31903Tester hardware, i.e. output processing circuits tester configuration
    • G01R31/31907Modular tester, e.g. controlling and coordinating instruments in a bus based architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

  • Diese Erfindung betrifft allgemein automatische Testgeräte, und insbesondere die Verlängerungen von synchronen Bussen in automatischen Testsystemen, die synchrone Buseinrichtungen testen.
  • HINTERGRUND DER ERFINDUNG
  • Moderne Computersysteme verwenden synchrone Hochgeschwindigkeitsbusse zum Kommunizieren von Daten. Synchrone Busse koordinieren Operationen auf einem Bus durch Bereitstellen eines gemeinsamen Taktes für sämtliche Buseinrichtungen. Asynchrone Busse verwenden nicht einen gemeinsamen Takt, um Aktivitäten zu koordinieren. Beispiele von synchronen Bussen umfassen PCI, AGP und Cardbus.
  • Hersteller von elektronischen Schaltungskarten (elektronischen Schaltungsplatinen) verwenden automatische Testgeräte ("ATE" oder "Tester") um sicherzustellen, dass ihre Produkte Anforderungen für ein Betriebsverhalten und eine Funktionalität erfüllen. In einer Testkonfiguration ist eine Einheit, die sich unter einem Test befindet ("UUT", Unit Under Test) an einem Tester über ein oder mehrere Schnittstellenverbinder angebracht, und der Tester trainiert die UUT durch Reproduzieren der eigentümlichen Umgebung der UUT. Wenn UUT selbst eine synchrone Buskarte ist, könnte ein Tester die Busumgebung dadurch reproduzieren, dass ein vollständiger synchroner Bus eingebaut wird, zu dem die UUT eine Verbindung hat.
  • Bestimmte Charakteristiken von synchronen Bussen machen einen ATE Test von synchronen Buskarten problematisch. Eine Hauptbeschränkung von synchronen Bussen besteht darin, dass sie allgemein kurz gehalten werden müssen, um bei hoher Geschwindigkeit zu arbeiten. Synchrone Busse, die bei 33 MHz und darüber arbeiten, sind selten mehr als ein Fuß lang. Die Notwendigkeit synchrone Busse kurz zu halten zwingt den gesamten Bus mit seiner gesamten begleitenden Hardware und Kühlung an eine Stelle in der Nähe der Testerschnittstelle. Das Gebiet um die Testerschnittstelle herum weist jedoch eine Tendenz auf bereits überlaufen zu sein. Zusätzlich dazu, dass sie das Hauptaugenmerk von den meisten Resourcen des Testers ist, umfasst die Testerschnittstelle typischerweise auch Testadapter, Zusatzgeräte, und Behandler zum Laden und Entladen von UUTs. Deshalb steht die Notwendigkeit synchrone Busse kurz zu halten in Konflikt mit dem Mangel an verfügbarem Platz in der Nähe der Testerschnittstelle.
  • EP-A-0624846 offenbart ein Verfahren zum Verlängern eines synchronen Busses unter Verwendung einer Zwischenverbindung. Signale von dem synchronen Bus werden über die Zwischenverbindung an eine entfernte Einrichtung getrieben. Rückkehrsignale von der entfernten Einrichtung werden über die Zwischenverbindung angetrieben und an den synchronen Bus angelegt. Jedoch ist dieses Verfahren begrenzt auf Zwischenverbindungen, die relativ kurz sind, bei denen die Setzzeit von Signalen, die über die Zwischenverbindung getrieben werden, nicht berücksichtigt werden muss.
  • Synchrone Busse weisen auch das Problem auf, dass sie eine schlechte Fehlerisolation aufweisen. Defekte auf einer Karte können als Fehler auf anderen Karten auftreten und können einen gesamten Bus zu einer Fehlfunktion veranlassen. Ein kritischer Test für ein erfolgreiches ATE ist die Fähigkeit Fehler zu isolieren. Der Mangel einer Fehlerisolation, die den meisten synchronen Bussen gemeinsam ist, steht in einem direkten Konflikt mit der Notwendigkeit für eine hohe Fehlerrelation in ATE.
  • Einige synchrone Busse unterstützen eine Änderung von Buskarten mit einer angelegten Energie und können eine neue Karte "live" identifizieren, ohne dass eine explizite Rücksetzung benötigt wird (ein Merkmal, welches als "hot-swapping" ("Heiß-Auswechselung"; "Auswechselung bzw. Austausch im Betrieb") bekannt ist). Viele Busse werden jedoch nicht aufgebaut, um zu ermöglichen, dass Karten schnell geändert werden können. Diese Busse müssen heruntergefahren werden, bevor eine Karte eingesetzt oder entfernt werden kann, und eine zeitaufwendige Zurücksetzung muss ausgeführt werden, bevor ein normaler Betrieb wieder aufgenommen werden kann. ATE Systeme testen typischerweise ein großes Volumen von Karten in einer Fertigungsstraßenweise. Für Busse, die ein hot-swapping nicht unterstützen, steht die zeitaufwendige Prozedur zum Auswechseln (swapping) von Karten in einem Konflikt mit der ATE Anforderung für einen höheren Durchsatz.
  • 1 zeigt einen synchronen Bus dieses Typs, der gewöhnlicherweise in modernen Computersystemen verwendet wird, und illustriert die Notwendigkeit, dass synchrone Busse kurz gehalten werden. Der Takttreiber 112 puffert ein Mastertaktsignal 114 und stellt eine individuelle Version des Mastertakts an jedem Taktempfänger 120 auf jeder Einrichtung 122, 124 und 126, die in den Bus 110 gesteckt sind, bereit. Der Takttreiber 112 verteilt das Mastertaktsignal 114 an sämtliche Schlitze auf dem Bus mit fast einer Null-Timing-Verschiebung: d.h. eine Phasenverschiebung von fast Null tritt zwischen den Taktsignalen auf den unterschiedlichen Schlitzen des Busses auf.
  • Wie in 1 gezeigt umfasst jede Einrichtung 122, 124 und 126 auf dem Bus 110 einen Datensender 116, einen Datenempfänger 118 und einen Taktempfänger 120. Der Bus 110 ist in einer Mehrfachabzweigungs-, Mehrfachmaster-Konfiguration angeordnet, bei der irgendeine Einrichtung Daten an irgendeine andere Einrichtung/Daten von irgendeiner Einrichtung auf den Bus senden oder empfangen kann. Z.B. kann die Einrichtung 122 Datensignale unter Verwendung ihres Senders 116 an die Einrichtung 126 senden, und die Einrichtung 126 kann dann die Datensignale unter Verwendung ihres Empfängers 120 empfangen.
  • 1 identifiziert "Tprop" als die Zeit, die benötigt wird, dass Datensignale sich den Bus herunterbewegen und abklingen (sich setzen). Tprop ist eine endliche Verzögerung in Bezug auf eine Anzahl von Faktoren, einschließlich der physikalischen Länge des Busses, seiner Impedanz, der Impedanz der Einrichtungen auf dem Bus, einer induktiven und kapazitiven Last, und der Busabschlüsse. Wenn die Periode des Mastertakts 114 viel länger als Tprop ist, dann weisen Datensignale von der Einrichtung 122 eine geeignete Zeit auf, um sich den Bus herunterzubewegen und an der Einrichtung 126 abzuklingen, bevor die nächste Taktflanke auftritt. Wenn Tprop sich der Taktperiode annähert oder diese übersteigt, empfängt die Einrichtung 126 jedoch ihre Taktflanke, bevor die Datensignale abklingen, und ein ungültiges Takten kann auftreten. Für einen richtigen Betrieb muss Tprop immer kleiner als die Taktperiode sein. Der praktische Test der Anforderung, dass Tprop kleiner als die Taktperiode ist, ist, dass sehr schnelle synchrone Busse auch eine Tendenz aufweisen sehr kurz zu sein.
  • Verschiedene Techniken sind verwendet worden, um die Länge von synchronen Bussen zu verlängern, mit einem Teilerfolg. Diese Techniken umfassen die Änderung der Busbelastung, die Verlangsamung des Busses, die Überbrückung und eine entfernte Bussteuerung.
  • ÄNDERUNG DER BUSBELASTUNG
  • Die Verzögerungszeit Tprop hängt nicht nur von der physikalischen Länge des Busses, sondern auch von seiner elektrischen Belastung ab. Durch Verringern der Bussbelastung ist es möglich einen Bus physikalisch zu verlängern und noch Tprop kürzer als die Taktperiode zu halten.
  • Als eine praktische Vorgehensweise erzeugt die Verringerung der Busbelastung nur kleine Verstärkungen. Die meisten Busimplementierungen steuern eine Busbelastung agressiv und lassen wenig Raum für eine Besserung. Unter den besten Bedingungen erlaubt die Reduzierung der Busbelastung (Buslast), dass synchrone Busse nur einige wenige Inche verlängert werden. In einer ATE Umgebung ist diese Verbesserung zu klein, um nützlich zu sein.
  • VERLANGSAMEN DES BUSSES
  • Wenn die Taktperiode eines Busses seine maximale Länge begrenzt, kann man theoretisch einen Bus verlängern, indem seine Taktperiode verlangsamt wird. Je länger die Taktperiode ist, desto weiter können sich Daten ausbreiten, bevor ein falsches Takten auftritt.
  • Eine Verlangsamung der Taktperiode erscheint eine einfach und attraktive Vorgehensweise zum Verlängern eines Busses sein, aber dieses Technik weist mehrere Nachteile auf. Zunächst erlauben nicht alle Busse, dass ihre Taktperioden geändert werden. Zweitens, eine Verwendung eines Busses bei reduzierter Geschwindigkeit verlangsamt Operationen auf dem Bus und kann den Durchsatz eines gesamten Systems reduzieren. Drittens addiert eine Verlängerung eines Busses eine Belastung zu dem Bus hinzu und kann ein Umlaufen (Ringing) in dem Taktsignal verursachen, wobei dieses Umlaufen selbst ein falsches Takten verursacht. Die Reduzierung der Taktperiode reduziert den Umlauf nicht. In einigen Umständen reduziert eine Verlangsamung der Flanken des Takts jedoch tatsächlich das Umlaufen. Eine Verlangsamung von Taktflanken ist in der Praxis jedoch schwierig zu erreichen. Als letztes kann ein Testen von UUTs bei reduzierter Geschwindigkeit unter Umständen fehlschlagen bestimmte Typen von Defekten zu enthüllen. Viele Fehler zeigen sich selbst nur dann, wenn eine UUT bei ihrer Nenngeschwindigkeit betrieben wird. Eine Verlangsamung des Takts steht einer Fehlerfassung entgegen und steht somit im Konflikt mit einem Hauptzweck der ATE.
  • ÜBERBRÜCKUNG
  • 2 zeigt eine Busüberbrückung, eine kommerziell verfügbare Technik zum Verlängern von synchronen Bussen. Ein Produkt, dass eine Form von Busüberbrückung bereitstellt, ist das Modell 2130, welches von SBS Technologies, Inc., St. Paul, MN erhältlich ist. Wie in 2 gezeigt ist eine Überbrückungseinrichtung 218 zwischen einem ursprünglichen Synchronbus 210 und einem verlängerten synchronen Bus 212 angeordnet. Die Überbrückungseinrichtung 218 kopiert Signale zwischen Bussen 210 und 212 und erlaubt einer entfernten Einrichtung 216 mit einer lokalen Einrichtung 214 vor- und zurückzukommunizieren. Eine Überbrückung schaltet Busses effektiv in Reihe, während die Busse elektrisch voneinander isoliert werden. Mehrfachbrückeneinrichtungen können in Kaskade angeordnet werden, um einen Bus noch weiter zu verlängern.
  • Jedes Bussegment, das einen Teil einer überbrückten Konfiguration bildet, muss mit der Spezifikation des Busses für eine maximale Länge übereinstimmen. Somit erlaubt eine Überbrückung, dass Busse in Kaskade angeordnet werden, aber sie verlängert die Länge von irgendeinem individuellen Bussegment nicht. Deshalb zielt die Überbrückung nicht auf die Notwendigkeit zum Freihalten des Gebiets um die UUT herum ab.
  • ENTFERNTE BUSSTEUERUNG
  • Eine entfernte Bussteuerung ist verwendet worden, um synchrone Busse über lange Entfernungen zu verlängern. Ein Produkt, das so erscheint, als ob es eine Form von entfernter Bussteuerung bereitstellt, ist das Modell TA300 von Catalyst Enterprises, Inc., San Jose, CA. Eine entfernte Bussteuerung arbeitet durch Umsetzen von Bussignalen in ein anderes Busprotokoll, Senden der ungesetzten Signale an eine entfernte Stelle, und Umsetzen der Signale zurück wie in ihre ursprüngliche Form, um die Bussignale an der entfernten Stelle zu rekonstruieren.
  • 3 zeigt ein Beispiel einer entfernten Bussteuerung. Eine Steuereinrichtung 314 auf einem lokalen Synchronbus 310 kommuniziert mit einer entfernten Einrichtung 320 auf einem entfernten Synchronbus 312. Die Busse kommunizieren unter Verwendung einer lokalen Umsetzungseinrichtung 316, die in den lokalen synchronen Bus 310 gesteckt ist, einer entfernten Umsetzungseinrichtung 318, die in den entfernten Bus 312 eingesteckt ist, und einer Zwischenverbindung 322 zwischen den zwei Umsetzungseinrichtungen. In bestimmten Anwendungen wird der entfernte Bus 312 weggelassen, und die entfernte Einrichtung 320 wird direkt in die Umsetzungseinrichtung 318 eingesteckt.
  • Eine entfernte Bussteuerung ist fast unendlich verlängerbar, weist aber viele Nachteile auf, insbesondere in einem ATE. Zunächst weist eine entfernte Bussteuerung eine Tendenz auf kostenaufwendig zu sein, weil sie einen signifikanten Betrag einer Hardware an Software benötigt, um ihre Steuerung zu erreichen. Zweitens kommuniziert eine entfernte Bussteuerung nicht mit der entfernten Karte unter Verwendung der natürlichen Umgebung der entfernten Karte. Eine entfernte Bussteuerung benötigt eine Umsetzung in ein anderes Protokoll, z.B. ein serielles Busprotokoll, welches für eine Übertragung über große Entfernungen geeignet ist. Eine entfernte Bussteuerung verwendet nicht den natürlichen "Einrichtungstreiber" der entfernten Karte. Ein "Einrichtungstreiber" ist ein Programm, das eine Kommunikation zwischen dem Betriebssystem eines Hostcomputers und einer Einrichtung managt. Eine entfernte Bussteuerung fügt ein anderes Busprotokoll zwischen dem Betriebssystem und der Einrichtung ein und verwendet den natürlichen Einrichtungstreiber nicht, um die entfernte Karte zu trainieren. Drittens erfordert eine entfernte Bussteuerung die Verwendung einer Hardware in der Nähe der UUT. Sogar dann, wenn die entfernte Bussteuerung 312 entfernt ist, ist die Umsetzungseinrichtung 318 noch in der Nähe der UUT angeordnet.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Im Hinblick auf den voranstehenden Hintergrund ist es eine Aufgabe der Erfindung einen synchronen Bus um eine beliebig lange Entfernung unter Verwendung des natürlichen Busprotokolls des Busses zu verlängern.
  • Eine andere Aufgabe der Erfindung besteht darin ein Austauschen von entfernten Buskarten im Betrieb (hot-swapping) unabhängig davon zu erlauben, ob der Bus normalerweise ein hot-swapping unterstützt.
  • Es ist noch eine weitere Aufgabe zu verhindern, dass Fehler auf der entfernten Buskarte bewirken, das Fehler an anderen Stellen eines Systems auftreten, und deshalb eine Fehlerisolation zu fördern.
  • Um die vorangehenden Aufgaben und andere Aufgaben und Vorteile bereitzustellen verwendet ein Verfahren zum Verlängern eines synchronen Busses eine Verlängerungseinrichtung, die physikalisch an dem synchronen Bus angreift. Das Verfahren umfasst den Schritt zum Empfangen einer Vielzahl von Bussignalen von dem synchronen Bus, das Treiben der Vielzahl von Bussignalen an eine entfernte Einrichtung über eine Zwischenverbindung, und das Empfangen von Rückkehrsignalen von der entfernten Einrichtung über die Zwischenverbindung. Das Verfahren umfasst das Einrichten eines Aushalteintervalls, welches wenigstens so lang wie die Setzzeit der Rückkehrsignale ist, und das Anlegen der Rückkehrsignale an den synchronen Bus, nachdem das Aushalteintervall abläuft.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Verlängern eines synchronen Busses unter Verwendung einer Verlängerungseinrichtung, die physikalisch an dem synchronen Bus angreift, eine Überwachung des synchronen Busses, um eine Transaktion mit der entfernten Einrichtung zu erfassen. Die Transaktion umfasst Inhalte, die eine Konfiguration der entfernten Einrichtung kodieren. Das Verfahren umfasst ferner das Speichern der Inhalte der Transaktion mit der entfernten Einrichtung, um eine lokale Kopie der Konfiguration der entfernten Einrichtung aufrecht zu erhalten.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung umfasst ein Verfahren zum Testen von UUTs das Aufbauen einer Aufzeichnung von Konfigurationsdaten für eine erste UUT. Das Verfahren umfasst auch ein Abblocken eines Flusses von Energie zwischen dem synchronen Bus und der ersten UUT, nachdem eine zweite UUT installiert ist. Das Verfahren umfasst das Kopieren der Aufzeichnung von Konfigurationsdaten für die erste UUT auf die zweite UUT, bevor mit dem Test der zweiten UUT weiter gemacht wird. Das Verfahren erlaubt dadurch, dass UUTs sicher ausgetauscht werden, während der synchrone Bus im Betrieb bleibt.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung erleichtert ein Busverlängerer zum Verlängern eines synchronen Busses das Testen von synchronen Buskarten. Der Busverlängerer umfasst eine Verlängerereinrichtung, die mit dem synchronen Bus gekoppelt ist, und eine Zwischenverbindung, die mit der Verlängerereinrichtung gekoppelt ist und sich über eine Länge zu einem Verbinder erstreckt, die angeordnet ist, um an einer UUT anzugreifen. Die Verlängerereinrichtung umfasst eine Aushalteschaltung, die mit der Zwischenverbindung und dem synchronen Bus gekoppelt ist. Die Aushalteschaltung umfasst ein Verzögerungsregister zum Speichern eines Aushalteintervalls, auf Grundlage der Länge der Zwischenverbindung, und eine Verzögerungsschaltung. Die Verzögerungsschaltung verhindert, dass Rückkehrsignale, die von der UUT ankommen, auf dem synchronen Bus bereitgestellt werden, bis das Aushalteintervall abläuft.
  • Zusätzliche Aufgaben, Vorteile und neuartige Merkmale der Erfindung ergeben sich näher aus einer Berücksichtung der folgenden Beschreibungen und den Zeichnungen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung lässt sich besser durch Bezugnahme auf die folgende ausführliche Beschreibung und die beiliegenden Zeichnungen verstehen. In den Zeichnungen zeigen:
  • 1 eine vereinfachte schematische Darstellung einer herkömmlichen synchronen Busarchitektur, mit der die Erfindung arbeiten kann;
  • 2 ein Blockdiagramm, das die herkömmliche Technik einer Überbrückung zeigt;
  • 3 ein Blockdiagramm, das die herkömmliche Technik einer entfernten Bussteuerung zeigt;
  • 4 ein Blockdiagramm eines Busverlängerers, in Übereinstimmung mit der Erfindung;
  • 5 ein Blockdiagramm, welches die Bus-Snooper Schaltung der 4 mit Einzelheiten darstellt;
  • 6 ein Blockdiagramm, das die Aushalteschaltung der 4 mit Einzelheiten darstellt;
  • 7 ein Blockdiagramm, das die Verzögerungsbestimmungsschaltung der 6 mit Einzelheiten darstellt;
  • 8a und 8b Flussdiagramme, die jeweils Beispiele von Lese- und Schreiboperationen einer entfernten Einrichtung unter Verwendung des Busverlängereres der 4 beschreiben, wenn die entfernte Einrichtung gerade in einem Buszielmodus arbeitet;
  • 8c und 8d Flussdiagramme, die jeweils Beispiele von Lese- und Schreiboperationen einer entfernten Einrichtung unter Verwendung des Busverlängerers der 4 beschreiben, wenn die entfernte Einrichtung in einem Businitiatiormodus arbeitet;
  • 9 ein Blockdiagramm, das ein Testsystem zeigt, das einen Busverlängerer in Übereinstimmung mit der Erfindung zum Testen einer entfernten UUT einschließt;
  • 10a10c ein Flussdiagramme, die ein Verfahren zum Testen von ein oder mehreren entfernten UUTs in Übereinstimmung mit der Erfindung darstellen.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • In Übereinstimmung mit der Erfindung verlängert ein Busverlängerer einen physikalisch begrenzten synchronen Bus um einen beliebig langen Abstand, während das natürliche Protokoll des synchronen Busses aufrecht erhalten wird. Der Busverlängerer unterstützt sowohl "Initiator" (Master) als auch "Ziel" (Slave) Operationen einer entfernten Einrichtung. Der Busverlängerer in Übereinstimmung mit der Erfindung ermöglicht, dass die entfernte Einrichtung so arbeitet, als ob die entfernte Einrichtung direkt in den Bus gesteckt wäre.
  • 4 zeigt in einer Blockdiagrammform einen Busverlängerer 400 in Übereinstimmung mit der Erfindung. Der Busverlängerer greift an einen Bus 110 (1), z.B. einem PCI Bus, über den Busverbinder 422 an. Eine Zwischenverbindung 418 ist mit dem Busverlängerer verbunden und verlängert Bussignale über einen beliebig langen Abstand zu einem entfernten Rückebenen-Verbinder 424, wo eine entfernte Buskarte in Eingriff steht. Busabschlüsse 420 schließen die Bussignale in der Nähe des entfernten Rückebenen-Verbinders 424 ab.
  • Vorzugsweise nimmt der Busverlängerer 400 die Form einer Standardbuskarte an. In der bevorzugten Ausführungsform ist der Busverlängerer 400 eine Einzelschlitz-PCI-Karte mit einer standardmäßigen PCI Größe und Form, und kann in irgendeinen verfügbaren Schlitz eines PCI Busses eingesteckt werden. Der Busverbinder 422 ist vorzugsweise ein standardmäßiger PCI Kartenverbinder und ein entfernter Rückebenen-Verbinder 424 ist vorzugsweise ein standardmäßiger PCI Rückebenen-Verbinder. Die Zwischenverbindung 418 ist typischerweise ein Kabel, obwohl eine gedruckte Schaltungsplatine, eine Flexikarte, oder irgendein anderes Mehrsignal-Leitungsmedium genauso gut arbeiten können. Vorzugsweise umfasst die Zwischenverbindung 418 Signalpfade mit gleichen Längen, und fügt eine relativ geringe Timingverschiebung zwischen den Bussignalen hinzu.
  • Wie in 4 gezeigt umfasst ein Busverlängerer 400 eine Bus-"Snooper" Schaltung 414, eine entfernte Busschnittstelle 412, und eine Aushalteschaltung 416. Die Bus-Snooper Schaltung 414 dekodiert Bustransaktionen und führt geeignete Aktivitäten aus. Die entfernte Busschnittstelle 412 sendet und empfängt Bussignale von dem Bus 110 und Rückkehrsignale von der entfernten Einrichtung. Die Aushalteschaltung 416 wartet über ein vorgegebenes Aushalteintervall, wobei sie nach dieser Zeit die Rückkehrsignale an den Bus anlegt. Das Aushalteintervall ist vorzugsweise variabel und wird auf ein Intervall gesetzt, welches ausreichend lang ist, um zu ermöglichen, dass die Rückkehrsignale den Busverlängerer erreichen und sich setzen.
  • In der bevorzugten Ausführungsform wird die entfernte Busschnittstelle 412, die Bus-Snooper Schaltung 414 und die Aushalteschaltung 416 zusammen auf einem einzelnen Feld-programmierbaren Gatterfeld (Field Programmable Gate Array, "FPGA") unter Verwendung einer 3,3 V CMOS Logik hergestellt. Ein FPGA wird zur Bequemlichkeit verwendet und ist für die Erfindung nicht wesentlich. Eine Anwendungs-spezifische integrierte Schaltung (Application-Specific Integrated Circuit, ASIC) kann ebenfalls verwendet werden sowie diskrete Komponenten oder andere Einrichtungen mit hoher Dichte. Die FPGA Implementierung unterstützt ein Betriebsverhalten mit 33 MHz und 32 Bit und stimmt mit dem PCI Version 2.2 Standard überein. Die Konstruktion ist jedoch erweiterbar, um ein PCI Betriebsverhalten mit 66 MHz und 64 Bit auf anderen Bussen zu unterstützen.
  • Optional wird ein Steuerabschnit 410 innerhalb des FPGA bereitgestellt, um mit einem ATE Controller über eine Steuerleitung 426 zu kommunizieren. Unter Verwendung der Steuerleitung 426 berichtet der Steuerabschnitt 410 Fehler an den ATE Controller und empfängt Betriebsbefehle von dem ATE Controller. Alternativ kommuniziert der Steuerabschnitt direkt mit dem Bus 110, um Fehler zu berichten und Betriebsbefehle zu empfangen. Vorzugsweise wird der Steuerabschnitt 410 jedoch weggelassen, und der Busverlängerer 400 arbeitet in einer selbstabgeschlossenen Weise, ohne dass eine explizite Steuerung von außerhalb des Busverlängerers benötigt wird. Vorzugsweise benötigt der Busverlängerer 400 eine getrennte Software nicht oder verwendet diese nicht. Z.B. benötigt der Busverlängerer seinen eigenen Einrichtungstreiber nicht.
  • Die entfernte Busschnittstelle 412 markiert sowohl die Quelle von Signalen, die an die entfernte Einrichtung gesendet werden, als auch den Empfänger von Rückkehrsignalen, die von der entfernten Einrichtung gesendet werden. Um die Bussignale über eine große Entfernung an die entfernte Einrichtung zu senden und die Lastimpedanz der Busabschlüsse 420 zu treiben, umfasst die entfernte Busschnittstelle 412 vorzugsweise Treiber mit niedriger Impedanz. Jeder Treiber mit niedriger Impedanz besteht vorzugsweise aus mehreren CMOS Gattern des parallel geschalteten FPGA. Um eine minimale Timingverschiebung zu erzielen weisen die Treiber mit niedriger Impedanz vorzugsweise eine identische Schaltungstopologie auf. CMOS Gatter werden vorzugsweise innerhalb des FPGA bereitgestellt, um die Rückkehrsignale von der entfernten Einrichtung zu empfangen und zu puffern. Durch Aufrechterhalten einer konstanten charakteristischen Impedanz der Zwischenverbindung 418 und durch Abschließen des Busses mit Busabschlüssen 420 in der Nähe der entfernten Einrichtung, wird der Busverlängerer 400 Signale ohne einen wesentlichen Umlauf oder eine wesentliche Verzerrung senden und empfangen.
  • Der Busverlängerer 400 umfasst auch eine Energieschaltschaltung 428, die mit der entfernten Busschnittstelle 412 gekoppelt ist. Die Energieschaltschaltung blockt und leitet selektiv einen Energieversorgungsstrom zwischen dem Verlängerer 400 und der entfernten Einrichtung im Ansprechen auf ein digitales "Hot-Swapp" Signal, das an einem Hot-Swapp Terminal 430 bereitgestellt wird, das in 4 gezeigt ist. Das Hot-Swapp Signal weist diskrete Zustände auf, nämlich OFFEN und GESCHLOSSEN. Während des OFFEN Zustands blockt die Energieschaltschaltung eine Energie an der entfernten Einrichtung ab. Während des GESCHLOSSEN Zustands leitet die Energieschaltschaltung Energie frei zwischen dem Busverlängerer 400 und der entfernten Einrichtung. Der Hot-Swapp Anschluss 430 kann von irgendeiner geeigneten digitalen Quelle angesteuert werden, z.B. von einem digitalen Bit an der Testerschnittstelle oder einem manuellen Schalter. Vorzugsweise nehmen auch die Treiber mit niedriger Impedanz der entfernten Busschnittstelle 412 einen hohen Impedanzzustand in Ansprechen auf eine Aktivierung des Hot-Swapp Signals an. Die Fähigkeit der Energieschaltschaltung und der Niederimpedanz-Treiber Hochimpendanzzustände einzunehmen, erlaubt der entfernten Einrichtung abgeschaltet zu werden oder sicher ausgetauscht zu werden, während der Bus 110 fortwährend arbeitet.
  • Die Implementierung der Energieschaltschaltung 428 umfasst Hochstrom-Schalteinrichtungen, vorzugsweise MOSFETs mit einem hohen Strom, die extern zu dem FPGA sind. Die Schaltungsanordung, um die Niederimpedanz-Treiber auf Hochimpedanzzustände zu treiben, residiert vorzugsweise innerhalb des FPGA. Optional kann die Energieschaltschaltung mit einer Energieablaufsteuerungs-Schaltungsanordnung ausgerüstet sein, um Energie von der entfernten Einrichtung und Übereinstimmung mit einer vorgegebenen Timingsequenz anzulegen und zu entfernen.
  • 5 zeigt die Bus-Snooper-Schaltung 414 in einer Blockdiagrammform. Die Bus-Snooper-Schaltung dekodiert Bustransaktionen und führt geeignete Aktivitäten aus. Ein Busdecoder 510 ist mit dem Bus 110 und der entfernten Busschnittstelle 412 verbunden und untersucht Bustransanktionen zwischen dem Bus und der entfernten Einrichtung. Wenn eine Transaktion ein Konfigurations-SCHREIB-Befehl an die entfernte Einrichtung ist, speichert der Busdecoder die Inhalte des SCHREIB-Befehls in einem entfernten Status 512. Wenn eine Transaktion ein Konfigurations-LESE-Befehl an die entfernte Einrichtung ist, dann informiert der Busdecoder einen Maskengenerator 516, der eine Datenmaske aufbaut, um, wenn erforderlich, Daten zu modifizieren, die von der entfernten Einrichtung zurückgelesen werden sollen. Wenn eine Transaktion eine ist, die eine schnelle Antwort erfordert, dann informiert der Busdecoder den lokalen Antwortgenerator 514, der eine geeignete schnelle Antwort erzeugt.
  • Die Bus-Snooper-Schaltung 414 speichert die Inhalte der Konfigurations-SCHREIB-Befehle, die an die entfernte Einrichtung gerichtet sind, in dem entfernten Statusspeicher 512. In der bevorzugten Ausführungsform speichert die Bus-Snooper-Schaltung 414 die Inhalte von sämtlichen SCHREIB-Befehlen in dem entfernten Statusspeicher 512 nicht. Anstelle davon speichert sie nur die Inhalte der Ziel-SCHREIB-Befehle, die an 64 bestimmte "Konfigurations-"Register der entfernten Einrichtung gerichtet sind. Die PCI Spezifikation definiert 64 Konfigurations-Register einer PCI Karte. Viele von diesen Registern müssen beschrieben werden, damit der PCI Bus arbeitet. Wie bekannt ist schreibt der PCI Bus BIOS erforderliche Werte von diesen 64 Konfigurations-Registern für jede Einrichtung, die in den Bus eingesteckt ist, jedesmal, wenn eine PCI Busrücksetzung auftritt.
  • Über der Zeit und explizit auf jede PCI Busrücksetzung hin akkumuliert der entfernte Statusspeicher 512 eine lokale Aufzeichnung von sämtlichen 64 Konfigurations-Registern für eine entfernte Einrichtung. Sobald sie gesammelt ist kann die Aufzeichnung der Konfigurations-Register an einer entfernten Einrichtung neu gespeichert werden oder an einer anderen entfernten Einrichtung gespeichert werden, um einen bekannten stabilen Zustand zu konfigurieren. Keine zusätzlichen Rücksetzungen des PCI Busses werden benötigt.
  • Register auf einer anderen PCI Karte als die 64 Konfigurations-Register (d.h. Nicht-Konfigurations-Register) sind nicht wesentlich zum Herstellen eines Busbetriebs. Wie von dem Benutzer gewünscht können Inhalte der Nicht-Konfigurations-Register an die entfernte Einrichtung kopiert werden, unter Verwendung von herkömmlichen Ziel-WRITE-Befehlen, nachdem die 64 Konfigurations-Register gespeichert worden sind. Alternativ kann ein Speicher zu dem entfernten Statusspeicher 512 hinzugefügt werden, um sämtliche Daten zu speichern, die an die entfernte Einrichtung geschrieben werden, aber der Speicher wird bei zusätzlichen Kosten bereitgestellt werden.
  • Die PCI Spezifikation unterstützt mehrere logische Einrichtungen auf einer einzelnen PCI Karte. In Übereinstimmung mit der bevorzugten Ausführungsform unterscheidet die Bus-Snooper-Schaltung 414 zwischen unterschiedlichen logischen Einrichtungen und stellt ausreichend Speicher bereit um zahlreiche logische Einrichtungen zu unterstützen.
  • In der bevorzugten Ausführungsform verwendet der Busverlängerer 400 eine Zustandsmaschine (nicht dargestellt), um die Inhalte des entfernten Statusspeichers 512 an die entfernte Einrichtung zu kopieren. Die Zustandsmaschine arbeitet vorzugsweise im Ansprechen auf das Hot-Swapp Signal und arbeitet unabhängig von dem Bus 110. Die Zustandsmaschine steuert vorzugsweise die Energieschaltschaltung 428. Wenn das Hot-Swapp Signal OFFEN ist, aktiviert die Zustandmaschine die Energieschaltschaltung 428, um Energie an der entfernten Einrichtung abzublocken. Wenn das Hot-Swapp Signal einen Zustand von OFFEN nach GESCHLOSSEN ändert, legt die Zustandsmaschine an die entfernte Einrichtung Energie an und übergibt die Inhalte des entfernten Statusspeichers 512 in die Konfigurations-Register der entfernten Einrichtung.
  • Der Betrieb der Energieschaltschaltung 428 im Zusammenhang mit der Zustandsmaschine erlaubt ein Hot-Swapping von entfernten Einrichtungen. Da ein Hot-Swapping von entfernten Einrichtungen unabhängig von dem Bus 110 arbeitet, stellt die Erfindung effektiv eine Hot-Swapping Möglichkeit für Busse bereit, die nicht direkt ein Hot-Swapping unterstützen.
  • Wie in 5 gezeigt umfasst die Bus-Snooper-Schaltung 414 eine Maskengeneratorschaltung 516. Die Maskengeneratorschaltung 516 arbeitet im Ansprechen auf einen vordefinierten Satz von Ziel-LESE-Befehlen durch Erzeugen einer Datenmaske. Der Maskengenerator 516 übergibt die Datenmaske an die Aushalteschaltung 416 und die Aushalteschaltung 416 wendet die Maske auf Rückkehrsignale an, die von der entfernten Einrichtung zurückgelesen werden, um die Rückkehrsignale zu modifizieren, wie benötigt.
  • Für Ziel-LESE-Befehle von "Nicht-Konfigurations"-Registern ist die Datenmaske transparent, d.h. sie ist angeordnet, um sämtliche Daten unverändert durchzulassen. Die Datennaske ist betreibbar, d.h. nicht transparent, nur für Ziel-LESE-Befehle von bestimmten Konfigurations-Registern. Bestimmte Konfigurations-Register speichern Daten, die Charakteristiken einer entfernten Einrichtung identifiziert, die nicht gültig sind, wenn die entfernte Einrichtung in einer verlängerten Konfiguration verwendet wird. Z.B. speichern PCI Einrichtungen Konfigurationsdaten, die eine Anzahl von Taktzyklen anzeigen, die sie benötigen, um auf eine bestimmte Transaktion zu reagieren. Die Anzahl von Taktzyklen kann in einer verlängerten Konfiguration gültig sein, da der Busverlängerer 400 in einer anderen Anzahl von Taktzyklen antworten kann, um eine Verlängererlatenz zu berücksichtigen. Unter diesen Umständen erzeugt der Maskengenerator 516 eine Datenmaske, die zum Modifizieren des ungültigen Bits oder von ungültigen Bits der Daten, die von der entfernten Einrichtung zurückgelesen werden, verwendet werden soll. Als ein anderes Beispiel zeigt ein Konfigurations-Register an, ob eine PCI Karte eine 66 MHz Kommunikation unterstützt. Die anfängliche FPGA Implementierung des Busverlängerers 400 unterstützt eine 66 MHz Kommunikation nicht. In der FPGA Ausführungsform der Erfindung erzeugt der Maskengenerator 516 eine Datenmaske, die eine negative Antwort erzwingt, um sicherzustellen, dass ein 66 MHz Betrieb nicht versucht wird.
  • Die Bus-Snooper-Schaltung 414, die in 5 gezeigt ist, umfasst auch einen lokalen Antwortgenerator 514. Der Bus-Decoder 514 identifiziert Transaktionen, die schnelle Antworten benötigen, und der lokale Antwort-Generator 514 erzeugt eine geeignete schnelle Antwort. Der lokale Antwort-Generator wird verwendet, weil verlängerte Konfigurationen eine Latenz hinzufügen, die in Bus-Spezifikationen nicht berücksichtigt wird. Wenn z.B. in Übereinstimmung mit PCI Bus-Spezifikation ein PCI Initiator eine Adresse an ein PCI Ziel sendet, dann erwartet der Businitiator, dass das Busziel innerhalb einer vorgegebenen Zeitgrenze antwortet. Der Businitiator interpretiert eine fehlende Antwort als Bedeutungsinhalt darüber, dass keine PCI Einrichtung in dem adressierten Schlitz installiert ist.
  • In einer verlängerten Konfiguration können entfernte Busziele typischerweise nicht innerhalb der zulässigen Zeit antworten. Wenn in Übereinstimmung mit der Endung die entfernte Einrichtung als ein Busziel arbeitet, gibt der lokale Antwortgenerator 514 eine Antwort an den Businitiator stellvertretend für die entfernte Einrichtung innerhalb der zulässigen Zeit ab. Die Antwort des lokalen Antwortgenerators kann das Bereitstellen von ein oder mehreren Wartezuständen auf dem Bus 110 umfassen. Analog, wenn die entfernte Einrichtung als ein Businitiator arbeitet, kann die Antwort des lokalen Antwortgenerators ein Senden von einem oder mehreren Wartezuständen an die entfernte Einrichtung stellvertretend für das lokale Busziel innerhalb der Zeit, die für eine Antwort durch PCI Spezifikation zugelassen wird, umfassen.
  • Wenn die entfernte Einrichtung als ein Businitiator arbeitet, dann legt der lokale Antwortgenerator 514 kontinuierlich Wartezustände an die entfernte Einrichtung in Erwartung eines Initiator-LESE- oder SCHREIB-Befehls von der entfernten Einrichtung an. Der Busverlängerer 400 kann nicht warten, bis er einen Initiator-LESE- oder SCHREIB-Befehl von der entfernten Einrichtung empfängt, bevor er das Bereitstellen von Wartezuständen an der entfernten Einrichtung beginnt, weil die entfernte Einrichtung die Wartezustände nicht innerhalb der Zeit für eine Antwort, die von der PCI Spezifikation zugelassen wird, empfangen kann. Wenn die entfernte Einrichtung als ein Businitiator arbeitet, stellt der lokale Antwortgenerator 514 deshalb vorzugsweise Wartezustände an der entfernten Einrichtung per Voreinstellung bereit und stoppt eine Bereitstellung von Wartezuständen nur, sobald die Initiatortransaktion abgeschlossen ist.
  • Um das Aufhängen des Busses (Bus-Hang-Up) zu vermeiden, umfasst der lokale Antwortgenerator 514 vorzugsweise einen Überwachungs-Timer (nicht dargestellt). Wenn die entfernte Einrichtung nicht eingesteckt oder nicht funktional ist, beendet der Überwachungs-Timer die Ausgabe von Wartezuständen und erlaubt, dass normale Busoperationen wieder aufgenommen werden. Die Auszeit des Überwachungs-Timers ist vorzugsweise auf einen großen Wert eingestellt, um sämtliche erwarteten normalen Verzögerungen aufzunehmen. Wenn der Busverlängerer Wartezustände von dem Busziel selbst empfängt, schaltet der Busverlängerer den Überwachungs-Timer ab, bis der Busverlängerer ein Empfangen von Wartezuständen stoppt, wobei nach dieser Zeit der Überwachungs-Timer ein Zählen beginnt.
  • Der Busverlängerer 400 umfasst auch eine Aushalte-Schaltung 416. Die Aushalte-Schaltung empfängt Rückkehrsignale von der entfernten Busschnittstelle 412 und wartet über ein vorgegebenes Zeitintervall, bevor die Rückkehrsignale an dem Bus 110 freigegeben werden.
  • Die 6 und 7 illustrieren die Aushalte-Schaltung 416 in einer Blockdiagrammdarstellung. Wie in 6 gezeigt umfasst die Aushalte-Schaltung eine Maskenschaltung 616, eine Verzögerungsschaltung 610 und eine Vezögerungsbestimmungsschaltung 612. Die Maskenschaltung 616 empfängt Rückkehrsignale von der entfernten Busschnittstelle 412 und legt die Datenmaske, die von dem Maskengenerator 516 erzeugt wird, an, um die Rückkehrsignale zu modifizieren, wie benötigt. Die Verzögerungsschaltung 610 empfängt Rückkehrsignale von der Maskenschaltung 616 und blockiert deren Durchgang an den Bus 110, bis die Verzögerungsschaltung 610 ein Hinweissignal (Strobe-Signal) 614 empfängt.
  • Wie in 7 gezeigt umfasst die Verzögerungsbestimmungsschaltung 612 einen Signalabtaster 710, ein Verzögerungsregister 712 und eine Hinweisschaltung (Strobe-Schaltung) 714. Der Signalabtaster bestimmt ein Aushalteintervall, welches sich auf die Umlaufverzögerung zwischen dem Busverlängerer 400 und der entfernten Einrichtung bezieht. Das Aushalteintervall umfasst vorzugsweise die Verzögerungszeit von Bussignalen von dem Busverlängerer 400 an die entfernte Einrichtung, die Antwortzeit der entfernten Einrichtung, und die Setzzeit von Rückkehrsignalen, die von der entfernten Einrichtung zurückkehren. Das Verzögerungsregister 712 speichert den Wert des Aushalteintervalls. Wenn der Busverlängerer 400 einen Befehl an die entfernte Einrichtung sendet, vergleicht die Hinweisschaltung 714 die abgelaufene Zeit, seitdem der Befehl gesendet wird, mit dem Aushalteintervall. Wenn die zwei Werte übereinstimmen, aktiviert die Hinweisschaltung 714 das Hinweissignal 614 und die Verzögerungsschaltung 610 gibt die Rückkehrsignale an den Bus zu dem nächsten geeigneten Punkt in dem Buszyklus frei.
  • Der Signalabtaster 710 bestimmt vorzugsweise das Aushalteintervall durch Simmulieren eines Ziel-LESE-Befehls an der entfernten Einrichtung. Der Signalabtaster misst das Zeitintervall zwischen der Ausgabe des Ziel-LESE-Befehls und der Zeit, wenn die Rückkehrsignale sich setzen. Die PCI Spezifikation bestimmt eine besondere Adresse auf PCI Karten zum Speichern einer ID eines Herstellers und einer Antwortzeit auf ein Ziel-LESEN dieser Adresse. Vorzugsweise simmuliert der Signalabtaster ein Ziel-LESEN der ID des Herstellers.
  • Der Signalabtaster 710 überwacht die Rückkehrsignale. Die Rückkehrsignale messen sämtliche "1"-en, bevor sie ankommen und sich setzen. Wenn die Antwort irgend etwas anderes als sämtliche "1"-en misst und identische Ablesungen für aufeinanderfolgende Messungen bereitstellt, dann haben sich die Rückkehrsignale gesetzt. Der Signalabtaster speichert einen Wert, der der abgelaufenen Zeit in dem Verzögerungsregister 712 entspricht. Da die Antwortzeit der entfernten Einrichtung bekannt ist (für ein Ziel-LESEN des ID Registers definiert ist), kann eine Umlaufzeit bestimmt werden, die unabhängig von der Antwortzeit der entfernten Einrichtung ist.
  • In Übereinstimmung mit einer noch anderen Alternative arbeitet der Signalabtaster 710 im Ansprechen auf tatsächliche (nicht-simmulierte) Ziel-LESEN-Befehle, und erzeugt ein neues Aushalteintervall für jeden Befehl.
  • Der Signalabtaster 710 bestimmt vorzugsweise ein optimales Aushalteintervall automatisch auf eine erste Verwendung des Busverlängerer 400 hin, unter der Anweisung einer Zustandsmaschine (die nicht dargestellt ist). Alternativ arbeitet der Signalabtaster 710 mit der Ausgabe eines externen Befehl. Das gleiche Aushalteintervall wird wiederholt für nachfolgende Kommunikationen verwendet, bis der Signalabtaster wieder einen Befehl zum Betrieb empfängt.
  • Gemäß einer noch anderen Alternative stellt die Erfindung nicht einen Signalabtaster bereit und ein Wert des Verzögerungs-Registers 712 wird während eines anfänglichen Aufbaus des Systems eingerichtet. Der Wert des Verzögerungs-Registers 712 basiert auf einer manuellen Messung oder einer Abschätzung der Umlaufverzögerung zwischen dem Busverlängerer 400 und der entfernten Einrichtung. Der Wert des Verzögerungs-Registers wird permanent eingerichtet oder kann von Zeit zu Zeit verändert werden. Experimente haben gezeigt, dass eine feste Verzögerung von zwei (2) 33 Megahertz Buszyklen (60 Nanosekunden) ausreichend ist, um eine Zwischenverbindung mit einer Länge von zehn Fuß aufzunehmen.
  • Vorzugsweise misst der Signalabtaster 710 das Aushalteintervall durch Abtasten der Rückkehrsignale bei einem Vielfachen der Busfrequenz, z.B. bei zweimal der Busfrequenz. Je höher die Abtastrate des Signalabtasters ist, desto größer ist die Genauigkeit des Aushalteintervalls und desto niedriger ist die Wahrscheinlichkeit, dass das Aushalteintervall überbewertet wird. Alternativ arbeitet der Signalabtaster 710 bei einer Abtastrate, die gleich oder kleiner als die Busfrequenz ist.
  • Es wurde hier erkannt, dass andere Verfahren zum Bestimmen, wann sich die Rückkehrsignale stabilisieren, durch die Aushalteschaltung mit erfolgreichen Ergebnissen verwendet werden könnten. Z.B. könnte die Aushalteschaltung einen Ringoszillator verwenden, um eine Oszillation in einer Schleife einzurichten, der den Busverlängerer 400 und die Zwischenverbindung 418 einschließt. Die Frequenz der Oszillation ist proportional zu der Umlaufverzögerung. Als ein anderes Beispiel könnte der Busverlängerer 400 mit einer Zeitdomänen-Reflektometer-(TDR)-Schaltung zum Messen einer Flugzeit (Ausbreitungszeit) von Signalen zwischen dem Busverlängerer 400 und dem entfernten Ende der Zwischenverbindung 418 bereitgestellt werden.
  • Die 8a und 8b sind Flussdiagramme, die die Aktivitäten beschreiben, die von dem Busverlängerer 400 beschrieben werden, der voranstehend beschrieben wurde, wenn die entfernte Einrichtung als ein Busziel (Slave) arbeitet. 8a zeigt die Busverlängereraktivitäten im Ansprechen auf einen Ziel-LESE-Befehl. 8b illustriert Busverlängereraktivitäten im Ansprechen auf eine Ziel-SCHREIB-Befehl.
  • In 8a empfängt ein Busverlängerer 400 einen Ziel-LESE-Befehl von einem Businitiator auf dem Bus 110 und die Bus-Snooper-Schaltung 414 dekodiert den Ziel-LESE-Befehl. Im Schritt 810 erzeugt der lokale Antwortgenerator 514 eine Bestätigung stellvertretend für das entfernte Busziel, dass die Zieladresse, die von dem Businitiator spezifiziert wird, gültig ist. Der lokale Antwortgenerator 514 stellt auch Wartezustände auf dem Bus 110 bereit.
  • Im Schritt 812 erzeugt der Maskengenerator 516 eine Datenmaske. Der Wert der Datenmaske ist besonders für die spezifizierte Zieladresse. Die Datenmaske ist selektiv angeordnet, um Bits von Konfigurationsdaten zu modifizieren, die von der entfernten Einrichtung zurückgelesen werden sollen, wobei diese Bits Kommunikationscharakteristiken kodieren, die nicht auf eine verlängerte Konfiguration zugreifen. Die Datenmaske ist für die Inhalte von sämtlichen Ziel-LESE-Adressen mit Ausnahme von denjenigen für Konfigurationsregister, die nicht auf die verlängerte Konfiguration angewendet werden, transparent. Vorzugsgweise umfasst der Maskengenerator 516 einen lokalen Speicher (nicht dargestellt), der Maskenwerte für Zieladressen speichert, die eine Maske benötigen.
  • Im Schritt 814 überträgt der Busverlängerer 400 Bussignale an die entfernte Einrichtung und im Schritt 816 beginnt der Busverlängerer 400 ein Herunterzählen des Aushalteintervalls. Im Schritt 818 kommen die Rückkehrsignale an den Busverlängerer 400 von der entfernten Einrichtung an und der Busverlängerer wendet die Lesemaske an, die im Schritt 812 erzeugt wird. Im Schritt 820 läuft das Aushalteintervall ab und der Busverlängerer 400 gibt die Rückkehrsignale an den Bus 110 zu einer geeigneten Phase in den Buszyklus hinein frei. Der lokale Antwortgenerator 514 hebt Wartezustände von dem Bus 110 auf, wenn das Aushalteintervall abläuft, außer wenn zusätzliche Wartezustände angefordert werden. Wenn die entfernte Einrichtung zusätzliche Wartezustände über den Ablauf des Aushalteintervalls hinaus anfordert, hängt der lokale Antwortgenerator 514 die zusätzlichen Wartezustände an den Bus 110 an.
  • Die Schritte 810 bis 816 sind in 8a so gezeigt, dass sie in einer Sequenz auftreten. Es wurde hier jedoch erkannt, dass die Sequenz von diesen Schritten verändert werden kann. Z.B. muss die Datenmaske, die im Schritt 812 erzeugt wird, nicht bereit sein, bis die Rückkehrsignale den Busverlängerer 400 erreichen. Vorzugsweise treten die Schritte 810 bis 816 gleichzeitig auf.
  • 8b zeigt die Busverlängerer-Aktivitäten im Ansprechen auf einen Ziel-SCHREIB-Befehl. Der Busverlängerer 400 empfängt einen Ziel-SCHREIB-Befehl von einem Businitiator auf dem Bus 110, und die Bus-Snooper-Schaltung 414 dekodiert den Ziel-SCHREIB-Befehl. Im Schritt 830 stellt der lokale Antworgenerator 514 Wartezustände auf dem Bus 110 innerhalb der zulässigen Zeitgrenze für eine Antwort bereit.
  • In Schritt 832 beginnt der Busverlängerer 400 ein Herunterzählen des Aushalteintervalls. Wenn der Ziel-SCHREIB-Befehl ein Konfigurations-SCHREIB-Befehl ist, d.h. ein SCHREIB-Befehl an eines der 64 "Konfigurations"-Register, speichert der Busverlängerer 400 eine lokale Kopie von Konfigurationsdaten in Schritt 834. Wenn die entfernte Einrichtung mehrere logische Einrichtungen umfasst, umfasst der Speicherschritt 834 das Speichern von Konfigurationsdaten für die lokale Einrichtung, die besonders adressiert wird.
  • In Schritt 836 überträgt der Busverlängerer 400 Signale an die entfernte Einrichtung. Sowohl "Konfigurations-" als auch "Nicht-Konfigurations-"SCHREIB-Befehle werden übertragen. Wenn das Aushalteintervall abläuft hebt der lokale Antwortgenerator 514 Wartezustände von dem Bus 110 auf, außer wenn zusätzliche Wartezustände angefordert werden. Wenn die entfernte Einrichtung zusätzliche Wartezustände nach dem Ablauf des Aushalteintervalls anfordert, dann hängt der lokale Antwortgenerator 514 die angeforderten Wartezustände an den Bus 110 an.
  • 8b zeigt Schritte 830, 832, 834 und 836 in einer Sequenz; jedoch müssen diese Schritte nicht in irgendeiner bestimmten Reihenfolge auftreten. Die Schritte 830 und 832 sind Teil eines "Snooping" ("Ergreifens") des Busses 110 und können in irgendeiner Sequenz auftreten oder können gleichzeitig auftreten. In ähnlicher Weise können die Snooping-Schritte (832 und 834) und der Schritt zum Übertragen von Signalen an die entfernte Einrichtung (836) in irgendeiner Sequenz auftreten oder können gleichzeitig auftreten.
  • Die 8c und 8d sind Flussdiagramme, die die Aktivitäten beschreiben, die von dem Busverlängerer 400 ausgeführt werden, der voranstehend beschrieben wurde, wenn die entfernte Einrichtung als ein Businitiator (Master) arbeitet. 8c zeigt die Aktivitäten im Ansprechen auf einen Initiator-LESE-Befehl, der von der entfernten Einrichtung erzeugt wird. 8d zeigt Aktivitäten im Ansprechen auf einen Initiator-SCHREIB-Befehl, der von der entfernten Einrichtung erzeugt wird.
  • Wie in 8c gezeigt stellt der Busverlängerer 400 vorher Wartezustände an der entfernten Einrichtung im Schritt 850 bereit. Im Gegensatz zu dem Ziel-LESEN-Fall der 8a, bei dem der Busverlängerer 400 lokal zu dem Businitiator ist (d.h. der Busverlängerer und der Businitiator sind in dem gleichen Bus 110 eingesteckt), gibt es hier keine Einrichtung, die zu dem Businitiator "lokal" ist. Der Businitiator ist die entfernte Einrichtung und kann im Allgemeinen eine Antwort von einem Busziel innerhalb der zulässigen Zeit für eine Antwort, die von der PCI Spezifikation eingestellt wird, nicht empfangen. Vorzugsweise gibt der lokale Antwortgenerator 514 deshalb Wartezustände an der entfernten Einrichtung kontinuierlich, per Voreinstellung, immer dann vor, wenn der Busverlängerer erfasst, dass die entfernte Karte gerade als ein Businitiator arbeitet. Der Verlängerer hebt die Wartezustände nur im Ansprechen auf ein Initiator-LESEN auf, sobald er eine tatsächliche Antwort von dem Busziel empfängt.
  • Der Busverlängerer 400 überwacht konstant Rückkehrsignale, um eine Businitiatoraktivität von der entfernten Einrichtung zu erfassen. Im Schritt 852 erfasst der Busverlängerer eine Änderung in den Rückkehrsignalen. Um Fehler zu vermeiden wartet der Busverlängerer ein vorgegebenes Zeitintervall, welches ausreicht, damit sich die Rückkehrsignale setzen, bevor die Rückkehrsignale an dem Bus 110 freigegeben werden. In einer Ausführungsform ist dieses Zeitintervall das Aushalteintervall, das voranstehend beschrieben wurde, und der Busverlängerer beginnt ein Zählen des Aushalteintervalls im Schritt 854. Das Aushalteintervall umfasst jedoch sämtliche Umlaufverzögerungen und ist somit nicht mehr notwendig. Alternativ wartet der Busverlängerer eine Zeitperiode, die kürzer als das Aushalteintervall ist, aber ausreichend lang, damit den Rückkehrsignalen erlaubt wird sich zu setzen. Nachdem das vorgegebene Zeitintervall abläuft gibt der Busverlängerer 400 die Rückkehrsignale an den Bus 110 (Schritt 856) zu den nächsten geeigneten Punkt in dem Buszyklus.
  • Die Rückkehrsignale, die in Schritt 856 freigegeben werden, kodieren den Initiator-LESE-Befehl von der entfernten Einrichtung. Sobald sie bereitgestellt werden wartet der Busverlängerer 40 auf eine Antwort von dem Busziel. Wenn der Busverlängerer Daten (gelesene Werte) von dem Busziel empfängt, dann hebt der Busverlängerer Wartezustände auf (Schritt 858) und sendet die Ergebnisse des Lesebefehls an die entfernte Einrichtung (860). Wenn der Busverlängerer 400 einen oder mehrere Wartezustände von dem Busziel empfängt, setzt der Busverlängerer eine Bereitstellung von Wartezuständen an der entfernten Einrichtung fort, bis der Busverlängerer ein Empfangen von Wartezuständen von dem Busziel stoppt. Der Busverlängerer 400 sendet die Daten an die entfernte Einrichtung, wenn die Daten ankommen.
  • 8d illustriert die Busverlängereraktivitäten im Ansprechen auf einen Initiator-SCHREIBEN-Befehl von der entfernten Einrichtung. Wie voranstehend beschrieben stellt der Busverlängerer kontinuierlich Wartezustände an der entfernten Einrichtung bereit, immer dann, wenn der Busverlängerer erfasst, dass die entfernte Einrichtung als ein Businitiator arbeitet (Schritt 870). Der Busverlängerer 400 überwacht konstant Rückkehrsignale, um einen Initiator-LESEN oder SCHREIBEN-Befehl von der entfernten Einrichtung zu erfassen. Im Schritt 872 erfasst der Busverlängerer eine Änderung in den Rückkehrsignalen. Wie zuvor wartet der Busverlängerer ein vorgegebenes Zeitintervall, damit sich die Rückkehrsignale setzen, bevor die Rückkehrsignale an dem Bus 110 freigegeben werden. In einer Ausführungsform ist dieses Zeitintervall das Aushalteintervall, welches voranstehend beschrieben wurde, und der Busverlängerer beginnt ein Zählen des Aushalteintervalls im Schritt 874. Alternativ wartet der Busverlängerer eine Zeitperiode die kürzer als das Aushalteintervall ist, aber ausreichend lang, um den Rückkehrsignalen zu erlauben, sich zu setzen. Nachdem das vorgegebene Zeitintervall abläuft gibt der Busverlängerer 400 die Rückkehrsignale an den Bus 110 (Schritt 876), zu dem nächsten geeigneten Punkt in dem Buszyklus.
  • Die Rückkehrsignale kodieren den Initiator-SCHREIBEN-Befehl von der entfernten Einrichtung. Wenn das Busziel Wartezustände im Ansprechen auf den SCHREIBEN-Befehl nicht erzeugt, dann hebt der lokale Antwortgenerator 514 Wartezustände an der entfernten Einrichtung auf, im Schritt 878. Wenn das Busziel in der Tat Wartezustände bereitstellt, dann wartet der lokale Antwortgenerator 514, dass das Ziel Wartezustände aufhebt, bis er Wartezustände an der entfernten Einrichtung aufhebt.
  • 9 illustriert ein Testsystem 900 zum Testen einer entfernten UUT, die den Busverlängerer 400 in Übereinstimmung mit der Erfindung verwendet. 10 zeigt Prozesse zum Testen von entfernten UUTs unter Verwendung des Testsystems der 9. Der Busverlängerer 400 verhindert, dass Fehler, die auf UUT auftreten, sich an den Bus 110 ausbreiten und unterstützt deshalb eine Fehlerisolation des Testsystems 900.
  • Wie in 9 gezeigt wird der Busverlängerer 400 in den Bus 110 eingesteckt. Die Zwischenverbindung 418 ist mit dem Busverlängerer 400 verbunden und erstreckt sich an eine entfernte UUT 918. Eine zusätzliche Buseinrichtung 912 kann ebenfalls in den Bus 110 gesteckt sein. Optional umfasst das Testsystem einen ATE Controller 920, der über eine optionale Steuerleitung 426 mit dem Busverlängerer 400 verbunden ist.
  • Das Testsystem 900 arbeitet als eine erste UUT, wie im Schritt 1010 der 10a gezeigt. Wenn die erste UUT arbeitet, "snoopt" ("ergreift") der Busverlängerer 400 Daten, die an die erste UUT geschrieben werden, und speichert gesnoopte (ergriffene) Konfigurationsdaten in einem lokalen Speicher (Schritt 1012). Ein Fehler kann auftreten, wenn das Testsystem die erste UUT betreibt. Der Busverlängerer 400 fängt den Fehler ein und erlaubt nicht, dass sich der Fehler an den Bus 110 ausbreitet. In Übereinstimmung mit einer optionalen Ausführungsform informiert der Busverlängerer 400 den ATE Controller 920 über den Fehler durch die Steuerleitung 426. In Übereinstimmung mit einer anderen optionalen Ausführungsform informiert der Busverlängerer 400 einen Hostcomputer, in dem der Bus 110 installiert ist, über den Fehler direkt über den Bus 110. Im Schritt 1018 wird eine Energie von der ersten UUT durch Aktivieren der Energieschaltschaltung 428 entfernt. Wie voranstehend beschrieben wird die Energieschaltschaltung vorzugsweise aktiviert, wenn der Benutzer oder ein Testprogramm einen OFFENEN Pegel an den Hot-Swapp-Anschluss 430 anlegt. Vorzugsweise konfiguriert eine Aktivierung des Hot-Swapp-Signals an dem Hot-Swapp-Anschluss 430 auch die Niederimpedanztreiber innerhalb des Busverlängerers 400 auf Hochimpedanzzustände. Schritt 1018 kann optional eine Energie an der ersten UUT in Übereinstimmung mit einer vorgegebenen Timingsequenz abblocken.
  • Im Schritt 1020 (10b), wird die erste UUT 918 durch eine zweite UUT des gleichen Typs wie die erste UUT ersetzt. Ein Benutzer kann UUT manuell ersetzen oder ein spezialisiertes Behandlungsgerät in der Nähe der Testerschnittstelle kann die UUT automatisch ersetzen. Im Schritt 1022 legt der Busverlängerer Energie an die zweite UUT an, vorzugsweise im Ansprechen auf eine Aktivierung des Hot-Swapp-Signals. Optional legt der Schritt 1022 Energie an die zweite UUT in Übereinstimmung mit einer vorgegebenen Timingsequenz an. Sobald Energie an der zweiten UUT eingerichtet ist, kopiert der Busverlängerer die Inhalte seines lokalen Speichers an die zweite UUT im Schritt 1024. Wenn die erste und zweite UUT beide von dem gleichen Typ sind, sind die Konfigurationsdaten, die in dem lokalen Speicher über die erste UUT gespeichert sind, gültig für die zweite UUT. Im Schritt 1026 bearbeitet das Testsystem die zweite UUT über den Busverlängerer 400. Der Busverlängerer 400 erlaubt somit, dass die ersten und zweiten UUTs mit Energie zyklisch durchlaufen und ausgetauscht werden, ohne die Notwendigkeit, den Bus 110 energiemäßig zyklisch zu durchlaufen oder zurückzusetzen.
  • 10c zeigt, wie das Testsystem 900 sich von einem Fehler auf der ersten UUT erholt. Energie wird an der ersten UUT im Schritt 1030 wieder hergestellt. Im Schritt 1032 kopiert der Busverlängerer die Konfigurationsdaten, die in seinem lokalen Speicher gespeichert sind, an die erste UUT im Schritt 1034, wodurch die Konfigurations-Register der ersten UUT wieder hergestellt werden. Das Testsystem 900 nimmt Testoperationen im Schritt 1036 wieder auf. Kein energiemäßiges zyklisches Durchlaufen oder Zurücksetzen des Busses 110 wird benötigt.
  • Nachdem eine Ausführungsform beschrieben worden ist, können zahlreiche alternativen Ausführungsformen oder Veränderungen durchgeführt werden. Z.B. kann der Busverlängerer 400 direkt in einen Bus eingebaut werden und muss nicht als eine Buskarte implementiert werden. Die bevorzugte Ausführungsform ist auf den PCI Bus gerichtet; jedoch kann der Busverlängerer in Übereinstimmung mit der Erfindung als irgendein synchroner Bus implementiert werden, z.B. als ein Cardbus oder AGP.
  • Zahlreiche Busverlängerer werden auf einem einzelnen Bus bereitgestellt, um zahlreiche Buskarten an entfernte Orte zu verlängern. Der Busverlängerer 400 kann in einer Vielzahl von Anwendungen verwendet werden. Ingenieure und Techniker müssen häufig Buskarten bei der tatsächlichen Verwendung beobachten. Strikte Begrenzungen auf die Buslänge verhindern die Verwendung von "Verlängererkarten", d.h., Karten die Bussignale aus der Ebene des Busses herausleiten, um einen Zugriff auf die Vorderseite und Rückseite der Buskarte bereitzustellen. Der Busverlängerer 400 kann in dieser Situation verwendet werden, um eine Buskarte an eine geeignete Debugging-Stelle zu verlängern, ohne Bustiminganforderungen zu verletzen. Die Erfindung kann auch in Computerspeichern nützlich sein, wo die Erfindung verwendet werden kann, um Operationen mit unterschiedlichen Buskarten zu demonstrieren. Die Erfindung erlaubt, dass Buskarten, für einen Verbrauchervergleich, leicht ausgetauscht werden, und zwar ohne Speicherpersonal zu benötigen, um die Abdeckung eines Computers zu entfernen, ihn herunterzufahren und den Computer neu zu booten, sobald eine neue Karte an der Stelle ist.
  • Durchschnittsfachleute in dem technischen Gebiet werden verstehen, dass Hinzufügungen, Streichungen und Modifikationen an den bevorzugten Ausführungsformen durchgeführt werden können, die hier beschrieben wurden, ohne von dem Umfang der beigefügten Ansprüche abzuweichen.

Claims (15)

  1. Verfahren zum Verlängern eines synchronen Busses (110) unter Verwendung eines Busverlängerers (400), der physikalisch an dem synchronen Bus (110) eingreift, wobei der Busverlängerer (400) eine Verlängerereinrichtung und eine Zwischenverbindung (418) umfasst, wobei das Verfahren die folgenden Schritte umfasst: Bereitstellen einer Verlängerereinrichtung und physikalisches Eingreifen der Verlängerereinrichtung an dem synchronen Bus (110) und Bereitstellen einer Zwischenverbindung (418) und Verbinden der Verlängerereinrichtung mit einer entfernten Einrichtung über die Zwischenverbindung, wobei die Zwischenverbindung (418) eine beliebig lange Länge aufweist; Empfangen einer Vielzahl von Bussignalen an der Verlängerereinrichtung von dem synchronen Bus (110) und Führen der Vielzahl von Bussignalen an die entfernte Einrichtung über die Zwischenverbindung (418); Empfangen von Rückkehrsignalen an der Verlängerereinrichtung von der entfernten Einrichtung über die Zwischenverbindung (418), wobei die Rückkehrsignale eine Setzzeit aufweisen, die sich in Bezug auf die Länge der Zwischenverbindung (418) verändert; Einrichten eines Aushalteintervalls mit Hilfe der Verlängerereinrichtung, wobei das Aushalteintervall wenigstens so lange wie die Setzzeit der Rückkehrsignale ist; und Anlegen der Rückkehrsignale von der Verlängerereinrichtung an den synchronen Bus (110), nachdem das Aushalteintervall abläuft.
  2. Verfahren nach Anspruch 1, wobei der Schritt zum Einrichten des Aushalteintervalls die folgenden Schritte umfasst: Aktivieren der entfernten Einrichtung, um Rückkehrsignale zum Erzeugen, mit Hilfe der Verlängerereinrichtung; und Zählen einer Anzahl von Abtasttakten, bis die Rückkehrsignale sich setzen, mit Hilfe der Verlängerereinrichtung.
  3. Verfahren nach Anspruch 2, wobei der Schritt zum Aktivieren der entfernten Einrichtung, um Rückkehrsignale zu erzeugen, das Ausgeben eines LESEN-Befehls an die entfernte Einrichtung umfasst.
  4. Verfahren nach Anspruch 1, wobei der Schritt zum Einrichten des Aushalteintervalls ein Einstellen des Aushalteintervalls auf ein Standardintervall, welches lang genug ist, um einen Bereich von Zwischenverbindungslängen aufzunehmen, umfasst.
  5. Verfahren nach Anspruch 1, ferner umfassend die folgenden Schritte: Überwachen des synchronen Busses (110), um eine Transaktion mit der entfernten Einrichtung zu erfassen, mit Hilfe der Verlängereinrichtung; und Speichern der Transaktion mit der entfernten Einrichtung, mit Hilfe der Verlängerereinrichtung.
  6. Verfahren nach Anspruch 5, wobei die Transaktion, die in dem Überwachungsschritt erfasst wird, ein SCHREIBEN-Befehl an die entfernte Einrichtung ist, und der Schritt zum Speichern der Transaktion ein Aufbauen einer Aufzeichnung, die eine Konfiguration der entfernten Einrichtung anzeigt, einschließt.
  7. Verfahren nach Anspruch 6, wobei die entfernte Einrichtung eine erste entfernte Einrichtung ist, und ferner umfassend den folgenden Schritt: Wiederherstellen der Aufzeichnung, die die Konfiguration der entfernten Einrichtung anzeigt, auf die erste entfernte Einrichtung oder eine zweite entfernte Einrichtung, um für einen Betrieb die erste entfernte Einrichtung oder die zweite entfernte Einrichtung vorzukonditionieren.
  8. Verfahren nach Anspruch 5, wobei der Schritt zum Überwachen des synchronen Busses (110) ein Erfassen eines Zustands auf dem synchronen Bus (110), auf den eine schnelle Antwort benötigt wird, und ein Anlegen einer schnellen Antwort, um den Zustand stellvertretend für die entfernte Einrichtung zu erfüllen, einschließt.
  9. Verfahren nach Anspruch 1, ferner umfassend ein gesteuertes Anlegen und Entfernen von Energie an die entfernte Einrichtung.
  10. Busverlängerer (400) zum Verlängern eines synchronen Busses (110), um das Testen von synchronen Buskarten zu erleichtern, umfassend: eine Verlängereinrichtung, die bei der Verwendung mit dem synchronen Bus (110) gekoppelt wird; und eine Zwischenverbindung (418), die mit der Verlängerereinrichtung gekoppelt ist und sich über eine Länge zu einem Verbinder erstreckt, der bei der Verwendung angeordnet ist, um an einer Einheit, die gerade getestet wird (UUT), anzugreifen, dadurch gekennzeichnet, dass die Verlängereinrichtung eine Aushalteschaltung (416) einschließt, die mit der Zwischenverbindung (418) und dem synchronen Bus (110) gekoppelt ist, wobei die Aushalteschaltung (416) einschließt: ein Verzögerungsregister zum Speichern eines Aushalteintervalls auf Grundlage der Länge der Zwischenverbindung (418); und eine Verzögerungsschaltung (610), um zu verhindern, dass Rückkehrsignale, die von der Einheit, die gerade getestet wird (UUT), ankommen, auf den synchronen Bus (110) bereitgestellt werden, bis das Aushalteintervall abläuft.
  11. Busverlängerer (400) nach Anspruch 10, wobei die Aushalteschaltung (416) eine Verzögerungsbestimmungsschaltung (612) einschließt, umfassend: einen Signalabtaster (710), der mit der Zwischenverbindung (418) gekoppelt ist und die Rückkehrsignale abtastet, um eine Anzahl von Abtasttakten zu bestimmen, die für die Rückkehrsignale zum Setzen benötigt werden, und das Ergebnis in dem Verzögerungsregister speichert; und eine Hinweis-Schaltung (714), die mit dem Verzögerungsregister und der Verzögerungsschaltung gekoppelt ist und wartet, bis die Anzahl von Abtasttakten, die in dem Verzögerungsregister gespeichert sind, ablaufen, und die Verzögerungsschaltung (610) zur Freigabe der Rückkehrsignale an den synchronen Bus (110) aktiviert.
  12. Busverlängerer (400) nach Anspruch 10, wobei die Verlängereinrichtung ferner eine Bus-Snooper-Schaltung (414) umfasst, wobei die Bus-Snooper-Schaltung umfasst: einen Busdecoder (510), der mit dem synchronen Bus (110) gekoppelt ist und eine Transaktion mit der UUT erfasst; und einen entfernten Statusspeicher (512), der mit dem Busdecoder (510) und der entfernten Busschnittstelle (412) gekoppelt ist und die Transaktion mit der UUT speichert.
  13. Busverlängerer (400) nach Anspruch 10, wobei die Transaktion, die von dem Busdecoder (510) erfasst wird, ein SCHREIBEN-Befehl an die UUT ist, und der entfernte Statusspeicher (512) eine Aufzeichnung, die einen Status des UUT anzeigt, speichert.
  14. Busverlängerer (400) nach Anspruch 13, wobei die UUT eine erste UUT ist, und die Verlängerereinrichtung konstruiert und angeordnet ist, um die Aufzeichnung für die erste UUT an eine zweite UUT zu kopieren, um die zweite UUT für einen Betrieb vorzukonditionieren.
  15. Busverlängerer (400) nach Anspruch 12, ferner umfassend einen lokalen Antwortgenerator (514), der mit dem synchronen Bus (110) gekoppelt ist und einen Zustand auf dem synchronen Bus (110), auf den eine schnelle Antwort benötigt wird, erfasst und eine schnelle Antwort anlegt, um den Zustand zu erfüllen.
DE60005528T 1999-07-15 2000-07-10 Willkürliche längenerweiterung eines synchronen busses mit originalem busprotokoll Expired - Lifetime DE60005528T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US354137 1999-07-15
US09/354,137 US6507920B1 (en) 1999-07-15 1999-07-15 Extending synchronous busses by arbitrary lengths using native bus protocol
PCT/US2000/018726 WO2001006369A1 (en) 1999-07-15 2000-07-10 Extending synchronous busses by arbitrary lengths using native bus protocol

Publications (2)

Publication Number Publication Date
DE60005528D1 DE60005528D1 (de) 2003-10-30
DE60005528T2 true DE60005528T2 (de) 2004-07-08

Family

ID=23392018

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60005528T Expired - Lifetime DE60005528T2 (de) 1999-07-15 2000-07-10 Willkürliche längenerweiterung eines synchronen busses mit originalem busprotokoll

Country Status (10)

Country Link
US (1) US6507920B1 (de)
EP (1) EP1200895B1 (de)
JP (1) JP4272833B2 (de)
KR (1) KR100684130B1 (de)
AU (1) AU775255B2 (de)
CA (1) CA2379694C (de)
DE (1) DE60005528T2 (de)
HK (1) HK1044386A1 (de)
IL (1) IL147616A0 (de)
WO (1) WO2001006369A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769035B1 (en) * 2000-04-07 2004-07-27 Infineon Technologies North America Corp. Same single board computer system operable as a system master and a bus target
JP2006330945A (ja) * 2005-05-25 2006-12-07 Matsushita Electric Ind Co Ltd デバイスの遠隔監視・修復システム
US8745337B2 (en) * 2007-12-31 2014-06-03 Teradyne, Inc. Apparatus and method for controlling memory overrun
KR101520055B1 (ko) * 2013-07-31 2015-05-19 에스케이하이닉스 주식회사 프로그래머블 로직을 이용한 메모리 테스트 왕복 시간 계산 장치
TWI525451B (zh) * 2014-07-21 2016-03-11 緯創資通股份有限公司 儲存系統及其資料傳輸方法
KR102392844B1 (ko) 2017-03-10 2022-05-03 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 저장 장치
US11169203B1 (en) 2018-09-26 2021-11-09 Teradyne, Inc. Determining a configuration of a test system
US11461222B2 (en) 2020-04-16 2022-10-04 Teradyne, Inc. Determining the complexity of a test program
KR102563047B1 (ko) * 2021-09-14 2023-08-04 테크위드유 주식회사 효율적 채널 제어를 지원하는 프로브카드 용 pmic와 신호용 스위치 ic
KR102835577B1 (ko) * 2021-10-14 2025-07-16 삼성전자주식회사 테스트 장치, 테스트 장치의 동작 방법 및 반도체 장치 테스트 시스템

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US772134A (en) 1899-12-27 1904-10-11 Everett D Chadwick Dry-pipe valve.
US2187315A (en) 1938-11-23 1940-01-16 Gerald G Greulich Bearing pile construction
US4718064A (en) * 1986-02-28 1988-01-05 Western Digital Corporation Automatic test system
JPH0624846A (ja) 1992-07-08 1994-02-01 Sumitomo Electric Ind Ltd 炭素繊維強化炭素複合材料の製造方法
JP3608804B2 (ja) * 1993-05-14 2005-01-12 株式会社ソニー・コンピュータエンタテインメント バス制御装置
US5507029A (en) * 1995-01-11 1996-04-09 International Business Machines Corporation Method for minimizing the time skew of electrical signals in very large scale integrated circuits
TW299404B (en) * 1995-11-02 1997-03-01 Ibm Adapter card slot isolation for hot plugging
US5893135A (en) * 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US5793987A (en) * 1996-04-18 1998-08-11 Cisco Systems, Inc. Hot plug port adapter with separate PCI local bus and auxiliary bus
US5857083A (en) 1996-06-07 1999-01-05 Yamaha Corporation Bus interfacing device for interfacing a secondary peripheral bus with a system having a host CPU and a primary peripheral bus
US5991844A (en) * 1998-04-17 1999-11-23 Adaptec, Inc. Redundant bus bridge systems and methods using selectively synchronized clock signals
US6070214A (en) 1998-08-06 2000-05-30 Mobility Electronics, Inc. Serially linked bus bridge for expanding access over a first bus to a second bus

Also Published As

Publication number Publication date
HK1044386A1 (zh) 2002-10-18
KR100684130B1 (ko) 2007-02-16
EP1200895B1 (de) 2003-09-24
AU5924300A (en) 2001-02-05
KR20020015375A (ko) 2002-02-27
AU775255B2 (en) 2004-07-22
WO2001006369A1 (en) 2001-01-25
US6507920B1 (en) 2003-01-14
CA2379694A1 (en) 2001-01-25
JP4272833B2 (ja) 2009-06-03
EP1200895A1 (de) 2002-05-02
CA2379694C (en) 2007-02-13
DE60005528D1 (de) 2003-10-30
IL147616A0 (en) 2002-08-14
JP2003505761A (ja) 2003-02-12

Similar Documents

Publication Publication Date Title
DE69729889T2 (de) Verfahren und system zum ermöglichen einer unterbrechungsfreien einsetzung und entfernung von erweiterungskarten in einem unterspannungrechnersystem
DE60031499T2 (de) Verfahren zur Übertragung von Signalen der Typen "fibre-channel" und "non-fibre-channel" über ein gemeinsames Kabel
DE69316755T2 (de) Fehlertolerantes rechnersystem.
DE102007052840B4 (de) Vorrichtung und Verfahren zum Umschalten einer Vorrichtung in einen Leistungssparmodus
DE69705813T2 (de) Diagnosesystem und Verfahren bei einer integrierten Halbleiterschaltung
DE69321663T2 (de) Hierarchisches Verbindungsverfahren, -gerät und -protokoll
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE69832015T2 (de) Halbleiterspeicher mit einer verbesserten Prüfschaltung
DE69033482T2 (de) Steuerungssystem für Systembus
DE69802977T2 (de) Steuervorrichtung einer Auslösesignalreihenfolge
DE102009054701B4 (de) Detektion von und Regeneration von einem elektrischen-schnellen-Störsignal/Burst (EFT/B) auf einem Universal Serial Bus-(USB)-Gerät
DE19831761A1 (de) Prüfung einer integrierten Schaltungsvorrichtung während der Anbringung an einer Leiterplatte
DE60005528T2 (de) Willkürliche längenerweiterung eines synchronen busses mit originalem busprotokoll
DE102007012054B4 (de) Mehrmasterverkettungszweidrahtseriellbus
DE112007003069T5 (de) Mit Hochgeschwindigkeit arbeitende, aufgefächerte Systemarchitektur und Eingabe/Ausgabe-Schaltungen für nicht flüchtigen Speicher
DE4313190B4 (de) Vorrichtung und Verfahren zur Initialisierung einer Datenschnittstelle für eine programmierbare Steuerung
EP0126785B1 (de) Prüf- und Diagnoseeinrichtung für Digitalrechner
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
WO2016037943A1 (de) Modulares computersystem und servermodul
DE10162507A1 (de) Überwachungsschaltung
DE602004006236T2 (de) Testen von elektronischen schaltungen
DE69031676T2 (de) Architektur des Abtastpfads eines Systems
DE69212284T2 (de) Vorrichtung zur Benutzung von Fehlerinformationen eines Einzel- oder Mehrrechnersystems eines Flugzeuges
DE60015939T2 (de) Verfahren und schaltung um an zwei enden getakten daten zu empfangen
DE2842603C3 (de) Schnittstelle zwischen einem Wartungsprozessor und einer Mehrzahl einzeln zu prüfender Funktionseinheiten eines datenverarbeitenden Systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition