-
Die vorliegende Erfindung betrifft eine Vorrichtung
zur Verwaltung der Zugriffspriorität zu gemeinsamen
Ressourcen funktionaler Moduln, die in einer Vielzahl von lokalen
Einheiten verteilt sind und in jeder von diesen eine lokale
"Daisy Chain" bilden.
-
Sie betrifft insbesondere, aber nicht ausschließlich,
die Kopplung mehrerer Kästen, die je eine begrenzte Anzahl
von Moduln oder Instrumentations-Karten enthalten.
-
Die Moduln jedes Kastens sind miteinander gemäß dem
Prinzip einer Daisy Chain gekoppelt und bieten so eine
Verwaltung der Prioritäten der Moduln des Kastens, um zu lokal
verfügbaren Ressourcen Zugriff zu erhalten.
-
Wenn die Anzahl zu verwendender Moduln die Kapazität
eines einzelnen Kastens überschreitet, wird es notwendig,
mehrere miteinander gekoppelte Kästen zu verwenden.
-
Eine erste Lösung besteht darin, die Daisy Chains
aller Kästen miteinander zu koppeln, damit sie nur eine
einzige Daisy Chain bilden.
-
Wenn die Verwendung der Daisy Chain es erfordert,
eine Verbindung zwischen Moduln herzustellen, hat diese
Lösung den Nachteil, die Verbindungskanäle aller Kästen zu
mobilisieren.
-
Eine andere Lösung besteht darin, eine
Arbiter-Vorrichtung zu verwenden, die nacheinander alle Kästen abfragt
und somit die Daisy Chain jedes Kastens aktiviert, um den
anfordernden Kasten zu bestimmen. Diese Lösung hat den
Nachteil, zeitaufwendiger zu sein, da die Suche nach dem
anfordernden Modul mit der größten Priorität mehrere Abfragen
erfordert.
-
Die Erfindung hat zum Ziel, diese Nachteile zu
beseitigen.
-
Sie schlägt allgemein eine Vorrichtung zur Verwaltung
der Zugriffspriorität zu gemeinsamen Ressourcen funktionaler
Moduln vor, die in einer Vielzahl von lokalen Einheiten
verteilt sind und in jeder dieser Einheiten eine lokale Daisy
Chain bilden, in der jeder funktionale Modul einen Schalter
aufweist, der in Reihe mit den Schaltern der vorhergehenden
und/oder nachfolgenden Moduln der Kette verbunden ist, wobei
dieser Schalter mindestens zwei Zustände aufweist:
-
- einen geschlossenen Zustand, in dem er in Abwesenheit
einer Anforderung von dem Modul, in dem er sich befindet, die
Kette schließt,
-
- einen offenen Zustand, in dem er die Kette unterbricht,
wenn aufgrund einer Anforderung der Modul eine Antwort
erwartet, die vom ersten Modul der Kette ausgegeben wird, der
die Anforderungen empfängt und eine Arbiter-Funktion hat.
-
Erfindungsgemäß ist diese Vorrichtung dadurch
gekennzeichnet, daß
-
- die lokalen Einheiten miteinander so gekoppelt sind, daß
sie eine externe Daisy Chain bilden, die gemäß einem Prinzip
ähnlich dem der lokalen Daisy Chain funktioniert,
-
- jede lokale Einheit einen Koppler enthält, der folgende
Funktion hat:
-
. entweder die Kontinuität der externen Daisy Chain zu
gewährleisten, wenn kein Modul der lokalen Einheit Anforderer
ist,
-
. oder die externe Daisy Chain zu unterbrechen und sie mit
der lokalen Daisy Chain zu verbinden, wenn ein Modul der
lokalen Einheit diese Anforderung gestellt hat, und
umgekehrt, wenn ein Modul der lokalen Einheit eine Ressource
angefordert hat, die in einer anderen lokalen Einheit zur
Verfügung steht.
-
Nachfolgend wird eine Ausführungsform der Erfindung
anhand der beiliegenden Zeichnungen als nicht einschränkend
zu verstehendes Beispiel näher erläutert.
-
Figur 1 zeigt schematisch eine Daisy Chain, die von
einer Einheit von Moduln gebildet wird, die in einem Kasten
B angeordnet sind.
-
Figur 2 zeigt das Schaltbild der Umschaltvorrichtung,
die es jedem Modul ermöglicht, auf die Daisy Chain
einzuwirken.
-
Figur 3 zeigt das Schaltbild der Koppelvorrichtung,
die die Kopplung mehrerer Kästen ermöglicht.
-
Figur 4 zeigt das Schaltbild der Kopplung mehrerer
Kästen in Form einer Daisy Chain mit Hilfe von
erfindungsgemäßen Koppelvorrichtungen.
-
Figur 5 zeigt schematisch ein Beispiel für einen Bus,
dessen Struktur im wesentlichen dem Bus VME entspricht, und
seinen Anschluß an einen Modul oder an eine
Koppelvorrichtung.
-
Ein Kasten B gemäß Figur 1 enthält mehrere Moduln (1,
2, 3, 4), die mittels der lokalen Busleitung BL (gestrichelt
dargestellt) in Form einer Daisy Chain miteinander verbunden
sind.
-
Jeder Modul besitzt mindestens drei Klemmen IN, RQ
und OUT zur Verbindung mit den anderen Moduln.
-
Der lokale Bus BL besteht aus mindestens zwei
Leitungen. Die erste Leitung 5 verbindet die Klemmen RQ jedes
Moduls mit der Klemme IN des Moduls A, der sich am Anfang der
Kette befindet und als Arbiter wirkt. Diese Leitung wird
verwendet, um die von den Moduln 2, 3 und 4 kommenden
Anforderungen an den Arbiter A zu übertragen.
-
Die aus den Elementen 6, 7, 8 bestehende zweite
Leitung verbindet die Klemme OUT jedes Moduls mit der Klemme IN
des folgenden Moduls und bildet so die Kette. Diese Leitung
wird verwendet, um die von Arbiter-Modul A kommenden
Genehmigungen an die anderen Moduln der Kette zu übertragen.
-
Jeder Modul ist mit einer Schaltvorrichtung gemäß
Figur 2 versehen, die aus einem Doppelschalter 9 besteht,
der mindestens zwei Zustände aufweist:
-
- einen geschlossenen Zustand, in dem die Klemme IN mit der
Klemme OUT verbunden und die Klemme RQ offen ist und dem
Arbiter-Modul A anzeigt, daß der Modul keine Anforderung
durchgeführt hat, und
-
- einen offenen Zustand, in dem die Klemme IN nicht mit der
Klemme OUT verbunden ist und ein Signal an der Klemme RQ
gesendet wird, das dem Arbiter-Modul A angibt, daß der Modul
Anforderer ist.
-
Der Betrieb der Daisy Chain kann folgendermaßen
beschrieben werden:
-
Wenn ein Modul eine Anforderung ausführt, indem er
ein Signal an seiner Klemme RQ aussendet, nimmt seine
Schaltvorrichtung 9 den offenen Zustand ein. Der Arbiter-
Modul A empfängt diese Anforderung, und, wenn er sie
erfüllen will, sendet er ein Signal an seiner Klemme OUT. Dieses
Signal wird dann von jedem Modul der Kette empfangen und
weiterübertragen bis zum ersten Modul, der die Kette
geöffnet und somit eine Anforderung ausgeführt hat.
-
So entspricht der am meisten prioritäre Modul, d.h.
der Modul, der als erster bedient wird, dem Anforderer, der
dem Arbiter-Modul A am nächsten ist.
-
Figur 4 zeigt drei Kästen B1, B2, B3 ähnlich dem in
Figur 1 dargestellten Kasten B, die so gekoppelt sind, daß
sie eine Daisy Chain ähnlich der bilden, die in Figur 1
gezeigt ist.
-
Hierzu muß jeder Kasten über eine Koppelvorrichtung
C1, C2, C3 verfügen, die es ermöglicht, die lokalen
Busleitungen BL1, BL2 und BL3 jedes Kastens mit dem externen Bus
BE (gestrichelt dargestellt) zu verbinden, um die
Kontinuität zwischen den lokalen Daisy Chains und der externen Daisy
Chain zu gewährleisten, wenn dies notwendig ist.
-
Gemäß dem in Figur 4 gezeigten Schaltbild verhält
sich jede Koppelvorrichtung gegenüber dem externen Bus BE
ähnlich wie ein Modul eines Kastens gegenüber seinem lokalen
Bus.
-
Da der Koppler C1 sich am Anfang der Kette gegenüber
dem externen Bus BE befindet, dient er außerdem als Arbiter
der Busleitung BE.
-
Die Koppelvorrichtung, wie sie in Figur 3 dargestellt
ist, besteht aus zwei Schaltern 10 und 11.
-
Der Schalter 10 ermöglicht es, die an den externen
Bus BE angeschlossene Klemme IN' zu verbinden mit:
-
- entweder der an den gleichen Bus angeschlossenen Klemme
OUT', wenn der Kasten nicht Zielkasten ist,
-
- oder im gegenteiligen Fall mit der an den lokalen Bus BL
des Kastens angeschlossenen Klemme RQ".
-
Der Schalter 11 ermöglicht es, die an den lokalen Bus
BL angeschlossene Klemme IN" zu verbinden mit:
-
- entweder der an den gleichen Bus angeschlossenen Klemme
OUT", um die Kontinuität der auf dem lokalen Bus BL
aktivierten Daisy Chain zu gewährleisten,
-
- oder mit der an den externen Bus BE angeschlossenen Klemme
RQ', wenn ein Modul des den Koppler enthaltenden Kastens
eine Anforderung an einen Modul gesendet hat, der sich in
einem anderen Kasten befindet.
-
Der in Figur 5 dargestellte Bus BX ermöglicht es,
fünf Daisy Chains herzustellen:
-
- eine erste Daisy Chain mit Hilfe der Klemmen IACKIN, IACK
und IACKOUT, die der Übertragung der
Unterbrechungsbestätigungen zugeordnet werden kann, und
-
- vier weitere Daisy Chains mit Hilfe der Klemmen BGIN, BREQ
und BGOUT, wobei jede dieser Klemmen aus vier Drähten be
steht, die dem Transfer der Anforderungen BREQ und der
Zugriffs-Genehmigungen BGIN, BGOUT zum Bus BX zugeordnet
werden können.
-
Er umfaßt ebenfalls die sieben Leitungen IRQ zur
Unterbrechungsanforderung, die Leitung BUSY, die angibt, daß
der Bus besetzt ist, die Leitung BERR, die angibt, daß ein
Fehler auf dem Bus erfaßt wurde, die Leitung DTACK, die
einen Datentransfer validiert, sowie die Leitungen, die für
den Datentransfer DT und den Adressentransfer AD verwendet
werden.
-
Das Prinzip der Erfindung ist besonders nützlich für
die Bestätigung der Unterbrechungen in einem System, das aus
Kästen gemäß Figur 4 besteht, die durch einen externen Bus
BE des Typs gekoppelt werden, der in Figur 5 dargestellt
ist, und je eine Einheit von Moduln aufweisen, die von einem
lokalen Bus des gleichen Typs miteinander gekoppelt werden.
-
Wenn in einem solchen System ein Modul D eine
Unterbrechung anfordert, können zwei Fälle auftreten:
-
- entweder befindet sich der Kontrollmodul C der
angeforderten Unterbrechung im gleichen Kasten wie der anfordernde
Modul D, wie in Figur 1 gezeigt,
-
- oder der Kontrollmodul C befindet sich in einem anderen
Kasten als der anfordernde Modul D, wie in Figur 4
dargestellt.
-
Der Bestätigungsprozeß der Unterbrechung läuft
folgendermaßen ab:
-
In beiden Fällen fordert der Kontrollmodul C der
aktivierten Unterbrechung Zugriff zum lokalen Bus BL, indem
er ein Signal auf einer der vier Leitungen BREQ der
Busleitung BL sendet.
-
Dieses Signal kommt direkt beim Arbiter-Modul A an,
der sich am Anfang der Kette im Kasten befindet.
-
Wenn der Arbiter-Modul A beschließt, den Zugriff zum
Bus zu genehmigen, sendet er ein Signal an der Klemme BGOUT,
die der für die Forderung verwendeten Leitung BREQ
entspricht.
-
Dieses Signal wird an der entsprechenden Klemme BGIN
empfangen und von der Klemme BGOUT über jeden Modul des
Kastens bis zum ersten anfordernden Modul der Busleitung BL
rückübertragen, gemäß der Reihenfolge, in der sie in der
Kette auftreten.
-
Wenn der Kontrollmodul C der Unterbrechung die
Zugriffs-Genehmigung zum Bus empfängt, erklärt er ihn besetzt,
indem er ein Signal auf der Leitung BUSY der Busleitung
sendet, und schreibt die Nummer der Unterbrechung (von 1 bis 7)
auf die Adressen-Transferleitungen AD der Busleitung.
-
Er aktiviert zur gleichen Zeit das Signal IACK der
Bestätigung der Unterbrechung, das direkt am Arbiter-Modul A
an der Klemme IACKIN ankommt.
-
Der Arbiter A aktiviert die dem Signal IACK
zugeordnete Daisy Chain, indem er an seiner mit dem lokalen Bus BL
verbundenen Klemme IACKOUT ein Signal zum folgenden Modul in
der Kette sendet.
-
Der Übertragungsprozeß des Signals IACK ist analog
dem, der für die Übertragung der Genehmigung zum Zugriff zum
Bus verwendet wird.
-
Im ersten Fall, d.h. wenn der Anforderer der
Unterbrechung sich im gleichen Kasten befindet, wird das Signal
IACKIN schließlich vom Anforderer D der Unterbrechung
empfangen, dessen Nummer auf den Adressenleitungen AD der
Busleitung vorhanden ist, der dem Arbiter A in der Kette am
nächsten liegt.
-
Der die Unterbrechung anfordernde Modul D präsentiert
dann den Vektor der Unterbrechung auf den
Datentransfer-Leitungen der Busleitung BL, die er durch das Signal DTACK
validiert, wodurch es dem Kontrollmodul C ermöglicht wird, den
Bus als frei zu erklären, indem er das entsprechende Signal
auf der Leitung BUSY der Busleitung BL sendet.
-
Dieser Prozeß entspricht dem, der durch die Norm VME
definiert ist.
-
Wenn im zweiten Fall der Kontrollmodul C der
Unterbrechung sich nicht im gleichen Kasten wie der anfordernde
Modul D befindet, der die Unterbrechung aktiviert hat, wird
das Signal IACKIN vom Kopplermodul C2 des Kastens B2
empfangen, wo sich der Kontrollmodul C befindet, der dann
gegenüber dem externen Bus BE das gleiche Verhalten annimmt wie
der Kontrollmodul einer Unterbrechung:
-
Der Kopplermodul C2 fordert Zugriff zum externen Bus
BE, indem er ein Signal an die Klemme BREQ der Busleitung BE
sendet, das direkt vom Arbiter-Modul C1 der Busleitung BE
empfangen wird. Wenn dieser beschlossen hat, Zugriff zum Bus
BE zu genehmigen, aktiviert er die Daisy Chain der Zugriffs-
Genehmigung zum Bus BE zwischen den Kopplermoduln jedes
Kastens, indem er ein Signal an die mit dem Bus BE verbundene
Klemme BGOUT sendet.
-
Wenn der Kopplermodul C2 die Genehmigung zum Zugriff
zum Bus BE empfängt, erklärt er ihn besetzt, indem er ein
Signal auf der Leitung BUSY sendet, überträgt die
Unterbrechungsnummer der Adressentransfer-Leitungen AD der lokalen
Busleitung BL2 zu den Adressentransfer-Leitungen AD der
Busleitung BE, sendet das Signal IACK an die Busleitung BE und
wartet auf den Vektor der Unterbrechung.
-
Das Signal IACK kommt dann direkt beim Arbiter-Modul
C1 über den externen Bus BE an. Je nachdem, ob der die
Unterbrechung fordernde Modul sich im Kasten B1 befindet oder
nicht, sendet der Koppler- und Arbiter-Modul C1 das Signal
IACK entweder auf dem lokalen Bus BL1 oder auf dem externen
Bus BE.
-
Wenn der Kopplermodul C3 des Kastens B3, der den
anfordernden Modul D enthält, das Signal IACKIN empfängt,
verhält er sich wie der Anforderer der Unterbrechung
gegenüber dem externen Bus BE und wie der Kontrollmodul gegenüber
dem lokalen Bus BL3:
-
Er fordert Zugriff zum Bus BL3, indem er ein Signal
auf einer der vier Leitungen BREQ sendet, das direkt am
Arbiter-Modul A3 ankommt. Wenn der Modul A3 beschlossen hat,
den Zugriff zum Bus BL3 zu genehmigen, sendet er ein Signal
an der entsprechenden Klemme BGOUT.
-
Wenn der Modul C3 ein Signal an seiner Klemme BGIN
empfängt, die der aktivierten Leitung BREQ entspricht,
erklärt er den Bus BL3 besetzt, indem er ein Signal auf der
Leitung BUSY der gleichen Busleitung aussendet, überträgt
die Nummer der Unterbrechung der Busleitung BE zum Bus BL3,
und sendet ein Signal auf der Leitung IACK der Busleitung
BL3, um die Bestätigung der Unterbrechung zu übertragen.
-
Das Signal IACK wird dann direkt vom Modul A3
empfangen,
der dann die zugehörigen Daisy Chain auf dem Bus BL3
aktiviert.
-
Wenn der die Unterbrechung anfordernde Modul D das
der von ihm angeforderten Unterbrechung entsprechende Signal
IACK empfängt, präsentiert er den Vektor der Unterbrechung
auf den Datentransfer-Leitungen DT der Busleitung BL3, die
er durch das Signal DTACK validiert, wodurch es dem
Kontrollmodul C ermöglicht wird, den Bus als frei zu erklären,
indem er das entsprechende Signal auf der Leitung BUSY
sendet.
-
Der Kopplermodul C3 überträgt den Vektor der
Unterbrechung der lokalen Busleitung BL3 zum externen Bus BE.
-
Der Kopplermodul C2 überträgt dann den Vektor der
Unterbrechung der externen Busleitung BE an den lokalen Bus
BL2, den er validiert, indem er das Signal DTACK sendet.
-
Ein wichtiger Vorteil der soeben beschriebenen
Erfindung besteht darin, daß während der Bestätigung einer durch
einen in einem anderen Kasten befindlichen Anforderer
aktivierten Unterbrechung durch einen Kontrollmodul nur die
lokalen Busleitungen der beiden betroffenen Kästen besetzt
wurden. Der lokale Betrieb der anderen Kästen wurde folglich
nicht unterbrochen.