DE69333798T2 - Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen - Google Patents

Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen Download PDF

Info

Publication number
DE69333798T2
DE69333798T2 DE69333798T DE69333798T DE69333798T2 DE 69333798 T2 DE69333798 T2 DE 69333798T2 DE 69333798 T DE69333798 T DE 69333798T DE 69333798 T DE69333798 T DE 69333798T DE 69333798 T2 DE69333798 T2 DE 69333798T2
Authority
DE
Germany
Prior art keywords
node
bus
nodes
signal
root
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
DE69333798T
Other languages
English (en)
Other versions
DE69333798D1 (de
Inventor
Florin Oprescu
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.)
Apple Inc
Original Assignee
Apple Computer 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 Apple Computer Inc filed Critical Apple Computer Inc
Application granted granted Critical
Publication of DE69333798D1 publication Critical patent/DE69333798D1/de
Publication of DE69333798T2 publication Critical patent/DE69333798T2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40078Bus configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/37Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40084Bus arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Description

  • HINTERGRUND DER ERFINDUNG
  • Zugehörige Anmeldungen
  • Diese Anmeldung bezieht sich auf das US-Patent Nr. 5,394,556 „Ein Verfahren und eine Einrichtung für eine eindeutige Adresszuweisung, eine Knoten-Selbstidentifikation und eine Topologieabbildung für einen gerichteten azyklischen Graphen".
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Computersysteme. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren zur Bildung und Verwendung eines Kommunikationsschemas zwischen einer Mehrzahl von beliebig zusammengestellten Elementen eines Computersystems.
  • Hintergrund
  • Komponenten in einem gegebenen Computersystem benötigen die Fähigkeit, untereinander Signale zu übermitteln. In sehr einfachen Systemen ist es möglich, jedes Element des Systems direkt mit allen anderen Teilen des Systems zu verdrahten. Um Computer erweiterbar auszuführen und eine unbekannte Anzahl von Systemteilen aufzunehmen, haben jedoch Computerarchitekten tatsächlich vor langer Zeit das Konzept eines Kommunikationsbusses entwickelt.
  • Ein Bus ist ein Kommunikationspfad, wie zum Beispiel ein durch das Computersystem laufender Draht oder Drähte. Jede Komponente des Systems muss nur an den Bus angeschlossen werden, um theoretisch mit jeder anderen Komponente im System verbunden zu sein. Natürlich kann nicht jede Komponente gleichzeitig mit anderen Komponenten kommunizieren, da es nur einen einzigen Kommunikationskanal zwischen den Komponenten geben kann. Bei Verwendung eines Kommunikationsbusses ist die Bildung irgendeiner Art Zugriffsanordnung erforderlich, so dass jede Komponente den Bus zur Kommunikation mit anderen Komponenten in einer effizienten Art und Weise verwenden kann, bei der entscheidende Informationen von einer Komponente nicht blockiert werden, die auf einen Buszugriff wartet. Das Verfahren, bei dem sich Komponenten auf dem Bus den Bus teilen, wird allgemein als ein Busarbitrierungsschema bezeichnet.
  • Eine Ausführung eines Arbitrierungsschemas ist in der 11-ten International Conference on Distributed Computing Systems, Arlington, Texas, USA, Mai 1991, mit dem Titel „A Dag-Based Algorithm for Distributed Mutual Exclusion" von M. L. Nelson und M. Mizumo beschrieben. Das beschriebene Schema basiert auf einem Token [Zuordnungsmarkierung]-basierten verteilten wechselseitigen Algorithmus, der ein vollständig verbundenes Netzwerk und ein als ein gerichteter azyklischer Graph strukturiertes logisches Netzwerk voraussetzt.
  • Zusätzlich zu der entscheidenden Notwendigkeit einer Optimierung des Busarbitrierungsschemas für eine Maximierung des Durchflusses wichtiger Informationen kann und sollte die physikalische (und logische/elektrische) Konfiguration des Busses selbst für eine Minimierung von Systemverzögerungen optimiert werden und gleichzeitig so flexibel wie möglich bleiben.
  • Um mit anderen, an einem Bus angeschlossenen Komponenten zu kommunizieren, muss jede Komponente mit Hardware ausgerüstet sein, wie zum Beispiel mit einer mit dem für den Bus implementierten Kommunikationsprotokoll kompatiblen Sende- und Empfangsschaltung. Ein derartiger Kommunikationsstandard ist im IEEE Standard-Dokument P1394 mit dem Titel „High Performance Serial Bus" beschrieben. Das genannte Dokument ist diesem Dokument als Anhang A beigefügt. Der in P1394 beschriebene Standard ist für eine Bereitstellung einer preiswerten Verbindung zwischen Karten auf der gleichen Bus-Leiterplatte, Karten auf anderen Bus-Leiterplatten und externen Peripherieeinrichtungen bestimmt.
  • Busse und Netzwerke des Standes der Technik erforderten die Kenntnis, was wo angeschlossen wurde. Die Rückseite vieler Computer weist zum Beispiel festgelegte Ports für bestimmte Peripherieeinrichtungen auf. Einige Computer führen mehrere Busse aus, wie zum Beispiel der Macintosh, der einen als ADB bezeichneten Bus für Komponenten wie eine Maus und eine Tastatur und einen SCSI-Bus für andere Peripherieeinrichtungen verwendet. Diese Bus-Arten stellen eine Verkettung von Elementen bereit. Die Verbindungen weisen jedoch eine begrenzte Topologie auf. Andere bekannte Busse/Netzwerke erfordern, dass die Knoten des Netzwerks in einem Ring angeordnet sind, eine Schleife, die zur Wirksamkeit geschlossen sein muss. Letztendlich erfordern Stern- oder Speichen[Hub-and-Spoke]-Anordnungen, dass jeder Knoten direkt mit einer zentralen Haupteinrichtung [Master] verbunden wird. Jedem der Systeme des Standes der Technik fehlt ein erwünschtes Maß an Flexibilität.
  • Es wäre wünschenswert in der Lage zu sein und ist deshalb eine Aufgabe der vorliegenden Erfindung, Elemente eines Computersystems auf einem Bus beliebig zusammenzustellen, wobei durch das System die beliebige Topologie in ein funktionierendes System aufgetrennt werden kann, ohne eine vorgegebene Anordnung von Komponenten zu erfordern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In einem Ausführungsbeispiel wird ein Verfahren für eine faire Buszugriffsarbitrierung gemäß Anspruch 1 beschrieben. In einem weiteren Ausführungsbeispiel wird ein Verfahren für eine faire Busarbitrierung gemäß Anspruch 11 beschrieben. In einem weiteren Ausführungsbeispiel wird ein Verfahren einer einen Token weiterleitenden Buszugriffsarbitrierung gemäß Anspruch 13 beschrieben. In einem weiteren Ausführungsbeispiel wird ein Verfahren der preemptiven Businitialisierung gemäß Anspruch 14 beschrieben.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein faires Buszugriffsarbitrierungsschema für einen Computersystembus oder ein Netzwerk bereitzustellen, in dem die Verbindungen der Knoten in einen azyklischen gerichteten Graphen aufgelöst wurden.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung ein Verfahren einer einen Token weiterleitenden Busarbitrierung für einen Computersystembus oder ein Netzwerk bereitzustellen, in dem die Verbindungen der Knoten in einen azyklischen gerichteten Graphen aufgelöst wurden.
  • Es ist noch eine weitere Aufgabe der vorliegenden Erfindung einen Mechanismus bereitzustellen, mit dem eine preemptive Businitialisierung durch jeden Knoten in einem Netzwerk von Knoten getriggert [ausgelöst] werden kann, die in einen azyklischen gerichteten Graphen aufgelöst werden, wenn Fehler erkannt oder Knoten während des Betriebes hinzugefügt oder entfernt werden.
  • Diese und andere Aufgaben der vorliegenden Erfindung sind in einem System ausgeführt, in dem eine beliebige Anordnung von Knoten auf einem Systembus in einen azyklischen gerichteten Graphen aufgelöst wurde. Die hierarchische Anordnung von Knoten weist einen als Root [Wurzel] bezeichneten Knoten auf, während alle anderen Knoten Eltern/Kind-Beziehungen mit den Knoten gebildet haben, mit denen sie verbunden sind. Jeder Knoten kann eine Mehrzahl von verbundenen Kind-Ports mit einem vorher festgelegten Bestätigungsprioritätsschema gebildet haben. Eine faire Buszugriffsarbitrierung berücksichtigt eine Busgewährung in einer den vorher festgelegten Portprioritäten entsprechenden Abfolge, die allen Knoten einen Turnus auf dem Bus ermöglicht. Der Root-Knoten kann immer seinen Prioritätszugriffsstatus zum Erhalt des Buszugriffs geltend machen. Das ist nützlich, um einem Root-Knoten entgegenzukommen, der eine isochrone Datenübertragung benötigt. Alternativ kann ein einen Token weiterleitendes Arbitrierungsschema ausgeführt werden, bei dem der Token für den Buszugriff um die Knoten herum gemäß dem oben beschriebenen, vorher festgelegtem Prioritätsschema der Ports weitergeleitet wird. Eine preemptive Businitialisierung kann durch jeden Knoten bei der Erfassung eines dies erforderlich machenden Fehlers oder bei Hinzufügung oder Entfernung einer Verbindung zu einem existierenden Knoten getriggert werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden von der folgenden, detaillierten Beschreibung ersichtlich werden, in der:
  • 1 ein Blockdiagram der Ausführung der Hardwareschicht veranschaulicht, die gemäß der vorliegenden Erfindung verwendet wird.
  • 2(a)2(b) veranschaulichen eine beliebig zusammengestellte Sammlung von Knoten. Eine ist azyklisch und die andere umfasst mehrere Zyklen.
  • 3(a) zeigt die beliebig angeordnete Sammlung von Knoten von 2(a), die dem Graphentransformationsverfahren gemäß der vorliegenden Erfindung unterzogen wird.
  • 3(b)3(d) veranschaulichen alternative Kommunikationsmöglichkeiten zwischen den Knoten bei der Ausführung der vorliegenden Erfindung.
  • 3(e) veranschaulicht graphisch den gerichteten Graphen, der aus dem beliebig zusammengestellten Netzwerk von Knoten von 2(a) resultiert.
  • 4 veranschaulicht eine symmetrische Graphenanordnung, die die Auflösung einer Root-Konkurrenzsituation erfordert.
  • 5 veranschaulicht einen gerichteten azyklischen Graphen, wobei eine mögliche eindeutige Adreßzuweisungsreihenfolge angezeigt ist.
  • 6(a)6(e) veranschaulichen den Prozessablauf für die Durchführung des Graphentransformationsverfahrens gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden ein Verfahren und eine Einrichtung zur Verwendung eines Busses beschrieben, der eine beliebige Topologie aufweist. In der folgenden Beschreibung werden viele spezielle Einzelheiten dargelegt, wie zum Beispiel verschiedene Computerkomponenten, um ein vollständiges Verständnis der vorliegenden Erfindung bereitzustellen. Es wird jedoch für einen Fachmann ersichtlich sein, dass die vorliegende Erfindung ohne derartige spezielle Einzelheiten umgesetzt werden kann. In anderen Fällen sind bekannte Steuerungsstrukturen und Codierungstechniken nicht ausführlich beschrieben worden, um die vorliegende Erfindung nicht unnötig zu verdecken.
  • Überall in dieser detaillierten Beschreibung sind zahlreiche beschreibende Begriffe eingeführt, um der Beschreibung eine metaphorische Übersichtlichkeit bereitzustellen. Es werden zum Beispiel häufig Bezüge auf Eltern-Kind-Beziehungen zwischen den Knoten in einer gegebenen Topologie vorgenommen. Der Zweck dessen ist die Bereitstellung des Konzeptes der „Richtung" zum letztendlich aufgelösten Graphen. Wie beschrieben werden wird, wird es, sobald eine beliebige Topologie zu einem azyklischen gerichteten Graphen reduziert wurde, einen als den „Root"-Knoten bezeichneten Knoten geben. Der Root-Knoten wird keinen Elternknoten aufweisen. Alle logisch unmittelbar an den Root-Knoten angrenzenden Knoten sind die Kindknoten des Root-Knoten. Die „Baum"-Metapher wird durch die Einbeziehung von als „Zweige" und „Blätter" bezeichneten Knoten vervollständigt.
  • Obwohl die hierin beschriebene Bus-Architektur mit Bezug auf Komponenten für einen Einzelcomputer beschrieben ist, hat sie allgemein einen erweiterten Gültigkeitsbereich. Die vorliegende Erfindung zur Definition der Bus-Topologie kann auf jede beliebig zusammengestellte Sammlung von miteinander verbundenen Knoten angewendet werden, wie zum Beispiel in einem Netzwerk von Einrichtungen. Ein anzumerkender Punkt ist die Notwendigkeit der Unterscheidung eines Knotens von einer physikalischen Computerkomponente. Jede auf dem Bus befindliche Komponente wird mindestens einer Knotensteuereinrichtung der physikalischen Schicht zugeordnet. Unter bestimmten Bedingungen kann eine gegebene Komponente zweckmäßigerweise mehreren Knoten zugeordnet sein. Im Normalfall wird es jedoch eine eineindeutige Übereinstimmung zwischen den Einrichtungen oder Komponenten auf dem Bus und den Knoten geben.
  • Es wird jetzt auf 1 Bezug genommen, in der ein Blockdiagramm eines Knotens 10 veranschaulicht ist. Die physikalische Ausführung eines Knotens ist ziemlich beliebig. In der Ausführung des bevorzugten Ausführungsbeispiels der Erfindung sind die Knoten zur Einhaltung des IEEE P1394 High Performance Serial Bus – Kommunikationsprotokolls ausgelegt, das als Anhang A beigefügt ist. Der Knoten 10 umfasst eine Arbitrierungsautomatenlogik 11. Diese Arbitrierungsautomatenlogik enthält die gesamte Logikschaltung zur Ausführung der hierin zu beschreibenden Methoden und Algorithmen. Die Schaltung kann eine programmierbare logische Anordnung (PLA) aufweisen oder speziell zur Ausführung der hierin beschriebenen Funktionen ausgelegt sein. Sobald die durch die Knotenlogik auszuführenden Funktionen beschrieben sind, werden die Fachleute ohne übermäßiges Experimentieren in der Lage sein, die vorliegende Erfindung auszuführen. Der Knoten soll mittels seiner Logik das minimale Arbitrierungsprotokoll ausführen, das die Bus-Initialisierung, die Baum-Identifikation, die Selbstidentifikation und die Bus-Arbitrierungsfunktionen umfasst. Alle sind nachstehend ausführlich zu beschreiben.
  • Der in 1 gezeigte Knoten 10 umfasst außerdem Übertragungsmultiplexer 12 und 13 und eine Datensender-, Empfänger- und Neusynchronisierungs-Einrichtung 14. Der in 1 veranschaulichte Knoten ist mit dem lokalen Host 15 gekoppelt. Der lokale Host 15 kann irgendeine Einrichtung sein, die man mit dem Bus zu verbinden wünscht, wie zum Beispiel ein Plattenlaufwerk, eine CPU, eine Tastatur oder irgendeine andere Komponente, die mit anderen Komponenten im System kommunizieren muss. Der Knoten 10 kommuniziert über Kommunikationsverbindungen mit anderen Knoten. Eine Verbindung ist eine Kopplung zwischen zwei Ports und in unmittelbaren praktischen Begriffen ein Kabelsegment. Im Allgemeinen kann sie jedoch als irgendein physikalischer Kommunikationskanal ausgeführt werden. Eine Verbindung soll mindestens in der Lage sein, einen Halbduplex-Kommunikationskanal zwischen den beiden Ports bereitzustellen, die sie verbindet. Ein Port ist die Schnittstelle zwischen einem Knoten und einer Verbindung. Gemäß der vorliegenden Erfindung muss ein Port die Fähigkeit zum Senden und Empfangen von Daten und einer Arbitrierungssignalgebung aufweisen. Ein Port muss in der Lage sein, zu bestimmen, ob er über eine Verbindung mit einem anderen Port verbunden ist oder nicht. Ein Verfahren, das dies ermöglicht, ist das Anlegen einer Vorspannung über die Verbindung an die verbundenen Ports, die durch den Port am anderen Ende der Verbindung erfassbar ist. Wenn folglich ein Port eine angeschlossene Verbindung aufweist, die nicht mit einem Port am anderen Ende verbunden ist, eine offene Verbindung, wird der Port bestimmen, dass er kein verbundener Port ist. In 1 weist der veranschaulichte Knoten 10 drei externe Ports 21, 22 und 23 mit den Verbindungen 17, 18 beziehungsweise 19 auf.
  • Eine der Ausführungsregeln für Knoten zur Ausführung der vorliegenden Erfindung besteht darin, dass ein Knoten einen oder mehrere Ports haben kann. Ein Knoten soll zum Senden und Empfangen von Daten auf jedem seiner Ports in der Lage sein. Ein Knoten soll zum Empfangen von Daten auf jeweils genau einem seiner freigegebenen Ports in der Lage sein und zum erneuten Übertragen dieser Daten auf allen verbleibenden freigegebenen Ports in der Lage sein. Ein Knoten soll zum gleichzeitigen und unabhängigen Empfang und Senden von Signalgebungsnachrichten über alle seine Ports in der Lage sein. Für jeden Port eines Knotens sind getrennte Signalgebungs-Sende-Empfänger-Einrichtungen, Codierungseinrichtungen und Decodierungseinrichtungen erforderlich. Ein Knoten minimaler Ausführung erfordert keine lokale Host-Einrichtung. Ein derartiger Knoten kann zum Beispiel als eine Kabelerweiterung funktionieren. Von hierab werden Einrichtungen und lokale Hosts ignoriert und alle Verweise auf eine Bus-Topologie werden sich auf Knoten und Knotenverbindungen über verschiedene Ports beziehen.
  • Graphentransformation
  • 2(a) und 2(b) veranschaulichen beliebig zusammengestellte Sammlungen von Knoten. Von hierab werden Knoten lediglich als Kreise dargestellt. Es wird jedoch angenommen, dass jeder Elemente enthält, die denen mit Bezug auf 1 beschriebenen entsprechen. Man beachte jedoch, dass jeder Knoten mehr oder weniger als die in dieser Fig. gezeigten drei externen Ports aufweisen kann. Die veranschaulichten Linien, die jeden der Knoten verbinden, sind das Verfahren, durch das Verbindungen gezeigt werden. Ports sind nicht veranschaulicht, sind aber impliziert, die Schnittstelle, über die sich eine Verbindung und ein Knoten verbinden.
  • Die hier zu beschreibende Bus-Arbitrierungsmethode erfordert, dass die beliebige Topologie in einen azyklischen gerichteten Graphen aufgelöst wird. In einem Graphen beliebiger Topologie kann eine Sammlung von Knoten und Verbindungen einen Zyklus bilden. Ein Zyklus existiert, wenn es möglich ist, mittels einer Durchquerung von Verbindungen und Knoten nach dem Start von einem bestimmten Knoten im Graphen zum gleichen Knoten zurückzukehren, ohne dass irgendeine Verbindung zweimal durchquert wird. 2(a) veranschaulicht einen azyklischen Graphen, da keiner der veranschaulichten Knoten innerhalb einer Schleife verbunden ist. 2(b) ist jedoch kein azyklischer Graph, da der Bereich in der Zeichen-Box 25 eine Sammlung von Knoten 4047 enthält, die mehrere Zyklen bilden. Die zu beschreibende Bus-Arbitrierungsmethode erfordert, dass es keine Zyklen gibt. Daher wird nachstehend auch ein Verfahren eines Anwendereingriffs zur Auflösung von Zyklen beschrieben.
  • Zusätzlich zur Anforderung, dass ein Graph azyklisch ist, muss er auch gerichtet sein. Ein gerichteter Graph ist ein Graph, in dem eine hierarchische Anordnung zwischen benachbarten Knoten gebildet wurde. Zunächst gibt es zwischen den Knoten keine eingerichteten Eltern-Kind-Beziehungen. Das heißt, Knoten 31 kann zum Beispiel der „Elternknoten" für Knoten 34 oder der „Kindknoten" für Knoten 34 sein. Auf diese Weise ist es erforderlich, einen gegebenen Graphen beliebiger Topologie zu nehmen und in einen azyklischen und gerichteten Graphen zu transformieren. Das hier beschriebene Verfahren wird zur Ausführung dieser Transformation für jede gegebene, beliebige Topologie funktionieren, unabhängig von der Anzahl der Knoten oder ihrer physikalischen Verbindung und unabhängig von der Signalgebungsausbreitungszeit entlang der Verbindungen.
  • Knoten-Kommunikation
  • Zunächst wird der Transformationsprozess eines azyklischen Graphen beliebiger Topologie in einen gerichteten Graphen beschrieben. Es wird der Fall folgen, bei dem die Auflösung eines Zyklus erforderlich ist. 3(a) zeigt den beliebigen Graphen von 2(a), in dem die Knoten und die Verbindungen Statuskennzeichnungen aufweisen und die kommunizierten Signale für den Graphentransformationsprozess zur Ausrichtung eines Graphen angegeben sind. Es ist an diesem Punkt aufschlussreich, die Signalkommunikation zwischen den Knoten zu beschreiben. 3(b) veranschaulicht zwei durch die Verbindung 52 gekoppelte Knoten 50 und 51 (nachstehend Knoten A beziehungsweise Knoten B). Wie beschrieben, ist die Verbindung der Kommunikationskanal, der die Sender-Empfängerports der entsprechenden Knoten wie vorstehend mit Bezug auf 1 beschrieben koppelt. Während des Graphentransformationsprozesses wird für die Knoten die Bildung von Eltern-Kind-Beziehungen mit benachbarten Knoten erforderlich. Zwei Knoten gelten als benachbarte Knoten, wenn es mindestens eine zwischen einem Port des ersten Knotens und einem Port des zweiten Knotens gebildete Verbindung gibt. In den 3(b)3(d) wird angenommen werden, dass die aufzulösende Beziehung darin besteht, dass der Knoten B der Eltern von Knoten A ist und dass die Bildung dieser Beziehung für die Knoten geeignet ist.
  • Wenn es vor der Bildung einer Richtung für den Knoten A geeignet ist, Knoten B als seinen Elternknoten einzurichten, wird der Knoten A von seinem mit der Verbindung 52 gekoppelten Port das Signal „Du bist mein Elternknoten" (YAMP) übertragen. Der Inhalt dieser Nachricht kann irgendeine Form annehmen, solange der Knoten A weiß, dass er YAMP signalisiert und der Knoten B in der Lage ist zu verstehen, dass die empfangene Nachricht YAMP ist. Wenn das YAMP-Signal 53 von Knoten B empfangen wird, wird Knoten B Knoten A durch das Senden von „Du bist mein Kindknoten" (YAMC) über die Verbindung 52 zu Knoten A antworten. Die Arbitrierungsautomatenlogik 11 von Knoten A wird die Zeitverzögerung zwischen dem Senden des YAMP-Signals 53 und dem Empfang des YAMC-Signals 54 beobachten. Die gemessene Zeit kennzeichnet die doppelte Ausbreitungsverzögerung zwischen den Knoten A und B. Bei Empfang des YAMC-Signals wird der Knoten A mit einem „Du bist mein bestätigter Kindknoten"(YAMCA)-Signal 55 antworten. Dies stellt Knoten B ebenfalls die Fähigkeit zur Bestimmung der Ausbreitungszeitverzögerung zwischen den Knoten bereit, die gleich der Zeitverzögerung zwischen dem Senden von YAMC und dem Empfang von YAMCA ist. Für Halbduplex-Kommunikationsverbindungen hat die YAMCA-Nachricht auch den Effekt der richtigen Orientierung des Kommunikationskanals.
  • Für Vollduplex-Kommunikationskanäle können die drei logischen Nachrichten YAMP, YAMC und YAMCA alternativ durch nur zwei Signalübertragungen weitergeleitet werden. In 3(c) ist diese Situation veranschaulicht, in der der Knoten A das YAMP-Signal 56 kontinuierlich anlegt, bis er das Rückgabesi gnal YAMC 57 empfängt. Das YAMCA-Signal wird logisch zu Knoten B übertragen, wenn erfasst wird, dass das YAMP-Signal nicht mehr eintrifft.
  • Die Verwendung dieses beschriebenen dreifachen asynchronen Nachrichtenaustausches stellt einen Mechanismus bereit, durch den beide in den Nachrichtenaustausch eingebundene Knoten die Ausbreitungszeitverzögerung durch die Verbindung bestimmen können. Dieser Verzögerungswert wird bei der Auflösung von hierab weiter zu beschreibenden Konkurrenzsituationsereignissen, wie auch während der normalen Busarbitrierung zur Optimierung der Busleistungsfähigkeit verwendet. Die dynamische Auskopplung dieses Parameters ist nicht zwingend erforderlich. Als eine Alternative kann auf Kosten der optimalen Leistungsfähigkeit des Busses eine maximale Ausbreitungszeitverzögerung a priori definiert werden.
  • Sobald die Knoten A und B Nachrichten zur Kennzeichnung ausgetauscht haben, dass Knoten B der Elternknoten von Knoten A ist, kann die Verbindung als gerichtet gelten. Innerhalb seiner Logik bezeichnet Knoten A seinen Port, mit dem die Verbindung 52 gekoppelt ist, als einen Elternport (er spricht zu einem Elternknoten) und Knoten B bezeichnet seinen Port, mit dem die Verbindung 52 gekoppelt ist, als einen Kindport (er spricht zu einem Kindknoten). Das Beibehalten der von den Ports erhaltenen Bezeichnungen ist wichtig, da die nachstehend zu beschreibenden Verfahren anhand der den Knoten und Ports zu einem festgelegten Zeitpunkt zugewiesenen Bezeichnungen dargestellt werden. Eine Kurzform einer grafischen Notation ist in 3(d) veranschaulicht, in der der Richtungspfeil 58 anzeigt, dass der Knoten B als Elternknoten von Knoten A gebildet und die Verbindung gerichtet ist.
  • Richtungsbestimmung
  • Es wird erneut auf 3(a) und die Verarbeitungs-6(a)6(e) Bezug genommen. Jetzt wird das Verfahren der Ausrichtung der gesamten, beliebigen Topologie beschrieben. Zur Unterstützung der Erläuterung des Topologietransformationsprozesses ist die Einführung von ein paar weiteren anschaulichen Definitionen notwendig. Zuerst wird ein „Blatt"-Knoten als ein Knoten mit nur einem verbundenen Port definiert. Ein Knoten erkennt seinen Status als ein Blattknoten, sobald er nach dem Einschalten oder einer anderen Businitialisierung initialisiert wird. Ein „Zweig"-Knoten ist ein Knoten, der mindestens zwei verbundene Ports aufweist. Über alle bis auf einen der verbundenen Ports wird ein Zweigknoten das YAMP-Signal empfangen haben und es bestätigt haben. Über seinen verbleibenden Port hat ein Zweigknoten das YAMP-Signal gesendet. Dadurch wird eingerichtet, dass er einen Elternknoten aufweist. Ein Knoten erreicht keinen Zweigstatus, bis er eingerichtet hat, dass er einen Elternknoten aufweist (ein Knoten kann nur einen Elternknoten aufweisen) und alle seine anderen Ports mit Kindknoten verbunden sind. Vor dem Erreichen des Zweigstatus wird ein Knoten als ein „Zyklus"-Knoten angesehen, da bis zur seiner Bestimmung als Zweig die Möglichkeit besteht, dass der Knoten Teil eines Zyklus ist, der die Bildung einer Richtung unmöglich macht.
  • Das Graphentransformationsverfahren beginnt in Schritt 60 bei der Businitialisierung (beim Einschalten oder auf Veranlassung), zu welchem Zeitpunkt die Blattknoten in der beliebigen Topologie in Schritt 61 sich erkennen und durch eine Bestimmung im Entscheidungssymbol 66, dass sie nur einen verbundenen Port haben, sich selbst in Schritt 68 als Blattknoten kennzeichnen. In dem in 3(a) anschaulich dargestellten Graphen sind die Knoten 33, 35, 36 und 37 Blattknoten, die sobald sie initialisiert sind, jeweils in Schritt 69 über ihren einzigen verbundenen Port das YAMP-Signal zu ihrem benachbarten Knoten übertragen. Die diese Signale empfangenden Knoten werden dann in Schritt 70 die YAMC-Signale zu den Blattknoten zurück verteilen. Auf diese Weise wird für die gegebene Verbindung zwischen den entsprechenden Eltern-Kind-Paaren eine Richtung gebildet, wenn die YAMCA-Kommunikation beendet ist. In Schritt 71 bezeichnet jeder Blattknoten seinen einzigen verbundenen Port als einen Elternport und jeden Empfangsport am Elternknoten wird als ein Kindport bezeichnet.
  • Die Knoten auf dem Graphen, die zunächst keine Blattknoten sind, werden zunächst aus dem oben beschriebenen Grund als „Zyklusknoten" angesehen und laufen gemäß dem Zyklusknotenverfahren 63 ab. Jeder Zyklusknoten, der alle bis auf einen seiner verbundenen Ports als Kindports bezeichnet hat, breitet dann in Schritt 85 das YAMP-Signal von seinem verbleibenden, nicht bezeichneten Port aus. Wenn diese Richtung für die Verbindung gebildet ist, wird der Zyklusknoten als ein Zweigknoten bezeichnet. Nachdem der Blattknoten 37 Knoten 34 als seinen Elternknoten gebildet hat, weist folglich Knoten 34 nur einen nicht bezeichneten Port auf (er hat den Verbindungsaufbau zu Knoten 37 als über einen Kindport verlaufend bezeichnet). Daher sendet der Knoten 34 das YAMP-Signal zu Knoten 31. Dies führt dazu, dass Knoten 34 ein Zweigknoten wird. Sobald Knoten 31 identifiziert hat, dass die Knoten 33 und 34 seine Kinder sind, sendet Knoten 31 ebenso das YAMP-Signal zu Knoten 30. Wenn ein Knoten im Entscheidungssymbol 75 über alle seine Ports das YAMP-Signal empfangen hat, wird der Knoten der Root-Knoten. Nachdem Knoten 30 in 3(a) die YAMP-Signale von den Knoten 31 und 32 empfangen hat, ändert sich seine Bezeichnung von der eines Zyklusknotens zu der eines Root-Knotens. Im Graphen von 3(a) ist es nicht notwendigerweise der Fall, dass Knoten 30 zum Root-Knoten werden würde. Wenn einige der Verbindungen im Baum große Ausbreitungsverzögerungen bereitgestellt hätten, könnte Knoten 30 ein YAMP-Signal auf einem Port empfangen und dann ein YAMP-Signal über seinen anderen Port gesendet haben. Jeder der Knoten kann zum Root-Knoten werden, selbst ein Blatt. Die Rooteigenschaft hat Priorität. 3(e) zeigt den sich ergebenden gerichteten Graphen als Reaktion auf die in 3(a) gezeigten, kommunizierten Signale. Dabei ist jeder Knoten bezeichnet und die Richtungen sind durch dunkle Pfeile markiert.
  • Root-Konkurrenzsituation
  • Unter bestimmten Umständen kann eine Root-Konkurrenzsituation auftreten. Dies kann zum Beispiel in dem Fall auftreten, in dem die beliebige Topologie eine symmetrische Anordnung aufweist, wie zum Beispiel die in 4 gezeigte. In dem in 4 veranschaulichten beliebigen Graphen haben sich die Knoten 160 und 161 jeweils als Eltern für die beiden Blattknoten eingerichtet, mit denen sie gekoppelt sind. Dann hat jeder etwa zum gleichen Zeitpunkt das YAMP-Signal zum anderen verbreitet. Die Root-Konkurrenzsituation wird von beiden betroffenen einbezogenen Knoten im Entscheidungssymbol 86 erkannt. Jeder Knoten empfängt ein Signal, das ihn als einen Elternknoten festlegt, während er das gleiche Signal über den gleiche Port gesendet hat. Jeder der konkurrierenden Knoten antwortet in Schritt 91 dem anderen mit dem YAMC-Signal. Dies gestattet jedem die „Entscheidungszeitperiode" zu bestimmen, die gleich dem Doppelten der Ausbreitungszeit zwischen den Knoten ist.
  • Die Root-Konkurrenzsituation wird durch die Verwendung eines Zufallsentscheidungsmechanismus aufgelöst, der in jeder Arbitrierungsautomatenlogikeinheit 11 jedes Knotens enthalten ist. Für jede ablaufende „Entscheidungszeitperiode" wird jeder Knoten in Schritt 92 zufällig entscheiden (mit einer 50%-igen Wahrscheinlichkeit), ob er erneut das YAMP-Signal zum anderen überträgt. Nahezu sicher wird sich ein Knoten innerhalb einer endlichen Anzahl von Zyklen entscheiden, den anderen als seinen Elternknoten festzulegen, ohne dass dieser erwidert. Der als der Elternknoten festgelegte Knoten wird in Schritt 95 der Root-Knoten. Alternativ können Knoten vorher festgelegte Werte für die Auswahlkriterien zugewiesen werden. Der Größere oder Kleinere bestimmt, welcher bei einem Konkurrenzsituationsereignis dominiert. Obwohl die dynamische Bestimmung der „Entscheidungszeitperiode" eine optimale Leistungsfähigkeit bietet, ist sie bei der Ausführung der vorliegenden Erfindung nicht erforderlich. Als Alternative kann eine a priori definierte „Entscheidungszeitperiode" verwendet werden, solange sie größer als die ungünstigste, in irgendeinem diesen Algorithmus verwendenden Bus anzutreffende Verbindungsausbreitung ist. Das gleiche, zur Auflösung von Root-Konkurrenzsituationen verwendete Verfahren wird auch zur Auflösung anderer, nachfolgend beschriebener Konkurrenzsituationsereignisse verwendet.
  • Root-Zuweisung
  • Wie vorstehend beschrieben, ist das Resultat des Graphentransformationsprozesses die Zuweisung des Rootattributes zu genau einem Knoten im Graphen. Der Root-Knoten wird im zu beschreibenden Busarbitrierungsschema die endgültige Entscheidung haben. Er kann daher ohne eine Verwendung von speziellen Prioritätszeitlücken mit maximaler Priorität auf den Bus zugreifen. Es ist oft wünschenswert in der Lage zu sein, zur Optimierung eines gegebenen Systems einem vorher festgelegten Knoten entweder bei seiner Herstellung oder dynamisch (während der Laufzeit) die Rooteigenschaft zuzuweisen. Ein gegebener Bus kann einen Knoten umfassen, der eine isochrone Datenüber tragung erfordert. Isochrone Daten sind Daten, die zu einem festgelegten Zeitpunkt übertragen werden müssen, um von Wert zu sein. Zum Beispiel muss Musik von einer CD in der zu hörenden Reihenfolge und ohne signifikante Verzögerungen übertragen und ausgegeben werden. Im Gegensatz dazu können Datendateien stückweise übertragen werden und müssen nicht notwendigerweise in der Reihenfolge übertragen werden.
  • Knoten können in Bezug auf die Rootbezeichnungen in drei Kategorien eingeteilt werden. Diese Bezeichnungen können während der Herstellung durch eine feste Verdrahtung der Bezeichnung in der Einrichtung, durch eine Programmierung der Arbitrierungsautomatenlogik oder durch eine Software einer höheren Ebene vorgesehen werden, die die Entscheidung trifft und dann unter Beibehaltung dieser Entscheidung einen Neustart initiiert. Die drei Bezeichnungen, die einem Knoten in Bezug auf seine Bezeichnung als Root zugewiesen werden können, sind: Knoten, die kein Root-Knoten sein wollen, Knoten, die ein Root-Knoten sein können (sollten), und Knoten, die ein Root-Knoten sein sollen. Diese Bezeichnungen werden in den Schritten 81 und 83 geprüft. Ein in der ersten Kategorie bezeichneter Knoten wird das Graphentransformationsverfahren beginnen, sobald er dazu angewiesen wird. Dies wird üblicherweise unmittelbar nach dem Beenden des Businitialisierungsverfahrens erfolgen. Ein Knoten der zweiten Kategorie wird den Start des Graphentransformationsverfahrens um einen vorher festgelegten Zeitbetrag verzögern, nachdem er zum Start des Verfahrens in Schritt 84 angewiesen wurde. Durch diese Verzögerung erhöht der Knoten seine Aussicht, Root-Knoten zu werden. (Aufgrund der Verzögerung ist die Ausbreitung der YAMP-Signale zu ihm wahrscheinlicher.) Trotz der hinzugefügten Verzögerung ist es immer noch möglich, dass ein „Kann Root sein"-Knoten nicht mit seiner Bezeichnung als Root enden wird. Dies wird von der gegebenen Topologie und den Ausbreitungsverzögerungen der Nachrichten abhängen. Der Betrag der Verzögerung kann während des Designs so definiert werden, dass er größer als eine angemessene ungünstigste Ausbreitungsverzögerung über einen ziemlich komplexen Graphen ist.
  • Ein Knoten der dritten Kategorie der Rootbezeichnungsmöglichkeiten kann nur die Tatsache erkennen, dass er der Root-Knoten sein muss, nachdem der Graph bereits transformiert wurde und sich alle Knoten selbst identifiziert haben. Diese Bestimmung kann die Arbitrierungsautomatenlogik oder eine auf dem Host-System ablaufende Software vornehmen. Wenn dies auftritt, vereinbart der Knoten, der der Root-Knoten sein muss, mit allen anderen Knoten auf dem Bus, dass er der einzige Root-Knoten sein wird und startet den Graphentransformationsprozess durch eine Signalgebung eines hier weiter beschriebenen, preemptiven Businitialisierungssignals neu. Der Knoten wartet dann in Schritt 82 darauf, Root-Knoten zu werden und nimmt an der Graphentransformation nicht teil, bis er an allen seinen Ports das YAMP-Signal empfangen hat. Auf diese Weise erzwingt er seine Bezeichnung als Root.
  • Sobald der Root-Knoten bestimmt wurde, kann der Graph als gerichtet gelten. Es gibt eine definierte Beziehung, die zwischen allen benachbarten Knoten auf dem Graphen existiert.
  • Zyklusauflösung
  • Die oben beschriebenen Verfahren zur Ausrichtung eines Graphen werden nur für einen azyklischen Graphen funktionieren. Wenn es in der beliebigen Topologie Zyklen gibt, müssen sie durch das in Schritt 80 beginnende Verfahren unterbrochen werden. Die Existenz eines Zyklus wird in Schritt 79 erfasst, wenn nach dem Ablauf eines vorher festgelegten Timeout- bzw. Zeitüberwachungs-Periode ein Knoten immer noch als Zyklusknoten anstatt als Blatt, Zweig oder Root bezeichnet wird. Die Zeitsteuerung zur „Zykluserfassung" beginnt unmittelbar nach dem Ende der Businitialisierungsfunktion. Die Timeout-Periode muss nicht länger als die ungünstigste Dauer des Graphentransformationsprozesses sein (unter Hinzufügung der Verzögerungszeit für einen „Kann Root sein"-Knoten und ein mögliches Root-Konkurrenzsituationsereignis).
  • Das „Zykluserfassungs-Timeout-Ereignis" muss nicht synchron für alle Knoten eines Graphen auftreten, da alle Nachrichtenvermittelungen asynchrone Ereignisse sind. Daher ist für einen Knoten, der noch nicht sein „Zykluserfassungs-Timeout-Ereignis" erreicht hat, der Empfang einer Nachricht möglich, die eine laufende Zyklusauflösung anzeigt. Ein derartiger Knoten wird sein Zykluserfassungs-Timeout-Intervall abbrechen und den entsprechenden Zyklusauflösungsprozess beginnen.
  • Das Verfahren der Zyklusauflösung gemäß der vorliegenden Erfindung erfordert ein Eingreifen des Anwenders der zusammengestellten Knotensammlung. Wenn ein Knoten auf ein Timeout der „Zykluserfassung" trifft, kann der Systemanwender in Schritt 100 von 6(a) über eine Ausgabeeinrichtung benachrichtigt werden, dass ein Zyklus existiert und welche Knoten einbezogen sind. Der Anwender wird dann angewiesen, zur Eliminierung gleich welcher vorhandenen Zyklen Verbindungen zu trennen. Der Anwender wird dann die Steuerung an das Graphentransformationsverfahren zurückgeben.
  • Sobald jede der Schleifen unterbrochen ist und keine Zyklen verbleiben, kann das Verfahren zur Transformation des Graphen, wie es in den vorherigen Abschnitten beschrieben ist, fortsetzen bis der gesamte Graph sowohl azyklisch als auch gerichtet ist.
  • Eindeutige physikalische Adresszuweisung
  • Sobald ein gerichteter azyklischer Graph von der ursprünglichen, beliebigen Topologie gebildet wurde, ist die Zuweisung von eindeutigen physikalischen Adressen zu jedem Knoten auf dem Graphen möglich. Dieses Verfahren beginnt damit, dass alle Blattknoten den Bus durch die Übertragung des Busanforderungs(BR)-Signals über ihren einzigen verbundenen Port anfordern. Der das Signal empfangende Elternknoten wird bis zum Empfang des BR-Signals von allen seinen Kindports warten und dann das BR-Signal zu seinem Elternknoten ausbreiten. Die BR-Signale werden sich durch den Graphen ausbreiten, bis der Root-Knoten das BR-Signal von allen seinen Kindern empfangen hat. Sobald der Root-Knoten eine Busanforderung über alle seine Kindports empfangen hat, wird er eine Entscheidung zur Gewährung des Busses über einen Port treffen und ein Busverweigerungs(BD)-Signal über seine verbleibenden Kindports ausbreiten. Das Verfahren zur Auswahl, welche Busanforderung zu gewähren ist, kann eine a priori – Entscheidung sein, wie zum Beispiel die vorstehend beschriebene, bei der zum Beispiel Ports von links nach rechts oder basierend auf einer Portnummerierung etc. ausgewählt werden. Das Busgewährungs(BG)-Signal wird von dem Root-Knoten zu seinem anfordernden Kind übertragen. wenn dieses anfordernde Kind selbst ein Elternknoten ist, der die Busanforderung eines seiner Kinder verbreitet hat, wird er das Busverweigerungs-Signal über alle außer einen seiner Kindports in der gleichen vorher festgelegten, vorstehend beschriebenen Art und Weise senden. Schließlich wird ein Blattknoten das Busgewährungs-Signal empfangen, auf das er mit einem Busgewährung-Bestätigt(BGA)-Signal antworten wird, das zurück zum Root-Knoten ausgebreitet wird. Die Ausbreitung der BD- und BGA-Signale dient der Orientierung der Kommunikations verbindungen, was im Falle von Halbduplex-Kommunikationskanälen notwendig sein kann. Alle verweigerten Knoten werden dann auf eine Aktivität des Knoten warten, der letztendlich das BG-Signal empfängt.
  • Der Knoten, dem letztendlich ein Zugriff auf den Bus gewährt wurde, wird ein Adresszuweisungspaket übertragen. Der Knoten wird dieses Paket auf den Bus übertragen und es wird von allen anderen Knoten empfangen werden, von denen jeder die Anzahl der von ihnen empfangenen Adresspakete zählen wird. Das übertragene Adresspaket kann irgendwelche beliebigen Informationen aufweisen. Die eindeutige physikalische Adresse eines Knotens wird auf der Anzahl der Adresspakete basieren, die ein Knoten gezählt hat, bevor er ein Adresspaket überträgt. Folglich werden keine zwei Knoten die gleiche physikalische Adresse erhalten, obwohl ihnen keine Adressinformationen im Voraus zugewiesen wurde. Die tatsächliche Zusammensetzung des Adresspaketes ist beliebig und kann jeder durch das System effizient verwendbare Bit-Strom sein. Nach der Übertragung des Zuweisungspakets der physikalischen Adresse wird ein Knoten ein „Kind-ID Vollständig"-Signal (CIC-Signal) übertragen. Der dies auf seinem Kindport empfangende Elternknoten wird dann das „Kind-ID Vollständig Bestätigung"(CICA)-Signal übertragen und den Port als einen identifizierten Kindport bezeichnen. Als Reaktion auf die nächste BR-Signalausbreitung wird der Elternknoten desjenigen Knotens, der sich gerade selbst identifiziert hat, seinen nächsten Kindknoten zur Übertragung des Pakets der physikalischen Adresse auswählen. Sobald sich alle Kindknoten eines Elternknotens identifiziert haben, wird der Elternknoten den Bus anfordern. Wenn ihm der Bus gewährt wird, wird er sein Zuweisungspaket der physikalischen Adresse ausbreiten. Dieses Verfahren wird dem vorher festgelegten Auswahlkriterium folgend fortgesetzt, bis alle Knoten eine eindeutige physikalische Adresszuordnung durch Zählen bestimmen. 5 veranschaulicht den Graphen von 3(e), in dem ein vordefiniertes von-links-nach-rechts-Auswahlkriterium ausgeführt ist. Die Knoten sind eindeutig zugewiesene Adressen, wobei der Knoten 33 die erste Adresse empfängt und der Root-Knoten 30 wie beschrieben die achte und letzte Adresse empfängt.
  • Wenn dieses Verfahren abgeschlossen ist, wird jeder Knoten im Graphen eine eindeutige physikalische Adresse aufweisen, die nicht im Voraus bestimmt werden muss und die für das Systemmanagement oder andere Zwecke verwendet werden kann.
  • Knoten-Selbstidentifikation
  • Das Verfahren der Selbstidentifikation der Knoten folgt im Wesentlichen der gleichen Routine wie das vorstehend beschriebene Verfahren der Zuweisung der physikalischen Adresse. Da jeder Knoten sein Zuweisungspaket der physikalischen Adresse überträgt, kann dieses Paket weitere Informationen umfassen, wie zum Beispiel die Identifikation der physikalischen Einrichtung, die die Identifikation des zum Knoten gehörenden lokalen Host aufweist, wie viel Energie er erfordert und zum Beispiel ob er ein „Soft power-on" [gesteuertes Einschalten]-Attribut unterstützt etc. In der Tat können die Selbstidentifikationsinformationen der Knoten als Zuordnungspaket der physikalischen Adresse dienen, da das Verfahren des Sendens irgendwelcher Informationen überhaupt die Basis für das Zählen zum Erhalt eindeutiger physikalischer Adressen bereitstellt.
  • In Bezug auf das Selbstidentifikationspaket der Knoten müssen die bestimmten, den Knoten betreffende Informationen nur von denjenigen Knoten „mitgehört" werden, die durch die Beschaffenheit des bekannt gebenden Knotens betroffen sind. Wie beim Vorstehenden geht dieses Verfahren weiter, bis alle Knoten ihre Informationen der Knoten-Selbstidentifikation übertragen haben.
  • Topologieabbildung
  • Das Verfahren der Topologieabbildung folgt der gleichen Art wie die physikalische Adresszuweisung und die Knoten-Selbstidentifikation. Bei diesem Verfahren überträgt folglich jeder Knoten, wenn er durch das Verfahren der Adresszuweisung oder der Knoten-Selbstidentifikation geht, weitere, alle seine Ports betreffende Informationen, wie zum Beispiel die Anzahl seiner Kindports und ob er irgendwelche deaktivierten Ports aufweist oder nicht. In Bezug auf die deaktivierten Ports kann die Ausführung eines Kommunikationsprotokolls zwischen sich deaktivierenden Ports wünschenswert sein, so dass sie identifizieren können, von wem sie deaktiviert wurden. Folglich wird ein Port, wenn er einen deaktivierten Port identifiziert, eine Kennung abgeben, die sowohl seine eigene ID als auch die ID des Portes anzeigt, von dem er deaktiviert wurde.
  • Durch die Zusammenstellung aller während des Topologieabbildungsverfahrens empfangenen Topologieinformationen über alle Ports können der Busserver, der Host oder irgendeine Anwendung der Softwareschicht die aufgelöste Bustopologie logisch rekonstruieren. Dies ist für viele Zwecke nützlich, die die Ausführung von Redundanz umfassen, bei der beim unerwarteten Zusammenbruch einer Verbindung vorher deaktivierte Verbindungen zur Verhinderung des Verlusts von Kommunikationskanälen zu irgendwelchen Knoten dienen können.
  • Faire Buszugriffsarbitrierung
  • Sobald die Routinen der Topologieabbildung, der Knoten-Selbstidentifikation oder der Zuweisung der physikalischen Adressen abgeschlossen sind, kann der Bus als bereit und in Betrieb angesehen werden. Ein gemäß der vorliegenden Erfindung ausgeführtes Arbitrierungsschema ist das eines fairen Buszugriffs. Wenn ein Knoten einen Zugriff auf den Bus wünscht, sendet er über seinen Elternport (sofern er nicht der Root-Knoten ist) ein Busanforderungs(BR)-Signal. Der Elternknoten sendet bei Empfang des BR-Signals von einem Kindknoten ein Bus-Verweigert-Signal (BD) über alle seine anderen Kindports. Der Elternknoten breitet dann das BR-Signal aufwärts über seinen Elternknoten aus, bis das Signal den Root-Knoten erreicht. Der Root-Knoten gibt als Reaktion auf das erste empfangene BR-Signal ein Bus-Gewährt-Signal (BG) aus und sendet das BD-Signal über alle seine anderen, abwärts ausbreitenden Kindports. Dadurch werden die Verbindungen orientiert. Das BG-Signal breitet sich abwärts durch den Graphen bis zum Erreichen des anfordernden Knotens aus, der dann das Bus-Bestätigt(BR)-Signal gefolgt von dem Informationspaket sendet, dessen Sendung der Knoten auf den Bus benötigte. Wenn das Paket abgeschlossen ist, kehren alle Knoten in einen Ruhezustand zurück oder treten in ihn ein.
  • Wenn der Root-Knoten nahezu gleichzeitig Busanforderungen empfängt, werden die vorher festgelegten Auswahlkriterien für den Root-Knoten zur Gewährung des Buszugriffs für einen der Knoten verwendet. Dies können die gleichen vorher festgelegten, wie oben beschriebenen Prioritätsauswahlkriterien sein.
  • Ein weiterer Aspekt einer fairen Buszugriffsarbitrierung ist die Priorität eines Elternknoten gegenüber seinen Kindknoten. Wenn folglich ein Elternknoten den Bus benötigt, sendet er das BD-Signal über alle seine Kindports und breitet dann das BR-Signal nach oben in Richtung des Root-Knotens aus. Ein potentielles Problem dieses Mechanismus besteht darin, dass ein Kindknoten Schwierigkeiten beim Erlangen eines angemessenen Buszugriffs haben kann, wenn der Elternknoten eine große Menge von Informationen auf den Bus zu übertragen hat. Es wurde deshalb ein Lückensystem eingeführt, das weit verbreitet und auf dem Gebiet gut bekannt ist. Nachdem ein Knoten den Bus verwendet hat, muss der Knoten eine Lückenperiode warten, bevor er den Bus erneut anfordern kann. Dies gibt jedem Knoten auf dem Bus die gleiche Chance für eine Busgewährung, unabhängig von seiner topologischen Anordnung auf dem Bus. Zur Sicherstellung eines fairen Arbitrierungsprotokolls muss die Länge der Lücke größer als die ungünstigste Signalausbreitungsverzögerung über den Bus sein. Der Lückenwert kann vorher festgelegt und in der Knotenlogik fest verdrahtet sein. Eine derartige Lösung wird mit Ausnahme des extremsten Falles zu einer suboptimalen Verwendung des Busses führen. Die Fähigkeit zur Topologieabbildung zusammen mit der während der Phase der Graphentransformation ausgeführten Messung der Ausbreitungsverzögerung zwischen benachbarten Knoten ermöglicht die Berechnung einer optimalen, fairen Lücke, die die Leistungsfähigkeit des Busses für jede spezifische Ausführung maximieren wird.
  • Prioritätsbusarbitrierung
  • In dem gemäß der vorstehenden fairen Buszugriffsarbitrierung ausgeführten Busarbitrierungsschema kann es wünschenswert sein, dass der Root-Knoten immer die Buspriorität aufweist. Wenn dies ausgeführt ist, kann sich der Root-Knoten den Bus zu jeder Zeit selbst gewähren. Dies wird durch das Senden des BD-Signals nach unten über alle Knoten des Graphen ausgeführt. Ein Prioritätsbuszugriff für den Root-Knoten ist für den Fall sehr nützlich, bei dem die Ausführung einer isochronen Datenübertragung des Root-Knotens erforderlich ist.
  • Einen Token weiterleitende Busarbitrierung
  • Als eine Alternative zu den oben beschriebenen fairen und Prioritäts-Buszugriffsarbitrierungsschemata kann die vorliegende Erfindung zur Ausführung eines einen Token weiterleitenden Busarbitrierungsschemas verwendet werden. Bildlich gesprochen bezieht sich ein einen Token weiterleitender Buszugriff auf die Vorstellung, dass ein Knoten auf einem Bus kommunizieren kann, wenn er im Besitz eines zwischen den Knoten weitergeleiteten Token ist. Der Token wird in einer zyklischen Art und weise von Knoten zu Knoten weitergeleitet, so dass jeder Knoten den Bus zu einem vorher festgelegten Zeitpunkt im Zyklus erhält. Das Weiterleiten des Token wird in der vorliegenden Erfindung auf die gleiche Art und Weise wie die oben beschriebene Zuweisungsroutine der physikalischen Adresse ausgeführt. Die implementierten vorher festgelegten Auswahlmechanismen werden zur Auswahl der Reihenfolge verwendet, in der der Token von Knoten zu Knoten weitergeleitet wird. Diese Reihenfolge ähnelt der in 5 gezeigten Reihenfolge, die die Reihenfolge der Zuweisung einer eindeutigen Adresse vorschreibt. Jeder Knoten wird bei einer Zuweisung des Token sein Informationspaket auf dem Bus ausbreiten, während die verbleibenden Knoten mithören. Basierend auf dem vorstehend beschriebenen, vorher festgelegten Ablaufsteuerungsverfahren wird der Knoten den Token dann zum nächsten logischen Knoten weiterleiten.
  • Preemptive Businitialisierung
  • Ein wichtiges, gemäß der vorliegenden Erfindung ausführbares Merkmal ist der Begriff der preemptiven Businitialisierung. Die in jedem Knoten enthaltene Automatenlogik ist in der Lage, unter bestimmten Bedingungen ein von dem Knoten über alle seine Ports auszubreitendes Bus-Initialisierungs(BI)-Signal zu triggern. Wenn ein Knoten die Notwendigkeit der Signalisierung einer Businitialisierungsbedingung bestimmt hat, wird er das BI-Signal über alle seine Ports für eine Zeitdauer ausbreiten, die ausreichend sicherstellt, dass es alle angrenzenden Knoten empfangen und dann freigegeben haben. Ein Knoten wird dann in die initiierenden Verfahren eintreten, die dann zu dem Graphentransformationsprozeß in den vorstehend beschriebenen Prozeduren führen.
  • Es gibt eine Reihe von Situationen, die die Triggerung einer preemptiven Businitialisierung notwendig oder wünschenswert machen können. Dies kann zunächst eine Reaktion eines Knotens auf einen unvorhergesehenen Fehler sein. Zusätzlich kann auf der Ebene des Host bestimmt werden, dass ein anderer Knoten das Knotenattribut erhalten soll, zum Beispiel ein Knoten mit isochroner Datenübertragung. Diese Zuweisung wird während der gesamten Businitialisierungsroutine eingehalten. Dadurch wird der gewünschte Knoten veranlasst, während des Transformationsverfahrens zu warten, bis er die Root-Bezeichnung empfängt. Eine andere, zu einer preemptiven Businitialisierung führende Bedingung kann der Bruch einer Verbindung sein. In diesem Fall kann die Berechnung eines neuen azyklischen, gerichteten Graphen für die angeschlossen Knoten notwendig sein. Schließlich ist eine bedeutende Situation, in der eine preemptive Businitialisierung auftreten soll, wenn eine Einrichtung zu dem Netzwerk hinzugefügt wird. Dies wird als „Hot Addition" [„Hinzufügen im laufenden Betrieb"] von Peripherieeinrichtungen bezeichnet. Der Port, an den die neue Einrichtung angeschlossen ist, wird das Vorhandensein eines neuen Knotens erfassen und eine Businitialisierung triggern, die für den Systemanwender transparent sind, aber zum Beispiel das Hinzufügen und Entfernen von Peripherieeinrichtungen ohne ein Herunterfahren und Neueinschalten gestattet. Es wird ein neuer azyklischer gerichteter Graph berechnet, der das Vorhandensein des hinzugefügten Knotens umfasst. Es ist möglich, dass beim Entfernen bestimmter Knoten die Triggerung einer Businitialisierung nicht notwendig ist, wenn zum Beispiel ein Blattknoten entfernt wird, entsteht kein Schaden für das Netzwerk. Wenn jedoch ein Zweigknoten aus einem in Betrieb befindlichen Bus herausgelöst wird, ist die Notwendigkeit der Neukonfiguration des Graphen wahrscheinlich.
  • Obwohl die vorliegende Erfindung anhand von bevorzugten Ausführungsbeispielen beschrieben wurde, sollte es klar sein, dass verschiedene Modifikationen und Änderungen von den Fachleuten vorgenommen werden können, ohne den Schutzumfang der Erfindung zu verlassen. Die Erfindung sollte deshalb an den nachfolgenden Ansprüchen gemessen werden.

