DE69334171T2 - Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph - Google Patents

Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph Download PDF

Info

Publication number
DE69334171T2
DE69334171T2 DE69334171T DE69334171T DE69334171T2 DE 69334171 T2 DE69334171 T2 DE 69334171T2 DE 69334171 T DE69334171 T DE 69334171T DE 69334171 T DE69334171 T DE 69334171T DE 69334171 T2 DE69334171 T2 DE 69334171T2
Authority
DE
Germany
Prior art keywords
node
bus
nodes
signal
parent
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
DE69334171T
Other languages
English (en)
Other versions
DE69334171D1 (de
Inventor
Florin Sunnyvale 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 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 Inc filed Critical Apple Inc
Publication of DE69334171D1 publication Critical patent/DE69334171D1/de
Application granted granted Critical
Publication of DE69334171T2 publication Critical patent/DE69334171T2/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
  • Verwandte Anmeldungen
  • Diese Patentanmeldung ist mit der US-Patentschrift Nr. 5.394.556 , „Verfahren und Gerät mit Einzigadressenzuweisung, Knotenselbstidentifizierung und Topologieabbildung für einen gerichteten azyklischen Graphen" verwandt.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computersysteme. Insbesondere betrifft die vorliegende Erfindung ein Verfahren zur Herstellung und Nutzung eines Kommunikationssystems zwischen einer Vielzahl von beliebig zusammengesetzten Elementen eines Computersystems.
  • Stand der Technik
  • Komponenten in einem gegebenen Computersystem müssen in der Lage sein, untereinander Signale auszutauschen. In sehr einfachen Systemen ist es möglich, jedes Element des Systems mit allen anderen Teilen des Systems direkt zu verdrahte. Tatsächlich aber haben Computerarchitekten schon vor langer Zeit das Konzept eines Kommunikationsbusses entwickelt, um Computer erweiterungsfähig zu machen und eine unbekannte Zahl von Systemteilen anzuschließen.
  • Ein Bus ist eine Kommunikationsleitung wie z. B. ein Draht oder Drähte, die durch das Computersystem hindurch verläuft. Jede Komponente des Systems braucht nur am Bus angeschlossen zu werden, um theoretisch mit jeder der anderen Komponenten im System verbunden zu sein. Natürlich kann nicht jede Komponente zugleich mit anderen Komponenten kommunizieren, da nur ein einziger Kommunikationskanal zwischen den Komponenten zur Verfügung stehen kann. Bei der Nutzung eines Kommunikationsbusses ist es notwendig, eine Anordnung zur gemeinsamen Benutzung zu vorzusehen, damit jede Komponente auf eine effiziente Weise, die keine kritischen Informationen von einer Komponente auf den Buszugriff warten lässt, mit anderen Komponenten kommunizieren kann. Das Verfahren, durch welches Komponenten am Bus den Bus gemeinsam benutzen, wird allgemein als Busarbitrierungsverfahren bezeichnet.
  • Ein Typ von Arbitrierungsverfahren wird in 11.th International Conference an Distributed Computing Systems, Arlington, Texas, USA, Mai 1991, mit dem Titel „A Dag-Based Algorithmus for Distributed Mutual Exclusion" von M. L. Nelson und M. Mizumo beschrieben. Das beschriebene Verfahren basiert auf einem Algorithmus auf Token-Basis in verteilten Systemen, der ein voll angeschlossenes Netzwerk und ein logisches Netzwerk annimmt, das als gerichteter azyklischer Graph strukturiert ist.
  • Zusätzlich zum kritischen Bedarf nach Optimierung des Busarbitrierungsverfahrens, um den Fluss wichtiger Information zu maximieren, kann und sollte die physikalische (und logisch/elektrische) Konfiguration des Busses selbst optimiert werden, um Systemverzögerungen zu minimieren und dabei möglichst flexibel zu bleiben.
  • Um mit anderen Komponenten, die an einen Bus angeschlossen sind, kommunizieren zu können, muss jede Komponente mit Hardware wie z. B. Sende- und Empfangsschaltungen ausgestattet sein, die mit dem Kommunikationsprotokoll, das für den Bus implementiert ist, kompatibel ist. Solch ein Kommunikationsstandard wird im IEEE-Standard P1394 mit dem Titel „High Performance Serial Bus" beschrieben, der diesem Dokument als Anhang A beiliegt. Der in P1394 beschriebene Standard zielt auf die Bereitstellung einer kostengünstigen Verbindung zwischen Karten auf der gleichen Rückwandplatine, Karten auf anderen Rückwandplatinen und externen Peripheriegeräten ab.
  • Bussen oder Netzwerken nach dem Stand der Technik muss bekannt sein, was wo angeschlossen ist. Zum Beispiel weist die Rückseite vieler Computer bestimmte Anschlüsse für spezifische Peripheriegeräte auf. Manche Computer implementieren mehrere Busse, wie z. B. der Macintosh, der für Komponenten wie eine Maus und eine Tastatur einen ADB genannten Bus und für andere Komponenten den SCSI-Bus verwendet. Diese Bustypen sorgen für die Verkettung von Elementen, die Topologie der Verbindungen ist jedoch eingeschränkt. Andere bekannte Busse/Netzwerke erfordern, dass die Knoten des Netzwerks in einem Ring, einer Schleife angeordnet werden, der/die geschlossen sein muss, um zu funktionieren. US-A-4344134 beschreibt Prozessoren in einem Processing Array, die in einer hierarchischen Baumstruktur angeordnet sind. Schließlich erfordern sternförmige oder Naben-und-Speichen-Anordnungen, dass jeder Knoten direkt mit einem zentralen Master verbunden ist. Jedem der Systeme des Stands der Technik fehlt ein wünschenswerter Flexibilitätsgrad.
  • Es wäre wünschenswert und ist daher eine Aufgabe der vorliegenden Erfindung, Elemente eines Computersystems auf eine beliebige Weise an einen Bus anschließen zu können, wobei die beliebige Topologie vom System zu einem funktionierenden System aufgelöst werden kann, ohne eine vorbestimmte Anordnung der Komponenten zu erfordern.
  • KURZFASSUNG DER ERFINDUNG
  • Der vorliegenden Erfindung gemäß wird ein Verfahren für eine faire Buszugriffs-Zuteilung bzw. Busarbitrierung in einem Computersystem bereitgestellt, wobei das Computersystem eine Vielzahl von Komponenten aufweist, die über eine Vielzahl von Kommunikationsleitungen miteinander verbunden sind, wobei die Vielzahl von Komponenten jeweils wenigstens einen Kommunikationsknoten aufweisen, wobei die Kommunikationsknoten ihre zugeordnete Komponente mit einer Komponente mittels einer Kommunikationsleitung durch einen Knotenanschluss verbinden, wobei die Knoten in der Lage sind, eine Vielzahl von Anschlüssen zu haben, wobei die Konfiguration von Knoten und Kommunikationsleitungen einen gerichteten azyklischen Graphen aufweisen, wobei ein Knoten als Wurzelknoten bezeichnet wird, wobei alle nur mit einem benachbarten Knoten gekoppelten Knoten als Blattknoten bezeichnet werden, wobei alle anderen Knoten im Graphen als Astknoten bezeichnet werden, wobei im azyklischen gerichteten Graphen hierarchische Eltern-Kind-Beziehungen zwischen allen benachbarten Knoten hergestellt sich, die vom Wurzelknoten zu jedem Blattknoten hinab verlaufen, wobei jeder Blattknoten nur einen Elternknoten hat und alle zum Wurzelknoten benachbarten Knoten in Bezug auf den Wurzelknotens Kindknoten, jedoch in Bezug auf andere benachbarte Knoten Elternknoten sind, wobei der Wurzelknoten als keinen Elternknoten habend definiert wird, wobei das Verfahren der fairen Buszugriffs-Zuweisung gekennzeichnet ist durch die Schritte des:
    Übertragens eines Bus-Verweigerungssignals von einem anfragenden Knoten zu allen seinen Kindknoten, wobei der anfragende Knoten ein Informationspaket zur Verbreitung auf dem Bus aufweist;
    Übertragens eines Bus-Anfragesignals von einem anfragenden Knoten an seinen Elternknoten;
    wobei alle das Bus-Anfragesignal empfangenden Knoten das Bus-Anfragesignal an ihre jeweiligen Elternknoten weiterleiten und ein Bus-Verweigerungssignal an alle Kindknoten senden, die nicht Quelle des Bus-Anfragesignals waren;
    wobei der Wurzelknoten, sobald er ein Bus-Anfragesignal von einem der benachbarten Knoten erhält, diesem benachbarten Knoten mit einem Bus-Erteilungssignal antwortet, wobei der Wurzelknoten ein Bus-Verweigerungssignal an alle anderen benachbarten Knoten sendet;
    wobei alle Knoten, die das Bus-Erteilungssignal von einem Elternknoten empfangen, das Bus-Erteilungssignal an den Kindknoten senden, der zuvor das Bus-Anforderungssignal gesendet hat, bis auf den Knoten, der der anfragende Knoten ist,
    wobei der anfragende Knoten bei Erhalt des Bus-Erteilungssignals dieses Signal bestätigt und das Informationspaket sendet; und
    wobei der Wurzelknoten bei Feststellung, dass er Zugriff auf den Bus benötigt, ein Bus-Verweigerungssignal an alle benachbarten Knoten sendet und sich selbst Zugriff auf den Bus erteilt.
  • Eine Aufgabe der Erfindung ist die Bereitstellung eines fairen Buszugriffs-Zuteilungsverfahrens für einen Computersystem-Bus oder ein Netzwerk, wobei die Knotenverbindungen zu einem azyklischen gerichteten Graphen aufgelöst wurden.
  • Eine andere Aufgabe der Erfindung ist die Bereitstellung eines Verfahrens zur Token Passing-Busarbitrierung für einen Computersystem-Bus oder ein Netzwerk, in dem die Knotenverbindungen zu einem azyklischen gerichteten Graphen aufgelöst wurden.
  • Eine weitere Aufgabe der Erfindung ist die Bereitstellung eines Mechanismus, durch den von jedem Knoten in einem Netzwerk von Knoten eine präemptive Businitialisierung ausgelöst werden kann, die zu azyklischen gerichteten Graphen aufgelöst wurden, wenn Fehler erkannt werden oder Knoten während des Betriebs hinzugefügt oder entfernt werden.
  • Diese und andere Aufgaben der Erfindung werden in einem System implementiert, in welchem eine beliebige Anordnung von Knoten an einem Systembus zu einem azyklischen gerichteten Graphen aufgelöst wurden. Die hierarchische Anordnung von Knoten weist einen Knoten auf, der als Wurzelknoten bezeichnet wird, während alle anderen Knoten Eltern-Kind-Beziehungen mit den Knoten haben, mit denen sie verbunden sind. Jeder Knoten kann eine Vielzahl von verbundenen Kindanschlüssen mit einem vorbestimmten Acknowledgement Priority-Verfahren haben. Die faire Busarbitrierung sorgt für die Buszuteilung in einer den vorbestimmten Anschlussprioritäten entsprechenden Folge, die allen Knoten einen Zugriff auf den Bus gewährt. Der Wurzelknoten kann seinen Prioritätszugriffsstatus stets geltend machen, um den Buszugriff zu erhalten, was nützlich für den Anschluss eines Wurzelknotens ist, der eine isochrone Datenübertragung erfordert. Alternativ dazu kann ein Token Passing-Arbitrierungsverfahren implementiert werden, bei dem das Token bzw. die Berechtigung für den Buszugriff dem oben beschriebenen Anschlussprioritätsverfahren entsprechend von den Knoten weitergegeben wird. Die präemptive Businitialisierung kann von jedem Knoten bei Erkennung eines Fehlers, der dies notwendig macht, oder beim Hinzufügen oder Entfernen einer Verbindung an einem bestehenden Knoten ausgelöst werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung hervor, wobei:
  • 1 ein Blockdiagramm der der vorliegenden Erfindung gemäß verwendeten Hardware-Layer-Implementierung zeigt.
  • 2(a)-2(b) beliebig zusammengesetzte Knotensammlungen veranschaulichen, wobei die eine azyklisch ist und die andere Mehrfachzyklen einschließt.
  • 3(a) die beliebig zusammengesetzte Knotensammlung von 2(a) ist, die dem erfindungsgemäßen Graphtransformationsprozess unterzogen wird.
  • 3(b)-3(d) alternative Kommunikationsaustausche zwischen Knoten bei der Implementierung der Erfindung zeigen.
  • 3(e) den gerichteten Graphen, der aus dem beliebig zusammengesetzten Netzwerk von 2(a) resultiert, grafisch darstellt.
  • 4 eine symmetrische Graphanordnung zeigt, die die Auflösung eines Wurzelknotenkonflikts erfordert.
  • 5 einen gerichteten azyklischen Graphen zeigt, mit Angabe einer möglichen Reihenfolge bei der Zuweisung einer einmaligen Adresse.
  • 6(a)-6(e) den Prozessfluss zur Durchführung der Graphtransformationsprozedur nach der bevorzugten Ausführungsform der vorliegenden Erfindung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Es wird ein Verfahren und eine Vorrichtung zur Verwendung eines Busses mit einer beliebigen Topologie beschrieben. In der folgenden Beschreibung werden viele spezifische Details dargelegt, wie z. B. verschiedene Computerkomponenten, um ein gründliches Verständnis der vorliegenden Erfindung zu ermöglichen. Doch für einen Fachmann versteht es sich, dass die vorliegende Erfindung auch ohne solche spezifischen Details in die Praxis umgesetzt werden kann. In anderen Fällen wurden wohlbekannte Kontrollstrukturen und Codiertechniken nicht im Detail beschrieben, um das Verständnis der vorliegenden Erfindung nicht unnötig zu erschweren.
  • In dieser ausführlichen Beschreibung werden zahlreiche veranschaulichende Ausdrücke verwendet, um der Beschreibung metaphorisch Klarheit zu verleihen. Zum Beispiel wird häufig auf Eltern-Kind-Beziehungen zwischen Knoten in einer gegebenen Topologie verwiesen. Dadurch soll dem aufgelösten Graphen das Konzept einer „Richtung" gegeben werden. Wie weiter unten beschrieben, ist ein Knoten vorhanden, der als „Wurzelknoten" identifiziert wurde, sobald eine beliebige Topologie zu einem azyklischen gerichteten Graphen reduziert wurde. Der Wurzelknoten hat keinen Elternknoten, alle Knoten, die logisch zu diesem Wurzelknoten direkt benachbart sind, sind Kindknoten des Wurzelknotens. Die „Baum"-Metapher wird durch den Einschluss von Knoten ergänzt, die „Astknoten" und „Blattknoten" genannt werden.
  • Auch wenn die hierin beschriebene Busarchitektur in Bezug auf Komponenten für einen Einzelcomputer beschrieben wird, weist sie allgemein einen größeren Umfang auf. Die vorliegende Erfindung, zum Definieren der Bustopologie kann auf jede beliebig zusammengesetzte Sammlung von Knoten angewandt werden, die wie in einem Netzwerk von Geräten miteinander verbunden sind. Ein Punkt, der anzumerken ist, ist, dass es notwendig ist, einen Knoten von einer physikalischen Computerkomponente zu unterscheiden. Jeder Komponente, die am Bus angeschlossen ist, gehört mindestens ein Node-Physical-Layer-Controller an. Unter bestimmten Umständen kann eine gegebene Komponente vorteilhafterweise mit Mehrfachknoten verbunden sein, im Normalfall liegt aber eine Eins-zu-eins-Entsprechung zwischen den Geräten oder Komponenten am Bus und den Knoten vor.
  • 1 zeigt ein Blockdiagramm eines Knotens 10 gezeigt. Die physikalische Implementierung eines Knotens ist mehr oder weniger beliebig. In der bevorzugten Ausführungsform der vorliegenden Erfindung sind die Knoten konzipiert, um dem Kommunikationsprotokoll IEEE P1394 High Performance Serial Bus zu entsprechen, das als Anhang A beigefügt ist. Der Knoten 10 umfasst die Arbitrierungsstatusmaschinenlogik 11. Diese Ar bitrierungsstatusmaschinenlogik 11 integriert alle logischen Schaltungen zur Ausführung der Methodologien und Algorithmen, die hierin beschrieben werden. Die Schaltungen können eine programmierbare Logikanordnung (PLA) umfassen oder ausschließlich ausgelegt sein, um die hierin beschriebenen Funktionen auszuführen. Aufgrund der Beschreibung der Funktionen, die von der Knotenlogik ausgeführt werden, wird der Fachmann in der Lage sein, die vorliegende Erfindung ohne übermäßiges Experimentieren zu implementieren. Der Knoten sollte dank seiner Logik mindestens das minimale Arbitrierungsprotokoll implementieren, das die Businitialisierung, die Eigenidentifizierung und die Busarbitrierungsfunktionen einschließt, die alle im Folgenden beschrieben werden.
  • Der in 1 gezeigte Knoten 10 schließt auch Übertragungsmultiplexer 12 und 13 und Datensender, -empfänger und -resynchronisierer 14 ein. Der in 1 gezeigte Knoten ist mit einem lokalen Host 15 verbunden. Der lokale Host 15 kann jedes Gerät sein, das an den Bus angeschlossen werden soll, wie z. B. ein Diskettenlaufwerk, eine CPU, eine Tastatur oder jede andere Komponente, die mit anderen Komponenten im System kommunizieren muss. Der Knoten 10 kommuniziert über Kommunikationsleitungen mit anderen Knoten. Eine Leitung ist eine Verbindung zwischen zwei Anschlüssen und konkret gesagt ein Kabelsegment, kann aber allgemein als beliebiger physikalischer Kommunikationskanal implementiert sein. Eine Leitung muss in der Lage sein, zwischen den zwei Anschlüssen, welche sie verbindet, mindestens einen Halbduplex-Kommunikationskanal bereitzustellen. Ein Anschluss ist die Schnittstelle zwischen einem Knoten und einer Leitung. Erfindungsgemäß muss ein Anschluss die Fähigkeit zum Senden und Empfangen von Daten und zur Arbitrierungssignalisierung aufweisen. Ein Anschluss muss in der Lage sein, zu bestimmen, ob er über eine Leitung mit einem anderen Anschluss verbunden ist oder nicht. Eine Methode, um dies zu erleichtern, besteht darin, eine Vorspannung über die Leitung anzulegen, die vom Anschluss am anderen Ende der Leitung erkannt werden kann. Wenn an einem Anschluss eine Leitung angeschlossen ist, deren anderes Ende nicht mit einem Anschluss verbunden ist, d. h. eine blanke Leitung, wird der Anschluss bestimmen, dass dieser Anschluss nicht verbunden ist. In 1 weist der dargestellte Knoten 10 drei Außenanschlüsse 21, 22 und 23 mit jeweiligen Verbindungsleitungen 17, 18 und 19 auf.
  • Eine der Implementierungsregeln für Knoten, um die vorliegende Erfindung zu implementieren, ist, dass ein Knoten einen oder mehrere Anschlüsse haben kann. Ein Knoten muss in der Lage sein, an jedem seiner Anschlüsse Daten zu senden und zu empfangen. Ein Knoten muss in der Lage sein, an einem einzigen seiner aktivierten Anschlüsse auf einmal Daten zu empfangen, und muss in der Lage sein, diese Daten an allen übrigen aktivierten Anschlüssen weiterzusenden. Ein Knoten muss in der Lage sein, Signalisierungsmeldungen an all seinen Anschlüssen gleichzeitig und unabhängig zu empfangen und zu senden. Für jeden Anschluss eines Knotens sind separate Signalisierungssendeempfänger, Codierer und Decoder erforderlich. Ein Knoten in Minimalausführung muss kein lokales Hostgerät haben. Solch ein Knoten kann zum Beispiel als eine Kabelverlängerung fungieren. Im Folgenden werden Geräte und lokale Hosts ignoriert, und alle Bezugnahmen auf die Bustopologie beziehen sich auf Knoten und Knotenverbindungen durch verschiedene Anschlüsse.
  • Graphtransformation
  • 2(a) und 2(b) veranschaulichen beliebig zusammengesetzte Knotensammlungen. Im Folgenden werden Knoten lediglich als Kreise dargestellt, die aber jeweils Elemente umfassen, die den in 1 beschriebenen entsprechen. Es ist ferner anzumerken, dass jeder Knoten mehr oder weniger als die drei Außenanschlüsse aufweisen kann, die in dieser Zeichnung gezeigt werden. Die Linien, die jeden dieser Knoten verbinden, sind die Methode, um die Verbindungen darzustellen. Anschlüsse werden nicht gezeigt, stellen aber implizit die Schnittstelle dar, an welcher eine Leitung und ein Knoten verbunden sind.
  • Das hierin beschriebene Busarbitrierungsverfahren setzt voraus, dass die beliebige Topologie zu einem azyklischen gerichteten Graphen aufgelöst wird. In einem Graphen mit belie biger Topologie kann eine Sammlung von Knoten und Leitungen einen Zyklus formen. Ein Zyklus liegt vor, wenn es von einem spezifischen Knoten im Graphen ausgehend möglich ist, durch Leitungen und Knoten zum selben Knoten zurückzukehren, ohne eine Leitung zweimal zu benutzen. 2(a) veranschaulicht einen azyklischen Graphen, weil keiner der gezeigten Knoten in einer Schleife angeordnet ist. 2(b) ist jedoch kein azyklischer Graph, weil die vom Kasten 25 umrandete Region eine Sammlung von Knoten 40-47 enthält, die Mehrfachzyklen formen. Das beschriebene Busarbitrierungsverfahren erfordert, dass keine Zyklen vorhanden sind, weshalb hierin auch ein Verfahren für einen Benutzereingriff beschrieben wird, um Zyklen aufzulösen.
  • Zusätzlich zur Anforderung, dass ein Graph azyklisch zu sein hat, muss er auch gerichtet sein. Ein gerichteter Graph ist einer, bei dem eine hierarchische Anordnung benachbarten Knoten hergestellt wurde. Am Anfang bestehen keine Eltern-Kind-Beziehungen zwischen Knoten. Das heißt, Knoten 31 kann zum Beispiel der „Elternknoten" für Knoten 34 oder der „Kindknoten" für Knoten 34 sein. Daher ist es notwendig, einen gegebenen beliebigen Topologiegraphen zu nehmen und ihn in einen azyklischen und gerichteten Graphen umzuwandeln. Die Verfahren, die hierin beschrieben werden, sind in der Lage, diese Transformation für jede beliebige Topologie durchzuführen, unabhängig von der Zahl der Knoten oder davon, wie sie physikalisch verbunden sind, und ungeachtet der Signalisierungslaufzeit entlang der Leitungen.
  • Knotenkommunikation
  • Zuerst wird der Prozess der Umwandlung eines azyklischen beliebigen Graphen in einen gerichteten Graphen beschrieben. Dann folgt der Fall, in dem die Zyklusauflösung erforderlich ist. 3(a) zeigt den beliebigen Graphen von 2(a), wobei die Knoten und Leitungen mit Statusangaben versehen sind und Signale angegeben sind, die im Graphtransformationsprozess zum Richten eines Graphen übertragen werden. An dieser Stelle ist es aufschlussreich, die Signalkommunikation zwischen Kno ten zu beschreiben. 3(b) veranschaulicht zwei Knoten 50 und 51 (nachstehend jeweils Knoten A und Knoten B genannt), die durch die Leitung 52 verbunden sind. Wie erwähnt, ist die Leitung der Kommunikationskanal, der die Senderempfängeranschlüsse der jeweiligen Knoten miteinander verbindet, wie oben Bezug nehmend auf 1 beschrieben. Während des Graphtransformationsprozesses wird es für Knoten notwendig, Eltern-Kind-Beziehungen mit benachbarten Knoten herzustellen. Zwei Knoten gelten als benachbarte Knoten, wenn mindestens eine Leitung vorhanden ist, die zwischen einem Anschluss des ersten Knotens und einem Anschluss des zweiten Knotens verbunden ist. In 3(b)-3(d) wird angenommen, dass die aufzulösende Beziehung ist, dass Knoten B der Elternknoten von Knoten A ist, und dass es für die Knoten sinnvoll ist, diese Beziehung herzustellen.
  • Bevor eine Richtung festgelegt ist, sendet der Knoten A von seinem Anschluss, mit dem die Leitung 52 verbunden ist, das Signal „Du bist mein Elternknoten" (YAMP), wenn es für Knoten A zweckmäßig ist, Knoten B als seinen Elternknoten zu bestimmen. Dieser Meldungsinhalt kann jede Form annehmen, sofern dem Knoten bekannt ist, dass er YAMP signalisiert und Knoten B in der Lage ist, zu versehen, dass die empfangene Meldung YAMP bedeutet. Wenn das YAMP-Signal 53 vom Knoten B empfangen wird, antwortet der Knoten B dem Knoten A, indem er durch die Leitung 52 „Du bist mein Kindknoten" (YAMC) an den Knoten A sendet. Die Arbitrierungsstatusmaschinenlogik 11 des Knotens A wird die Laufzeit zwischen dem Senden des YAMP-Signals 53 und dem Empfangen des YAMC-Signals 54 verfolgen. Die gemessene Zeit entspricht dem Zweifachen der Laufzeitverzögerung zwischen den Knoten A und B. Bei Empfang des YAMC-Signals antwortet Knoten A mit einem „Du bist mein Kindknoten bestätigt" (YAMCA)-Signal 55. Dies gibt dem Knoten B die Fähigkeit, auch die Laufzeitverzögerung zwischen den Knoten zu bestimmen, die der Laufzeit zwischen dem Senden von YAMC und dem Empfang von YAMCA entspricht. Bei Halbduplex-Kommunikationsleitungen hat die YAMCA-Meldung auch die Wirkung, dass der Kommunikationskanal auf korrekte Weise zugewiesen wird.
  • Bei Vollduplex-Kommunikationskanälen können die drei logischen Meldungen YAMP, YAMC und YAMCA alternativ dazu nur durch zwei Signalübertragungen gesendet werden. Diese Situation, wo der Knoten A das YAMP-Signal 56 kontinuierlich anlegt, bis er das Antwortsignal YAMC 57 empfängt, ist in 3(c) dargestellt. Das YAMCA-Signal wird logisch zum Knoten B übertragen, indem erkannt wird, dass das YAMP-Signal nicht mehr ankommt.
  • Die Verwendung dieses beschriebenen dreifachen asynchronen Meldungsaustauschs stellt einen Mechanismus bereit, durch den beide Knoten, die am Meldungsaustausch beteiligt sind, die Laufzeitverzögerung durch die Leitung bestimmen können. Dieser Verzögerungswert wird zur Auflösung von Konfliktsituationen, die weiter unten beschrieben werden, und während der normalen Busarbitrierung verwendet, um die Busleistung zu optimieren. Die dynamische Gewinnung dieser Parameter ist nicht zwingend notwendig. Alternativ dazu kann auf Kosten der maximalen Busleistung eine maximale Laufzeitverzögerung im Voraus definiert werden.
  • Sobald die Knoten A und B Meldungen ausgetauscht haben, die bedeuten, dass Knoten B der Elternknoten von Knoten A ist, gilt die Leitung als gerichtet. Knoten A bezeichnet seinen Anschluss, mit dem die Leitung 52 verbunden ist, in seiner Logik als einen Elternanschluss (der mit einem Elternknoten verbunden ist), und Knoten B bezeichnet seinen Anschluss, mit dem die Leitung 52 verbunden ist, als einen Kindanschluss (der ist mit einem Kindknoten verbunden ist). Es ist wichtig, die Bezeichnung der Anschlüsse beizubehalten, da die Verfahren, die unten beschrieben werden, in Form von Bezeichnungen erfolgen, die diesen Knoten und Anschlüssen an einem bestimmten Zeitpunkt zugewiesen werden. Eine grafische Kurzschreibweise wird in 3(d) veranschaulicht, wo der Richtungspfeil 58 anzeigt, dass der Knoten B als Elternknoten des Knotens A festgelegt wurde und die Leitung gerichtet ist.
  • Richtungsbestimmung
  • Wieder Bezug nehmend auf 3(a) und die Prozesse in 6(a)-6(e), wird nun der Prozess des Richtens des gesamten beliebigen Topologie beschrieben. Es ist erforderlich, einige zusätzliche bildhafte Definitionen einzuführen, um die Erklärung des Topologietransformationsprozesses zu vereinfachen. Zuerst wird ein „Blattknoten" als ein Knoten mit nur einen verbundenen Anschluss definiert. Ein Knoten erkennt seinen Status als Blattknoten, sobald er nach dem Einschalten oder einer anderen Businitialisierung initialisiert wurde. Ein „Astknoten" ist ein Knoten mit mindestens zwei verbundenen Anschlüssen. An allen bis auf einem seiner Anschlüsse, die verbunden sind, wird der Astknoten das YAMP-Signal empfangen und es bestätigt haben. An seinem verbleibenden Anschluss hat ein Astknoten das YAMP-Signal gesendet und dadurch festgelegt, dass er einen Elternknoten hat. Ein Knoten erhält keinen Aststatus, bis er bestimmt hat, dass er einen Elternknoten hat (ein Knoten kann nur einen Elternknoten haben) und all seine anderen Anschlüsse mit Kindknoten verbunden sind. Bis er den Aststatus erworben hat, gilt ein Knoten als „Zyklusknoten", denn bevor bestimmt wird, dass er ein Astknoten ist, besteht die Möglichkeit, dass der Knoten einem Zyklus angehört, was die Festlegung einer Richtung unmöglich macht.
  • Die Graphtransformationsprozedur startet in Schritt 60 bei der Businitialisierung (durch Einschaltung oder Auslösung), wobei die Blattknoten in der beliebigen Topologie in Schritt 61 sich selbst als Blattknoten erkennen und in Schritt 68 als solche bezeichnen, indem sie am Entscheidungssymbol 66 bestimmen, dass sie nur einen verbundenen Anschluss aufweisen. Im Graphen, der in 3(a) dargestellt ist, sind die Knoten 33, 35, 36 und 37 Blattknoten, die, sobald sie initialisiert wurden, in Schritt 69 alle das YAMP-Signal durch ihren einen verbundenen Anschluss zu ihrem benachbarten Knoten senden. Die Knoten, die diese Signale empfangen haben, werden dann in Schritt 70 die YAMC-Signale an die Blattknoten zurücksenden, wodurch für die gegebene Leitung zwischen jeweiligen Eltern-Kind-Paaren eine Richtung festgelegt wird, nachdem die YAMCA- Kommunikation beendet wurde. In Schritt 71 bezeichnet jeder Blattknoten seinen einzigen verbundenen Anschluss als einen Elternanschluss, und jeder empfangende Anschluss am Elternknoten wird als ein Kindanschluss bezeichnet.
  • Die Knoten im Graphen, die nicht von Anfang an Blattknoten sind, werden aus dem obigen Grund zuerst als „Zyklusknoten" betrachtet und dann der Zyklusknotenprozedur 63 entsprechend verarbeitet. Jeder Zyklusknoten, der alle seiner verbundenen Anschlüsse bis auf einen als Kindanschlüsse bezeichnet hat, sendet dann in Schritt 85 das YAMP-Signal von seinem übrigen unbezeichneten Anschluss. Wenn diese Richtung für die Leitung festgelegt ist, wird der Zyklusknoten dann als ein Astknoten bezeichnet. Nachdem der Blattknoten 37 festgelegt hat, dass der Knoten 34 sein Elternknoten ist, hat der Knoten 34 nur einen unbestimmten Anschluss (da die Leitungsverbindung zum Knoten 37 durch einen Kindanschluss erfolgt), weshalb der Knoten 34 das YAMP-Signal zum Knoten 31 sendet, was zur Folge hat, dass der Knoten 34 zu einem Astknoten wird. Dementsprechend sendet der Knoten 31 das YAMP-Signal zum Knoten 30, sobald der Knoten 31 erkannt hat, dass die Knoten 33 und 34 seine Kindknoten sind. Wenn beim Entscheidungssymbol 75 ein Knoten durch all seine Anschlüsse das YAMP-Signal empfangen hat, wird dieser Knoten zum Wurzelknoten. Nachdem der Knoten 30 in 3(a) die YAMP-Signale von den Knoten 31 und 32 empfangen hat, wird die Bezeichnung von Zyklus- zu Wurzelknoten umgeändert. Im Graphen von 3(a) ist es nicht notwendigerweise der Fall, dass der Knoten 30 zum Wurzelknoten wird. Wenn einige der Leitungen im Baum lange Laufzeitverzögerungen aufwiesen, kann der Knoten 30 ein YAMP-Signal an einem Anschluss empfangen und dann durch seinen anderen Anschluss ein YAMP-Signal gesendet haben. Jeder der Knoten kann zum Wurzelknoten werden, selbst ein Blattknoten, da die Wurzeleigenschaft Vorrang hat. 3(e) zeigt den gerichteten Graphen, der aus den in 3(a) gezeigten übertragenen Signalen resultiert, wobei jeder Knoten bezeichnet wurde und die Richtungen durch schwarze Pfeile angezeigt werden.
  • Wurzelknotenkonf1ikt
  • In bestimmten Fällen kann eine Wurzelknoten-Konfliktsituation auftreten. Dies kann zum Beispiel der Fall sein, wenn die beliebige Topologie eine symmetrische Anordnung hat, wie die in 4 gezeigte. Im beliebigen Graphen, der in 4 dargestellt ist, hat jeder der Knoten 160 und 161 festgelegt, dass er ein Elternknoten für die zwei Blattknoten ist, mit denen er verbunden ist. Dann hat jeder etwa zur gleichen Zeit das YAMP-Signal zum anderen gesendet. Die Wurzelknoten-Konfliktsituation wird von beiden betroffenen Knoten am Entscheidungssymbol 86 erkannt. Jeder Knoten empfängt ein Signal, das ihn zum Elternknoten bestimmt, obwohl er dasselbe Signal durch denselben Anschluss gesendet hat. Jeder der konflikthaften Knoten antwortet dem anderen in Schritt 91 mit dem YAMC-Signal, was jedem erlaubt, die „Entscheidungszeitdauer" zu bestimmen, die dem Zweifachen der Laufzeit zwischen den Knoten entspricht.
  • Die Wurzelknoten-Konfliktsituation wird durch einen Zufallsentscheidungsmechanismus aufgelöst, der in jeder Arbitrierungsstatusmaschinenlogikeinheit 11 jedes Knotens integriert ist. Bei jeder „Entscheidungszeitdauer", die abläuft, entscheidet jeder Knoten in Schritt 92 nach dem Zufallprinzip (mit 50%iger Wahrscheinlichkeit), ob er das YAMP-Signal erneut zum anderen sendet. Mit Sicherheit wird ein Knoten innerhalb einer endlichen Zahl von Zyklen entscheiden, den anderen als seinen Elternknoten zu bestimmen, ohne dass dieser erwidert. Derjenige, der zum Elternknoten bestimmt worden ist, wird in Schritt 95 zum Wurzelknoten. Alternativ dazu können Knoten vorbestimmte Auswahlkriteriumswerte zugewiesen werden, wobei der größere oder kleine bestimmt, welcher Knoten in einem Konfliktereignis dominiert. Die dynamische Bestimmung der „Entscheidungszeitdauer" ist zur Implementierung der vorliegenden Erfindung nicht wesentlich, obwohl sie die optimale Leistung bietet. Als Alternative kann eine vordefinierte „Entscheidungszeitdauer" benutzt werden, solange sie größer ist als die ungünstigste Übertragungslaufzeit, die in einem Bus mit diesem Algorithmus zu erwarten ist. Das gleiche Verfahren, das zur Auflösung von Wurzelknotenkonflikten benutzt wird, wird auch angewandt, um andere Konfliktereignisse aufzulösen, die weiter unten beschrieben werden.
  • Bestimmung des Wurzelknotens
  • Wie oben beschrieben, ist das Ergebnis des Graphtransformationsprozesses die Zuweisung des Wurzelattributs an einen einzigen Knoten im Graphen. Dieser Wurzelknoten trifft die letzte Entscheidung im Busarbitrierungsverfahren, das im Folgenden beschrieben wird, und kann daher mit maximaler Priorität auf den Bus zugreifen, ohne spezielle Prioritätszeitunterbrechungen zu verwenden. Es ist oft wünschenswert, das Wurzelattribut einem vorbestimmten Knoten zuweisen zu können, bei seiner Herstellung oder dynamisch (während der Laufzeit), um ein gegebenes System zu optimieren. Ein bestimmter Bus kann einen Knoten aufweisen, der eine isochrone Datenübertragung erfordert. Isochrone Daten sind Daten, die an einem bestimmten Zeitpunkt übertragen werden müssen, um zweckmäßig zu sein. Zum Beispiel muss Musik von einer Compakt Disk in der Reihenfolge übertragen und ausgegeben werden, in der sie gehört werden soll, und ohne signifikante Verzögerungen, im Unterschied zu Datendateien, die stückchenweise und nicht notwendigerweise der Reihenfolge entsprechend übertragen werden müssen.
  • Knoten können in Bezug auf die Wurzelknotenbestimmung in drei Kategorien eingeteilt werden. Diese Bezeichnungen können bei der Fertigung erfolgen, indem sie im Gerät festverdrahtet werden, durch Programmieren der Arbitrierungsstatusmaschinenlogik oder auf höherer Ebene durch Software, die die Entscheidung trifft und dann einen Neustart einleitet, wobei sie diese Entscheidung aufrechterhält. Die drei Bezeichnungen, die einem Knoten in Bezug auf die Bestimmung zum Wurzelknoten zugewiesen werden können, sind: Knoten, die nicht Wurzelknoten werden wollen, Knoten, die Wurzelknoten werden können (sollten) und Knoten, die Wurzelknoten werden sollen. Diese Bezeichnungen werden in Schritt 81 und 83 geprüft. Ein Knoten, der zur ersten Kategorie gehört, wird die Graphtransformationsprozedur starten, sobald er eine Anweisung dazu erhält. Dies wird normalweise direkt nach dem Ende der Businitialisierungsprozedur erfolgen. Ein Knoten der zweiten Kategorie wird den Start der Graphtransformationsprozedur in Schritt 84 eine vorbestimmte Zeit lang verzögern, nachdem er angewiesen wurde, die Prozedur zu starten. Durch diese Verzögerung erhöht der Knoten seine Chance, zum Wurzelknoten zu werden. (Die YAMP-Signale werden ihn aufgrund der Verzögerung mit höherer Wahrscheinlichkeit erreichen). Trotz der zusätzlichen Verzögerung ist es immer noch möglich, dass ein Knoten, der „Knoten werden kann", am Ende nicht zum Wurzelknoten bestimmt wird. Dies wird von der gegebenen Topologie und den Laufzeitverögerungen der Meldungen abhängen. Die Verzögerungsmenge kann während des Designs so definiert werden, dass sie größer ist als eine anzunehmende ungünstigste Laufzeitverzögerung durch einen recht komplexen Graphen.
  • Ein Knoten der dritten Kategorie von Wurzelbezeichnungsmöglichkeiten kann die Tatsache, dass er der Wurzelknoten sein muss, nur erkennen, nachdem der Graph bereits transformiert worden ist und alle Knoten die Eigenidentifizierung durchgeführt haben. Diese Bestimmung kann von der Arbitrierungsstatusmaschinenlogik oder von Software durchgeführt werden, die auf dem Hostsystem läuft. Wenn dies auftritt, vereinbart der Knoten, der zum Wurzelknoten werden soll, mit allen anderen Knoten im Bus, dass er zum einzigen und alleinigen Wurzelknoten werden wird, und startet den Graphtransformationsprozess, indem er ein präemptives Businitialisierungssignal signalisiert, das weiter unten beschrieben wird. Der Knoten wartet dann in Schritt 82 darauf, dass er zum Wurzelknoten wird, und beteiligt sich nicht an der Graphtransformation, bis er das YAMP-Signal an all seinen Anschlüssen empfangen hat, was seine Bestimmung zum Wurzelknoten erzwingt.
  • Sobald der Wurzelknoten bestimmt worden ist, kann der Graph als gerichtet gelten. Zwischen allen benachbarten Knoten im Graphen liegt eine definierte Beziehung vor.
  • Zyklusauflösung
  • Die oben beschriebenen Prozeduren zum Richten eines Graphen sind nur auf einen azyklischen Graphen anwendbar. Wenn in der beliebigen Topologie Zyklen vorhanden sind, müssen sie durch die Prozedur, die bei Schritt 80 beginnt, aufgebrochen werden. Das Vorhandensein eines Zyklus wird in Schritt 79 erkannt, wenn ein Knoten nach Ablauf einer vorbestimmten Time Out-Zeit noch als Zyklusknoten statt als Blatt-, Ast- oder Wurzelknoten bezeichnet wird. Die Zeitzählung „Zykluserkennung" startet direkt nach dem Ende der Businitialisierungsfunktion. Die Ablaufzeit braucht nicht länger zu sein als die Dauer des Graphtransformationsprozesses im ungünstigsten Fall (unter Einschluss der Verzögerungszeit für einen Knoten, der „Wurzelknoten werden kann", und eines möglichen Wurzelknoten-Konfliktereignisses).
  • Das Time Out-Ereignis „Zykluserkennung" muss nicht für allen Knoten eines Graphen synchron auftreten, da alle Meldungsaustausche asynchrone Ereignisse sind. Daher ist es für einen Knoten, der sein Time Out-Ereignis „Zykluserkennung" noch nicht erreicht hat, möglich, eine Meldung zu empfangen, die angibt, dass eine Zyklusauflösung läuft. Solch ein Knoten wird sein Time Out-Intervall „Zykluserkennung" abbrechen und den geeigneten Zyklusauflösungsprozess starten.
  • Das erfindungsgemäße Zyklusauflösungsverfahren erfordert den Eingriff des Benutzers der zusammengesetzten Sammlung von Knoten. Wenn an einem Knoten der Time Out „Zykluserkennung" auftritt, kann dem Systembenutzer in Schritt 100 von 6(a) durch ein Ausgabegerät mitgeteilt werden, dass ein Zyklus vorliegt, und welche Knoten betroffen sind. Der Benutzer wird dann angewiesen, die Leitungen zu trennen, um alle vorhandenen Zyklen zu beseitigen. Dann kehrt der Benutzer zurück, um die Graphtransformationsprozedur zu steuern.
  • Sobald alle Schleifen aufgebrochen wurden und keine Zyklen übrig sind, kann die Prozedur zur Umwandlung des Graphen wie in den obigen Abschnitten beschrieben durchgeführt werden, bis der ganze Graph sowohl azyklisch als auch gerichtet ist.
  • Zuweisung von einmaligen physikalischen Adressen
  • Wenn aus der beliebigen Ausgangstopologie ein gerichteter azyklischer Graph hergestellt wurde, ist es dann, jedem Knoten im Graphen eine einmalige physikalische Adresse zuzuweisen. Dieser Prozess beginnt damit, dass alle Blattknoten den Bus anfordern, indem sie das Bus-Anfragesignal (BR-Signal) durch ihren einzigen verbundenen Anschluss senden. Der Elternknoten, der dieses Signal empfängt, wartet, bis er die BR-Signale von all seinen Kindanschlüssen empfangen hat, und sendet das BR-Signal dann an seinen Elternknoten. Sobald der Wurzelknoten durch all seine Kindanschlüsse eine Busanfrage empfangen hat, trifft er eine Entscheidung, um durch einen Anschluss den Buszugriff zu erteilen und durch seine übrigen Anschlüsse ein Bus-Verweigerungssignal (BD-Signal) zu senden. Das Verfahren, um zu wählen, welche Busanfrage zu gewähren ist, kann eine Vorausentscheidung wie die oben beschriebene sein, wo die Anschlüsse zum Beispiel von links nach rechts oder auf der Basis der Anschlussnummerierung usw. gewählt werden. Das Bus-Erteilungssignal (BG-Signal) wird vom Wurzelknoten zu seinem anfragenden Kindknoten gesendet. Wenn dieser anfragende Kindknoten selbst ein Elternknoten ist, der die Busanfrage eines seiner Kindknoten weitergeleitet hat, sendet er das Bus-Verweigerungssignal durch alle seiner Kindanschlüsse bis auf einen, auf gleiche Weise, wie oben beschrieben. Schließlich empfängt ein Blattknoten das Bus-Erteilungssignal, worauf er mit einem Bus-Erteilungsbestätigungssignal (BGA-Signal) antwortet, das zum Wurzelknoten zurückgeleitet wird. Die Weiterleitung der BD- und BDA-Signale dient der Zuweisung der Kommunikationskanäle, was bei Halbduplex-Kommunikationskanälen erforderlich sein kann. Jeder der zurückgewiesenen Knoten wartet dann auf die Aktivität des Knotens, der schließlich das BG-Signal empfängt.
  • Der Knoten, dem schließlich der Zugriff auf den Bus gewährt wird, sendet ein Adresszuweisungspaket. Der Knoten sendet dieses Paket auf dem Bus, und es wird von allen anderen Knoten empfangen, wobei jeder davon die Zahl der empfangenen Adresspakete zählt. Das gesendete Adresspaket kann eine beliebige Information enthalten. Die einmalige physikalische Adresse eines Knotens basiert auf der Zahl der Adresspakete, die ein Knoten gezählt hat, bevor er ein Adresspaket sendet. Dadurch werden keine zwei Knoten die gleiche Adresse haben, auch wenn ihnen keine Adressinformation im Voraus zugewiesen wurde. Die tatsächliche Zusammensetzung des Adresspakets ist beliebig und kann jeder Bitstrom sein, der vom System effizient genutzt werden kann. Nach der Übertragung des Pakets zur Zuweisung einer physikalischen Adresse sendet ein Knoten ein Signal „Kindknoten-ID fertig" (CIC-Signal). Der Elternknoten, der dieses an seinem Kindanschluss empfängt, sendet dann das Signal „Kindknoten-ID fertig Bestätigung" (CICA-Signal) und den Anschluss als identifizierten Kindanschluss bezeichnen. In Antwort auf die nächste Weiterleitung des BR-Signals wählt der Elternknoten des Knotens, der sich gerade selbst identifiziert hat, dann seinen nächsten Kindknoten, um das Paket für die physikalische Adresse zu senden. Sobald alle Kindknoten eines Elternknotens sich identifiziert haben, fordert der Elternanschluss den Bus an, und wenn ihm der Bus zugeteilt worden ist, sendet er sein Paket zur Zuweisung einer physikalischen Adresse. Diese Prozedur wird den vorbestimmten Auswahlkriterien entsprechend fortgesetzt, bis alle Knoten die Zuweisung einer einmaligen physikalischen Adresse durch Zählen bestimmt haben. 5 stellt den Graphen von 3(e) dar, wobei ein vordefiniertes Auswahlkriterium „von links nach rechts" implementiert wurde. Den Knoten sind einmalige Adressen zugewiesen worden, wobei der Knoten 33 die erste erhält und der Wurzelknoten 30 wie beschrieben die achte und letzte Adresse erhält.
  • Wenn diese Prozedur abgeschlossen ist, weist jeder Knoten im Graphen eine einmalige physikalische Adresse auf, die nicht im Voraus bestimmt werden muss und die zur Systemverwaltung oder zu anderen Zwecken benutzt werden kann.
  • Eigenidentifizierung der Knote
  • Der Prozess der Eigenidentifizierung der Knoten folgt im Wesentlichen der gleichen Routine wie die oben beschriebene Prozedur zur Zuweisung einer physikalischen Adresse. Da jeder Knoten sein Paket zur Zuweisung der physikalischen Adresse sendet, kann dieses Paket zusätzliche Information umfassen, zum Beispiel die Identifikation des physikalischen Geräts, die Identifikation des zum Knoten gehörigen lokalen Hosts, den Stromverbrauch und zum Beispiel, ob es ein „Soft Power-On" Attribut unterstützt usw. Tatsächlich kann die Information zur Eigenidentifizierung der Knoten als Paket zur Zuweisung einer physikalischen Adresse dienen, weil das Verfahren des Sendens von Information an alle die Basis für das Zählen zum Erhalt einer einmaligen physikalischen Adresse darstellt.
  • Was das Paket zur Eigenidentifizierung der Knoten anbetrifft, braucht die spezielle Information in Bezug auf den Knoten nur von den Knoten „gehört" zu werden, deren Knoten durch die Beschaffenheit des meldenden Knotens beeinflusst werden. Diese Prozedur wird wie die obige fortgesetzt, bis alle Knoten ihre Eigenidentifizierungsinformation übertragen haben.
  • Topologieabbildung
  • Das Topologieabbildungsverfahren folgt den gleichen Linien wie die Zuweisung einer physikalischen Adresse und die Eigenidentifizierung der Knoten. In dieser Prozedur überträgt jeder Knoten, wenn er die Adresszuweisungs- oder den Eigenidentifizierungsprozess durchläuft, außerdem Information in Bezug auf all seine Anschlüsse wie z. B. die Zahl seine Kindanschlüsse, und ob er deaktivierte Anschlüsse hat oder nicht. Für deaktivierte Anschlüsse kann es wünschenswert sein, ein Kommunikationsprotokoll zwischen deaktivierenden Anschlüssen zu implementieren, damit sie identifizieren können, wovon sie deaktiviert sind. Wenn ein Anschluss einen deaktivierten Anschluss erkennt, gibt er ihm dann eine Kennung, die seine eigene ID sowie die ID des Anschlusses angibt, von welchem er deaktiviert worden ist.
  • Durch Zusammenfügen aller Topologieinformation über alle Anschlüsse, die während der Topologieabbildungsprozedur empfangen wurden, kann eine Anwendung auf Busserver-, Host- oder jeder Softwareebene die aufgelöste Bustopologie logisch rekonstruieren. Dies ist zu vielen Zwecken nützlich, einschließlich zur Implementierung der Redundanz, wenn eine Leitung unerwartet ausfällt, wobei zuvor deaktivierte Leitungen dazu dienen können, die Verlust von Kommunikationskanälen zu Knoten zu verhindern.
  • Arbitrierung mit fairer Buszuteilung
  • Sobald die Routinen zur Topologieabbildung, Eigenidentifizierung der Knoten und Zuweisung von physikalischen Adressen beendet worden sind, gilt der Bus als in Betrieb befindlich. Ein Arbitrierungsverfahren, das der vorliegenden Erfindung gemäß implementiert wird, ist das des fairen Buszugriffs. Wenn ein Knoten auf den Bus zuzugreifen wünscht, sendet es durch seinen Elternanschluss ein Bus-Anfragesignal (BR-Signal). Bei Empfang des BR-Signals von einem seiner Kindknoten sendet der Elternknoten durch all seine anderen Kindanschlüsse ein Bus-Verweigerungssignal (BD-Signal). Der Elternknoten leitet das BR-Signal dann zu seinem Elternknoten nach oben weiter, bis das Signal den Wurzelknoten erreicht. Der Wurzelknoten gibt in Antwort auf das erste BR-Signal, das er empfängt, ein Bus-Erteilungssignal (BG-Signal) aus und sendet durch all seine anderen Kindanschlüsse, die nach unten verlaufen, das BD-Signal, wodurch die Leitungen zugewiesen werden. Das BG-Signal wird durch den Graphen nach unten weitergeleitet, bis es den anfragenden Knoten erreicht, der dann das Bus-Bestätigungssignal (BA-Signal) sendet, gefolgt vom Informationspaket, das der Knoten auf dem Bus zu senden hatte. Wenn das Paket übertragen worden ist, kehren alle Knoten in einen Ruhezustand zurück oder treten darin ein.
  • In dem Fall, dass der Wurzelknoten nahezu gleichzeitige Busanfragen empfängt, werden vordefinierte Auswahlkriterien für den Wurzelknoten verwendet, um einem der Knoten Buszugriff zu gewähren. Dies kann das gleiche Prioritätsauswahlkriterium sein wie oben beschrieben.
  • Ein weiterer Aspekt der fairen Busarbitrierung ist, dass ein Elternknoten gegenüber seinen Kindknoten die Priorität hat. Wenn ein Elternknoten den Bus wünscht, sendet er daher das BD-Signal durch all seine Kindknoten und sendet dann das BR-Signal aufwärts zum Wurzelknoten. Ein potenzielles Problem bei diesem Mechanismus ist, dass, wenn der Elternknoten eine große Menge an Information an den Bus zu übertragen hat, es für einen Kindknoten schwer sein kann, einen angemessenen Buszugriff zu erhalten. Daher wurde ein Unterbrechungsverfahren eingeführt, das weit verbreitet ist und dem Fachmann wohlbekannt ist. Nachdem ein Knoten den Bus genutzt hat, muss der Knoten eine Unterbrechungsdauer lang warten, bevor er den Bus wieder anfordern darf. Dies gibt jedem Knoten die gleiche Chance auf einen Buszugriff, unabhängig von seiner eigenen topologischen Anordnung im Bus. Um ein faires Arbitrierungsprotokoll zu gewährleisten, darf die Dauer der Unterbrechung nicht länger sein als die Signallaufzeitverzögerung durch diesen Bus im ungünstigsten Fall. Der Unterbrechungswert kann vorbestimmt und in der Knotenlogik festverdrahtet sein, doch solch ein Ansatz wird bestenfalls eine suboptimale Nutzung des Busses ergeben. Die Topologieabbildungsfähigkeit zusammen mit der Messung der Laufzeit zwischen benachbarten Knoten, die während der Graphtransformationsphase durchgeführt wurde, erlaubt die Berechnung einer optimalen, fairen Unterbrechung, die die Busleistung für eine spezifische Implementierung maximieren wird.
  • Arbitrierung mit vorrangiger Buszuteilung
  • Im Busarbitrierungsverfahren, das der obigen Arbitrierung für den fairen Buszugriff entsprechend implementiert wurde, kann es wünschenswert sein, dass der Wurzelknoten stets die Buspriorität hat. Wenn dies implementiert ist, kann der Wurzelknoten sich selbst jederzeit den Bus zuteilen. Dies erfolgt, indem er zuerst das BD-Signal durch alle Knoten im Graphen sendet. Der vorrangige Buszugriff für den Wurzelknoten ist sehr nützlich für den Fall, dass der Wurzelknoten eine isochrone Datenübertragung durchführen muss.
  • Arbitrierung mit Token Passing
  • Als eine Alternative zu den Arbitrierungen mit fairem und vorrangigem Buszugriff, die oben beschrieben wurden, kann die vorliegende Erfindung verwerdet werden, um ein Arbitrierungsverfahren mit Token Passing zu implementieren. Metaphorisch bezieht sich der Buszugriff mit Token Passing auf das Konzept, dass ein Knoten an einem Bus melden kann, wann er sich im Besitz einer Berechtigung befindet, die zwischen Knoten weitergereicht wird. Die Berechtigung wird auf zyklische Weise von Knoten zu Knoten weitergereicht, sodass jeder Knoten den Bus an einem bestimmten Punkt im Zyklus erhält. Token Passing wird in der vorliegenden Erfindung auf gleiche Weise implementiert wie in der Routine zur Zuweisung der physikalischen Adresse, die oben beschrieben wurde. Die vorbestimmten Auswahlmechanismen, die implementiert wurden, werden genutzt, um die Reihenfolge zu wählen, in der das Token von Knoten zu Knoten weitergereicht wird. Diese Reihenfolge entspricht der in 5 gezeigten Reihenfolge, die die Reihenfolgen der Zuweisung einer einmaligen Adresse vorgibt. Jeder Knoten, dem das Token zugewiesen ist, sendet sein Informationspaket auf dem Bus, während die übrigen Knoten zuhören. Der Knoten reicht das Token dann dem wie oben beschrieben vorbestimmten Abtastverfahren entsprechend an den nächsten Knoten weiter.
  • Präemptive Businitialisierung
  • Ein wichtiges Merkmal, das der vorliegenden Erfindung gemäß implementiert werden kann, ist das Konzept der präemptiven Businitialisierung. Die Statusmaschinenlogik, die in jedem Knoten implementiert ist, ist in der Lage, unter bestimmten Bedingungen die Ausbreitung eines Businitialisierungssignals (BI-Signal) vom Knoten durch all seine Anschlüsse auszulösen. Wenn ein Knoten bestimmt hat, dass es notwendig ist, eine Businitialisierungsbedingung zu signalisieren, sendet er das BI-Signal durch jeden seiner Anschlüsse, für eine Zeitdauer, die ausreicht, um zu gewährleisten, dass alle benachbarten Knoten es empfangen und dann ausgelöst haben. Ein Knoten leitet dann die Initialisierungsprozedur ein, die dann zum Graphtransformationsprozess in den oben beschriebenen Prozeduren führt.
  • Es gibt eine Anzahl von Situationen, die es notwendig oder wünschenswert machen, eine präemptive Businitialisierung auszulösen. Erstens kann dies die Antwort eines Knotens auf einen unvorhergesehenen Fehler sein. Zusätzlich kann auf der Hostebene bestimmt werden, dass das Wurzelattribut einem anderen Knoten zugewiesen werden sollte, zum Beispiel einen Knoten zur isochronen Datenübertragung. Diese Zuweisung wird durch die Businitialisierungsroutine hindurch aufrechterhalten, wodurch der gewünschte Knoten veranlasst wird, während der Transformationsprozedur zu warten, bis er zum Wurzelknoten bestimmt worden ist. Eine weitere Bedingung, die zu einer präemptiven Businitialisierung führt, kann die Unterbrechung einer Leitung sein, wobei es dann notwendig sein kann, einen neuen azyklischen gerichteten Graphen für die angeschlossenen Knoten zu berechnen. Eine wichtige Situation, in der eine präemptive Businitialisierung auftreten sollte, ist schließlich, wenn ein Gerät zum Netzwerk hinzugefügt wird, was als „Anschluss im eingeschalteten Zustand" von Peripheriegeräten bezeichnet wird. Der Anschluss, an dem ein neues Gerät verbunden wurde, erkennt das Vorhandensein eines neuen Knotens und löst eine Businitialisierung aus, die zwar für den Benutzer des Systems transparent ist, aber den Zusatz und die Entfernung von Peripheriegeräten erlaubt, ohne zum Beispiel das System herunterfahren und wieder einschalten zu müssen. Es wird ein neuer azyklischer gerichteter Graph berechnet, der den hinzugefügten Knoten einschließt. Es kann vorkommen, dass es nach der Entfernung bestimmter Knoten nicht notwendig ist, eine Businitialisierung auszulösen, zum Beispiel wird das Netzwerk nicht beeinträchtigt, wenn ein Blattknoten entfernt wird. Doch wenn ein Astknoten aus einem in Betrieb befindlichen Bus entfernt wird, ist es wahrscheinlich, dass der Graph umkonfiguriert werden muss.
  • Auch wenn die vorliegende Erfindung Bezug nehmend auf bevorzugte Ausführungsformen beschrieben wurde, versteht es sich, dass verschiedene Modifikationen und Abänderungen vom Fachmann durchgeführt werden können. Die Erfindung wird daher nur von den folgenden Ansprüche definiert.

