DE69334172T2 - 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
DE69334172T2
DE69334172T2 DE69334172T DE69334172T DE69334172T2 DE 69334172 T2 DE69334172 T2 DE 69334172T2 DE 69334172 T DE69334172 T DE 69334172T DE 69334172 T DE69334172 T DE 69334172T DE 69334172 T2 DE69334172 T2 DE 69334172T2
Authority
DE
Germany
Prior art keywords
node
nodes
bus
graph
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
DE69334172T
Other languages
English (en)
Other versions
DE69334172D1 (de
Inventor
Florin Sunnyvalle 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
Application granted granted Critical
Publication of DE69334172D1 publication Critical patent/DE69334172D1/de
Publication of DE69334172T2 publication Critical patent/DE69334172T2/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 Anmeldung betrifft das US-Patent Nr. 5,394,556 , "Method and apparatus for unique address assignment, node self-identification and topology mapping for a directed acyclic graph [Verfahren und Vorrichtung zur eindeutigen Adressenzuteilung, Knoteneigenidentifizierung und Topologieabbildung für einen gerichteten azyklischen Graphen]".
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computersysteme. Genauer gesagt, betrifft die vorliegende Erfindung ein Verfahren zum Erstellen und Nutzen eines Kommunikationsschemas zwischen mehreren beliebig zusammengesetzten Elementen eines Computersystems.
  • Stand der Technik
  • Komponenten in einem gegebenen Computersystem benötigen die Fähigkeit, Signale untereinander auszutauschen. In sehr einfachen Systemen ist es möglich, daß jedes Element des Systems direkt mit allen anderen Teilen des Systems verschaltet werden kann. In der Realität haben Computerarchitekten jedoch vor langem das Konzept eines Kommunikationsbusses entwickelt, um Computer erweiterbar zu machen und eine unbekannte Zahl von Systemteilen aufzunehmen.
  • Ein Bus ist ein Kommunikationsweg, wie zum Beispiel eine Leitung oder Leitungen, die durch das ganze Computersystem laufen. Jede Komponente des Systems braucht nur an den Bus angeschlossen zu werden, um theoretisch mit jeder anderen Komponenten im System verbunden zu sein. Natürlich kann nicht jede Komponente gleichzeitig mit anderen Komponenten kommunizieren, weil es möglicherweise nur einen einzigen Kommunikations kanal zwischen den Komponenten gibt. Bei der Nutzung eines Kommunikationsbusses ist es notwendig, eine bestimmte Form einer Anordnung zur gemeinsamen Nutzung einzurichten, so daß jede Komponente den Bus zur Kommunikation mit anderen Komponenten effizient verwenden kann, die kritische Informationen von einer Komponente nicht hängen läßt, die auf den Zugriff auf den Bus warten. Das Verfahren, durch welches Komponenten des Busses sich den Bus teilen, wird allgemein als Buszuteilungsschema bezeichnet.
  • Eine Art von Zuteilungsschema wird auf der 11. Internationalen Konferenz über Computersysteme für Verteilte Datenverarbeitung, Arlington, Texas, USA, Mai 1991, unter dem Titel "A Dag-Based Algorithm for Distributed Mutual Exclusion", von M. L. Nelson und M. Mizumo beschrieben. Das Schema, das beschrieben wird, basiert auf einem verteilten wechselseitigen Algorithmus auf Tokenbasis, das ein vollständig angeschlossenes Netz und ein logisches Netz mit einer Struktur eines gerichteten azyklischen Graphen annimmt.
  • Neben dem entscheidenden Bedürfnis, das Buszuteilungsschema zu optimieren, um so den Fluß wichtiger Informationen zu maximieren, kann und sollte die physische (und logische/elektrische) Konfiguration des Busses selbst optimiert werden, um Systemverzögerungen zu minimieren und dabei so flexibel wie möglich zu bleiben.
  • Um mit anderen Komponenten, die an einen Bus angeschlossen sind, zu kommunizieren, muß jede Komponente mit Hardware ausgestattet sein, wie zum Beispiel Sende- und Empfangsschaltungen, die zu dem Kommunikationsprotokoll kompatibel sind, welches für den Bus implementiert ist. Ein solcher Kommunikationsstandard wird in dem IEEE-Standards-Dokument P1394 mit dem Titel "High Performance Serial Bus" beschrieben, wobei das Dokument als Anhang A an das vorliegende Dokument angehängt ist. Die Norm, die in P1394 beschrieben wird, soll eine preiswerte Zwischenverbindung zwischen Karten auf derselben Rückwandplatine, Karten auf anderen Rückwandplatinen und externen Peripheriegeräte bereitstellen.
  • Busse oder Netze nach dem Stand der Technik erforderten das Wissen, was wo eingestöpselt wurde. Die Rückseite vieler Computer hat zum Beispiel viele Ports für spezielle Peripheriegeräte. Einige Computer implementieren mehrere Busse, wie zum Beispiel der Macintosh, der einen Bus verwendet, welcher als ADB bezeichnet wird, für Komponenten wie Maus und Tastatur und SCSI-Bus für andere Peripheriegeräte. Diese Arten von Bussen sorgen für das Anschließen von Elementen in Kaskade, die Verbindungen besitzen jedoch eine begrenzte Topologie. Andere bekannte Busse/Netze erfordern, daß die Knoten des Netzes in einem Ring angeordnet sind, einer Schleife, die geschlossen sein muß, damit sie arbeiten kann. US-A-4344134 beschreibt Prozessoren in einer Verarbeitungsanordnung, die in einer hierarchischen Baumstruktur angeordnet sind. Und schließlich erfordern Stern- und Nabe-Speiche-Anordnungen, daß jeder Knoten direkt mit einem zentralen Master verbunden ist. Jedem der vorherigen Systeme nach dem Stand der Technik fehlt ein wünschenswertes Maß an Flexibilität.
  • Es wäre wünschenswert und ist daher ein Ziel der vorliegenden Erfindung, Elemente eines Computersystems beliebig auf einem Bus zu versammeln, wo die beliebige Topologie vom System in ein funktionierendes System aufgelöst werden kann, ohne daß eine vorgegebene Anordnung von Komponenten erforderlich wäre.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zur preemptiven Businitialisierung in einem Computersystem bereitgestellt, wobei das Computersystem mehrere Komponenten umfaßt, die durch mehrere Kommunikationsverbindungen verbunden sind, wobei die mehreren Komponenten jeweils mindestens einen Kommunikationsknoten haben, wobei die Kommunikationsknoten ihre zugehörige Komponente durch einen Knotenport mit einer Kommunikationsverbindung verbinden, wobei die Knoten mehrere Ports haben können, wobei die Konfiguration von Knoten und Kommunikationsverbindungen einen gerichteten azyklischen Graphen umfassen, wobei ein Knoten als Wurzelknoten bezeichnet wird und alle Knoten, die nur mit einem benachbarten Knoten verbunden sind, als Blattknoten bezeichnet werden, wobei alle anderen Knoten im Graphen als Zweigknoten bezeichnet werden, wobei der azyklische gerichtete Graph aufgestellte hierarchische Vorgänger-Nachfolger-Beziehungen zwischen allen benachbarten Knoten hat, die vom Wurzelknoten nach unten zu allen Blattknoten fortschreiten, wobei ein Blattknoten nur einen Vorgängerknoten hat und alle Knoten, die dem Wurzelknoten benachbart sind, Nachfolgerknoten in Bezug auf den Wurzelknoten sind, aber Vorgängerknoten in Bezug auf andere benachbarte Knoten sind, wobei der Wurzelknoten definitionsgemäß keinen Vorgängerknoten hat, wobei das Verfahren der preemptiven Businitialisierung die Schritte der Ausbreitung eines Businitialisierungssignals von einem Knoten, der feststellt, daß die Businitialisierung notwendig ist, Aufrechterhalten des Businitialisierungssignals für einen vorgegebenen Zeitabschnitt und Ausbreiten dieses Signals durch den ganzen Graphen auf alle Knoten im Graphen umfaßt.
  • Es ist ein Ziel der vorliegenden Erfindung, ein faires Buszugriffszuteilungsschema für einen Computersystembus oder -netz bereitzustellen, in dem die Verbindungen von Knoten in einen azyklischen gerichteten Graphen aufgelöst worden sind.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, ein Verfahren der Token-Passing-Buszuteilung für einen Computersystembus oder -netz bereitzustellen, in dem die Verbindungen von Knoten in einen azyklischen gerichteten Graphen aufgelöst worden sind.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, einen Mechanismus bereitzustellen, mit dem eine preemptive Businitialisierung durch einen Knoten in einem Netz von Knoten ausgelöst werden kann, die in einen azyklischen gerichteten Graphen aufgelöst sind, wenn Fehler festgestellt oder Knoten während des Betriebs hinzugefügt oder entfernt werden.
  • Diese und andere Ziele der vorliegenden Erfindung werden in einem System implementiert, in dem eine beliebige Ansammlung von Knoten auf einem Systembus in einen azyklischen gerichteten Graphen aufgelöst worden sind. Die hierarchische An ordnung von Knoten hat einen Knoten, der als Wurzel bezeichnet wird, während alle anderen Knoten feststehende Vorgänger-Nachfolger-Beziehungen mit den Knoten haben, mit denen sie verbunden sind. Jeder Knoten kann mehrere angeschlossene Nachfolgerports mit einem vorgegebenen Quittungsprioritätsschema, das eingeführt ist, haben. Die faire Buszugriffszuteilung sorgt für eine Busgewährung in einer Folge, die den vorgegebenen Portprioritäten entspricht, was allen Knoten einen Turnus auf dem Bus ermöglicht. Der Wurzelknoten kann immer seinen Prioritätszugriffsstatus durchsetzen, um Zugriff auf den Bus zu erlangen, was für die Aufnahme eines Wurzelknotens nützlich ist, der eine isochrone Datenübertragung benötigt. Alternativ kann ein Token-Passing-Zuteilungsschema implementiert werden, bei dem das Token für den Buszugriff gemäß dem oben beschriebenen vorgegebenen Portprioritätsschema die Knoten durchläuft. Die preemptive Businitialisierung kann von jedem Knoten beim Feststellen eines Fehlers oder einer Hinzufügung oder einer Entfernung einer Verbindung zu/von einem vorhandenen Knoten, die dies erforderlich macht, ausgelöst werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung erkennbar; dabei gilt:
  • 1 ist ein Blockdiagramm der Hardwareschichtimplementierung, die gemäß der vorliegenden Erfindung verwendet wird.
  • Die 2(a)-2(b) illustrieren beliebig zusammengestellte Kollektionen von Knoten, wobei eine azyklisch ist und die andere mehrere Zyklen umfaßt.
  • 3(a) ist die beliebig zusammengestellte Kollektion von Knoten von 2(a), die den Graphentransformationsprozeß gemäß der vorliegenden Erfindung erfährt.
  • Die 3(b)-3(d) illustrieren alternative Kommunikationsvermittlungen zwischen Knoten bei der Implementierung der vorliegenden Erfindung.
  • 3(e) illustriert grafisch den gerichteten Graphen, der sich aus dem beliebig zusammengesetzten Netz von Knoten von 2(a) ergibt.
  • 4 illustriert eine symmetrische Graphenanordnung, die das Auflösen eines Wurzelkonflikts erfordert.
  • 5 illustriert einen gerichteten azyklischen Graphen mit einer möglichen eindeutigen Adreßzuteilungsordnung, die angezeigt wird.
  • Die 6(a)-6(e) illustrieren den Verfahrensablauf beim Ausführen der Graphentransformationsprozedur gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Es werden ein Verfahren und eine Vorrichtung zur Nutzung eines Busses, der eine beliebige Topologie hat, beschrieben. In der folgenden Beschreibung werden zahlreiche spezielle Details, wie zum Beispiel verschiedene Computerkomponenten, dargelegt, um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Für Fachleute auf dem Gebiet ist jedoch erkennbar, daß die vorliegende Erfindung ohne solche speziellen Details ausgeführt werden kann. In anderen Fällen sind bekannte Kontrollstrukturen und Codierverfahren nicht im Detail beschrieben worden, um das Verständnis für die vorliegende Erfindung nicht unnötig zu erschweren.
  • In der ganzen ausführlichen Beschreibung werden zahlreiche beschreibende Begriffe eingeführt, um für eine metaphorische Klarheit in der Beschreibung zu sorgen. Zum Beispiel wird häufig auf die Vorgänger-Nachfolger-Beziehungen zwischen Knoten in einer gegebenen Topologie verwiesen. Der Zweck besteht darin, das Konzept der "Richtung" für den abschließend aufgelösten Graphen bereitzustellen. Wie beschrieben wird, gibt es einen Knoten, der als "Wurzelknoten" identifiziert wird, sobald eine beliebige Topologie auf einen azyklischen gerichteten Graphen reduziert worden ist. Der Wurzelknoten hat keinen Vorgängerknoten; alle Knoten, die logisch dem Wurzelknoten unmittelbar benachbart sind, sind dann Nachfolgerknoten der Wurzel. Die Metapher "Baum" wird durch die Aufnahme von Knoten vervollständigt, die als "Zweige" und "Blätter" bezeichnet werden.
  • Die Busarchitektur, die hierin beschrieben wird, hat, obwohl sie mit Bezug auf Komponenten für einen einzelnen Computer beschrieben wird, im allgemeinen einen weiteren Anwendungsbereich. Die vorliegende Erfindung zum Definieren der Bustopologie kann auf jede beliebig zusammengesetzte Kollektion von Knoten angewendet werden, die wie in einem Netz von Geräten verbunden sind. Ein Punkt, der zu beachten ist, ist die Notwendigkeit, einen Knoten von einer physischen Computerkomponente zu unterscheiden. Jede Komponente, die auf dem Bus stehen soll, ist mit mindestens einem physischen Schichtencontroller des Knotens verknüpft. Unter bestimmten Umständen kann eine gegebene Komponente vorteilhaft mit mehreren Knoten verknüpft werden, im Normalfall gibt es aber eine 1:1-Entsprechung zwischen Geräten oder Komponenten auf dem Bus und Knoten.
  • Sieht man sich nun 1 an, so wird ein Blockdiagramm eines Knotens 10 dargestellt. Die physische Implementierung eines Knotens ist etwas willkürlich. In der Implementierung der bevorzugten Ausführungsform der vorliegenden Erfindung werden die Knoten so bezeichnet, daß sie dem IEEE P1394 Hochleistungs-Serienbus-Kommunikationsprotokoll entsprechen, welches als Anhang A beigefügt ist. Knoten 10 umfaßt die Zuteilungsstatus-Maschinenlogik 11. Diese Zuteilungsstatus-Maschinenlogik enthält alle logischen Schaltungen zum Ausführen der Verfahren und Algorithmen, die hierin beschrieben werden sollen. Die Schaltungen können ein programmierbares Logikfeld (PLA) umfassen oder eindeutig ausgelegt sein, um die Funktionen, die hierin beschrieben werden, auszuführen. Sobald die Funktionen, die von der Knotenlogik auszuführen sind, beschrieben sind, sind Fachleute in der Lage, die vorliegende Erfindung ohne unnötiges Experimentieren zu implementieren. Der Knoten soll mittels seiner Logik das Minimalzuteilungsprotokoll implementieren, einschließlich der Businitialisierungs-, Baumidentifizierungs-, Eigenidentifizierungs- und Buszutei lungsfunktionen, die alle im Detail weiter hierin beschrieben werden sollen.
  • Knoten 10, der in 1 gezeigt wird, umfaßt auch die Übertragungsmultiplexer 12 und 13 und Datensender, -empfänger und Resynchronisierungsvorrichtung 14. Der Knoten, der in 1 illustriert wird, ist mit dem lokalen Host 15 verbunden. Der lokale Host 15 kann ein Gerät sein, das man mit dem Bus verbinden möchte, wie zum Beispiel ein Plattenlaufwerk, CPU, Tastatur oder eine andere Komponente, die mit anderen Komponenten im System kommunizieren muß. Knoten 10 kommuniziert mit anderen Knoten durch Kommunikationslinks. Ein Link ist eine Verbindung zwischen zwei Ports und, praktisch gesehen, ist er ein Kabelsegment, im allgemeinen aber kann er als ein beliebiger physischer Kommunikationskanal implementiert werden. Ein Link soll mindestens in der Lage sein, einen Halbduplex-Kommunikationskanal zwischen den zwei Ports, die er verbindet, bereitzustellen. Ein Port ist eine Schnittstelle zwischen einem Knoten und einem Link. Gemäß der vorliegenden Erfindung muß ein Port die Fähigkeit besitzen, Daten und Zuteilungssignale zu senden und zu empfangen. Ein Port muß feststellen können, ob er durch einen Link mit einem anderen Port verbunden ist oder nicht. Ein Verfahren, um dies zu erleichtern, besteht darin, daß an angeschlossene Ports durch den Link eine Vorspannung angelegt wird, die vom Port am anderen Ende des Links festgestellt werden kann. Wenn also ein Port einen Link hat, der nicht mit einem Port am anderen Ende verbunden ist, ein offener Link, dann stellt der Port fest, daß er kein angeschlossener Port ist. In 1 hat der illustrierte Knoten 10 drei externe Ports 21, 22 und 23 mit verbindenden Links 17, 18 bzw. 19.
  • Einige der Regeln der Implementierung für Knoten, die für die Implementierung der vorliegenden Erfindung gelten, sind, daß ein Knoten einen oder mehrere Ports haben kann. Ein Knoten muß Daten über einen beliebigen seiner Ports senden und empfangen können. Ein Knoten muß Daten immer auf einem einzigen seiner aktivierten Ports empfangen können und muß diese Daten über alle übrigen aktivierten Ports wieder senden können. Ein Knoten muß Signalmitteilungen über alle seine Ports gleichzeitig und unabhängig senden und empfangen können. Für jeden Port eines Knotens sind getrennte Signal-Transceiver, Codierer und Decodierer erforderlich. Ein Minimalimplementierungsknoten erfordert kein Gerät für den lokalen Host. Solch ein Knoten kann zum Beispiel als Kabelerweiterung fungieren. Von nun an werden Geräte und lokale Hosts ignoriert, und alle Verweise auf die Bustopologie beziehen sich auf Knoten und Knotenverbindungen über verschiedene Ports.
  • Graphentransformation
  • Die 2(a) und 2(b) illustrieren beliebig zusammengestellte Kollektionen von Knoten. Von nun an werden Knoten nur noch als Kreise dargestellt, werden aber so betrachtet, daß jeder Elemente enthält, die denen in Bezug auf 1 beschriebenen äquivalent sind. Beachten Sie jedoch, daß jeder Knoten mehr oder weniger als die drei externen Ports haben kann, die in dieser Figur gezeigt werden. Die gezeigten Linien, die jeden der Knoten verbinden, sind das Mittel, mit dem Links gezeigt werden. Ports werden nicht dargestellt, sind aber implizit die Schnittstelle, an der sich ein Link und ein Knoten verbinden.
  • Das Buszuteilungsverfahren, das hierin beschrieben werden soll, erfordert, daß die beliebige Topologie in einen azyklischen gerichteten Graphen aufgelöst wird. In einem Graphen beliebiger Topologie kann eine Kollektion von Knoten und Links einen Zyklus bilden. Ein Zyklus besteht, wenn es beim Start von einem bestimmten Knoten im Graphen aus möglich ist, zum selben Knoten beim Durchlaufen von Links und Knoten zurückzukehren, ohne daß ein Link zweimal durchlaufen wird. 2(a) illustriert einen azyklischen Graphen, weil keiner der Knoten, die dargestellt sind, innerhalb einer Schleife angeschlossen ist. 2(b) ist jedoch kein azyklischer Graph, da der Bereich in dem Begrenzungskasten 25 eine Kollektion von Knoten, 40-47, enthält, die mehrere Zyklen bilden. Das Buszuteilungsverfahren, das hierin beschrieben werden soll, erfordert, daß es keine Zyklen gibt; daher wird auch ein Verfahren für den Benutzereingriff zum Auflösen von Zyklen weiter unten beschrieben.
  • Zusätzlich zu der Forderung, daß ein Graph azyklisch sein soll, muß er auch gerichtet sein. Ein gerichteter Graph ist einer, bei dem zwischen benachbarten Knoten eine hierarchische Ordnung errichtet wurde. Zu Anfang gibt es keine aufgestellten Vorgänger-Nachfolger-Beziehungen zwischen Knoten. Das heißt zum Beispiel, daß Knoten 31 der "Vorgängerknoten" für Knoten 34 sein kann oder der "Nachfolgerknoten" für Knoten 34 sein kann. Es ist daher notwendig, einen Graphen einer gegebenen beliebigen Topologie zu bearbeiten und ihn in einen azyklischen und gerichteten Graphen zu transformieren. Die Verfahren, die hierin beschrieben werden, dienen dazu, diese Transformation für jede gegebene beliebige Topologie auszuführen, ungeachtet der Zahl der Knoten oder wie sie physisch verbunden sind und ungeachtet der Signalausbreitungszeit entlang der Links.
  • Knotenkommunikation
  • Zu Anfang wird der Prozess der Transformation eines azyklischen Graphen beliebiger Topologie in einen gerichteten Graphen beschrieben. Der Fall, bei dem ein Zyklus aufgelöst werden muß, folgt danach. 3(a) zeigt den beliebigen Graphen von 2(a), wobei die Knoten und Links Statuskennzeichnungen haben, und kommunizierte Signale für den Graphentransformationsprozeß für die Richtungsangabe eines Graphen angezeigt werden. An diesem Punkt ist es aufschlußreich, die Signalkommunikation zwischen den Knoten zu beschreiben. 3(b) illustriert zwei Knoten 50 und 51 (die hierin nachstehend Knoten A bzw. Knoten B genannt werden), die durch Link 52 verbunden sind. Wie beschrieben, ist der Link der Kommunikationskanal, der die Transceiverports der jeweiligen Knoten verbindet, wie oben mit Bezug auf 1 beschrieben. Während des Graphentransformationsprozesses wird es notwendig, daß Knoten Vorgänger-Nachfolger-Beziehungen mit benachbarten Knoten aufstellen. Von zwei Knoten wird gesagt, daß sie benachbarte Knoten sind, wenn es mindestens einen Link gibt, der zwischen einem Port des ersten Knotens und einem Port des zweiten Knotens angeschlossen ist. In den 3(b)-3(d) wird angenommen, daß die Beziehung, die aufgelöst werden soll, die ist, daß Knoten B der Vorgänger von Knoten A ist und daß die Knoten sich dafür eignen, diese Beziehung aufzustellen.
  • Bevor eine Richtung aufgestellt wird, sendet Knoten A von seinem Port, an den Link 52 angeschlossen ist, das Signal "Du bist mein Vorgänger" (YAMP), wenn es für Knoten A angemessen ist, Knoten B als seinen Vorgänger aufzustellen. Dieser Mitteilungsinhalt kann eine beliebige Form annehmen, solange Knoten A weiß, daß er YAMP als Signal abschickt und Knoten B verstehen kann, daß die empfangene Mitteilung YAMP ist. Wenn das YAMP-Signal 53 von Knoten B empfangen wird, reagiert Knoten auf Knoten A durch Senden von "Du bist mein Nachfolger" (YAMC) über Link 52 an Knoten A. Die Zuteilungszustandsmaschinenlogik 11 von Knoten A verfolgt die Zeitverzögerung zwischen dem Senden des YAMP-Signals 53 und dem Empfang des YAMC-Signals 54. Die Zeit, die gemessen wird, gibt das Doppelte der Ausbreitungsverzögerung zwischen den Knoten A und B an. Beim Empfang des YAMC-Signals reagiert Knoten A mit einem "Du bist mein Nachfolger Bestätigt" (YAMCA)-Signal 55. Dies versieht Knoten B mit der Fähigkeit, ebenfalls die Ausbreitungszeitverzögerung zwischen den Knoten als der Zeitverzögerung zwischen dem Senden von YAMC und dem Empfang von YAMCA zu bestimmen. Für Halbduplex-Kommunikationslinks hat die YAMCA-Mitteilung auch den Effekt, den Kommunikationskanal richtig auszurichten.
  • Für Vollduplex-Kommunikationskanäle können die drei logischen Mitteilungen, YAMP, YAMC und YAMCA, alternativ durch nur zwei Signalübertragungen weitergeleitet werden. In 3(c) wird diese Situation illustriert, bei der Knoten A das YAMP-Signal 56 kontinuierlich sendet, bis er das Rückkehr-YAMC-Signal 57 empfängt. Das YAMCA-Signal wird logisch an Knoten B gesendet, wenn festgestellt wird, daß das YAMP-Signal nicht mehr ankommt.
  • Die Verwendung dieses beschriebenen dreifachen asynchronen Austauschs von Mitteilungen stellt einen Mechanismus be reit, mit dem beide Knoten, die am Austausch von Mitteilungen beteiligt sind, die Ausbreitungszeitverzögerung über den Link feststellen können. Dieser Verzögerungswert wird verwendet, um Konfliktereignisse, die weiter unten beschrieben werden sollen, aufzulösen, und wird während der normalen Buszuteilung verwendet, um die Busleistungsfähigkeit zu optimieren. Die dynamische Bestimmung dieses Parameters ist nicht obligatorisch. Als Alternative kann eine maximale Ausbreitungszeitverzögerung a priori auf Kosten einer optimalen Busleistungsfähigkeit bestimmt werden.
  • Sobald die Knoten A und B Mitteilungen ausgetauscht haben, die anzeigen, daß Knoten B der Vorgänger von Knoten A ist, kann man feststellen, daß der Link gerichtet ist. Knoten A kennzeichnet in der Logik seinen Port, an den Link 52 angeschlossen ist, als Vorgängerport (er unterhält sich mit einem Vorgängerknoten), und Knoten B kennzeichnet seinen Port, an den Link 52 angeschlossen ist, als Nachfolgerport (er unterhält sich mit einem Nachfolgerknoten). Es ist wichtig, die Kennzeichnungen, die Ports erhalten, zu bewahren, da die Verfahren, die unten beschrieben werden sollen, sich auf die Kennzeichnungen beziehen, die den Knoten und Ports zu einer gegebenen Zeit zugewiesen werden. Eine graphische Kurzbezeichnung wird in 3(d) illustriert, in der der Richtungspfeil 58 anzeigt, daß Knoten B als Vorgänger von Knoten A eingerichtet ist und der Link gerichtet ist.
  • Richtungsbestimmungen
  • Wenn man nun auf 3(a) und auf die Prozeßfiguren 6(a)-6(e) zurückverweist, so wird nun der Prozeß der Richtungszuteilung für die gesamte beliebige Topologie beschrieben. Es ist notwendig, ein paar weitere anschauliche Definitionen einzuführen, die beim Erläutern des Topologietransformationsprozesses helfen sollen. Erstens ist ein "Blattknoten" als Knoten mit nur einem angeschlossenen Port definiert. Ein Knoten erkennt seinen Status als Blattknoten, sobald er nach dem Einschalten oder einer anderen Businitialisierung initia lisiert wird. Ein "Zweigknoten" ist ein Knoten, der mindesten zwei angeschlossene Ports hat. Ein Zweigknoten hat das YAMP-Signal über alle angeschlossenen Ports außer einem empfangen und hat es bestätigt. Über den übrigen Port hat ein Zweigknoten das YAMP-Signal gesendet und so festgestellt, daß er einen Vorgängerknoten hat. Ein Knoten erreicht keinen Zweigknotenstatus, ehe er nicht festgestellt hat, daß er einen Vorgängerknoten hat (ein Knoten kann nur einen Vorgängerknoten haben) und alle seine anderen Ports mit Nachfolgerknoten verbunden sind. Vor dem Erreichen des Zweigknotenstatus wird ein Knoten als "Zyklusknoten" angesehen, weil die Möglichkeit besteht, bis er als Zweigknoten festgestellt wird, daß der Knoten Teil eines Zyklus ist, was das Feststellen einer Richtung unmöglich macht.
  • Die Graphentransformationsprozedur beginnt in Schritt 60 bei Businitialisierung (durch Einschalten oder initiiert); zu diesem Zeitpunkt erkennen sich die Blattknoten in der beliebigen Topologie in Schritt 61 als Blattknoten und kennzeichnen sich in Schritt 68 als Blattknoten, indem sie in Entscheidungsrhombus 66 feststellen, daß sie nur einen angeschlossenen Port haben. In dem Graphen, der in 3(a) dargestellt wird, sind die Knoten 33, 35, 36 und 37 Blattknoten, die nach der Initialisierung in Schritt 69 jeweils das YAMP-Signal über ihren einzigen angeschlossenen Port an ihren benachbarten Knoten senden. Nachdem sie diese Signale erhalten haben, senden die Knoten die YAMC-Signale in Schritt 70 zurück an die Blattknoten und stellen damit die Richtung für den gegebenen Link zwischen den jeweiligen Vorgänger-Nachfolger-Paaren fest, wenn die YAMCA-Kommunikation abgeschlossen ist. In Schritt 71 kennzeichnet jeder Blattknoten seinen angeschlossenen Port als Vorgängerport, und jeder empfangende Port auf dem Vorgängerport wird als Nachfolgerport gekennzeichnet.
  • Die Knoten auf dem Graphen, die zu Anfang keine Blattknoten sind, werden zu Anfang als "Zyklusknoten" aus dem Grund angesehen, der oben beschrieben wird, und fahren gemäß der Zyklusknotenprozedur 63 fort. Jeder Zyklusknoten, bei dem alle seiner angeschlossenen Ports außer einem als Nachfolgerports gekennzeichnet sind, sendet dann in Schritt 85 das YAMP-Signal über seinen restlichen, nicht gekennzeichneten Port. Wenn diese Richtung für den Link festgestellt ist, wird der Zyklusknoten als Zweigknoten gekennzeichnet. Nachdem also Blattknoten 37 feststellt, daß Knoten 34 sein Vorgängerknoten ist, hat Knoten 34 nur einen nicht gekennzeichneten Port (nachdem er die Linkverbindung zu Knoten 37 als über einen Vorgängerport gekennzeichnet hat), sendet Knoten 34 das YAMP-Signal an Knoten 31, was dazu führt, daß Knoten 34 zu einem Zweigknoten wird. Analog sendet Knoten 31 das YAMP-Signal an Knoten 30, sobald Knoten 31 festgestellt hat, daß die Knoten 33 und 34 seine Nachfolger sind. Wenn ein Knoten in Entscheidungsrhombus 75 das YAMP-Signal über alle seine Ports erhalten hat, wird der Knoten zum Wurzelknoten. Nachdem Knoten 30 die YAMP-Signale von den Knoten 31 und 32 in 3(a) erhalten hat, ändert sich seine Kennzeichnung von einem Zyklusknoten zum Wurzelknoten. Im Graphen von 3(a) ist es nicht notwendigerweise der Fall, daß Knoten 30 zur Wurzel wird. Wenn einige der Links im Baum für lange Ausbreitungsverzögerungen sorgen, könnte Knoten 30 ein YAMP-Signal auf einem Port erhalten haben und dann ein YAMP-Signal über einen anderen Port gesendet haben. Jeder der Knoten kann zur Wurzel werden, selbst ein Blatt, wobei die Wurzeleigenschaft Vorrang hat. 3(e) zeigt den sich ergebenden gerichteten Graphen als Reaktion auf die kommunizierten Signale, die in 3(a) gezeigt werden, wobei jeder Knoten gekennzeichnet ist und die Richtungen durch schwarze Pfeile angezeigt werden.
  • Wurzelkonflikt
  • Unter bestimmten Umständen kann eine Situation mit einem Wurzelkonflikt entstehen. Dies kann zum Beispiel dann passieren, wenn die beliebige Topologie eine symmetrische Anordnung aufweist, wie die in 4 gezeigte. In dem beliebigen Graphen, der in 4 illustriert wird, haben die Knoten 160 und 161 jeweils festgestellt, daß es ein Vorgänger zu den zwei Blattknoten ist, mit dem er verbunden ist. Dann hat jeder nahezu zur selben Zeit das YAMP-Signal an den anderen gesendet.
  • Die Wurzelkonfliktsituation wird von beiden Knoten, die am Entscheidungsrhombus 86 beteiligt sind, erkannt. Jeder Knoten erhält ein Signal, das ihn als Vorgängerknoten bezeichnet, während er dasselbe Signal durch denselben Port gesendet hat. Jeder der am Konflikt beteiligten Knoten antwortet dem anderen in Schritt 91 mit dem YAMC-Signal, das es jedem ermöglicht, den "Entscheidungszeitabschnitt" festzustellen, der gleich dem Doppelten der Ausbreitungszeit zwischen den Knoten ist.
  • Die Wurzelkonfliktsituation wird durch Nutzen eines Zufallsentscheidungsmechanismus aufgelöst, der in jeder Zuteilungsstatus-Maschinenlogik 11 jedes Knotens enthalten ist. Für jeden "Entscheidungszeitabschnitt", der vergeht, entscheidet jeder Knoten in Schritt 92 zufällig (mit einer 50 %igen Wahrscheinlichkeit), ob er das YAMP-Signal an den anderen nochmals senden soll. Innerhalb einer endlichen Zahl von Zyklen wird ein Knoten fast sicher entscheiden, den anderen als Vorgängerknoten zu bezeichnen, ohne daß der andere erwidert. Derjenige, der als Vorgängerknoten bezeichnet wird, wird in Schritt 95 zur Wurzel. Alternativ können vorgegebene Auswahlkriterienwerte den Knoten zugewiesen werden, wobei der größere oder kleinere bestimmt, welcher in einem Konfliktfall dominiert. Die dynamische Bestimmung des "Entscheidungszeitabschnitts" ist nicht entscheidend bei der Implementierung der vorliegenden Erfindung, obwohl er eine optimale Leistungsfähigkeit bietet. Als Alternative kann ein a priori definierter "Entscheidungszeitabschnitt" verwendet werden, solange er größer als die Linkausbreitung, die in einem beliebigen Bus auftreten kann, bei Verwendung dieses Algorithmus im schlimmsten Fall ist. Dasselbe Verfahren, das zum Auflösen von Wurzelkonflikten verwendet wird, wird auch zum Auflösen anderer Konfliktereignisse verwendet, die weiter unten beschrieben werden sollen.
  • Wurzelzuteilung
  • Wie oben beschrieben, ist das Ergebnis des Graphentransformationsprozesses die Zuteilung des Wurzelattributs an einen einzigen Knoten im Graphen. Der Wurzelknoten hat die letztendliche Entscheidung im Buszuteilungsschema, das beschrieben werden soll, und kann daher auf den Bus mit maximaler Priorität ohne Verwendung spezieller Prioritätszeitlücken zugreifen. Es ist oft wünschenswert, die Wurzeleigenschaft einem vorgegebenen Knoten zuweisen zu können, entweder wenn er erzeugt wird, oder dynamisch (während der Laufzeit), um ein gegebenes System zu optimieren. Ein gegebener Bus kann einen Knoten umfassen, der isochrone Datenübertragung erfordert. Isochrone Daten sind Daten, die zu einer gegebenen Zeit gesendet werden müssen, um von Wert zu sein. Musik von einer CD muß zum Beispiel in der Reihenfolge übertragen und ausgegeben werden, in der sie gehört werden soll, und ohne wesentliche Verzögerungen, anders als Datendateien, die stückweise und nicht notwendigerweise der Reihe nach übertragen werden können.
  • Knoten können in drei Kategorien in Bezug auf die Wurzelbezeichnungen klassifiziert werden. Diese Bezeichnungen können während der Herstellung durch Festverdrahtung der Bezeichnung in das Gerät, Programmieren der Zuteilungszustands-Maschinenlogik oder durch höhere Programmierung eingebracht werden, wobei die Entscheidung getroffen wird, dann ein erneutes Booten ausgelöst wird, wobei die Entscheidung bewahrt wird. Die drei Bezeichnungen, die einem Knoten in Bezug auf die Bezeichnung als Wurzel zugewiesen werden können, sind: Knoten, die keine Wurzel sein wollen, Knoten, die Wurzel sein können (sollten), und Knoten, die Wurzel sein müssen. Diese Bezeichnungen werden in den Schritten 81 und 83 geprüft. Ein Knoten, der der ersten Kategorie zugewiesen ist, beginnt mit der Graphentransformationsprozedur, sobald er die Anweisung dafür erhält. Daran schließt sich sofort der Abschluß der Businitialisierungsprozedur an. Ein Knoten aus der zweiten Kategorie verzögert den Beginn der Graphentransformationsprozedur für einen vorgegebenen Zeitabschnitt, nachdem er die Anweisung für den Beginn der Prozedur in Schritt 84 erhielt. Durch diese Verzögerung erhöht der Knoten seine Chance, zur Wurzel zu werden. (Auf Grund der Verzögerung ist es wahrscheinlicher, daß die YAMP-Signale sich bis zu ihm ausbreiten.) Trotz der hinzugefügten Verzögerung ist es immer noch möglich, daß ein Knoten vom Typ "kann Wurzel werden" im Endeffekt nicht als Wurzel be zeichnet wird. Dies hängt von der gegebenen Topologie und den Ausbreitungsverzögerungen der Mitteilungen ab. Die Größe der Verzögerung kann während des Entwurfs so definiert werden, daß sie größer als eine vernünftige Ausbreitungsverzögerung durch einen recht komplexen Graphen im schlimmsten Fall ist.
  • Ein Knoten aus der dritten Kategorie der Möglichkeiten der Wurzelbezeichnung kann nur die Tatsache anerkennen, daß er die Wurzel sein muß, nachdem der Graph bereits transformiert wurde und alle Knoten sich selbst identifiziert haben. Die Zuteilungszustands-Maschinenlogik kann diese Feststellung vornehmen oder Software, die auf dem Hostsystem läuft. Wenn dies auftritt, vereinbart der Knoten, der Wurzel sein muß, mit allen anderen Knoten auf dem Bus, daß er die einzige Wurzel sein wird, und startet den Graphentransformationsprozeß neu, indem er ein preemptives Businitialisierungssignal aussendet, das weiter unten beschrieben wird. Der Knoten wartet dann in Schritt 82, bis er zur Wurzel wird, und beteiligt sich nicht an der Graphentransformation, bis er das YAMP-Signal an allen seinen Ports erhalten hat, was seine Ernennung zur Wurzel erzwingt.
  • Sobald die Wurzel festgelegt wurde, kann man sagen, daß der Graph gerichtet ist. Es gibt eine definierte Beziehung, die zwischen allen benachbarten Knoten im Graphen besteht.
  • Zyklusauflösung
  • Die Prozeduren, die oben zur Richtungszuteilung eines Graphen beschrieben werden, funktionieren nur für einen azyklischen Graphen. Wenn es Zyklen in der beliebigen Topologie gibt, müssen sie durch die Prozedur, beginnend bei Schritt 80, aufgebrochen werden. Das Vorhandensein eines Zyklus wird in Schritt 79 festgestellt, wenn nach dem Verstreichen einer vorgegebenen Zeitüberwachungsdauer ein Knoten immer noch als Zyklusknoten und nicht als Blatt, Zweig oder Wurzel gekennzeichnet ist. Die Zeitnahme für die "Zyklusfeststellung" beginnt unmittelbar nach dem Ende der Businitialisierungsfunktion. Der Zeitüberwachungsabschnitt braucht nicht länger zu sein als die Dauer des Graphentransformationsprozesses im ungünstigsten Fall (Hinzufügen von Verzögerungszeit für einen Knoten vom Typ "kann Wurzel werden" und ein mögliches Wurzelkonfliktereignis).
  • Das Zeitablaufereignis "Zyklusfeststellung" muß nicht synchron für alle Knoten eines Graphs auftreten, da die Austauschvorgänge aller Mitteilungen asynchrone Ereignisse sind. Daher ist es für einen Knoten, der sein Zeitablaufereignis "Zyklusfeststellung" noch nicht erreicht hat, möglich, eine Mitteilung zu erhalten, die anzeigt, daß die Zyklusauflösung andauert. Solch ein Knoten wird sein Zeitablaufintervall Zyklusfeststellung beenden und den entsprechenden Zyklusauflösungsprozeß beginnen.
  • Das Verfahren der Zyklusauflösung gemäß der vorliegenden Erfindung erfordert den Eingriff des Nutzers der zusammengestellten Kollektion von Knoten. Wenn ein Knoten auf den Zeitablauf "Zyklusfeststellung" trifft, kann der Systemnutzer in Schritt 100 von 6(a) durch ein Ausgabegerät davon benachrichtigt werden, daß ein Zyklus vorhanden ist und welche Knoten daran beteiligt sind. Der Nutzer wird dann angewiesen, Links zu unterbrechen, um Zyklen, die vorhanden sind, zu beseitigen. Der Nutzer gibt dann die Kontrolle an die Graphentransformationsprozedur zurück.
  • Sobald alle Schleifen aufgebrochen sind und keine Zyklen übrig bleiben, kann die Prozedur zur Umformung des Graphen, wie in früheren Abschnitten beschrieben, fortfahren, bis der gesamte Graph sowohl azyklisch als auch gerichtet ist.
  • Eindeutige physische Adreßzuteilung
  • Sobald ein gerichteter azyklischer Graph aus der originalen beliebigen Topologie erstellt worden ist, ist es möglich, jedem Knoten auf dem Graphen eindeutige physische Adressen zuzuweisen. Dieser Prozess beginnt bei allen Blattknoten, die den Bus anfordern, durch Senden des Busanforderungs-(BR)-Signals über ihre einzelnen angeschlossenen Ports. Der Vorgängerknoten wartet, wenn er das Signal erhält, bis er das BR-Signal von allen seinen Nachfolgerports erhalten hat, und sendet dann das BR-Signal an seinen Vorgänger. Die BR-Signale breiten sich durch den Graphen aus, bis die Wurzel das BR-Signal von allen seinen Nachfolgern erhalten hat. Sobald die Wurzel eine Busanforderung über alle ihre Nachfolgerports erhalten hat, wird sie eine Entscheidung über die Zuteilung des Busses über einen Port treffen und das Busablehnungs-(BD)-Signal über alle übrigen Nachfolgerports senden. Das Verfahren zur Auswahl, welche Busanforderung angenommen wird, kann eine a priori-Entscheidung sein, wie die oben beschriebene, wo zum Beispiel Ports von links nach rechts oder auf der Basis der Portnumerierung ausgewählt werden usw. Das Busgewährungs-(BG)-Signal wird von der Wurzel an den anfordernden Nachfolger gesendet. Wenn der anfordernde Nachfolger selbst ein Vorgängerknoten ist, der die Busanforderung von einem seiner Nachfolger gesendet hat, wird er das Busablehnungssignal über alle seine Nachfolgerports außer einem in derselben vorgegebenen Weise senden, wie oben beschrieben. Schließlich empfängt ein Blattknoten das Busgewährungssignal, auf welches er mit einem Busgewährungsquittierungs-(BGA)-Signal antwortet, welches zurück zum Wurzelknoten gesendet wird. Das Senden der BD- und BGA-Signale dient dazu, die Kommunikationslinks auszurichten, was für den Fall von Halbduplex-Kommunikationskanälen notwendig sein kann. Alle abgelehnten Knoten warten dann auf Aktivität durch den Knoten, der schließlich das BG-Signal erhält.
  • Der Knoten, dem letztendlich der Zugriff auf den Bus gewährt wird, sendet ein Adreßzuteilungspaket. Der Knoten sendet dieses Paket auf dem Bus, und dieses wird von allen anderen Knoten empfangen, von denen jeder die Zahl der Adreßpakete zählt, die empfangen werden. Das gesendete Adreßpaket kann beliebige Informationen enthalten. Eine eindeutige physische Adresse eines Knotens basiert auf der Zahl der Adreßpakete, die ein Knoten gezählt hat, bevor er ein Adreßpaket sendet. Daher erhalten keine zwei Knoten dieselbe physische Adresse, trotzdem sie keine Adreßinformationen haben, die im voraus zugewiesen werden. Die tatsächliche Zusammensetzung des Adreßpakets ist beliebig und kann irgendein Bitstrom sein, der vom System effizient genutzt werden kann. Nach dem Senden des physischen Adreßzuteilungspakets sendet ein Knoten ein "Nachfolger-ID Ab geschlossen"-(CIC)-Signal. Der Vorgängerknoten sendet, wenn er dies über einen Nachfolgerport empfängt, das "Nachfolgeridentifizierung Abgeschlossen Bestätigungs"-(CICA)-Signal und kennzeichnet den Port als identifizierten Nachfolgerport. Als Reaktion auf die nächste BR-Signalsendung wählt der Vorgänger des Knotens, der sich gerade selbst identifiziert hat, seinen nächsten Nachfolger zum Senden des physischen Adreßpakets aus. Sobald alle Nachfolgerknoten eines Vorgängerknotens sich selbst identifiziert haben, fordert der Vorgängerknoten den Bus an und, wenn der Bus gewährt wird, sendet er sein physisches Adreßzuteilungspaket. Diese Prozedur setzt sich fort, wobei die vorgegebenen Auswahlkriterien befolgt werden, bis alle Knoten eine eindeutige physische Adreßzuteilung durch Zählen feststellen. 5 illustriert den Graphen von 3(e), bei dem ein vorgegebenes Auswahlkriterium "von links nach rechts" implementiert wird. Die Knoten sind eindeutig zugewiesene Adressen, wobei Knoten 33 die erste Adresse erhält, und wie beschrieben, der Wurzelknoten 30 die achte und letzte Adresse erhält.
  • Wenn diese Prozedur abgeschlossen ist, hat jeder Knoten im Graphen eine eindeutige physische Adresse, die nicht im voraus bestimmt werden muß und die für das Systemmanagement oder andere Zwecke genutzt werden kann.
  • Knoteneigenidentifizierung
  • Der Prozess der Knoteneigenidentifizierung folgt im wesentlichen derselben Routine wie die Zuteilungsprozedur für physische Adressen, die oben beschrieben wird. Da jeder Knoten sein physisches Adreßzuteilungspaket sendet, kann dieses Paket weitere Informationen umfassen, wie zum Beispiel die Identifikation des physischen Gerätes, welche die Identifikation des lokalen Hosts in Bezug auf den Knoten, wie viel Energie er erfordert und zum Beispiel, ob er ein Attribut "weiches Einschalten" unterstützt, usw. umfaßt. Tatsächlich können die Informationen über die Knoteneigenidentifizierung als physisches Adreßzuteilungspaket dienen, da überhaupt die Praxis des Sen dens von Informationen die Basis für das Zählen zum Gewinnen eindeutiger physischer Adressen liefert.
  • Mit Bezug auf das Knoteneigenidentifizierungspaket brauchen diejenigen Knoten, die von der Art des ankündigenden Knotens betroffen sind, überhaupt nicht auf die speziellen Informationen zu "lauschen", die den Knoten betreffen. Diese Prozedur setzt sich wie oben fort, bis alle Knoten ihre Informationen zur Knoteneigenidentifizierung gesendet haben.
  • Topologieabbildung
  • Das Verfahren der Topologieabbildung verfolgt dieselbe Richtung wie die physische Adreßzuteilung und Knoteneigenidentifizierung. Diese Prozedur veranlaßt also jeden Knoten, wenn er den Prozess der Adreßzuteilung oder Knoteneigenidentifizierung durchläuft, weiter Informationen bezüglich aller seiner Ports zu senden, wie zum Beispiel die Zahl der Nachfolgerports, die der hat, und ob er Ports deaktiviert hat oder nicht. In Bezug auf deaktivierte Ports kann es wünschenswert sein, ein Kommunikationsprotokoll zwischen Ports, die deaktivieren, zu implementieren, so daß sie feststellen können, von wem sie deaktiviert werden. Wenn also ein Port sich als deaktivierten Port identifiziert, gibt er einen Kennzeichner an, der seine eigne ID wie auch die Port-ID anzeigt, von der er deaktiviert wurde.
  • Durch Zusammenstellen aller Topologieinformationen über alle Ports, die während der Topologieabbildungsprozedur empfangen wurden, kann der Busserver, Host oder eine Anwendung auf Softwareniveau logisch die aufgelöste Bustopologie rekonstruieren. Dies ist für viele Zwecke nützlich, einschließlich für die Implementierung von Redundanz, bei der vorher deaktivierte Links, wenn ein Link unerwartet ausfällt, dazu dienen können, den Verlust von Kommunikationskanälen für Knoten zu verhüten.
  • Gerechte Buszugangszuteilung
  • Nach dem Abschluß der Routinen zur Topologieabbildung, Knoteneigenidentifizierung oder physischen Adreßzuteilung kann der Bus als betriebsbereit angesehen werden. Ein Zuteilungsschema, das gemäß der vorliegenden Erfindung implementiert ist, ist das des gerechten Buszugangs. Wenn ein Knoten Zugang zum Bus wünscht, sendet er über seinen Vorgängerport (wenn er nicht die Wurzel ist) ein Busanforderungs-(BR)-Signal. Der Vorgänger sendet beim Empfangen des BR-Signals von einem Nachfolger ein Busablehnungs-(BD)-Signal über alle seine anderen Nachfolgerports. Der Vorgänger sendet dann das BR-Signal nach oben über seinen Vorgänger, bis das Signal die Wurzel erreicht. Die Wurzel gibt ein Busgewährungs-(BG)-Signal als Reaktion auf das erste BR-Signal aus, das sie empfängt, und sendet das BD-Signal über alle seine anderen Nachfolgerports, die es nach unter weiterleiten, wodurch die Links ausgerichtet werden. Das BG-Signal breitet sich nach unten durch den Graphen aus, bis es den anfordernden Knoten erreicht, der dann das Busbestätigungs-(BA)-Signal sendet, gefolgt von dem Paket mit Informationen, die der Knoten auf den Bus senden muß. Wenn das Paket abgeschlossen ist, kehren alle Knoten zum Leerlaufzustand zurück oder nehmen diesen ein.
  • Falls die Wurzel nahezu gleichzeitige Anforderungen für den Bus erhält, werden die vorgegebenen Auswahlkriterien für den Wurzelknoten für die Gewährung des Buszugangs an einen der Knoten verwendet. Dies können dieselben vorgegebenen Prioritätsauswahlkriterien sein wie die oben beschriebenen.
  • Ein weiterer Aspekt der gerechten Buszugangszuteilung ist, daß ein Vorgängerknoten Vorrang gegenüber seinen Nachfolgern hat. Wenn also ein Vorgängerknoten den Bus benötigt, sendet er das BD-Signal über alle seine Nachfolgerports und sendet dann das BD-Signal nach oben zur Wurzel hin. Ein potentielles Problem bei diesem Mechanismus ist, daß ein Nachfolgerknoten Schwierigkeiten haben kann, einen angemessenen Buszugang zu erhalten, wenn der Vorgänger eine große Menge an Informationen zu senden hat. Daher wird ein Lückensystem eingeführt, das in großem Umfang verwendet wird und im Fachgebiet bekannt ist. Nachdem ein Knoten den Bus genutzt hat, muß der Knoten für eine Unterbrechungszeit warten, bevor er den Bus wieder anfordern kann. Dies gibt jedem Knoten auf dem Bus, un abhängig von seiner topologischen Einordnung auf dem Bus, die gleiche Chance, Zugang zum Bus gewährt zu bekommen.
  • Um ein gerechtes Zuteilungsprotokoll zu garantieren, muß die Länge der Unterbrechung größer als die Signalausbreitungsverzögerung durch den Bus im ungünstigsten Fall sein. Der Unterbrechungswert kann vorgegeben und in der Knotenlogik fest verdrahtet sein; solch eine Herangehensweise führt in allen Fällen, außer im extremsten Fall, zu einer nicht optimalen Nutzung des Busses. Die Topologieabbildungsfähigkeit, zusammen mit der Messung der Ausbreitungsverzögerung zwischen benachbarten Knoten, die während der Graphentransformationsphase ausgeführt wird, ermöglicht die Berechnung einer optimalen gerechten Unterbrechung, durch die die Busleistungsfähigkeit für eine beliebige spezielle Implementierung maximiert wird.
  • Prioritätsbuszuteilung
  • Bei dem Buszuteilungsschema, das gemäß der obigen gerechten Buszugangszuteilung implementiert wird, kann es wünschenswert sein, daß die Wurzel immer Buspriorität hat. Wenn dies implementiert wird, kann der Wurzelknoten jederzeit sich selbst den Bus gewähren. Dies erfolgt dadurch, daß zuerst das BD-Signal nach unten durch alle Knoten im Graphen gesendet wird. Der Prioritätsbuszugang ist für die Wurzel sehr nützlich für den Fall, daß der Wurzelknoten eine isochrone Datenübertragung ausführen soll.
  • Token-Passing-Bus-Zuteilung
  • Als Alternative zu den gerechten und Prioritätsbuszugangszuteilungsschemata, die oben beschrieben werden, kann die vorliegende Erfindung bei der Implementierung eines Token-Passing-Buszuteilungsschemas genutzt werden. Bildlich gesprochen, bezieht sich der Token-Passing-Buszugang auf die Vorstellung, daß ein Knoten auf einem Bus kommunizieren kann, wenn er im Besitz eines Tokens ist, das zwischen den Knoten weitergegeben wird. Das Token wird von Knoten zu Knoten zyklisch so weitergegeben, daß jeder Knoten den Bus an einem vor gegebenen Punkt im Zyklus empfängt. Token-Passing wird in der vorliegenden Erfindung implementiert, indem dieselbe Verfahrensweise verfolgt wird wie bei der Zuteilungsprozedur für physische Adressen, die oben beschrieben wird. Die vorgegebenen Auswahlmechanismen, die implementiert sind, werden zum Auswählen der Reihenfolge verwendet, in der das Token von Knoten zu Knoten weitergegeben wird. Diese Reihenfolge ähnelt der Reihenfolge, wie sie in 5 gezeigt, die die Reihenfolge der eindeutigen Adreßzuteilung bestimmt. Jeder Knoten sendet, wenn ihm das Token zugewiesen wird, sein Informationspaket auf dem Bus, während die übrigen Knoten lauschen. Der Knoten gibt dann das Token auf der Basis des vorgegebenen Folgesteuerungsverfahrens an den nächsten logischen Knoten weiter, wie oben beschrieben.
  • Preemptive Businitialisierung
  • Ein wichtiges Merkmal, das gemäß der vorliegenden Erfindung implementiert werden kann, ist der Begriff der preemptiven Businitialisierung. Die Statusmaschinenlogik, die in jedem Knoten enthalten ist, kann ein Businitialisierungs-(BI)-Signal auslösen, das bei bestimmten Bedingungen vom Knoten über alle seine Ports ausgebreitet werden soll. Wenn ein Knoten festgestellt hat, daß es notwendig ist, einen Businitialisierungszustand zu signalisieren, sendet er das BI-Signal durch alle seine Ports für eine Dauer, die garantiert, daß alle benachbarten Knoten es erhalten und dann freigegeben haben. Ein Knoten tritt dann in die einleitenden Prozeduren ein, die dann zum Graphentransformationsprozeß in den oben beschriebenen Prozeduren führen.
  • Es gibt eine Reihe von Situationen, die es notwendig oder wünschenswert machen, eine preemptive Businitialisierung auszulösen. Erstens kann dies eine Knotenantwort auf einen unvorhergesehenen Fehler sein. Außerdem kann auf dem Hostniveau festgestellt werden, daß ein anderer Knoten das Wurzelattribut erhalten sollte, zum Beispiel ein Knoten für die isochrone Datenübertragung.
  • Diese Zuteilung wird während der ganzen Businitialisierungsprozedur beibehalten, wodurch bewirkt wird, daß der gewünschte Knoten während der Transformationsprozedur wartet, bis er die Wurzelkennzeichnung erhält. Ein weiterer Zustand, der zu einer preemptiven Businitialisierung führt, kann das Aufbrechen eines Links sein; in diesem Fall kann es notwendig sein, einen neuen azyklischen gerichteten Graphen für die angeschlossenen Knoten zu berechnen. Zum Schluß eine wichtige Situation, bei der eine preemptive Businitialisierung auftreten sollte, wenn ein Gerät dem Netz hinzugefügt wird, was als Anschluß von Peripheriegeräten unter Spannung bezeichnet wird. Der Port, an den ein neues Gerät angeschlossen wird, stellt das Vorhandensein eines neuen Knotens fest und löst eine Businitialisierung aus, die für den Nutzer des Systems transparent ist, die aber zum Beispiel das Hinzufügen oder Entfernen von Peripheriegeräten ermöglicht, ohne an- und wieder anschalten zu müssen. Es wird ein neuer azyklischer gerichteter Graph berechnet, der den hinzugefügten Knoten einschließt. Es ist möglich, daß es beim Entfernen bestimmter Knoten nicht nötig ist, eine Businitialisierung auszulösen; wenn zum Beispiel ein Blattknoten entfernt wird, schadet dies dem Netz nicht. Wenn jedoch ein Zweigknoten vom arbeitenden Bus abgeklemmt wird, ist es wahrscheinlich notwendig, den Graph neu zu konfigurieren.
  • Obwohl die vorliegende Erfindung in Form von bevorzugten Ausführungsformen beschrieben wurde, wird für den Fachmann ersichtlich, daß verschiedene Modifizierungen und Abwandlungen vorgenommen werden können. Die Erfindung sollte daher in Form der Ansprüche, die folgen, bewertet werden.

Claims (1)

  1. Ein Verfahren für eine preemptive Businitialisierung in einem Computersystem, wobei das Computersystem eine Mehrzahl von mittels einer Mehrzahl von Kommunikationsverbindungen verbundene Komponenten aufweist, wobei die Mehrzahl von Komponenten jeweils wenigstens einen ersten Kommunikationsknoten aufweisen, wobei die Kommunikationsknoten mit ihrer zugeordneten Komponente mittels einer Kommunikationsverbindung über einen Knotenport koppeln, 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 ernannt ist, wobei alle nur mit einem benachbarten Knoten gekoppelten Knoten als Blattknoten benannt sind, wobei alle anderen Knoten in dem Graph als Astknoten benannt sind, wobei der azyklisch gerichtete Graph hierarchische Eltern-Kind-Beziehungen zwischen allen benachbarten Knoten eingerichtet hat, welche von dem Wurzelknoten herab zu jedem Blattknoten verlaufen, wobei ein Blattknoten nur einen Elternknoten hat und alle 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 aufweist, wobei das Verfahren der preemptiven Businitialisierung gekennzeichnet ist durch die Schritte des Verbreitens eines Businitialisierungssignals von irgendeinem Knoten, welcher bestimmt, dass eine Businitialisierung erforderlich ist, Aufrechterhalten des Businitialisierungssignals für eine vorgegebene Zeitdauer und Verbreiten des Signals durch den Graph an alle Knoten in dem Graph.
DE69334172T 1992-12-21 1993-12-16 Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph Expired - Lifetime DE69334172T2 (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
DE69334172D1 DE69334172D1 (de) 2007-10-31
DE69334172T2 true DE69334172T2 (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
DE69334172T Expired - Lifetime DE69334172T2 (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
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
DE69334171T Expired - Lifetime DE69334171T2 (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) EP0674788B1 (de)
JP (7) JP3638949B2 (de)
KR (1) KR100290517B1 (de)
AU (1) AU5953994A (de)
CA (4) CA2408252C (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
US6393557B1 (en) 1998-05-08 2002-05-21 International Business Machines Corporation Dynamic method for configuring a computer system
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
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
US6438604B1 (en) 1998-10-05 2002-08-20 Canon Kabushiki Kaisha Digital video network interface
US7013354B1 (en) 1998-10-05 2006-03-14 Canon Kabushiki Kaisha Channel protocol for IEEE 1394 data transmission
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
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
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
US6587904B1 (en) * 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
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
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
US7050453B1 (en) 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6831928B1 (en) 2000-02-17 2004-12-14 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
US6886051B2 (en) * 2002-03-28 2005-04-26 Seagate Technology Llc Device discovery method and apparatus
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
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
US7509641B2 (en) * 2003-05-16 2009-03-24 Jp Morgan Chase Bank Job processing framework
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
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
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
WO2005015361A2 (en) 2003-08-08 2005-02-17 Jp Morgan Chase Bank 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
US7308517B1 (en) * 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
US7237135B1 (en) 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
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
WO2005102016A2 (en) 2004-04-26 2005-11-03 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
US8223666B2 (en) * 2005-08-23 2012-07-17 Cisco Technology, Inc. Method of constructing a forwarding database for a data communications 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
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
US9009235B2 (en) 2008-06-17 2015-04-14 Attivio, Inc. Ordered message processing
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.
EP0562222B1 (de) * 1992-03-27 1999-05-12 Alcatel Anordnung zur Zugriffssteuerung

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69334172T2 (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
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
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
DE2856483C2 (de)
DE3820544C2 (de) Ortsbereichsnetzsystem mit einem hiermit gekoppelten Mehrcomputersystem und Verfahren zur Steuerung hiervon
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
DE3546683C3 (de) Verfahren zum Betreiben einer Datenverarbeitungsanlage
DE69636547T2 (de) Integrierter Repeater
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
DE2230830A1 (de) Datenverarbeitungsanlage
DE112008004203B4 (de) Kommunikationsverwaltungsvorrichtung, Kommnunikationsvorrichtung und Kommunikationsverfahren
DE10259327A1 (de) USB-Verbundgerät und Verfahren zum Realisieren desselben
DE19539354A1 (de) Backplane-Steuerung für Spinnereimaschine
DE102017120447A1 (de) Halbleitervorrichtung, Verfahren zum Betreiben der Halbleitervorrichtung und ein System, das diese beinhaltet
DE69433232T2 (de) Digitales Nachrichtennetz mit Auswahlprozess einer Moderatorstation
DE60224438T2 (de) Aggregation von hardwareereignissen in mehrfach knotensystemen
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE69631612T2 (de) Elektronische Geräte und deren Betriebsartsteuerung
DE60023429T2 (de) Geräteregistrierung in einem Netzwerk
DE2629401C2 (de)

Legal Events

Date Code Title Description
8381 Inventor (new situation)

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

8364 No opposition during term of opposition