Claims (10)

  1. Ein Verfahren zur fairen Buszugriffsarbitrierung in einem Computersystem, das eine Mehrzahl von Komponenten aufweist, die durch eine Mehrzahl von Kommunikationsverbindungen miteinander verbunden sind, wobei die mehreren Komponenten jeweils wenigstens einen ersten Kommunikationsknoten aufweisen, wobei die Kommunikationsknoten eine Schnittstelle zwischen ihrer zugehörigen Komponente und einer Kommunikationsverbindung über einen Knotenport bilden, wobei die Knoten mehrere Ports haben können, wobei die Konfiguration von Knoten und Kommunikationsverbindungen einen gerichteten azyklischen Graphen bildet, bei dem ein Knoten als Root-Knoten bezeichnet wird, sämtliche mit nur einem benachbarten Knoten gekoppelte Knoten als Blattknoten bezeichnet werden und alle anderen Knoten in dem Graphen als Zweigknoten bezeichnet werden, wobei in dem azyklischen gerichteten Graphen hierarchische Eltern-Kind-Beziehungen zwischen sämtlichen benachbarten Knoten beginnend bei dem Root-Knoten bis hinab zu den Blattknoten eingerichtet sind, wobei ein Blattknoten nur einen Elternknoten hat und wobei sämtliche dem Root-Knoten benachbarten Knoten in Bezug auf den Root-Knoten Kindknoten sind, aber in Bezug auf andere benachbarte Knoten Elternknoten sind, wobei der Root-Knoten als einer definiert ist, der keinen Elternknoten aufweist, wobei ein Busanforderungssignal von einem anfordernden Knoten zu seinem Elternknoten übermittelt wird, wobei der anfordernde Knoten ein über den Bus auszubreitendes Informationspaket hat, wobei sämtlich das Busanforderungssignal empfangende Knoten das Busanforderungssignal an ihren jeweiligen Elternknoten weiterleiten, wobei das Verfahren der fairen Buszugriffsarbitrierung gekennzeichnet ist durch die Schritte: daß der Root-Knoten bei Empfang eines Busanforderungssignals aus einem benachbarten Knoten dem benachbarten Knoten mit einem Busgewährungssignal antwortet; daß sämtliche das Busgewährungssignal von einem Elternknoten empfangenden Knoten dann das Busgewährungssignal an denjenigen Kindknoten weiterleiten, welcher zuvor das Busanforderungssignal weitergeleitet hat, sofern nicht der Knoten der anfordernde Knoten ist, und daß der anfordernde Knoten bei Empfang des Busgewährungssignals das Informationspaket auf den Bus ausgibt, wobei der anfordernde Knoten, nachdem er das Informationspaket ausgegeben hat, auf eine Lückenperiode wartet, bevor er erneut Zugriff auf den Bus anfordert, wobei die Lückenperiode größer als eine Worst-Case-Signalausbreitungsverzögerung über den Bus ist.
  2. Das Verfahren nach Anspruch 1, ferner umfassend den Schritt, daß vor dem Schritt des Sendens des Anforderungssignals zum Bus, ein Bus-Verweigert-Signal aus dem anfordernden Knoten an jeden seiner Kindknoten gesendet wird.
  3. Das Verfahren nach Anspruch 2, ferner umfassend den Schritt des Weiterleitens eines Bus-Verweigert-Signals aus sämtlichen weiterleitenden Knoten an sämtliche Kindknoten, die nicht die Quelle des Busanforderungssignals waren.
  4. Das Verfahren nach Anspruch 3, ferner umfassend, nach dem Schritt des Antwortens des Root-Knotens an einen benachbarten Knoten mit einem Busgewährungssignal den Schritt, daß der Root-Knoten ein Bus-Verweigert-Signal an sämtliche anderen benachbarten Knoten aussendet.
  5. Das Verfahren nach Anspruch 4, ferner umfassend den Schritt, daß sämtliche Knoten, die das Bus-Verweigert-Signal empfangen, dieses Bus-Verweigert-Signal an sämtliche benachbarten Kindknoten aussenden.
  6. Das Verfahren nach Anspruch 5, ferner umfassend, vor dem Schritt des Aussendens des Informationspakets durch den anfordernden Knoten, den Schritt, daß der anfordernde Knoten den Empfang des Busgewährungssignals bestätigt.
  7. Das Verfahren nach Anspruch 6, ferner umfassend den Schritt, daß sämtliche Knoten, die eine Busgewährungssignalbestätigung empfangen, diese Bestätigung an einen Elternknoten weiterleiten.
  8. Das Verfahren nach Anspruch 1, ferner umfassend den Schritt, daß der Root-Knoten dann, wenn er feststellt, daß er einen Zugriff auf den Bus benötigt, ein Bus-Verweigert-Signal an sämtliche benachbarten Knoten aussendet und sich selbst den Bus gewährt.
  9. Das Verfahren nach Anspruch 7, ferner umfassend den Schritt, daß der Root-Knoten, wenn er feststellt, daß er einen Zugriff auf den Bus benötigt, ein Bus-Verweigert-Signal an sämtliche benachbarten Knoten aussendet und sich selbst den Bus gewährt.
  10. Das Verfahren nach Anspruch 1, wobei der Root-Knoten miteinander in Konflikt stehende gleichzeitige Anforderungen des Busses löst, indem er den Bus auf der Grundlage eines vorgegebenen Auswahlkriteriums benachbarter Knoten gewährt.
