Arbitrierung bei verzögernder Buskopplung
Technisches Gebiet
Das Verfahren betrifft die Kopplung von Bussystemen mit Arbitrierung.
Stand der Technik
Bussysteme wie das "Small Computer System Interface" (SCSI) lassen eine Arbitrierung zu, d.h. eine dynamische priori¬ tätsgesteuerte Busbelegung durch jedes angeschlossene Gerät. Durch die vorgegebenen Reaktionszeiten ist die Länge dieses Bussystems beschränkt. Zwar sind Buskoppler möglich, die zwei kurze Bussegmente zum Beispiel über eine optische Ver¬ bindung störsicher verbinden,* durch die Laufzeit der Signale sind jedoch auch diese Verbindungen in ihrer Länge auf wenige Meter beschränkt, obwohl die optische Verbindung Ent- fernungen im Bereich von Kilometern zuließe.
Aufgabe der Erfindung ist es daher, eine Buskopplung bereit¬ zustellten, die zwei Bussegmente transparent, d.h. unter vollständiger Befolgung der vorgeschriebenen Protokolle, koppelt und auch bei großen Laufzeiten auf der Verbindung eine sichere Arbitrierung erlaubt.
Darstellung der Erfindung
Die Erfindung beruht auf der Beobachtung, daß arbitrierende Bussysteme einen Abbruch des Arbitrierungsablaufs zulassen. Die beiden, zwei Bussegmente koppelnde Koppeleinheiten über- mitteln einander bei Bedarf die Arbitrierungsberechtigung. Wird auf einem Bussegment eine Arbitrierung versucht, dessen Koppeleinheit die Arbitrierungsberechtigung hat, so wird die Arbitrierung normal durchgeführt. Besitzt die Koppeleinheit
die Berechtigung nicht, so fordert sie sie von der andere Koppeleinheit an und bricht gleichzeitig die Arbitrierun ab. Das Gerät, welches den Buszugriff versucht hat, wieder¬ holt diesen Versuch nach kurzer Zeit. War das entfernte Bus- segment untätig, so gibt die entfernte Koppeleinheit sofor die Arbitrierungsberechtigung ab; diese liegt dann bei nächsten Versuch des den Zugriff versuchenden Geräts vor. War es tätig, so ist über die Buskopplung auch das hiesig Segement tätig,* und das Gerät wiederholt den Zugriffs- versuch, nachdem der Bus untätig (frei) geworden ist.
KurzbeSchreibung der Zeichnungen
Es zeigen
Fig. 1 die Anordnung von zwei Bussegmenten mit zugehöri¬ gen Kopplern und drei Geräten,
Fig. 2 eine schematische Schaltung für einen Koppler,
Fig. 3 den Ablauf bei der erfindungsgemäßen Arbitrierung.
Detaillierte Beschreibung der Erfindung
In Fig. 1 wird die Struktur einer Buskopplung skizziert. Zwei Koppeleinheiten KEA und KEB sind über eine Verbindun LNK miteinander verbunden, deren Ausführung weiter unten er¬ läutert wird. SEGA und SEGB sind zwei Bussegmente, die durc die Koppeleinheiten KEA und KEB verbunden sind. Am Segment SEGA sind zwei Geräte DEV1 und DEV2 angeschlossen; am Seg¬ ment SEGB ist ein Gerät DEV3 angeschlossen. Weitere Gerät werden in ähnlicher Weise angeschlossen. Von den Busseg¬ menten sind nur die im folgenden wichtigen Datenleitunge D0..D8 und die Steuerleitungen SEL, BSY und I/O dargestellt. Weitere Steuerleitungen sind vorhanden, aber für die Erfin¬ dung ohne Bedeutung und daher aus Gründen der Übersichtlich- keit nicht dargestellt.
Eine Verbindung von zwei Geräten am selben Segement, z.B. von DEVl nach DEV2, erfolgt, ohne daß die Koppler KEA und KEB zur Übertragung der Nutzdaten benötigt werden. Eine Ver¬ bindung zwischen den Segmenten, z.B. von DEVl nach DEV3, er- fordert die Koppler für die Übertragung der Nutzdaten. Auch im ersteren Fall erfolgt jedoch eine Übertragung des Status,* die Übertragung der Nutzdaten ist der Einfachheit halber üb¬ lich und ohne Nachteile. Es wird für die folgende Beschrei¬ bung als Bussystem das "Small Computer System Interconnect", SCSI, verwendet, das beispielsweise in dem ANSI-Standard X3.131-1986 beschrieben und im folgenden als bekannt voraus¬ gesetzt wird.
Der SCSI-Bus kann bis zu acht verschiede Geräte betreiben, denen während der Arbitrierung eine der acht Datenleitungen D0..D7 zugeordnet ist. Die Datenleitungen werden durch Trei¬ ber mit offenem Kollektor betrieben, so daß eine geschaltete Veroderung der Signale auf dem Bus erfolgt und zulässig ist. Die mögliche zusätzliche Datenleitung für ein Paritäts¬ bit wird in diesem Beispiel nicht benutzt.
Weiterhin sind Signalleitungen BSY, SEL und I/O vorhanden. In der SCSI-Spezifikation sind weitere Steuerleitungen genannt, für die stellvertretend die Steuerleitung I/O dar¬ gestellt ist. Für die Arbitrierung sind nur die Signale SEL und BSY von Bedeutung. Auch diese Signale werden über Trei- ber mit offenem Kollekter in geschalteter Veroderung betrie¬ ben. Die Steuerleitungen können die beiden digitalen Zustände L oder "negated" und H oder "asserted" annehmen. Die verschiednen zulässigen Kombination der Zustände der Steuerleitungen werden als Buszustände bezeichnet.
Der Ruhezustand des Bussystems wird dadurch signalisiert, daß die Signale SEL und BSY beide L sind. Das Gerät DEVl fordert die Busbenutzung durch eine Arbitrierungszykluε an, indem es das Signal BSY auf H setzt und gleichzeitig das seiner Adresse entsprechende Bit auf den Datenleitungen aktiviert. Nach einer festen, vorbestimmten Wartezeit, der
"arbitration delay" von 2,2 μs, prüft das Gerät, ob ein Bi mit höherer Nummer aktiviert ist oder das selbst gesetzt Bit dasjenige der höchsten Nummer ist. Im ersten Fall ha ein Gerät höherer Priorität die Steuerung übernommen, i letzteren Fall gehört die Steuerberechtigung dem anfordern den Gerät. Das Gerät mit der Steuerberechtigung setzt da Signal SEL auf H und übernimmt die Steuerung des Bussystems. Damit ist die Arbitrierung beendet,* es folgen Buszuständ für den Datentransfer, die durch Übergang in den Ruhezustan IDLE abgeschlossen werden. Durch Setzen des Signals I/O un der weiteren Signale werden die Buszustände für den Daten transfer gesetzt und es wird mit Hilfe der Datenleitungen i bekannter Art eine Datenübertragung durchgeführt. Das Arbi trierungsverfahren stellt damit sicher, daß immer nur ei Gerät zur Zeit die Steuerungsfunktion des Busses übernimmt. Das andere Gerät wartet, bis der Ruhezustand wieder erreich ist, und versucht dann erneut, durch einen Arbitrierungs zyklus die Steuerberechtigung zu erwerben.
Die Koppler KEA überwachen kontinuierlich den Buszustand a dem ihnen zugeordneten Bus. Die Aktivierung von BSY durc das Gerät DEVl wird erkannt. Daraufhin wird über die Verbin dung LNK eine Nachricht an den entfernten Koppler KEB ge schickt, die den neuen Buszustand und den Zustand der Daten leitungen enthält. Die entfernte Koppeleinheit KEB schalte nun ihrerseits, sozusagen in Vertretung für das Gerät DEVl, den neuen Buszustand und setzt die Datenleitungen. Sofer zufällig gleichzeitig auf dem entfernten Bussegment SEGB da Gerät DEV3 den Bus zu belegen versucht, erkennt dies di entfernte Koppeleinheit und schickt eine Nachricht an di Koppeleinheit KEA, welche ihrerseits auf dem Bussegment SEG denselben Zustand wie auf dem Bussegment SEGB erzeugt und s das Gerät DEVl daran hindert, den Bus zu belegen. Es is klar, daß der Nachrichtenaustausch zwischen den Kopplern KE und KEB so schnell erfolgen muß, daß innerhalb der vorgege benen Zeitschranke von 2,4 μs zumindest eine Nachricht hin- und eine zweite zurückgeschickt werden kann. Vorgeschrieben
Protokoll- und Beruhigungszeiten verkürzen diese Intervall weiter. Damit ist die Laufzeit der Verbindung auf weniger als 200 ns beschränkt. Leitungsgebundene elektromagnetische Wellen wie auch Lichtleiter haben eine Verzögerungszeit von mehr als 5 μs pro Kilometer, so daß nach dem Stand der Technik eine Verbindung über 25m Länge nicht möglich ist.
In den nachfolgenden Datentransferphasen wird in gleicher Art von den Kopplern KEA und KEB jede Änderung des Buszu¬ stands erfaßt, über eine Nachricht dem jeweiligen anderen Koppler zugeleitet und von diesem auf den auf an ihn ange¬ schlossen Bus gelegt.
Eine Schaltung für einen Koppler ist in Fig. 2 schematisch dargestellt. Die Nachrichtenübertragung erfolgt über Licht¬ leiter 32, 40, deren Lichtsignale über optische Receiver 41 und Transmitter 31 des Typs V23804-E2-T5 und V23800-S2-T5 der Firma Siemens in elektrische Signale umgesetzt und von als "TAXI Chip" bezeichneten Seriell-Parallel-Wandlern 30, 42 der Fa. AMD des Typs AM 79168 und AM 79169 umgewandelt. Mit diesen Bauelementen kann jeder der beiden Koppler dem anderen Koppler eine zehn Bit breite Nachricht im Voll- Duplex-Betrieb übermitteln.
Die Steuerung 25 überwacht den Zustand des durch die Signal- leitungen SEL, BSY und I/O angezeigten Zustandes des gesteu¬ erten Busses 20, indem diese durch einen Umsetzer 26 codiert und in dem Vergleicher 27 mit dem bislang gültigen, im Spei¬ cher 28 gespeicherten Zustand verglichen wird. Bei Ungleich¬ heit wird die Zustandsnummer über die Verbindung 49 gelesen und über die Verbindung 51 in den Vergleichsspeicher ge¬ schrieben. Zugleich wird über die Verbindung 52 zwischen Steuerung 25 und einem Multiplexer diese neue Zustandnu mer an den Dateneingang des Sende-TAXI 30 gelegt, welcher an¬ schließend durch einen Strobe 53 zum Senden des Zustands veranlaßt wird. Unmittelbar danach wird der Multiplexer 29 zurückgeschaltet und durch einen zweiten Strobe zum Sende- TAXI auch der Wert der Datensignale übermittelt. Dabei wird
das 10-te Bit durch den Multiplexer so verdrahtet, daß es bei Datensignalen auf L und bei Statusnummern auf H liegt.
Auf der Empfangsseite werden die seriellen Signale im Empfangs-TAXI 42 parallel bereitgestellt und über einen Strobe 54 der Steuerung gemeldet, welche diese über die Ver¬ bindung 55 auswerten kann. Ist das 10-te Bit auf H, so liegt ein geänderter Status vor,* dieser wird intern von der Steuerung gespeichert und über die Verbindung 57 ein einen Speicher 45 eingeschrieben und setzt die neuen Status- Signale. Ist das 10-te Bit L, so liegt ein Datenwort vor, welches über das Strobe-Signal 56 in den Speicher 44 über¬ nommen und von dort auf den Datenbus 21 geschaltet. Dabei enscheidet das festgelegte Busprotokoll, ob, wie beschrie¬ ben, zunächst der neue Status und dann die neuen Daten oder umgekehrt, zunächst die neuen Daten und dann der neue Status aktiviert wird.
Es sind also zwei Arten von Nachrichten, die von den Kop¬ peleinheiten ausgetauscht werden: Datennachrichten, die einen geänderten Zustand des Datenbusses enthalten,* und Zu- Standsnachrichten, die einen genänderten Buszustand bezeich¬ nen. Da die Anzahl der Buszustände weit unterhalb der Anzahl der Datenzustände liegt, werden nicht alle Codierungs- möglichkeiten für Zustandsnachrichten ausgeschöpft.
Diese bislang beschriebenen Vorgänge sind für jede Buskopp- lung, also auch die nach dem Stand der Technik, zutreffend. Die Erfindung besteht in einem Verhalten der Steuerung, mit welcher diese anhand der Statusänderungen tätig wird. Der Ablauf ist in Fig. 3 dargestellt, soweit die Erfindung be¬ troffen ist.
Jede Steuerung befindet sich entweder im Zustand A, in wel¬ chem sie die Arbitrierungsberechtigung hat, oder im Zustand B, in dem sie die Arbitrierungsberechtigung nicht hat. Im Schritt 62 wartet eine Steuerung mit Arbitrierungbe- rechtigung auf eines von zwei Ereignissen, nämlich entweder
eine Zustandsänderung auf dem Bus, die einen Arbitrierungs- zyklus beginnt; als BUS AQ bezeichnet und als Zustands- wechsel über die Verbindungen 50 und 49 erlangt. Alternativ kann auch über die Verbindungen 54 und 55 von dem Empfangs- TAXI eine Nachricht TOK RQ eintreffen. Im ersteren Fall (BUS AQ) wird im Schritt BUS CYC, 64, ein normaler Buszyklus ab¬ gewickelt und die dazugehörigen Daten werden über die Ver¬ bindung verschick . Im zweiten Fall hat ein Gerät an dem mit der Gegenstelle verbundenen Bus einen Arbitrierungszyklus begonnen und, wie weiter unten dargestellt und durch einen gestrichelten Pfeil 68 dargestellt, eine Nachricht TOK-RQ geschickt. Diese Nachricht gehört nicht zu der Menge der zu¬ lässigen Zustandswechsel, sondern ist der Menge der noch nicht ausgeschöpften Codierungsmöglichkeiten entnommen. Die Steuerung erkennt dies und schaltet den Dateninhalt weder auf die Steuerleitungen noch auf den Datenbus, sonderen ver¬ wertet die Nachricht lediglich intern. Als Reaktion hierauf erzeugt die Steuerung ihrerseits eine Nachricht TOK GNT, schaltet den Multiplexer 29 entsprechend und sendet diese Nachricht an die Gegenstelle. Auch diese Nachricht ist der Menge der noch nicht ausgeschöpften Codierungsmöglichkeiten entnommen. Da die Steuerung keine Arbitrierungsberechtigung mehr besitzt, geht sie in den Zustand B, 61, ohne Arbitrie¬ rungsberechtigung über.
Dies ist der Zustand, in dem sich die Gegenstelle befand und im Schritt 63 auf eines von zwei Ereignissen wartete. Mit dem Eintreffen der durch eine gestrichelten Pfeiles 69 dar¬ gestellten Nachricht TOK GNT erhält die Steuerung die Arbi¬ trierungsberechtigung und geht in den Zustand A, 60, mit Ar- bitrierungsberechtigung über. Die dann möglichen Zustands¬ wechsel sind bereits beschrieben.
Alternativ zum Eintreffen der Nachricht TOK GNT kann bei ei¬ ner Station ohne Arbitrierungsberechtigung auch ein Gerät am eigenen Bus einen Arbitrierungszyklus beginnen. Dies stellt die Steuerung in besagter Weise fest. Durch Setzen der
Steuerleitungen über die Verbindung 57 und den Speicher- Treiber 45 wird, wie noch genauer beschrieben, der Arbitrie¬ rungszyklus abgebrochen. Gleichzeitig sendet die Steuerung, wie durch die gestrichelte Linie 68 angedeutet, im Schritt 67 eine Token-Anfrage TOK RQ an die entfernte Steuerung in derselben Art wie die Token-Abgabe. Bis zum Empfang der Nachricht TOK GNT bleibt die Steuerung im Zustand B, 61. Der Empfang der Token-Anfrage TOK RQ wird von der Gegenstelle wie oben beschrieben bearbeitet. Tritt bei einer Steuerung eine Token-Anfrage ein, während ein Buszyklus 64 durchge¬ führt wird, so wird diese Anfrage solange gespeichert, bis der Bus an der Steuerung im Ruhezustand ist, und dann erst die Berechtigung abgegeben. Entsprechend bricht die Station ohne Arbitrierungsberechtigung solange Buszyklen ab, bis die Token-Nachricht eingetroffen ist.
Das Abbrechen einer Arbitrierung ist durch frühzeitiges Set¬ zen des Signals SEL innerhalb der "bus clear delay" von 800ns möglich. Da dieser Vorgang von der Koppeleinheit an Hand des eigenen Status entschieden werden kann, kann er un- abhängig von der Laufzeit auf den Übermittlungsleitungen im¬ mer rechtzeitig erfolgen.
In der beschriebenen Kopplung wird auch bei einer Kommunika¬ tion zweier Geräte am demselben Bussegment der Busszustand auf dem entfernten Bussegment erzeugt, obwohl die dort ange- schlossenen Geräte die Daten nicht auswerten. Dies ist not¬ wendig, damit die Geräte auf dem entfernten Busssegment keine Arbitrierungszyklen einleiten. Bei einem SCSI-Bus, bei dem während der Arbitrierung die Zieladresse nicht bekannt ist und ein Abbruch nach der Arbitrierung nicht möglich ist, ist dies auch unvermeidlich.
In anderen Bussystemen, bei denen während der Arbitrierung auch die Zieladresse enthalten ist, kann jede Koppeleinheit so ausgebildet werden, daß sie eine, möglicherweise dyna¬ misch aufgebaute, Tabelle der an ihrem Bussegment ange- schlossenen Geräteadressen enthält und bei Verbindungen, die
auf dem Bussegment lokal abwickelbar sind, diese nicht wäh¬ rend der Arbitrierungsphase abbricht. Ist die Zieladress nicht in dieser Tabelle und hat der Koppler nicht die Arbi¬ trierungsberechtigung, bricht er die Arbitrierung ab und fordert die Berechtigung in beschriebener Weise an.
Anstelle der beschriebenen 10 Bit breiten Nachrichtenüber¬ mittlung kann beispielsweise auch eine 16 Bit breite Über¬ mittlung verwendet werden, bei der gleichzeitig Daten und Zustand übermittelt werden. In diesem Fall würde bei 8 Bit Daten und 1 Bit Parität für die Daten 7 Bit für den Zustand bleiben. Im Falle der beiden Nachrichten TOK RQ und TOK GNT ignoriert dann die Steuerung den Datenteil.
Als Kopplung ist anstelle einer Punkt-zu-Punkt-Verbindung auch ein Bussystem mit mehreren Teilnehmern möglich. Dabei ist dann durch die Adressierung in diesem Bussystem der An¬ forderer eines TOK RQ bekannt. An diesen wird dann das TOK GNT geschick . Insbesondere das fiberoptische System FDDI ist wegen der hohen Übertragungsrate und garantierten Über¬ mittlungszeit besonders geeignet.
Weiterhin kann die Erfindung eingesetzt werden, wenn die Übermittlungszeit auf der die Koppler verbindenden Einrich¬ tung nicht bekannt ist. Dies ist beispielsweise der Fall, wenn die Kopplung über Ethernet bzw. IEEE 802.3 erfolgt. Bei der Nachrichtenübermittlung über Ethernet beispielsweise kann durch Kollisionen auf dem Netzwerk ein weiterer Sende¬ versuche notwendig sein, bis eine Nachricht zu der entfern¬ ten Koppeleinheit abgesendet werden kann. Damit erlaubt die Erfindung auch eine Kopplung von SCSI-Bussystemen über eine Ethernet-Verbindung, die wegen der genannten Eigenschaft bislang gar nicht möglich war.
Damit erlaubt die Erfindung auch die Verbindung von drei oder mehr Bussegmenten. Nur einer der Koppler hat die Arbi¬ trierungsberechtigung. Entweder wird die Rundruf-Eigenschaft ("broadcast") des Netzwerks verwendet, um die Anforderung an
alle anderen Koppler gleichzeitig zu senden. Oder ein die Berechtigung abgebender Koppler sendet den anderen Kopplern eine dritte Nachricht, daß die Berechtigung an einen anderen Koppler übergegangen ist.
Die Erfindung wurde an Hand des SCSI Bussystems beschrieben, bei dem häufig auf eine Arbitrierungsphase ein dergegenuber langer Datentransferphase folgt, während derer das sendende Gerät den Bus nicht freigibt. Während der Datenübertragungs- phase wird eine durch konkurrierende Zugriffsversuche nicht gestörte Verbindung erwartet. Diese Betrachtung gilt in gleicher Art für andere Bussysteme wie Multibus II oder VME Bus, die gleichfalls eine Arbitrierung vorsehen und deren Abbruch zulassen. Auch das I L System, bei dem eine Abitrie- rung während der Adressphase stattfindet, kann durch die Er- findung gekoppelt werden.
Es ist ferner denkbar, daß die zu verbindenden Bussysteme nicht gleich sind, aber während der Arbitrierung abbrechbar sind. Eine der beiden Koppeleinheiten muß dann eine Proto¬ kollwandlung durchführen. Dies kann erfolgen, indem zu jedem Buszustand des ersten der korrespondierende Buszustand des zweiten Bussystems in einer Tabelle niedergelegt ist und die wandelnde Koppeleinheit die Zustände nach dieser Tabelle in bekannter Programmiertechnik umsetzt. Insbesondere ist so eine Verbindung von SCSI-I mit 8-Bit Datenbreite nach SCSI- II mit 16-Bit Datenbreite möglich.