DE69332778T2 - Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph - Google Patents

Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph Download PDF

Info

Publication number
DE69332778T2
DE69332778T2 DE69332778T DE69332778T DE69332778T2 DE 69332778 T2 DE69332778 T2 DE 69332778T2 DE 69332778 T DE69332778 T DE 69332778T DE 69332778 T DE69332778 T DE 69332778T DE 69332778 T2 DE69332778 T2 DE 69332778T2
Authority
DE
Germany
Prior art keywords
node
nodes
signal
bus
neighboring
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
DE69332778T
Other languages
English (en)
Other versions
DE69332778D1 (de
Inventor
Florin Oprescu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of DE69332778D1 publication Critical patent/DE69332778D1/de
Application granted granted Critical
Publication of DE69332778T2 publication Critical patent/DE69332778T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • 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/40078Bus configuration
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use

Description

  • HINTERGRUND DER ERFINDUNG
  • Hiermit zusammenhänge Anmeldungen
  • Diese Anmeldung hängt zusammen mit dem US-Patent 5,630,173 mit dem Titel „Method and Apparatus for Arbitrating on an Acyclic Directed Graph", welches an den Zessionar der vorliegenden Anmeldung übertragen und gleichzeitig hiermit angemeldet wurde.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf Computersysteme. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Einrichtung für die Einrichtung und die Nutzung eines Kommunikationsschemas zwischen einer Mehrzahl von beliebig zusammengesetzten Elementen eines Computersystems.
  • Hintergrund
  • Komponenten innerhalb eines gegebenen Computersystems benötigen die Fähigkeit, Signale untereinander zu übertragen. Bei sehr einfachen Systemen ist es möglich, daß jedes Element des Systems direkt mit allen anderen Teilen des Systems verdrahtet ist. In der Realität jedoch entwickelten Computer-Architekten vor langer Zeit das Konzept eines Kommunikationsbusses, um Computer erweiterungsfähig zu machen und eine unbekannte Anzahl von Systemteilen aufzunehmen.
  • Ein Bus ist ein Kommunikationspfad, wie beispielsweise ein Draht oder Drähte, der durch das gesamte Computersystem verläuft. Jede Komponente des Systems muß nur an den Bus angeschlossen werden, um theoretisch mit jeder der anderen Komponenten in dem System verbunden zu sein. Natürlich kann nicht jede Komponente gleichzeitig mit anderen Komponenten kommunizieren, weil es nur einen einzigen Kommunikationskanal zwischen den Komponenten geben kann. Bei der Verwen dung eines Kommunikationsbusses ist es erforderlich, irgendeine Form einer Anordnung für eine gemeinsame Benutzung aufzubauen, so daß jede Komponente den Bus verwenden kann, um mit anderen Komponenten in einer effizienten Weise zu kommunizieren, die keine kritischen Informationen von einer Komponente hängen läßt, die auf den Buszugriff warten. Das Verfahren, mit welchem die Komponenten an dem Bus den Bus gemeinsam benutzen, wird im Allgemeinen als ein Bus-Arbitrierungs-Schema bezeichnet.
  • Zusätzlich zu der entscheidenden Notwendigkeit, das Bus-Arbitrierungs-Schema zu optimieren, um den Durchlauf wichtiger Informationen zu maximieren, kann und sollte die physikalische (und logische/elektrische) Konfigurierung des Busses selbst optimiert werden, um Systemlaufzeiten bei Erhaltung einer höchstmöglichen Flexibilität zu minimieren.
  • Um mit anderen an einen Bus angeschlossenen Komponenten zu kommunizieren, muß jede Komponente mit Hardware, wie beispielsweise einer Sende- und Empfangsschaltung ausgestattet sein, die mit dem für den Bus implementierten Kommunikationsprotokoll kompatibel ist. Ein derartiger Kommunikationsstandard wird in dem IEEE Standards Document P1394 unter dem Titel „High Performance Serial Bus" beschrieben; dieses Dokument ist als Anhang A dem vorliegenden Dokument beigefügt. Der in P1394 beschriebene Standard hat den Zweck, eine preiswerte Verbindung zwischen Karten auf derselben Bus-Leiterplatte, Karten auf anderen Bus-Leiterplatten und externen Peripheriegeräten bereitzustellen.
  • Dem Stand der Technik entsprechende Busse oder Netzwerke benötigten das wissen darüber, was wo angeschlossen wurde. Beispielsweise verfügt die Rückseite vieler Computer über spezifische Ports für spezifische Peripheriegeräte. Einige Computer implementieren verschiedene Busse, wie beispielsweise der Macintosh, welcher einen als ADB bezeichneten Bus für Komponenten wie Maus und Tastatur und einen SCSI-Bus für andere Peripheriegeräte verwendet. Diese Bustypen ermöglichen eine erstklassige Verkettung von Elementen, aber die Verbindungen weisen eine begrenzte Topologie auf. Andere bekannte Busse/Netzwerke erfordern, daß die Knoten des Netzwerks in einem Ring angeordnet sind, eine Schleife, welche geschlossen sein muß, um wirksam zu werden. Schließlich erforderten Stern- oder Speichen-Anordnungen, daß jeder Knoten mit einem zentralen Master direkt verbunden war. Allen dem Stand der Technik entsprechenden Systemen fehlt ein gewünschtes Maß an Flexibilität. Das US-Patent 4,845,744 (DeBenedictis) offenbart ein Parallelverarbeitungsnetzwerk, das in Form von strukturierten virtuellen Bäumen von Verarbeitungsknoten konfiguriert ist. Die virtuellen Bäume sind Lösungen für zahlreiche mathematische Probleme.
  • Es wäre wünschenswert und ist daher ein Ziel der vorliegenden Erfindung, in der Lage zu sein, Elemente eines Computersystems an einem Bus beliebig zusammenzusetzen, wobei die beliebige Topologie von dem System in ein funktionierendes System aufgelöst werden kann, ohne daß eine vorherbestimmte Anordnung der Komponenten erforderlich ist.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Es ist ein Ziel der vorliegenden Erfindung, die Funktionalität des Busses eines Computersystems zu verbessern, in welchem die Knoten des Busses in einen azyklischen gerichteten Graphen aufgelöst worden sind.
  • Es ist ebenfalls ein Ziel der vorliegenden Erfindung, eindeutige Adressen an Knoten auf einem azyklischen gerichteten Graphen bereitzustellen.
  • Es ist ein weiteres Ziel der vorliegenden Erfindung, einen Selbstidentifizierungsmechanismus für eine Ansammlung bzw. Gruppe von Knoten auf einem azyklischen gerichteten Graphen bereitzustellen.
  • Es ist noch ein weiteres Ziel der vorliegenden Erfindung, einen Mechanismus für die Abbildung der Topologie einer Ansammlung von Knoten an einem Bus bereitzustellen, die die Topologie eines azyklischen gerichteten Graphen aufweist.
  • Es ist noch ein weiteres Ziel der vorliegenden Erfindung, Verbindungsredundanzinformationen an ein Host-System für eine beliebige Ansammlung von Knoten bereitzustellen, die in einen azyklischen gerichteten Graphen aufgelöst werden.
  • Diese und andere Ziele der vorliegenden Erfindung werden in einem Computersystem mit einem Bus implementiert, wobei das Computersystem eine Mehrzahl von Komponenten aufweist, die durch eine Mehrzahl von Kommunikationsverbindungen miteinander verbunden sind, wobei die mehreren Komponenten jeweils eine Mehrzahl von Kommunikationsknoten aufweisen, wobei die Knoten wenigstens einen Port einer Mehrzahl von Ports aufweisen und Schnittstellen zu den ihnen zugeordneten Komponenten über eine Kommunikationsverbindung, welche einen Port eines Knotens mit einem anderen Port eines anderen Knotens verbindet, bilden, wobei die Knotenverbindungen azyklisch sind und eingerichtete hierarchische Eltern-Kind- bzw. Vorgänger-Nachfolger-Beziehungen zwischen sämtlichen benachbarten Knoten von einem Wurzelknoten bis zu irgendwelchen Blattknoten bzw. terminalen Knoten hinab aufweisen, wobei ein terminaler Knoten nur einen Vorgängerknoten aufweist, wobei sämtliche dem Wurzelknoten benachbarte Knoten Nachfolgerknoten in Bezug auf andere benachbarte Knoten sind, wobei der Wurzelknoten als Knoten definiert ist, der keinen Vorgängerknoten aufweist, wobei das Verfahren umfaßt:
    daß jeder terminale Knoten anfänglich ein „Busanforderung"(BR)-Signal auf den Bus sendet;
    daß jeder ein BR-Signal empfangende Knoten wartet, bis sämtliche benachbarten Nachfolgerknoten entweder ein BR-Signal verbreiten bzw. weiterleiten oder identifiziert sind, und dann das BR-Signal an einen Vorgängerknoten verbreitet;
    daß der Wurzelknoten wartet, bis sämtliche benachbarten Knoten ein BR-Signal verbreiten, und dann ein „Buszutei lung"(BG)-Signal an einen der benachbarten Knoten verbreitet;
    daß das BG-Signal abwärts über die dazwischenliegenden Knoten verbreitet wird, bis ein Knoten, der ein BR-Signal initiierte, das BG-Signal empfängt;
    dadurch gekennzeichnet,
    daß sämtliche Knoten anfänglich den Status nicht identifizierter Knoten haben, wobei jeder Port jedes Knotens ein vorgegebenes Auswahlkriterium hat, das für benachbarte Knoten eingerichtet ist, die mit diesem Knoten gekoppelt sind, wobei die Knoten und Kommunikationsverbindungen, wie sie miteinander zusammengeschlossen sind, einen azyklischen gerichteten Graphen bilden, wobei ein Knoten als Wurzelknoten gekennzeichnet ist, sämtliche Knoten, die mit nur einem benachbarten Knoten gekoppelt sind, als terminale Knoten gekennzeichnet sind und sämtliche anderen Knoten in dem azyklischen gerichteten Graphen als Zweig- bzw. Verzweigungsknoten gekennzeichnet sind, wobei das Verfahren dem Zuweisen eindeutiger Adressen zu den Knoten des azyklischen gerichteten Graphen dient und ferner umfaßt:
    daß die das BR-Signal empfangenden Knoten Verzweigungsknoten sind;
    daß der Wurzelknoten wartet, bis sämtliche benachbarten Knoten entweder ein BR-Signal verbreiten oder identifiziert sind, und dann ein „Buszuteilung"(BG)-Signal an einen der benachbarten nicht identifizierten Knoten auf der Grundlage des vorgegebenen Auswahlkriteriums zum Auswählen benachbarter Knoten verbreitet, wobei das BG-Signal über den azyklischen gerichteten Graphen abwärts über dazwischenliegende Knoten auf der Grundlage des vorgegebenen Auswahlkriteriums zum Auswählen benachbarter Knoten verbreitet wird, bis ein Knoten, der ein BR-Signal initiierte, das BG-Signal empfängt;
    daß der das BG-Signal empfangende Knoten dann eine Adreßbekanntgabe an alle Knoten an dem Bus aussendet;
    daß jeder Knoten an dem Bus als eine Zahl zählt, wie viele Adreßbekanntgaben durch andere Knoten ausgesendet werden;
    daß jeder Knoten eine eindeutige Adresse einstellt, wobei die eindeutige Adresse eine Funktion der Zahl der durch andere Knoten ausgesendeten Adreßbekanntgaben ist, bis der Knoten ein BG-Signal empfängt und nachfolgend eine Adreßbekanntgabe aussendet, wobei der Knoten dann den Status des Identifiziert-Seins erlangt;
    daß die obigen Schritte wiederholt werden, bis sämtliche Knoten identifiziert sind;
    wodurch jeder Knoten eine unterschiedliche Anzahl von Adreßbekanntgaben durch andere Knoten vor dem Einstellen der eindeutigen den Knoten identifizierenden Adresse gezählt hat, womit gesichert wird, daß jeder Knoten eine eindeutige Adreßzuweisung erlangt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung deutlich, in welcher:
  • 1 ein Blockschaltbild der Hardware-Schicht-Implementierung darstellt, die gemäß der vorliegenden Erfindung verwendet wird.
  • 2(a)–2(b) eine beliebig zusammengesetzte Ansammlung von Knoten darstellen, wobei eine Ansammlung azyklisch ist und die andere mehrere Zyklen umfaßt.
  • 3(a) die beliebig zusammengesetzte Ansammlung von Knoten aus 2(a) zeigt, die den Graphen-Transformationsprozeß gemäß der vorliegenden Erfindung durchläuft.
  • 3(b)–3(d) alternative Kommunikationsaustauschvorgänge zwischen Knoten bei der Implementierung der vorliegenden Erfindung darstellen.
  • 3(e) den gerichteten Graphen, der aus dem beliebig zusammengesetzten Netzwerk der Knoten aus 2(a) resultiert, grafisch darstellt.
  • 4 eine symmetrische Graphenanordnung darstellt, welche die Auflösung einer Knotenkonkurrenzsituation erfordert.
  • 5 einen gerichteten azyklischen Graphen mit einer gekennzeichneten möglichen eindeutigen Adreßzuweisungsreihenfolge darstellt.
  • 6(a)–6(a) den Prozeßablauf für die Ausführung des Graphen-Transformationsverfahrens gemäß dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung darstellt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Es werden ein Verfahren und eine Einrichtung für die Verwendung eines Busses, der eine beliebige Topologie aufweist, beschrieben. In der folgenden Beschreibung sind viele spezifische Details dargelegt, wie beispielsweise verschiedene Computerkomponenten, um ein umfassendes Verständnis der vorliegenden Erfindung zu gewährleisten. Einem Fachmann wird jedoch klar sein, dass die vorliegende Erfindung ohne derartige spezifische Details ausgeführt werden kann. In anderen Fällen wurden bekannte Steuerstrukturen und Codierungstechniken nicht im Detail beschrieben, um die vorliegende Erfindung nicht unnötigerweise mit anderen Details zu überlagern.
  • In dieser gesamten detaillierten Beschreibung werden zahlreiche deskriptive Begriffe eingeführt, um der Beschreibung metaphorische Klarheit zu geben. Es wird beispielsweise häufig auf Eltern-Kind- bzw. Vorgänger-Nachfolger-Beziehungen zwischen den Knoten in einer gegebenen Topologie Bezug genommen. Der Zweck dessen besteht darin, dem endgültig aufgelösten Graphen das Konzept der „Richtung" zu geben. Wie beschrieben werden wird, wird ein Knoten als der „Wurzel"-Knoten identifiziert, wenn eine beliebige Topologie auf einen azyklischen gerichteten Graphen reduziert worden ist.
  • Der Wurzelknoten hat keinen Vorgängerknoten, alle Knoten, die logisch unmittelbar benachbarte Knoten des Wurzelknotens sind, sind die Nachfolgerknoten der Wurzel. Die „Baum"-Metapher wird durch die Einbeziehung von Knoten, die als "Zweige" bzw. „Verzweigungen" und „Blätter" bezeichnet werden, vervollständigt.
  • Obwohl die hierin beschriebene Busarchitektur unter Bezugnahme auf die Komponenten für einen einzelnen Computer beschrieben wird, hat sie im Allgemeinen einen weiteren Geltungsbereich. Die vorliegende Erfindung zum Definieren der Bustopologie kann auf jede beliebig zusammengesetzte Ansammlung von Knoten angewendet werden, die wie in einem Netzwerk von Einrichtungen miteinander verbunden sind. Ein Punkt, der zu beachten ist, ist die Notwendigkeit, einen Knoten von einer physikalischen Computerkomponente zu unterscheiden. Jede Komponente, die sich an dem Bus befindet, weist wenigstens eine mit ihr verknüpfte Knoten-Bitübertragungsschicht-Steuereinrichtung auf. Unter bestimmten Umständen kann eine gegebene Komponente vorteilhaft mit mehreren Knoten ver- knüpft werden, aber im Normalfall wird es eine Eins-zu-Eins-Korrespondenz zwischen Einrichtungen oder Komponenten an dem Bus und den Knoten geben.
  • Es wird jetzt auf 1 Bezug genommen; es wird ein Blockschaltbild eines Knotens 10 dargestellt. Die physikalische Implementierung eines Knotens ist ein wenig beliebig. Bei dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden die Knoten in Übereinstimmung mit dem Kommunikationsprotokoll IEEE P1394 High Performance Serial Bus konzipiert, welches als Anhang A beigefügt ist. Der Knoten 10 enthält die Arbitrierungs-Zustandsmaschinenlogik bzw. -Automatenlogik 11. Diese Arbitrierungs-Automatenlogik beinhaltet die gesamte Logikschaltung für die Ausführung der Methodiken und Algorithmen, die hierin zu beschreiben sind. Die Schaltung kann ein programmierbares Logik-Array (PLA) aufweisen oder kann speziell zur Ausführung der hierin beschriebenen Funktionen konzipiert sein. Wenn die von der Knotenlogik auszuführenden Funktionen beschrieben sind, werden Fachleute in der Lage sein, die vorliegende Erfindung ohne unangemessenes Experimentieren zu implementieren. Mithilfe seiner Logik implementiert der Knoten das minimale Arbitrierungs-Protokoll, welches die Businitialisierung, Baumidentifizierung, Selbstidentifizierung und die Bus-Arbitrierungs-Funktionen einschließt, welche alle hierin weiter detailliert zu beschreiben sind.
  • Der in 1 gezeigte Knoten 10 enthält auch Übertragungs-Multiplexer 12 und 13 und einen Datensender, Empfänger und Resynchronisierer 14. Der in 1 gezeigte Knoten ist mit einem lokalen Host 15 gekoppelt. Der lokale Host 15 kann jede beliebige Einrichtung sein, welche man an den Bus anschließen möchte, wie beispielsweise ein Plattenlaufwerk, eine CPU, eine Tastatur oder eine beliebige andere Komponente, welche mit anderen Komponenten in dem System kommunizieren muß. Der Knoten 10 kommuniziert mit anderen Knoten über Kommunikationsverbindungen. Eine Verbindung ist eine Verknüpfung zwischen zwei Ports und unmittelbar auf die Praxis bezogen ist sie ein Kabelsegment, aber im Allgemeinen kann sie als ein beliebiger physikalischer Kanal implementiert werden. Eine Verbindung soll mindestens in der Lage sein, einen Halbduplex-Kommunikationskanal zwischen den zwei Ports, die sie verbindet, bereitzustellen. Ein Port ist die Schnittstelle zwischen einem Knoten und einer Verbindung. Gemäß der vorliegenden Erfindung muß ein Port über die Fähigkeit des Sendens und Empfangens von Daten und der Arbitrierungs-Signalisierung verfügen. Ein Port muß in der Lage sein, zu bestimmen, ob er mit einem anderen Port über eine Verbindung verbunden ist oder nicht. Ein Verfahren zur Erleichterung dessen besteht darin, daß verbundene Ports eine Vorspannung über die Verbindung anlegen, welche von dem Port am anderen Ende der Verbindung erlaßbar ist. Wenn folglich ein Port eine angeschlossene Verbindung hat, welche am anderen Ende nicht mit einem Port verbunden ist, eine offene Verbindung, bestimmt der Port, daß er kein verbundener Port ist. In 1 hat der dargestellte Knoten 10 drei externe Ports 21, 22 und 23 mit Anschlußverbindungen 17, 18 beziehungsweise 19.
  • Einige der Regeln der Implementierung für Knoten, um die vorliegende Erfindung zu implementieren, beinhalten, daß ein Knoten einen oder mehrere Ports haben kann. Ein Knoten soll in der Lage sein, Daten an einem beliebigen seiner Ports zu senden und zu empfangen. Ein Knoten soll in der Lage sein, Daten an einem und nur einem seiner freigegebenen Ports auf einmal zu empfangen und soll in der Lage sein, diese Daten an allen verbleibenden freigegebenen Ports wieder zu senden. Ein Knoten soll in der Lage sein, Signalisierungsnachrichten über alle seine Ports gleichzeitig und unabhängig zu empfangen und zu senden. Separate Signalisierungs-Sendeempfänger, Codierer und Decodierer werden für jeden Port eines Knotens benötigt. Ein minimaler Implementierungsknoten benötigt keine lokale Host-Einrichtung. Beispielsweise kann ein solcher Knoten als eine Kabelerweiterung funktionieren. Von hier an werden Einrichtungen und lokale Hosts ignoriert und alle Verweise auf die Bustopologie beziehen sich auf Knoten und Knotenverbindungen über verschiedene Ports.
  • Graphentransformation
  • 2(a) und 2(b) stellen beliebig zusammengesetzte Ansammlungen von Knoten dar. Von hier an werden Knoten nur als Kreise dargestellt, werden aber für jedes einbezogene Element wie diejenigen betrachtet, die unter Bezugnahme auf 1 beschrieben wurden. Man beachte jedoch, daß jeder Knoten mehr oder weniger als die drei externen Ports aufweisen kann, die in dieser Figur gezeigt werden. Die dargestellten Linien, die die Knoten verbinden, sind die Methode, mit welcher Verbindungen gezeigt werden. Ports sind nicht dargestellt, sind aber implizit die Schnittstelle, an welcher eine Verbindung und ein Knoten miteinander verbunden sind.
  • Die hierin zu beschreibende Bus-Arbitrierungs-Methodik erfordert, daß die beliebige Topologie in einen azyklischen gerichteten Graphen aufgelöst wird. Bei einem beliebigen Topologie-Graphen kann eine Ansammlung bzw. Gruppe von Knoten und Verbindungen einen Zyklus bilden. Ein Zyklus existiert, wenn es möglich ist, beim Start von einem spezifischen Knoten in dem Graphen zu demselben Knoten zurückzukehren, indem Verbindungen und Knoten durchlaufen werden, ohne eine Verbindung zweimal zu durchlaufen. 2(a) stellt einen azyklischen Graphen dar, weil keiner der dargestellten Knoten in einer Schleife verbunden ist. 2(b) ist jedoch kein azyklischer Graph, da das Gebiet in der Zeichen-Box 25 eine Ansammlung von Knoten, 40-47, enthält, welche mehrere Zyklen bilden. Die zu beschreibende Bus-Arbitrierungs-Methodik erfordert, dass keine Zyklen vorhanden sind; somit wird hierin ebenfalls weiter unten ein Verfahren des Anwendereingriffs zur Auflösung von Zyklen beschrieben.
  • Zusätzlich zu der Anforderung, daß ein Graph azyklisch sein muß, muß er auch gerichtet sein. Ein gerichteter Graph ist ein Graph, bei welchem eine hierarchische Anordnung zwischen benachbarten Knoten eingerichtet worden ist. Anfänglich gibt es keine eingerichteten Vorgänger-Nachfolger-Beziehungen zwischen den Knoten. Das heißt beispielsweise, daß Knoten 31 der „Vorgängerknoten" für Knoten 34 sein kann, oder daß er der „Nachfolgerknoten" für Knoten 34 sein kann. Somit ist es erforderlich, einen gegebenen Graphen mit einer beliebigen Topologie zu nehmen und ihn in einen azyklischen und gerichteten Graphen zu transformieren. Die hierin beschriebenen Verfahren funktionieren bei der Ausführung dieser Transformation für jede mögliche beliebige Topologie, unabhängig von der Anzahl der Knoten oder von der Art ihrer physikalischen Verbindung, und unabhängig von der Signalisierungsverbreitungszeit entlang der Verbindungen.
  • Knotenkommunikation
  • Zu Anfang wird der Prozeß des Transformierens eines azyklischen Graphen mit einer beliebigen Topologie in einen direkten Graphen beschrieben. Der Fall, in welchem eine Zyklusauflösung erforderlich ist, folgt. 3(a) zeigt den beliebigen Graphen aus 2(a), in welchem die Knoten und Verbindungen Statuskennzeichnungen haben, und übermittelte Signale für den Graphen-Transformationsprozeß zum Richten des Graphen angezeigt werden. An diesem Punkt ist es aufschlußreich, die Signalkommunikationen zwischen den Knoten zu beschreiben. 3(b) stellt zwei Knoten 50 und 51 dar (nachstehend Knoten A beziehungsweise Knoten B genannt), die durch eine Verbindung 52 gekoppelt sind. Wie beschrieben, ist die Verbindung der Kommunikationskanal, der die Sendeempfänger-Ports der jeweiligen Knoten koppelt, wie oben unter Bezugnahme auf 1 beschrieben. Während des Graphen-Transformationsprozesses wird es für die Knoten erforderlich, Vorgänger-Nachfolger-Beziehungen mit benachbarten Knoten einzurichten. Zwei Knoten werden als benachbart bezeichnet, wenn es mindestens eine Verbindung gibt, die zwischen einem Port des ersten Knotens und einem Port des zweiten Knotens liegt. In den 3(b)–3(d) wird angenommen, daß die aufzulösende Beziehung die ist, daß der Knoten B der Vorgängerknoten von Knoten A ist, und daß es für die Knoten zweckmäßig ist, diese Beziehung einzurichten.
  • Wenn es für Knoten A zweckmäßig wird, Knoten B als seinen Vorgängerknoten einzurichten, sendet Knoten A vor dem Einrichten einer Richtung von seinem Port, mit welchem die Verbindung 52 gekoppelt ist, das Signal „Du bist mein Vorgänger" (YAMP). Dieser Nachrichteninhalt kann jede Form annehmen, solange Knoten A weiß, daß er YAMP signalisiert, und Knoten B in der Lage ist, zu verstehen, daß die empfangene Nachricht YAMP ist. Wenn das YAMP-Signal 53 von Knoten B empfangen wird, antwortet Knoten B Knoten A, indem er an Knoten A über Verbindung 52 „Du bist mein Nachfolger" (YAMC) sendet. Die Arbitrierungs-Automatenlogik 11 von Knoten A verfolgt die Zeitverzögerung zwischen dem Senden des YAMP-Signals 53 und dem Empfangen des YAMC-Signals 54. Die gemessene Zeit zeigt die zweifache Verbreitungsverzögerung zwischen den Knoten A und B an. Bei Empfang des YAMC-Signals antwortet Knoten A mit einem Signal 55 „Du bist als mein Nachfolger bestätigt" (YAMCA). Dies verleiht Knoten B die Fähigkeit, ebenfalls die Verbreitungszeitverzögerung zwischen den Knoten gleich der Zeitverzögerung zwischen dem Senden von YAMC und dem Empfangen von YAMCA zu bestimmen. Für Halbduplex-Kommunikationsverbindungen hat die YAMCA-Nachricht auch den Effekt, den Kommunikationskanal ordnungsgemäß auszurichten.
  • Für Vollduplex-Kommunikationskanäle können die drei logischen Nachrichten YAMP, YAMC und YAMCA alternativ durch nur zwei Signalsendungen übertragen werden. In 3(c) wird diese Situation dargestellt, in welcher Knoten A das YAMP-Signal 56 kontinuierlich anlegt, bis er das YAMC-Rücksendesignal 57 empfängt. Das YAMCA-Signal wird logisch an Knoten B gesendet, wenn erfaßt wird, daß das YAMP-Signal nicht mehr ankommt.
  • Die Verwendung dieses beschriebenen dreifachen asynchronen Nachrichtenaustausches stellt einen Mechanismus bereit, mit welchem beide an dem Nachrichtenaustausch beteiligten Knoten die Verbreitungszeitverzögerung über die Verbindung bestimmen können. Dieser Verzögerungswert wird bei der Auflösung von Konkurrenzsituationsereignissen, die hierin ferner zu beschreiben sind, sowie als normale Bus-Arbitrierung zur Optimierung der Busleistung verwendet. Die dynamische Extraktion dieses Parameters ist nicht zwingend vorgeschrieben. Als eine Alternative kann auf Kosten der optimalen Busleistung eine maximale Verbreitungszeitverzögerung a priori definiert werden.
  • Wenn Knoten A und B Nachrichten ausgetauscht haben, die besagen, daß Knoten 8 der Vorgängerknoten von Knoten A ist, kann die Verbindung als gerichtet bezeichnet werden. Innerhalb seiner Logik kennzeichnet Knoten A seinen Port, mit welchem die Verbindung 52 gekoppelt ist, als einen Vorgängerport (er spricht mit einem Vorgängerknoten), und Knoten B kennzeichnet seinen Port, mit welchem die Verbindung 52 gekoppelt ist, als einen Nachfolgerport (er spricht mit einem Nachfolgerknoten). Es ist wichtig, diese Kennzeichnungen, die die Ports erhalten, beizubehalten, weil die nachstehende Beschreibung der Verfahren zu gegebener Zeit anhand der Kennzeichnungen erfolgt, die den Knoten und Ports zugewiesen wurden. Eine abgekürzte grafische Schreibweise ist in 3(d) dargestellt, wo der Richtungspfeil 58 anzeigt, daß der Knoten B als der Vorgängerknoten von Knoten A eingerichtet ist, und daß die Verbindung gerichtet ist.
  • Richtungsbestimmung
  • Es wird erneut auf 3(a) Bezug genommen; zum Ausführen von 6(a)–6(e) wird jetzt der Prozeß des Richtens der gesamten beliebigen Topologie beschrieben. Es ist notwendig, noch einige anschauliche Definitionen einzuführen, die die Erläuterung des Topologie-Transformationsprozesses unterstützen. Erstens, ein „Blatt"-Knoten bzw. terminaler Knoten wird definiert als ein Knoten mit nur einem verbundenen Port. Ein Knoten erkennt seinen Status als ein terminaler Knoten, sobald er nach dem Einschalten oder einer anderen Businitialisierung initialisiert wird. Ein „Verzweigungs"-Knoten ist ein Knoten, welcher mindestens zwei verbundene Ports aufweist. Über alle außer einen der verbundenen Ports wird ein Verzweigungsknoten das YAMP-Signal erhalten und es bestätigt haben. Über seinen verbleibenden Port hat ein Verzweigungsknoten das YAMP-Signal gesendet und somit eingerichtet, daß er einen Vorgängerknoten hat. Ein Knoten erreicht keinen Verzweigungsstatus, bis er eingerichtet 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 Verzweigungsstatus, wird ein Knoten als ein „Zyklus"-Knoten betrachtet, weil bis zur Bestimmung, daß er eine Verzweigung ist, die Möglichkeit besteht, daß der Knoten Teil eines Zyklus ist, welcher das Einrichten einer Richtung unmöglich macht.
  • Das Graphen-Transformationsverfahren beginnt bei Schritt 60 bei der Businitialisierung (Einschalten oder initiiert), zu welchem Zeitpunkt die terminalen Knoten in der beliebigen Topologie sich bei Schritt 61 erkennen und bei Schritt 68 als terminale Knoten kennzeichnen, indem bei Entscheidungssymbol 66 bestimmt wird, daß sie nur einen verbundenen Port haben. In dem in 3(a) dargestellten Graphen sind die Knoten 33, 35, 36 und 37 terminale Knoten, welche, wenn sie initialisiert sind, bei Schritt 69 jeweils über ihren einzigen verbundenen Port das YAMP-Signal an ihren benachbarten Knoten senden. Die Knoten, die diese Signale empfangen, verbreiten dann bei Schritt 70 die YAMP-Signale zurück zu den terminalen Knoten, womit eine Richtung für die gegebene Verbindung zwischen den jeweiligen Vorgänger-Nachfolger-Paaren eingerichtet wird, wenn die YAMCA-Kommunikation abgeschlossen ist. Bei Schritt 71 kennzeichnet jeder terminale Knoten seinen einzigen verbundenen Port als einen Vorgängerport und jeder Empfängerport an dem Vorgängerknoten wird als ein Nachfolgerport gekennzeichnet.
  • Die Knoten auf dem Graphen, die zu Anfang keine terminalen Knoten sind, werden aus dem oben beschriebenen Grund zu Anfang als „Zyklusknoten" betrachtet und werden gemäß dem Zyklusknotenverfahren 63 weiterbehandelt. Jeder Zyklusknoten, welcher alle außer einem seiner verbundenen Ports als Nachfolgerports gekennzeichnet hat, verbreitet dann das YAMP-Signal von seinem verbleibenden ungekennzeichneten Port bei Schritt 85 weiter. Wenn diese Richtung für die Verbindung eingerichtet ist, dann wird der Zyklusknoten als ein Verzweigungsknoten gekennzeichnet. Nachdem der terminale Knoten 37 einrichtet, daß Knoten 34 sein Vorgängerknoten ist, hat Knoten 34 somit nur einen ungekennzeichneten Port (nachdem die Verbindungsverknüpfung zu Knoten 37 als eine Verbindung über einen Nachfolgerport gekennzeichnet wurde); somit sendet der Knoten 34 das YAMP-Signal an Knoten 31, was dazu führt, daß Knoten 34 ein Verzweigungsknoten wird. In gleicher Weise sendet Knoten 31 das YAMP-Signal an Knoten 30, wenn Knoten 31 identifiziert hat, daß die Knoten 33 und 34 seine Nachfolger sind. Wenn ein Knoten über alle seine Ports das YAMP-Signal bei den Entscheidungssymbol 75 empfangen hat, dann wird dieser Knoten der Wurzelknoten. Nachdem der Knoten 30 die YAMP-Signale von den Knoten 31 und 32 erhalten hat, verändert sich seine Kennzeichnung in 3(a) von einem Zyklusknoten zu einem Wurzelknoten. In dem Graphen von 3(a) ist es nicht notwendigerweise der Fall, daß der Knoten 30 die Wurzel werden würde. Wenn einige der Verbindungen in dem Baum lange Verbreitungsverzögerungen bereitstellen würden, könnte Knoten 30 ein YAMP-Signal an einem Port empfangen und dann ein YAMP-Signal über seinen anderen Port gesendet haben. Jeder der Knoten kann die Wurzel werden, selbst ein Blatt, wobei die Wurzeleigenschaft den Vorrang hat. 3(a) zeigt den resultierenden gerichteten Graphen als Antwort auf die übermittelten Signale, die in 3(a) gezeigt werden, wobei jeder Knoten gekennzeichnet ist und die Richtungen durch dunkle Pfeile angezeigt werden.
  • Wurzelkonkurrenzsituation
  • Unter bestimmten Umständen kann eine Wurzelkonkurrenzsituation entstehen. Dies kann beispielsweise in einem Fall geschehen, wenn die beliebige Topologie eine symmetrische Anordnung, ähnlich wie in 4 gezeigt wird, aufweist. In dem in 4 dargestellten beliebigen Graphen haben die Knoten 160 und 161 jeweils eingerichtet, daß sie ein Vorgängerknoten zu den zwei terminalen Knoten sind, mit welchen sie verbunden sind. Dann hat jeder annähernd zur gleichen Zeit das YAMP-Signal an den anderen verbreitet. Die Situation der Wurzelkonkurrenz wird von beiden beteiligten Knoten bei dem Entscheidungssymbol 86 erkannt. Jeder Knoten empfängt ein Signal, welches ihn als Vorgängerknoten bezeichnet, während er dasselbe Signal über denselben Port ausge sendet hat. Jeder der konkurrierenden Knoten antwortet dem anderen bei Schritt 91 mit dem YAMC-Signal, was jedem Knoten ermöglicht, den „Entscheidungszeitraum" zu bestimmen, welcher dem Doppelten der Verbreitungszeit zwischen den Knoten entspricht.
  • Die Situation der Wurzelkonkurrenz wird durch Anwendung eines Zufallsentscheidungsmechanismus gelöst, der in jeder Arbitrierungs-Automatenlogik-Einheit 11 jedes Knotens enthalten ist. Für jeden „Entscheidungszeitraum", der abläuft, entscheidet jeder Knoten bei Schritt 92 zufällig (mit einer 50%igen Wahrscheinlichkeit), ob das YAMP-Signal erneut an den anderen Knoten gesendet wird. Bei einer begrenzten Anzahl von Zyklen wird ein Knoten nahezu sicher entscheiden, den anderen Knoten als seinen Vorgängerknoten zu bezeichnen, ohne dass dieser erwidert. Der Knoten, der als Vorgängerknoten bezeichnet wird, wird bei Schritt 95 die Wurzel. Alternativ können den Knoten vorherbestimmte Auswahlkriterienwerte zugewiesen werden, wobei der größere oder kleinere bestimmt, welcher bei einem Konkurrenzsituationsereignis dominiert. Obwohl die dynamische Bestimmung des „Entscheidungszeitraums" eine optimale Leistung ermöglicht, ist sie bei der Implementierung der vorliegenden Erfindung nicht wesentlich. Als Alternative kann ein a priori definierter „Entscheidungszeitraum" verwendet werden, solange er größer ist als die Verbindungsverbreitung des ungünstigsten Falles, die in jedem beliebigen Bus angetroffen werden kann, der diesen Algorithmus verwendet. Dasselbe zur Auflösung von Wurzelkonkurrenzsituationen verwendete Verfahren wird ebenfalls verwendet, um andere Konkurrenzsituationsereignisse aufzulösen, die ferner hierin zu beschreiben sind.
  • Wurzelzuweisung
  • Wie oben beschrieben wurde, ist das Ergebnis des Graphen-Transformationsprozesses die Zuweisung der Wurzeleigenschaft an einen und nur einen Knoten in dem Graphen. Der Wurzelknoten hat die endgültige Entscheidung in dem zu be schreibenden Bus-Arbitrierungs-System und kann daher ohne die Verwendung von Zeitabständen spezieller Priorität mit höchster Priorität auf den Bus zugreifen. Häufig ist es wünschenswert, in der Lage zu sein, die Wurzeleigenschaft einem vorherbestimmten Knoten zuzuweisen – entweder bei der Herstellung, oder dynamisch (während der Laufzeit) zur Optimierung eines gegebenen Systems. Ein gegebener Bus kann einen Knoten enthalten, welcher einen isochronen Datentransfer benötigt. Isochrone Daten sind Daten, die zu einem gegebenen Zeitpunkt mit einem beliebigen Wert gesendet werden müssen. Beispielsweise muß Musik von einer CD in der Reihenfolge, in welcher sie zu hören ist, und ohne signifikante Verzögerungen übertragen und ausgegeben werden, im Gegensatz zu Dateien, welche Stück für Stück übertragen werden können, und zwar nicht unbedingt in einer bestimmten Reihenfolge.
  • Knoten können im Hinblick auf die Wurzelbezeichnungen in drei Kategorien klassifiziert werden. Diese Bezeichnungen können während der Herstellung durch Festverdrahtung der Bezeichnung in der Einrichtung, Programmieren der Arbitrierungs-Automatenlogik, oder durch eine übergeordnete Software zugewiesen werden, die die Entscheidung trifft, dann ein Neubooten initiiert, während diese Entscheidung erhalten bleibt. Die drei Bezeichnungen, die einem Knoten im Hinblick auf die Bezeichnung als eine Wurzel zugewiesen werden können, sind: Knoten, die keine Wurzel sein wollen, Knoten, die eine Wurzel sein können (sollten), und Knoten, die eine Wurzel sein sollen. Diese Bezeichnungen werden bei den Schritten 81 und 83 überprüft. Ein Knoten, der in der ersten Kategorie bezeichnet wird, beginnt das Graphen-Transformationsverfahren, sobald er angewiesen wird, dies zu tun. Dies ist normalerweise unmittelbar nach dem Abschluß des Businitialisierungsverfahrens der Fall. Ein Knoten der zweiten Kategorie verzögert den Beginn des Graphen-Transformationsverfahrens um eine vorherbestimmte Zeit, nachdem er angewiesen wird, das Verfahren bei Schritt 84 zu beginnen. Durch diese Verzögerung erhöht der Knoten seine Chance, eine Wurzel zu werden. (Die YAMP-Signale werden aufgrund der Verzögerung mit höherer Wahrscheinlichkeit an ihn verbreitet.) Trotz der zusätzlichen Verzögerung ist es noch möglich, daß ein „Kann-Wurzel-Sein"-Knoten zu guter Letzt nicht als die Wurzel bezeichnet wird. Dies ist von der gegebenen Topologie und den Verzögerungen der Nachrichtenverbreitung abhängig. Der Umfang der Verzögerung kann während des Designs größer als eine zumutbare ungünstigste Verbreitungsverzögerung durch einen ziemlich komplexen Graphen definiert werden.
  • Ein Knoten der dritten Kategorie der Wurzelbezeichnungsmöglichkeiten kann nur die Tatsache erkennen, daß er die Wurzel sein muß, nachdem der Graph bereits transformiert worden ist und sich alle Knoten identifiziert haben. Diese Festlegung kann die Arbitrierungs-Automatenlogik oder eine Software, die auf dem Host-System läuft, treffen. Wenn dies eintritt, stimmt sich der Knoten, der die Wurzel sein muß, mit allen anderen Knoten an dem Bus ab, daß er die eine und nur eine Wurzel ist, und startet den Graphen-Transformationsprozeß neu, indem er ein bevorrechtigtes Businitialisierungssignal sendet, was hierin ferner beschrieben wird. Der Knoten wartet dann bei Schritt 82, um die Wurzel zu werden, und nimmt nicht an der Graphen-Transformation teil, bis er das YAMP-Signal auf allen seinen Ports empfangen hat, womit er erzwingt, als die Wurzel bezeichnet zu werden.
  • Wenn die Wurzel bestimmt worden ist, kann der Graph als gerichtet bezeichnet werden. Es besteht ein definiertes Verhältnis zwischen allen benachbarten Knoten auf dem Graphen.
  • Zyklusauflösung
  • Das oben beschriebene Verfahren für das Richten eines Graphen funktioniert nur für einen azyklischen Graphen. Wenn es in der beliebigen Topologie Zyklen gibt, müssen sie durch das bei Schritt 80 beginnende Verfahren unterbrochen werden. Die Existenz eines Zyklus wird bei Schritt 79 festgestellt, wenn nach Ablauf einer vorherbestimmten Zeitüberwachungsdauer, ein Knoten noch als Zyklusknoten, anstatt als ein Blatt, eine Verzweigung oder eine Wurzel, gekennzeichnet ist. Die „Zykluserfassungs"-Zeitgabe beginnt unmittelbar nach dem Ende der Businitialisierungsfunktion. Die Zeitüberwachungsdauer muß nicht länger sein als die Dauer des Graphen-Transformationsverfahrens im ungünstigsten Fall (Erhöhung der Verzögerungszeit für einen „Kann-Wurzel-Sein"-Knoten und ein mögliches Wurzelkonkurrenzsituationsereignis).
  • Das „Zykluserfassungs"-Zeitüberwachungs- bzw. -ablaufereignis muß nicht synchron für alle Knoten eines Graphen eintreten, da alle Nachrichtenaustauschvorgänge asynchrone Ereignisse sind. Als solchen ist es für einen Knoten, der sein „Zykluserfassungs"-Zeitablaufereignis noch nicht erreicht hat, möglich, eine Nachricht zu empfangen, die anzeigt, daß die Zyklusauflösung im Gange ist. Ein derartiger Knoten beendet sein Zykluserfassungs-Zeitüberwachungsintervall und beginnt den entsprechenden Zyklusauflösungsprozefl.
  • Das Verfahren der Zyklusauflösung gemäß der vorliegenden Erfindung verlangt, daß der Anwender der zusammengesetzten Ansammlung von Knoten eingreifen muß. Wenn ein Knoten auf die „Zykluserfassungs"-Zeitüberwachung trifft, kann der Systemanwender bei Schritt 100 von 6(e) über eine Ausgabeeinrichtung benachrichtigt werden, daß ein Zyklus existiert und welche Knoten dann einbezogen sind. Der Anwender wird dann angewiesen, Verbindungen zu unterbrechen, um Zyklen, gleich welcher Art, zu beseitigen. Der Anwender gibt dann die Steuerung an das Graphen-Transformationsverfahren zurück.
  • Wenn jede Schleife unterbrochen ist und keine Zyklen übrig bleiben, kann das Verfahren für das Transformieren des Graphen, wie es in den vorherigen Abschnitten beschrieben wurde, fortgesetzt werden, bis der gesamte Graph sowohl azyklisch als auch gerichtet ist.
  • Zuweisung einer eindeutigen physikalischen Adresse
  • Wenn aus der ursprünglichen beliebigen Topologie ein gerichteter azyklischer Graph eingerichtet worden ist, ist es dann möglich, jedem Knoten auf dem Graphen eindeutige physikalische Adressen zuzuweisen. Dieser Prozeß beginnt bei allen terminalen Knoten, die den Bus anfordern, indem sie über ihre einzelnen verbundenen Ports das Busanforderung(BR)-Signal senden. Der das Signal empfangende Vorgängerknoten wartet, bis er das BR-Signal von allen seinen Nachfolgerports empfangen hat und verbreitet dann das BR-Signal an seinen Vorgängerknoten. Die BR-Signale verbreiten sich über den Graphen, bis die Wurzel das BR-Signal von allen ihren Nachfolgern empfangen hat. Wenn die Wurzel eine Busanforderung über alle ihre Nachfolgerports empfangen hat, trifft sie eine Entscheidung für die Zuteilung des Busses über einen Port und verbreitet ein Busverweigerung(BD)-Signal über ihre verbleibenden Nachfolgerports. Das Verfahren zum Auswählen, welche Busanforderung zuzuteilen ist, kann eine a-priori-Entscheidung sein, wie beispielsweise die oben beschriebene, wo zum Beispiel Ports von links nach rechts oder auf der Grundlage der Port-Nummerierung etc. ausgewählt werden. Das Buszuteilung(BG)-Signal wird von der Wurzel an ihren anfordernden Nachfolger gesendet. Wenn dieser anfordernde Nachfolger selbst ein Vorgängerknoten ist, welcher die Busanforderung von einem seiner Nachfolger verbreitet hat, sendet er das Busverweigerung-Signal über alle außer einem seiner Nachfolgerports in derselben vorherbestimmten Weise, wie sie oben beschrieben wurde. Schließlich empfängt ein terminaler Knoten das Buszuteilung-Signal, welches er mit einem Buszuteilung-Bestätigt(BGA)-Signal beantwortet, welches zu dem Wurzelknoten zurückverbreitet wird. Die Verbreitung der BD-und BGA-Signale dienen zur Ausrichtung der Kommunikationsverbindungen, welche für den Fall der Halbduplex-Kommunikationskanäle erforderlich sein können. Alle abgelehnten Knoten warten dann auf die Aktivität des Knotens, der endgültig das BG-Signal empfängt.
  • Der Knoten, welchem schließlich der Zugriff auf den Bus zugeteilt wird, sendet ein Adreßzuweisungspaket. Der Knoten sendet dieses Paket auf den Bus und es wird von allen ande ren Knoten empfangen, von welchen jeder die Anzahl der Adreßpakete, die er empfängt, zählt. Das gesendete Adreßpaket kann beliebige Informationen beinhalten. Die eindeutige physikalische Adresse eines Knotens wird auf der Anzahl der Adreßpakete, die ein Knoten gezählt hat, bevor er ein Adreßpaket sendet, basieren. Somit erhalten keine zwei Knoten dieselbe physikalische Adresse, obwohl keine Adreßinformationen im Voraus zugewiesen wurden. Die aktuelle Zusammensetzung des Adreßpakets ist beliebig und kann jeder beliebige Bitstrom sein, der von dem System effizient verwendet werden kann. Nach dem Senden des physikalischen Adreßzuweisungspakets sendet ein Knoten ein „Nachfolger-ID-Abgeschlossen"(CIC)-Signal. Der Vorgängerknoten, der dieses auf seinem Nachfolgerport empfängt, sendet dann das „Nachfolger-Identifikation-Abgeschlossen-Bestätigt"(CICA)-Signal und kennzeichnet den Port als einen identifizierten Nachfolgerport. Als Antwort auf die nächste BR-Signal-Verbreitung wählt der Vorgänger des Knotens, welcher sich gerade identifiziert hat, seinen nächsten Nachfolger aus, um das physikalische Adreßpaket zu senden. Wenn sich alle Nachfolgerknoten eines Vorgängerknotens identifiziert haben, fordert der Vorgängerknoten den Bus an, und wenn der Bus zugeteilt wird, verbreitet er sein physikalisches Adreßzuweisungspaket. Dieses Verfahren wird nach den vorherbestimmten Selektionskriterien fortgesetzt, bis alle Knoten durch Zählen eine eindeutige physikalische Adreßzuweisung bestimmen. 5 stellt den Graphen aus 3(e) dar, in welchem ein vordefiniertes Von-Links-Nach-Rechts-Selektionskriterium implementiert ist. Den Knoten werden eindeutige Adressen zugewiesen, wobei der Knoten 33 die erste Adresse empfängt, und, wie beschrieben, der Wurzelknoten 30 die achte und letzte Adresse empfängt.
  • Wenn dieses Verfahren abgeschlossen ist, hat jeder Knoten in dem Graphen eine eindeutige physikalische Adresse, welche nicht im Voraus bestimmt worden sein muß und welche für das Systemmanagement oder andere Zwecke verwendet werden kann.
  • Knoten-Selbstidentifizierung
  • Der Prozeß der Knoten-Selbstidentifizierung folgt im Wesentlichen derselben Routine wie das Verfahren der physikalischen Adreßzuweisung, das oben beschrieben wurde. Da jeder Knoten sein physikalisches Adreßzuweisungspaket sendet, kann dieses Paket weitere Informationen enthalten, wie beispielsweise die Identifizierung der physikalischen Einrichtung, die die Identifizierung des dem Knoten zugeordneten lokalen Hosts umfaßt, wie viel Energie sie benötigt, und beispielsweise, ob sie eine „Soft Power-on"-Eigenschaft unterstützt, etc. In der Tat können die Knoten-Selbstidentifizierungsinformationen als das physikalische Adreßzuweisungspaket dienen, weil die Praxis des Sendens aller Informationen überhaupt die Grundlage für das Zählen zum Erhalt der eindeutigen physikalischen Adressen bildet.
  • Was das Knoten-Selbstidentifizierungspaket anbelangt, so müssen die bestimmten Informationen, die den Knoten betreffen, nur von jenen Knoten „gehört" werden, die von der Beschaffenheit des ankündigenden Knotens beeinflußt werden. Dieses Verfahren wird – wie bei dem obigen – fortgesetzt, bis alle Knoten ihre Knoten-Selbstidentifizierungsinformationen gesendet haben.
  • Topologieabbildung
  • Das Verfahren der Topologieabbildung folgt denselben Regeln wie die physikalische Adreßzuweisung und die Knoten-Selbstidentifizierung. Bei diesem Verfahren sendet somit jeder Knoten, wenn er das Verfahren der Adreßzuweisung oder der Knoten-Selbstidentifizierung durchläuft, ferner Informationen, die alle seine Ports betreffen, wie beispielsweise die Anzahl der Nachfolgerports, die er hat, und ob er gesperrte Ports hat oder nicht. Im Hinblick auf gesperrte Ports kann es wünschenswert sein, ein Kommunikationsprotokoll zwischen den Ports, die sperren, zu implementieren, so daß sie identifizieren können, von wem sie gesperrt werden.
  • Somit wird ein Port, wenn er einen gesperrten Port erkennt, eine Kennung geben, die seine eigene ID sowie die Port-ID, von welcher er gesperrt wurde, anzeigt.
  • Durch das Zusammensetzen aller Topologieinformationen über alle Ports, die während des Topologieabbildungsverfahrens empfangen werden, können der Busserver, der Host oder eine Anwendung eines beliebigen Softwareniveaus die aufgelöste Bustopologie logisch rekonstruieren. Dies ist hilfreich für viele Zwecke, einschließlich des Implementierens von Redundanz, wobei bei dem unerwarteten Zusammenbrechen einer Verbindung zuvor gesperrte Verbindungen dazu dienen können, den Verlust der Kommunikationskanäle zu irgendwelchen Knoten zu verhindern.
  • Angemessene Buszugriffs-Arbitrierung
  • Wenn die Topologieabbildungs-, Knoten-Selbstidentifizierungs- oder physikalischen Adreßzuweisungsroutinen abgeschlossen sind, kann der Bus als eingeschaltet und in Betrieb befindlich betrachtet werden. Ein Arbitrierungs-Schema, das gemäß der vorliegenden Erfindung implementiert wird, ist das des angemessenen Buszugriffs. Wenn ein Knoten den Zugriff auf den Bus wünscht, sendet er über seinen Vorgängerport (sofern er nicht die Wurzel ist) ein Busanforderung(BR)-Signal. Beim Empfang des BR-Signals von einem Nachfolger sendet der Vorgängerport ein Busverweigerung(BD)-Signal über alle seine anderen Nachfolgerports. Der Vorgänger verbreitet dann das BR-Signal über seinen Vorgänger aufwärts, bis das Signal die Wurzel erreicht. Die Wurzel gibt als Antwort auf das erste BR-Signal, das sie empfängt, ein Buszuteilung(BG)-Signal aus und sendet das BD-Signal über alle ihre anderen Nachfolgerports, welche abwärts verbreiten, wodurch die Verbindungen ausgerichtet werden. Das BG-Signal wird durch den Graphen abwärts verbreitet, bis es den anfordernden Knoten erreicht, welcher dann das Busbestätigung(BA)-Signal sendet, dem das Paket der Informationen folgt, das der Knoten auf dem Bus senden mußte. Wenn das Pa ket abgeschlossen ist, kehren alle Knoten in einen Leerlaufstatus zurück oder treten in diesen ein.
  • In dem Fall, wenn die Wurzel nahezu gleichzeitige Anforderungen für den Bus empfängt, werden die vorherbestimmten Auswahlkriterien für den Wurzelknoten verwendet, um einem der beiden Knoten den Buszugriff zuzuteilen. Dies können dieselben vorherbestimmten Prioritätsauswahlkriterien sein, wie sie oben beschrieben wurden.
  • Ein weiterer Aspekt der angemessenen Buszugriffs-Arbitrierung ist der, daß ein Vorgängerknoten Priorität gegenüber seinen Nachfolgern hat. Wenn ein Vorgängerknoten den Bus wünscht, sendet er folglich das BD-Signal über alle seine Nachfolgerports, dann verbreitet er das BR-Signal aufwärts zu der Wurzel. Ein potentielles Problem bei diesem Mechanismus besteht darin, daß ein Nachfolgerknoten Schwierigkeiten haben kann, einen adäquaten Buszugriff zu erlangen, wenn der Vorgänger eine große Menge von Informationen auf dem Bus zu senden hat. Es wird daher ein Abstandssystem eingeführt, das in der Technik in großem Umfang verwendet wird und bekannt ist. Nachdem ein Knoten den Bus genutzt hat, muß der Knoten eine Abstandsperiode warten, bevor er den Bus erneut anfordern kann. Dies räumt jedem Knoten auf dem Bus unabhängig von seiner topologischen Plazierung auf dem Bus gleiche Chancen für die Buszuteilung ein. Um ein angemessenes Arbitrierungs-Protokoll zu garantieren, muß die Länge des Abstandes größer als die ungünstigste Signalverbreitungsverzögerung über den Bus sein. Der Abstandswert kann vorherbestimmt und in der Knotenlogik fest verdrahtet werden, aber eine solche Methode wird in allen Fällen, außer dem Extremfall, zu einer suboptimalen Nutzung des Busses führen. Die Topologieabbildungsfähigkeit gemeinsam mit der Messung der Verbreitungsverzögerung zwischen den benachbarten Knoten, die während der Graphen-Transformationsphase ausgeführt wird, ermöglichen die Berechnung eines optimalen angemessenen Abstandes, der die Busleistung für jede beliebige spezifische Implementierung maximieren wird.
  • Prioritäts-Hus-Arbitrierung
  • Bei dem Bus-Arbitrierungs-Schema, das in Übereinstimmung mit der obigen angemessenen Buszugriffs-Arbitrierung implementiert wird, kann es wünschenswert sein, daß die Wurzel immer die Buspriorität hat. Wenn dies implementiert ist, kann sich der Wurzelknoten jederzeit den Bus zuteilen. Dies erfolgt, indem zuerst das BD-Signal abwärts über alle Knoten in dem Graphen gesendet wird. Der Prioritäts-Buszugriff für die Wurzel ist für den Fall sehr nützlich, wenn der Wurzelknoten zur Ausführung eines isochronen Datentransfers benötigt wird.
  • Token-Passing-Bus-Arbitrierung
  • Als eine Alternative zu den oben beschriebenen Systemen der angemessenen und der Prioritäts-Buszugriffs-Arbitrierung kann die vorliegende Erfindung bei der Implementierung eines Token-Passing-Bus-Arbitrierungs-Systems verwendet werden. Metaphorisch ausgedrückt bezieht sich der Token-Passing-Buszugriff auf den Gedanken, daß ein Knoten auf einem Bus kommunizieren kann, wenn er im Besitz eines Token ist, das zwischen Knoten weitergeleitet wird. Das Token wird in einer zyklischen Weise von Knoten zu Knoten geleitet, so daß jeder Knoten den Bus an einem vorherbestimmten Punkt in dem Zyklus erhält. Token-Passing wird bei der vorliegenden Erfindung in derselben Weise implementiert wie die Routine der physikalischen Adreßzuweisung, die oben beschrieben wurde. Die implementierten vorherbestimmten Selektionsmechanismen werden verwendet, um die Reihenfolge auszuwählen, in der das Token von Knoten zu Knoten geleitet wird. Diese Reihenfolge ähnelt der in 5 gezeigten Reihenfolge, welche die Reihenfolge der eindeutigen Adreßzuweisung diktiert. Jeder Knoten wird bei Zuweisung des Token an ihn sein Informationspaket auf dem Bus verbreiten, während die übrigen Knoten zuhören. Der Knoten gibt dann auf der Grundlage des vorherbestimmten Ab laufsteuerungsverfahrens das Token an den nächsten logischen Knoten weiter, wie oben beschrieben wurde.
  • Bevorrechtigte Businitialisierung
  • Ein wichtiges Merkmal, das gemäß der vorliegenden Erfindung implementiert werden kann, ist der Gedanke der bevorrechtigten Businitialisierung. Die in jedem Knoten enthaltene Automatenlogik ist unter bestimmten Umständen in der Lage, ein Businitialisierungs(BI)-Signal zu triggern, das von dem Knoten über alle seine Ports zu verbreiten ist. Wenn ein Knoten bestimmt hat, daß es notwendig ist, eine Businitialisierungsbedingung zu signalisieren, sendet er ein BI-Signal über alle seine Ports für eine Zeitdauer aus, die ausreicht, um zu gewährleisten, daß alle benachbarten Knoten es empfangen und dann freigegeben haben. Ein Knoten tritt dann in die Initiierungsverfahren ein, welche dann zu dem Graphen-Transformationsverfahren in den oben beschriebenen Verfahren führen.
  • Es gibt eine Reihe von Situationen, die es erforderlich oder wünschenswert machen können, eine bevorrechtigte Businitialisierung zu triggern. Zum ersten kann dies eine Knotenreaktion auf einen unvorhergesehenen Fehler sein. Außerdem kann auf der Host-Ebene bestimmt werden, daß ein anderer Knoten, beispielsweise ein isochroner Datentransferknoten, die Wurzeleigenschaft erhalten sollte. Diese Zuweisung wird bei der gesamten Businitialisierungsroutine bewahrt, wodurch der gewünschte Knoten veranlaßt wird, während des Transformationsverfahrens zu warten, bis er die Wurzelbezeichnung erhält. Eine weitere Bedingung, die zu einer bevorrechtigten Businitialisierung führt, kann die Unterbrechung einer Verbindung sein, in welchem Falles erforderlich sein kann, einen neuen azyklischen gerichteten Graphen für die angeschlossenen Knoten zu berechnen. Schließlich ist eine wichtige Situation, in welcher eine bevorrechtigte Businitialisierung eintreten sollte, eine Situation, wenn eine Einrichtung zu dem Netzwerk hinzugefügt wird, was als „Hot Addi tion" von Peripheriegeräten bezeichnet wird. Der Port, an welchen eine neue Einrichtung angeschlossen wird, erfaßt das Vorhandensein eines neuen Knotens und triggert eine Businitialisierung, welche für den Anwender des Systems transparent ist, aber welche das Hinzufügen und Entfernen von Peripheriegeräten gestattet, beispielsweise ohne abschalten und neu starten zu müssen. Es wird ein neuer azyklischer gerichteter Graph berechnet, welcher das Vorhandensein des hinzugefügten Knotens einbezieht. Es ist möglich, das es bei der Entfernung bestimmter Knoten nicht erforderlich sein wird, eine Businitialisierung zu triggern; wenn beispielsweise ein terminaler Knoten entfernt wird, kommt es nicht zu einem Schaden am Netzwerk. Wenn allerdings ein Verzweigungsknoten von einem in Betrieb befindlichen Bus entfernt wird, ist es wahrscheinlich, daß der Graph neu konfiguriert werden muß.