Claims (2)

  1. Ein Verfahren für eine faire Buszugriffs-Zuteilung in einem Computersystem, wobei das Computersystem eine Mehrzahl von Komponenten aufweist, die über eine Mehrzahl von Kommunikationsverbindungen verbunden sind, wobei die Mehrzahl von Komponenten jeweils wenigstens einen Kommunikationsknoten aufweisen, wobei die Kommunikationsknoten ihre zugeordnete Komponente mit einer Komponente mittels einer Kommunikationsverbindung durch einen Knotenport verbinden, wobei die Knoten in der Lage sind, eine Mehrzahl von Ports zu haben, wobei die Konfiguration von Knoten und Kommunikationsverbindungen einen gerichteten azyklischen Graph aufweisen, wobei ein Knoten als Wurzelknoten bezeichnet ist, wobei alle nur mit einem benachbarten Knoten gekoppelten Knoten als Blattknoten bezeichnet sind, wobei alle anderen Knoten in dem Graph als Astknoten bezeichnet sind, wobei in dem azyklischen gerichteten Graph hierarchische Eltern-Kind-Beziehungen zwischen allen benachbarten Knoten gebildet sind, die sich von dem Wurzelknoten herab zu jedem Blattknoten erstrecken, wobei jeder Blattknoten nur einen Elternknoten hat und alle zu dem Wurzelknoten benachbarten Knoten Kindknoten bezüglich des Wurzelknotens, jedoch Elternknoten bezüglich anderer benachbarter Knoten sind, wobei der Wurzelknoten so definiert ist, dass er keinen Elternknoten hat, wobei das Verfahren der fairen Buszugriffs-Zuweisung gekennzeichnet ist durch die Schritte: Übertragen eines Bus-Verweigerungssignals von einem anfragenden Knoten zu allen seinen Kindknoten, wobei der anfragende Knoten ein Informationspaket zur Verbreitung auf dem Bus aufweist; Übertragen eines Bus-Anfragesignals von einem anfragenden Knoten an seinen Elternknoten; wobei alle das Bus-Anfragesignal empfangenden Knoten das Bus-Anfragesignal an ihre jeweiligen Elternknoten weiterleiten und ein Bus-Verweigerungssignal an alle Kind-Knoten verbreiten, welche nicht die Quelle des Bus-Anfragesignals waren; wobei der Wurzelknoten, sobald er ein Bus-Anfragesignal von einem der benachbarten Knoten erhält, diesem benachbarten Knoten mit einem Bus-Erteilungssignal antwortet, wobei der Wurzelknoten ein Bus-Verweigerungssignal an alle anderen benachbarten Knoten verbreitet; wobei alle das Bus-Erteilungssignal von einem Elternknoten empfangenden Knoten das Bus-Erteilungssignal an den Kind-Knoten verbreiten, der vorhergehend das Bus-Anforderungssignal weitergeleitet hat, bis der Knoten der anfragende Knoten ist, wobei der anfragende Knoten, bei Erhalt des Bus-Erteilungssignals dieses Signal bestätigt und das Informationspaket verbreitet; und wobei der Wurzelknoten, bei Feststellung, dass er Zugriff auf den Bus benötigt, ein Bus-Verweigerungssignal an alle benachbarten Knoten verbreitet und sich selbst Zugriff auf den Bus gewährt.
  2. Das Verfahren gemäß Anspruch 1, wobei der Wurzelknoten im Konflikt stehende gleichzeitige Anforderungen für den Bus auflöst, indem der Bus auf Grundlage eines vorgegebenen Auswahlkriteriums für benachbarte Knoten Zugriff auf den Bus gewährt.
