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