Claims (7)

  1. Ein Verfahren in einem Computersystem mit einem Bus, wobei das Computersystem eine Mehrzahl von Komponenten (15) aufweist, die durch eine Mehrzahl von Kommunikationsverbindungen (17,18,19) miteinander verbunden sind, wobei die mehreren Komponenten jeweils eine Mehrzahl von Kommunikationsknoten (10) aufweisen, wobei die Knoten wenigstens einen Port einer Mehrzahl von Ports (21,22,23) aufweisen und Schnittstellen zu den ihnen zugeordneten Komponenten über eine Kommunikationsverbindung (17,18,19), welche einen Port eines Knotens mit einem anderen Port eines anderen Knotens verbindet, bilden, wobei die Knotenverbindungen azyklisch sind und eingerichtete hierarchische Eltern-Kind-Beziehungen zwischen sämtlichen benachbarten Knoten von einem Wurzelknoten bis zu irgendwelchen Blattknoten hinab aufweisen, wobei ein Blattknoten nur einen Elternknoten aufweist, wobei sämtliche dem Wurzelknoten benachbarte Knoten Kindknoten in Bezug auf andere benachbarte Knoten sind, wobei der Wurzelknoten als Knoten definiert ist, der keinen Elternknoten aufweist, wobei das Verfahren umfaßt: daß jeder Blattknoten anfänglich ein "Busanforderung"(BR)-Signal auf den Bus sendet; daß jeder ein BR-Signal empfangende Knoten wartet, bis sämtliche benachbarten Kindknoten entweder ein BR-Signal ausbreiten bzw. weiterleiten oder identifiziert sind, und dann das BR-Signal an einen Elternknoten weiterleitet; daß der Wurzelknoten wartet, bis sämtliche benachbarten Knoten ein BR-Signal weiterleiten, und dann ein "Busgewährung"(BG)-Signal an einen der benachbarten Knoten weiterleitet; daß das BG-Signal hinab über die dazwischenliegenden Knoten weitergeleitet wird, bis ein Knoten, der ein BR-Signal initiierte, das BG-Signal empfängt; dadurch gekennzeichnet, daß sämtliche Knoten anfänglich den Status nicht identifizierter Knoten haben, wobei jeder Port jedes Knotens ein vorgegebenes Auswahlkriterium hat, das für benachbarte Knoten eingerichtet ist, die mit diesem Knoten gekoppelt sind, wobei die Knoten und Kommunikationsverbindungen, wie sie miteinander zusammengeschlossen sind, einen azyklischen gerichteten Graphen bilden, wobei ein Knoten als Wurzelknoten gekennzeichnet ist, sämtliche Knoten, die mit nur einem benachbarten Knoten gekoppelt sind, als Blattknoten gekennzeichnet sind und sämtliche anderen Knoten in dem azyklisch gerichteten Graphen als Zweigknoten gekennzeichnet sind, wobei das Verfahren dem Zuweisen eindeutiger Adressen zu den Knoten des azyklisch gerichteten Graphen dient und ferner umfaßt daß die das BR-Signal empfangenden Knoten Zweigknoten sind; daß der Wurzelknoten wartet, bis sämtliche benachbarten Knoten entweder ein BR-Signal weiterleiten oder identifiziert sind, und dann ein "Busgewährung"(BG)-Signal an einen der benachbarten nicht identifizierten Knoten auf der Grundlage des vorgegebenen Auswahlkriteriums zum Auswählen benachbarter Knoten weiterleitet, wobei das BG-Signal über den azyklischen gerichteten Graphen hinab über dazwischenliegende Knoten auf der Grundlage des vorgegeben Auswahlkriteriums zum Auswählen benachbarter Knoten weitergeleitet wird, bis ein Knoten, der ein BR-Signal initiierte, das BG-Signal empfängt; daß der das BG-Signal empfangende Knoten dann eine Adreßbekanntgabe an sämtliche Knoten an dem Bus aussendet; daß jeder Knoten an dem Bus als Zahl zählt, wie viele Adreßbekanntgaben durch andere Knoten ausgesendet worden sind; daß jeder Knoten eine eindeutige Adresse einstellt, wobei die eindeutige Adresse eine Funktion der Zahl der durch andere Knoten ausgesendeten Adreßbekanntgaben, bis der Knoten ein BG-Signal empfängt und nachfolgend eine Adreßbekanntgabe aussendet, ist, wobei der Knoten dann den Status des Identifiziert-Seins erlangt; daß die obigen Schritte wiederholt werden, bis sämtliche Knoten identifiziert sind; wodurch jeder Knoten eine abweichende Anzahl von Adreßbekanntgaben durch andere Knoten vor dem Einstellen der eindeutigen den Knoten identifizierenden Adresse gezählt hat, womit gesichert wird, daß jeder Knoten eine eindeutige Adreßzuweisung erlangt.
  2. Das Verfahren nach Anspruch 1, ferner umfassend, daß der Knoten, der das BG-Signal empfängt, dann Parameterinformationen über die dem das BG-Signal empfangenden Knoten zugeordneten Komponenten an sämtliche anderen Knoten an dem Bus aussendet.
  3. Das Verfahren nach Anspruch 1 oder 2, ferner umfassend, daß der das BG-Signal empfangende Knoten dann Topologieinformationen bezüglich des das BG-Signal empfangenden Knotens an sämtliche anderen Knoten an dem Bus aussendet.
  4. Das Verfahren nach Anspruch 3, wobei die Topologieinformationen Informationen über die benachbarten Knoten und den Verbindungsstatus einschließen.
  5. Das Verfahren nach einem oder mehreren der obigen Ansprüche, ferner umfassend, daß der Wurzelknoten wartet, bis sämtliche benachbarten Knoten entweder ein BR-Signal weiterleiten oder identifiziert sind, und dann ein "Busverweigerungs"(BD)-Signal an sämtliche der benachbarten nichtidentifizierten Knoten, an welche das BG-Signal nicht weitergeleitet wird, weiterleitet.
  6. Das Verfahren nach Anspruch 5, ferner umfassend, daß die dazwischenliegenden Knoten das BD-Signal von ihrem Elternknoten empfangen und dann ein "Busverweigerungs"(BD)-Signal an sämtliche der benachbarten nicht identifizierten Knoten, an welche das BG-Signal nicht weitergeleitet wird, weiterleiten.
  7. Das Verfahren nach einem oder mehreren der obigen Ansprüche, ferner umfassend, daß ein Knoten, der ein BR-Signal initiierte und das BG-Signal empfängt, ein Busgewährung-Bestätigt(BGA)-Signal an seinen Elternknoten weiterleitet, wobei das BGA-Signal aufwärts über den azyklischen gerichteten Graphen über dazwischenliegende Knoten bis zu dem Wurzelknoten weitergeleitet wird.
