-
Die
Erfindung betrifft ein Rechnernetzwerk mit nichtdeterministischem
Zugriff, also ein Netzwerk, das mehrere Stationen beinhaltet, die
untereinander kommunizieren, indem sie gemäß einem nichtdeterministischen
Zugangsprotokoll auf ein gemeinsames Medium zugreifen, also gemäß einem
Protokoll, bei dem die nötige
Wartezeit nicht absehbar ist, wenn eine gegebene Station zu einem
gegebenen Zeitpunkt einen Zugriff auf das Medium anfordert. Diese Zeit
wird im folgenden als Zugriffszeit bezeichnet. Beispielsweise ist
ein Protokoll, das darin besteht, zu prüfen, daß auf dem Medium kein Träger vorhanden ist,
anschließend
mit dem Aussenden einer Meldung beginnt und dabei eine eventuelle
Kollision mit einer anderen Meldung feststellt, deren Aussendung
zum selben Zeitpunkt beginnen würde,
ein nichtdeterministisches Protokoll. Eine Station ist nämlich nicht
in der Lage, die Aussendung von Meldungen durch andere Stationen
vorherzusehen. Die Zugriffszeit kann bei starkem Datenverkehr auf
dem gemeinsamen Medium einen hohen Wert erreichen. Diese Zugriffszeit
kann Echtzeitanwendungen in prohibitiver Weise verlangsamen.
-
Das
gebräuchlichste
gemeinsame Medium ist ein Bus, der alle Stationen miteinander verbindet, oder
auch ein "passiver
Hub", also eine
in Sterntopologie aufgebaute Vernetzungsvorrichtung, mit welcher
jede Station über
eine einzelne Verbindung derart gekoppelt ist, daß diese
Verbindungen äquivalent zu
einem Bus sind, der von Station zu Station verläuft. Um das Risiko von Kollisionen
zu verringern, besteht eine erste bekannte Lösung darin, diesen "passiven Hub" durch einen "aktiven Hub" zu ersetzen, also
eine Routingvorrichtung, mit welcher jede Station über eine
einzelne Verbindung gekoppelt ist und die es gestattet, die Anzahl
der Kollisionen zu senken. Der Einsatz einer Kaskade von "Hubs" ist erforderlich,
wenn das Netzwerk eine große
Zahl von Stationen (beispielsweise 16) beinhaltet. Diese Lösung ist
somit sehr kostspielig, vor allem dann, wenn das Netzwerk zur Absicherung
seiner Betriebsbereitschaft doppelt ausgeführt ist.
-
Jede
Station ist in klassischer Weise mit dem gemeinsamen Medium über eine
Schnittstellenschaltung verbunden, die das Protokoll zum Zugriff
auf dieses Medium verwaltet. Zur Senkung des Kollisionsrisikos besteht
eine zweite bekannte Lösung
darin, die Implementierung des Zugangsprotokolls in dieser Schnittstellenschaltung
zu modifizieren, um die Zahl von Kollisionen zu verringern. Diese
Lösung
besteht also darin, eine proprietäre Schaltung zu entwickeln, statt
eine normgemäße und auf
dem Markt verfügbare
Schaltung zu verwenden. Diese Lösung
ist daher kostenintensiv.
-
Beispiele
für ein
Rechnernetzwerk mit Kollisionserkennung werden in den Dokumenten US-A-5600651,
EP-A 0 632 619, V. Y. Zagursii et al: "Random-access method with deterministic
delay and control capability",
Automatic Control and Computer Sciences, Vol. 23, Nr. 3, 1. Januar
1989, Seiten 59–62,
XP000103990 und EP-A 0 377 361 dargelegt.
-
Ziel
der Erfindung ist es, ein Netzwerk vorzuschlagen, in welchem die
Zugriffszeit deterministisch gemacht wird, indem mit kostengünstigeren
Mitteln als denen der bekannten Lösungen praktisch jedes Risiko
einer Kollision ausgeschaltet wird.
-
Gegenstand
der Erfindung ist ein Rechnernetzwerk mit nichtdeterministischem
Zugriff, jedoch deterministischer Zugriffszeit, wobei dieses Netzwerk mehrere
Stationen beinhaltet, die durch Zugriff auf ein gemeinsames Medium
gemäß einem
nichtdeterministischen Protokoll kommunizieren, und dadurch gekennzeichnet
ist, daß jede
Station folgendes beinhaltet:
- – Mittel,
mit denen festgestellt wird, ob das Risiko einer Kollision zwischen
mehreren Stationen besteht, wenn diese versuchen würden, auf
das gemeinsame Medium zuzugreifen,
- – sowie
Mittel zur Begrenzung ihrer mittleren Datenrate auf diesem gemeinsamen
Medium auf einen vorher festgelegten Maximalwert, zumindest während der
Dauer von Zeitintervallen, in welchen das Risiko einer Kollision
zwischen mehreren Stationen besteht, die versuchen, auf das gemeinsame
Medium zuzugreifen, wobei dieser Maximalwert so gewählt wird,
daß die
Summe der für
die einzelnen Stationen jeweils gewählten Maximalwerte kleiner
als die mittlere Datenrate ist, die das gemeinsame Medium unterstützen kann.
-
Im
so gekennzeichneten Netzwerk kommen praktisch keine Kollisionen
mehr vor, was auf die Tatsache zurückzuführen ist, daß die Summe
der für
die einzelnen Stationen jeweils gewählten Maximalwerte kleiner
als die mittlere Datenrate ist, die das gemeinsame Medium unterstützen kann.
-
Gemäß einer
bevorzugten Ausführungsform beinhalten
die Mittel zur Begrenzung der mittleren Datenrate einer Station
Zeitverzögerungsmittel,
welche den Zugriff einer Station auf das gemeinsame Medium nach
Ablauf eines Intervalls freigeben, das am Ende des letzten Zugriffs
dieser Station beginnt und eine Dauer hat, die proportional zum
Intervall dieses letzten Zugriffs ist.
-
Das
so gekennzeichnete Netzwerk ist kostengünstig zu implementieren, weil
diese Zeitverzögerungsmittel
durch einen Teil der Prozessorsoftware der Station realisiert werden
können.
Eine marktübliche
Schnittstellenschaltung kann ohne jede Modifikation verwendet werden.
-
Gemäß einer
bevorzugten Ausführungsform beinhalten
die Mittel, mit denen festgestellt wird, ob das Risiko einer Kollision
zwischen mehreren Stationen besteht, wenn diese versuchen würden, auf
das gemeinsame Medium zuzugreifen, weiterhin Mittel, mit denen festgestellt
wird, ob sich seit Beginn der letzten von dieser Station über das
gemeinsame Medium bewerkstelligten Übertragung mindestens eine Kollision
ereignet hat, und mit denen gefolgert werden kann, ob ein Kollisionsrisiko
besteht, wenn sich seit Beginn der letzten von dieser Station bewerkstelligten Übertragung
mindestens eine Kollision ereignet hat.
-
Das
so gekennzeichnete Netzwerk ist kostengünstig zu implementieren, weil
diese Mittel, mit denen festgestellt wird, ob ein Kollisionsrisiko
besteht, unter Verwendung eines Kollisionszählers realisiert werden können, der
bereits in bestimmten und im Handel erhältlichen Schnittstellenschaltungen
vorhanden ist.
-
Die
Erfindung wird besser verständlich
und weitere Eigenschaften deutlich anhand der nachstehenden Beschreibung
und der beigefügten
Abbildungen:
-
1 zeigt
ein Zeitverlaufsdiagramm, das die Funktionsweise eines erfindungsgemäßen Beispielnetzwerks
veranschaulicht,
-
2 zeigt
eine schematische Übersicht
zu diesem Ausführungsbeispiel,
und
-
3 zeigt
ein Flußdiagramm
der in diesem Ausführungsbeispiel
ablaufenden Operationen.
-
Das
nachstehend exemplarisch beschriebene Ausführungsbeispiel ist ein Netzwerk
gemäß der Norm
IEEE 802.3, das unter der Marke ETHERNET auf dem Markt ist und dessen
Medium eine mittlere Datenrate von 100 Mbit/s aufweist.
-
Das
Diagramm in 1 zeigt eine bestimmte Zahl
von Ereignissen, wie sie, von einer gegebenen Station aus gesehen,
als Funktion der Zeit t eintreten.
- – Eine erste
Linie zeigt den Inhalt col eines Zählers, der die Anzahl von Kollisionen
auf dem Medium zählt
und zum Wert null zurückkehrt,
wenn er seinen Maximalwert erreicht, der beispielsweise 65535 (bei
einem 16-Bit-Zähler)
ist.
- – Eine
zweite Linie zeigt die Datenrahmen D, die von der betrachteten Station
ausgesandt werden.
- – Eine
dritte Linie zeigt den Wert eines Flags aut, das der betrachteten
Station die Freigabe zum Aussenden eines Rahmens erteilt, wenn es
den Wert 1 hat.
- – Eine
vierte Linie zeigt den Wert temp eines Verzögerungszählers TEMP.
-
Zu
Beginn des in 1 dargestellten Zeitintervalls
hat der Kollisionszähler
col einen beliebigen Wert. Es wird momentan kein Rahmen übertragen. Das
Flag aut hat den Wert 1, so daß die
Station die Freigabe zum Senden hat, und der Verzögerungszähler temp
hat den Wert 0.
-
Zu
einem Zeitpunkt t0 muß die
Station einen Rahmen A1 über
das Medium übertragen.
Der Wert 1 des Flages aut signalisiert ihr, daß sie zum Zugriff auf das Medium
berechtigt ist, denn es besteht kein oder nur ein geringes Kollisionsrisiko.
Sie ist berechtigt, den Rahmen A1 unmittelbar zu senden. Dieser hat
eine Länge,
die beispielsweise einer Sendedauer T1 entspricht. Kurz vor der
Sendung wird der aktuelle Wert col1 des Kollisionszählers gespeichert,
damit er später
als Bezugswert dienen kann.
-
Zu
Beginn der Übertragung
des Rahmens A1 wird der Verzögerungszähler temp
mit einem Wert initialisiert, der so bemessen ist, daß das Abwärtszählen bis
auf 0 über
ein Intervall T1 + T1' andauert.
Das Intervall T1 wird aus der Länge
des Rahmens A1 und der Nenndatenrate auf dem gemeinsamen Medium berechnet.
Das Intervall T1' wird
so berechnet, daß der
Wert der mittleren Datenrate dieser Station während des Intervalls T1 + T1' gleich dem Maximalwert der
mittleren Datenrate ist, die für
die betrachtete Station gewählt
wurde. Da in diesem Beispiel als Maximalwert der mittleren Datenrate
ein Wert gleich der Hälfte
der Nenndatenrate des gemeinsamen Mediums gewählt wurde, wird der Initialisierungswert
so gewählt,
daß über ein
Intervall T1 + T1' gleich
der doppelten Dauer T1 des Rahmens A1, welchen diese Station senden
wird, abwärts
gezählt
wird. Das Flag aut bleibt während
der gesamten Dauer der Abwärtszählung auf
null gesetzt, um die betrachtete Station daran zu hindern, das gemeinsame
Medium in Anspruch zu nehmen, wenn ein Kollisionsrisiko besteht. Besteht
kein Kollisionsrisiko, so hat die Station das Flag aut nicht zu
berücksichtigen.
-
Wenn
die Station das Aussenden des Rahmens A1 beendet hat, stellt sie
während
einer bestimmten Zeitspanne T2, die größer als die Zeitspanne T1' ist, das Senden
ein. Während
dieser Zeitspanne kehrt der Wert temp des Zählers TEMP zum Zeitpunkt t1
zum Wert 0 zurück,
was bewirkt, daß das Flag
aut wieder auf den Wert 1 gesetzt wird.
-
Zum
anschließenden
Zeitpunkt t2 hat die betrachtete Station erneut einen Rahmen A2
zu senden. Der Wert 1 des Flags aut gibt den Sendevorgang frei,
ohne zu prüfen,
ob ein Kollisionsrisiko besteht. Die Station sendet den Rahmen A2
somit unmittelbar. Kurz vor der Sendung wird der aktuelle Wert col2
= col1 des Kollisionszählers
gespeichert, damit er später
als Bezugswert dienen kann. Andererseits wird der Zähler temp
mit einem Wert T3 + T3' initialisiert,
der so bemessen ist, daß er
während
eines Intervalls, welches gleich der doppelten Dauer T3 des Rahmens
A2 ist, der von dieser Station ausgesendet wird, abwärts zählt. Das
Flag aut bleibt während
der gesamten Dauer T3 + T3' der
Abwärtszählung auf
null gesetzt, um die betrachtete Station daran zu hindern, das gemeinsame
Medium in Anspruch zu nehmen, wenn ein Kollisionsrisiko besteht.
-
Anschließend stellt
die Station während
einer Zeitspanne T4, die größer als
T3' ist, das Senden ein.
Nach dem Senden des Rahmens A2, aber während der Dauer T3 + T3' der Abwärtszählung, wird zum
Zeitpunkt tc1 eine Kollision festgestellt. Der Wert col des Kollisionszählers wird
somit um 1 erhöht.
Etwas später – zu einem
Zeitpunkt t3 – hat
die Station einen Rahmen A3 zu senden. Da das Flag aut den Wert
0 hat, ist die betrachtete Station nicht berechtigt, auf das gemeinsame
Medium zuzugreifen, außer
für den
Fall, daß kein
Kollisionsrisiko besteht. Sie muß daher zunächst feststellen, ob ein Kollisionsrisiko
besteht. Zu diesem Zweck vergleicht sie den aktuellen Wert col3
des Zählers
col mit dem gespeicherten Wert col2. Der aktuelle Wert col3 ist
gleich col2 + 1, was bedeutet, daß ein Kollisionsrisiko besteht
und die Station ihre Sendung aufschieben muß, bis das Flag aut wieder
den Wert 1 angenommen hat.
-
Zum
Zeitpunkt t5 erreicht der Zähler
temp wieder den Wert 0, das Flag aut wird wieder auf den Wert 1
gesetzt, und die Station sendet somit den Rahmen A3, der eine Dauer
T5 hat. Kurz vor der Sendung wird der aktuelle Wert col4 des Kollisionszählers gespeichert,
damit er später
als Bezugswert dienen kann. Andererseits wird der Verzögerungszähler temp
mit einem Wert initialisiert, der so bemessen ist, daß die Abwärtszählung bis
auf null für das
Intervall T5 + T5' andauert.
Da in diesem Beispiel als Maximalwert der mittleren Datenrate ein
Wert gleich der Hälfte
der Nenndatenrate des gemeinsamen Mediums gewählt wurde, wird der Initialisierungswert
so gewählt,
daß über ein
Intervall T5 + T5' gleich
der doppelten Dauer T5 des Rahmens A3, welchen diese Station senden
wird, abwärts
gezählt wird.
Das Flag aut bleibt während
der gesamten Dauer der Abwärtszählung auf
null gesetzt, um die betrachtete Station daran zu hindern, das gemeinsame Medium
in Anspruch zu nehmen, wenn ein Kollisionsrisiko besteht.
-
Nach
dem Senden des Rahmens A3, aber während der Dauer T5 + T5' der Abwärtszählung, wird
zum Zeitpunkt tc2 eine Kollision festgestellt. Der Wert col des
Kollisionszählers
wird somit um 1 erhöht.
Etwas später – zu einem
Zeitpunkt t5 – hat
die Station einen Rahmen A4 zu senden. Da das Flag aut den Wert
0 hat, ist die Station nicht berechtigt, auf das gemeinsame Medium
zuzugreifen, außer
für den Fall,
daß kein
Kollisionsrisiko besteht. Sie muß daher zunächst feststellen, ob ein Kollisionsrisiko
besteht. Zu diesem Zweck vergleicht sie den aktuellen Wert col5
des Zählers
col mit dem gespeicherten Wert col4. Der aktuelle Wert col5 ist
gleich col4 + 1, was bedeutet, daß ein Kollisionsrisiko besteht
und die Station ihre Sendung aufschieben muß, bis das Flag aut wieder
den Wert 1 angenommen hat. Zum Zeitpunkt t6 wechselt das Flag aut
auf 1, die Sendung des Rahmens A4 beginnt, das Flag aut wird wieder auf
null gesetzt, und der Zähler
temp wird wieder initialisiert.
-
Die
maximalen mittleren Datenraten der einzelnen Stationen können je
nach Station unterschiedlich sein. Die einzige notwendige Bedingung zur
Senkung des Kollisionsrisikos lautet, daß die Summe der für die einzelnen
Stationen jeweils gewählten
Maximalwerte kleiner als die mittlere Datenrate ist, die das gemeinsame
Medium unterstützen kann.
-
2 zeigt
die schematische Übersicht
zu einem Ausführungsbeispiel
des erfindungsgemäßen Netzwerks.
Es beinhaltet fünf
gleichartige Stationen S1, S2, S3, S4, S5, die alle mit einem gemeinsamen Medium
M verbunden sind, das durch eine individuelle Verbindung für jede Station
sowie einen "passiven
Hub" H gebildet
wird, an welchem diese Verbindungen zusammenlaufen. Diese Sterntopologie
ist zu einem Bus äquivalent,
der von Station zu Station verlaufen würde. Insbesondere kommt es
zur Kollision von zwei Rahmen, wenn zwei Stationen zum selben Zeitpunkt
zu senden versuchen. Jede Station, beispielsweise die Station S4,
beinhaltet
- – einen lokalen Bus BL,
- – einen
Prozessor P, beinhaltend einen mit dem lokalen Bus 8L verbundenen
Ein-/Ausgang, ein Register R zum Speichern des Flags aut und eine Warteschlange
F, in welche ein oder mehrere Rahmen eingereiht werden, die bereit
zum Versenden sind, aber nicht sofort gesendet werden können,
- – einen
als Austauschspeicher bezeichneten Speicher ME mit einem mit dem
lokalen Bus BL verbundenen Ein-/Ausgang,
- – eine
Schaltung CGI zur klassischen Interruptverwaltung, beinhaltend einen
Verzögerungszähler TEMP,
welcher über
einen Taktsignaleingang, der ein Taktsignal CK empfängt, einen
Dekrementierungs-Steuereingang und einen Initialisierungseingang,
die jeweils mit zwei Ausgängen
des Prozessors P verbunden sind, sowie einen mit dem Prozessor P
verbundenen Ausgang verfügt, über welchen
sie an den Prozessor ein Interruptsignal übergibt, das diesen veranlaßt, den
Wert temp des Zählers
TEMP zu dekrementieren, und
- – eine
Schnittstellenschaltung CI, die einen mit dem lokalen Bus BL verbundenen
Ein-/Ausgang sowie einen mit dem "Hub" H
verbundenen Ein-/Ausgang aufweist und ferner einen Kollisionszähler CC
beinhaltet.
-
3 zeigt
ein Flußdiagramm
der in diesem Ausführungsbeispiel
ablaufenden Operationen. Eine Anwendung gibt eine Sendeanforderung 1 aus.
Der Prozessor P nimmt das Lesen 2 des Wertes col des Kollisionszählers CC
vor. Anschließend
fragt er den Wert des Flags aut ab (3):
- – Hat das
Flag den Wert 1, so führt
der Prozessor P nacheinander folgende Operationen aus:
- – Operation 10 =
Zurücksetzen
des Flags aut auf 0;
- – Starten
des Vorgangs 11 zum Senden des zu sendenden Rahmens über den
Austauschspeicher ME und die Schnittstellenschaltung CI;
- – Speichern 12 des
Wertes col des Kollisionszählers
CC;
- – Erneute
Initialisierung 13 des Verzögerungszählers TEMP mit dem Wert T +
T', wobei T die
Zeit ist, die für
das Senden des zu sendenden Rahmens berechnet wurde und in diesem
Beispiel T' = T
gilt;
- – Ende 9 der
Operationsabfolge.
- – Hat
das Flag den Wert 0, so nimmt der Prozessor P einen Vergleich zwischen
dem von ihm soeben gelesenen Wert col und den von ihm gespeicherten
Vorgängerwert
col vor,
- – wobei
der Prozessor P die oben erwähnten Operationen 10,
..., 13, 9 ausführt, wenn diese beiden Werte
identisch sind, und
- – andernfalls
eine Operation 5 ausführt,
die darin besteht, den zu sendenden Rahmen in die Warteschlange
F zu schreiben, und dann das Ende 9 der Operationsabfolge
erreicht.
-
Außerdem liefert
die Schaltung CGI zur Interruptverwaltung in regelmäßigen Intervallen
ein Interruptsignal an den Prozessor P, das ihn anweist, den Wert
temp des Verzögerungszählers TEMP
zu dekrementieren, bis dieser den Wert 0 erreicht. Wenn er den Wert
0 erreicht, setzt der Prozessor P das Flag aut wieder auf 1 und
versendet über
das Medium M den ersten der in der Warteschlange F anstehenden Rahmen.