DE69333798T 1992-12-21 1993-12-16 Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen Expired - Lifetime DE69333798T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/994,983 US5630173A (en) 1992-12-21 1992-12-21 Methods and apparatus for bus access arbitration of nodes organized into acyclic directed graph by cyclic token passing and alternatively propagating request to root node and grant signal to the child node
US994983 1992-12-21
PCT/US1993/012311 WO1994015302A1 (en) 1992-12-21 1993-12-16 Method and apparatus for arbitrating on an acyclic directed graph

Publications (2)

Publication Number Publication Date
DE69333798D1 DE69333798D1 (de) 2005-06-02
DE69333798T2 true DE69333798T2 (de) 2006-03-09

Family

ID=25541282

Family Applications (4)

Application Number Title Priority Date Filing Date
DE69334228T Expired - Lifetime DE69334228D1 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69334171T Expired - Lifetime DE69334171T2 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69334172T Expired - Lifetime DE69334172T2 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69333798T Expired - Lifetime DE69333798T2 (de) 1992-12-21 1993-12-16 Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen

Family Applications Before (3)

Application Number Title Priority Date Filing Date
DE69334228T Expired - Lifetime DE69334228D1 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69334171T Expired - Lifetime DE69334171T2 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69334172T Expired - Lifetime DE69334172T2 (de) 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph

Country Status (9)

Country Link
US (2) US5630173A (de)
EP (4) EP1132821B1 (de)
JP (7) JP3638949B2 (de)
KR (1) KR100290517B1 (de)
AU (1) AU5953994A (de)
CA (4) CA2698356C (de)
DE (4) DE69334228D1 (de)
HK (3) HK1037036A1 (de)
WO (1) WO1994015302A1 (de)

Families Citing this family (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334030B2 (en) * 1994-12-19 2008-02-19 Apple Inc. Method and apparatus for the addition and removal of nodes from a common interconnect
US5875301A (en) * 1994-12-19 1999-02-23 Apple Computer, Inc. Method and apparatus for the addition and removal of nodes from a common interconnect
US5784648A (en) * 1995-12-01 1998-07-21 Apple Computer, Inc. Token style arbitration on a serial bus by passing an unrequested bus grand signal and returning the token by a token refusal signal
US5758105A (en) * 1995-12-04 1998-05-26 International Business Machines Corporation Method and apparatus for bus arbitration between isochronous and non-isochronous devices
US7388092B2 (en) * 1996-05-03 2008-06-17 Applera Corporation Oligonucleotides and analogs labeled with energy transfer dyes
US6131119A (en) * 1997-04-01 2000-10-10 Sony Corporation Automatic configuration system for mapping node addresses within a bus structure to their physical location
JP3222086B2 (ja) * 1997-04-07 2001-10-22 矢崎総業株式会社 ツリー構造のアドレス設定方法及びそのシステム
US6145018A (en) * 1997-11-24 2000-11-07 Intel Corporation Method for hindering some types of nodes from becoming a bus arbitration controller
US6041348A (en) * 1997-12-01 2000-03-21 Lsi Logic Corporation N-port algorithm for disabling a node within a network during reset
US6411628B1 (en) * 1998-02-02 2002-06-25 Intel Corporation Distributed arbitration on a full duplex bus
US6434656B1 (en) * 1998-05-08 2002-08-13 International Business Machines Corporation Method for routing I/O data in a multiprocessor system having a non-uniform memory access architecture
US6393557B1 (en) 1998-05-08 2002-05-21 International Business Machines Corporation Dynamic method for configuring a computer system
JP3277887B2 (ja) 1998-06-19 2002-04-22 日本電気株式会社 送受信方法、送受信回路および送受信回路の制御方法
US6122723A (en) * 1998-08-20 2000-09-19 International Business Machines Corporation Switching multi-initiator SCSI devices to a singular target bus
US7013354B1 (en) 1998-10-05 2006-03-14 Canon Kabushiki Kaisha Channel protocol for IEEE 1394 data transmission
US6438604B1 (en) 1998-10-05 2002-08-20 Canon Kabushiki Kaisha Digital video network interface
US6657973B1 (en) * 1998-10-27 2003-12-02 Matsushita Electric Industrial Co., Ltd. Communications node, network system and method of controlling network system
JP3326399B2 (ja) 1998-12-17 2002-09-24 松下電器産業株式会社 通信ノードおよびこれを有する情報機器、並びにネットワークシステム
US6256698B1 (en) 1999-01-11 2001-07-03 Sony Corporation Method of and apparatus for providing self-sustained even arbitration within an IEEE 1394 serial bus network of devices
US7062456B1 (en) 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US6810452B1 (en) 1999-03-19 2004-10-26 Sony Corporation Method and system for quarantine during bus topology configuration
US6374319B1 (en) * 1999-06-22 2002-04-16 Philips Electronics North America Corporation Flag-controlled arbitration of requesting agents
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
US6910090B1 (en) 1999-09-21 2005-06-21 Sony Corporation Maintaining communications in a bus bridge interconnect
EP1090856A1 (de) * 1999-10-04 2001-04-11 LAB Industrie Misch- und Wiegetechnik GmbH System und Verfahren zur Entnahme von Schüttgut aus einem Behälter, insbesondere aus einem kastenförmigen Transportbehälter
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6959343B1 (en) 1999-11-01 2005-10-25 Apple Computer, Inc. Method and apparatus for dynamic link driver configuration
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6631426B1 (en) 1999-11-02 2003-10-07 Apple Computer, Inc. Automatic ID allocation for AV/C entities
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US8185549B1 (en) * 1999-11-03 2012-05-22 A9.Com, Inc. Method and system for navigating within a body of data using one of a number of alternative browse graphs
US6636914B1 (en) 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
TW448365B (en) * 1999-11-15 2001-08-01 Via Tech Inc Bus arbitration method providing preemption function between control chip sets
US6457086B1 (en) * 1999-11-16 2002-09-24 Apple Computers, Inc. Method and apparatus for accelerating detection of serial bus device speed signals
US6728821B1 (en) 1999-11-29 2004-04-27 Sony Corporation Method and system for adjusting isochronous bandwidths on a bus
US6751697B1 (en) * 1999-11-29 2004-06-15 Sony Corporation Method and system for a multi-phase net refresh on a bus bridge interconnect
US6639918B1 (en) 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US7266617B1 (en) * 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US7421507B2 (en) * 2000-02-16 2008-09-02 Apple Inc. Transmission of AV/C transactions over multiple transports method and apparatus
US6831928B1 (en) 2000-02-17 2004-12-14 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US7050453B1 (en) * 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6484171B1 (en) 2000-03-31 2002-11-19 International Business Machines Corporation System method and computer program for prioritizing filter rules
US6618785B1 (en) * 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
JP2001313646A (ja) * 2000-04-27 2001-11-09 Sony Corp 電子機器およびその物理層回路のステート制御方法
US6757773B1 (en) 2000-06-30 2004-06-29 Sony Corporation System and method for determining support capability of a device coupled to a bus system
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
JP4097891B2 (ja) * 2000-11-27 2008-06-11 三菱電機株式会社 Ieee1394を用いた同期システム
US6891805B2 (en) * 2001-02-06 2005-05-10 Telephonics Corporation Communications system
US7007123B2 (en) * 2002-03-28 2006-02-28 Alcatel Binary tree arbitration system and method using embedded logic structure for controlling flag direction in multi-level arbiter node
US6886051B2 (en) * 2002-03-28 2005-04-26 Seagate Technology Llc Device discovery method and apparatus
US7024505B2 (en) * 2002-03-28 2006-04-04 Seagate Technology Llc Fair arbitration method in a distributed arbitration system
US7987246B2 (en) 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US7340650B2 (en) * 2002-10-30 2008-03-04 Jp Morgan Chase & Co. Method to measure stored procedure execution statistics
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US7149752B2 (en) * 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US7085759B2 (en) 2002-12-06 2006-08-01 Jpmorgan Chase Bank System and method for communicating data to a process
US7457302B1 (en) 2002-12-31 2008-11-25 Apple Inc. Enhancement to loop healing for malconfigured bus prevention
US7417973B1 (en) 2002-12-31 2008-08-26 Apple Inc. Method, apparatus and computer program product for ensuring node participation in a network bus
US8032439B2 (en) * 2003-01-07 2011-10-04 Jpmorgan Chase Bank, N.A. System and method for process scheduling
US7401156B2 (en) * 2003-02-03 2008-07-15 Jp Morgan Chase Bank Method using control interface to suspend software network environment running on network devices for loading and executing another software network environment
US7379998B2 (en) * 2003-03-31 2008-05-27 Jp Morgan Chase Bank System and method for multi-platform queue queries
US20040210696A1 (en) * 2003-04-18 2004-10-21 Meyer Michael J. Method and apparatus for round robin resource arbitration
US20040230602A1 (en) * 2003-05-14 2004-11-18 Andrew Doddington System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system
US7366722B2 (en) * 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
US8095659B2 (en) 2003-05-16 2012-01-10 Jp Morgan Chase Bank Service interface
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
US7353284B2 (en) * 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US7069278B2 (en) 2003-08-08 2006-06-27 Jpmorgan Chase Bank, N.A. System for archive integrity management and related methods
US7516139B2 (en) 2003-09-19 2009-04-07 Jp Morgan Chase Bank Processing of tree data structures
US7270227B2 (en) 2003-10-29 2007-09-18 Lockheed Martin Corporation Material handling system and method of use
US7788567B1 (en) 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7502338B1 (en) 2003-12-19 2009-03-10 Apple Inc. De-emphasis training on a point-to-point connection
US7421696B2 (en) * 2003-12-22 2008-09-02 Jp Morgan Chase Bank Methods and systems for managing successful completion of a network of processes
US7237135B1 (en) * 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7308517B1 (en) 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
US20050144174A1 (en) * 2003-12-31 2005-06-30 Leonid Pesenson Framework for providing remote processing of a graphical user interface
US20050175027A1 (en) * 2004-02-09 2005-08-11 Phonex Broadband Corporation System and method for requesting and granting access to a network channel
US7183906B2 (en) * 2004-03-19 2007-02-27 Lockheed Martin Corporation Threat scanning machine management system
US20050222990A1 (en) * 2004-04-06 2005-10-06 Milne Kenneth T Methods and systems for using script files to obtain, format and disseminate database information
US20050231358A1 (en) * 2004-04-19 2005-10-20 Company Steven L Search engine for singles with (GPS) position data
CA2563354C (en) 2004-04-26 2010-08-17 Jp Morgan Chase Bank System and method for routing messages
US20050251397A1 (en) * 2004-05-04 2005-11-10 Lockheed Martin Corporation Passenger and item tracking with predictive analysis
US20050251398A1 (en) * 2004-05-04 2005-11-10 Lockheed Martin Corporation Threat scanning with pooled operators
US7212113B2 (en) * 2004-05-04 2007-05-01 Lockheed Martin Corporation Passenger and item tracking with system alerts
US7392471B1 (en) 2004-07-28 2008-06-24 Jp Morgan Chase Bank System and method for comparing extensible markup language (XML) documents
US7366974B2 (en) * 2004-09-03 2008-04-29 Jp Morgan Chase Bank System and method for managing template attributes
US20060059210A1 (en) * 2004-09-16 2006-03-16 Macdonald Glynne Generic database structure and related systems and methods for storing data independent of data type
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
US7739436B2 (en) * 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US7684421B2 (en) * 2005-06-09 2010-03-23 Lockheed Martin Corporation Information routing in a distributed environment
US20060282886A1 (en) * 2005-06-09 2006-12-14 Lockheed Martin Corporation Service oriented security device management network
US7969995B2 (en) * 2005-08-23 2011-06-28 Cisco Technology, Inc. Method and apparatus for constructing a forwarding database for a data communications network
US8223666B2 (en) * 2005-08-23 2012-07-17 Cisco Technology, Inc. Method of constructing a forwarding database for a data communications network
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US7499933B1 (en) 2005-11-12 2009-03-03 Jpmorgan Chase Bank, N.A. System and method for managing enterprise application configuration
US7610172B2 (en) * 2006-06-16 2009-10-27 Jpmorgan Chase Bank, N.A. Method and system for monitoring non-occurring events
US8483108B2 (en) * 2006-07-24 2013-07-09 Apple Inc. Apparatus and methods for de-emphasis training on a point-to-point connection
US20080060910A1 (en) * 2006-09-08 2008-03-13 Shawn Younkin Passenger carry-on bagging system for security checkpoints
CN101179516B (zh) * 2006-11-10 2010-06-09 北京航空航天大学 基于有向图的数据分发方法
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US7610429B2 (en) * 2007-01-30 2009-10-27 Hewlett-Packard Development Company, L.P. Method and system for determining device criticality in a computer configuration
EP2304922A1 (de) 2008-06-17 2011-04-06 Attivio, Inc. Geordnete nachrichtenverarbeitung
US8392614B2 (en) 2009-07-27 2013-03-05 Sandisk Il Ltd. Device identifier selection
US8312088B2 (en) * 2009-07-27 2012-11-13 Sandisk Il Ltd. Device identifier selection
FR2951290B1 (fr) * 2009-10-08 2011-12-09 Commissariat Energie Atomique Controleur d'acces direct en memoire a sources multiples, procede et programme d'ordinateur correspondants
US8495656B2 (en) * 2010-10-15 2013-07-23 Attivio, Inc. Ordered processing of groups of messages
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2443101A1 (fr) * 1978-11-30 1980-06-27 Ibm France Perfectionnement aux systemes de selection d'interface prioritaire
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4698752A (en) * 1982-11-15 1987-10-06 American Telephone And Telegraph Company At&T Bell Laboratories Data base locking
IT1159351B (it) * 1983-02-03 1987-02-25 Cselt Centro Studi Lab Telecom Circuito di arbitraggio a struttura distribuita per le richieste di accesso al bus di un sistema multiprocessore
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4706080A (en) * 1985-08-26 1987-11-10 Bell Communications Research, Inc. Interconnection of broadcast networks
US4897833A (en) * 1987-10-16 1990-01-30 Digital Equipment Corporation Hierarchical arbitration system
DE3838945A1 (de) * 1987-11-18 1989-06-08 Hitachi Ltd Netzwerksystem mit lokalen netzwerken und mit einer hierarchischen wegewahl
US4811337A (en) * 1988-01-15 1989-03-07 Vitalink Communications Corporation Distributed load sharing
US5027342A (en) * 1989-05-03 1991-06-25 The University Of Toronto Innovations Foundation Local area network
US5138615A (en) * 1989-06-22 1992-08-11 Digital Equipment Corporation Reconfiguration system and method for high-speed mesh connected local area network
US5150360A (en) * 1990-03-07 1992-09-22 Digital Equipment Corporation Utilization of redundant links in bridged networks
US5301333A (en) * 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
JPH06500655A (ja) * 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
FR2668626B1 (fr) * 1990-10-30 1992-12-18 Thomson Csf Procede de configuration d'un systeme informatique maille.
FR2676558B1 (fr) * 1991-05-15 1993-07-23 Opticable Procede pour determiner automatiquement la configuration d'un reseau.
DE69229167T2 (de) * 1992-03-27 1999-11-04 Alcatel Sa Anordnung zur Zugriffssteuerung

Also Published As

Publication number Publication date
KR950704745A (ko) 1995-11-20
JP2006229992A (ja) 2006-08-31
EP1132821A2 (de) 2001-09-12
CA2698356A1 (en) 1994-07-07
EP1094395A3 (de) 2006-04-19
AU5953994A (en) 1994-07-19
US5630173A (en) 1997-05-13
JP2004030648A (ja) 2004-01-29
JP3638949B2 (ja) 2005-04-13
CA2698356C (en) 2011-04-12
EP0674788B1 (de) 2005-04-27
EP1094394A2 (de) 2001-04-25
EP1094394B1 (de) 2007-09-12
EP1094395B1 (de) 2008-07-02
WO1994015302A1 (en) 1994-07-07
DE69334172D1 (de) 2007-10-31
JP4195470B2 (ja) 2008-12-10
JP2002314565A (ja) 2002-10-25
JP3834562B2 (ja) 2006-10-18
EP1132821A3 (de) 2006-04-19
CA2408252A1 (en) 1994-07-07
JP3663385B2 (ja) 2005-06-22
DE69334172T2 (de) 2008-06-12
CA2408252C (en) 2005-07-26
DE69334228D1 (de) 2008-08-14
JP2006238452A (ja) 2006-09-07
CA2151369C (en) 2004-02-10
EP1094394A3 (de) 2006-04-19
CA2503335A1 (en) 1994-07-07
EP0674788A1 (de) 1995-10-04
HK1037035A1 (en) 2002-01-25
DE69334171D1 (de) 2007-10-25
JP4195469B2 (ja) 2008-12-10
CA2503335C (en) 2010-06-29
JP3663386B2 (ja) 2005-06-22
EP1132821B1 (de) 2007-09-12
DE69333798D1 (de) 2005-06-02
JP4209428B2 (ja) 2009-01-14
US5802289A (en) 1998-09-01
EP1094395A2 (de) 2001-04-25
KR100290517B1 (ko) 2001-09-17
DE69334171T2 (de) 2008-06-12
HK1037037A1 (en) 2002-01-25
JPH08504989A (ja) 1996-05-28
CA2151369A1 (en) 1994-07-07
HK1037036A1 (en) 2002-01-25
JP2002314566A (ja) 2002-10-25
JP2006217639A (ja) 2006-08-17

Similar Documents

Publication Publication Date Title
DE69333798T2 (de) Verfahren und gerät zur arbitrierung auf einen azyklischen gerichteten graphen
DE69332778T2 (de) Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph
DE19581234B4 (de) Bussteuereinrichtung und Verfahren für eine hierarchische serielle Busanordnung unter Verwendung von Kommunikationspaketen
DE69637469T2 (de) Datenkommunikationsnetzwerk mit hocheffizientem abfrageverfahren
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69931218T2 (de) Verfahren zur synchronisierung von netzwerkknoten
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
DE2230830A1 (de) Datenverarbeitungsanlage
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
DE69532383T2 (de) Verfahren und vorrichtung zur dynamischen erzeugung und erhaltung von rahmenbasierten abfrageprogrammen für das abfragen von isochronen und asynchronen funktionen, die wartezeiten und bandbreiten für die isochronen funktionen garantieren
DE69634482T2 (de) Konkurrenzbetriebsauflösungsverfahren für Datennetzwerke
DE69634983T2 (de) Verfahren und vorrichtung für ein hybrides wettbewerbs- und abfrageprotokoll
DE3546683C3 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE3043894C2 (de)
DE60027004T2 (de) Intelligentes gestapeltes vermittlungssystem
DE69633504T2 (de) Token-ring-netz-multiport-schalter
DE102017120447A1 (de) Halbleitervorrichtung, Verfahren zum Betreiben der Halbleitervorrichtung und ein System, das diese beinhaltet
DE112008004203B4 (de) Kommunikationsverwaltungsvorrichtung, Kommnunikationsvorrichtung und Kommunikationsverfahren
EP2266297B1 (de) Automatische busadressvergabe mittels kollisionsprüfung
DE10163342A1 (de) Datenübertragungsverfahren, serielles Bussystem und Anschalteinheit für einen passiven Busteilnehmer
DE112006003895T5 (de) Kommunikationsknoten und Token-Herausgabeverfahren und Token-Ringkommunikationsverfahren in einem Ring-Kommunikationssystem
DE3924452A1 (de) Knotenpunkt-verarbeitungssystem
DE69937925T2 (de) Verfahren und Vorrichtung zur Geräteidentifizierung in einem Kommunikationsnetz
DE60131765T2 (de) Verfahren zur verbindung mehrerer kommunikationsbusse mit drahtlosen verbindungen
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US