DE69332778T 1992-12-21 1993-12-16 Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph Expired - Lifetime DE69332778T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/994,402 US5394556A (en) 1992-12-21 1992-12-21 Method and apparatus for unique address assignment, node self-identification and topology mapping for a directed acyclic graph
US994402 1992-12-21
PCT/US1993/012314 WO1994015303A1 (en) 1992-12-21 1993-12-16 Method and apparatus for unique address asignment, node self-identification and topology mapping for a directed acyclic graph

Publications (2)

Publication Number Publication Date
DE69332778D1 DE69332778D1 (de) 2003-04-24
DE69332778T2 true DE69332778T2 (de) 2004-02-05

Family

ID=25540634

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69332778T Expired - Lifetime DE69332778T2 (de) 1992-12-21 1993-12-16 Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph
DE69334267T Expired - Lifetime DE69334267D1 (de) 1992-12-21 1993-12-16 Verfahren und Gerät mit Einzigadressenzuweisung, Knotenselbstidentifizierung und Topologieabbildung für einen gerichteten, acyclishen Graph

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69334267T Expired - Lifetime DE69334267D1 (de) 1992-12-21 1993-12-16 Verfahren und Gerät mit Einzigadressenzuweisung, Knotenselbstidentifizierung und Topologieabbildung für einen gerichteten, acyclishen Graph

