-
Technischer Bereich
-
Erfindungsgemäße Ausführungsformen
betreffen Multi-Ring-Kopplungsstrukturen und gemäß einer Ausführungsform,
ein Schema zur Vermeidung eines Deadlocks in einer Multi-Ring-Kopplungsstruktur.
Weitere Ausführungsformen
beziehen sich auf Überlastkontrolle
und Netzwerke, die Multi-Ring-Kopplungsstrukturen aufweisen, die
Deadlocks vermeiden.
-
Hintergrund
-
Eine
Link-Kopplungsstruktur ermöglicht
die Kommunikation zwischen Geräten
und Funktionsblöcken.
Einige Beispiele von Kopplungsstrukturen sind gemeinsam benutzte
Busse und Punkt-zu-Punkt-Links. Eine unterteilte Ring-Kopplungsstruktur
besteht aus einer festen Anzahl an Slots, die in einer geschlossenen
Schleife angeordnet sind. Jeder Ring-Slot ist entweder leer oder
mit einer Nachricht belegt. Der Ring kann sowohl im Uhrzeigersinn
als auch gegen den Uhrzeigersinn rotieren. Das heißt, dass
eine Nachricht in einem Slot entweder im Uhrzeigersinn oder gegen
den Uhrzeigersinn um den Ring laufen kann. Die Rotationsrichtung ist
nicht von Belang. Die Grundoperation des Ringes ist einfach: bei
jedem Takt wird der Inhalt eines jeden Slots typischerweise durch
denjenigen seines vorgeschalteten Nachbarn (z. B. des Nachbarn entgegen des
Uhrzeigersinnes, wenn die Ringrotation im Uhrzeigersinn erfolgt)
ersetzt. Im Wesentlichen kann der gesamte Ring als ein zyklisches
Schieberegister angesehen werden.
-
Typischerweise
hat eine Teilmenge der Slots an einem Ring eine oder mehrere ihnen
zugeordnete Stationen. Es können
jedoch alle der Slots an einem Ring eine oder mehrere zugeordnete
Stationen haben. Eine Station kann Nachrichten über den Slot, dem sie zugeordnet
ist, senden und empfangen. Um eine Nachricht zu senden, wartet eine
Station darauf, dass ihr zugeordneter Slot leer wird, und sobald
dies der Fall ist, gibt sie die Nachricht, die sie senden will, in
den Slot. Typischerweise trägt
jede Nachricht die Kennung der Station für die sie bestimmt ist.
-
Im
Allgemeinen überwacht
eine Station ihren zugeordneten Slot auf Nachrichten, die an sie
gerichtet sind. Sobald eine Nachricht eintrifft, entfernt die Station
die Nachricht aus dem Slot, wenn sie die zum Empfang notwendige
Ressource besitzt. Ob eine Station in demselben Takt empfangen und
senden kann, hängt
von Implementierungsdetails ab und ist für die vorliegende Erfindung
nicht von Bedeutung.
-
Kurze Beschreibung der Zeichnungen
-
Die
Erfindung wird am besten verstanden, indem auf die folgende Beschreibung
und begleitenden Zeichnungen Bezug genommen wird, die zur Veranschaulichung
der erfindungsgemäßen Ausführungsformen
verwendet werden.
-
1a ist
eine schematische Darstellung einer Kopplungsstruktur-Topologie
mit zwei Seite-an-Seite liegenden Ringen.
-
1b ist
eine schematische Darstellung einer Kopplungsstruktur-Topologie
mit vier Seite-an-Seite liegenden Ringen.
-
1c ist
eine schematische Darstellung einer Kopplungsstruktur-Topologie
mit hierarchischen Ringen.
-
Detaillierte Beschreibung
-
Eine
erfindungsgemäße Ausführungsform bezieht
sich auf Netzwerke mit mehreren unterteilten Ringen. Eine weitere
erfindungsgemäße Ausführungsform
bezieht sich auf ein Verfahren, sich dem Problem eines Interring-Deadlocks
in solchen Netzwerken zu widmen. Eine weitere erfindungsgemäße Ausführungsform
bezieht sich auf Überlastkontrolle, auch
in einem einzelnen Ring.
-
Bei
der folgenden Beschreibung wird eine bestimmte Terminologie verwendet,
um erfindungsgemäße Merkmale
zu beschreiben. Beispielsweise ist der Begriff „Gerät” oder „Agent” allgemein und kann verwendet
werden, um irgendeine elektrische Komponente zu beschreiben, die
an einen Link gekoppelt ist. Ein „Link” oder eine „Kopplungsstruktur” ist im
Allgemeinen als ein informationstragendes Medium definiert, das
einen Kommunikationspfad für Nachrichten,
nämlich
Informationen, die in einem bestimmten Format abgelegt sind, bereitstellt.
Der Link oder die Kopplungsstruktur kann ein drahtgebundenes physikalisches
Medium (z. B. ein Bus, ein oder mehrere elektrische Drähte, Trace,
Kabel usw.) oder ein drahtloses Medium (z. B. Luft in Kombination
mit drahtloser Signaltechnologie) sein.
-
Der
Begriff „Netzwerk” kann sich
auf irgendeine Kopplungsstrukturgruppe oder ein Kopplungsstruktursystem
beziehen. Das heißt,
dass ein Netzwerk Geräte
beinhalten kann, die in der gleichen Maschine verlinkt sind, oder
Geräte
in verschiedenen Computer, die verlinkt sind, um Informationen zu
teilen. Netzwerke umfassen, sind jedoch nicht beschränkt auf,
lokales Netzwerk (LAN), Weitverkehrsnetz (WAN), drahtloses lokales
Netzwerk (WLAN) und virtuelles Netzwerk (VLAN).
-
Wie
vorstehend beschrieben, hat eine Teilmenge der Slots an einem Ring
typischerweise eine oder mehrere ihnen zugeordnete Stationen. Eine Station
ist im weitesten Sinne als irgendein Gerät definiert, das Nachrichten
senden und empfangen kann. Stationen senden und empfangen Nachrichten typischerweise über den
Slot dem sie zugeordnet sind. Um eine Nachricht zu senden, wartet
eine Station darauf, dass der ihr zugeordnete Slot leer wird. Sobald
der ihr zugeordnete Slot leer ist, legt die Station die Nachricht,
die sie senden will, in den Slot. Typischerweise trägt jede
Nachricht die Kennung der Station, für die sie bestimmt ist. Im
Allgemeinen überwacht
eine Station den ihr zugeordneten Slot auf an sie gerichtete Nachrichten.
Sobald eine an die Station gerichtete Nachricht ankommt, entfernt
die Station die Nachricht aus dem Slot, wenn sie die zum Empfang
notwendige Ressource besitzt.
-
Eine
unterteilte Ring-Kopplungsstruktur ist im Wesentlichen ein 1-dimensionales
Kommunikationsmedium mit einer begrenzten Querschnittsbandbreite.
Wenn die Anzahl an Stationen, die miteinander kommunizieren möchten, groß ist, ist
es wünschenswert,
die Stationen auf mehrere unterteilte Ring-Kopplungsstrukturen aufzuteilen,
um die Gesamtkommunikationsbandbreite zu erhöhen. Die mehreren unterteilten
Ring-Kopplungsstrukturen können in
verschiedenen Topologien miteinander verbunden werden, wovon einige
in 1a–1c veranschaulicht
sind.
-
1a veranschaulicht
eine Kopplungsstruktur-Topologie 10 mit zwei unterteilten Ring-Kopplungsstrukturen 14 in
einer Seite-an-Seite-Topologie. Wie veranschaulicht, weist jede
der unterteilten Ring-Kopplungsstrukturen 14 36 Slots 12 auf.
Die Anzahl der veranschaulichten Slots 12 ist jedoch frei
wählbar
und nicht auf 36 beschränkt.
Das heißt,
dass die unterteilten Ring-Kopplungsstrukturen 14 mehr
oder weniger Slots 12 aufweisen können. Außerdem ist es nicht notwendig,
dass die verschiedenen unterteilten Ring-Kopplungsstrukturen 14 die
gleiche Anzahl an Slots 12 aufweisen. Tatsächlich weisen
bei einigen Ausführungsformen
die verschiedenen unterteilten Ring-Kopplungsstrukturen 14 in
einer Topologie eine unterschiedliche Anzahl an Slots 12 auf.
-
Die
Doppelpfeile in 1a–1c stellen Ringkonnektoren 16 dar,
die Nachrichten zwischen den unterteilten Ring-Kopplungsstrukturen 14 verschieben.
Die Ringkonnektoren 16 sind typischerweise Bridges, können jedoch
jedes Gerät
sein, wie beispielsweise Repeater, Router, Hubs oder Switches, die
mehrere unterteilte Ringe 14 verbinden können.
-
1b veranschaulicht
eine Kopplungsstruktur-Topologie 20 mit vier unterteilten
Ring-Kopplungsstrukturen 14 in einer Seite-an-Seite-Topologie, während 1c eine
Kopplungsstruktur-Topologie 30 mit fünf unterteilten Ring-Kopplungsstrukturen 14 in
einer hierarchischen Topologie veranschaulicht. Die Slots 12 sind
in 1b und 1c nicht
gezeigt. In der veranschaulichten hierarchischen Topologie müssen Nachrichten
auf der linken Seite von 1c, die
für eine
Station auf der rechten Seite der Topologie bestimmt sind, den zentralen
unterteilten Ring 15 passieren. Viele andere Topologien
sind möglich.
Die in 1a–1c veranschaulichten
Topologien dienen lediglich der Veranschaulichung.
-
Multi-Ring-Deadlock
-
Das
Problem des Deadlocks in einem System mit Multi-Ring Kopplungsstrukturen
kann unter Verwendung der 2-Ring Topologie in 1a veranschaulicht
werden. Wenn das System jemals in einen Zustand gerät, bei dem
alle Slots 12 der oberen (oder unteren) unterteilten Ring-Kopplungsstruktur 14 mit an
die Stationen (nicht gezeigt) in dem unteren (oberen) Ring gerichteten
Nachrichten belegt sind und alle Puffer in dem Ringkonnektor 16 voll
sind, kommt es zu einem Deadlock, da kein Slot 12 in einem
der unterteilten Ring-Kopplungsstrukturen 14 geleert werden
kann. Es gibt einige Punkte, die man bei dieser Art Deadlock beachten
muss.
-
Erstens
kann der Deadlock eintreten, selbst wenn das endgültige Ziel
(Zielstation) einer jeden Nachricht die Ressource, sie zu empfangen,
besitzt. Dies ist der Fall, da das endgültige Ziel (Zielstation) sich
auf einer unterteilten Ring-Kopplungsstruktur 14 befindet,
während
die Nachricht auf der anderen unterteilten Ring-Kopplungsstruktur 14 gefangen
ist. Zweitens ist die genaue Topologie, in der die mehreren unterteilten
Ring-Kopplungsstrukturen 14 miteinander
verbunden sind, nicht wichtig. Es ist einfach, ähnliche Deadlock-Szenarien
für irgendeine
der vorstehenden Topologien 20, 30 und andere
Multi-Ring-Topologien zu konstruieren. Drittens sind auch die Anzahl
und Positionen der Ringkonnektoren 16 und die genauen Puffermechanismen
in ihnen nicht wichtig. Sobald alle Slots 12 und Ringkonnektorpuffer
(nicht gezeigt) gefüllt
sind, kommt es zu einem Deadlock. Viertens ist die Tatsache, dass
es mehr als eine unterteilte Ring-Kopplungsstruktur 14 in dem
Netzwerk gibt, entscheidend für
das Auftreten des Deadlocks. Bei einem einzelnen Ring besucht jede
Nachricht ihre Zielstation immer wieder, solange sie auf der unterteilten
Ring-Kopplungsstruktur 14 bleibt, womit die Zielstation
unendlich viele Möglichkeiten
erhält,
die Nachricht zu empfangen. Bei zwei oder mehr unterteilten Ring-Kopplungsstrukturen 14 dagegen
ist es möglich,
dass jede unterteilte Ring-Kopplungsstruktur 14 mit Nachrichten
gefüllt wird,
deren Zielstationen sich auf anderen unterteilten Ring-Kopplungsstrukturen 14 befinden.
-
Schema zur Vermeidung eines Multi-Ring-Deadlocks
-
Die
dem Schema zugrundeliegende Idee ist wie folgt. Vorzugsweise wird
jede Nachricht von dem Ring entweder von einem Ziel auf einer unterteilten Ring-Kopplungsstruktur 14 (welche
ein Ringkonnektor 16 wie beispielsweise eine Bridge sein
kann) oder der Quellstation der Nachricht auf der unterteilten Ring-Kopplungsstruktur 14 entfernt.
Somit wird der Slot 12, den die Nachricht belegt, in maximal
einer Runde verfügbar.
Wenn das Ziel der Nachricht die Nachricht empfangen kann, entfernt
das Ziel die Nachricht von der unterteilten Ring-Kopplungsstruktur 14.
Wenn beispielsweise somit der Ringkonnektor 16, der zwei
unterteilte Ringe verbindet, die Nachricht empfangen kann, entfernt
er die Nachricht von der ersten unterteilten Ring-Kopplungsstruktur 14 und gibt
sie an die zweite unterteilte Ring-Kopplungsstruktur 14 weiter.
Sobald eine Nachricht zu der anderen unterteilten Ring-Kopplungsstruktur 14 überwechselt,
erhält
sie schließlich
das Endziel. Somit ist ein Deadlock kein Problem, sobald die Nachricht
sich auf dem Weg zu der unterteilten Ring-Kopplungsstruktur 14 befindet,
die das Endziel enthält.
Wenn das Ziel die Nachricht nicht empfangen kann, markiert das Ziel
(oder genauer gesagt die Bridgelogik, die die beiden unterteilten
Ring-Kopplungsstrukturen verbindet), die Nachricht mit einer negativen
Kennzeichnung. Das heißt,
dass das Zwischenziel (z. B. Ringkonnektor 16 oder Bridge)
für die
Kennzeichnung verantwortlich ist. Die Nachricht kreist dann als eine
negative Quittierung zu der Quellstation zurück.
-
Die
Quellstation behält
eine Kopie der Nachricht bis sie entweder eine negative oder eine
positive Quittierung erhält.
Wie bereits angegeben, ist eine negative Quittierung eine markierte
Nachricht, die zu ihrer Quelle zurückkreist. Die Quelle entfernt
sodann die markierte Nachricht von der unterteilten Ring-Kopplungsstruktur 14,
um ihren Slot 12 verfügbar
zu machen. Die Quellstation wird einen weiteren Versuch starten,
die Nachricht später
unter Verwendung der behaltenen Kopie zu senden. Da die gesamte
Anzahl an Slots 12 in dem Ring feststeht und bekannt ist,
kann die Quellstation die Zeit zählen
und weiß genau,
wann eine negative Quittierung, wenn überhaupt, ankommen sollte.
Wenn in diesem Takt keine negative Quittierung ankommt, sieht die
Quellstation dies als eine positive Quittierung an. Für den Fall
einer positiven Quittierung, kann die Quellstation ihre Kopie der
Nachricht verwerfen.
-
Beispiel
-
Nachstehend
findet sich eine beispielhafte Implementierung des vorstehenden
Schemas. Bei diesem Beispiel trägt
jede Nachricht die folgenden Bits zusätzlich zu ihren Nutzdaten:
(1) ein Gültigkeitsbit
V, (2) ein negatives Quittierungsbit N und (3) für jede Station k auf der unterteilten
Ring-Kopplungsstruktur 14 ein entsprechendes Zielbit D[k].
Im Folgenden ist die Wahl des Setzens der Bits auf 0 oder 1 willkürlich. Das
heißt,
dass man die entgegengesetzte Konvention oder irgendeine andere
Konvention hätte
wählen
können.
-
Das
Signalprotokoll zwischen einer Quellstation s und einer Zielstation
t (wobei s und t unterschiedliche Stationen sind und eine davon
oder beide eine Bridge sein kann, die diesen Ring mit einem anderen
Ring verbindet) kann wie folgt beschrieben werden. Erstens wartet
eine Quellstation s auf einen Slot 12 mit V = 0 und N =
0, um eine Nachricht zu senden. Die Nachricht wird gesendet, indem
V := 1, D[s] := 1 und D[t] := 1 gesetzt werden. Zweitens wartet eine
Zielstation t auf ein Slot mit V = 1 und N = 0 und D[t] = 1, um
eine Nachricht zu empfangen. Die Nachricht wird empfangen, indem
V := 0, D[s] := 0 und D[t] := 0 gesetzt werden. Drittens, wenn Zielstation
t die Nachricht nicht empfangen kann, zeigt sie eine negative Quittierung
an, indem V := 0, N := 1 und D[t] := 0 gesetzt werden. Viertens
zählt Quellstation
s die Zeit und führt
die folgenden Überprüfungen in
dem Takt durch, in welchem entweder eine positive oder negative
Quittierung planmäßig eintreffen
soll.
-
Wenn
V = 0 und N = 1 und D[s] = 1 ist, dann weiß Quellstation s, dass eine
negative Quittierung eingetroffen ist, die sie von dem unterteilten
Kopplungsstrukturring 14 entfernt, indem N := 0, D[s] :=
0 gesetzt wird. Bei einigen Ausführungsformen
kann sie es auch vorziehen, den gleichen Slot 12 zu verwenden,
um eine andere Nachricht zu senden, wenn die Randbedingungen der
Implementierung dies erlauben. Wenn jedoch entweder D[s] = 0 oder
(V = 1 und N = 0) ist, dann weiß Quellstation
s, dass eine positive Quittierung eingetroffen ist. Bei diesem Szenario
müssen
zwei Unterfälle
berücksichtigt
werden. Erstens, wenn D[s] = 0 ist, ist dies eine rein positive Quittierung
und Quellstation s muss nichts anderes tun, als die Kopie der Nachricht,
die quittiert ist, zu verwerfen. Zweitens, wenn D[s] = 1 aber (V
= 1 und N = 0) ist, ist dies sowohl eine positive Quittierung für die alte,
von Quellstation s gesendete Nachricht, als auch für die Ankunft
einer neuen Nachricht, die an Quellstation s von einer Station u,
die die gleiche sein kann wie t oder nicht, gerichtet ist. Wenn
Quellstation s die neue Nachricht empfangen kann, empfängt Quellstation
s die Nachricht indem V := 0, D[s] := 0 und D[u] := 0 gesetzt wird.
Wenn Quellstation s die neue Nachricht nicht empfangen kann, dann
quittiert Quellstation s die neue Nachricht negativ, indem V := 0,
N := 1 und D[s] := 0 gesetzt wird.
-
Dieses
Protokoll weist mehrere nützliche Merkmale
auf. Erstens belegt eine Nachricht einen Slot 12 immer
maximal einen Zyklus um die unterteilte Ring-Kopplungsstruktur 14. Zweitens,
sobald eine Nachricht erfolgreich von ihrem Ziel empfangen wurde,
wird ihr Slot 12 sofort wiederverwendbar durch andere Nachrichten;
nur eine negative Quittierung muss zur Quellstation der Nachricht
zurückkreisen. Drittens
muss jede Station k typischerweise nur die Bits V, N, und D[k] überwachen
und muss nicht jedes D[j], wobei j ≠ k ist, überwachen. Viertens muss jede Station
k maximal drei aus V, N, D[k] treiben (das Bit auf 0 oder 1 setzen)
und ein D[j], wobei j ≠ k
ist. Fünftens
werden keine zusätzlichen
Bits im Nutzdatenanteil benötigt,
um die Quell- und Zielstationen einer Nachricht zu identifizieren.
Optional kann es jedoch eine spezifische Implementierung vorziehen,
zusätzliche
Bits einzuschließen,
um die Quell- und Zielstationen zu identifizieren, wenn dies von
Nutzen ist.
-
Anwendung zur Überlastkontrolle an einer einzelnen unterteilten
Ring-Kopplungsstruktur
-
Indem
die Belegung des Slots 12 mit einer Nachricht auf maximal
einen Zyklus um die unterteilte Ring-Kopplungsstruktur 14 begrenzt
wird, kann das vorstehende Schema auch bei Überlastkontrolle angewandt
werden. Eine Station kann die Belegungsrate der Slots 12 der
unterteilten Ring-Kopplungsstruktur 14 überwachen, da die Slots an
ihr vorbeirotieren, und sie kann diese Informationen nutzen, um
zu kontrollieren, wie schnell negativ quittierte Nachrichten erneut
an die unterteilte Ring-Kopplungsstruktur 14 gesendet
werden sollen. Ist die Belegungsrate hoch, können die Stationen länger warten,
bevor negativ quittierte Nachrichten erneut gesendet werden und somit
können
sie die Rate verringern, bei der Nachrichten in die unterteilte
Ring-Kopplungsstruktur 14 eingespeist
werden. Somit kann die Tatsache, dass man eine Nachricht dazu bringen
kann, einen Slot 12 auf der unterteilten Ring-Kopplungsstruktur 14 für maximal
einen Zyklus um den Ring zu belegen auch von Vorteil bei der Verringerung
der Überlast
an einer einzelnen unterteilten Ring-Kopplungsstruktur 14 sein.
-
Eine
einzelne unterteilte Ring-Kopplungsstruktur braucht keine zur Deadlockvermeidung
verwendeten Bits V und N, da ein Deadlock für einen einzelnen Ring keine
Rolle spielt. Hat man diese Bits jedoch, wird eine bessere Reaktion
auf Überlast
ermöglicht.
Als Beispiel kann jede Station vorbeikommende V-Bits überwachen,
um die Ringaktivität
zu überwachen.
Wenn beispielsweise Bit V in 80% der Zeit beobachtet wird, kann
eine Station Traffic mit einer langsameren Rate als normal einspeisen
oder überhaupt
nichts einspeisen bis die Ringauslastung sinkt. Wenn alle Stationen
diesem Mechanismus folgen, ist Überlast
von Natur aus selbstgeregelt und der Ring-Traffic sinkt wieder unterhalb
eines wünschenswerten
Schwellwertes (egal um welchen numerischen Wert es sich handelt,
wie durch das System definiert). Fehlt ein Überlastkontrollmechanismus,
speisen Agenten Traffic wann immer möglich in das Netzwerk ein,
was zu einer weiteren Überlastung eines
bereits überlasteten
Netzwerkes führt.
Eine Erholung von dieser Überlast,
wenn die Aktivität
hoch ist, dauert sehr lange. Die Folge von Überlast ist eine nicht lineare
Erhöhung
der Latenzzeit (oder der für die
auftretende Kommunikation benötigten
Zeit). Somit ist es im Allgemeinen besser, einen Betrieb ohne Überlast
sicherzustellen, auch wenn dies bedeutet, dass Nachrichten von Stationen
in den Ring vorübergehend
verlangsamt oder unterbrochen werden.
-
Obwohl
die Erfindung in Hinblick auf mehrere erfindungsgemäße Ausführungsformen
beschrieben wurde, werden Fachleute erkennen, dass die Erfindung
nicht auf die erfindungsgemäßen Ausführungsformen
beschränkt
ist, sondern mit Modifikationen und Änderungen innerhalb des Wesens
und Rahmens der beigefügten
Ansprüche
ausgeübt
werden kann. Die Beschreibung ist somit als illustrative Darstellung,
jedoch in keiner Weise eingrenzend anzusehen.