DE69334171T 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph Expired - Lifetime DE69334171T2 (de)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
DE69334171D1 DE69334171D1 (de) 2007-10-25
DE69334171T2 true DE69334171T2 (de) 2008-06-12

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 (1)

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

Family Applications After (2)

Application Number Title Priority Date Filing Date
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

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
DE69333798T2 (de) 2006-03-09
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
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
DE69334171T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69332778T2 (de) Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
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
DE3300261C2 (de)
DE3909948C2 (de)
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
EP1309920B1 (de) Adressvergabeverfahren für mindestens einen neu an ein bussystem angeschlossenen busteilnehmer
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69334165T2 (de) Netzwerkanpassungseinrichtung mit hauptrechnerunterbrechung und indikationsverwaltung
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE102017120447A1 (de) Halbleitervorrichtung, Verfahren zum Betreiben der Halbleitervorrichtung und ein System, das diese beinhaltet
DE2230830A1 (de) Datenverarbeitungsanlage
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
DE112006003895T5 (de) Kommunikationsknoten und Token-Herausgabeverfahren und Token-Ringkommunikationsverfahren in einem Ring-Kommunikationssystem
DE60123134T2 (de) Verfahren und vorrichtung für einen rekonfigurierbaren prozessor
DE60036923T2 (de) Dram-auffrischungsüberwachung und taktgenaue verteilte busarbitrierung in einer multiprozessorumgebung
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE69631612T2 (de) Elektronische Geräte und deren Betriebsartsteuerung
DE69832836T2 (de) Arbitrierungssteuerungsgerät auf einem Mehrpunkt-Hochgeschindigkeits-Serienbus
DE60210521T2 (de) Datenübertragungs-Datenempfangssystem, Verfahren zur Wiederherstellung einer Verbindung und Nachrichtenübertragungs-/Nachrichtenempfangsvorrichtung
DE2629401C2 (de)
EP3843332A1 (de) Verfahren zur überwachung von datenverkehr in einem kommunikationsnetz und zugriffssteuerungssystem

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: OPRESCU, FLORIN, SUNNYVALE, CALIF., US

8364 No opposition during term of opposition