-
Diese Erfindung bezieht sich auf Prioritätsentscheider, die in
Computersystemen verwendet werden, um den Zugriff auf eine erste Schaltung durch
eine Vielzahl anderer Schaltungen zu entscheiden.
-
Im Stand der Technik fordern Computerschaltungen einen Zugriff
aufeinander an, um unterschiedliche Funktionen zusammenhängend mit der
Verarbeitung zu erzielen. Diese Anforderungen treten gewöhnlich
asynchron auf. Zum Beispiel kann die Verwendung eines Speichers durch
einen Prozessor über einen Bus angefordert werden oder kann durch
eine Eingabe/Ausgabe-Vorrichtung über einen Direktspeicher-Zugriffsbus
angefordert werden, welcher unterschiedlich von jenem Bus ist, der vom
Prozessor verwendet wird. Ein Bus selbst ist ein Betriebsmittel, dessen
Verwendung von vielen Computerschaltungen angefordert wird. Ob auf
eine Schaltung oder einen Bus von einer Vielzahl von Schaltungen
zugegriffen wird, weil mehr als eine Schaltung den Zugriff auf oder die
Verwendung einer anderen Schaltung anfordern kann, werden
Prioritätsentscheider benötigt, um sicherzustellen, daß nur einer anfordernden
Schaltung zu einem Zeitpunkt der Zugriff auf eine angeforderte
Schaltung, einen Bus oder ein anderes Betriebsmittel gewährt wird. Wenn es
mehr als eine gleichzeitige Anforderung für die gleiche Schaltung oder
das gleiche Betriebsmittel gibt, wird der anfordernden Schaltung mit der
höchsten Priorität vorzugsweise der Zugriff auf die Schaltung oder das
Betriebsmittel gewährt.
-
Eine Schaltungsanordnung zum Einteilen der Priorität unter
zusammenarbeitenden Computern ist in der internationalen Anmeldung WO-A-
86/03606 (Telefonaktiebolaget L. M. Ericsson) offenbart. Diese
Prioritätseinteilungsanordnung
für Computer enthält Prozessoren von zwei
Typen, einem Typ hoher Priorität, der seine Priorität bezüglich
Prozessoren eines zweiten Typs niedriger Priorität selbst bestimmen kann, wenn
ein gemeinsamer Bus verwendet wird. Die Anordnung enthält eine erste
Logikschaltung, deren erster Eingang bei einer Anforderung für einen
Zugriff von einer der Einheiten niedriger Priorität aktiviert wird, deren
zweiter Eingang auf eine Anforderung für einen Zugriff von der Einheit
hoher Priorität aktiviert wird und deren dritter Eingang während der
ganzen Zeit aktiviert ist, die der Bus verwendet wird, und weist zwei
Ausgänge auf, um dem Bus eine Einheit niedriger Priorität oder die
Einheit hoher Priorität zuzuweisen. Die Anordnung enthält weiterhin
eine zweite Logikschaltung mit zwei Eingängen, von denen einer erfaßt,
daß die Einheit hoher Priorität einen Zugriff wünscht, und von denen
der andere erfaßt, daß dieser Zugriff mit Verzögerung stattfinden kann,
wobei die Schaltung auch zwei Ausgänge aufweist, von denen einer
vorgesehen ist zum Anzeigen an die erste Logikschaltung, daß die
Zugriffsanforderung von der Einheit hoher Priorität vorhanden ist, und von
denen der andere vorgesehen ist zum Anzeigen, daß der Bus belegt ist.
Wenn das Eingangssignal an die zweite Logikschaltung anzeigt, daß die
Gewährung des Bus an die Einheit hoher Priorität mit Verzögerung
stattfinden kann, hat die Anordnung Zeit, um den Bus an eine Einheit
niedriger Priorität zuzuweisen, jedoch hat die Einheit hoher Priorität
immer noch unmittelbaren Zugriff auf den Bus nach Abschluß der Arbeit
der Einheit niedriger Priorität.
-
Ein Problem mit Schaltungszugriff-Prioritätsentscheiderschaltungen des
Standes der Technik besteht darin, daß ein Zugriffgewähr-Ausgang von
einer Prioritätsentscheiderschaltung manchmal eine Zugriffsanforderung an
eine zweite Prioritätsentscheiderschaltung ist. Jede
Prioritätsentscheiderschaltung weist eine endliche Zeitperiode auf, in der sie ihre Funktion
ausführt und Zugriff auf eine einer Vielzahl von anfordernden
Schaltungen gewährt, die gerade gleichzeitig einen Zugriff auf eine andere
Schaltung und ein anderes Betriebsmittel anfordern. Nur nachdem eine
Entscheidung getroffen wurde und ein Zugriff auf die anfordernde
Schaltung mit höchster Priorität an eine erste Prioritätsentscheiderschaltung
gewährt wurde, wird eine Zugriffsanforderung an eine zweite
Prioritätsentscheiderschaltung gemacht. Diese typische Sequenz von Operationen
ist ihrer Natur nach seriell und braucht eine endliche Zeitdauer. Die
endlichen Zeitdauern, die mit der Prioritätsentscheidung zusammenhängen,
tragen zur Begrenzung der Betriebsgeschwindigkeit des Computers bei.
-
Es ist somit ein Ziel dieser Erfindung, eine
Prioritätsentscheidervorrichtung bereitzustellen, welche ihre Funktion ausführen kann, während die
Zeit, die typischerweise zum Verbinden einer anfordernden Schaltung mit
einer angeforderten Schaltung erforderlich ist, verkiirzt wird.
-
Dieses Ziel wird durch eine Prioritätsentscheidervorrichtung gemäß den
kennzeichnenden Merkmalen von Anspruch 1 erreicht. Weitere
vorteilhafte Ausführungsbeispiele können den Unteransprüchen entnommen
werden.
-
Der vorliegende Tandem-Prioritätsentscheider verkürzt die Zeit zwischen
dem Einleiten einer Anforderung durch eine anfordernde Schaltung für
einen Zugriff auf eine angeforderte Schaltung und dem eigentlichen
Funktionieren der anfordernden Schaltung mit der angeforderten
Schaltung. Um diese Zeit zu verkürzen, werden Funktionen, die bisher in
den Prioritätsentscheiderschaltungen auf eine serielle Weise ausgeführt
wurden, parallel ausgeführt.
-
Insbesondere macht ein erster Abschnitt der neuartigen
Prioritätsentscheiderschaltungen, der hier gelehrt wird und der zu einer Schaltung
gehört, die einen Zugriff anfordert, eine Anforderung für einen Zugriff
auf einen anderen Abschnitt der Prioritätsentscheiderschaltung, die zu der
angeforderten Schaltung gehört, bevor der erste Abschnitt die Schaltung
mit der höchsten Priorität aus einer Vielzahl von anfordernden
Schaltungen gewählt hat, die gleichzeitig um einen Zugriff auf die angeforderte
Schaltung angetreten sind. Bevor der Abschnitt des Prioritätsentscheiders,
der zur angeforderten Schaltung gehört, auf die Zugriffsanforderung
antworten kann und ein Zugriffsgewähr-Signal zurückgeben kann, hat der
erste Abschnitt der Prioritätsentscheiderschaltung die anfordernde
Schaltung mit höchster Priorität ausgewählt. Auf diese Weise wird die Zeit
zum Zugreifen auf die angeforderten Schaltungen verringert, und die
Gesamtverarbeitungsgeschwindigkeit im Computersystem wird erhöht.
-
Die Erfindung wird besser nach dem Lesen der folgenden detaillierten
Beschreibung in Verbindung mit der Zeichnung verstanden werden, in
welcher:
-
Fig. 1 ein Blockdiagramm eines Teils eines Computersystems mit
einem gemeinsam genutzten Speicher, Speichersteuereinrichtungen
und Adaptern ist, die den vorliegenden
Tandem-Prioritätsentscheider benutzen, um die Betriebseffizienz des Computersystems
zu verbessern;
-
Fig. 2 ein Blockdiagramm-Schema eines ersten Abschnitts des Tandem-
Prioritätsentscheiders ist, der zu einer anfordernden Schaltung
gemäß der Lehre der vorliegenden Erfindung gehört; und
-
Fig. 3 ein Blockdiagramm-Schema eines zweiten Abschnitts des
Tandem-Prioritätsentscheiders ist, der zu einer angeforderten
Schaltung gemäß der Lehre der Erfindung gehört.
-
s In Fig. 1 ist ein Blockdiagramm eines Teils eines Computersystems mit
Speichersteuereinrichtungen und Adaptern gezeigt, mit denen der
neuartige Tandem-Prioritätsentscheider in Verwendung gezeigt ist. Die
Prozessoren 10 und 11 arbeiten mit dem Systemprozessor 15 in einer
Multiprozessor-Anordnung zusammen, um Anwendungsprogramme zu
verarbeiten.
-
Die Speicher 17 und 19 sind Speicher mit großer Kapazität, welche
grundsätzlich für die gemeinsame Verwendung durch einen
Anwendungsprogrammprozessor 10 und 11 ausgelegt sind, um deren Betriebseffizienz
zu erhöhen und um die Verwendungseffizienz der Speicher 17 und 19 zu
erhöhen. Die Speicher 17 und 19 gehören jeweils zu einer
Speichersteuereinrichtung 16 und einer Speichersteuereinrichtung 18, die den
Zugriff auf die Speicher von mehreren Quellen steuern. Die Prozessoren
10 und 11 sind nicht direkt mit dem Systembus 12 verbunden, sondern
sind mit einem lokalen Bus 9 verbunden. Die Speicher 17 und 19 sind
ebenso nicht mit dem Systembus verbunden. Ebenso mit dem lokalen
Bus 20 sind die Speichersteuereinrichtungen 16 und 17 verbunden. Die
Speichersteuereinrichtungen 16 und 18 steuern den gemeinsamen Zugriff
auf ihre jeweils zugehörigen Speicher 17 und 19 durch den Prozessor 10
und den Prozessor 11. Auf diese Weise wird die Wahrscheinlichkeit,
daß entweder Prozessor 10 oder 11 warten muß, um Zugriff auf einen
Speicher zu gewinnen, vermindert.
-
Auf die Speicher 17 und 19 kann auch vom Systembus 12 über Adapter
20 bzw. 21 zugegriffen werden, um Anwendungsprogramme und zu
verarbeitende Daten in diese Speicher zur nachfolgenden Verwendung
durch die Prozessoren 10 und 11 zu laden. In ähnlicher Weise können
die Speicher 17 und 19 an Schaltungen ausgelesen werden, die mit dem
Systembus 12 verbunden sind.
-
Zusätzlich haben jeder der Prozessoren 10 und 11 Zugriff jeweils über
die Speichersteuereinrichtungen 16 und 17 und die Adapterschaltungen 18
und 19, die damit verbunden sind, auf den Systembus 12, um Zugriff auf
andere damit verbundene Speicherschaltungen zu gewinnen, wie z.B.
einen Systemspeicher 13 und eine Platten-I/O 14.
-
Dies sind vier grundsätzliche Typen von Speicherschreib- und
-lesetransaktionen, die durch die in Blockdiagrammform in Fig. 1 gezeigte
Systemkonfiguration ausgeführt werden können. Ein erster Prozessor 10 kann
in den zur Speichersteuereinrichtung 16 gehörenden Speicher 17 lesen
oder darin schreiben, der Prozessor 11 kann aus dem zur
Speichersteuereinrichtung 18 gehörenden Speicher 19 lesen oder dorthin schreiben, der
Prozessor 10 kann aus dem zur Speichersteuereinrichtung 18 gehörenden
Speicher 19 lesen oder dorthin schreiben, und der Prozessor 11 kann aus
dem zur Speichersteuereinrichtung 16 gehörenden Speicher 17 lesen oder
dorthin schreiben. Ein Zugriff zwischen den Prozessoren 10 und 11 und
den Speichersteuereinrichtungen 16 und 17 fur diese Transaktionen
geschieht über den lokalen Bus 20 und eine Schalt-Schaltung, welche Teil
der Speichersteuereinrichtungen 16 und 18 ist, wie es in Fig. 3 gezeigt
ist. Diese Transaktionen greifen niemals auf andere Speicherschaltungen
zu, die mit dem Systembus 12 verbunden sind.
-
Es gibt auch Transaktionen, bei denen einige Schaltungen, die mit dem
Systembus 12 verbunden sind, wie z.B. ein Prozessor 15, einen Zugriff
auf die Speicher 17 und 19 anfordern und gewinnen kann, um
Programme
oder Daten dorthin zur Verwendung durch die Prozessoren 10 und
11 zu schreiben oder um verarbeitete Daten von diesen Speichern zu
lesen. Eine Anforderung, auf den Speicher 17 zuzugreifen, der zur
Speichersteuereinrichtung 16 gehört, wird immer über den Adapter 20
gemacht, und eine Anforderung, um auf den Speicher 19 zuzugreifen, der
zur Speichersteuereinrichtung 18 gehört, wird immer über den Adapter
21 gemacht.
-
Mit einem anderen Transaktionstyp können die Prozessoren 10 oder 11
vom Systemspeicher 13 oder anderen Speicherschaltungen, die mit dem
Systembus 12 verbunden sind, lesen oder dorthin schreiben. Um diesen
Transaktionstyp zu implementieren, muß der Prozessor 10 nur auf die
Speichersteuereinrichtung 16 zugreifen, und der Prozessor 11 muß nur
auf die Speichersteuereinrichtung 18 zugreifen. Wenn die
Speichersteuereinrichtung 16 vom Prozessor 10 aufgegriffen wird, bestimmt die
Steuereinrichtung 16, ob eine Speicheradresse, die vom Prozessor 10 empfangen
wird, an den Speicher 17 gerichtet ist, und bestimmt ferner, ob auf den
Speicher 17 zugegriffen werden soll. Nach der Bestimmung, daß nicht
auf den Speicher 17 zugegriffen werden soll, reicht die
Speichersteuereinrichtung 16 die Lese- oder Schreibanforderung über den Adapter 20
an den Systembus 12 weiter. Nachdem die Speichersteuereinrichtung 16
eine Speicherleseanforderung an den Adapter 20 übergibt, um auf den
Systembus gelegt zu werden, ist die Speichersteuereinrichtung 16 nicht
frei, andere Lese- oder Schreibanforderungen vom Prozessor 10 zu
bedienen, bis die Leseoperation an den Systemspeicher 13 abgeschlossen
ist. Jedoch kann die Speichersteuereinrichtung 16 immer noch
Lese- oder Schreibanforderungen an den Speicher 17 vom Prozessor 11
bedienen. Schreiboperationen an den Systemspeicher 13 werden als
abgeschlossen betrachtet, sobald die Anforderung, die Adresse und die Daten
an den Adapter 20 übergeben sind, und die Speichersteuereinrichtung 16
kann dann andere Lese- oder Schreibanforderungen vom Prozessor 10
verarbeiten. Wenn die Anforderung auf eine Leseoperation lautet,
werden das Programm oder die Daten zurückgegeben und können nur
über den gleichen Weg zurückgegeben werden, auf dem die Anforderung
gemacht wird. Wenn zusätzlich der Adapter 20 das zurückgegebene
Programm oder die zurückgegebenen Daten empfängt, muß er eine
Zugriffsanforderung an die Speichersteuereinrichtung 16 machen, und
wenn diese Anforderung gewährt wird, wird eine geeignete Verbindung
über die Speichersteuereinrichtung 16 gemacht, und der Adapter 20 gibt
die Daten oder das Programm an den Prozessor 10 zurück. Danach ist
der Prozessor 10 wieder frei, um Speicherlese- oder -schreiboperationen
von den Steuereinrichtungen 16 oder 18 anzufordern. In ähnlicher Weise
kann der Prozessor 11 auf den Systemspeicher 13 oder andere
Speicherschaltungen über seine zugehörigen Speichersteuereinrichtungen 18 und
den Adapter 21 zugreifen.
-
Der letzte Transaktionstyp ist eine Verriegelungszyklus-Transaktion, bei
der z.B. der Prozessor 10 eine Leseverriegelung von entweder dem
Speicher 17 oder dem Speicher 19 ausführen kann, jedoch wird die
Leseoperation nicht direkt durch die Speichersteuereinrichtung 16
ausgeführt. Unter der Annahme, der Prozessor 10 wolle eine
Leseverriegelung auf Speicher 17 durchführen, wird die Adresse und die an die
Speichersteuereinrichtung 16 gesendete Anforderung nicht verwendet, um
den Speicher 17 zu lesen, sondern wird stattdessen an den Adapter 20
übergeben. Der Adapter 20 legt die Leseanforderung und die Adresse
auf den Systembus 12 und erkennt dann, daß die Adresse an den
Speicher 17 gerichtet ist. Der Adapter 20 beantwortet die Anforderung, die
er gerade auf den Bus 12 gelegt hat, und empfängt die Leseanforderung
und die Adresse. Der Adapter 20 macht eine Anforderung zur
Verbindung mit der Speichersteuereinrichtung 16 und dem Speicher 17.
-
Wenn dieser Zugriff gewährt ist, findet das Lesen des Speichers 17 statt.
Die aus dem Speicher 17 gelesene Information wird an den Adapter 20
statt an den Prozessor 10 zurückgegeben. Der Adapter 20 nimmt die
aus dem Speicher 17 gelesene Information und das Ziel und legt es auf
den Systembus 12. Der Adapter 20 erkennt dann, daß die Information,
die er gerade auf den Bus 12 gelegt hat, für den Prozessor 10 bestimmt
ist, und nimmt die Information wieder auf. Der Adapter 20 macht
erneut eine Anforderung zur Verwendung einer Steuereinrichtung 16.
Wenn diese Anforderung gewährt wird, gibt der Adapter 20 die
Information über die Speichersteuereinrichtung 16 und den lokalen Bus 20 an
den Prozessor 10 zurück.
-
Wenn in ähnlicher Weise der Prozessor 10 eine
Leseverriegelungsoperation an den Speicher 19 anfordert, werden die Leseanforderung und die
Adresse über die Speichersteuereinrichtung 16 und den Adapter 20 an
den Systembus 12 übergeben, wie es im letzten Absatz erwähnt ist.
Jedoch erkennt der Adapter 21, daß die Leseanforderung für den
Speicher 19 gedacht ist und nimmt die Anforderung und die Adresse vom
Systembus 12. Der Adapter 21 macht eine Anforderung an die
Speichersteuereinrichtung 18, um den Speicher 19 zu lesen, und wenn die
Anforderung gewährt wird, wird der Speicher 19 gelesen. Ähnlich der
Leseverriegelungsoperation, die im letzten Absatz beschrieben ist, wird
die aus dem Speicher 19 gelesene Information über die
Speichersteuereinrichtung 18 und den Adapter 21 an den Systembus 12 zurückgegeben.
Der Adapter 20 erkennt, daß die Information auf dem Bus 12 für den
Prozessor 10 bestimmt ist und speichert die Information. Der Adapter
20 macht dann eine Anforderung zur Verwendung der
Speichersteuereinrichtung. Wenn diese Anforderung gewährt wird, gibt der Adapter 20
die Information über die Speichersteuereinrichtung 16 und den lokalen
Bus 20 an den Prozessor 10 zurück.
-
Während die in den letzten beiden Absätzen beschriebene
Leseverriegelungsoperation durch den Prozessor 10 an entweder den Speicher 17
oder den Speicher 19 eingeleitet wird, kann auch der Prozessor 11 eine
Leseverriegelungsoperation an die Speicher 17 und 19 anfordern, und die
Operation ist die gleiche wie jene, die in den letzten beiden Absätzen
beschrieben wurde.
-
Durch die Anforderung sowohl der Prozessoren 10 und 11 als auch des
Adapters 20 auf einen Zugriff auf die Speichersteuereinrichtung 16 und
durch die Anforderung sowohl der Prozessoren 10 und 11 als auch des
Adapters 21 auf einen Zugriff auf die Speichersteuereinrichtung 18 ist im
Stand der Technik der Bedarf nach Prioritätsentscheiderschaltungen
erkannt worden, um den Zugriff auf die Schaltungen 16 und 18 zu
steuern. Durch die Anforderung unterschiedlicher Schaltungen auf
Zugriff durch die Adapter 20 und 21 auf die Speichersteuereinrichtungen
16 bzw. 18 wurden auch Prioritätsentscheiderschaltungen benötigt, um den
Zugriff auf die Adapter zu steuern.
-
In der folgenden Beschreibung wird nur auf die Schaltungen 16, 17, 20,
24 und 25 Bezug genommen, jedoch trifft die Beschreibung
gleichermaßen auf die Schaltungen 18,19, 21, 26 und 27 zu.
-
Wenn ein Zugriff durch den Adapter 20 und die
Speichersteuereinrichtung 16 an entweder den Prozessor 10 oder den Speicher 17 angefordert
wird, müssen die Prioritätsentscheiderschaltungen, die zu den Schaltungen
16 und 20 gehören, beide in Betrieb sein, und im Stand der Technik
arbeiten sie auf eine serielle Weise (ein Entscheider trifft seine
Entscheidung vor Anforderung des anderen), was ein Problem schafft. Das
Problem wird durch die endliche Zeitperiode verursacht, in der diese
Schaltungen in Betrieb sind, um ihre Funktion auszuführen und Zugriff
auf eine einer Vielzahl von anfordernden Schaltungen zu gewähren, die
gleichzeitig Zugriff auf eine andere Schaltung anfordern. Erst nachdem
eine Entscheidung hinsichtlich einer ersten Schaltung (z.B. Adapter 20)
getroffen worden ist, wird der Prozeß hinsichtlich einer anderen
Schaltung (z.B. Speichersteuereinrichtung 16) wiederholt. Die angeforderte
Schaltung oder das Betriebsmittel müssen dann antworten und ein Signal
an die ausgewählte anfordernde Schaltung zurückgeben, um den Betrieb
wieder aufzunehmen. In Antwort auf das Rückgabesignal nimmt die
ausgewählte anfordernde Schaltung dann die Ausführung einer Operation
mit der angeforderten Schaltung auf. Diese typische Sequenz von
Operationen ist ihrer Natur nach seriell und verwendet eine endliche
Zeitperiode für jeden Schritt. Die endlichen Zeitperioden addieren sich auf
und tragen zur Begrenzung der Betriebsgeschwindigkeit des Computers
bei.
-
Die Verwendung der vorliegenden Erfindung erleichtert das im letzten
Absatz beschriebene Problem durch Verkürzen der Zeit zwischen dem
Einleiten einer Anforderung der anfordernden Schaltung auf einen
Zugriff auf eine angeforderte Schaltung und dem eigentlichen Funktionieren
der anfordernden Schaltung mit der angeforderten Schaltung.
-
In Fig. 1 ist der Abschnitt des neuartigen Tandem-Prioritätsentscheiders,
der mit der Speichersteuereinrichtung 16 fünktioniert, der
Prioritätsentscheider 24, und der Abschnitt, der mit dem Adapter 20 fünktioniert, ist
der Prioritätsentscheider 25. In ähnlicher Weise fünktionieren die
Entscheiderabschnitte 26 und 27 jeweils mit der Speichersteuereinrichtung 18
und dem Adapter 21. Um die Gesamtbetriebsperiode zu verkürzen, wird
nun eine Prioritätsentscheiderfunktion, die bisher auf eine serielle Weise
ausgeführt worden ist, nun parallel oder als Tandem mit anderen
Funktionen
ausgeführt. Diese Operation wird klar im Rest der Beschreibung
mit Bezug auf die Fig. 2 und 3 beschrieben.
-
Kurz gesagt, um die Schaltungszugriffszeit zu verkürzen, macht die hier
beschriebene Prioritätsentscheiderschaltung 25 eine Anforderung an die
Prioritätsentscheiderschaltung 24 auf einen Zugriff auf eine angeforderte,
gemeinsam genutzte Schaltung, wie z.B. einen Speicher 17, bevor sie die
anfordernde Schaltung mit höchster Priorität aus einer Vielzahl von
anfordernden Schaltungen ausgewählt hat, die gleichzeitig um einen
Zugriff auf die angeforderte Schaltung gerungen haben. Bevor die
Prioritätsentscheiderschaltung 24, die zur angeforderten Schaltung gehört,
auf die Zugriffsanforderung antworten kann, hat die
Prioritätsentscheiderschaltung 25 die anfordernde Schaltung mit höchster Priorität ausgewählt,
um Zugriff auf und Funktion mit der angeforderten Schaltung zu haben.
Auf diese Weise wird die Zeit zum Zugreifen auf angeforderte
Schaltungen vermindert, und die Gesamtverarbeitungsgeschwindigkeit in dem
Computersystem wird erhöht.
-
Ein Ausführungsbeispiel des neuartigen Tandem-Prioritätsentscheiders
besteht aus den in den Fig. 2 und 3 gezeigten Schaltungen. Die
Schaltung in Fig. 2 gehört zur Speichersteuereinrichtung 16, und die Schaltung
in Fig. 3 gehört zum Adapter 20. Die Schaltungen in den Fig. 2 und
3 arbeiten in Tandem und arbeiten zusammen, um die Priorität von
Zugriffsanforderungen an die Speichersteuereinrichtung 16 durch den
Adapter 20, den Prozessor 10, den Prozessor 11 und eine
Speicherauffrischschaltung (nicht gezeigt, jedoch im Stand der Technik wohlbekannt)
zu entscheiden. Obwohl der Betrieb des Prioritätsentscheiders mit der
Speichersteuereinrichtung 16 und dem Adapter 20 beschrieben wird, kann
der Entscheider mit fast jeglichen zwei Schaltungen arbeiten, die um
Zugriff aufeinander ringen müssen.
-
Es gibt eine weitere Tandem-Prioritätsentscheiderschaltung, die zur
Speichersteuereinrichtung 18 und zum Adapter 21 gehört und die auf
exakt die gleiche Weise und für den gleichen Zweck funktioniert.
Demgemäß werden, um eine Wiederholung zu vermeiden, nur die
Tandem-Prioritätsentscheiderschaltungen in dieser Beschreibung beschrieben,
die zur Speichersteuereinrichtung 16 und zum Adapter 20 gehören.
-
In Fig. 2 ist der Teil des Prioritätsentscheiders gezeigt, der zur
Speichersteuereinrichtung 16 gehört und der den Zugriff darauf von anderen
Schaltungen entscheidet. Anforderung A ist ein Signal von einer
Speicherauffrischschaltung, die nicht gezeigt oder beschrieben ist, die jedoch
im Stand der Technik wohlbekannt ist. Der Speicher 17 muß periodisch
aufgefrischt werden, oder sein Inhalt geht verloren, wie es im Stand der
Technik bekannt ist. Demgemäß hat die Speicherauffrischanforderung A
den Zugriff mit höchster Priorität auf die Speichersteuereinrichtung 16.
Anforderung B kommt vom Adapter 20 und fordert einen Zugriff auf
die Speichersteuereinrichtung 16 an, um den Speicher 17 zu lesen oder
zu beschreiben. Anforderung C kommt vom Prozessor 11 und fordert
einen Zugriff auf die Speichersteuereinrichtung 16 an, um den Speicher
17 zu lesen oder zu beschreiben. Anforderung D kommt vom Prozessor
10 und fordert einen Zugriff auf die Speichersteuereinrichtung 16 an, um
den Speicher 17 zu lesen oder zu beschreiben, um Zugriff über den
Adapter 20 auf den Systembus 12 zu gewinnen, um Zugriff auf die
dortigen Schaltungen zu gewinnen, oder um Zugriff auf den Systembus
12 zu gewinnen, um z.B. eine Semaphoren-Operation auszuführen. Die
Anforderung A hat die höchste Priorität, und die Anforderung D hat die
niedrigste Priorität.
-
Die Schaltung in Fig. 2 antwortet auf ein einzelnes Anforderungssignal
an einem ihrer vier Anforderungseingänge, um die Anforderung zu
gewähren. Wenn es mehr als eine Anforderung auf einen Zugriff auf
die Speichersteuereinrichtung 16 über die vier Anforderungseingänge gibt,
wird der Anforderung mit höchster Priorität zuerst der Zugriff gewährt
und danach wird anderen Anforderungen Zugriff in absteigender
Prioritätsordnung gewährt.
-
Der entsprechende Gewähr-Ausgang derjenigen Anforderung geht auf
hoch, welcher der Zugriff gewährt wird. Wenn z.B. die Anforderung B
die höchste Priorität hat und ihr Zugriff gewährt wird, geht der Gewähr-
Ausgang B auf hoch.
-
Wie es im Stand der Technik bekannt ist, gibt es innerhalb der
Speichersteuereinrichtung 16 Gatter zum Lenken von Steuer- und
Datensignalen durch die Steuereinrichtung. Diese Gatter werden selektiv
freigeschaltet abhängig davon, welcher Schaltung, die einen Zugriff
anfordert, der Zugriff auf den Prioritätsentscheider 24 gewährt worden
ist. Demgemäß werden auf eine im Stand der Technik wohlbekannte
Weise die Gewähr-Ausgänge vom Entscheider 24 und andere Signale, wie
z.B. Zeitgabesignale, an eine Steuerschaltung (nicht gezeigt) innerhalb der
Speichersteuereinrichtung 16 eingegeben. Die Steuerschaltung antwortet
auf ihre Eingaben, um Ausgabesignale zu erzeugen, welche die Gatter
innerhalb der Speichersteuereinrichtung 16 selektiv freischalten. Die
Details einer beispielhaften Speichersteuereinrichtung des Standes der
Technik werden hier nicht beschrieben, um ein Ablenken von der
Erfindung zu vermeiden.
-
Wie aus Fig. 2 ersichtlich, ist jeder Anforderungseingang ein Eingang an
ein AND-Gatter, und dessen Ausgang wird verwendet, um ein
entsprechenden Flip-Flop zu setzen. Zum Beispiel wird Anforderung B an ein
AND-Gatter 29 eingegeben, dessen Ausgang mit dem Flip-Flop 33
verbunden ist und verwendet wird, um dieses zu setzen. Der obere
Ausgang ist ein positiver Ausgang jeder der Flip-Flops 32 bis 35 und ist
mit einem Eingang jeweils eines der AND-Gatter 36 bis 39 verbunden,
wie gezeigt, und diese Sicherungsausgänge von den Flip-Flops 32 bis 35
werden auch alle an das OR-Gatter 40 eingegeben. Die Ausgänge von
den AND-Gattern 36 bis 39 sind die Gewähr-Ausgänge, die mit der
Steuerschalttechnik innerhalb der Speichersteuereinrichtung 16 verbunden
sind und die zusätzlich an die Steuerschaltungen innerhalb der
anfordernden Schaltungen zurückgegeben werden, so daß sie wissen, daß ein
Zugriff gewährt wurde, und den Betrieb wieder aufnehmen.
-
Der untere Ausgang von jedem der Flip-Flops 32 bis 35 ist ein negativer
Ausgang und befindet sich auf einem Eins-Pegel, wenn sich die Flip-
Flops in ihrem Normal- oder Nichtarbeits-Zustand befinden. Der
Normalzustand liegt vor, wenn es keine Zugriffsanforderungen und
Gewährungen gibt, die von der Schaltung in Fig. 2 gemacht sind. Der negative
Ausgang vom Flip-Flop 35, der normalerweise auf einem Eins-Pegel ist,
ist mit einem Eingang jedes der Eingangs-AND-Gatter 28 bis 30 höherer
Priorität verbunden, wie gezeigt. Der negative Ausgang vom Flip-Flop
34 ist mit einem Eingang jeder der Eingangs-AND-Gatter 28 und 29
verbunden. Schließlich ist der negative bzw. negierende Ausgang vom
Flip-Flop 34 mit einem Eingang eines Eingangs-AND-Gatters 28
verbunden. Mit den gerade beschriebenen Verbindungen mit den Eingangs-
AND-Gattern 28 bis 30 sind alle Eingänge dieser Gatter normalerweise
hoch außer beim Anforderungseingang. Wenn es ein Anforderungssignal
auf einem Anforderungseingang gibt, ist der letzte Eingang seines
Eingangs-AND-Gatters hoch, und es gibt eine Ausgabe. Zum Beispiel sind
die unteren drei Eingänge des AND-Gatters 28 normalerweise hoch, und
wenn es eine Anforderung auf dem Anforderungseingang A gibt, ist der
letzte Eingang hoch, und es gibt eine Ausgabe vom AND-Gatter 28.
-
Der Ausgang von jedem der AND-Gatter 28 bis 31 ist invertiert, wird
jedoch zurückinvertiert durch den invertierenden Eingang des jeweiligen
Flip-Flops der Flip-Flops 32 bis 35, mit dem die Eingangs-AND-Gatter
jeweils verbunden sind. Wenn demgemäß die Schaltung in Fig. 2
leerläuft und ein Anforderungssignal erscheint, liefert das Eingangs-AND-
Gatter, mit dem sie verbunden ist, eine Ausgabe, welche den Zustand
des Flip-Flops ändert, mit dem der Ausgang des Gatters verbunden ist.
Zum Beispiel wird ein Anforderungssignal auf dem Anforderungseingang
C das Flip-Flop 34 von seinem Normalzustand in einen gesetzten
Zustand ändern, wobei der positive Ausgang hoch ist, welcher ein Eins-
Pegel ist. Die bevorzugte Implementierung erfordert, daß die Flip-Flops
32 bis 35 und 49 bis 51 so ausgewählt werden, daß ihre metastabile
Charakteristik für die Verzögerungszeit der Verzögerungsschaltung 41
geeignet ist. Die Verzögerungsschaltung ist ein 74F74, erhältlich von
Fairchild Semiconductor.
-
Wie zuvor erwähnt, ist der positive oder Eins-Ausgang von jedem der
Flip-Flops 32 bis 35 mit einem Eingang eines zugehörigen Gatters der
AND-Gatter 36 bis 39 verbunden, wie gezeigt in Fig. 2. Wenn der
positive oder Eins-Ausgang eines der Flip-Flops 32 bis 35 sich auf seinen
Eins-Zustand durch ein Anforderungssignal ändert, veranlaßt dies, daß
der eine Eingang seines zugehörigen AND-Gatters der AND-Gatter 36
bis 39 hoch wird. Damit dort eine Ausgabe von diesen AND-Gattern
vorliegt, müssen alle anderen Eingänge auch hoch sein. Dies wird durch
die negierenden Ausgänge der Flip-Flops 32 bis 35 erreicht. Die
negierenden Ausgänge sind normalerweise auf einem Eins- oder Hoch-Pegel,
wie zuvor erwähnt. Der negierende Ausgang des Flip-Flops 32 ist mit
einem der Eingänge der AND-Gatter 33 bis 39 eines niedrigeren
Prioritätsniveaus verbunden, und der negierende Ausgang des Flip-Flops 33 ist
mit einem der Eingänge der AND-Gatter 38 und 39 eines niedrigeren
Prioritätsniveaus verbunden. Schließlich ist der negierende Ausgang des
Flip-Flops 34 mit einem der Eingänge des AND-Gatters 39 eines
niedrigeren Prioritätsniveaus verbunden.
-
Wenn gerade keine Zugriffsanforderungen vorliegen, sind die Flip-Flops
32 bis 35 alle in ihrem Normalzustand, wie zuvor beschrieben. Die
Eingänge zu den AND-Gattern 28 bis 31 und 36 bis 39, die mit dem
negierenden Ausgang des Flip-Flops 32 bis 35 verbunden sind, sind alle
hoch. Das Auftreten eines Anforderungssignals auf irgendeinem Eingang
der Anforderungseingänge wird dadurch dazu führen, daß ein
entsprechendes Flip-Flop der Flip-Flops 32 bis 35 gesetzt wird. Zum Beispiel
wird die Anforderung B eine Ausgabe vom Eingangs-AND-Gatter 2
verursachen, welches das Flip-Flop 33 setzen wird, und sein positiver
(oberer) Ausgang ist hoch, während sein negierender (unterer) Ausgang
niedrig ist. Dies verursacht seinerseits, daß alle Eingänge des Ausgangs-
AND-Gatters 37 hoch sind, so daß es eine Hoch-Ausgabe von diesem
Gatter gibt. Diese Hoch-Ausgabe ist das Gewähr-Signal B. Wie zuvor
erwähnt, kam die Anforderung B vom Adapter 20 für eine Lese- oder
Schreiboperation zum Speicher 17. Das Gewähr-Signal B veranlaßt den
Adapter 20, seinen Betrieb wieder aufzunehmen.
-
Während der Adapter 20 Zugriff auf die Speichersteuereinrichtung 16
hat, verbleibt das Flip-Flop 33 gesetzt. Das Flip-Flop 33 hat in seinem
gesetzten oder Betriebszustand seinen negierenden Ausgang auf niedrig.
Mit den zuvor beschriebenen Verbindungen zu den AND-Gattern haben
die Ausgangs-AND-Gatter 38 und 39 beide einen niedrigen Eingang, der
sie daran hindert, eine Gewähr-Ausgabe zu liefern, solange das Flip-Flop
33 gesetzt ist. Auch ist ein Eingang des Eingangs-AND-Gatters 28 auf
niedrig, welches verhindert, daß eine nachfolgende Anforderung A
gewährt wird, bis das Flip-Flop rückgesetzt ist, wenn eine anfordernde
Schaltung mit ihrer Funktion über den Adapter 20 an den Speicher 17
fertig ist.
-
Eine Verzögerungsleitung 41 liefert einen Takt an das Flip-Flop 42,
welches dann eine Eingabe (Freigabe) an jedes Ausgangs-AND-Gatter 36
bis 39 liefert und muß hoch sein, damit eine Gewähr-Signalausgabe von
diesen AND-Gattern vorliegt. Ein OR-Gatter 40, die
Verzögerungsschaltung 41 und das Flip-Flop 42 arbeiten zusammen, um die Erzeugung
eines Gewähr-Signals um 40 Nanosekunden zu verzögern, nachdem ein
Anforderungssignal empfangen ist. Dies wird aus zwei Gründen getan.
Erstens erlaubt die Zeitverzögerung, daß ein betätigtes Flip-Flop der
Flip-Flops 32 bis 35 einschwingt, bevor das Ausgangs-AND-Gatter, das
damit verbunden ist, betätigt werden kann. Dies stellt einen
zuverlässigeren Schaltungsbetrieb sicher. Zweitens erlaubt die Verzögerung, daß
einer Schaltung höherer Priorität der Zugriff gewährt wird, wenn zwei
Anforderungssignale gleichzeitig an den Anforderungseingängen vorliegen.
Wenn z.B. die Anforderung A und die Anforderung C gleichzeitig
empfangen wurden, würden ihre Flip-Flops 32 und 34 zur gleichen Zeit
gesetzt. Die Betätigung des Flip-Flops 32 nimmt die hohe Eingabe an
das Ausgangs-AND-Gatter 38 vom negierenden Ausgang des Flip-Flops
32 weg. Kurz danach geht der Ausgang des Verzögerungs-Flip-Flops 42
auf hoch und nur das Ausgangs-AND-Gatter 36 ist mit allen seinen
Eingängen auf hoch zu dieser Zeit. Die Gewährung A der höheren
Prioritätsebene wird erzeugt.
-
Der Ausgang des AND-Gatters 37 in Fig. 2 ist über den Anschluß CF
mit einer Verzögerungsschaltung 56 des Prioritätsentscheiders in Fig. 3
verbunden. Der Zweck wird später in dieser Beschreibung mit Bezug
auf Fig. 3 beschrieben.
-
In Fig. 3 ist das schematische Blockdiagramm des anderen Teils des
Tandem-Prioritätsentscheiders gezeigt, der mit dem Adapter 20
funktioniert. Die Schaltung in Fig. 3 ist ähnlich der Schaltung in Fig. 2, die
in den vorigen Absätzen beschrieben worden ist. Es gibt nur drei
Anforderungseingänge, die mit Anforderung E, Anforderung F und
Anforderung G bezeichnet sind. Der Adapter 20 weist zwei
Warteschlangen auf, in welchen er die Zugriffsanforderungen speichert, die
über den Systembus 12 in Fig. 1 empfangen sind, um auf die
Speichersteuereinrichtung 16 zuzugreifen und danach den Speicher 17 zu lesen
oder zu beschreiben. Dies sind die Anforderungen E1 und E2, die an
das OR-Gatter 55 eingegeben werden, welches diese als eine
Anforderung E an das Eingangs-AND-Gatter 46 kombiniert. Die Anforderung
F kommt von einer anderen Computerschaltung, genannt ein
Akkomodierer, die hier nicht beschrieben ist. Die Anforderung G ist eine Anforde
rung, die von einer Schaltung empfangen ist, die mit dem Systembus 12
in Fig. 1 verbunden ist, nicht um auf den Speicher 17 zuzugreifen,
sondern um eine Verbindung durch die Speichersteuereinrichtung 16 und
dann den lokalen Bus 9 mit dem Prozessor 10 einzurichten. Die
Anforderung E hat die höchste Priorität, wohingegen die Anforderung G die
niedrigste Priorität hat.
-
Die Eingangs-AND-Gatter 46 bis 48, die Flip-Flops 49 bis 51 und die
Ausgangs-AND-Gatter 52 bis 54 sind alle miteinander verbunden und
funktionieren miteinander auf die gleiche Weise wie die ähnlichen
Schaltungskomponenten, die mit Bezug auf Fig. 2 gezeigt und beschrieben
sind. Demgemäß wird aus Gründen der Kürze der Betrieb dieser
Schaltungen hier nicht wiederholt. Die Unterschiede zwischen den
Schaltungen in den Fig. 2 und 3 werden jedoch im Detail beschrieben.
-
Der Hauptunterschied zwischen den Fig. 2 und 3 besteht darin, daß der
negierende (untere) Ausgang von jedem der Flip-Flops 49 bis 51 mit
Eingängen eines AND/OR-INVERT-Gatters 57 verbunden ist, welches
ein 74S64-Gatter ist, das von Texas Instruments erhältlich ist. Die
Hauptfunktion des Gatters 57 ist es, das Anforderungssignal B zu
erzeugen, welches die Anforderung des Adapters 20 an die
Prioritätsschalttechnik der Speichersteuereinrichtung 16 von Fig. 2 ist. Wenn eines der
Flip-Flops 49 bis 51 im Prozeß des Gewährens einer Zugriffsanforderung
durch den Adapter 20 an die Speichersteuereinrichtung 16 betätigt wird,
wird eine Anforderung B vom Gatter 57 ausgegeben. Diese Anforderung
B wird an den Prioritätsentscheider 24 in Fig. 2 eingegeben, wie zuvor
beschrieben.
-
Wenn der Prioritätsentscheider der Speichersteuereinrichtung 16 in Fig.
2 im Prozeß des Gewährens eines Zugriffs des Adapters 20 auf die
Speichersteuereinrichtung 16 ist, wird das Flip-Flop 33 betätigt. Der
Gewähr-Ausgang B geht auf hoch, und diese hohe Ausgabe wird über
den Anschluß CF zurückgegeben und an die Verzögerungsschaltung 56
mit 30 Nanosekunden in Fig. 3 eingegeben. Nach der Verzögerung um
30 Nanosekunden wird diese hohe Ausgabe an das Gatter 57 eingegeben,
wie gezeigt. In Antwort auf die verzögerte hohe Eingabe wird die
Anforderungsausgabe B vom Gatter 57 abgebrochen. Dies erlaubt das
Löschen des Flip-Flops 33 in Fig. 2, ohne daß eine Doppelanforderung
auf Zugriff auf die Speichersteuereinrichtung 16 vom Adapter 20 erhalten
wird.
-
Wenn somit eine einzelne Anforderung an den Adapter 20 gemacht wird,
auf die Speichersteuereinrichtung 16 zuzugreifen, gibt es eine
Anforderung E, F oder G. Zur gleichen Zeit, zu der eines der Flip-Flops 49
bis 51 betätigt wird, wird die Adapterzugriffsanforderung B erzeugt und
an die Prioritätsentscheider-Schalttechnik der Speichersteuereinrichtung
von Fig. 2 eingegeben. Die Anforderung auf Zugriff auf die
Speichersteuereinrichtung 16 wird in Tandem mit der Prioritätsentscheidung durch
die Schalttechnik in Fig. 3 gemacht. Bevor der Prioritätsentscheider der
Speichersteuereinrichtung in Fig. 2 die Anforderung B berücksichtigen
kann, erzeugt der Prioritätsentscheider in Fig. 3 eine Gewähr-Ausgabe.
Dieser Tandem-Betrieb beschleunigt den Gesamtbetrieb der
Prioritätsentscheider-Schalttechnik verglichen mit dem Stand der Technik. Für
gleichzeitige Zugriffsanforderungen wird die Anforderung mit höchster
Priorität zuerst gewährt.
-
Der MR-Eingang an das Gatter 57 ist von Wert, wenn dem Adapter 20
Zugriff über die Speichersteuereinrichtung 16 auf den Speicher 17
gewährt worden ist, um eine Leseoperation durch den Betrieb der
Prioritätsentscheider in sowohl Fig. 2 als auch Fig. 3 auszufuhren. Dieser
MR-Eingang geht auf hoch, wenn die angeforderten Daten aus dem
Speicher 17 ausgelesen werden, und verbleibt auf hoch, bis die
angeforderten Daten über den Adapter 20 an die anfordernde Schaltung, die
mit dem Systembus 12 verbunden ist, zurückgegeben werden. Dies
verhindert, daß andere Anforderungen gemacht werden, um auf die
Speichersteuereinrichtung 16 vom Adapter 20 zuzugreifen, und zwar bis
die Leseoperation abgeschlossen ist.
-
Während das oben beschriebene das bevorzugte Ausführungsbeispiel der
Erfindung ist, kann der Fachmann zahlreiche Änderungen vornehmen.
Zum Beispiel kann die Anzahl von Anforderungseingängen geändert
werden, oder der Verzögerungsbetrag, der durch die
Verzögerungsschaltungen vorgesehen ist, kann variiert werden. Des weiteren sind die
Schaltungen, welche die hier offenbarte Tandem-Prioritätsschalttechnik
verwenden können, zahlreich und gehen über die beispielhafte
Speichersteuereinrichtung und den Adapter; welche offenbart sind, hinaus.