-
Diese Erfindung bezieht sich auf die Kommunikation in
Datenverarbeitungssystemen und im Besonderen auf ein
Datenverarbeitungssystem, das eine Vielzahl von Einheiten aufweist, die
an einen gemeinsamen Informationsbus angeschlossen sind, der
den Informationstransfer zwischen den Einheiten übernimmt.
-
Kommunikationen zwischen Datenverarbeitungssystemen sind mit
den gesteigerten Fähigkeiten der einzelnen
Datenverarbeitungseinheiten immer komplexer geworden. Diese
Kommunikationsfähigkeit wird allgemein mit dem Begriff Vernetzung
bezeichnet. Der spezielle Interessensbereich dieser Erfindung
ist ein einzelner Informationsbus, der mit mehreren
Prozessoreinheiten und mehreren Peripherie-Einheiten verbunden ist.
Traditionell ist eine Prozessoreinheit so programmiert, daß
sie die Kommunikationen zwischen den Verarbeitungseinheiten
und den Peripherie-Einheiten über den Bus regelt. In der
Netzwerk-Terminologie heißt der die Kommunikation steuernde
Prozessor Busmaster, die übrigen Kommunikationseinheiten
werden als Slaves bezeichnet. In einer solchen Netzanordnung
können Kommunikationstransaktionen auf dem Bus nur vom
Busmaster eingeleitet werden. Die Slave-Einheiten können nur auf
Kommunikationen vom Busmaster reagieren. Bei einer Variation
dieses Netzwerktyps kann die Verantwortung des Busmasters auf
die Verarbeitungseinheiten übertragen werden. Auf diese Weise
kann von jedem Prozessor ein Peripheriegerät adressiert
werden. Wenn zwei Prozessoren gleichzeitig die Funktion des
Busmasters übernehmen wollen, kann es auf dem Informationsbus zu
einer Kollision kommen. Daher wird über eine
Zuteilungsschaltlogik einer der Prozessoren, die den
Kommunikationsbus anfordern, zum Busmaster bestimmt.
-
Ein Beispiel des oben beschriebenen Datenverarbeitungssystems
wird in der U.S.-Patentschrift 3,997,896 mit dem Titel "Data
Processing System Providing Split Bus Cycle Operation"
beschrieben; hierin wird ein Datenverarbeitungssystem mit einem
gemeinsamen Bus und mehreren Einheiten beschrieben, die so
miteinander verbunden sind, daß der Informationstransfer
asynchron erfolgt, und bei denen über einen Logikkreis eine
geteilte Buszyklusoperation möglich ist, bei der die
Mastereinheit, die während eines ersten Buszyklus Informationen
von einem Slave anfordert, diese Information von dem Slave
während eines späteren Buszyklus erhalten kann. Dies wird von
dem Slave in dem späteren Buszyklus dadurch erreicht, daß er
einen Buszuteiler auffordert, den Slave zum Busmaster zu
bestimmen, damit der Slave diese Information dem ursprünglichen
Busmaster zur Verfügung stellen kann. Eine weitere
Beschreibung dieser Art von Busarchitektur befindet sich in der US-
Patentschrift 4,181,974 mit dem Titel "System Providing
Multiple Outstanding Information Request" und der
US-Patentschrift 4,236,203, mit dem Titel "System Providing Multiple
Fetch Bus Cycle Operation".
-
In jeder der oben genannten Patentschriften muß die Slave-
Einheit zu dem Zeitpunkt Busmaster werden, an dem die
ursprünglich angeforderte Information verfügbar wird. Einige
Slave-Einheiten haben jedoch nicht die Fähigkeit, die Rolle
des Busmasters zu übernehmen. Es ist daher eine Aufgabe der
vorliegenden Erfindung, ein Datenverarbeitungssystem zur
Verfügung zu stellen, das einen Kommunikationsbus umfaßt, der es
einem Slave, der nicht Busmaster werden kann, ermöglicht, die
geforderte Information während späterer Buszyklen
bereitzustellen.
-
Gemäß der vorliegenden Erfindung, wie in Anspruch 1
definiert, wird ein Datenverarbeitungssystem zur Verfügung
gestellt,
das eine Vielzahl von Busmaster-Einheiten und eine
Vielzahl von Bus-Slave-Einheiten aufweist, die mit einem
asynchronen Kommunikationsbus verbunden sind, und eine
Zuteilungsschaltung, die eine erste Busmaster-Einheit bestimmt, um
die Kommunikation zwischen der Vielzahl von
Busmaster-Einheiten und Slave-Einheiten zu regeln, bei der, nachdem die erste
Busmaster-Einheit in einer Operation Informationen von einer
ersten Bus-Slave-Einheit angefordert hat, die erste
Busmaster-Einheit die Bussteuerung abgibt und sie an eine zweite
Busmaster-Einheit weitergibt, dadurch gekennzeichnet, daß
die erste Bus-Slave-Einheit ein erstes Mittel aufweist, das,
wenn die erste Bus-Slave-Einheit die Operation abgeschlossen
hat, ein erstes Signal an die zweite Busmaster-Einheit
sendet, um zu melden, daß die erste Bus-Slave-Einheit eine
temporäre Kommunikation mit der ersten Busmaster-Einheit
anfordert; die zweite Busmaster-Einheit umfaßt ein zweites Mittel,
das in Antwort auf den Empfang des ersten Signal s ein zweites
Signal an die erste Busmaster-Einheit sendet, das die
vorübergehende Abgabe der Bussteuerung durch die zweite
Busmaster-Einheit an die erste Busmaster-Einheit meldet, ohne
Kommunikation mit der Zuteilungsschaltung; und die erste
Busmaster-Einheit ein drittes Mittel aufweist, das bei Empfang des
ersten und zweiten Signals ein drittes Signal ausgibt, das
die Einleitung eines Datentransfers von der ersten Bus-Slave-
Einheit zu der ersten Busmaster-Einheit meldet, wobei das
dritte Mittel bei Abschluß der Operation das dritte Signal
nicht mehr sendet, so daß die Bussteuerung an den zweiten
Busmaster zurückgegeben wird.
-
In dem bevorzugten Ausführungsbeispiel ist eine
Kommunikations-Schnittstelle mit mehreren Einheiten verbunden, die die
Kommunikation über einen Kommunikationsbus regeln können. Mit
diesem Kommunikationsbus sind außerdem mehrere
Peripheriegeräte verbunden. Die Schnittstelle zum Kommunikationsbus für
jede angeschlossene Einheit umfaßt eine Schaltlogik zur
Ausführung
eines Protokolls für den ordnungsgemäßen
Informationstransfer über den Kommunikationsbus. In dieser
Kommunikationsschaltlogik befindet sich eine Zuteilungsschaltung,
welche eine der potentiellen Busmaster-Einheiten zum Busmaster
bestimmt. Die übrigen Einheiten werden zu Slave-Einheiten
bestimmt, die protokollgemäß auf den Busmaster reagieren
müssen. Diese Kommunikationsbusschaltlogik hat außerdem die
Fähigkeit, eine Anforderung von einer beliebigen Slave-Einheit
zu empfangen, um einen potentiellen Busmaster vorübergehend
zum temporären Busmaster zu bestimmen, damit ein temporärer
Kommunikationsaustausch stattfinden kann. Nachdem der
temporäre Kommunikationsaustausch abgeschlossen ist, wird der
erste Busmaster dann wieder zum Busmaster bestimmt. In diesem
Ausführungsbeispiel muß der Busmaster auf dem Bus ein
Zeitgebersignal senden. Wird die Ernennung des Busmasters geändert,
sendet der erste Busmaster dieses Zeitgebersignal nicht mehr,
und der neue Busmaster beginnt mit der Sendung dieses
Zeitgebersignals.
-
In dem bevorzugten Ausführungsbeispiel enthalten die
Busschnittstellen-Schaltkreise an jeder angeschlossenen Einheit
eine Schaltlogik, die dieser Einheit Informationen vom Bus
zur Verfügung stellt, plus eine Schaltlogik, die eine
Zwischenverbindung zu den anderen
Kommunikationsbus-Schnittstellen herstellt, um den anderen Einheiten Informationen zur
Verfügung zu stellen. Diese Zwischenverbindung von
Kommunikationsbus-Schnittstellen ermöglicht einen Austausch von
Kommunikationsbus-Steuersignalen zwischen den Busschnittstellen,
um zu ermöglichen, daß jede Einheit die Kommunikation
protokollgemäß durchführen kann. Die vorliegende Erfindung ist
insbesondere auf die Herstellung einer temporären
Kommunikation zwischen zwei Einheiten, von denen keine der momentane
Busmaster ist, ausgerichtet. Diese wird als überlappender
Buskommunikationszyklus bezeichnet. In dem vorliegenden
Ausführungsbeispiel hat eine der Slave-Einheiten die Fähigkeit,
komplexe Operationen durchzuführen, die, bezogen auf die
Buszyklen, lange dauern, und die für ihre Ausführung
normalerweise eine lange Zugriffszeit benötigen würden. Ein erster
Busmaster kann eine Operation mit dem Slave mit der langen
Zugriffszeit einleiten und die Bussteuerung dann an einen
neuen Busmaster weitergeben. Wenn der Slave mit der langen
Zugriffs zeit die betreffende Operation abgeschlossen und die
für den ersten Busmaster bestimmte Antwort erhalten hat,
sendet er ein Signal auf dem Kommunikationsbus, um den neuen
Busmaster darauf aufmerksam zu machen, daß ein temporärer
Kommunikationszyklus zu dem ersten Busmaster angefordert
wird. Gemäß dieser Erfindung gibt der neue Busmaster dann die
Bussteuerung an den ersten Busmaster ab, der dann die Antwort
von dem Slave mit der langen Zugriffszeit erhält. Nachdem die
Antwort des Slave mit der langen Zugriffs zeit empfangen
wurde, nimmt der neue Busmaster die Bussteuerung wieder auf.
-
In diesem Ausführungsbeispiel fordert das Protokoll zur
Vereinfachung dieser temporären Kommunikation, daß der Slave mit
der langen Zugriffs zeit auf dem Kommunikationsbus ein Signal
sendet, welches sowohl von dem neuen Busmaster als auch von
dem ursprünglichen Busmaster empfangen wird. Der neue
Busmaster gibt dann ein zweites Zeitgebersignal aus, welches von
dem ursprünglichen Busmaster empfangen wird. Der
ursprüngliche Busmaster gibt dann ein drittes Zeitgebersignal aus,
welches den Datentransfer von dem Slave mit der langen
Zugriffszeit zu dem ersten Busmaster einleitet. Nachdem diese
temporäre Kommunikation abgeschlossen ist, sendet der erste
Busmaster dieses Zeitgebersignal nicht mehr, wodurch der neue
Busmasterin die Lage versetzt wird, die Bussteuerung wieder
zu übernehmen.
-
Um die Erfindung besser verständlich zu machen, soll nun
unter Bezugnahme auf die beiliegenden Zeichnungen ein
bevorzugtes Ausführungsbeispiel beschrieben werden; es zeigt:
-
Fig. 1 ein Blockdiagramm eines Kommunikationsbusses, der mit
einem Busmaster, mehreren potentiellen Busmastern und
mehreren Slaves, darunter ein Slave mit langer Zugriffszeit,
verbunden ist;
-
Fig. 2 ein Blockdiagramm der Busschnittstellen-Schaltlogik
für einen Busmaster oder einen potentiellen Busmaster;
-
Fig. 3 ein Blockdiagramm der Busschnittstellen-Schaltlogik
für eine Slave-Einheit;
-
Fig. 4A ein Zeitgeber-Diagramm, in dem die zeitliche
Steuerung für die erste Kommunikation zwischen einem ersten
Busmaster und einem Slave mit langer Zugriffszeit dargestellt ist;
-
Fig. 4B ein Zeitgeber-Diagramm, in dem die Wiederernennung
des ursprünglichen Busmasters zum Master und der Abschluß der
temporären Kommunikationen mit den Slaves mit langer
Zugriffszeit dargestellt ist;
-
Fig. 5 ein Ablaufdiagramm der Bus-Sequenzsteuerung, die von
dem ursprünglichen Busmaster ausgeführt wird;
-
Fig. 6 ein Ablaufdiagramm der Bus-Sequenzsteuerung, die von
dem neuen Busmaster ausgeführt wird; und
-
Fig. 7 ein Ablaufdiagramm mit den Busprozeduren, die von der
Slave-Einheit mit langer Zugriffszeit ausgeführt werden.
-
Fig. 1 ist ein System-Blockdiagramm, welches die Verbindung
zwischen einer Mastereinheit 10 und einem
Kommunikationsbus 30 darstellt. Mit dem Kommunikationsbus 30 sind außerdem
drei potentielle Mastereinheiten 12, 14 und 16 und vier
Slave-Einheiten 18, 20, 22 und 24 verbunden. Die
Slave-Einheit
24 ist eine Einheit mit langer Zugriffszeit. Bei einer
normalen Kommunikationstransaktion über den Bus 30 müßte der
Busmaster 10 eine Informationsanforderung von einem der
Slave-Geräte 18, 20, 22 oder 24 oder von einem der
potentiellen Busmaster 12, 14 oder 16 senden, und diese Information
müßte in demselben Zyklus bereitgestellt werden. Der
Busmaster 10 kann auch eine Operation mit langer Zugriffszeit mit
einem Slave 24 mit langer Zugriffszeit einleiten, bei der der
Busmaster 10 zunächst über den Bus 30 die Operation mit dem
Slave 24 einrichtet und dann, in einem späteren Buszyklus,
die Information von dem Slave 24 anfordert. Hierzu wäre es
jedoch erforderlich, daß der Busmaster 10 während der
gesamten Kommunikation mit dem Slave 24 die Kontrolle über den
Bus behält.
-
In Fig. 1 wird auch eine Zuteilungsschaltung 26
bereitgestellt. Die Zuteilungsschaltung entscheidet, welche der
potentiellen Busmastereinheiten 12, 14 und 16 neuer Busmaster
wird, nachdem die Mastereinheit 10 ihre Kommunikationsaufgabe
abgeschlossen hat. Jede der potentiellen
Busmaster-Einheiten 12, 14 oder 16 oder der Busmaster 10 kann so mit jeder
anderen Einheit auf dem Bus kommunizieren. Durch die
vorliegende Erfindung wird das Problem gelöst, wie ein Busmaster,
der eine lange Operation mit einem Slave 24 einleitet und
dann die Kontrolle -über den Bus an einen neuen Busmaster
abgibt, seine Antwort erhalten kann. Ohne diese Erfindung kann
der ursprüngliche Busmaster nicht wissen, wann die Operation
von dem Slave 24 mit der langen Zugriffszeit abgeschlossen
ist, bis er wieder von der Zuteilungsschaltung 26 zum
Busmaster bestimmt wird. Dieser Nachteil kann die Leistung des
Systems stark beeinträchtigen.
-
Die vorliegende Erfindung löst dieses Problem dadurch, daß
sie dem Slave 24 auf dem Kommunikationsbus 30 ein Signal
sendet, welches meldet, daß die lange Operation abgeschlossen
ist, und daß ein temporärer Kommunikationszyklus mit der
Ursprungseinheit angefordert wird. Als Antwort darauf gibt der
neue Busmaster dann vorübergehend die Kontrolle über den Bus
an die Ursprungseinheit oder den ursprünglichen Busmaster ab,
so daß der ursprüngliche Busmaster die Antwort von dem
Slave 24 mit langer Zugriffszeit erhalten kann.
-
Fig. 2 stellt in Form eines Blockdiagramms die Schnittstelle
eines Busmasters 10 mit dem Bus 30 dar. Diese
Schnittstelle 10 ist mit einer anderen Verarbeitungsmöglichkeit oder
auch mit einem anderen Bus verbunden. Diese zusätzliche
Verarbeitungsmöglichkeit bewirkt und empfängt
Informationstransfers auf dem Bus 30. Obwohl keine Zwischenverbindung
dargestellt ist, dürfte es für den Fachmann klar sein, daß solche
Verbindungen entweder direkt zum Adreßregister 68, zum
Datenregister 70 und zum Antwortregister 72 oder durch die
Sequenzsteuerungseinheit 50 hergestellt werden können. Dieses
Diagramm ist für den potentiellen Busmaster 12, 14 und 16 der
Fig. 1 identisch. Die Adresse und die Daten werden auf
Leitung 52 dem Bus 30 zur Verfügung gestellt. Die Leitung 52 ist
mit einem Adreßregister 68, einem Datenregister 70 und einem
Antwortregister 72 verbunden, das von einem
Bussequenzsteuerteil 50 gesteuert wird. Das Bussequenzsteuerteil 50 bildet
auch Schnittstellen mit mehreren Steuerleitungen zum Bus 30.
Hierzu gehören die DATENTAKTRATE 54, der E/A-(Ein-/Ausgabe)-
Zyklus 56, die ACK-(Rückmeldungs-)Leitung 58, das DATEN-
GATE 60 und das BEREIT-Signal 62. Außerdem bildet das
Bussequenzsteuerteil 50 durch Senden eines Signal s BUSANFORDERUNG
auf Leitung 64, eines Signals BUSZUTEILUNG auf Leitung 66 und
eines Buszyklus-KONKURRENZ-Signals auf Leitung 67 eine
Schnittstelle zur Zuteilungsschaltung 26. Zur Steuerung der
Kommunikationen über den Bus 30 stellt der Busmaster 10 das
E/A-Zyklussignal auf Leitung 56 und das DATEN-GATE-Signal auf
Leitung 60 bereit. Die Leitung 64, BUSANFORDERUNG, dient zur
Anforderung der Bestimmung zum Busmaster durch die
Zuteilungsschaltung
26. Die Bestimmung zum Busmaster wird über die
Leitung 66, BUSZUTEILUNG, gemeldet. Die KONKURRENZ-Leitung 67
wird dazu verwendet, der Zuteilungsschaltung 26 zu melden,
wann der Busmaster die Bussteuerung abgibt, und ist für
andere mögliche Busmaster die Anzeige des Zeitpunkts, zu dem
sie die Bussteuerung von der Zuteilungsschaltung 26 anfordern
können.
-
Ein Blockdiagramm der Busschnittstellen-Schaltung für eine
Slave-Einheit 24 zeigt die Fig. 3. Die Leitung 52, die
Adreß- und Dateninformationen enthält und mit dem
Kommunikationsbus 30 verbunden ist, ist auch mit einem
Adreßregister 82, einem Datenregister 84 und einem Antwortregister 86
verbunden. Diese Register 82, 84 und 86 sind mit der
Bussequenzsteuerung 80 verbunden, die weiter mit den dargestellten
Bussteuerleitungen verbunden ist. Zu den Bussteuerleitungen
gehört die Leitung 54, DATENTAKTRATE, die
E/A-Zyklusleitung 56, die ACK-Leitung 58, die DATEN-GATE-Leitung 60, und
die BEREIT-Leitung 62.
-
Fig. 4A zeigt den Zeitablauf der Steuerleitung für einen
Busmaster, der eine lange Operation mit einem Slave 24 mit
langer Zugriffszeit einleitet. Zum Zeitpunkt 118 werden die
Daten über den Busmaster auf der Leitung 102 plaziert. Der
Busmaster leitet den Bustransfer durch Aktivierung oder
Absenkung des E/A-Zyklus 104 ein. Auf Leitung 106 wird von
diesem ursprünglichen Busmaster eine DATENTAKTRATE gesendet.
Die Slave-Einheit 24 bestätigt durch Senden eines ACK-Signals
auf Leitung 108. Wenn der Busmaster seine Kommunikationen auf
Bus 30 abgeschlossen hat, läßt der Busmaster die KONKURRENZ-
Leitung 112 zum Zeitpunkt 124 fallen und zeigt damit der
Zuteilungsschaltung 26 an, daß ein neuer Busmaster zu bestimmen
ist. Während dieser Transaktion sind die BEREIT-Leitung 114
und die DATEN-GATE-Leitung 116 nicht aktiviert.
-
Fig. 4B ist eine Darstellung des Zeitablaufs, wenn der neue
Busmaster den Bus steuert. Der neue Busmaster steuert den Bus
durch Absenken des E/A-Zyklus auf Leitung 134, wenn er über
den Bus Transaktionen abwickelt. Durch das Kommunikationsbus-
Protokoll wird dafür gesorgt, daß, wenn dieser neue Busmaster
die E/A-Zyklus-Leitung 134 anhebt (mit anderen Worten, wenn
es momentan keine Transaktion auf dem Bus gibt), eine
Einheit, wie zum Beispiel der Slave 24 mit langer Zugriffszeit,
die einen temporären Transfer anfordert, dem neuen Busmaster
anzeigt, daß dieser Slave 24 mit langer Zugriffszeit eine
Antwort für den ursprünglichen Busmaster bereithält. Dieses
Protokoll ist die Signalabstimmungssequenz 154. Eine solche
Meldung wird von der Slave-Einheit 24 mit langer Zugriffs zeit
durch Aktivieren der BEREIT-Signalleitung 142 bewirkt. Zu
diesem Zeitpunkt aktiviert der neue Busmaster die
ACK-Signalleitung 138 und meldet hierdurch, daß er das BEREIT-Signal
von der Slave-Einheit mit langer Zugriffszeit empfangen hat,
und daß er bereit ist, die Bussteuerung vorübergehend
abzugeben. Hierbei muß man wissen, daß das ACK-Signal normalerweise
von einer Einheit verwendet wird, die während eines aktiven
E/A-Zyklus auf einen Busmaster reagiert. Der ursprüngliche
Busmaster meldet dann, daß er die Bussteuerung übernimmt,
indem er die DATEN-GATE-Leitung 144 aktiviert. So hat zum
Zeitpunkt 146 der ursprüngliche Busmaster die Bus-Steuerung von
dem neuen Busmaster übernommen. Die Slave-Einheit 24 plaziert
zu diesem Zeitpunkt Daten auf der Leitung 132. Die
Antwortdaten werden dann von dem ursprünglichen Busmaster zum
Zeitpunkt 146 auf Leitung 132 empfangen. Das Protokoll, durch das
diese temporäre Kommunikation beendet wird, ist die
Signalabstimmsequenz 152. Wird vom Slave 24 mit langer Zugriffszeit
festgestellt, daß das DATEN-GATE-Signal 144 aktiviert wurde,
deaktiviert er das BEREIT-Signal auf Leitung 142. Nachdem der
ursprüngliche Busmaster den Empfang der Daten auf Leitung 132
abgeschlossen hat, meldet der ursprüngliche Busmaster dem
neuen Busmaster, daß die Bussteuerung an den neuen Busmaster
zurückgegeben wird, indem er die DATEN-GATE-Leitung 144
deaktiviert. Der neue Busmaster meldet dann, daß er die
Bussteuerung übernimmt, indem er die ACK-Leitung 138 deaktiviert.
Somit hat zum Zeitpunkt 148 der neue Busmaster wieder die
Bussteuerung übernommen. Zum Zeitpunkt 150 hat der neue
Busmaster einen neuen Buskommunikationszyklus eingeleitet.
-
Fig. 5 ist ein Ablaufplan der Bussteuerungssequenz, wenn der
ursprüngliche Busmaster diese überlappende Kommunikations-
Operation ausführt. Der ursprüngliche Busmaster beginnt bei
Schritt 200 und bestimmt bei 202, ob er einen Zyklus
ausführen muß. Wenn er feststellt, daß ein Zyklus ausgeführt werden
muß, fährt die Sequenzsteuerung mit Schritt 204 fort, um von
der Zuteilungsschaltung 26 die Bussteuerung anzufordern.
Nachdem die Steuerung zugeteilt wurde, fährt die
Sequenzsteuerung mit Schritt 206 fort, und beginnt auf Bus 30 einen
E/A-Zyklus. Wie bereits weiter oben erörtert wurde, wird
dieser Vorgang durch Aktivieren der E/A-Zyklus-Leitung 56
(Fig. 2) eingeleitet. Die Sequenzsteuerung stellt dann bei
Schritt 205 fest, ob eine ACK-Leitung aktiv ist. Wurde kein
ACK-Signal empfangen, das heißt, hat der Slave die
Busübertragung nicht bestätigt, fährt die Sequenzsteuerung mit
Schritt 209 fort und meldet einen Fehler. Wird in Schritt 205
ein ACK-Signal empfangen, fährt die Sequenzsteuerung mit
Schritt 207 fort und wartet eine vorbestimmte Zeit. Nach
Ablauf dieser Zeit fährt die Sequenzsteuerung mit Schritt 208
fort und stellt fest, ob das ACK-Signal bestehen bleibt.
Bleibt ein Bestätigungssignal (ACK) bestehen, fährt die
Sequenzsteuerung mit Schritt 224 fort und stellt fest, ob auf
Leitung 62 ein BEREIT-Signal empfangen wurde. Ist dies nicht
der Fall, schleift die Sequenzsteuerung zu Schritt 208
zurück. Wenn ja, fährt die Sequenzsteuerung dann mit
Schritt 226 fort, wo die Daten-Gate-Leitung 60 gepulst wird,
was bedeutet, daß Daten auf dem Bus übertragen oder über ihn
empfangen werden sollen. Der Master bewirkt dann in
Schritt 228, daß die Bestätigungsleitung (ACK) inaktiv wird.
Bei Inaktivierung der Bestätigungsleitung (ACK) fährt die
Sequenzsteuerung mit Schritt 222 fort und gibt den Bus durch
Signalisierung an die Zuteilungsschaltung 26 ab.
-
Kehren wir zu Schritt 208 zurück; wird das Bestätigungssignal
(ACK) nicht empfangen, fährt die Sequenzsteuerung mit
Schritt 210 fort, um den E/A-Zyklus zu beenden. Hierdurch
würde eine Anforderung mit langer Zugriffs zeit von der Slave-
Einheit gemeldet, mit der der Busmaster kommuniziert. Die
Sequenzsteuerung fährt dann mit Schritt 212 fort, um
festzustellen, ob andere an den Bus angeschlossene Einheiten auf
den Bus zugreifen möchten. Wenn nicht, fährt die
Sequenzsteuerung mit Schritt 214 fort, um festzustellen, ob das
BEREIT-Signal von der Slave-Einheit 24 mit langer
Zugriffszeit vorliegt, und fährt in dieser Schleife fort, wenn BEREIT
noch nicht empfangen wurde. Wurde BEREIT empfangen, fährt die
Sequenzsteuerung mit Schritt 220 fort. Verlangt eine andere
Einheit bei Schritt 212 Zugang, fährt die Sequenzsteuerung
mit Schritt 216 fort und meldet der Zuteilungsschaltung 26,
daß sie den Bus abgibt. Die Sequenzsteuerung fährt dann mit
Schritt 218 fort, wo sie die ACK-, BEREIT- und E/A-ZYKLUS-
Leitungen überwacht und darauf wartet, daß die in Fig. 4B
dargestellten Bedingungen eintreten. Wenn dies geschieht,
fährt die Sequenzsteuerung mit Schritt 220 fort, um die
Daten-Gate-Leitung 60 zu pulsen. Bei Empfang der Ergebnisse
vom Slave 24 mit langer Zugriffs zeit fährt die
Sequenzsteuerung des ursprünglichen Busmasters dann mit Schritt 222 fort,
um den Bus abzugeben, durch Signalisierung an die
Zuteilungsschaltung 26 und Rückkehr in die Ausgangsposition 200.
-
Fig. 6 zeigt einen Ablaufplan des Bussteuerprozesses für
einen neuen Master. Der neue Master beginnt bei Position 250
und fährt mit Schritt 252 fort, um festzustellen, ob er den
Bus tatsächlich braucht. Ist dies nicht der Fall, geht er in
die Ausgangsposition zurück. Braucht der neue Busmaster den
Bus, fährt die Sequenzsteuerung des neuen Busmasters mit
Schritt 254 fort, um die Bussteuerung von der
Zuteilungsschaltung 26 anzufordern. Die Sequenzsteuerung fährt dann mit
Schritt 256 fort, um festzustellen, ob das BEREIT-Signal auf
dem Bus vorhanden ist, wodurch angezeigt wird, daß ein Slave
mit langer Zugriffs zeit eine temporäre Kommunikation mit
seinem ursprünglichen Busmaster anfordert. Ist kein BEREIT-
Signal vorhanden, fährt die Sequenzsteuerung des neuen
Busmasters mit Schritt 258 fort, um festzustellen, ob ein
Buszyklus ausgeführt werden muß. Ist ein Zyklus erforderlich, fährt
die Sequenzsteuerung des neuen Busmasters mit Schritt 260
fort, um diesen Zyklus auszuführen. Ist kein Zyklus
erforderlich, fährt der neue Busmaster mit Schritt 262 fort, um
festzustellen, ob andere an den Bus angeschlossene Einheiten die
Bussteuerung anfordern. Wird die Bussteuerung von einer
anderen Einheit angefordert, fährt die Sequenzsteuerung des neuen
Busmasters mit Schritt 264 fort, um der
Zuteilungsschaltung 26 zu melden, daß der Bus abgegeben wird. Die
Sequenzsteuerung kehrt dann in die Ausgangsposition 250 zurück. Wird
die Bussteuerung in Schritt 262 von keiner anderen Einheit
angefordert, kehrt die Sequenzsteuerung des neuen Busmasters
zu Schritt 256 zurück, um festzustellen, ob ein BEREIT-Signal
vorliegt.
-
Kehren wir zu Schritt 256 zurück; wenn ein Bereit-Signal
vorhanden ist, fährt die Sequenzsteuerung des neuen Busmasters
mit Schritt 268 fort, um die ACK-Leitung 58 einzuschalten,
und so dem ursprünglichen Busmaster zu melden, daß dieser
neue Busmaster vorübergehend die Bussteuerung abgibt. Dieses
ACK-Signal wird normalerweise nicht von einem Busmaster,
sondern von einem Slave in Reaktion auf einen Busmaster
verwendet.
-
Die Sequenzsteuerung des neuen Busmasters fährt dann mit
Schritt 270 fort, um festzustellen, ob das DATEN-GATE-Signal
aktiviert wurde, und ob das BEREIT-Signal aktiv bleibt.
Solange entweder das BEREIT- oder das DATEN-GATE-Signal aktiv
ist, schleift die Sequenzsteuerung des neuen Busmasters zu
Schritt 270 zurück. Wenn die BEREIT-Leitung und/oder die
DATEN-GATE-Leitung deaktiviert wurden, fährt die
Sequenzsteuerung des neuen Busmasters mit Schritt 272 fort, um die
ACK-Leitung 58 abzuschalten und hiermit anzuzeigen, daß der
neue Busmaster wieder die Kontrolle über den Bus beansprucht.
Die Sequenzsteuerung des neuen Busmasters kehrt dann zu
Schritt 256 zurück.
-
Hierbei muß man wissen, daß die in den Fig. 5 und 6
abgebildeten Prozeduren in allen potentiellen Busmaster-Einheiten
gespeichert sind, um unter den gegebenen Umständen ausgeführt
zu werden.
-
Fig. 7 ist ein Ablaufplan für den Slave 24 mit langer
Zugriffszeit bei der Ausführung von Operationen mit langer oder
kurzer Zugriffszeit. Die Sequenzsteuerung für den Slave
beginnt bei Position 300 und fährt mit Schritt 302 fort, um
festzustellen, ob eine Anforderung empfangen wurde. Wenn eine
Anforderung empfangen wurde, aktiviert der Slave die
ACK-Leitung 58, um zu melden, daß er diese Anforderung erhalten hat.
Die Slave-Sequenzsteuerung fährt mit Schritt 306 fort, um
festzustellen, ob die angeforderte Operation eine Operation
mit langer Zugriffszeit ist. Wenn nicht, fährt die Slave-
Sequenzsteuerung mit Schritt 324 fort, um festzustellen, ob
die Antwort bereit ist. Die Slave-Sequenzsteuerung schleift
weiter bei Schritt 324, bis die Antwort bereit ist. Dann
fährt sie mit Schritt 326 fort, um die BEREIT-Leitung 62 zu
aktivieren. Die Slave-Sequenzsteuerung fährt mit Schritt 328
fort, um festzustellen, ob das DATEN-GATE-Signal auf
Leitung 60 empfangen wurde. Wenn nicht, wartet sie in einer
Schleife bei Schritt 328. Wenn das DATEN-GATE-Signal
empfangen wurde, fährt die Sequenzsteuerung mit Schritt 230 fort,
um die Antwort zu senden, und um das ACK-Signal auf
Leitung 58 und das BEREIT-Signal auf Leitung 62 auszuschalten.
Die Sequenzsteuerung schleift dann in die
Ausgangsposition 300 zurück.
-
Kehren wir zu Schritt 306 zurück; stellt die
Slave-Sequenzsteuerung fest, daß es sich bei einer Anforderung um eine
Anforderung mit langer Zugriffszeit handelt, fährt die
Sequenzsteuerung mit Schritt 308 fort, um das ACK-Signal auf
Leitung 58 abzuschalten und so dem anfordernden Busmaster zu
melden, daß diese Anforderung eine Anforderung mit langer
Zugriffszeit ist. Die Sequenzsteuerung fährt dann mit
Schritt 310 fort, um festzustellen, wann die Antwort bereit
ist. Wenn diese Antwort bereit ist, fährt die
Sequenzsteuerung mit Schritt 312 fort, um festzustellen, ob die E/A-
Zyklus-Leitung aktiv ist. Ist die E/A-Zyklus-Leitung aktiv,
schleift die Sequenzsteuerung zu Schritt 312 zurück. Nachdem
der E/A-Zyklus inaktiv geworden ist, fährt die
Sequenzsteuerung mit Schritt 314 fort, um die BEREIT-Leitung 62 zu
aktivieren. Die Sequenzsteuerung stellt dann fest, ob der
E/A-Zyklus bei Schritt 316 reaktiviert wurde. Wenn ja,
schaltet die Sequenzsteuerung das BEREIT-Signal auf Leitung 62 in
Schritt 318 aus und kehrt zu Schritt 312 zurück, um darauf zu
warten, daß der E/A-Zyklus wieder inaktiv wird. Wenn das E/A-
Signal in Schritt 316 inaktiv bleibt, fährt die
Sequenzsteuerung mit Schritt 320 fort, um festzustellen, ob das DATEN-
GATE-Signal auf Leitung 60 aktiviert wurde. Wenn nicht,
schleift die Sequenzsteuerung nach Schritt 316 zurück. Wenn
ja, sendet die Sequenzsteuerung dann in Schritt 322 die
Antwort auf den Datenleitungen 52, schaltet das BEREIT-Signal
auf Leitung 62 aus und kehrt in die Ausgangsposition 300
zurück.