Country Status (9)

Country Link
US (1) US5394556A (de)
EP (2) EP0674789B1 (de)
JP (1) JP3243613B2 (de)
KR (1) KR100316208B1 (de)
AU (1) AU5954094A (de)
CA (4) CA2698614C (de)
DE (2) DE69332778T2 (de)
HK (1) HK1041734B (de)
WO (1) WO1994015303A1 (de)

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3194318B2 (ja) * 1993-07-19 2001-07-30 ソニー株式会社 バス管理方法
JP3318635B2 (ja) * 1994-02-24 2002-08-26 ソニー株式会社 電子機器及び通信方法
US5634004A (en) * 1994-05-16 1997-05-27 Network Programs, Inc. Directly programmable distribution element
US6763454B2 (en) * 1994-05-27 2004-07-13 Microsoft Corp. System for allocating resources in a computer system
EP0685803B1 (de) 1994-06-03 2001-04-18 Hyundai Electronics America Herstellungsverfahren für einen elektrischen Vorrichtungs-Adapter
US5577213A (en) * 1994-06-03 1996-11-19 At&T Global Information Solutions Company Multi-device adapter card for computer
IL110859A (en) * 1994-09-04 1999-12-31 Rit Techn Ltd Interconnection monitor system for telephone network
US6115764A (en) * 1994-09-27 2000-09-05 International Business Machines Corporation Acyclic cable bus having redundant path access
US5724517A (en) * 1994-09-27 1998-03-03 International Business Machines Corporation Method for generating a topology map for a serial bus
US5621901A (en) * 1994-10-31 1997-04-15 Intel Corporation Method and apparatus for serial bus elements of an hierarchical serial bus assembly to electrically represent data and control states to each other
US5623610A (en) * 1994-10-31 1997-04-22 Intel Corporation System for assigning geographical addresses in a hierarchical serial bus by enabling upstream port and selectively enabling disabled ports at power on/reset
US5615404A (en) * 1994-10-31 1997-03-25 Intel Corporation System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals
US5742847A (en) * 1994-10-31 1998-04-21 Intel Corporation M&A for dynamically generating and maintaining frame based polling schedules for polling isochronous and asynchronous functions that guaranty latencies and bandwidths to the isochronous functions
JPH10512405A (ja) * 1994-10-31 1998-11-24 インテル・コーポレーション 通信パケットを使用して階層シリアル・バス・アセンブリを介してデータ、状態、コマンドを交換するm&a
US5634113A (en) * 1994-12-13 1997-05-27 Unisys Corporation Method for generating a preferred processing order and for detecting cycles in a directed graph used to represent system component connectivity
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
JP3348331B2 (ja) * 1995-04-21 2002-11-20 ソニー株式会社 電子機器及びその動作モード制御方法
US5568644A (en) * 1995-05-05 1996-10-22 Apple Computer, Inc. Method and apparatus using a tree structure for the dispatching of interrupts
EP1703676B1 (de) * 1995-06-15 2008-01-23 Koninklijke Philips Electronics N.V. Verfahren für ein Datenbussystem mit Mitteln zur Ressourcensteuerung und Übertragungsstation
US5802057A (en) 1995-12-01 1998-09-01 Apple Computer, Inc. Fly-by serial bus arbitration
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
FI103544B1 (fi) * 1996-03-25 1999-07-15 Nokia Telecommunications Oy Menetelmä osoitteiden määrittämiseksi tietoliikenneverkon solmuissa
US5764930A (en) * 1996-04-01 1998-06-09 Apple Computer, Inc. Method and apparatus for providing reset transparency on a reconfigurable bus
US5793366A (en) * 1996-11-12 1998-08-11 Sony Corporation Graphical display of an animated data stream between devices on a bus
US5805088A (en) * 1996-11-01 1998-09-08 International Business Machines Corporation High speed asynchronous serial to parallel data converter
US5930264A (en) * 1997-02-06 1999-07-27 Telefonaktiebolaget L M Ericsson (Publ) Inter-node signaling for protocol initialization within a communications network
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 矢崎総業株式会社 ツリー構造のアドレス設定方法及びそのシステム
US6098067A (en) * 1997-05-02 2000-08-01 Kabushiki Kaisha Toshiba Remote computer management system
JP3247074B2 (ja) * 1997-06-26 2002-01-15 矢崎総業株式会社 アドレス設定方法、及びこのアドレス設定方法が適用される通信システム
US6421069B1 (en) 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
JP4054451B2 (ja) * 1997-08-26 2008-02-27 キヤノン株式会社 通信装置
US6041286A (en) * 1997-10-21 2000-03-21 Sony Corporation Apparatus for and method of accurately obtaining the cycle time of completion of transmission of video frames within an isochronous stream of data transmitted over an IEEE 1394 serial bus network
US5996090A (en) * 1997-10-29 1999-11-30 International Business Machines Corporation Method and apparatus for quantitative diagnosis of performance problems using external representations
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
SG77163A1 (en) * 1998-03-06 2000-12-19 John Francis Chong A method of implementing an acyclic directed graph structure using a relational database
US6233611B1 (en) 1998-05-08 2001-05-15 Sony Corporation Media manager for controlling autonomous media devices within a network environment and managing the flow and format of data between the devices
FR2779301B1 (fr) * 1998-05-26 2000-07-21 Thomson Multimedia Sa Procede d'identification d'appareils dans un reseau de communication et appareil de mise en oeuvre
US6442171B1 (en) * 1998-05-26 2002-08-27 Qualcomm Incorporated Logical topology and address assignment for interconnected digital networks
US6108698A (en) * 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
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
KR100272108B1 (ko) * 1998-10-13 2000-11-15 윤종용 Ieee 1394 가상 네트웍 생성방법 및 그 콘트롤러
US6173342B1 (en) 1998-10-19 2001-01-09 Hitachi Semiconductor America, Inc. High speed bus interface for peripheral devices
US6327637B1 (en) 1998-12-18 2001-12-04 Cirrus Logic, Inc. Interface tap for 1394-enabled serial bus device
JP3527649B2 (ja) * 1999-02-10 2004-05-17 矢崎総業株式会社 通信方法、通信システム、及びこの通信システムに用いられるゲートウェイ
JP2000235434A (ja) 1999-02-17 2000-08-29 Toshiba Corp 電子機器および電源制御方法
US6810452B1 (en) * 1999-03-19 2004-10-26 Sony Corporation Method and system for quarantine during bus topology configuration
US6910068B2 (en) 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6725281B1 (en) 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
AU5728500A (en) * 1999-06-11 2001-01-02 Microsoft Corporation Data driven remote device control model with general programming interface-to-network messaging adapter
JP4147689B2 (ja) * 1999-06-14 2008-09-10 ソニー株式会社 情報処理装置及び情報処理方法
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
JP2001036549A (ja) 1999-07-15 2001-02-09 Toshiba Corp データ処理システムおよびタイムスタンプ生成方法
US6910090B1 (en) 1999-09-21 2005-06-21 Sony Corporation Maintaining communications in a bus bridge interconnect
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
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
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
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
US6457086B1 (en) * 1999-11-16 2002-09-24 Apple Computers, Inc. Method and apparatus for accelerating detection of serial bus device speed signals
US6751697B1 (en) * 1999-11-29 2004-06-15 Sony Corporation Method and system for a multi-phase net refresh on a bus bridge interconnect
US6728821B1 (en) 1999-11-29 2004-04-27 Sony Corporation Method and system for adjusting isochronous bandwidths on a bus
US7266617B1 (en) * 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US6639918B1 (en) 2000-01-18 2003-10-28 Apple Computer, 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
US6529984B1 (en) * 2000-03-29 2003-03-04 Compaq Information Technologies Group, L.P. Dual phase arbitration on a 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
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
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
JP2004509518A (ja) * 2000-09-13 2004-03-25 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 通信システムおよびデバイス
DE10046311B4 (de) * 2000-09-19 2004-04-08 Siemens Ag Verfahren für eine Zuweisung von Knotennummern zu Netzknoten eines Netzwerks
JP4097891B2 (ja) * 2000-11-27 2008-06-11 三菱電機株式会社 Ieee1394を用いた同期システム
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
JP3523616B2 (ja) 2001-07-24 2004-04-26 松下電器産業株式会社 バス最適化方法及び通信ノード
US6957318B2 (en) * 2001-08-17 2005-10-18 Sun Microsystems, Inc. Method and apparatus for controlling a massively parallel processing environment
US7082200B2 (en) * 2001-09-06 2006-07-25 Microsoft Corporation Establishing secure peer networking in trust webs on open networks using shared secret device key
US20030084219A1 (en) * 2001-10-26 2003-05-01 Maxxan Systems, Inc. System, apparatus and method for address forwarding for a computer network
US7145914B2 (en) 2001-12-31 2006-12-05 Maxxan Systems, Incorporated System and method for controlling data paths of a network processor subsystem
US7011392B2 (en) * 2002-01-24 2006-03-14 Industrial Technology Research Institute Integrated inkjet print head with rapid ink refill mechanism and off-shooter heater
US7082135B2 (en) * 2002-02-04 2006-07-25 General Instrument Corporation Extendable slot addressing system and method
US7307995B1 (en) 2002-04-05 2007-12-11 Ciphermax, Inc. System and method for linking a plurality of network switches
US7295561B1 (en) 2002-04-05 2007-11-13 Ciphermax, Inc. Fibre channel implementation using network processors
US7406038B1 (en) 2002-04-05 2008-07-29 Ciphermax, Incorporated System and method for expansion of computer network switching system without disruption thereof
US7379970B1 (en) 2002-04-05 2008-05-27 Ciphermax, Inc. Method and system for reduced distributed event handling in a network environment
US20030195956A1 (en) * 2002-04-15 2003-10-16 Maxxan Systems, Inc. System and method for allocating unique zone membership
US20030200330A1 (en) * 2002-04-22 2003-10-23 Maxxan Systems, Inc. System and method for load-sharing computer network switch
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US20040030766A1 (en) * 2002-08-12 2004-02-12 Michael Witkowski Method and apparatus for switch fabric configuration
US7417973B1 (en) * 2002-12-31 2008-08-26 Apple Inc. Method, apparatus and computer program product for ensuring node participation in a network bus
US7457302B1 (en) 2002-12-31 2008-11-25 Apple Inc. Enhancement to loop healing for malconfigured bus prevention
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
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
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
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
US20050231358A1 (en) * 2004-04-19 2005-10-20 Company Steven L Search engine for singles with (GPS) position data
US20050262391A1 (en) * 2004-05-10 2005-11-24 Prashant Sethi I/O configuration messaging within a link-based computing system
US7552202B2 (en) * 2005-03-10 2009-06-23 International Business Machines Corporation System and method to uniquely identify identically configured branches in a distributed enterprise
US7370135B2 (en) * 2005-11-21 2008-05-06 Intel Corporation Band configuration agent for link based computing system
CN100402572C (zh) * 2006-01-24 2008-07-16 浙江林学院 三聚氰胺和竹木酚液化物改性酚醛树脂生产方法
US8483108B2 (en) * 2006-07-24 2013-07-09 Apple Inc. Apparatus and methods for de-emphasis training on a point-to-point connection
US8745106B2 (en) * 2006-08-30 2014-06-03 Red Hat, Inc. Numeric identifier assignment in a networked computer environment
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
US7979449B2 (en) * 2007-08-07 2011-07-12 Atasa Ltd. System and method for representing, organizing, storing and retrieving information
JP4497184B2 (ja) * 2007-09-13 2010-07-07 ソニー株式会社 集積装置およびそのレイアウト方法、並びにプログラム
EP2263166B1 (de) * 2008-03-24 2020-02-19 D-Wave Systems Inc. Systeme, einrichtungen und verfahren zur analogen verarbeitung
US9391845B2 (en) * 2014-09-24 2016-07-12 Intel Corporation System, method and apparatus for improving the performance of collective operations in high performance computing
JP6418043B2 (ja) 2015-04-08 2018-11-07 株式会社デンソー スイッチングハブ及び通信ネットワーク
US9838571B2 (en) 2015-04-10 2017-12-05 Gvbb Holdings S.A.R.L. Precision timing for broadcast network
US10691192B2 (en) * 2017-06-29 2020-06-23 Itron Global Sarl Proxy mechanism for communications to establish routes in networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3693155A (en) * 1971-03-23 1972-09-19 Nat Telecommunications System Communication system
US4443866A (en) * 1975-08-27 1984-04-17 Corning Glass Works Automatic device selection circuit
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4360870A (en) * 1980-07-30 1982-11-23 International Business Machines Corporation Programmable I/O device identification
US4660169A (en) * 1983-07-05 1987-04-21 International Business Machines Corporation Access control to a shared resource in an asynchronous system
US4763329A (en) * 1986-02-10 1988-08-09 Techlan, Inc. Modular data routing system
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4845744A (en) * 1986-10-16 1989-07-04 American Telephone And Telegraph Company, At&T Bell Laboratories Method of overlaying virtual tree networks onto a message passing parallel processing network
US4740954A (en) * 1986-12-31 1988-04-26 Bell Communications Research, Inc. Multicast routing algorithm
US4809362A (en) * 1987-03-13 1989-02-28 Center For Innovative Technology Fiber-optic star tree network
FR2649574B1 (fr) * 1989-07-04 1991-10-18 Rce Sa Reseau de communication entre equipements utilisateurs
US5179670A (en) * 1989-12-01 1993-01-12 Mips Computer Systems, Inc. Slot determination mechanism using pulse counting

