-
Ein aus Untereinheiten bestehendes Datenverarbeitungssystetn
-
Die Erfindung bezieht sich auf ein aus Untereinheiten bestehendes
Datenverarbeitungssystem, bei dem bei Vorliegen von Anforderungen von mehreren Untereinheiten
für eine Einheit jede Untereinheit entsprechend seiner Prioritätskennung Zugriff
zu der Einheit erhält, und bei dem jede Untereinheit eine Prioritätsschaltung zugeordnet
ist und die Prioritätsschaltungen zum Austausch von Signalen über einen Bus miteinander
verbunden sind.
-
In vielen Datenverarbeitungssystemen teilen sich mehrere Untereinheiten
ein oder mehrere Betriebsmitteinh6 rechnersystem können das ein Verbindungsnetzwerk
(Bus) oder ein gemeinsamer Speicher sein. Eine wichtige Aufgabe in solchen Systemen
stellt die Auflösung von Zugriffskonflikten dar. Wollen mehrere Untereinheiten gleichzeitig
ein gemeinsames Betriebsmittel nutzen, so müssen diese Zugriffe nach bestimmten
Regeln serialisiert werden.
-
Die Serialisierung erfolgt üblicherweise nach Prioritäten.
-
Diese können statisch vorgegeben oder dynamisch veränderbar sein.
Ausgeführt werden Schaltungen zur Prioritätsentscheidung (auch Arbiter genannt)
entweder zentral oder dezentral. Dabei hat die zentrale Lösung den Nachteil, daß
bei Ausfall der Prioritätsschaltung das gesamte System ausfällt. Außerdem ist es
bei den meisten zentralen Prioritätsschaltungen nötig, jede Untereinheit mit der
Prioritätsschaltung über private Leitungen zu verbunden. Dies führt bei großen Datenverarbeitunssystemen
zu einem hohen Verdrahtungsaufwand.
-
Bei dezentralen Lösungen kann z.B. die Priorität durch die geographische
Lage der Untereinheit festgelegt werden.
-
Diese Lösung ist nur für kleine Datenverarbeitungssysteme geeignet,
da eine Verkettung vieler Untereinheiten zu hohen Laufzeiten führt. Weiterhin ist
es möglich, jeder Untereinheit eine eigene Anforderungsleitung zuzuweisen, so daß
alle Untereinheiten die Möglichkeit haben, die Anforderungen aller ihrer Konkurrenten
zu beobachten. Auch dieses Verfahren führt zu einem hohen Verdrahtungsaufwand.
-
Die angegebenen Verfahren zur Prioritätsentscheidung können z.B. aus
der Zeitschrift "Elekgronik" 1980, Heft 8, S. 65 bis 68 entnommen werden.
-
Die der Erfindung zugrundeliegende Aufgabe besteht darin, bei einem
aus Untereinheiten bestehenden Datenverarbeitungssystem die Prioritätsschaltungen
derart aufzubauen, daß sie monolithisch integrierbar sind und damit zum Aufbau von
verteilten Prioritätsschaltungssystemen geeignet sind. Diese Aufgabe wird bei einem
Datenverarbeitungssystem der eingangs genannten Art dadurch gelöst, daß die Prioritätsschaltungen
auf von den Untereinheiten getrennten Bausteinen angeordnet sind, daß der die Prioritätsschaltungen
verbindende Bus eine erste Leitung für die Übertragung eines Belegungssignals bei
Belegung der Einheit durch mindestens eine der Untereinheiten, eine zweite Leitung
für die Übertragung eines Anforderungssignals durch eine der Untereinheiten und
eine dritte Leitung für die Bildung eines der Anzahl der gleichzeitig anfordernden
Untereinheiten abhängigen Anforderungsanzahlsignales vorsieht, und daß jede Prioritätsschaltung
mit der zugeordneten Untereinheit zur Übertragung eines Startsignals, eines Auswahlsignals,
eines Abweisungssignals und einer änderbaren Prioritätskennung verbunden ist.
-
Der Bus kann weiterhin eine vierte Leitung zur Übertragung eines Taktsignals
und eine fünfte Leitung zur übertragung eines Vorbereitungssigrils enthalten. Mit
Hilfe des Takt-
signales können die Prioritätsschaltungen miteinander
synchronisiert werden und mit Hilfe des Vorbereitungssigflaies auf.einen definierten
Ausgangszustand eingestellt werden.
-
Die Prioritätsschaltung kann realisiert sein aus einem Schieberegister
zur Aufnahme der Prioritätskennung, dessen Steuereingang das Taktsignal zugeführt
wird, aus einem ersten Schaltungsteil, der bei Vorliegen des Startsignals von der
Untereinheit und bei Nichtvorliegen eines Belegungssignals ein Freigabesignal für
das Schieberegister erzeugt, aus einem zweiten Schaltungsteil, dessen Ausgang mit
der ersten Leitung des Busses verbunden ist und das Belegungssignal erzeugt, aus
einer Schwellwertschaltung, die mit der dritten Leitung des Busses verbunden ist
und ein Sperrsignal abgibt, wenn mehr als eine Untereinheit eine Anforderung stellt,
aus einem dritten Schaltungsteil, der mit dem Ausgang des Schieberegisters und der
zweiten Leitung des Busses verbunden ist und das Abweisungssignal für die Untereinheit
erzeugt, wenn der Ausgang des Schieberegisters binär Null ist und ein Anforderungssignal
auf der zweiten Leitung des Busses vorliegt, aus einem vierten Schaltungsteil, der
mit dem Ausgang des Schieberegisters und dem Ausgang der Schwellwertschaltung verbunden
ist und am Ausgang das Auswahlsignal für die Untereinheit abgibt, wenn der Ausgang
des Schieberegisters binär 1 ist u#nd das Sperrsignal nicht vorliegt, aus einem
fünften Schaltungsteil, der mit dem Ausgang des ersten Schaltungsteiles und dem
Ausgang des Schieberegisters verbunden ist, dessen Ausgang mit der zweiten und dritten
Leitung des Busses verbunden ist und der ein Signal abgibt, wenn das Freigabesignal
vorliegt und der Ausgang des Schieberegisters binär 1 ist und aus einem sechsten
Schaltungsteil, der über den ersten Schaltungsteil das Schieberetister für den Schiebevorgang
sperrt, wenn von dem dritten Schaltungsteil das Abweisungssignal oder von dem vierten
Schaltungsteil das Auswahlsignal abgegeben wird.
-
Bei einer derart ausgeführten Prioritätsschaltung können die einzelnen
Schaltungsteile aus handelsüblichen Bausteinen bestehen.
-
Es ist weiterhin zweckmäßig,den sechsten Schaltungsteil mit dem zweiten
Schaltungsteil zu verbinden, so daß der zweite Schaltungsteil das Belegungssignal
beendet, wenn entweder das Auswahlsignal oder das Abweisungssignal vorliegt.
-
Ein Verfahren zum Betrieb der Prioritätsschaltungen kann folgende
Schritte ausführen: Zunächst wird die Prioritätskennung in das Schieberegister geladen
und das erste Bit der# Prioritätskennung an den Ausgang gelegt, nach Auftreten des
Startsignals von der Untereinheit wird überprüft, ob ein Belegungssignal vorliegt
und wenn dies nicht der Fall ist, ein solches erzeugt, sonst der Bus weiter abgefragt,
ein Abweisungssignal wird erzeugt, wenn der Ausgang des Schieberegisters binär 0
ist und ein Anforderungssignal einer anderen Untereinheit vorliegt und dann wird
das Belegungssignal beendet, ein Auswahlsignal wird erzeug~W,enPer Ausgang des Schieberegisters
binär 1 ist und weniger als zwei Untereinheiten einer Anforderung stellen und dann
das Belegungssignal beendet, im Schieberegister wird die Prioritätskennung um eine
Stelle weitergeschoben und das nächste Bit an den Ausgang gelegt, wenn der Ausgang
des Schieberegisters binär 0 war und kein Anforderungssignal einer der Untereinheiten
vorliegt oder wenn der Ausgang des Schieberegisters binär 1 war und mindestens zwei
Untereinheiten eine Anforderung stellen.
-
Anhand eines Ausführungsbeispiels, das in den Figuren dargestellt
ist, wird die Erfindung weiter erläutert. Es zeigen Fig. 1 ein Blockschalt#ild des
Datenverarbeitungssystems,
Fig. 2 die Anordnung einer Prioritätsschaltung
zum Bus und zur Untereinheit, Fig. 3 ein Ablaufdiagramm, nachdem die Prioritätsschaltungen
arbeiten, Fig. 4 die Realisierung der Prioritätsschaltung.
-
In Fig. 1 sind aus einer Anzahl von Untereinheiten zwei Untereinheiten
eines Datenverarbeitungssystems gezeigt, die mit 10 und 11 bezeichnet sind. Die
Untereinheiten 10 und 11 sind mit einem Systembus 12 verbunden, über den sie Informationen
mit anderen Untereinheiten austauschen können. Jeweils nur eine Untereinheit 10,
11 darf den Systembus 12 benützen. Um Zugriffskonflikte zu verhindern, wird jede
Untereinheit mit einer Prioritätsschaltung 13 ausgerüstet. Diese sind ihrerseits
durch einen Bus 14 miteinander verbunden. Die Anzahl der Leitung in diesem Bus 14
ist unabhängig von der Anzahl der Untereinheiten und beträgt z.B. 5 im Ausführungsbeispiel.
-
In Fig. 1 können die Untereinheiten 10, 11 Prozessoren sein, die Informationen
untereinander über den Systembus 12 austauschen können oder Informationen zu anderen
am Systembus 12 angeschlossenen Einheiten, wieiz.B. einem Speicher, übertragen können.
-
Aus Fig. 2 kann die Anzahl der Leitungen des Busses 14 und die Anzahl
der von der Prioritätsschaltung 13 zu der zugeordneten Untereinheit führenden Leitungen
entnommen werden. Im Ausführungsbeispiel besteht der Bus 14 aus fünf Leitungen.
-
L1 Über die erste Leitung des Busses 14 wird das Belegungssignal
BB übertragen. Das Belegungssignal BB ist für die Prioritätsschaltung 13 sowohl
Eingangs-als auch Ausgangssignal. Als Eingangssignal zeigt es an, daß der System-
bus
belegt ist und kein Zugriffsvorgang gestartet werden kann. Als Ausgangssignal wird
das Belegungssignal von der Prioritätsschaltung 13 aktiviert, solange ein Auswahlvorgang
abläuft.
-
L2 Auf der zweiten Leitung des Busses 14 wird ein Anforderungssignal
AF übertragen, das ebenfalls Ein- und Ausgangsignal sein kann. Als Eingangssignal
zeigt es der Prioritätsschaltung an, ob mindestens ein der am Zugriffsvorgang teilnehmenden
Untereinheiten ein Anforderungssignal aussendet. Als Ausgangsignal wird es von der
Prioritätsschaltung 13 aktiviert, wenn das augenblicklich betrachtete Bit der Prioritätskennung
den Wert binär 1 hat.
-
L3 Auf der dritten Leitung des Busses 14 wird ein Anforderungsanzahlsignal
AFS übertragen. Auch dieses Signal kann Ein- und Ausgangssignal für die Prioritätsschaltung
13 sein. Als Eingangssignal zeigt es an, ob mindestens zwei der am Zugriffsvorgang
teilnehmenden Untereinheiten ein Anforderungssignal aussenden. Als Ausgangssignal
wird es von der Prioritätsschaltung 13 aktiviert, wenn das Anforderungssignal AF
aktiviert ist.
-
L4 Auf der vierten Leitung des Busses 14 wird ein Taktsignal T übertragen.
Diese Leitung ist zu diesem Zwecke mit einem Taktgenerator 15 bekannten Aufbaues
verbunden.
-
über Über die fünfte Leitung des Busses 14 wird ein Vorbereitungssignal
RT übertragen, die die Prioritätsschaltungen 13 auf einen festzulegenden Ausgangszustand
bringt. Das Vorbereitungssignal RT kann z.B. dadurch erzeugt werden, daß die Leitung
über einen Schalter 16 an Masse gelegt wird.
-
Es ist zweckmäßig die roste, zweite und dritte Leitung
über
einen Widerstand (pull up Widerstand) an ein Betriebspotential von z.B. 5 Volt anzulegen.
In der Prioritätsschaltung 13 sind dann Treiberschaltungen mit offenen Kollektor
angeordnet.
-
Die Prioritätsschaltung 13 ist mit der zugeordneten Untereinheit über
z.B. fünf Leitungen zur Übertragung der Prioritätskennung PO bis P5, einer Leitung
zur Übertragung des Startsignals ST, einer Leitung zur übertragung des Auswahlsignals
AWS und einer Leitung zur Übertragung des Abweisungssignals ABS verbunden.
-
Durch das Startsignal ST wird die Prioritätsschaltung 13 gestartet.
Ist während des Beginns des Signals ST das Belegungssignal inaktiv, also BB - 0,
dann wird der Auswahlvorgang sofort begonnen. Andernfalls wird der Beginn des Auswahlvorgangs
verzögert, bis das Belegungssignal BB 0 ist, also der Systembus frei ist.
-
Die Prioritätsschaltung 13 erzeugt das Auswahlsignal AWS, wenn der
Untereinheit das Betriebsmittel, also der System bus zugeteilt wurde. Sie erzeugt
dagegen das Abweisungssignal AWS, wenn das Ergebnis des Auswahlvorgangs zeigt, daß
die Anforderung der Untereinheit zurückgewiesen wurde.
-
Mit der Hilfe der Prioritätskennung PO bis P5, die änderbar ist, kann
die Priorität der Untereinheit im Datenverarbeitungssystem festgelegt werden.
-
Mit Hilfe des Ablaufdiagramms der Fig. 3 wird die Arbeitsweise der
Prioritätsschaltung 13 erläutert: In einem ersten Schritt S1 wird die Prioritätskennung
PO bis P5 in die Prioritätsschaltung 13 eingespeichert. In einem zweiten Schritt
S2 wird überprüft, ob das Startsignal ST von der Untereinheit vorliegt, also binär
1 ist. Liegt kein Start-
signal von der Untereinheit vor, dann
beginnt der bisher beschriebene Vorgang von neuem. Liegt dagegen ein Startsignal
ST = 1 vor, wird in einem dritten Schritt S3 überprüft, ob ein Belegungssignal vorliegt,
also BB = 1 ist.
-
Ist dies der Fall, dann wird der Schritt S3 erneut ausgeführt. Ergibt
sich, daß das Belegungssignal nicht mehr vorliegt, also BB = 0, dann erzeugt die
Prioritätsschaltung 13 in einem Schritt S4 das Belegungssignal, setzt also BB =
1. In einem fünften Schritt S5 wird das erste Bit der Prioritätskennung, z.B. das
höchstwertigste Bit, überprüft, ob es binär 0 ist (Pi = 0) und es wird überprüft,
ob eine Anforderung AF vorliegt, also AF = 1. Ist dies der Fall, dann wird in einem
sechsten Schritt S6 ein Abweisungssignal ABS von der Prioritätsschaltung 13 erzeugt
und der Untereinheit zugeführt und gleichzeitig das Belegungssignal BB auf 0 gesetzt.
Damit ist der Systembus frei für weitere Anforderungen. Auf den sechsten Schritt
S6 folgt dann wieder der erste Schritt S1. Ergibt sich dagegen, daß Pi ungleich
0 ist, wird in einem siebten Schritt S 7 überprüft, ob mehr als eine Untereinheit
ein Anforderungssignal abgeben. Geben zwei oder mehr Untereinheiten ein Anforderungssignal
abUntst das Bit der Prioritätskennung binär 1, dann wird das nächste Bit der Prioritätskennung
untersucht und wieder mit dem Schritt S5 begonnen.
-
Ist dagegen das untersuchte Prioritätsbit binär 1 und stellsnweniger
als zwei Untereinheiten Anforderungen, dann folgt auf den Schritt S7 der Schritt
S9 und die Prioritätsschaltung 13,erzeugt das Auswahlsignal AWS für die Untereinheit
und der Auswahlvorgang ist beendet. Bei der nächsten von der Untereinheit gestellten
Anforderung wird wiederum mit dem Schritt S1 begonnen.
-
Liegen somit mehrere Anforderungen von Untereinheiten vor, dann führt
die Untersuchung der diesen Untereinheiten zugeordneten Prioritätskennungen, die
Bit für Bit erfolgt,
im Endergebnis entweder zu dem Schritt S6,
also zu einem Abweisungssignal, oder zu einem Schritt S9, also zu einem Auswahlsignal.
Ein Auswahlsignal AWS kann nur dann erzeugt werden, wenn das untersuchte Bit der
Prioritätskennung binär 1 ist. Ist das untersuchte Bit der Prioritätskennung binär
0, so führt dies entweder zu einem Abweisungssignal AWS oder zur Untersuchung des
nächsten Bit der Prioritätskennung. Dies geschieht in Abhä#gkeit davon, ob eine
andere Untereinheit einer Anforderung gestellt hat.
-
Nach dem beschriebenen Prioritätserkennungsverfahren wird somit jede
Prioritätskennung Bit für Bit untersucht. Der Zugriff zu dem Systembus kann nur
erfolgen, wenn das zu testende Prioritätsbit eine 1 ist. Dies kann möglicherweise
erst dann der Fall sein, wenn das letzte Bit der Prioritätskennung, z.B. das niederwertigste
Bit, untersucht wird Besteht die Prioritätskennung nur aus Nullen, dann erfolgt
überhaupt keine Zuweisung. Um den letzten Fall zu vermeiden, ist es vorteilhaft,
die Prioritätskennung jeweils mit zwei Einsen einzurahmen. Dies bewirkt, daß bei
Anforderung des Systembusses durch ein einzige Untereinheit unabhängig von der Prioritätskennung
nur ein Taktzyklus bis zur Erzeugung des Auswahlsignals AWS notwendig ist.
-
Fig. 4 zeigt die schaltungstechnische Realisierung der Prioritätsschaltung
13. Die Prioritätskennung PO bis P5 wird in ein Schieberegister 20 geladen. Am Ausgang
QH des Schieberegisters 20 wird die Prioritätskennung Bit für Bit angelegt. Dazu
ist erforderlich, daß am Takteingang C des Schieberegisters 20 ein Taktsignal T
anliegt und von einem ersten Schaltungsteil SCH1 ein Freigabesignal FS am Vorbereitungseingang
des Schieberegisters 20 anliegt.
-
Das Freigabesignal FS wird mit Hilfe des ersten Schaltungsteils SCH1,
der aus bistabilen Kippgliedern 21, 22
und UND-Gliedern 23, 24
besteht, erzeugt. Wenn das Startsignal ST von der Untereinheit abgegeben wird, dann
wird das Kippglied 21 gesetzt. Wenn gleichzeitig das Belegungssignal BB 0 ist, dann
wird der Ausgang des Kippgliedes 21 über das UND-Glied 23 an einen D Eingang des
Kippgliedes 22 angelegt. Mit dem nächsten Taktsignal T wird dieser Zustand in das
Kippglied 22 übernommen. Damit erscheint am Ausgang des Kippgliedes 22 das Freigabesignal
FS.
-
Der erste Schaltungsteil SCH1 ist mit einem zweiten Schaltungsteil
SCH2 verbunden. Mit dem zweiten Schaltungsteil SCH2, der ebenfalls aus einem bistabilen
Kippglied 25 besteht, wird das Belegungssignal erzeugt, solange die Prioritätsschaltung
13 den Auswahlvorgang durchführt. Das bistabile Kippglied 25 ist über eine Treiberschaltung~
26 mit offenem Kollektor mit der entsprechenden ersten Leitung des Busses 14 verbunden.
-
Mit Hilfe eines dritten Schaltungsteils SCH3 wird das Abweisungssignal
AWS erzeugt. Der dritte Schaltungsteil SCH3 besteht aus einem ODER-Glied 27 und
zwei bistabilen Kippgliedern 28 und 29. Der Ausgang QH des Registers 20 und die
zweite Leitung für das Anforderungssignal AF des Busses 14 werden über das ODER-Glied
27 an einen D Eingang des Kippgliedes 28 gelegt. Wenn der Ausgang QH des Schieberegisters
20 binär 0 ist und eine Anforderung AF auf der zweiten Leitung des Busses 14 liegt,
dann wird das Abweisungssignal AWS vom dritten Schaltungsteil SCH3 erzeugt. Das
Ausgangssignal von der ODER-Schaltung 27 wird mit der Rückflanke des Taktsignals
T in das Kippglied 28 übernommen und mit der Vorderflanke des nächsten Taktsignals
T in das Kippglied 29 übernommen.Am Ausgang des Kippgliedes 29 erscheint für eine
Taktzeit das Abweisungssignal ABS.
-
Mit Hilfe eines vierten Schaltungsteils SCH4, der aus einem NAND-Glied
30 und zwei bistabilen Kippgliedern 31 und 32 besteht, wird das Auswahlsignal AWS
erzeugt. Dieses wird nur dann abgegeben, wenn der Ausgang QH des Schieberegisters
20 binär 1 ist und auf der dritten Leitung des Busses 14 weniger als zwei Untereinheiten
Anforderungen AFS stellt. Mit Hilfe einer Schwellwertsohaltung 33 wird der Zustand
auf der dritten Leitung des Busses 14 festgestellt. Wenn mehr als eine Untereinheit
eine Anforderung stellt, gibt die Schwellwertschaltung 33 ein Sperrsignal SP ab,
das die Erzeugung des Auswahlsignals AWS verhindert. Liegt jedoch kein Sperrsignal
SP vor und ist QH binär 1, dann wird ein Auswahlsignal AWS erzeugt.
-
Das Sperrsignal SP und der Ausgangszustand QH wird mit dem NAND-Glied
30 zusammengefaßt. Das NAND-Glied 30 ist mit einem D Eingang des Kippgliedes 31
verbunden, in das der Ausgangszustand des NAND-Gliedes 30 mit der Rückflanke des
Taktsignals T übernommen wird. Der Zustand des Kippgliedes 31 wird mit der Vorderflanke
des nächsten Taktsignals T in das Kippglied 32 übernommen, an dessen Ausgang das
Auswahlsignal AWS für eine Taktzeit abgegeben wird.
-
Wenn das Freigabesignal FS von der ersten Schaltungseinheit SCH1 vorliegt
und der Ausgang QH des Schieberegisters 20 binär 1 ist, dann erzeugt ein fünfter
Schaltungsteil SCH5 ein Anforderungssignal, das über eine Treiberschaltung 34 mit
offenen Kollektor der zweiten Leitung des Busses 14 zugeführt wird. Dort erscheint
dann das Anforderungssignal AF. Dieses Anforderungssignal AF wird über eine weitere
Treiberschaltung 35 mit offenem Kollektor und über einen Widerstand 36 der dritten
Leitung des Busses 14 zur Bildung des Anforderungsanzahlsignals AFS zugeleitet.
Dieser Ausgang hat das Verhalten einer Stromsenke.
-
Mit Hilfe eines sechsten Schaltungsteils SCH6, der aus zwei UND-Gliedern
37 und 38 besteht, kann der erste Schaltungsteil SCH1 und der zweite Schaltungsteil
SCH2 beeinflußt werden. Das UND-Glied 37 beeinflußt mit einem Ausgangssignal A1
den ersten Schaltungsteil SCH1 derart, daß dieser das Freigabesignal FS nicht mehr
abgibt. Dazu ist das UND-Glied 37 mit dem Rücksetzeingang R der Kippglieder 21 und
22 verbunden. Diese Kippglieder 21, 22 werden dann zurückgesetzt, wenn entweder
das Abweisungssignal ABS oder das Auswahlsignal AWS erzeugt wird. Denn in diesen
beiden Fällen ist der Auswahlvorgang beendet. Das Ausgangssignal A2 des UND-Gliedes
38 wird dem zweiten Schaltungsteil SCH2 zugeführt und zwar dem Kippglied 25.
-
Dadurch wird das Belegungssignal BB abgeschaltet. Dies ist dann der
Fall , wenn entweder das Abweisungssignal ABS oder das Auswahlsignal AWS erzeugt
wird. Das Ausgangssignal A2 des UND-Gliedes 38 wird weiterhin den Setzeingängen
S der Kippglieder 28 und 31 zugeführt.
-
Der Prioritätsschaltung wird weiterhin das Vorbereitungssignal RT
über die fünfte Leitung des Busses 14 zugeführt.
-
Mit diesem Vorbereitungssignal wird das Schieberegister 20, die UND-Glieder
37 und 38 und die bistabilen Kippglieder 29 und 32 in den richtigen Ausgangszustand
gebracht.
-
Mit Hilfe eines Inverters 40 und eines UND-Gliedes 39, denen das Taktsignal
T zugeführt wird, wird erreicht, daß die Kippglieder 28 und 31 zum richtigen Zeitpunkt
die Information am D Eingang übernehmen.
-
5 Patentansprüche 4 Figuren
Leerseite