Also Published As

Publication number Publication date
DE69332778D1 (de) 2003-04-24
EP1197870A2 (de) 2002-04-17
JP3243613B2 (ja) 2002-01-07
CA2151368A1 (en) 1994-07-07
DE69334267D1 (de) 2009-04-23
CA2503597C (en) 2010-06-29
CA2408532C (en) 2005-07-26
HK1041734A1 (en) 2002-07-19
EP1197870A3 (de) 2006-04-19
KR100316208B1 (ko) 2002-06-20
CA2503597A1 (en) 1994-07-07
WO1994015303A1 (en) 1994-07-07
EP1197870B1 (de) 2009-03-11
EP0674789A1 (de) 1995-10-04
CA2408532A1 (en) 1994-07-07
AU5954094A (en) 1994-07-19
HK1041734B (zh) 2009-11-20
US5394556A (en) 1995-02-28
EP0674789B1 (de) 2003-03-19
JPH08505722A (ja) 1996-06-18
CA2698614C (en) 2011-05-17
KR950704746A (ko) 1995-11-20
CA2151368C (en) 2004-02-10
CA2698614A1 (en) 1994-07-07

Similar Documents

Publication Publication Date Title
DE69332778T2 (de) Verfahren und geraet mit einzigadressenzuweisung, knotenselbstidentifizierung und topologieabbildung fuer einen gerichteten, acyclischen graph
DE69334172T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE69637469T2 (de) Datenkommunikationsnetzwerk mit hocheffizientem abfrageverfahren
DE19581234B4 (de) Bussteuereinrichtung und Verfahren für eine hierarchische serielle Busanordnung unter Verwendung von Kommunikationspaketen
DE3300261C2 (de)
DE69732948T2 (de) Rechnernetzwerke und Verfahren zu ihrer Überwachung
EP1309920B1 (de) Adressvergabeverfahren für mindestens einen neu an ein bussystem angeschlossenen busteilnehmer
DE69922690T2 (de) Fehlertolerante netze
DE69634983T2 (de) Verfahren und vorrichtung für ein hybrides wettbewerbs- und abfrageprotokoll
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE112008004203B4 (de) Kommunikationsverwaltungsvorrichtung, Kommnunikationsvorrichtung und Kommunikationsverfahren
EP2028797B1 (de) Verfahren zur Datenübertragung
DE2230830A1 (de) Datenverarbeitungsanlage
DE19756564A1 (de) Nachrichtennetz mit automatischer Knotenkonfiguration bei identischen Knoten
DE69635511T2 (de) Verfahren und gerät zum weglenken von nachrichten in einem knoten-netz
EP2266297B1 (de) Automatische busadressvergabe mittels kollisionsprüfung
DE69735972T2 (de) Verfahren und Vorrichtung zur Verwaltung eines Computernetzes
DE19822543A1 (de) Verfahren zum Zuteilen von Aufträgen, Datenverarbeitssystem, Client-Datenbearbeitungsknoten und computerlesbares Speichermedium
DE2911677B2 (de) Verfahren und Schaltungsanordnung zum Überwachen und Verhindern von Blockierungen in Datenverarbeitungssystemen mit mehreren Prozessoren
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE60131765T2 (de) Verfahren zur verbindung mehrerer kommunikationsbusse mit drahtlosen verbindungen
DE10252448B4 (de) Verfahren für das Identifizieren von Vorrichtungen, die ein Multicast-Kanalzuweisungsprotokoll (MCAP) auf demselben Netzwerk unterstützen und Multicast-Kommunikationsnetzwerk das dieses verwendet
DE60023429T2 (de) Geräteregistrierung in einem Netzwerk
DE10394206T5 (de) Datenkommunikations-Lastverteilungs-Steuerprogramm und Datenlastverteilungs-Steuerverfahren

Legal Events

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

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