DE2900380C2 - - Google Patents

Info

Publication number
DE2900380C2
DE2900380C2 DE19792900380 DE2900380A DE2900380C2 DE 2900380 C2 DE2900380 C2 DE 2900380C2 DE 19792900380 DE19792900380 DE 19792900380 DE 2900380 A DE2900380 A DE 2900380A DE 2900380 C2 DE2900380 C2 DE 2900380C2
Authority
DE
Germany
Prior art keywords
signal
bus
unit
memory
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE19792900380
Other languages
English (en)
Other versions
DE2900380A1 (de
Inventor
William E. Natick Mass. Us Woods
Richard A. Bolton Mass. Us Lamay
John L. Sudbury Mass. Us Curley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US05/867,266 external-priority patent/US4181974A/en
Priority claimed from US05/867,262 external-priority patent/US4245299A/en
Priority claimed from US05/867,270 external-priority patent/US4236203A/en
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE2900380A1 publication Critical patent/DE2900380A1/de
Application granted granted Critical
Publication of DE2900380C2 publication Critical patent/DE2900380C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4213Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

Die vorliegende Erfindung betrifft eine Schaltungsanordnung nach dem Oberbegriff des Anspruchs 1.
Busorientierte Datenverarbeitungssysteme sind bereits bekannt, beispielsweise aus der US Patentschrift 39 97 896. Das darin beschriebene Datenverarbeitungssystem weist einen gemeinsamen, asynchronen Bus auf, an den die verschiedenen Systemeinheiten, wie Speicher, Rechen- und Steuereinheiten in einer vorgegebenen Prioritätshierarchie angeschlossen sind und über den die zwischen den einzelnen Einheiten zu übermittelnden Informationen, d. h., Daten, Adressen und Steuerzeichen (Funktionscodes) übertragen werden. Die an den Bus angeschlossenen Systemeinheiten weisen jeweils ein Prioritätsnetzwerk auf, durch das die Prioritätshierarchie vorgegeben ist. Die von einer Recheneinheit (CPU) für die Verarbeitung benötigten Daten (Operanden und Befehle) müssen in der Regel aus einer anderen Einheit, z. B. einem Speicher abgerufen werden. Bei dem in der obigen Patentschrift beschriebenen Datenverarbeitungssystem ruft der Zentralprozessor die benötigten Daten aus dem Speicher einzeln ab, indem er über den Bus einen Lesezugriff zum Speicher anfordert, den er dann bekommt, wenn er gegenüber den anderen Einheiten die höchste Zugriffspriorität auf den Bus aufweist. Er kann jedoch mit jeder Anfrage (request) immer nur ein Datenwort (Operand oder Befehl) erhalten. Das beschriebene Datenverarbeitungssystem ist jedoch so entworfen, daß der Bus in der Zwischenzeit, bis das angeforderte Datenwort vom angerufenen Speicher für die Übertragung zurück zur Zentraleinheit bereitgestellt ist, nicht für andere Datenübertragungsvorgänge blockiert wird und daß auch der betroffene Zentralprozessor nicht untätig verharren muß, bis das angeforderte Datenwort vom Speicher eintrifft. Es wird also in einem ersten Buszyklus zunächst die Anfrage abgesetzt, wobei der Zentralprozessor der "Master" und der angerufene Speicher der "Slave" ist. Sobald der Speicher zu einem entsprechend späteren Zeitpunkt das angeforderte Datenwort bereitgestellt hat, versucht dieser Zugriff zum Bus zu bekommen, was in der Regel relativ schnell zum Erfolg führt, da den Speichereinheiten grundsätzlich eine hohe Zugriffspriorität zugewiesen ist. Innerhalb dieses Buszyklus wird nun das angeforderte Datenwort vom angerufenen Speicher an den anfordernden Zentralprozessor über den Bus übertragen, wobei jetzt der Speicher der "Master" und der Zentralprozessor der "Slave" ist.
Beim Stand der Technik benötigt man also für jede Anfrage (request) zwei Busübertragungszyklen, einen für die Anfrage selbst und einen für die Übertragung des einen Datenwortes. Selbst wenn eine Sequenz von Datenworten aus dem Speicher abzurufen ist, bei denen die Worte in aufeinanderfolgenden Adressen stehen, wie dies bei Befehlssequenzen häufig vorkommt, so ist jedesmal eine besondere, erneute Anfrage durch den Zentralprozessor erforderlich. Dies beeinträchtigt stark den zeitlichen Ablauf der Datenverarbeitung, weil für die ständig erforderlichen Anfragen für jedes einzelne Datenwort ein hoher Zeitaufwand erforderlich ist.
Es ist die Aufgabe der vorliegenden Erfindung, diesen Zeitaufwand herabzusetzen und damit den Verarbeitungsdurchsatz des Datenverarbeitungssystems zu steigern. Es ist dabei beabsichtigt, diese Aufgabe so zu lösen, daß die Grundstruktur des oben beschriebenen Datenverarbeitungssystems nach dem Stand der Technik keine tiefgreifenden Veränderungen erfährt, sondern dahingehend verbessert wird, daß mit der vorhandenen Systemgrundstruktur neben Einzel- auch Mehrfachzugriffe möglich sind.
Die vorstehende Aufgabe wird in der erfindungsgemäßen Schaltungsanordnung durch die im Patentanspruch 1 gekennzeichneten Schaltungsmerkmale gelöst.
Die vorliegende Erfindung wird nachstehend anhand von Ausführungsbeispielen unter Bezugnahme auf die Zeichnung näher erläutert; dabei zeigt
Fig. 1 eine allgemeine Blockbilddarstellung des erfindungsgemäßen Datenverarbeitungssystems;
Fig. 2-6 Formate der verschiedenen über den gemeinsamen Bus des Datenverarbeitungssystems übertragenen Daten;
Fig. 7 ein sich auf die Busoperationen beziehendes Zeitdiagramm;
Fig. 8 das Blockbild-Schaltungsdiagramm des Prioritätsnetzwerks des Zentralprozessors;
Fig. 9 und 9A Blockbild-Schaltungsdiagramme des Prioritätsnetzwerks und der Doppelwortlogik-Schaltkreise der Speichersteuereinheit;
Fig. 10 das Blockbild-Schaltungsdiagramm der Schnittstelle der Speichersteuereinheit zum Bus;
Fig. 11 und 11A Blockbild-Schaltungsdiagramme der Schnittstelle des Zentralprozessors zum Bus;
Fig. 12 Zeitdiagramme der Operationen des Zentralprozessors, der Speichersteuereinheit und der über den Bus übertragenen Signale;
Fig. 13 in einer Blockbilddarstellung die Adressierungstechnik im vorliegenden Datenverarbeitungssystem; und
Fig. 14 die Anordnung der Speichermoduln in einer Speicheranordnung.
Busanforderung und Antwortzyklen
Der Bus gestattet einen Informationsaustausch zwischen zwei beliebigen Einheiten während einer gegebenen Zeit über einen gemeinsamen (gemultiplexten) Signalweg. Jede Einheit, die einen Informationsaustausch wünscht, fordert einen Buszyklus an. Wenn dieser Buszyklus zugeteilt ist, wird die betreffende Einheit zur Mastereinheit und kann jede andere Einheit im System als Slave-Einheit adressieren. Die meisten Informationsübertragungen erfolgen in der Richtung vom Master zum Slave. Manche Arten von Austausch über den Bus erfordern einen Antwortzyklus (zum Beispiel ein einmaliges Lesen eines Abrufspeichers). In Fällen, in denen ein Antwortzyklus erforderlich ist, nimmt der Anfordernde die Rolle des Master ein, zeigt an, daß eine Antwort erforderlich ist und kennzeichnet sich selbst gegenüber der Slave-Einheit. Wenn die erforderliche Information zur Verfügung steht (was von der Slave-Antwortzeit abhängt), übernimmt der Slave dann die Rolle des Master und veranlaßt eine Informationsübertragung zu der anfordernden Einheit. Diese vervollständigt den einzigen Abrufaustausch, der in diesem Fall zwei Buszyklen in Anspruch genommen hat.
Die Zwischenzeit zwischen diesen beiden Buszyklen (dem Anforderungszyklus und dem Antwortzyklus) kann für anderen Verkehr des Systems verwendet werden, der die beiden Einheiten nicht betrifft.
Einige Arten des Bustransfers erfordern zwei Antwortzyklen (zum Beispiel ein doppeltes Lesen eines Abrufspeichers). In Fällen, in denen zwei Antwortzyklen erforderlich sind, übernimmt die anfordernde Einheit die Rolle des Masters, gibt an, daß zwei Antworten (jeweils eine Antwort für ein zu übertragendes Wort) erforderlich sind, indem sie einen Zweifachabrufindikator setzt und kennzeichnet sich selbst gegenüber dem Slave. Bevor der erste Antwortzyklus veranlaßt wird, stellt die Slave-Einheit fest, ob das erste und zweite Informationswort innerhalb der antwortenden Einheit (Slave) vorhanden sind. Wenn das erste Wort der erforderlichen Information zur Verfügung steht (was von der Slave-Antwortzeit abhängt), übernimmt die Slave-Einheit die Rolle des Masters und veranlaßt eine Übertragung zu der anfordernden Einheit. Wenn beide Worte in der antwortenden Einheit während des ersten Antwortzyklus zur Verfügung stehen, gibt die antwortende Einheit der anfordernden Einheit, wieder durch Setzen des Zweifachanforderungsindikators, an, daß es sich um den ersten von zwei Antwortzyklen handelt, und daß noch ein zweiter Antwortzyklus folgen wird. Wenn das zweite Wort der erforderlichen Information zur Verfügung steht, nimmt die Slave-Einheit wieder die Rolle der Mastereinheit an und veranlaßt eine Übertragung zu der anfordernden Einheit. Während des zweiten Antwortzyklus setzt die antwortende Einheit den Zweifachanforderungsindikator nicht, womit sie der anfordernden Einheit anzeigt, daß es sich um den letzten Antwortzyklus handelt. Hiermit ist der Zweifachzugriff vervollständigt, der in diesem Fall drei Buszyklen in Anspruch genommen hat. Die Zwischenzeit zwischen jedem dieser drei Zyklen kann auf dem Bus für anderen Verkehr ausgenützt werden, der die beiden betrachteten Einheiten nicht betrifft.
Im Falle einer Doppelzugriffsanordnung, bei der lediglich ein Wort in der antwortenden Einheit zur Verfügung steht, erwidert die antwortende Einheit, wenn die Information verfügbar wird, mit einem einzigen Antwortzyklus, indem der Zweifachanforderungsindikator nicht gesetzt wird, womit der anfordernden Einheit angezeigt ist, daß der erste Antwortzyklus auch der letzte sein wird. Diese vervollständigt den Transfer, der zwei Buszyklen (ein Anforderungszyklus und ein einziger Antwortzyklus) in diesem Falle in Anspruch genommen hat. Wenn die Einheit, die die Zweifachzugriffanforderung ausgelöst hat, noch ein zweites Wort der Information wünscht, muß die anfordernde Einheit einen Anforderungszyklus in Gang setzen und im Falle des Lesens eines Speichers die Adresse des gewünschten zweiten Wortes liefern. Diese zweite Anforderung, bei der es sich entweder um eine Einfach- oder um eine Doppelzugriffsanforderung handeln kann, wird von einer Slave-Einheit, die das erste Wort der angeforderten Information enthält, im Zuge der zweiten Anforderung geliefert.
Bussignale und Zeitverhältnisse
Eine Mastereinheit kann jede andere am Bus angeschlossene Einheit als Slave-Einheit adressieren. Sie tut dies, indem sie die Adresse der Slave-Einheit auf die Adressenleitungen gibt. Es sind beispielsweise 24 Adressenleitungen vorhanden, die jeweils eine von zwei Bedeutungsinhalten annehmen können, was vom Zustand einer zugeordneten Steuerleitung abhängt, der das Speicherbezugssignal (BSMREF) genannt wird. Wenn das Speicherbezugssignal eine binäre Null ist, wird das Format gemäß Fig. 2 an die Adressenleitungen gelegt, wobei die vierundzwanzigste der Leitungen das am wenigsten signifikante Bit führt. Es sei bemerkt, daß in der dieser Beschreibung die Begriffe "binäre Null" und "binäre Eins" für niedriges und hohes Potential der elektrischen Signale verwendet werden. Wenn das Speicherbezugssignal eine binäre Eins ist, liegt ein Bitformat an, wie es in Fig. 3 dargestellt ist. Wenn der Speicher adressiert ist, können über den Bus bis zu 2²⁴ Bytes direkt im Speicher adressiert werden. Wenn die Einheiten Steuerinformationen, Daten oder Interrupts weiterleiten, adressieren sie sich gegenseitig mit der Kanalnummer. Mit der Kanalnummer können bis zu 2¹⁰ Kanäle über den Bus adressiert werden. Zusammen mit der Kanalnummer wird ein Sechs-Bit-Funktionscode übertragen, der angibt, welche der 2⁶ möglichen Funktionen von dieser Übertragung inbegriffen sind.
Wenn eine Mastereinheit einen Antwortzyklus von der Slave-Einheit anfordert, gibt sie dies der Slave-Einheit durch Eins-Potential (Lesebefehl) auf einer Steuerleitung an, die BSWRITE genannt wird. (Das andere Potential auf dieser Leitung bedeutet, daß keine Antwort erforderlich ist, das heißt es ist ein Schreibbefehl.) In diesem Fall gibt die Mastereinheit ihre Identität der Slave-Einheit mittels einer Kanalnummer an. Die Datenleitungen führen im Gegensatz zu den Busadreßleitungen einen Code mit dem in Fig. 4 angegebenen Format, um die Identität der Mastereinheit anzugeben, wenn von der Slave-Einheit eine Antwort gewünscht wird. Der Antwortzyklus wird an die anfordernde Einheit mittels eines Kein-Speicher-Bezugs-Transfers gerichtet. Die Steuerleitung, die als zweite Hälfte-Buszyklusleitung (BSSHBC-) bezeichnet wird, wird aktiviert, um anzuzeigen, daß es sich hier um den erwarteten Zyklus handelt (verglichen mit einem nicht dringenden Transfer von einer anderen Einheit aus). Wenn eine Mastereinheit einen Doppelzugriff von einer Slave-Einheit anfordert, zeigt sie dies der Slave-Einheit durch 1 Potential auf einer BSDBPL- bezeichneten Steuerleitung an. (Das andere auf dieser Leitung auftretende Potential bedeutet, daß kein Doppelzugriff, also ein Einfachzugriff gefordert wird.) Wenn die Slave-Einheit auf die Anforderung der Mastereinheit antwortet, wird ein Potentialzustand dieser selben Kontrolleitung (BSDBPL-) dazu benutzt, der anfordernden Einheit anzuzeigen, daß es sich bei diesem Antwortzyklus um den ersten von zwei Antwortzyklen handelt (wobei der andere Potentialzustand dann anzeigt, daß der letztere Antwortzyklus einer Doppelzugriffoperation vorliegt).
Das verteilte Verbindungsunterbrechernetzwerk übernimmt die Rolle des Zuteilens von Buszyklen und gleichzeitig des Trennens der Anforderungen. Prioritäten werden auf der Basis der räumlichen Lage am Bus verteilt, wobei die erste am Bus angeschlossene Einheit die höchste Priorität hat. Die Logik, die die Funktion der Unterbrechung übernimmt, ist auf alle Einheiten verteilt, die an den Bus angeschlossen sind und ist in vollem Umfang in dem US-Patent 40 30 075 beschrieben.
In einem typischen Ausführungsbeispiel des Systems wird dem Speicher die höchste Priorität und dem Zentralprozessor die niedrigste Priorität zugeteilt, wobei die anderen Einheiten im Hinblick auf die Erfordernisse ihrer Funktionen angeordnet sind. Die Logik, die erforderlich ist, um die Unterbrecherfunktion für den Zentralprozessor zu bewirken, ist in Fig. 8 dargestellt, diejenige für den Speicher in Fig. 9.
Wie die Fig. 1 zeigt, weist ein typisches System demnach einen Vielfachleitungsbus 200 auf, der mit einem Speicher 1-202 über N-204 verbunden ist, wobei solche Speicher die höchste Priorität und der Zentralprozessor 206 die niedrigste Priorität hat. Mit dem Bus können zum Beispiel auch eine Rechnereinheit 208 sowie verschiedene Steuereinheiten 210, 212 und 214 verbunden sein. Die Steuereinheit 210 dient beispielsweise der Steuerung von vier peripheren Aufzeichnungseinheiten 216. Die Steuereinheit 212 wird dazu verwendet, eine Steuerung des Nachrichtenaustauschs über ein Modem vorzunehmen, wogegen die Steuereinheit 214 dazu verwendet wird, die Massenspeicher zu steuern, wie zum Beispiel eine periphere Bandspeichereinheit 218 oder eine periphere Plattenspeichereinheit 220. Wie vorstehend besprochen, kann jede der mit dem Bus 200 verbundenen Einrichtungen einen Speicher oder eine beliebige andere Einheit adressieren, die mit dem Bus verbunden ist. So kann zum Beispiel die periphere Bandspeichereinheit 218 über die Steuereinheit 214 den Adressenspeicher 202 ansteuern.
Wie nachstehend erläutert werden wird, weist jede der direkt mit dem Bus verbundenen Einheiten eine Unterbrecherlogik auf, wie sie im US-Patent 40 30 075 dargestellt und beschrieben ist. Ferner enthält jede dieser Einheiten eine Adressenlogik, wie sie die Fig. 9 und 9A für den Fall einer typischen Doppelzugriffspeicher-Adressenlogik und Fig. 11 und 11A für eine typische Doppelzugriff-Zentralprozessor-Adressenlogik zeigen. Die Adressenlogik für eine typische Basiseinheitsteuerung ist ebenso im US-Patent 40 30 075 beschrieben. Einheiten, die nicht direkt mit dem Bus verbunden sind, wie die Einheiten 216, 218 und 220, weisen ebenfalls eine Unterbrecherlogik auf.
Für jeden Endpunkt in einem gesonderten System besteht eine Kanalnummer mit Ausnahme der Verarbeitungseinheiten in Form eines Speichers, die durch die Speicheradresse identifiziert werden. Jeder derartigen Einrichtung wird eine Kanalnummer zugeordnet. Sowohl im Vollduplexbetrieb als auch im Halbduplexbetrieb arbeitende Einrichtungen benötigen zwei Kanalnummern. Einheiten, die lediglich Informationen aufnehmen oder solche, die lediglich Informationen abgeben benötigen jeweils lediglich eine Kanalnummer. Die Kanalnummern sind leicht änderbar und dementsprechend können ein oder mehrere Hexadezimal-Drehschalter (Einstellknopfschalter) für jede solcher Einheiten verwendet werden, die mit dem Bus verbunden sind, um die Adresse der Einheit anzugeben oder einzustellen. Wenn ein System eingerichtet wird, kann die Kanalnummer für die betreffende mit dem Bus verbundene Einheit in für dieses System geeigneter Weise geartet sein. Einheiten mit Mehrfacheingängen/-ausgängen (I/O) erfordern gewöhnlich einen Block von aufeinanderfolgenden Kanalnummern. So ist beispielsweise für eine Einheit mit einem Vierfachanschluß ein Drehschalter erforderlich, mit dem die sieben höherwertigen Bits einer Kanalnummer angegeben werden, wobei die drei niedrigstwertigen Bits dazu dienen, den jeweiligen Anschluß anzugeben und die Eingangsanschlüsse von den Ausgangsanschlüssen zu unterscheiden. Die Kanalnummer einer Slave-Einheit erscheint auf dem Adressenbus bei allen nicht zu einem Speicher führenden Übertragungen, wie dies in Fig. 3 gezeigt ist. Jede Einheit vergleicht die Nummer mit ihrer eigenen intern gespeicherten Nummer (intern gespeichert mit Hilfe der Drehschalter). Die Einheit, die einen Vergleich durchführt, ist per Definition die Slave-Einheit und muß in diesem Zyklus antworten. Gewöhnlich werden nicht zwei Punkte in einem einzigen System mit derselben Kanalnummer bezeichnet. Wie die Fig. 3 zeigt, kann eine spezielle Bus- bzw. I/O-Funktion durchgeführt werden, die durch die Bits 18 bis 23 auf den Busadreßleitungen für nicht mit Speichern in Zusammenhang stehende Informationsübertragungen bezeichnet wird. Funktionscodes dienen dazu, Ausgabe- und Eingabeoperationen zu kennzeichnen. Alle ungeraden Funktionscodes bezeichneten Ausgabeübertragungen (Schreiben), während alle geraden Funktionscodes Eingabeübertragungsanforderungen (Lesen) bezeichnen. So kann ein Funktionscode von 00 (Basis 16) dazu verwendet werden, einen Einfachspeicherabruf zu kennzeichnen und ein Funktionscode von 20 (Basis 16) kann dazu verwendet werden, eine Doppelleseoperation zu kennzeichnen. Der Zentralprozessor prüft die am wenigsten signifikanten Bits 18-23 des 6-Bit-Funktionscodefeldes für einen Eingabe-/Ausgabebefehl und benutzt eine Busleitung, um die Richtung anzuzeigen.
Es gibt verschiedene Eingabe- und Ausgabefunktionen. Eine der Ausgabefunktionen ist ein Befehl, durch den eine Datenmenge, beispielsweise 16 Bits, vom Bus auf den Kanal gegeben werden. Die Bedeutung der einzelnen Datenbits ist komponentenspezifisch, die Datenmenge wird jedoch dazu benutzt, die Bedeutung der Daten anzugeben, die zu speichern, auszusenden, zu übertragen usw. sind, und zwar in Abhängigkeit von der Funktion der betreffenden Komponente. Eine andere solche Ausgabefunktion ist ein Befehl, durch den beispielsweise eine Menge von 24 Bit in ein nicht dargestelltes Kanalregister geladen wird. Die Adresse ist eine Speicher-Byte-Adresse und gibt die Anfangsposition im Speicher an, in der im Kanal mit der Aufnahme oder der Ausgabe von Daten begonnen wird. Verschiedene andere Ausgangsfunktionen umfassen einen Ausgabe-Rang-Befehl der die Größe des Pufferspeichers angibt, der für den speziellen Informationsaustausch dem Kanal zugeordnet ist, ferner einen Ausgabe-Steuer-Befehl, der durch seine einzelnen Bit besondere Antworten veranlaßt, ferner Ausgabe-Task-Funktionen wie zum Beispiel Druckbefehle, ferner eine Ausgabe-Konfiguration, die ein Befehl ist, mit dem bestimmte Funktionen angezeigt werden, wie zum Beispiel die Terminalgeschwindigkeit, der Kartenlesemodus usw. sowie ein Ausgabe-Interrupt-Befehl, der beispielsweise dazu führt, daß ein 16-Bit-Wort in den Kanal gegeben wird, das ein in Fig. 5 gezeigtes Format aufweist. Die ersten 10 Bits zeigen die Kanalnummer des Zentralprozessors an und die Bits 10 bis 15 die Programmunterbrechungsebene. Auf eine Unterbrechung hin wird die Kanalnummer des Zentralprozessors auf dem Adressenbus zurückgesendet, wogegen die Bezeichnung für die Unterbrechungsebene auf dem Datenbus zurückgesendet wird.
Zu den Eingabefunktionen gehören auch Funktionen, die den Ausgabefunktionen ähnlich sind, mit der Ausnahme, daß in diesem Fall die Eingabedaten von einer Einheit zum Bus übertragen werden. Demnach gehören zu den Eingabefunktionen die Eingabedaten, die Eingabeadresse und die Eingabe-Rang-Befehle, wie auch die Aufgaben-Konfigurations- und Eingabe-Steuer-Befehle. Hinzu kommt der Einheiten-Identifizierungs-Befehl, wobei in dem Kanal die Einheiten-Identifizierungsnummer auf den Bus gegeben wird. Es gehören ferner zwei Eingabebefehle hierzu, durch die ein Statuswort 1 oder ein Statuswort 2, wie gerade erläutert, vom Kanal auf den Bus gegeben wird.
Die Angabe durch das Statuswort 1 zeigt zum Beispiel unter anderem, ob die betreffende Einheit sich in Funktion befindet oder nicht, ob sie bereit ist, vom Bus Information aufzunehmen, ob ein Fehlerstatus vorliegt, oder ob Bereitschaft erforderlich ist. Das Statuswort macht beispielsweise unter anderem eine Parity-Angabe, gibt an, ob es sich um einen nicht korrigierbaren oder um einen korrigierten Speicherfehler handelt, ob ein zugelassener Befehl vorliegt oder beispielsweise ob dieser sich auf eine nicht existierende Einheit oder ein nicht existierendes Betriebsmittel bezieht.
Wie vorstehend erläutert, wird eine einzige Einheitenidentifizierungsnummer jeder verschiedenen Einheitstype zugeteilt, die mit dem Bus verbunden wird. Diese Nummer erscheint auf dem Bus als Antwort auf den Eingabefunktionsbefehl, der als Eingabeeinheits-Identifizierung bezeichnet wird. Diese Nummer wird in dem in Fig. 6 gezeigten Datenformat auf den Bus gegeben. Zweckmäßigerweise ist diese Nummer in 13 Bits, die die Einheit bezeichnen (Bits 0 bis 12) und in 3 Bits unterteilt, die bestimmte Funktionsarten der Einheit bei Bedarf angeben (Bits 13 bis 15).
Eine Einheit, die den Zentralprozessor unterbrechen möchte, fordert einen Buszyklus an. Wenn dieser Buszyklus zugeteilt worden ist, gibt die Einheit ihren Unterbrechervektor auf den Bus, der aus der Kanalnummer des Zentralprozessors und der Nummer der Unterbrechungsebene besteht. Die Einheit liefert somit als Unterbrechungsvektor die Nummer des Masterkanals und die Nummer dessen Unterbrechungsebene. Wenn es sich um die Kanalnummer des Zentralprozessors handelt, nimmt dieser die Unterbrechung dann an, wenn die angebotene Ebene zahlenmäßig kleiner als die gerade vorliegende interne Zentralprozessorebene ist, und wenn der Zentralprozessor nicht gerade einen anderen Unterbrechungsbefehl angenommen hat. Die Annahme wird durch ein Bus-ACK-Signal (BSACKR-) angezeigt. Wenn der Zentralprozessor den Unterbrechungsbefehl nicht annehmen kann, wird ein NAK-Signal zurückgesendet (BSNAKR-). Einheiten, die ein NAK-Signal empfangen (das manchmal auch als NACK-Signal bezeichnet wird) unternehmen einen erneuten Versuch, wenn vom Zentralprozessor ein Signal empfangen wird, das die Wiederaufnahme einer normalen Unterbrechung anzeigt (BSRINT-). Der Zentralprozessor sendet dieses Signal aus, wenn er eine Ebenenveränderung vollendet hat und daher in der Lage ist, einen Unterbrechungsbefehl wieder anzunehmen. Die Kanalnummer wird zur Verwendung in den Vektor aufgenommen, da mehr als ein Kanal sich auf der Unterbrechungsebene befinden kann. Die Unterbrechungsebene 0 ist von besonderer Bedeutung, da sie besagt, daß die Einheit nicht unterbrechen soll. Fig. 7 zeigt das Zeitdiagramm des Busses und wird nachstehend noch eingehender besprochen. Allgemein liegen die Zeitverhältnisse jedoch wie folgt: Der Zeitgeber ist für alle Übertragungen von einer Mastereinheit zu einer Slave-Einheit maßgeblich, die an den Bus angeschlossen sind. Die Geschwindigkeit, mit der die Übertragung stattfinden kann, ist von der Konfiguration des Systems abhängig. Das bedeutet, daß je mehr Einheiten an den Bus angeschlossen sind, und je länger der Bus ist wegen der Laufzeitverzögerungen desto länger es dauert, um über den Bus eine Verbindung zustande zu bringen. Auf der anderen Seite verringert eine kleinere Anzahl von Einheiten die Antwortzeit. Dementsprechend ist das Buszeitraster tatsächlich asynchron. Eine Mastereinheit, die einen Buszyklus wünscht, macht eine Busanforderung. Das Signal BSREQT- ist allen Einheiten am Bus gemeinsam, und wenn es den Binärwert 0 annimmt, zeigt es an, daß wenigstens eine Einheit einen Buszyklus anfordert. Wenn der Buszyklus zugeteilt ist, wird das Signal BSDCNN- zu einer binären Null, womit angezeigt ist, daß die Unterbrechungsfunktion, die noch eingehender anhand der Fig. 8 und 9 erläutert werden wird, vervollständigt ist, und daß eine bestimmte Mastereinheit nun die Steuerung auf dem Bus übernommen hat. Zu dem Zeitpunkt, zu dem das Signal BSDCNN- binär 0 wird, gibt der Master die zu übertragende Information auf den Bus. Jede Einheit am Bus leitet vom Signal BSDCNN- einen internen Abtastimpuls ab. Der Abtastimpuls wird zum Beispiel um angenähert 60 Nanosekunden vom Empfang des binären Nullzustands des BSDCNN-Signals aus gerechnet verzögert. Wenn in der Slave-Einheit die Verzögerungszeit abgelaufen ist, sind die Laufzeitänderungen auf dem Bus berücksichtigt und jede Slave-Einheit ist in der Lage, ihre Adresse (Speicheradresse oder Kanalnummer) zu erkennen. Die adressierte Slave-Einheit kann nun eine von drei Antworten abgeben, entweder ein ACK, NAK oder ein WAIT-Signal oder genauer gesagt ein BSACKR-, ein BSNAKR- oder ein BSWAIT-Signal. Die Antwort wird auf den Bus gegeben und dient als ein Signal an den Master, daß die Slave-Einheit die angeforderte Aktion erkannt hat. Die Steuerleitungen nehmen dann wieder den binären Nullzustand in einer Zeitfolge an, wie sie in Fig. 7 dargestellt ist. Somit ist die Kommunikation über den Bus völlig asynchron und jede Übertragung findet immer nur dann statt, wenn die vorhergehende Übertragung empfangen worden ist. Bei einzelnen Einheiten werden daher verschiedene Zeitspannen zwischen dem Abtastimpuls und der Übertragung des ACK-Signals bzw. der übrigen Signale benötigen, was von dem inneren Aufbau der Einheiten abhängt. Es ist eine Buszeitsperre vorgesehen, um mögliche nicht programmierte Stops in einer Schleife zu vermeiden.
Information, die über den Bus übertragen wird, kann zum Beispiel 50 Signale bzw. Bits umfassen, die wie folgt unterteilt sein können: 24 Adreßbits, 16 Datenbits, 5 Steuerbits und 5 Integritätsbits. Diese verschiedenen Signale werden nachstehend erläutert.
Die Unterbrecherfunktion, die unter Bezugnahme auf die Fig. 8 und 9 eingehender erläutert wird, ist diejenige, durch die mehrere gleichzeitige Anforderungen von verschiedenen Einheiten nach Bedienung und Zuteilung von Buszyklen bedient werden, und zwar auf der Basis eines Lageprioritätssystems. Wie vorstehend angegeben, hat der Speicher die höchste Priorität, der Zentralprozessor dagegen hat die niedrigste Priorität, und beide Einheiten liegen räumlich an gegenüberliegenden Enden des Busses 200. Andere Einheiten sind zwischen den erwähnten Einheiten angeschlossen und weisen Prioritäten auf, die relativ zu ihrer Annäherung an das Ende des Busses ansteigen, an dem der Speicher angeschlossen ist. Die Prioritätslogik befindet sich in jeder der direkt an den Bus angeschlossenen Einheiten und dient dazu, die Unterbrecherfunktion durchzuführen. Jedes Netzwerk dieser Prioritäten umfaßt ein Zuteilungs-Flip-Flop. Zu jedem Zeitpunkt kann nur ein einziges bestimmtes Zuteilungs-Flip-Flop gesetzt sein und die betreffende Einheit ist dann per Definition die Mastereinheit für den betreffenden Buszyklus. Jede Einheit kann eine Benutzeranforderung zu jeder Zeit abgeben, wodurch ihr Benutzer-Flip-Flop gesetzt wird. Es können daher zu jeder Zeit viele Benutzer-Flip-Flops gesetzt sein, von denen jedes einen zukünftigen Buszyklus darstellt. Darüber hinaus weist jede am Bus angeschlossene Einheit ein Anforderungs-Flip-Flop auf. Wenn alle Einheiten als Gesamtheit betrachtet werden, können die Anforderungs-Flip-Flops als ein Anforderungsregister betrachtet werden. Das Ausgangssignal dieses Registers ist es, das das Unterbrecheernetzwerk beliefert, das so funktioniert, daß es lediglich ein Zuteilungs-Flip-Flop setzt, unabhängig davon, wieviele Anforderungen vorliegen. Genauer gesagt, wenn keine Anforderungen vorliegen, dann würde auch kein Anforderungs-Flip-Flop gesetzt sein. Das erste gesetzte Benutzer-Flip-Flop würde veranlassen, daß sein Anforderungs-Flip-Flop gesetzt wird. Dieses würde daraufhin nach einer kurzen Verzögerungszeit, wie nachstehend noch beschrieben werden wird, andere Einheiten daran hindern, ihre Anforderungs-Flip-Flops zu setzen. Was also passiert ist, daß von allen Benutzeranforderungen für eine vorgegebene Zeitspanne (Verzögerungszeit) sozusagen ein Schnappschuß gemacht wird. Das Ergebnis ist, daß eine Anzahl von Anforderungs-Flip-Flops während dieser Verzögerungszeit gesetzt werden, was von ihrer Ankunft abhängt. Um sicherzustellen, daß die Ausgangssignale der Anforderungs-Flip-Flops stabil bleiben, bewirkt jede Einheit eine derartige Verzögerung, daß eine solche Stabilisierung eintritt. Ein bestimmtes Zuteilungs-Flip-Flop wird gesetzt, wenn bei der zugehörigen Einheit das Anforderungs-Flip-Flop gesetzt ist und die Verzögerungszeit verstrichen ist und keine Einheit mit höherer Priorität einen Buszyklus wünscht. Es wird dann nach einer weiteren Verzögerungszeit ein Abtastimpuls erzeugt, und schließlich wird das Zuteilungs-Flip-Flop zurückgesetzt, wenn die Mastereinheit ein ACK, NAK oder WAIT-Signal von der Slave-Einheit empfängt.
Wie vorstehend erläutert, sind drei Slave-Antworten möglich, nämlich das ACK, das WAIT oder das NAK-Signal. Außerdem gibt es einen vierten Zustand, in dem überhaupt kein Antwortsignal gesendet wird. Für den Fall, daß keine an den Bus angeschlossene Einheit die Übertragung ihrer eigenen Adresse erkennt, wird keine Antwort abgegeben. Es wird dann eine Zeitsperrfunktion wirksam, und es wird ein NAK-Signal empfangen, das den Bus löscht. Wenn die Slave-Einheit in der Lage ist, die auf dem Bus vom Master übertragene Information aufzunehmen und dies auch tun möchte, dann wird ein ACK-Signal erzeugt. Die WAIT-Antwort wird von einer Slave-Einheit erzeugt, wenn diese vorübergehend belegt ist und die übertragene Information im Augenblick nicht aufnehmen kann. Auf den Empfang des WAIT-Signals hin unternimmt die Mastereinheit erneut einen Versuch während des nächsten ihr zugeteilten Buszyklus und fährt so fort, bis sie erfolgreich ist. Einige der Gründe, weswegen von einer Slave-Einheit eine WAIT-Antwort ausgesendet wird, wenn der Zentralprozessor der Master ist, liegen zum Beispiel dann vor, wenn der Speicher eine Slave-Einheit ist und er auf die Anforderung einer anderen Einheit antwortet, oder wenn eine Steuereinheit eine Slave-Einheit ist, zum Beispiel dann, wenn die Steuereinheit auf die Antwort vom Speicher wartet, oder wenn die Steuereinheit noch nicht den vorangegangenen Eingabe-/Ausgabe-Befehl verarbeitet hat. Das NAK-Signal, das von der Slave-Einheit abgegeben wird, bedeutet, daß sie zu diesem Zeitpunkt einen Informationstransfer aufnimmt. Auf den Empfang eines NAK-Signals hin wird eine Mastereinheit nicht unmittelbar einen erneuten Versuch unternehmen, sondern einen spezifischen Arbeitsgang ausführen, der von der Art der Mastereinheit abhängt.
Wie vorstehend allgemein erläutert worden ist, treten auf dem Bus Basiszeitsignale auf, die die Kommunikation vervollständigen. Diese fünf Signale, wie sie vorstehend erläutert wurden, sind das Busanforderungssignal (BSREQT-), das, wenn es binär Null ist, anzeigt, daß eine oder mehrere Einheiten am Bus den Buszyklus angefordert haben; ferner das Datenzykluszustandssignal (BSDCNN-), das, wenn es binär Null ist, anzeigt, daß eine bestimmte Mastereinheit einen Informationsaustausch vornimmt und eine Information für einige besondere Slave-Einheiten auf den Bus gegeben hat; ferner das ACK-Signal (BSACKR-), das ein von einer Slave-Einheit an die Mastereinheit gegebenes Signal ist und dadurch, daß es das Signal zur binären 0 macht, anzeigt, daß die Slave-Einheit den Informationsaustausch annimmt; ferner das NAK-Signal (BSNAKR-), das ein von der Slave-Einheit an die Mastereinheit gegebenes Signal ist und der Mastereinheit, dann, wenn es binär Null ist, anzeigt, daß sie den Informationsaustausch ablehnt; und schließlich das WAIT-Signal (BSWAIT-), das ein von der Slave-Einheit an die Mastereinheit gesendetes Signal ist und bei binärer Null anzeigt, daß die Slave-Einheit die Entscheidung über den Informationsaustausch aufschiebt.
Darüber hinaus und wie vorstehend angedeutet, können bis zu 50 Informationssignale als Informationsinhalt eines jeden Buszyklus übertragen werden. Diese Signale sind für die Benutzung durch Slave-Einheiten an der Vorderflanke des Abtastimpulses bestimmt. Die ganzen nachfolgenden Erläuterungen sind beispielhaft, und es sei darauf hingewiesen, daß die Anzahl der Bits für die verschiedenen Funktionen auch variiert sein kann. So können 16 Leitungen bzw. Bits für die Daten und insbesondere für die Signale BSDT00- bis BSDT15- vorgesehen sein. Für die Adressen, und genauer gesagt für die Signale BSAD00- bis BSAD23- sind 24 Leitungen vorgesehen. Für Das Speicherbezugssignal (BSMREF-) ist ein Bit vorgesehen, das, wenn es binär Null ist, anzeigt, daß die Adressenleitungen eine Speicheradresse führen. Wenn das Speicherbezugssignal den Binärwert Eins annimmt, zeigt es an, daß die Adressenleitungen eine Kanaladresse und einen Funktionscode führen, wie dies in Fig. 3 gezeigt ist. Es ist auch ein Byte-Signal (BSBYTE-) vorgesehen, das dann, wenn es den Binärwert Null hat, anzeigt, daß der augenblickliche Austausch sich um einen Byte-Transfer und nicht um einen Wort-Transfer handelt, wobei ein Wort typischerweise zwei Bytes umfaßt. Es gibt auch ein Schreibsignal (BSWRIT-), das beim Binärwert Null anzeigt, daß die Slave-Einheit aufgefordert ist, an die Mastereinheit Informationen zu liefern. Ein besonderer Bustransfer liefert diese Information. Außerdem ist ein Zweite-Hälfte-Bus-Zyklussignal (BSSHBC-) vorgesehen, das von der Mastereinheit benutzt wird, um der Slave-Einheit anzuzeigen, daß es sich um die vorhergehend angeforderte Information handelt. Von der Zeit an, zu der ein Paar von Einheiten am Bus eine Leseoperation aufgenommen hat (was durch das Signal BSWRIT- angezeigt wird), bis zu Beginn des zweiten Zyklus, in dem der Transfer beendet wird (angezeigt durch BSSHBC-), sind beide Einheiten für alle anderen Einheiten am Bus besetzt. Es ist auch ein Doppelzugriffsignal bei den 50 auf dem Bus auftretenden Signalen vorgesehen. Das Doppelzugriffsignal (BSDBPL-) wird dazu verwendet, eine Doppelzugriffoperation zu veranlassen. Es handelt sich hierbei um einen Multizyklustransfer über den Bus, bei dem eine Mastereinheit während eines einzigen Anforderungszyklus zwei Informationswörter von einer Slave-Einheit anfordert. Die Slave-Einheit antwortet auf die Doppelanforderung, indem sie zwei Antwortzyklen veranlaßt, jeweils einen für eines der angeforderten Datenwörter. Hierdurch wird der Verkehr auf dem Bus dadurch verringert, daß der Mastereinheit zwei Informationswörter in drei Buszyklen (einem Anforderungszyklus, einem ersten Antwortzyklus und einem zweiten Antwortzyklus) zugeführt werden. Im Gegensatz hierzu stehen vier Buszyklen (erster Anforderungszyklus, erster Antwortzyklus, zweiter Anforderungszyklus und zweiter Antwortzyklus), die erforderlich sind, wenn zwei einzelne Zugriffoperationen durchgeführt werden. Als Beispiel für eine Doppelzugriffinformation ist der Fall zu nennen, wenn der Zentralprozessor zwei Wörter vom Speicher anfordert, in welchem Falle folgende drei Buszyklen stattfinden. Während des ersten Buszyklus, das Anforderungszyklus, ist das Signal BSMREF- binär Null, was anzeigt, daß der Adreßbus die Speicheradresse des ersten Wortes enthält, der Datenbus enthält die Kanalnummer des Zentralprozessors, das Signal BSWRIT- ist binär Eins, womit angezeigt ist, daß eine Antwort (Speicher lesen) angefordert wird, das Signal BSDBPL- ist binär Null, was anzeigt, daß es sich um eine Doppelzugriffoperation handelt und darüber hinaus ist das Signal BSSHBC- binär Eins, was anzeigt, daß es sich nicht um die zweite Hälfte des Buszyklus handelt. Während der zweiten Hälfte des Buszyklus der Doppelzugriffoperation enthält der Adreßbus die Kanalnummer des Zentralprozessors, der Datenbus enthält das erste Wort der Speicherinformation, das BSSHBC-Signal ist binär Null, womit die zweite Hälfte des Buszyklus (Leseantwort) bezeichnet ist, das BSDBPL-Signal ist binär Null, was anzeigt, daß es sich um den ersten Antwortzyklus handelt, und daß nun ein zweiter Antwortzyklus folgt, das BSMREF-Signal ist binär Eins, und das BSWRIT-Signal ist nicht durch den Speicher gesetzt und daher binär Eins. Während des dritten Buszyklus, des zweiten Antwortzyklus, enthält der Adreßbus die Kanalnummer des Zentralprozessors, der Datenbus enthält das zweite Wort der Speicherinformation, das BSSHBC-Signal ist binär Null und zeigt damit eine Leseantwort an, das BSDBPL-Signal ist binär Eins und zeigt an, daß es sich um den letzten Antwortzyklus handelt, das BSMREF-Signal ist binär Eins, und das BSWRIT-Signal ist binär Eins. Wie bei allen anderen Operationen kann die Zwischenzeit auf dem Bus zwischen allen drei Buszyklen der Doppelzugriffoperation von anderen Einheiten benutzt werden, die nichts mit dem erwähnten Informationsaustausch zu tun haben.
Darüber hinaus ist zu verschiedenen Fehler- und Parity-Signalen ein Sperrsignal bei den 50 Informationssignalen auf dem Bus. Das Sperrsignal (BSLOCK-) wird dazu benutzt, eine Sperroperation zu bewirken. Es handelt sich hier um eine Multizyklus-Busübertragung, wobei eine Einheit ein Wort oder einen Mehrfachwortbereich des Speichers lesen oder schreiben kann, ohne daß eine andere Einheit in der Lage ist, mit einem anderen Sperrbefehl die Operation zu unterbrechen. Hierdurch wird die Schaltung des Systems zu einem Multiprozessorsystem erleichtert. Die Wirkung der Sperroperation besteht darin, einen Belegtzustand über die Dauer des Speicherzyklus hinaus für verschiedene Arten von Operationen zu verlängern. Andere Einheiten, die versuchen, Sperrsignale abzusetzen, bevor der letzte Zyklus abgeschlossen ist, empfangen eine NAK-Antwort. Der Speicher antwortet jedoch noch auf andere Speicheranforderungen. Ein Beispiel für eine solche Sperroperation ist der Lese-Modifizier-Schreib-Zyklus, dessen drei Buszyklen folgendermaßen geartet sind. Während des ersten Buszyklus führt der Adreßbus die Speicheradresse, der Datenbus die Kanalnummer der verursachenden Einheit, das Signal BSWRIT- ist binär Eins, was anzeigt, daß eine Antwort erwartet wird, das Signal BSLOCK- ist binär Null und das Signal BSSHBC- ist binär Eins, wodurch angezeigt wird, daß es sich um eine Sperroperation handelt; ferner ist das Signal BSMREF- binär Null. Während des zweiten Buszyklus der Lese-Modifizier-Schreib-Operation führt der Adreßbus die Kanalnummer der verursachenden Einheit, der Datenbus führt die Speicherinformation, das BSSHBC-Signal ist binär Null und bezeichnet damit eine Leseantwort und das Signal BSMREF- ist binär Eins. Während des dritten Buszyklus führt der Adreßbus die Speicheradresse, der Datenbus führt die Speicherdaten, das BSLOCK-Signal ist binär Null und das BSSHBC-Signal ist binär Null, womit die Vervollständigung der erwähnten Operation angezeigt wird, ferner ist das Signal BSMREF- binär Null. Darüber hinaus ist das BSWRIT-Signal binär Null, was bedeutet, daß keine Antwort erforderlich ist. Wie bei allen anderen Operationen können die Zwischenzeiten zwischen zwei der drei Buszyklen der beschriebenen Operation auf dem Bus von anderen Einheiten, die nichts mit dem beschriebenen Informationsaustausch zu tun haben, in Anspruch genommen werden.
Zusätzlich zu den anderen Steuersignalen, kann auch das Buslöschsignal (BSMCLR-) auf den Bus gegeben werden, das normalerweise binär Eins ist und das den Binärwert Null annimmt, wenn der Masterlöschknopf, der sich auf dem Schaltpult des Zentralprozessors befindet, betätigt wird. Das Buslöschsignal wird auch binär Null während der Phase der Inbetriebnahme. Das Wiedereinschalte-Unterbrechersignal (BSRINT) ist ein Impuls kurzer Dauer, der vom Zentralprozessor immer dann erzeugt wird, wenn dieser eine Ebenenänderung abschließt. Wenn dieses Signal empfangen wird, wird jede Slave-Einheit, die vorhergehend unterbrochen hatte und dabei zurückgewiesen wurde, wieder einen Interrupt vornehmen.
Das Zeitdiagramm gemäß Fig. 7 wird nunmehr ins einzelne gehend im Hinblick auf den Adressenlogikkreis des Speichers und der Zentralprozessoreinheit erläutert.
Wie die Fig. 7 zeigt, weist jeder Buszyklus drei unterscheidbare Teile auf, genauer gesagt die Periode (7-A bis 7-C), während der die anfordernde Einheit mit der höchsten Priorität den Bus belegt, die Periode (7-C bis 7-E), während der die Mastereinheit eine Slave-Einheit ruft, und die Periode (7-E bis 7-G), während der die Slave-Einheit antwortet. Wenn der Bus unbelegt ist, weist das Busanforderungssignal (BSREQT-) den Binärwert Eins auf. Die Impulsflanke beim Übergang dieses Signals in den negativen Wert zum Zeitpunkt 7-A setzt einen Prioritätsnetzzyklus in Gang. Innerhalb des Systems ist eine asynchrone Verzögerung möglich, die (zum Zeitpunkt 7-B) eine Einstellung des Prioritätnetzes und eine Auswahl einer Mastereinheit ermöglicht. Das nächste auf dem Bus auftretende Signal ist das BSDCNN- oder Datenzykluszustandssignal. Der Übergang dieses Signals zum Binärwert Null zum Zeitpunkt 7-C bedeutet, daß einer Mastereinheit die Benutzung des Busses zugeteilt worden ist. Daraufhin bedeutet die zweite Phase der Busoperation, daß die Mastereinheit ausgewählt worden ist und nun Informationen auf die Daten-, Adreß- und Steuerleitungen des Busses 200 an die Slave-Einheit senden kann, die sie bezeichnet.
Die Slave-Einheit bereitet sich darauf vor, die dritte Phase der Busoperation einzuleiten, die mit der Abfallflanke des Abtast- oder BSDCND-Signals zum negativen Wert hin beginnt. Das Abtastsignal wird verzögert, beispielsweise um 60 Nanosekunden von der erwähnten Abfallflanke an, wozu die Verzögerungsleitung 25 gemäß Fig. 8 dient. Aufgrund der Abfallflanke des BSDCND-Signals zum Zeitpunkt 7-D kann die Slave-Einheit nun prüfen, ob es sich um ihre Adresse handelt, und ob sie aufgefordert ist, eine Entscheidung zu treffen, welche Antwort zu erzeugen ist. In einem typischen Fall veranlaßt dies ein Bestätigungssignal (BSACKR-), das von der Slave-Einheit erzeugt wird, oder in nicht typischen Fällen ein BSNAKR- oder BSWAIT-Signal, oder sogar das Fehlen einer Antwort (für den Fall, daß die Adresse einer nicht existierenden Slave-Einheit angegeben wird). Die Abfallflanke des Bestätigungssignals zur Zeit 7-E veranlaßt, wenn es von der Mastereinheit empfangen worden ist, daß das Mastersignal BSDCNN- zum Zeitpunkt 7-F den Binärwert Eins annimmt. Das Abtastsignal geht wieder in den Binärzustand Eins zum Zeitpunkt 7-G über, der durch die Verzögerungsleitung 25 um eine Zeitspanne gegenüber dem Zeitpunkt 7-F verzögert auftritt. Demnach werden in der dritten Phase der Busoperation die auf dem Bus auftretenden Daten und Adressen durch die Slave-Einheit gespeichert und das Ende des Buszyklus wird eingeleitet. Das Ende Buszyklus, das heißt der Zeitpunkt des Übergangs des BSDCNN-Signals zum Binärwert Eins gibt eine andere Prioritätsnetzauflösung dynamisch frei. Zu diesem Zeitpunkt kann ein Busanforderungssignal erzeugt werden, und wenn ein solches nicht empfangen wird, bedeutet dies, daß der Bus wieder seinen Freizustand annimmt, und dementsprechend das BSREQT-Signal in den Binärzustand Null übergeht. Wenn zu diesem Zeitpunkt des Busanforderungssignal vorhanden ist, das heißt der Binärwert Null, wie gezeigt, startet es den asynchronen Prioritätsnetzprozeß, auf den hin eine weitere Abfallflanke des BSDCNN-Signals folgt, die gestrichelt zu den Zeitpunkten 7-I und 7-J gezeigt ist. Es sei bemerkt, daß diese Prioritätsnetzauflösung nicht wartepflichtig ist oder durch eine Anstiegsflanke des Bestätigungssignals zum Zeitpunkt 7-H eingeleitet werden muß, sondern zum Zeitpunkt 7-F, der dem Übergang des Busses in den Freizustand folgt, eingeleitet wird, wenn daraufhin eine Einheit einen Buszyklus wünscht. Obwohl die Prioritätsnetzauflösung zum Zeitpunkt 7-F durch eine Anstiegsflanke des BSDCNN-Signals eingeleitet werden kann, muß die zweite Abfallflanke des BSDCNN-Signals in Antwort auf das Setzen des Zuteilungs-Flip-Flop 22 gemäß Fig. 8 die Anstiegsflanke des Bestätigungssignals zum Zeitpunkt 7-H abwarten, das heißt das binäre Signal Null des NOR-Gliedes 21 gemäß Fig. 8 muß vom Rücksetzeingang des Zuteilungs-Flip-Flop 22 weggenommen sein. Die Abfallflanke des BSDCNN-Signals zum Zeitpunkt 7-I veranschaulicht den Fall, in dem die Prioritätsnetzauflösung zum Zeitpunkt 7-F getaktet wird und die Auflösung vor dem Zeitpunkt 7-H erfolgt. Die Abfallflanke des BSDCNN-Signals zum Zeitpunkt 7-J veranschaulicht den Fall, in dem das Bestätigungssignal eine Löschung bewirkt, bevor das Prioritätsnetz aufgelöst wird. Die Abfallflanke des BSDCNN-Signals zum Zeitpunkt 7-L veranschaulicht den Fall, in dem zum Zeitpunkt 7-F keine Busanforderung vorliegt und die Prioritätsnetzauflösung durch ein späteres Busanforderungssignal BSREQT- zum Zeitpunkt 7-K getriggert wird. Dieser Vorgang wiederholt sich in asynchroner Art und Weise.
Doppelzugriffoperation
Es wird nun die Doppelzugriffoperation anhand eines Beispiels mehr ins einzelne gehend erläutert. Bei diesem Beispiel nimmt der Zentralprozessor eine Doppelzugriffsanforderung des Speichers vor und es werden die drei der Anforderung und der Antwort zugeordneten Buszyklen geprüft. Während des ersten Buszyklus ist der Zentralprozessor die Mastereinheit und der Speicher die Slave-Einheit. Während dieses ersten Zyklus fordert der Zentralprozessor den Bus an, wobei das Prioritätslogiknetzwerk gemäß Fig. 8 benutzt wird und die Speichersteuerung antwortet, indem sie die Bus-Schnittstellenlogik gemäß Fig. 10 benutzt. Während des zweiten und dritten Zyklus, in denen die Speichersteuerung die Mastereinheit und der Zentralprozessor die Slave-Einheit ist, fordert der Speicher den Bus an, indem er das Prioritätslogiknetzwerk gemäß Fig. 9 benutzt, der Zentralprozessor antwortet, indem er die Busschnittstellenlogik gemäß den Fig. 11 und 11A benutzt.
Doppelzugriff-Anforderungszyklus
Der erste Buszyklus der Doppelzugriff-Anforderungszyklus, wird nunmehr unter Bezugnahme auf die Fig. 8 und 10 näher erläutert.
Zentralprozessorprioritätslogiknetzwerk
Gemäß dem in Fig. 8 dargestellten Prioritätslogiknetzwerk ist der Prioritätsnetzzyklus zunächst frei und das Busanforderungssignal (BSREQT-) auf Leitung 10 hat den Binärwert Eins. Wenn dieses Busanforderungssignal den Binärwert Eins hat, ist das Ausgangssignal des Empfängers 11 (invertierender Verstärker) binär Null. Dieses Ausgangssignal wird dem einen Eingang eines AND-Gliedes 12 zugeführt. Die anderen dem Verknüpfungsglied 12 zugeführten Eingangssignale sind das Masterlöschsignal (MYMCLR-), das normalerweise binär Eins ist, und das Ausgangssignal des NOR-Gliedes 26, das normalerweise ebenfalls binär Eins ist. Das Ausgangssignal des Verknüpfungsgliedes 12 ist während des Freizustandes des Busses binär Null und dementsprechend ist das Ausgangssignal der Verzögerungsleitung 13 binär Null. Wenn das Eingangssignal und das Ausgangssignal der Verzögerungsleitung 13 binär Null sind, kann das Ausgangssignal des NOR-Gliedes 14 (BSBSY-) den Binärwert Eins haben. Wenn eine der Einheiten, die an den Bus angeschlossen sind, einen Buszyklus wünscht, setzt sie asynchron ihr Benutzer-Flip-Flop 15, so daß dessen Q-Ausgangssignal (MYASKK+) binär Eins ist.
Das bedeutet, daß dann, wenn der Bus sich im Freizustand befindet, der erste Vorgang, der sich beim Übergang desselben in den Besetztzustand abspielt, der ist, daß der Benutzer sein Benutzer-Flip-Flop 15 setzt. Im Falle des Zentralprozessors kann das Benutzer-Flip-Flop 15 durch ein Signal vom Binärwert Eins, ein Signal MYASKD+ auf der Leitung 181 gemäß Fig. 11A gesetzt werden, das dadurch getaktet wird, daß das Taktsignal MCLOCK+ des Zentralprozessors vom binären Null-Zustand in den binären Eins-Zustand übergeht, oder durch den binären Wert, Signal MYASKS- auf der Leitung 180 gemäß der Fig. 11A am Setzeingang des Flip-Flop.
Nachstehend werden die Signale MYASKD+ und MAYSKS- anhand der Fig. 11A beschrieben.
Wenn beide Eingänge des NAND-Gliedes 16 den Binärwert Eins aufweisen, ist ihr Ausgangssignal binär Null. Hierdurch wird das Anforderungs-Flip-Flop 17 gesetzt, so daß dessen Q-Ausgangssignal (MYREQT+) binär Eins ist. Somit wird in asynchroner Art und Weise das Q-Ausgangssignal des Anforderungs-Flip-Flop 17 binär Eins. Diese Operation kann gleichzeitig in zu anderen mit dem Bus verbundenen Einheiten gehörenden Logikkreisen vor sich gehen.
Der binäre Eins-Zustand des MYREQT+-Signals wird an die Leitung 10 des Busses über einen Treiber 18 als Binärwert Null gelegt. Wie das Zeitdiagramm gemäß Fig. 7 zeigt, geht also das BSREQT--Signal in den negativen bzw. in den binären Null-Zustand über. Jede Anforderung an das System von einem beliebigen der Anforderungs-Flip-Flop 17 der einzelnen mit dem Bus verbundenen Einheiten hält also die Leitung 10 im binären Null-Zustand. Die Verzögerungsleitung bewirkt ausreichende Verzögerungszeit, um die Laufzeit zu kompensieren, die durch die Elemente 14, 16 und 17 bedingt ist. Das bedeutet, daß, selbst wenn eine Einheit ihr Anforderungs-Flip-Flop 17 setzt, dies nicht bedeutet, daß eine Einheit mit höherer Priorität, die ebenfalls einen Buszyklus anfordert, nicht den nächsten Buszyklus nehmen wird. Wenn zum Beispiel eine Einheit niedrigerer Priorität ihr Anforderungs-Flip-Flop 17 setzt, wird das Null-Signal auf der Leitung 10 an alle Einheiten geliefert, einschließlich der Einheit höherer Priorität, die daraufhin am Ausgang ihres Verknüpfungsgliedes 12 den Binärwert Eins erzeugt, so daß am Ausgang des NOR-Gliedes 14 der Binärwert Null auftritt, wodurch das Setzen des Anforderungs-Flip-Flop 17 dieser Einheit höherer Priorität verhindert wird, wenn das Benutzer-Flip-Flop 15 dieser Einheit nicht schon gesetzt worden ist. Nach Ablauf einer Verzögerungszeit von beispielsweise 20 Nanosekunden und wenn der Ausgang der Verzögerungsleitung der Einheit höherer Priorität nun den Binärwert Eins angenommen hat, ist das Ausgangssignal der Verknüpfungsgliedes 14 binär Null, so daß unabhängig davon, ob das Benutzer-Flip-Flop 14 der Einrichtung höherer Priorität gesetzt worden ist oder nicht, das Ausgangssignal des Verknüpfungsgliedes 16 den Binärwert Eins annimmt, wodurch das Anforderungs-Flip-Flop 17 an einem Setzen gehindert ist. Es sind also während dieses Zeitrahmens die Anforderungs-Flip-Flop 17 aller Einheiten gesetzt, wenn sie eine Anforderung aufgeben, was durch ihr Benutzer-Flip-Flop 15 angezeigt wird. Nach der Verzögerungszeit, die durch das Element 13 derjenigen zuerst einen Buszyklus anfordernden Einheit bedingt ist, kann eine Einrichtung, deren Anforderungs-Flip-Flop 17 noch nicht gesetzt ist, dieses nicht mehr setzen, bis der Prioritätzyklus abgeschlossen ist. Damit wird der Einheit höherer Priorität der Bus selbst dann zugeteilt, wenn ihr Benutzer-Flip-Flop einige Nanosekunden später als das Flip-Flop der Einheit mit geringerer Priorität gesetzt worden ist.
Damit sind alle Anforderungs-Flip-Flop 17 von Einheiten, die einen Buszyklus wünschen, während der durch die Verzögerungsleitung bedingten Zeitspanne gesetzt worden. Ungeachtet der Tatsache, das bei vielen der an den Bus angeschlossenen Einheiten die Anforderungs-Flip-Flops während dieses Zeitintervalls gesetzt sind, kann lediglich eine derselben ihr Zuteilungs-Flip-Flop 22 setzen. Die Einheit, deren Zuteilungs-Flip-Flop 22 gesetzt ist, ist diejenige einen Buszyklus anfordernde Einheit mit der höchsten Priorität. Wenn diese Einheit ihre Operation während des betreffenden Buszyklus beendet hat, suchen die anderen Einheiten, deren Anforderungs-Flip-Flops gesetzt sind, wieder nach dem nächsten Buszyklus, usw. Demnach ist das Q-Ausgangssignal des Anforderungs-Flip-Flop 17 außer an den Treiber 18 auch an den einen Eingang des NAND-Gliedes 19 über ein Element 28 gelegt. Das Element 28 ist nichts mehr als eine direkte Verbindung für die Prioritätslogik jeder Einheit mit Ausnahme der Einheit (gewöhnlich des Speichers 202), die am die höchste Priorität bedingenden Ende des Busses 200 angeschlossen ist, in welchem Ausnahmefall das Element 28, wie nachstehend erläutert werden wird, ein Verzögerungselement ist. Das -Ausgangssignal (MYREQT-) des Flip-Flop 17 wird an den neuen Eingang des AND-Gliedes 20 gelegt. Die anderen Eingangssignale des Verknüpfungsgliedes 19 werden von den Einheiten höherer Priorität her empfangen und genauer gesagt, zum Beispiel von den neun vorangehenden Einheiten höherer Priorität. Diese von Einheiten höherer Priorität empfangenen Signale sind in Fig. 8 auf der linken Seite ankommend als Signale BSAUOK+ bis BSIUOK+ dargestellt. Wenn eines dieser neun Signale den Binärwert Null aufweist, bedeutet dies, daß eine Einheit mit höherer Priorität einen Buszyklus angefordert hat, und dementsprechend wird die betreffende Einheit daran gehindert, daß sie ihr Zuteilungs-Flip-Flop setzt, womit ihr der nächste Buszyklus verwehrt wird.
Die anderen vom Verknüpfungsglied 19 empfangenen Eingangssignale stammen von dem NOR-Glied 26, sind zum Beispiel das BSDCNB--Signal und das Ausgangssignal des NOR-Gliedes 21. Darüber hinaus kann ein Benutzer-Lesesignal, das heißt das MCDCNP+-Signal im Falle des Zentralprozessors von der übrigen Logik der betreffenden Einheit empfangen werden, durch das die betreffende Einheit, selbst wenn sie einen Buszyklus anfordert, es verzögert, indem sie das Benutzer-Bereitschaftssignal in den Binärwert Null ändert. Das bedeutet, daß die Einheit selbst wenn sie nicht für einen Buszyklus bereit ist, diesen anfordern kann und das Benutzer-Bereitschaftssignal zu dem Binärwert Null machen kann, im Gegensatz zu dem Fall, daß sie zum Zeitpunkt, zu dem der Buszyklus zugeteilt wird, bereit ist. Das Ausgangssignal des NOR-Gliedes 26 ist normalerweise binär Eins, und wenn alle anderen Eingangssignale des Verknüpfungsgliedes 19 binär Eins sind, dann wird das Zuteilungs-Flip-Flop 22 gesetzt. Das andere Eingangssignal vom Verknüpfungsglied 21 ist binär Eins, wenn der Bus sich im Freizustand befindet. Die Eingangssignale des NOR-Gliedes 21 sind das BSACKR+-Signal, das BSWAIT+-Signal, das BSNAKR+-Signal und das BSMCLR+-Signal. Wenn irgendeines dieser Signale den Binärwert Eins hat, dann ist der Bus im Belegtzustand, und das Zuteilungs-Flip-Flop 22 kann nicht gesetzt werden.
Wenn das Zuteilungs-Flip-Flop 22 gesetzt worden ist, ist das Q-Ausgangssignal (MYDCNN+) binär Eins und wird zum Binärwert Null durch den Signalinverter 23 invertiert und danach auf die Signalleitung BSDCNN- des Busses gegeben. Dies ist im Zeitdiagramm gemäß Fig. 7 gezeigt, wo das BSDCNN--Signal vom Binärwert Eins zum Binärwert Null übergeht. Damit ist der Prioritätszyklus des Buszyklus abgeschlossen.
Darüber hinaus ist dann, wenn die vorliegende Einheit eine Anforderung macht und die Einheit mit höchster Priorität ist, das Ausgangssignal der Verzögerungsleitung 13 und der BSAUOK+-Prioritätsleitung binär Eins, der -Ausgang des Flip-Flop 17 ist jedoch binär Null. Hierdurch wird über das AND-Glied 20 der Binärwert Null auf die BSMYOK+-Leitung gegeben, womit der nächsten Einheit mit niedrigerer Priorität und den nachfolgenden Einheiten niedrigerer Priorität angezeigt ist, daß eine anfordernde Einheit höherer Priorität vorliegt, die den nächsten Buszyklus benutzt, und womit alle Einheiten niedrigerer Priorität daran gehindert werden, den nächsten Buszyklus in Anspruch zu nehmen. Es sei erwähnt, daß die Signale auf den neun Prioritätsleitungen, die von den Einrichtungen höherer Priorität herkommen, um eine Position gestaffelt als Signale BSBUOK+ bis BSMYOK+ übertragen werden. Somit entspricht das Signal BSAUOK+, das von der vorliegenden Einheit empfangen wird, dem Signal BSBUOK+, das von der Einheit nächsthöherer Priorität empfangen wird.
Wenn der Prioritätszyklus abgeschlossen ist, und wenn nun der Binärwert Null auf die BSDCNN-Leitung gegeben worden ist, wird das Signal von allen derartigen Logikeinheiten, wie Fig. 8 zeigt, durch den Empfänger 24 empfangen. Dies hat zur Folge, daß am Ausgang des Empfängers 24 der Binärwert Eins auftritt und am Ausgang des NOR-Gliedes 26 der Binärwert Null entsteht, wodurch das UND-Glied 12 daran gehindert wird, den Binärwert Eins zu erzeugen. Darüber hinaus gelangt der Binärwert Eins am Ausgang des Empfängers 24 auf die Verknüpfungsleitung 25, die beispielsweise eine Verzögerung von 60 Nanosekunden bewirkt. Das Ausgangssignal der Verknüpfungsleitung wird auch dem anderen Eingang des NOR-Gliedes 26 zugeführt, so daß das Verknüpfungsglied 12 weiterhin gesperrt bleibt, wenn der Abtastimpuls erzeugt ist. Damit wird am Ende der durch die Verknüpfungsleitung 25 bedingten Verknüpfungszeit das Abtastsignal (BSDCND+) erzeugt, dessen Invertierung, das heißt das BSDCND--Signal im Zeitdiagramm gemäß Fig. 7 dargestellt ist. Die Benutzung des Abtastsignals wird nachstehend noch erläutert. Damit setzt die durch die Verknüpfungsleitung 25 bedingte Zeitperiode von 60 Nanosekunden die erfolgreiche Einheit, das heißt die anfordernde Einheit mit höchster Priorität in die Lage, ohne Beeinträchtigung den nächsten Buszyklus zu benutzen. Das vom Ausgang der Verknüpfungsleitung 25 erzeugte Abtastsignal wird von einer möglichen Slave-Einheit als Synchronisiersignal benutzt.
Wenn das Abtastsignal übertragen worden ist, antwortet die eine der Einheiten, die als Slave-Einheit bezeichnet wurde, mit einem der Signale ACK, WAIT oder NAK, die an einem der Eingänge des Verknüpfungsgliedes 21 empfangen werden. Wenn im typischen Fall das ACK-Signal empfangen wird, oder wenn ein beliebiges solcher Antwortsignale empfangen wird, führt dies zum Setzen des Zuteilungs-Flip-Flop 22 über das Verknüpfungsglied 21. Im Zeitdiagramm gemäß Fig. 7 ist diese Antwort gezeigt, wobei das BSACKR--Signal so dargestellt ist, daß es von der Slave-Einheit empfangen wird, wodurch das BSDCNN--Signal zum Binärwert Eins geändert wird, und zwar durch das Rücksetzen des Zuteilungs-Flip-Flop 22. Das Flip-Flop 15 wird über das NOR-Glied 29 dann rückgesetzt, wenn das Zuteilungs-Flip-Flop 22 gesetzt worden ist oder wenn das Bus-Löschsignal (BSMCLR+) auf dem Bus empfangen wird. Das Flip-Flop 17 wird zurückgesetzt, wenn das Master-Löschsignal (MYMCLR-) empfangen wird.
Wenn das Zuteilungs-Flip-Flop 22 gesetzt ist, geht sein -Ausgangssignal (MYDCNN-) in den Binärzustand Null über, woraus folgt, daß dann, wenn das Flip-Flop 22 rückgesetzt wird, das -Ausgangssignal vom Binärwert Null zum Binärwert Eins übergeht, und dabei das Anforderungs-Flip-Flop 17, wie nun erläutert werden wird, rücksetzt. Wie in dem vorstehend erwähnten US-Patent erläutert worden ist, wird das Anforderungs-Flip-Flop 17 entweder durch das Signal ACK, das Signal NAK oder das Master-Löschsignal rückgesetzt. Was die Signale ACK oder NAK anbetrifft, setzt dies voraus, daß die Einheit, deren Anforderungs-Flip-Flop 17 rückgesetzt werden soll, entweder ein ACK, ein NAK oder ein WAIT-Signal erwartete. Darüber hinaus benötigten solche Einheiten eine Logik, die unterscheiden kann, ob tatsächlich solch ein ACK-Signal oder ein NAK-Signal eine Antwort von einer Slave-Einheit an diese betreffende Einheit war. Andernfalls würde ein NAK-Signal oder ACK-Signal alle die Flip-Flops 17 setzen, wodurch erforderlich wird, daß jedes dieser Flip-Flops wieder neu gesetzt wird. Dementsprechend wird der Logikaufwand in dem System dadurch verringert, daß die betreffende Einheit rückgesetzt wird. Dies wird dadurch erreicht, daß das -Ausgangssignal des Zuteilungs-Flip-Flop 22 an den Takteingang des Anforderungs-Flip-Flop 17 gelegt wird. Es sei bemerkt, daß das ACK-Signal oder NAK-Signal wie auch das WAIT-Signal dazu benutzt werden, das Zuteilungs-Flip-Flop 22 rückzusetzen, daß damit aber nicht eine zusätzliche Logik erforderlich wird, und zwar aufgrund der Tatsache, daß lediglich ein einziges Zuteilungs-Flip-Flop 22 gesetzt werden konnte. Damit führt das Rücksetzen aller Zuteilungs-Flip-Flops zu keinem Unterschied in der Operation des Systems.
Um den Takteingang des Flip-Flop 17 freizugeben, muß das an diesem Eingang empfangene Signal vom Binärwert Null zum Binärwert Eins übergehen. Wenn der Takteingang auf diese Art und Weise freigegeben ist, wird der Zustand am D-Eingang, das heißt das BSWAIT+-Signal an den Q-Ausgang des Flip-Flop 17 weitergegeben. Dementsprechend muß, um das Flip-Flop 17 rücksetzen zu können, das BSWAIT+-Signal binär Null sein, so daß das -Ausgangssignal des Flip-Flop 17 binär Null wird, wenn der Takteingang freigegeben ist. Da das BSWAIT+-Signal normalerweise binär Null ist, kann die vorzeitige Freigabe des Taktimpulseingangs des Anforderungs-Flip-Flop 17 irrtümlicherweise zu einem Rücksetzen desselben führen. Dies deswegen, weil die Antwort von einer Slave-Einheit nicht vorhergesehen werden kann. Es sei erwähnt, daß die Slave-Einheit alternativ eines der Signale ACK, NAK oder WAIT liefern kann, wobei im Falle des WAIT-Signals es unerwünscht ist, daß das Anforderungs- Flip-Flop 17 rückgesetzt wird. Es sollte daher der Takteingang lediglich dann freigegeben werden, wenn von der Slave- Einheit eine Antwort empfangen worden ist. Sonst nimmt nämlich das WAIT-Signal den Binärwert Null an und führt zu einem vorzeitigen Rücksetzen des Anforderungs-Flip-Flop 17.
Man sieht, daß unter normalen Bedingungen eine direkte Verbindung von dem -Ausgang mit dem Takteingang des Flip-Flop 17 den Binärwert Eins am Takteingang aufrechterhalten würde, und daß dementsprechend, wenn ein Zuteilungs-Flip-Flop 22 gesetzt ist und dann rückgesetzt wird, der Signalwechsel den Takteingang des Flip-Flop 17 freigeben würde. Es hat sich gezeigt, daß diese Bedingung, das heißt der Binärwert Eins im Normalfall am Takteingang des Flip-Flop 17, die Laufzeit des Setzvorgangs des Flip-Flops verlängert, wobei das Q-Ausgangssignal desselben die Setzbedingung, das heißt den Zustand des Binärwerts Eins, bestimmt. Genauer gesagt bedeutet dies, daß wenn zum Beispiel ein Flip-Flop des Typs SN74S74 verwendet wird, wie er von einer Reihe von Herstellern, beispielsweise von den Firmen Texas Instruments und Signetics Corporation hergestellt wird, und wenn dessen Takteingang auf binär Eins gelegt wird, es doppelt so lange dauert, den Setzvorgang durchzuführen, wie es dauern würde, wenn der Takteingang sich im binären Null-Zustand befindet. Dementsprechend erkennt man, daß durch Verbindung des Takteingangs des Flip-Flops 22 mit Erde eine schnellere Betriebsweise für das Zuteilungs-Flip-Flop 22 gewährleistet ist, und daß es dementsprechend wünschenswert ist, eine solche Erhöhung der Verknüpfungsgeschwindigkeit auch beim Anforderungs-Flip-Flop 17 zu erzielen. Aus diesem Grund und aufgrund des Umstandes, daß das Anforderungs-Flip-Flop 17 nicht zurückgesetzt sein soll, bevor eine Antwort von der Slave-Einheit vorliegt, sind die Elemente 35 und 37 in der nachstehend beschriebenen Art und Weise angeschlossen.
Vor einer derartigen Erläuterung sollte jedoch noch bemerkt werden, daß das Einfügen eines Inverters direkt zwischen den -Ausgang des Zuteilungs-Flip-Flop 22 und des Takteingangs des Anforderungs-Flip-Flop 17 nicht zufriedenstellend sein würde, selbst wenn hierdurch normalerweise am Takteingang des Anforderungs-Flip-Flop 17 der Binärwert Null erzeugt wird. Dies deswegen, weil der Übergang vom Binärwert Eins zum Binärwert Null am -Ausgang des Flip-Flop 22 beim Setzen dieses Flip-Flops ein Übergang vom Binärwert Null zum Binärwert Eins werden würde, der den Takteingang des Flip-Flop 17 vorzeitig freigeben würde, das heißt bevor bekannt ist, welche Antwort die Slave-Einheit liefert.
Der Inverter 35 ist daher mit einem Flip-Flop 37 ausgestattet. Wie das Anforderungs-Flip-Flop 17, kann der Taktimpulseingang des Flip-Flop 37 erst freigegeben werden, wenn ein Übergang vom Binärwert Null zum Binärwert Eins oder mit anderen Worten ein positiver Übergang stattgefunden hat. Dies tritt, wie vorstehend erläutert, dann ein, wenn das Zuteilungs-Flip-Flop 22 durch das NOR-Glied 21 rückgesetzt worden ist.
Das Flip-Flop 37 weist außer dem Takteingang einen Setzeingang (S), einen Dateneingang (D) und einen Rücksetzeingang (R) auf. Der Setzeingang wird dadurch gesperrt, daß dem Eingangssignal der Binärwert Eins gegeben wird, und zwar mit Hilfe des MYPLUP+-Signals, das nicht mehr als ein über einen an Plus-Spannung liegenden Widerstand empfangenes Signal ist. Dem D-Eingang des Flip-Flops 37 wird ebenfalls das MYPLUP+- Signal zugeführt. Das Ausgangssignal des NOR-Gliedes 26 hat normalerweise den Binärwert Eins, und dementsprechend hat das Ausgangssignal des Inverters 35 (BSDCND+) den Binärwert Null. Diese Bedingungen ändern sich, wenn das BSDCNN-Signal kurz nach dem Zeitpunkt 7-C, das heißt nach der Zeitspanne 7-C plus der Verzögerungszeit, die durch die Elemente 24 und 26 bedingt ist, zum Binärzustand Eins übergeht. Somit geht kurz nach der Zeit 7-C das Ausgangssignal des NOR-Gliedes 26 in den Binärwert Null über und erzeugt damit den Binärwert Eins am R-Eingang des Flip-Flop 37. Es sei bemerkt, daß ein Wechsel vom Binärwert Eins zum Binärwert Null das Flip-Flop 37 rücksetzt, wodurch der Binärwert Null am Q-Ausgang (MYREQR+) des Flip-Flop 37 auftritt. Der Binärwert Eins am Ausgang des Inverters 35 bleibt solange erhalten, wie das BSDCNN--Signal den Binärwert Null aufweist und auch noch 60 Nanosekunden danach, entsprechend der durch das Verzögerungsglied 25 bedingten Verzögerungszeit. Kurz nachdem das Zuteilungs-Flip-Flop 22 rückgesetzt ist, und bevor das BSDCNN--Signal eine Wirkung am Ausgang des NOR-Gliedes 26 zeigt, wird der Taktimpulseingang des Flip-Flop 37 freigegeben, so daß der Binärwert Eins an dessen D-Eingang einen Wechsel am Q-Ausgang des Flip- Flop 37 vom Binärwert Null zum Binärwert Eins zur Folge hat, wodurch das Flip-Flop 17 getaktet wird. Zu dem Zeitpunkt, zu dem das Abtastsignal, das heißt das Signal BSDCND+ verschwunden ist, wechselt, wie im Zusammenhang mit dem BSDCND--Signal, wie es im Zeitdiagramm gemäß Fig. 7 dargestellt ist und insbesondere dort beim Zeitpunkt 7-G ersichtlich ist, das Ausgangssignal des NOR-Gliedes 26 zurück zum Binärwert Eins, wodurch das Ausgangssignal des Inverters 35 vom Binärwert Eins zum Binärwert Null übergeht und dabei das Flip-Flop 37 rücksetzt. Hiermit ist sichergestellt, daß das Flip-Flop 37 zurückgesetzt wird, bevor sein Takteingang freigegeben wird. Der Binärwert Null ist danach weiterhin am Q-Ausgang (MYREQR+) des Flip-Flop 37 vorhanden, bis die oben beschriebene Operation von vorne beginnt.
Wie vorstehend erläutert, ist die Kopplung zwischen dem Q-Ausgang des Anforderungs-Flip-Flop 17 und des NAND-Gliedes 19 von der Lage der betreffenden Einheit am Bus 200 abhängig.
Genauer gesagt, das Element 28 dieser Kopplung zwischen Flip-Flop 17 und NAND-Glied 19 ist eine direkte bei allen Einheiten, die nicht die Einheit mit höchster Priorität sind. Bei der Einheit mit höchster Priorität und, genauer gesagt, beim Beispiel gemäß Fig. 1, beim Speicher 202, ist das Element 28 ein Verzögerungsglied, das dem Verzögerungsglied 13 ähnlich ist und beispielsweise eine Verzögerungszeit von 20 Nanosekunden bewirkt. Der Grund dafür liegt darin, daß bei der Einheit mit höchster Priorität die höchsten neun Eingänge dessen NAND-Gliedes ein Signal mit dem Binärwert Eins sind. Diese Signale können an jede der neun Leitungen mit Hilfe eines Widerstandes gelegt werden, dessen anderes Ende am Plus-Potential liegt, in ähnlicher Weise, wie das MYPLUP+-Signal eingekoppelt wird. Wenn ein beliebiger der Eingänge des NAND- Gliedes 19 den Binärwert Eins annimmt, und wenn das Signal BSDCNB- normalerweise den Binärwert Eins aufweist, und wenn ferner vorausgesetzt wird, daß das Benutzerbereitschaftssignal (MCDCNP+, in Fig. 8) ebenfalls den Binärwert Eins hat, dann würde ohne ein Verzögerungselement 28 in der Prioritätslogik der Einheit mit höchster Priorität immer den Zugriff zum Bus erhalten, ohne die durch das Verzögerungsglied 13 bedingte Verzögerung zu berücksichtigen. Indem durch das Element 28 eine Verzögerung bewirkt wird, ist demnach die Einheit mit höchster Priorität daran gehindert, ihr Zuteilungs-Flip- Flop während einer Zeitspanne von beispielsweise 20 Nanosekunden nach dem Zeitpunkt zu setzen, zu dem sie ihre Anforderungs- Flip-Flop 17 gesetzt hat. Bei der Einheit höchster Priorität und dementsprechend beim Verzögerungselement 28 kann auch eine direkte Verbindung mit den anderen Eingängen des Verknüpfungsgliedes 19 vorgesehen sein, so daß eine Freigabe des Verknüpfungsgliedes 19 durch einen kurzzeitigen Impuls verhindert wird, am Q-Ausgang des Flip-Flop 17 erzeugt wird. Dies geschieht beispielsweise dann, wenn die Logik gemäß Fig. 8 sich in einem Wettrennzustand befindet.
Auf diese erwähnte Art und Weise wird die Einheit höchster Priorität auch daran gehindert, Zugriff zum Bus 200 während eines Buszyklus' einer anderen Einheit zu erlangen. Dies ist so, weil das Signal BSDCNB- den Binärwert Null hat, wenn tatsächlich ein anderer Buszyklus im Gange ist. Man sieht, daß dieses Sperren der Prioritätslogik der Einheit höchste Priorität auch auf andere Art und Weise erzielt werden kann. Beispielsweise wie im vorerwähnten US-Patent, wonach das Ausgangssignal der Verzögerungsleitung an einen anderen Eingang des NAND-Gliedes 19 gelegt wird, in welchem Falle bei jeder Prioritätslogik jeder Einheit die Notwendigkeit für ein BSDCNB--Signal an einem Eingang dieses Gliedes entfällt sowie die Notwendigkeit eines Verzögerungselementes 28 in der Prioritätslogik der Einheit mit höchster Priorität. Bei einer Logik jedoch, die extrem schnell arbeiten muß, wie hier angenommen, können Belastungseffekte eine Rolle spielen. Dementsprechend stellt das Verzögerungsglied 13 zweifache statt dreifache Belastung dar. Man erkennt ferner, daß solche Belastungsprobleme auch dadurch verhindert werden können, daß ein Treiber oder ein Verstärkerelement an den Ausgang des Verzögerungsgliedes 13 angeschlossen wird, dessen Ausgang seinerseits an das NAND-Glied 19, das NOR-Glied 14 und das AND-Glied 20 ohne Probleme angeschlossen werden können. Dies hat jedoch die Wirkung, daß die Geschwindigkeit der Prioritätslogik um einen Faktor verringert wird, der von der Laufzeit durch einen solchen Treiber abhängt.
Speichersteuerungs- und Busschnittstellenlogik
Unter Bezugnahme auf die Doppelgriff-Speichersteuer- Adressenlogik, wie sie in Fig. 10 gezeigt ist, ist diese Logik exemplarisch für Speichersteuerungen, insbesondere solche, an die bis zu vier Speichermoduln angekoppelt sind. Die Adresse, die vom Bus aus vom Element 40 aufgenommen wird, wird durch die Busadressensignale BSAD00+ bis BSAD07+ im in Fig. 2 gezeigten Format übertragen. Die Adressensignale vom Empfänger 40 werden ebenso an den Eingängen des Parity-Prüfers 47 empfangen, wie noch beschrieben werden wird. Die Adressensignale vom Empfänger 40 und auch jene am Ausgang des Inverters 41 werden von einem Schalter 42 aufgenommen. Dieser Schalter ist bei den meisten der an den Bus 200 angeschlossenen Steueranordnung vorhanden und wird auf den Wert der Adresse der betreffenden Steueranordnung eingestellt. Im Falle der Steueranordnung einer Einheit wird dieser Schalter auf den Wert der Adresse der Einheit eingestellt. Im Falle der Steueranordnung für einen Speicher wird der Schalter auf die Adresse des zugehörigen Speichers eingestellt. Von den 16 Leitungen, die bei dem Schalter ankommen, sind lediglich 8 von dessen Ausgang aus mit einem NAND-Glied 43 verbunden. Die Busadressenleitungen auf der Eingangsseite des Elementes 40 weisen bei jenen Bits den Binärwert Null auf, die die Adresse des gewünschten Speicherblocks angeben sollen, der durch die Speichersteuerung gesteuert wird. Dementsprechend werden aufgrund der durch das Element 40 bewirkten Invertierung Signale vom Binärwert Eins an nicht invertierende Eingänge des Schalters 42 für solche Bits der Adresse gegeben, die auf dem Bus 200 als Signale mit dem Binärwert Null empfangen worden sind. In ähnlicher Weise führen die acht Ausgangsleitungen des Inverters 41 Signale vom Binärwert Eins für solche Positionen, in denen die Adressenbits den Binärwert Eins bei den ankommenden Adreßbits auf dem Bus 200 aufweisen. Wenn die Signale an zwei Eingängen des Schalters 42 jeweils das Komplement darstellen, werden die Schalter, bei denen es sich um einen Hexadezimalschalter oder eine Mehrzahl von doppelpoligen Umschaltern handelt, bzw. genauer gesagt um nicht mechanisch gekoppelte achtpolige Schalter mit zwei Stellungen, gesetzt, so daß für die richtigen Speicheradressen alle binären Eins-Signale an den acht Ausgängen des Schalters 42 erscheinen. Das Verknüpfungsglied 43 empfängt demnach binäre Eins-Signale und liefert an seinem Ausgang Signale des Binärwerts Null, wenn es sich um eine richtige Speicheradresse gehandelt hat, und wenn es sich um einen Speicherzyklus handelt, wie noch erläutert werden wird. Man erkennt, daß der Schalter 42 so ausgebildet ist, daß er eine Komparatorfunktion ausübt und damit wenigstens eine Verknüpfungsstufe überflüssig macht und dementsprechend die sonst damit verbundenen Laufzeiten vermeidet. Darüber hinaus stellt der Schalter ein einfaches Mittel dar, die Adressen der einzelnen Speichersteuerungen zu ändern, so daß es einfacher ist, das System zu strukturieren. Wenn das Speicherbezugssignal (BSMREF+) den Binärwert Eins aufweist, und wenn die durch den Schalter 42 verglichene Adresse lauter Eins-Binärwerte an dessen Ausgang erzeugt, wird das NAND-Glied 43 zur Abgabe eines Signals vom Binärwert Null auf der MYMADD-Leitung freigegeben, das dann jeweils an einem Eingang von drei NOR-Gliedern 44, 45 und 46 empfangen wird, die dazu verwendet werden, die Signale NAK, bzw. WAIT bzw. ACK zu erzeugen. Der Speicher kann solange nicht adressiert werden, bis das BSMREF+-Signal den richtigen Binärwert aufweist.
Wie angegeben, werden die Adressenbits am Eingang eines Parity-Prüfers 47 empfangen, der zusätzlich das BSAP00+-Bit empfängt, das das über den Bus übertragene Adressen-Parity- Bit ist. Der Parity-Prüfer 47 nimmt eine Neun-Bit-Parity- Prüfung vor und erzeugt an seinem -Ausgang ein MYMADP- bezeichnetes Signal, das, sofern es den Binärwert Null aufweist, die Verknüpfungsglieder 44, 45 und 46 aktivert, womit angezeigt ist, daß eine richtige Parität vorliegt.
Vom Multiplexer 48 aus wird bei den Verknüpfungsgliedern 44, 45 und 46 ein drittes Eingangssignal empfangen. Dieser Multiplexer seinerseits empfängt beispielsweise vier Eingangssignale, die mit MYMOSA- bis MYMOSD- bezeichnet sind und angeben, ob einer der vier an die betreffende Speichersteuerung anschließbaren Speichermoduln im vorliegenden System vorhanden ist oder nicht. Hiermit ist es möglich, daß ein Speicher entweder mit Moduln vollständig oder nur teilweise bestückt sein kann, daß also lediglich auch ein einziger solcher Moduln in das System einbezogen sein kann. Wie sich nachstehend noch ergibt, müssen, damit eine Speichersteuerung mit zwei Worten auf eine Doppelzugriffsanforderung antworten kann, entweder zwei oder vier Moduln bei dieser Steuerung vorhanden sein. Wenn lediglich ein Speichermodul vorhanden ist, der das erste Wort beinhaltet, antwortet die Steuerung mit diesem Wort und zeigt an, daß das zweite Wort nicht folgt. Wenn der Speichermodul, der das erste Wort enthält, bei der Steuerung nicht vorhanden ist, antwortet diese überhaupt nicht. Die erwähnten vier Speichermoduln werden über den Multiplexer 48 adressiert und daraufhin überprüft, ob sie mittels der beiden Busadressensignale BSAD08+ und BSAD22+ eingerichtet sind. Beim Multiplexer 48 kann es sich um den von der Firma Texas Instruments unter der Bezeichnung Nr. 74S151 gebauten Multiplexer handeln. Der Binärwert Null des Ausgangssignals des Multiplexers zeigt an, daß der Speichermodul bei der Speichersteuerung vorhanden ist.
Es können demnach für verschieden konfigurierte Systeme ein Speichermodul vorhanden sein, der mit einer bestimmten Speichersteuerung verbunden ist, sowie zwei Moduln, die mit einer anderen Speichersteuerung verbunden sind, wobei die verschiedenen Speichermoduln auch noch von unterschiedlichem Typ sein können. So kann zum Beispiel ein Halbleiterspeicher mit der einen Speichersteuerung verbunden sein, wogegen ein Magnetkernspeicher an die andere Speichersteuerung angeschlossen ist. Darüber hinaus können die Speichermoduln verschiedene Größen, das heißt also verschieden große Speicherkapazität aufweisen. Außerdem können Speichermoduln, die an verschiedene Speichersteuerungen angeschlossen sind, mit verschiedenen Geschwindigkeiten arbeiten, wodurch die Geschwindigkeit der Systemreaktion erhöht wird. Für jede bestimmte Steuerung ist normalerweise eine Stromversorgung und Zeittaktversorgung vorhanden, und normalerweise bestimmt diese Steuerung die Kennwerte der Speicher, die an sie angeschlossen sind. Dementsprechend müssen zum Beispiel, wenn verschiedene Speichergeschwindigkeiten und sonstige verschiedene Zeitverhältnisse erforderlich sind, wie sie beispielsweise zwischen Kernspeicher und Halbleiterspeicher vorliegen, für die verschiedenen Typen jeweils eine gesonderte Speichersteuerung vorgesehen sein. Bei der Verwendung verschiedenartiger Speichersteuerungen können die Speicher schneller betrieben werden, da sie zeitlich parallel laufen können, selbst wenn sie an denselben Bus angeschlossen sind. Es kann jedoch lediglich während einer bestimmten Zeit ein einziger Informationsaustausch auf einen Bus stattfinden, wobei jedoch das Wesentliche ist, daß die Information im Speicher ohne jegliche Zugriffszeit zur Verfügung steht, da die Zugriffszeit sozusagen schon abgelaufen ist.
Wie vorstehend beschrieben, hat jede Steuerung, ob es sich um eine Speichersteuerung oder um die Steuerung für eine andere periphere Einrichtung handelt, gewöhnlich ihre eigene, spezielle Adresse. So sind für verschiedene Speichersteuerungen, die mit angeschlossenen Speichermoduln voll bestückt sind, benachbarte Speicheradressen vorgesehen. Das heißt, daß, sofern an jede Speichersteuerung vier Speichermoduln angeschlossen sind, und daß jeder dieser Moduln eine Kapazität von 8000 Speicherworten hat, jede Speichersteuerung Zugriff zu 32 000 Speicherwörtern verschaffen kann. Im Falle eines Doppelzugriffspeichers bedeutet dies, daß jeder 8000 (8k) Wortspeichermodul Worte mit gerader Adresse oder 8000 Worte mit ungerader Adresse enthält, wie dies in Fig. 14 dargestellt ist. Das bedeutet, daß der Modul A und der Modul B die unteren 16 000 (16k) Worte und die Moduln C und D die oberen 16 000 Worte enthalten, wobei die mit geraden Adressen versehenen Worte in den Moduln A und C und die mit ungeraden Adressen versehenen Worte in den Moduln B und D gespeichert sind. Wenn ein Speicher mit 32 000 Worten Speicherkapazität an jede Speichersteuerung angeschlossen ist, schließen die Speicheradressen kontinuierlich aneinander an. Unter Betriebsgesichtspunkten sind kontinuierliche Adressen nicht nur im Hinblick auf die Adressierung, sondern auch im Hinblick auf eine Erhöhung der Antwortgeschwindigkeit von Bedeutung. Wie vorstehend erwähnt, kann typischerweise die Speichersteuerung lediglich einen Speicher einer bestimmten Charakteristik bedienen, das heißt ein Magnetkernspeicher kann nicht an dieselbe Speichersteuerung angeschlossen werden, an die ein Halbleiterspeicher angeschlossen ist, und zwar wegen der unterschiedlichen erforderlichen Zeitverhältnisse. Dasselbe gilt normalerweise für Speicher verschiedener Geschwindigkeiten und Versorgungsverhältnisse. Wenn man also wieder annimmt, daß jede Speichersteuerung 32 000 Speicherworte bedienen kann, und wenn lediglich 16 000 Worte beim eine große Geschwindigkeit aufweisenden Speicher vorgesehen sind, bedeutet dies, daß zwei Speichersteuerungen benötigt werden.
Dies würde jedoch typischerweise bedeuten, daß die Speicheradressen zwischen dem Speicher für hohe Geschwindigkeiten und dem Speicher für niedrige Geschwindigkeit nicht aneinander anschließen, da die Speichersteuerungsadresse um 32 000 Worte voneinander beabstandet sind. In diesem Fall ist es möglich, aneinander anschließende Speicheradressen dadurch zu erhalten, daß man beiden Speichersteuerungen dieselbe Adresse zuordnet. Dies würde jedoch bedeuten, daß die betreffenden Speichermodulpositionen in den beiden Speichersteuerungen nicht dieselben sein können. Das heißt genauer gesagt, daß die erste Steuerung 8000 Speicherplätze in den Speichermodulpositionen A und B gemäß Fig. 14 benötigen würden, wie sie durch die Signale MYMOSA- und MYMOSB- angezeigt werden. Die andere Steuereinheit würde die anderen beiden Modulpositionen C und D benötigen, die durch die Signale MYMOSC- und MYMOSD- angezeigt werden. Demnach wirken diese beiden Steuereinheiten in dem System so, als wären sie eine einzige Steuereinheit. Als weiteres Beispiel wird angenommen, daß eine der Steuerungen lediglich für 8000 Speicherworte eines einzigen Speichers in Form eines Moduls zuständig ist, beispielsweise des Moduls A, der die geradzahlig adressierten unteren 16k Worte enthält, wogegen die andere Speichersteuerung mit derselben Adresse mit bis zu drei solcher Speichermoduln in der Ordnung der Positionen B, C und D verbunden ist, die die ungerade adressierten unteren 16k Worte enthalten sowie die geradzahlig und ungeradzahlig adressierten oberen 16k Worte, so daß ein Speicher für 24 000 Worte entsteht. Der Multiplexer 48 wirkt zusammen mit dem Schalter 42 und dem NAND-Glied 43 derart, daß er bestimmt, ob der Speichermodul, der das von der Speicheradresse adressierte Wort enthält (das heißt das erste Wort), während der Doppelzugriffanforderung in der Speichersteuerung vorgesehen ist. Somit bestimmt das Signal BSAD08+, ob die Speicheradresse, die in der Speicherzugriffsanforderung enthalten ist, die oberen oder die unteren 16k Wörter, das heißt in den Moduln C und D oder in den Moduln A und B befindliche Wörter, betrifft. Wenn das Signal BSAD23+ dazu verwendet wird, das rechte oder linke Byte innerhalb eines Wortes zu bestimmen, dann bestimmt das Signal BSAD22+, ob das adressierte Wort in der Speicheradressenzugriffsanforderung ein geradzahlig adressiertes oder ein ungeradzahlig adressiertes Wort ist, das heißt, ob es sich in den Moduln A und C oder den Moduln B und D befindet. Wenn die Doppelzugriffsanforderung lediglich die Speicheradresse des ersten der beiden Worte, zu denen durch die Doppelzugriffsanforderung zugegriffen werden soll, auf dem Bus erscheint, erkennt man, daß der Multiplexer 48 ein Signal erzeugt, das anzeigt, ob der das erste der beiden Worte enthaltende Modul vorhanden ist. Wie noch deutlich werden wird, bestimmen andere Multiplexer, ob das zweite der beiden Worte in Beantwortung einer Doppelzugriffsanforderung ebenfalls innerhalb derselben Speichersteuerung vorgesehen ist, in der das erste Wort vorgesehen ist, zu dem zugegriffen werden soll.
Diese Möglichkeit, Speichermoduln zwischen einem oder mehreren Speichersteuerungen anzuordnen, braucht nicht notwendigerweise auf verschiedene Typen von Speichern beschränkt zu sein, sondern berührt auch das Problem defekter, an die Steuerung angeschlossener Moduln. So kann zum Beispiel ein redundanter Speichermodul vorgesehen sein, der mit einer anderen Steuerung in Verbindung steht, deren Adresse eingestellt ist, wogegen die Adresse der Steuerung des fehlerhaften Speichers aufgrund einer Feststellung des Fehlers nicht mehr eingestellt ist.
Es wird nun wieder auf die Freigabe der Verknüpfungsglieder 44, 45 und 46 Bezug genommen, die jeweils, um freigegeben werden zu können, und um eine Antwort von der betreffenden Speichersteuerung zuzulassen, die Adresse ihre Speichersteuerung als Anzeichen dafür empfangen müssen, daß der adressierte Modul im System vorhanden ist, und daß die Adressenparität richtig ist, was durch den Paritätsprüfer 47 angezeigt wird. Die anderen Eingangssignale der NOR-Glieder werden mit einer Kombination aus Besetztlogik- und Sperrgeschehenlogik- Signalen beaufschlagt, wie nun beschrieben wird.
Das Speichersteuerungsbesetzt-Signal wird durch ein Flip- Flop 49 geliefer 98051 00070 552 001000280000000200012000285919794000040 0002002900380 00004 97932t und zeigt an, daß die Speichersteuerung dabei ist, Daten zu lesen oder zu schreiben, den Speicherinhalt aufzufrischen oder auf die Buszuteilung zu warten. Dieses D-Flip-Flop 49 wird von dem Signal BSDCNN+ getaktet. Wenn ein Speichermodul belegt ist, dann wird ein WAIT-Signal erzeugt. Das heißt, daß dann, wenn das MBUSY-Signal am -Ausgang des Flip-Flop 49 den Binärwert Null hat, wenn die anderen Bedingungen gegeben sind, das Verknüpfungsglied 45 durchlässig gemacht wird, so daß das zugeordnete Flip-Flop im Element 56 gesetzt wird, wobei zu bemerken ist, daß dies dann geschieht, wenn das BSDCND+-Signal am Takteingang des Elements 56 empfangen wird. Zu diesem Zeitpunkt wird das Flip-Flop 56 über den Inverter 63 gelöscht, wenn das Signal BSDCMB- am Ausgang des Verknüpfungsgliedes 26M, das in Fig. 9 gezeigt ist, vom Binärwert Null zum Binärwert Eins übergeht. Das Bestätigungssignal wird erzeugt, wenn am Q-Ausgang des Flip-Flop 49 eine binäre Null erzeugt wird, was durch das MYBUSY+-Signal angezeigt wird, das an einen Ausgang des Verknüpfungsgliedes 46 geführt ist. Es sei nochmals darauf hingewiesen, daß das WAIT-Signal bedeutet, daß der Speicher noch eine kurze Verzögerungszeit besetzt sein wird.
Die andere Bedingung, die anzeigt, welches der Signale ACK, NAK oder WAIT erzeugt werden soll, ist das Sperrsignal, das, wie vorstehend erläutert, eine Mehrfachzyklus-Busübertragung umfaßt, in deren Verlauf eine Einheit zu einer bestimmten Speicherstelle zugreifen kann, ohne daß eine andere gesperrte Einheit in der Lage ist, in diese Operation einzugreifen. Das Ergebnis dieser Sperroperation ist die Verlängerung des Besetztzustandes der Speichersteuerung über die Beendigung eines einzigen Zyklus hinaus, und zwar für bestimmte Arten von Operationen. Einheiten, die eine Sperroperation zu veranlassen suchen, bevor der letzte Zyklus der Folge beendet ist, erhalten ein NAK-Signal. Der Speicher wird jedoch noch auf eine Speicheranforderung antworten, wie nun erläutert werden wird. Es sei bemerkt, daß die Zwischenzeit zwischen diesen Zyklen von anderen Einheiten, die nicht mit dem betreffenden Informationsaustausch befaßt sind, ausgenutzt werden kann. Eine Sperroperation wird in erster Linie da benutzt, wo es für zwei oder mehr Einrichtungen oder Einheiten wünschenswert ist, sich in dieselben Betriebsmittel, beispielsweise den Speicher, zu teilen. Die Sperroperation, die jede Anzahl von Buszyklen umfassen kann, wird von der betreffenden Einheit oder Einrichtung aufgehoben, die die Steuerung des gemeinsam ausgenutzten Betriebsmittels übernommen hatte. Während das geteilte Betriebsmittel gesperrt ist, werden die anderen Einheiten, die einen Zugriff dazu wünschen, gesperrt, wenn sie das Sperrsteuersignal liefern. Wenn das Sperrsteuersignal nicht geliefert wird, ist es für solche anderen Einheiten möglich, einen Zugriff zu dem gemeinsamen Betriebsmittel zu erlangen, zum Beispiel, um eine dringende Anforderung oder einen dringenden Arbeitsgang zu verarbeiten. Bevor eine Einheit, die das Sperrsteuersignal liefert, Zugriff zu dem gemeinsam ausgenützten Betriebsmittel erhält, prüft es dieses Betriebsmittel, um festzustellen, ob dieses sich im Zustand einer Sperroperation befindet und erhält dann, wenn dies nicht der Fall ist, während desselben Buszyklus Zugriff zu dem Betriebsmittel.
Man erkennt, daß die Sperroperation für gemeinsam benutzte Betriebsmittel eine solche ist, die zwischen Einheiten wirkt, die geeignete Steuersignale ausgeben, das heißt das Sperrsteuersignal. Diese Operation kann beispielsweise dazu verwendet verwendet werden, einen Teil eines Speichers, in dem eine Informationstabelle gespeichert ist, gemeinsam zu benützen. Darüber hinaus werden, wenn eine der Einheiten eine Änderung der Information in dem gemeinsam benützten Betriebsmittel wünscht, die anderen Einheiten ausgesperrt, so daß sie keinen Zugriff zu der lediglich teilweise geänderten Information erlangen, es wird ihnen vielmehr ein Zugriff erst dann ermöglicht, wenn alle diese Änderungen vorgenommen worden sind. Eine Lese- Modifizier-Schreib-Operation kann in einem solchen Fall erfolgen. Man sieht, daß bei Benutzung einer Sperroperation ein Mehrfachbearbeitungssystem entsteht. Wenn beispielsweise zwei Zentralprozessoren an denselben Bus 200 angeschlossen sind, haben sich beide in die an den Bus angeschlossenen Speichereinheiten zu teilen, ohne daß Störungen entstehen, was der Fall ist, wenn die Sperroperation benutzt wird.
Es sei darauf hingewiesen, daß das Signal BSSHBC- für die Sperroperation, wie sich ergeben wird, auch in einer etwas abgewandelten Art als bisher beschrieben verwendet werden kann. Während der Sperroperation wird das Signal BSSHBC- von der Einheit abgegeben, die versucht, ein Betriebsmittel zu teilen, sowohl um Zugriff zu diesem Betriebsmittel mit Hilfe einer Prüf- und Sperrfunktion zu bekommen als auch um das geteilte Betriebsmittel freizugeben, wenn die Sperroperation abgeschlossen ist.
So ist, wie die Fig. 10 zeigt, ein Sperr-Zustands-Flip-Flop 50 vorgesehen, das, wenn es gesetzt ist, anzeigt, daß eine Sperroperation im Gange ist, wobei ein NAK-Signal über einen Treiber 59 an die anfordernde Einheit gegeben wird. Unter der Voraussetzung, daß die Logik gemäß Fig. 10 die Schnittstellenlogik zwischen dem Bus 200 und dem geteilten Betriebsmittel darstellt, wird das BSLOCK+-Signal (Binärwert Eins) sowohl vom AND-Glied 52 als auch vom Flip-Flop D3 des Elementes 56 aufgenommen. Das Element 56 erzeugt dabei das Signal MYLOCK+, das an den Eingang des AND-Gliedes 51 gelangt. Wenn das Sperr-Zustands-Flip-Flop nicht gesetzt ist, wird das Signal NAKHIS dabei ein Signal vom Binärwert Null, unabhängig vom Signalzustand der beiden anderen Eingänge des Verknüpfungsgliedes 52, und erzeugt den Binärwert Null am einen Eingang des Verknüpfungsgliedes 46. Wenn alle Eingänge des Verknüpfungsgliedes 46 den Binärwert Null empfangen, womit angezeigt ist, daß die vorliegende Adresse dieser Einheit oder Einrichtung empfangen worden ist, und daß das gemeinsame Element oder der Puffer nicht belegt ist, dann wird über das Element 56 und den Treiber 61 ein Signal ACK als Antwort auf das Signal BSLOCK+ erzeugt. Das Signal ACK (MYACKR+) macht das AND-Glied 51 vollständig durchlässig, so daß das Zustands- Flip-Flop 50 als Reaktion auf den Binärwert Eins des Signals BSSHBC- an seinem D-Eingang gesetzt wird. Das letztgenannte Signal wird zusammen mit dem Binärwert Eins des Signals BSLOCK+ am Anfang der Sperroperation empfangen. Auf diese Weise wird eine Prüfung einer Sperroperation während desselben Buszyklus durchgeführt.
Wenn das Flip-Flop 50 zum Zeitpunkt des Auftretens des Binärwerts Eins der Signale BSLOCK+ und BSSHBC- schon gesetzt ist, dann wird ein Signal vom Binärwert Eins am Ausgang des AND- Gliedes 52 abgegeben, wodurch am Ausgang des Inverters 58 der Binärwert Null entsteht, so daß das AND-Glied 44 durchlässig gemacht wird, und damit alle anderen Bedingungen erfüllt sind, um das Signal NAK zu erzeugen. Somit ist durch die Prüf- und Sperroperation eine Antwort auf ein NAK-Signal erzeugt worden, die andere Einheiten daran hindert, das gemeinsame Betriebsmittel zu benutzen.
Wenn eine Einheit, die ein gemeinsames Betriebsmittel benutzt, mit ihrer Operation zu Ende ist, muß sie das Betriebsmittel freigeben. Dies geschieht dann, wenn der Binärwert Eins des BSLOCK+-Signals und der Binärwert Null des BSSHBC--Signals von der Benutzereinheit empfangen wird. Damit kann die Logik gemäß Fig. 10 eine ACK-Antwort abgeben, durch die das Verknüpfungsglied 51 durchlässig gemacht wird, und wodurch das Zustands-Flip-Flop 50 wegen des Binärwerts Null des Signals BSSHBC- zurückgesetzt wird. Das zugeteilte Betriebsmittel ist nun frei, eine ACK-Antwort an andere Einheiten zu liefern. Das zugeteilte Betriebsmittel kann auch durch ein Buslösch- Signal (Binärwert Null von BSMCLR-) entsperrt werden, das am Löscheingang des Sperr-Zustands-Flip-Flop 50 auftritt.
Man erkennt, daß das gemeinsam benutzte Betriebsmittel nur solche anderen Einheiten zurückweist, deren Signal BSLOCK+ den Binärwert Eins haben. Wenn eine Einheit zum Beispiel Zugriff zu einem gemeinsamen Betriebsmittel wünscht, deren Zustands-Flip-Flop gesetzt ist, so daß das Signal NAKHIS+ binär Eins ist, dann ist das Ausgangssignal des AND-Gliedes 52 unter der Voraussetzung, daß das BSLOCK+-Signal den Binärwert Null hat, ebenfalls binär Null, wodurch eine NAK-Antwort verhindert wird und in Abhängigkeit von anderen Bedingungen entweder die Angabe einer WAIT- oder einer ACK-Antwort ermöglicht wird. Damit kann also eine Einheit zu einem gemeinsamen Betriebsmittel Zugriff erlangen selbst dann, wenn dieses Betriebsmittel mit einer Sperroperation befaßt ist.
Man sieht, daß die Erzeugung eines WAIT-Signals durch irgendeine der Steuerungen einer Einheit oder einer Steuerung höherer Priorität es erlaubt, in die Folge der Buszyklen einzubrechen und, wenn erforderlich, den Bus zu benutzen. Wenn keine Einheit höherer Priorität vorhanden ist, die einen Dienst anfordert, bleibt das bestehende Master-Slave-Verhältnis solange aufrechterhalten, bis durch die Mastereinheit die Bestätigung gegeben wird, wodurch die WAIT-Bedingung beendet wird. Daraufhin kann ein anderer Benutzer den Bus benutzen. Das BSDCNN+-Signal erlaubt einer Slave-Einheit eine der drei Antworten, nämlich die Signale NAK, WAIT oder ACK zu erzeugen. Am Ende einer dieser drei Antworten beginnt ein neuer Prioritätsnetzzyklus, und die betreffende Einheit erlangt Zugriff zum Bus oder eine andere Einheit höherer Priorität. Es sei hier bemerkt, daß die Signalzustände auf dem Bus den entgegengesetzten Binärwert zu demjenigen der innerhalb der Einheiten dargestellten Signale aufweisen. So ist zum Beispiel angegeben, daß das Busanforderungssignal zwischen zum Beispiel dem Treiber 18 und dem Empfänger 11 in Fig. 8 auf dem Bus den einen Wert und in den Steuerungen selbst den entgegengesetzten Wert hat. Darüber hinaus ist vorstehend darauf hingewiesen worden, daß eine vierte Antwort zwischen irgendwelchen der Steuerungen, die an den Bus angeschlossen sind, bedeutet, daß überhaupt keine Antwort gegeben werden soll. Wenn also eine der Mastereinheiten eine Bedienung vom Speicher anfordert, wobei der Speicher aber in das System nicht einbezogen ist, erzeugt ein für diesen Zweck bekanntes Element nach einer bestimmten Zeitperiode, beispielsweise nach 5 Mikrosekunden, ein Signal, wodurch ein NAK-Signal entsteht. An dieser Stelle kann ein Zentralprozessor in Aktion treten, beispielsweise durch einen Interrupt oder durch ein Sprungprogramm.
Wie vorstehend angegeben, kann der Speicher, wenn von ihm aus Information übertragen wird, niemals ein NAK- oder WAIT- Signal empfangen. Dies ist durch das Prioritätskonzept gemäß der vorliegenden Erfindung bedingt. Der Speicher ist die Einheit mit der höchsten Priorität. Wenn eine Einheit den Speicher aufgefordert hat, Information zu senden, dann kann diese Einheit die Information zu einem bestimmten Zeitpunkt erwarten. Wenn die Einheit ein Signal WAIT oder NAK an den Speicher sendet, dann könnte der Speicher, da er die Einheit mit der höchsten Priorität ist, versuchen, Zugriff zu der betreffenden Steuerung zu bekommen, die die Datenübertragung angefordert hat, und könnte für den Bus einen nicht programmierten Stop vorsehen, das heißt wegen des Umstandes, daß der Speicher die höchste Priorität aufweist, könnte sie den Bus veranlassen, weitere Datenübertragungen zu unterbrechen, bis zu der betreffenden Speichersteuerung, die angefordert hat, die Daten übertragen sind. In der Praxis führt, wie man an der Speichersteuerlogik gemäß Fig. 9 sieht, eine an den Speicher gesendete WAIT- oder NAK-Antwort zu einem Rücksetzen des Speicherzuteilungs-Flip-Flop 22M durch ein Signal BSWAIT+ oder BSNAKR+, das am Eingang des NOR-Gliedes 21 auftritt. Dies führt zum Rücksetzen des Benutzer-Flip-Flop 15M über eine Doppelwortlogik 94 und ein NOR-Glied 29M mit der Folge eines Rücksetzens des Anforderungs-Flip-Flop 17M. Das Ergebnis dieser Flip-Flop-Rücksetzungen besteht darin, daß eine WAIT- oder NAK-Antwort an den Speicher dort dazu führt, daß dieser nicht wieder einen Datentransfer zu der anfordernden Einheit versucht, und daß die Daten deswegen verlorengehen.
Es kann also ein Bestätigungssignal nur in Antwort auf eine Anforderung an den Speicher gemacht werden, Daten anzunehmen. Eine Steuerung kann jedoch beim Signal NAK oder WAIT an eine andere Steuerung oder an einen anderen Steuerprozessor hinsenden, ohne daß Daten verlorengehen. Darüber hinaus ist es eine Hauptregel, daß dann, wenn eine Speichersteuerung von einer Steuerung höherer Priorität Information anfordert, die anfordernde Steuerung auch bereit sein muß, die Information aufzunehmen und dementsprechend mit einem Signal ACK antworten muß.
Wenn die Einheit noch nicht bereit ist, dann wird, sofern die anderen Bedingungen erfüllt sind, das Signal NAK erzeugt. Der Grund, weswegen das Signal NAK und nicht das Signal WAIT gesendet wird, liegt im Umstand, daß typischerweise dann, wenn eine Steuerung wie die Steuerung 210 belegt ist, das Terminal mehr als nur wenige Mikrosekunden, sondern vielmehr für Millisekunden belegt ist. Somit würde Zykluszeit vergeudet, wenn dem Master angezeigt wird, daß der Master mit seinen Versuchen fortfahren soll. Es sollte vielmehr gezeigt werden, daß die anfordernde Dateneinheit mit der Datenverarbeitung fortfährt, anstatt unnötigerweise den Buszyklus in Anspruch zu nehmen und dabei die Gesamtreaktion des Systems verzögert. Alles, was die anfordernde Einheit zu tun hat, ist ihr baldmöglichster neuer Versuch, die Bestimmungseinheit zu erreichen.
Um wieder auf die Tätigkeit des Speicher-Belegt-Flip-Flop 49 zurückzukommen, sei erwähnt, daß der Dateneingang das Signal MOSBSY+ aufnimmt, das asynchron zur Busoperation auftritt.
Dieses Signal kann zu jeder Zeit ohne Rücksicht auf die auf dem Bus im Zusammenhang mit irgendeiner Steuerung sich abwickelnde Operation empfangen werden. Wenn das Signal BSDCNN+ von der Mustereinheit am Takteingang des Flip-Flop empfangen wird, wird ein Zustand gespeichert, und zwar der Speicherzustand, nämlich die Angabe darüber, ob dieser zu der betreffenden Zeit belegt ist oder nicht. Somit werden Verwirrungen bei der Antwort an den Buszyklus vermieden. Ohne die Speicherung des Zustandes durch das Flip-Flop 49 wäre es möglich, einen Buszyklus in einer WAIT-Kondition zu starten und denselben Buszyklus in einem Zustand zu beenden, in dem er ein ACK-Signal erzeugt. Damit würden beide Antworten während desselben Buszyklus gegeben, was dann eine Fehlersignalbedingung wäre. Durch Verwendung des Zustands-Flip-Flop 49 wird die Antwort zu der Bedingung fixiert, in der die Steuerung sich befand, als das Signal BSDCNN+ empfangen wurde, wodurch eine asynchrone Antwort möglich ist, unabhängig von Toleranzen oder Unterschieden in der Speicherarbeitsgeschwindigkeit.
Doppelzugriffsoperations-Antwortzyklus
In der obenstehenden Beschreibung wurde die Erläuterung des ersten Buszyklus einer Doppelzugriffsoperation abgeschlossen, in der der Zentralprozessor als Mastereinheit eine Doppelzugriffsanforderung an den Speicher stellt und die Speichersteuerung entweder mit einer Annahme oder mit einer Zurückweisung der Anforderung reagiert. Es werden nunmehr der zweite und dritte Buszyklus diskutiert, in denen die Speichersteuerung die Mastereinheit und der Zentralprozessor die Slave-Einheit ist. In diesen beiden Buszyklen fordert die Speichersteuerung den Bus an und gibt die vorher von ihr angeforderte Information auf ihm an den Zentralprozessor. Nachstehend werden die beiden erwähnten Buszyklen unter Bezugnahme auf die Fig. 9, 9A, 11 und 11A mehr ins einzelne gehend beschrieben.
Speichersteuerung-Prioritätsnetzwerklogik
Die Fig. 9 zeigt die Logik, die jeder Speicher benötigt, um einen Buszyklus anfordern, eine Anschlußunterbrechung vornehmen und ein Datenzyklussignal (BSDCNN-) erzeugen zu können. Alle anderen am Bus liegende Einheiten haben eine ähnliche Logik für die Funktion der Verbindungsaufnahme, zum Beispiel der Zentralprozessor eine Prioritätsnetzwerklogik, wie sie in Fig. 8 gezeigt ist. Ebenfalls in Fig. 9 ist eine Logik dargestellt, die die Verbindungsaufnahmefunktion des Speichers während einer Doppelzugriffsoperation ändert. Diese Doppelwortlogik in Form des Elementes 94 ist in Fig. 9A mehr ins einzelne gehend dargestellt. Wegen der Ähnlichkeit der logischen Elemente und Funktionen zwischen der Prioritätsnetzwerklogik gemäß Fig. 8 und Fig. 9 werden nachstehend lediglich die Unterschiede besprochen. Das heißt, in Fig. 9 sind die Elemente 10M, 11M, 13M, 14M, 16M, 18M, 20M, 21M, 22M, 23M, 24M, 25M und 26M identisch und in ihrer Funktion übereinstimmend mit den entsprechenden Elementen 10 bis 26 in Fig. 8. Die in Fig. 9 gezeigten Elemente 12M, 15M, 17M, 19M, 28M und 29M sind den Elementen 12 bis 29 gemäß Fig. 8 ähnlich und lediglich die Unterschiede werden nachstehend beschrieben.
Eine Busanforderung wird durch einen Speicher nur dann vorgenommen, wenn der Speicher bereit ist, die angeforderten Daten zu übertragen (das heißt während der Veranlassung einer Antwort in der zweiten Zyklushälfte). Wieder unter Bezugnahme auf Fig. 9 sei festgestellt, daß dann, wenn ein Speicher eine Anforderung akzeptiert und nicht gerade einen MOS-Speicher- Erneuerungszyklus durchführt, der Zeittaktgenerator 95 gemäß Fig. 9A ein Taktimpulssignal DCNNGO- erzeugt, das dem Takteingang (C) des Benutzer-Flip-Flop 15M über die Leitung 185 zugeführt wird. Wenn das Signal DCNNGO- vom Zustand binär Null zum Zustand binär Eins übergeht, wird das Signal INREDY- vom NOR-Glied 87 gemäß Fig. 9A, das an den D-Eingang des Benutzer- Flip-Flop 15M über die Leitung 184 gelegt ist, an den O-Ausgang des Flip-Flops 15M weitergeleitet.
Wenn das Signal INREDY- den Binärwert Eins aufweist hat, wie sich nachstehend aus der Diskussion der Fig. 9A ergibt, das Q-Ausgangssignal, das gespeicherte Anforderungssignal STREQQ+ des Benutzer-Flip-Flops 15M den Binärwert Eins. Der Setzeingang (S) des Benutzer-Flip-Flops 15M wird gesperrt, wenn das Eingangssignal in den Binärzustand Eins durch das MYLUP+ gebracht wird, welches nicht mehr als ein Signal ist, das über einen Widerstand von der Plus-Spannung empfangen wird. Wenn keine weitere Buszyklusanforderung vorliegt (das Signal BSREQT- hat den Binärwert Eins), keine Datenzyklen vorliegen (das Signal BSDCNN- hat den Binärwert Eins), und wenn das System nicht alle von Anfang an aufgetretenen logischen Werte löscht (das Signal BSMCLR- hat den Binärwert Eins), dann weist das Ausgangssignal des NOR-Gliedes 14M das Signal BSBSY- den Binärwert Eins auf. Das Buslösch-Signal BSMCLR- dient als Eingangssignal für das AND-Glied 12M gemäß Fig. 9 und ersetzt das Masterlöschsignal MYMCLR-, ein Eingangssignal für das AND-Glied 12 gemäß Fig. 8. Daher bewirkt das gespeicherte Anforderungssignal STREQQ+, das in den Binärzustand Eins übergeht, daß beide Eingänge des NAND-Gliedes 16M den Binärwert Eins erhalten, mit dem Ergebnis, daß dessen Ausgangssignal den Binärwert Null annimmt. Das Auftreten des Binärwertes Null am Setzeingang des Anforderungs-Flip-Flop 17M führt zu einem Setzen desselben. Wenn der Takteingang des Flip-Flop 17M geerdet ist, was Binärwert Null bedeutet, wird dieses Flip-Flop nur durch das Ausgangssignal des NAND-Gliedes 16M gesetzt. Das Setzen des Q-Ausgangssignals des Anforderungs- Flip-Flop 17M zum Binärwert Eins hin hat eine Anforderung an das Busunterbrechungsnetzwerk, das NAND-Glied 19M zur Folge, um die Priorität dieser Busanforderung gegenüber anderen gleichzeitigen Anforderungen zu überprüfen (sofern solche vorhanden sind). Zur selben Zeit wird das Q-Ausgangssignal des Anforderungs-Flip-Flops 17M an die Bussendeempfänger gegeben, wo es durch das Element 18M invertiert wird, um als Busanforderungssignal (BSREQT-) auf den Bus zu gelangen.
Wenn das Signal BSREQT- den Binärwert Null angenommen hat, hindert es andere gespeicherte Anforderungen daran, weitere Anforderungs-Flip-Flops 17M im System zu setzen. Da jede Einheit einen Buszyklus durch Setzen seines Benutzer-Flip- Flops 15M anfordern kann, können mehrere Anforderungs-Flip- Flops 17M gleichzeitig gesetzt sein, wobei jedes einen möglichen zukünftigen Buszyklus betrifft. Wenn gleichzeitige Anforderungen vorliegen, teilt das NAND-Glied 19M einen Datenzyklus der anfordernden Einheit mit der höchsten Priorität zu, indem es das betreffende Zuteilungs-Flip-Flop 22M setzt.
Um einer beliebigen Einheit einen Datenzyklus zuteilen zu können, muß das NAND-Glied 19M an allen seinen Eingängen Unterbrechungssignale vom Binärwert Eins anliegen haben. Wie vorstehend in Verbindung mit Fig. 8 erläutert, ist das Element 28M in der Einheit höchster Priorität, im Speicher, ein Verzögerungselement, das dem Verzögerungselement 13M entspricht, und das beispielsweise eine Verzögerung von 20 Nanosekunden bewirkt. Ohne das Verzögerungselement 28M in der Einheit höchster Priorität würde diese immer beim Zugriff erfolgreich sein, ohne die durch das Verzögerungsglied 13M bedingte Verzögerung einzuhalten. Durch das Element 28M ist daher die Einheit höchster Priorität, der Speicher, daran gehindert, während der Verzögerungsperiode, beispielsweise während 20 Mikrosekunden nach dem Zeitpunkt, zu dem es sein Anforderungs- Flip-Flop 17M setzt, sein Zuteilungs-Flip-Flop 22M zu setzen. Bei dieser Einheit und parallel dazu bei dem Verzögerungselement 28M ist außerdem eine direkte Verbindung vom Q-Ausgang des Anforderungs-Flip-Flop 17M zu einem Eingang des NAND-Gliedes 19M vorhanden, um die Aktivierung des Verknüpfungsgliedes 19M aufgrund eines kurzzeitigen Impulses zu verhindern, der am Q-Ausgang des Flip-Flop 17M wegen beispielsweise eines Wettrennzustands in der Logik gemäß Fig. 9 erzeugt wird. Da der Speicher den Bus nicht wieder anfordert, indem er sein Anforderungs- Flip-Flop 17M, in Erwartung, daß er zum Zeitpunkt, zu dem der Buszyklus zugeteilt wird, bereit ist, liegt kein Benutzer-Bereitschaftssignal als Eingangssignal am NAND-Glied 19M, das dem Signal MCDCNP+ entspricht, das, wie vorstehend erläutert, für das Zentralprozessor-Prioritätslogiknetzwerk gemäß Fig. 8 bestimmt ist. Die anderen Eingangssignale des NAND-Gliedes M werden in ähnlicher Weise wie diejenigen des NAND-Gliedes 19 gemäß Fig. 8 erzeugt. Jede Einheit ändert das Ausgangssignal ihres AND-Gliedes 20M in den Binärwert Null, wenn eine Busanforderung gemacht wird. Somit nimmt das Signal BSMYOK+ den Binärwert Null an und wird auf den Bus gegeben, wo es das Sperrsignal für die Unterbrecherglieder NAND-Glieder 19M bei Einheiten niedrigerer Priorität wird.
Der Speicher nimmt immer die Lage der höchsten Priorität am Bus ein. In dieser Lage werden die Unterbrechersignale an Widerständen zu Signalen des Binärwerts Eins verbunden. Wenn nicht eine Speichersteuerung höherer Priorität im System ist, dann liegt, wenn der Speicher das Signal MYREQT+ erzeugt, kein Unterbrechersignal mit dem Binärwert Null am Eingang des NAND-Gliedes 19M, das verhindern würde, daß das Ausgangssignal dieses Verknüpfungsgliedes binär Null werden würde und damit das Zuteilungs-Flip-Flop 22M setzen würde. Wenn der Taktimpulseingang des Flip-Flop 22M geerdet ist, was dem Binärwert Null entspricht, wird das Flip-Flop 22M lediglich durch das Ausgangssignal des NAND-Gliedes 19M gesetzt.
Das Setzen des Zuteilungs-Flip-Flop 22M hat zur Folge, daß das Signal MYDCNN+ am Q-Ausgang des Zuteilungs-Flip-Flop 22M den Binärwert Eins annimmt, der durch das Bus-Sende-Empfangs- Gerät 23M invertiert und an den Bus als Signal BSDCNN- gegeben wird. Das Signal MYDCNN+ auf der Leitung 182 setzt auch das Benutzer-Flip-Flop 15M zurück, (über Doppelwort verbunden mit Logik 94, Signal SFREQR+ auf Leitung 183 und NOR-Glied 29M), wenn nicht eine Doppelzugriffsübertragung im Gang ist, wie sich nachfolgend ergibt. Das Signal MYDCNN+ schaltet auch Speicherdaten, Speicheridentifizierungscodes und einige andere Steuersignale auf den Bus.
Während einer Doppelzugriffsoperation informiert eine anfordernde Einheit den Speicher, daß ein Doppelwort angefordert wird, indem sie das Doppelzugriffssignal BSDBPL- auf dem Bus zum Binärwert Null macht. Ein Taktgenerator und ein Teil der Bussteuerlogik setzen die Doppelzugriffsspeicher in die Lage, mit zwei Worten zu antworten anstelle nur eines, wie vorstehend beschrieben.
Die Bussteuerungs- und Antworteinheit, die für eine Doppelzugriffsübertragung benutzt wird, ist in den Fig. 9 und 9A gezeigt. Wie sich aus Fig. 9 ergibt, wird während einer einzigen Zugriffsübertragung das Signal MYDCNN+ durch das Zuteilungs-Flip-Flop 22M dann erzeugt, wenn dem Speicher ein Buszyklus zugeteilt worden ist, und das angeforderte Datensignal zurücksendet. Das Speicherbenutzer-Flip-Flop 15M wird mit der Anstiegsflanke des Signals STREQR+ über das NOR-Glied 29M zurückgesetzt. Das erwähnte Signal auf der Leitung 183 wird von einer Doppelwortlogik 94 in Reaktion auf das Signal MYDCNN+ auf der Leitung 182 erzeugt, wie noch erläutert wird. Das Rücksetzen des Benutzer-Flip-Flop 15M hat zur Folge, daß das -Ausgangssignal desselben, das Signal STREQQ-, den Binärwert Eins annimmt und über das NOR-Glied 70 das Speicheranforderungs- Flip-Flop 17M zurücksetzt. Das Zurücksetzen des letzterwähnten Flip-Flop führt dazu, daß das -Ausgangssignal desselben, das Signal MYREQT-, den Binärwert Eins annimmt und über das AND-Glied 20M dazu führt, daß das Signal BSMYOK+ binär Eins wird, wodurch der Bus für die nächste Operation freigegeben wird. Man sieht also, daß im Falle einer Einfachzugriffoperation das Signal MYDCNN+ das Benutzer-Flip-Flop 15M nach Beendigung des ersten Anwortzyklus zurücksetzt, wogegen, wie sich noch ergibt, bei einer Doppelzugriffsoperation zwei Antwortzyklen erforderlich sind, bevor das Benutzer-Flip-Flop 15M zurückgesetzt wird.
Fig. 9 zeigt auch die Logik, die von der Speichersteuerung benutzt wird, um den Inhalt der Busdatenleitungen während einer Speicheranforderung festzuhalten. Die Busdatenleitungssignale BSDT00- bis BSDT15- werden durch 16 Empfänger 97 gemäß Fig. 9 empfangen und invertiert. Die resuliertenden Signale BSDT00+ bis BSDT15+ werden durch das Signal MYACKR+ auf der Leitung 186 von der Logik gemäß Fig. 10 in das Register 98 eingegeben, wenn die Speichersteuerung als Slave-Einheit die Speicheranforderung annimmt. Das Register 98 besteht aus 16 D-Flip-Flops und wird dazu benutzt, den Inhalt der Busdatenleitungen zu speichern. Während einer Schreibanforderung an den Speicher enthalten die Busdatenleitungen das 16-Bit-Datenwort, das in den Speicher geschrieben werden soll. Während einer Speicherleseanforderung enthalten die Datenleitungen die Kanalnummer der anfordernden Einheit und den Funktionscode im in Fig. 4 gezeigten Format. Während des Antwortzyklus einer Leseanforderung, und zwar während einer Einfachzugriff- oder einer Doppelzugriffleseanforderung werden die Kanalnummer und der Funktionscode zu der anfordernden Einheit auf den Busadreßleitungen im Format gemäß Fig. 3 zurückgesendet. Das Rücksenden dieser Informationen geschieht dadurch, daß durch das Signal MYDCNN- die 16 Treiber 99 aktiviert werden, um den Inhalt des Registers 98 auf die Busadreßleitungen zu schalten, wenn der Speichersteuerung als Mastereinheit der Bus zugeteilt worden ist. Wie sich noch ergibt, erlaubt das Zurücksenden des Funktionscodes während des Antwortzyklus dem Zentralprozessor zwischen Speicherantwortzyklen, die eine Antwort auf eine Einfachzugriffanforderung sind von Daten, und Speicherantwortzyklen zu unterscheiden, die eine Antwort auf eine Doppelzugriffsanforderung sind.
Wie sich aus Fig. 9A ergibt, wird, wenn der Speicher eine Doppelwortleseanforderung annimmt, der Ausgang des AND-Gliedes 76, das Doppelwortzugriffssignal (DFETCH+), binär Eins, vorausgesetzt, daß sich der Speicher nicht in einem MOS-Speichererneuerungszyklus befindet. Das erwähnte Signal ermöglicht dem Speicher, zwei aufeinanderfolgende MYDCNN+-Signale zu erzeugen, die zwei durch die Mastereinheit angeforderte Datenwörter aussenden, wie nachfolgend beschrieben wird. Wenn die Mastereinheit eine Doppelzugriffsanforderung vornimmt, ist das BSWRIT- Signal auf dem Bus binär Eins, was eine Leseanforderung anzeigt, und daher ist das Ausgangssignal des Empfängers (invertierender Verstärker) 71 binär Null. Ebenso während einer Doppelzugriffsanforderung ist, da das Doppelzugriffssignal BSDBPL- auf dem Bus binär Null ist, das Ausgangssignal des Empfängers 72 binär Eins. Wenn der Speicher das erste der beiden Worte enthält, zu denen zugegriffen werden soll, das heißt, das durch die Busadressenleitungen BSAD00- bis BSAD22- adressierte Wort in dem betreffenden Speicher vorhanden ist und der Speicher nicht belegt ist, veranlaßt die Speichersteuerungslogik gemäß Fig. 10, daß das MYACKR+-Signal vom Binärwert Null zum Binärwert Eins übergeht, wodurch das Eingangssignal an den D-Eingängen an die Q-Ausgänge des Elementes 74 weitergetaktet wird. Das bedeutet, daß das Signal BSWRIT+ vom Binärwert Null am Eingang D0 an den Ausgang Q0 durchgeschaltet wird und damit das Schreibspeichersignal WRITMM+ zu binär Null und das 0-Ausgangslesespeichersignal READMM+ zu binär Eins macht. Das Signal BSDBPL+ vom Binärwert Eins am Eingang D1 des Elementes 74 wird an den Ausgang Q1 dieses Elements durchgeschaltet, wodurch das Signal MDFETCH+ zu binär Eins wird. Sofern keine Speichererneuerung im Gange ist, hat das Signal REFCOM- den Binärwert Eins, wenn keine Doppelwortsperre vorliegt, weil der Speicher nicht geprüft wird, ist das Signal DWDINH- binär Eins und mit Umschlagen des Signals READMM+ auf binär Null wird das Ausgangssignal des NOR-Gliedes 75, das Signal DFHINH- binär Eins. Da nun beide Eingangssignale am AND-Glied 76 binär Eins sind, wird das Ausgangssignal, das Signal DFETCH+ ebenfalls binär Eins.
Die Koinzidenz des vorerwähnten Signals und des Signals DWDSET+, das vom Speicherzeittaktgenerator 95 erzeugt wird, das durch Verzögerung, beispielsweise um 100 Nanosekunden, als Signal MYACKR+ auftritt, an den Eingängen des NAND-Gliedes 78 führt dazu, daß dessen Ausgangssignal, das Signal DWDSET- den Binärwert Null annimmt und dabei das Doppelzugriffszustands- Flip-Flop 80 setzt. Der Zweck dieses Flip-Flop 80 besteht darin, festzuhalten, daß der Speicher auf eine Doppelzugriffsoperation antwortet, so daß dann, wenn der Speicher die Steuerung auf dem Bus übernimmt und während des ersten der beiden Anwortzyklen antwortet, er das Signal BSDBPL- zu binär Null macht, um der anfordernden Einheit anzugeben, daß es sich um das erste der beiden Worte handelt. Das Signal DWDHIS-, das am -Ausgang des Flip-Flop 80 den Binärwert Null hat, verhindert, daß das Ausgangssignal des NAND-Gliedes 81 binär Null wird, wenn der Speicher mit dem Signal MYDCNN+ auf der Leitung 182 antwortet, das während des ersten Antwortzyklus binär Eins ist. Dieses Sperren durch das Signal DWDHIS- verhindert, daß das Ausgangssignal des Inverters 82 den Binärwert Eins als Reaktion auf das Signal MYDCNN+ annimmt, wenn dieses binär Null wird, so daß ein Rücksetzen des Speicherbenutzer- Flip-Flop 15M über das NOR-Glied 29 gemäß Fig. 9 verhindert ist. Das Sperren des Flip-Flop 15M durch das Doppelzugriffs- Zustands-Flip-Flop verhindert ein Rücksetzen des Speicheranforderungs- Flip-Flop 17M, so daß das Signal MYREQT+ binär Eins bleibt und ferner der Speicher fortfährt, über den Treiber 18M einen Buszyklus anzufordern. Während des ersten Speicherantwortzyklus erzeugt die Vorderkante des Signals MYDCNN+ auf der Leitung 182 das Doppelantwortsignal DWRESP- am Ausgang des NAND-Glieds 83, an dem als Eingangssignal das Q-Ausgangssignal des Flip-Flop 80, das Signal DWDHIS+ anliegt, das binär Eins ist. Das den Binärwert Null annehmende Signal DWRESP- wird durch den Inverter 84 invertiert und nochmals invertiert durch den Treiber 85 und dann an den Bus als Signal BSDBPL- mit dem Binärwert Null gegeben. Das Signal DWRESP- setzt ebenfalls das Flip-Flop 80 zurück, indem es einen -Ausgang an seinem D-Eingang zu seinen Q- und -Ausgängen taktet.
Das Rücksetzen des Flip-Flop 80 führt zu einem -Ausgangssignal desselben vom Binärwert Null, so daß das nächste MYDCNN+-Signal, das am NAND-Glied 81 anliegt, zu einem Rücksetzen des Speicherbenutzer-Flip-Flop 15M über den Inverter 82 und das NOR-Glied 29M führt. Das Rücksetzen des Flip-Flop 15M führt zu einem Rücksetzen des Speicheranforderungs-Flip- Flop 17M und dazu, daß das Signal MYREQT+ an dessen Ausgang binär Null wird, mit der Folge, daß der Speicher nicht länger über den Treiber 18M einen Buszyklus anfordert.
Die anfordernde Einheit, der Zentralprozessor in diesem Fall, bestätigt das erste Datenwort, indem sie mit dem Signal BSACKR-, das binär Null ist, antwortet, welches das Speicherzuteilungs- Flip-Flop 22M rücksetzt. Wenn die anfordernde Einheit die Signale NAK oder WAIT im Speicherantwortzyklus sendet oder nicht antwortet, sind die Daten verloren. Da das Speicheranforderungs-Flip-Flop 17M in Beantwortung des ersten Speicherantwortzyklus nicht rückgesetzt wird, fährt der Speicher fort, den Bus mit dem Signal BSREQT- anzufordern, das binär Null bleibt. Der Speicher erzeugt daher ein weiteres Signal BYDCNN+ vom Binärwert Eins über das NAND-Glied 19M und das Flip-Flop 22M, um das zweite Datenwort zu senden. Wenn das Doppelzugriffs-Zustands-Flip-Flop 80 am Ende des ersten Antwortzyklus zurückgesetzt ist, setzt während des zweiten Antwortzyklus das Signal MYDCNN+ das Benutzer-Flip-Flop 15M zurück, wie auch das Anforderungs-Flip-Flop 17M. Auch wird das Signal BSDBPL- nicht in den Binärzustand Null gebracht, womit angezeigt wird, daß keine weitere Information vorliegt, die von der anfordernden Einheit erwartet werden müßte.
Wenn aus irgendeinem Grund das zweite Datenwort nicht von der Speichersteuerung erhalten werden kann (beispielsweise wenn der Zentralprozessor eine Doppelzugriffsoperation anfordert und die vorliegende Speicheradresse, das heißt die Adresse des ersten der beiden Worte diejenige der höchstwertigen Stelle in dieser bestimmten Speichersteuerung ist), dann setzt der Speicher das Doppelzugriffs-Zustands-Flip-Flop 80 mit dem Signal I2WRBS- über das OR-Glied 77 und den Inverter 79 zurück, letzteren durch das Signal DWDRES-, das an dessen Rücksetzeingang mit dem Binärwert Null auftritt. Dieses Rücksetzen des Flip-Flop 80 findet statt, nachdem es durch das Signal DWDSET-, das an seinem Setzeingang binär Null geworden ist, gesetzt ist, jedoch vor dem ersten Antwortzyklus des Speichers, wie nachstehend beschrieben wird. Das bedeutet, daß, wenn das zweite Wort nicht vorhanden ist, das Signal DWDSET+ des Taktgenerators 95 den Binärwert Eins annimmt und zum Binärwert Null zurückgeht, bevor das Signal I2WRES- vom NOR-Glied 93 auftritt. In diesem Fall bringt die Speichersteuerung das Signal BSDBPL- nicht in den Binärzustand Null während der Ausgabe des ersten Datenwortes, womit der anfordernden Einheit angezeigt ist, daß ein zweites Datenwort nicht mehr kommt.
Die Adreßregister 89 und 90 wirken mit den Multiplexern 91 und 92 und dem NOR-Glied 93 zusammen, um festzustellen, ob das zweite Wort der Doppelzugriffsanforderung bei derselben Speichersteuerung vorhanden ist, bei der auch das erste Wort vorhanden ist. Diese Feststellung wird wie folgt durchgeführt, wenn die Mastereinheit, beispielsweise der Zentralprozessor, eine Doppelzugriffsanforderung abgibt. Das Element 88 enthält Empfänger für jedes der Busadreßsignale BSAD00- bis BSAD22-, die invertierte Signale BSAD00+ bis BSAD22+ erzeugen, die an die Adreßregister 89 und 90 gelangen. Diese beiden Register bestehen jeweils aus sechs in Kaskade geschalteten synchronen 4-Bit-Auf-/Abzählern des Typs, wie sie unter der Bezeichnung SN74193 von der Firma Texas Instruments hergestellt werden. Diese Adreßregister haben die Fähigkeit, die in sie eingegebene Information zu erhalten, wenn an ihrem Eingang L der Binärwert Null anliegt, und auch die Fähigkeit, den Wert um 1 zu erhöhen und diesen erhöhten Wert zu speichern. Die Adreßregister erhöhen ihren Inhalt um 1, wenn das Signal an ihrem +1-Eingang vom Binärwert Null zum Binärwert Eins übergeht. Während des Doppelzugriffs-Anforderungszyklus des Masters werden die Restsignale des Busses an beide Register 89 und 90 gelegt, wenn die Speichersteuerung die Doppelzugriffsanforderung durch das Signal MYACKR+ bestätigt, das über den Inverter 96 den Binärwert Null annimmt. Sie erzeugt ein binäres Null MYACKR--Signal am L-Eingang der Register 89 und 90. Wenn die Adresse des ersten Wortes in dieser Weise in beide Register 89 und 90 geladen ist, bestimmt eine weitere hier nicht dargestellte Logik, ob die Adresse ungerade oder gerade ist. Wenn die Speicheradresse des ersten Wortes ungerade ist, geht das Signal MAREUC- am +1-Eingang des Geradewortadreßregisters 90 vom Binärzustand Null in den Binärzustand Eins über, wobei der Inhalt des Registers um 1 erhöht wird. Das Adreßregister 90 für geradzahlige Adressen enthält somit die Adresse des zweiten (geradzahligen) Wortes, das dem Speicher entnommen werden soll. In ähnlicher Weise geht dann, wenn die Adresse des ersten Wortes gerade ist, das Signal MAROUC- am +1- Eingang des Adreßwortregisters 89 für ungerade Adressen vom Binärwert Null in den Binärwert Eins über, erhöht dabei den Inhalt des Registers 89, so daß er die Adresse des zweiten ungeraden, dem Speicher zu entnehmenden Wortes enthält. Zu diesem Zeitpunkt enthält, unabhängig davon, ob die Adresse des ersten Wortes ungerade oder gerade war, das Register 89 die Adresse eines ungeraden Wortes und das Register 90 die Adresse eines geraden Wortes. Die Multiplexer 91 und 92 arbeiten in ähnlicher Weise wie der Multiplexer 48 gemäß Fig. 10, um zu bestimmen, ob der 8k-Speichermodul, der das zweite der beiden auszugebenden Worte enthält, bei der vorliegenden Steuerung vorhanden ist. Mit Hilfe des Signals MARE08+, das vom Adreßregister 90 für ungerade Adressen abgeleitet ist und anzeigt, ob das in diesem Register adressierte Wort sich bei den 16k unteren Worten oder bei den 16k oberen Worten befindet, schalten die Multiplexer 91 und 92 selektiv einen der Eingänge auf den Ausgang. Das bedeutet, daß dann, wenn das Signal MARE08+ binär Null ist, das Signal MYMOSB- an den Ausgang des Multiplexers 91 und das Signal MYMOSA- an den Ausgang des Multiplexers 92 geschaltet wird. Wenn das Signal MARE08+ binär Eins ist, wird das Signal MYMOSP- an den Ausgang des Multiplexers 91 und das Signal MYMOSC- an den Ausgang des Multiplexers 92 durchgeschaltet. Wie sich aus der vorstehenden Erläuterung des Multiplexers 48 gemäß Fig. 10 ergeben hat, zeigt dann, wenn das Signal MARE08+ binär Null ist, was bedeutet, daß die unteren 16k Worte für Speichersteuerung durch das Adreßregister für geradzahlige Worte angesteuert wird, ein Binärwert Null am Ausgang des Multiplexers 91, daß der Speichermodul B vorhanden ist und ein Binärwert Null am Ausgang des Multiplexers 92, daß der Speichemodul A vorhanden ist. Wenn das Signal MARE08+ binär Eins ist, was bedeutet, daß das Adreßregister für geradzahlige Worte ein Wort der oberen 16k Worte in der Speichersteuerung bezeichnet, zeigt der Binärwert Null am Ausgang des Multiplexers 91 an, daß der Speichermodul D in der Steuerung vorhanden ist und der Binärwert Null am Ausgang des Multiplexers 92, daß der Speichermodul C vorhanden ist.
Die Wirkungsweise der Multiplexer 91 und 92 in Verbindung mit den Adreßregistern 89 und 90 läßt sich am besten anhand von Fig. 14 erläutern und anhand von Grenzfällen prüfen. Wenn die im Register 90 enthaltene Adresse die unteren 16k Worte im Speicher betrifft, das heißt wenn das Signal MARE08+ binär Null ist, sind die Grenzfälle diejenigen, in denen das Adreßregister für geradzahlige Worte eine Adresse zwischen 0 und 16.382 enthält. Wenn das Adreßregister 90 die Adresse 0 enthält, muß das Adreßregister 89 für ungeradzahlige Worte die Adresse des nächsthöheren Wortes, das heißt des Wortes 1, enthalten, und die Multiplexer 91 und 92 gemäß Fig. 9A erfordern, daß die Moduln A und B in der Speichersteuerung vorhanden sind. Im Fall der Adresse 0 im Register 90 kann das Adreßregister für ungeradzahlige Worte nicht die nächstniedrigere Adresse enthalten, da die Speichersteuerungslogik gemäß Fig. 9 nicht geantwortet haben würde, da die Adresse auf dem Bus, das heißt die Adresse des ersten zu entnehmenden Wortes, in der Steuerung nicht vorhanden war und daher die Adresse nicht zu den Adreßregistern 89 und 90 durchgeschaltet worden wäre. Wenn die Adresse im Register 90 diejenige des letzten Wortes im Modul A, das heißt die Adresse 16.382, ist, sind sowohl das nächsthöhere als auch das nächstniedrigere Wort, das durch das Register 89 für ungeradzahlige Worte adressiert werden könnte, im Speichermodul B enthalten und die Multiplexer 91 und 92 zeigen die Anwesenheit der Speichermoduln A und B an. Wenn das Signal MARE08+ den Binärwert Eins aufweist, was bedeutet, daß die im Adreßregister 90 befindliche Adresse die oberen 16k Wörter des Speichers betrifft, zeigen die Multiplexer 91 und 92 das Vorhandensein der Speichermoduln C und D an. Im Falle der oberen 16k Worte im Speicher, wenn das Adreßregister für geradzahlige Worte das erste Wort im Speichermodul C adressiert, das heißt die Adresse 16.384 liefert, dann ist das Wort der nächsthöheren Adresse im Speichermodul D enthalten, dessen Anwesenheit durch den Multiplexer 91 angezeigt wird. Wenn das nächstniedrigere Wort adressiert wird, das heißt das Wort 16.383, würde die Anwesenheit des Speichermoduls B während des ersten Buszyklus' durch den Multiplexer 48 gemäß Fig. 10 angezeigt, wenn ursprünglich eine Doppelzugriffsanforderung vorlag. Wenn das Adreßregister 90 die Adresse des letzten Wortes im Speichermodul C enthält, das heißt des Wortes 32.766, sind sowohl die Worte mit der nächsthöheren als auch mit der nächstniedrigeren Adresse im Speichermodul D enthalten, dessen Anwesenheit wieder durch den Multiplexer 91 angezeigt wird. Der letzte verbleibende Grenzfall ist der, daß durch die Doppelzugriffsanforderung das letzte Wort bei der Speichersteuerung adressiert wird, das heißt die Adresse 32.767. In diesem Fall wird, nachdem die Adresse vom Bus durchgeschaltet und in die Adreßregister 89 und 90 eingetragen worden ist, der Inhalt des Adreßregisters 90 um 1 erhöht, so daß sich die Adresse 32.768 ergibt. Dies führt dazu, daß das Signal MARE08+ Null wird, was, wie sich vorstehend gezeigt hat, dazu führt, daß die Multiplexer 91 und 92 die Anwesenheit oder Abwesenheit der Speichermoduln A und B anzeigen, die die unteren 16k Worte des Speichers auf eine besondere Speichersteuerung zusammenführen. In diesem Fall, in dem das erste in einer Doppelzugriffsanforderung adressierte Wort das letzte Wort in der Speichersteuerung ist, befindet sich das zweite Wort tatsächlich unter den 16k Worten des Speichers, aber nicht bei der aktuellen Speichersteuerung, sondern bei der nächsten Speichersteuerung. Dieser Fall wird durch das Signal MAROOL+- Zeichen gemäß Fig. 9A angezeigt, das den Binärwert Eins aufgrund eines Übertragssignals annimmt, welches sich aus dem Übertrag der Bitposition 8 in die Bitposition 7 des Registers 90 für geradzahlige Worte ergibt, wenn die Adresse erhöht wird. Indem das Ausgangssignal der Multiplexer 91 und 92, und das Adreßübertragssignal MAROOL+ unter Sperrung des Zweiwortsignals INH2WD+ (normalerweise binär Null) an das NOR-Glied 93 gegeben werden, nimmt dessen Ausgangssignal, das Signal I2WRES-, den Binärwert Null an, wenn das zweite Wort der Doppelzugriffsanforderung in der betreffenden Speichersteuerung vorhanden ist. Das Signal I2WRES- wird binär Null, wenn das zweite Wort nicht in der Speichersteuerung vorhanden ist und bewirkt über das OR-Glied 77 und den Inverter 79 ein Rücksetzen des Doppelzugriffs-Zustands-Flip-Flops 80.
Die Adressenregister 89 und 90 werden zusammen mit anderen in der Fig. 9A nicht dargestellten Logikeinheiten auch dazu verwendet, die ungeradzahligen und geradzahligen Worte zu adressieren, wenn sie von den Speichermoduln abgerufen werden. Hierdurch ist es möglich, zwei Worte in Überlappung abzurufen, ein Wort von einem Speichermodul, der geradzahlig adressierte Worte enthält, und ein Wort von einem Speichermodul, der ungeradzahlig adressierte Worte enthält. Das Abrufen des zweiten Wortes wird kurz nach dem Abrufen des ersten Wortes eingeleitet, beispielsweise um 150 Nanosekunden später. Dies hat zur Folge, daß das zweite Wort in der Speichersteuerung zur Verfügung steht, bevor der Antwortbuszyklus, der das erste Wort an die anfordernde Einheit liefert, beendet ist. Hierdurch wird der Systemdurchsatz dadurch erhöht, daß das zweite Wort für einen unmittelbaren Transfer zu der erfordernden Einheit während eines zweiten Antwortszyklus' zur Verfügung steht.
Das Speichersteuerbenutzer-Flip-Flop 15M gemäß Fig. 9 wird in folgender Weise gesetzt. Wie man aus Fig. 9A ersehen hat, wird, wenn die Speichersteuerung eine Leseanforderung bestätigt, das Speicherlesesignal READMM+, ein Ausgangssignal des Elementes 74, zu binär 1 und zusammen mit dem Initialisierungssignal INITMM-, das den Binärwert 1 aufweist und anzeigt, daß noch keine Initialisierung vorliegt, hat es zur Folge, daß das Ausgangssignal des AND-Gliedes 86 binär Eins wird. Dieses Ausgangssignal führt zusammen mit dem Speichererneuerungssignal REFCOM-, das binär Eins ist und anzeigt, daß ein Speichererneuerungszyklus nicht im Gange ist, dazu, daß das Ausgangssignal des NOR-Gliedes 87, das Signal INREDY- auf der Leitung 184, den Binärwert Eins am D-Eingang des Benutzer-Flip-Flop 15M annimmt. Das spätere Auftreten, beispielsweise 400 Nanosekunden nachdem das Signal MYACKR+ vom Binärwert Null in den Binärwert Eins übergeht, des Signals DCNNGO- auf der Leitung 184 am Takteingang des Flip-Flop 15M, der vom Binärzustand Null in den Binärzustand Eins übergeht, veranlaßt das Setzen des Flip-Flops 15M, wodurch das Signal am D-Eingang an den Ausgang durchgeschaltet wird. Es sei bemerkt, daß zu dem Zeitpunkt, zu dem diese Taktung eintritt, das Ausgangssignal des NOR-Gliedes 29M binär Eins ist. Aus Fig. 9A erkennt man, daß die Ausgangssignale der Flip-Flops des Elementes 74 durch das Ausgangssignal des NOR-Gliedes 73, des Signals CLRMOD-, gelöscht werden, und zwar wenn dieses Signal binär Null wird als Folge des Übergangs eines Eingangssignals in den Binärzustand Null, das heißt, wenn es zu einem Buslöschen oder zur Speicherinhaltserneuerung kommt. Die Zeitbeziehungen zwischen den Speichersteuerungssignalen während einer Doppelzugriffsoperation sind im unteren Teil der Fig. 12 gezeigt und werden nachstehend näher beschrieben.
Zentralprozessorbus-Schnittstellenlogik
Es wird nun auf eine typische Zentralprozessorbus-Kopplungslogik gemäß Fig. 11 bezug genommen. Es werden sort die Signale vom Bus mit Hilfe von Empfängern aufgenommen, die Bestandteil des Elementes 99 sind. Das Signal BSMREF- wird von einem der Empfänger empfangen und dazu benutzt, teilweise das AND-Glied 100 zu aktivieren, wenn die empfangene Adresse nicht eine Speicheradresse ist. Das Signal MYDCNN+ führt dann zu einer Aktivierung des AND-Gliedes 100, wenn der Zentralprozessor nicht gerade die Mastereinheit ist (das heißt wenn er nicht gerade eine Adresse auf den Bus gegeben hat). Das Ausgangssignal des AND-Gliedes 100 stellt ein Eingangssignal für den Komparator 103 dar und aktiviert diesen. Eines der Eingangssignale, die durch den Komparator 103 verglichen werden, ist die Adresse des Zentralprozessors, die in diesem Falle beispielsweise vierstellig sei und durch die Signale BSAD14+ bis BSAD17+ dargestellt wird. Diese Adresse, die am einen Eingang des Komparators anliegt, wird mit der Adresse verglichen, die beispielsweise durch den hexadezimalen Schalter 101 im Zentralprozessor selbst eingestellt worden ist. Wenn die empfangene Adresse und die durch den Schalter 101 angegebene Adresse als übereinstimmend erkannt werden, erzeugt der Komparator 103 das Signal ITSAME+, das zu einer Teilfreigabe der Verknüpfungsglieder 106 und 107 führt.
An den Eingängen des AND-Gliedes 104 werden weitere Adressen- Bits BSAD08+ bis BSAD13+ empfangen, wobei dieses Verknüpfungsglied feststellt, ob alle diese Bits Null sind oder nicht. Sind sie alle Null, dann wird das Signal ITSMEA+ erzeugt, was ebenfalls die Verknüpfungsglieder 106 und 107 teilweise freigibt. Die Freigabe eines weiteren Eingangs dieser Verknüpfungsglieder führt dann dazu, daß ein Flip-Flop im Element 113 gesetzt wird.
Am anderen Eingang des AND-Gliedes 106 liegt das Signal BSSHBC+, das die zweite Hälfte des Buszyklus' anzeigt, und das über den Inverter 116 an das Verknüpfungsglied 106 gelegt ist. Dieses Zyklussignal wird auch an einem Eingang des AND-Gliedes 107 empfangen.
Das AND-Glied 107 ist freigegeben, wenn zwei Eingangssignale anzeigen, daß es sich um die adressierte Einheit handelt, und daß die zweite Hälfte des Buszyklus' vorliegt. Damit wird durch Freigabe des AND-Glied 107 das MYSHRC--Signal erzeugt und an den einen Eignang des OR-Gliedes 114 gegeben. Dieses Verknüpfungsglied liefert ein ACK-Signal (BSACKR-) über den Treiber 115. Das Durchlässigmachen des AND-Gliedes 107 zusätzlich zur Erzeugung des Signals MYSHRC- am -1-Ausgang des Elementes 113 führt auch zur Erzeugung des Signals MYSHRC+ am Q-1-Ausgang desselben Flip-Flop des Elementes 113. Der Übergang des Signals MYSHRC+ vom Binärwert Null zum Binärwert Eins wird dazu benutzt, die Eingangssignale bei den Flip-Flop des Elementes 110 an deren Ausgang durchzuschalten. Wenn das Signal BSAD18+, das Bit der hohen Ordnung des Funktionscodefeldes gemäß Fig. 3, den Binärwert Eins annimmt (Funktionscode von 20, Basis 16), und zwar am D0-Eingang des Elementes 110, womit angezeigt ist, daß die Einheit (Speicher zum Beispiel) auf eine Doppelzugriffsanforderung antwortet, wird das Signal MYSHRP- am -0-Ausgang des Elementes 110 zu binär Null, was bedeutet, daß diese zweite Hälfte des Buszyklus' der Beantwortung der Doppelzugriffsanforderung durch den Zentralprozessor dient. Wenn das Signal BSAD18+ binär Null ist (Funktionscode 00, Basis 16), was anzeigt, daß die Einheit auf eine Einfachzugriffsanforderung (Daten) antwortet, dann wird der Binärwert Eins durch den Inverter 100 am D1-Eingang des Elementes 110 erzeugt, mit dem Ergebnis, daß das Signal MYSHRD+ am Q-Ausgang des Elementes 110 den Binärwert Eins annimmt und anzeigt, daß diese zweite Hälfte des Buszyklus' der Beantwortung einer Einfachzugriffsanforderung durch den Zentralprozessor dient. Bei den Multizykluszugriffsoperationen des Zentralprozessors, bei denen dieser von der Slave-Einheit einen Antwortzyklus erwartet, werden die Signale MYSHRP- und MYSHRD+ dazu benutzt, dem Zentralprozessor anzuzeigen, daß in der zweiten Hälfte des Buszyklus' die erwarteten Daten aufgrund einer vorangegangenen Doppel- oder Einfachzugriffsanforderung geliefert werden. Die Flip-Flops im Element 110 werden durch das Signal BSDCNB- über den Inverter 125 in derselben Weise gelöscht, wie dies vorstehend für ähnliche Flip-Flop-Elemente erläutert wurde, wobei die Flip-Flops entsprechend dem Buszyklus in den Anfangszustand zurückgesetzt werden.
Das Verknüpfungsglied 106 wird vollständig durchlässig, wenn die richtige Einheitenadresse empfangen worden ist, und wenn es sich nicht um die zweite Hälfte des Buszyklus' handelt. Es erzeugt dabei einen positiven Impuls, der mit MYINTR+ bezeichnet wird, am Ausgang des betreffenden zum Element 113 gehörenden Flip-Flop. Das erwähnte Signal veranlaßt die Logik gemäß Fig. 11 zu bestimmen, ob ein Signal ACK oder ein Signal NAK erzeugt wird. Welches der beiden Signale erzeugt wird, hängt von der Unterbrechungsebene ab, die gerade in dem System vorliegt, verglichen mit der Unterbrechungsebene der Einheit, die Bearbeitungszeit anfordert.
Die Entscheidung darüber, ob die Unterbrechungsebene ausreichend ist, wird mit Hilfe eines Komparators 117 getroffen, der dazu dient, zu bestimmen, ob das Eingangssignal am A-Eingang nicht kleiner ist als das am B-Eingang. Der A- Eingang des Komparators 117 empfängt die Signale BSDT10+ bis BSDT15+, die im in Fig. 5 gezeigten Format die Unterbrechungsebene der an den Bus angeschlossenen Einheit anzeigen, die Datenverarbeitungszeit anfordert. Eine Mehrzahl von Unterbrechungsebenen ist in dem System vorgesehen. Die Unterbrechungsebene 0 erhält die höchstmögliche Zugänglichkeit zu Datenverarbeitungszeit und ist dementsprechend nicht unterbrechbar. Das bedeutet, daß, je niedriger die Nummer der Unterbrechungsebene ist, desto geringer die Wahrscheinlichkeit ist, daß die mit dieser Einheit in Zusammenhang stehende Bearbeitung unterbrochen wird. Wenn also die Ebenennummer, die am A-Eingang des Komparators empfangen wird, kleiner als die Nummer der gerade vorliegenden Ebene im Zentralprozessor, die durch die Ebenennummer in Block 18 angezeigt wird, ist, dann gelingt es der Einheit, die unterbrechen möchte, was durch das am Eingang A empfangene Signal angezeigt wird, tatsächlich, eine solche Unterbrechung zu erreichen. Wenn das Signal am A- Eingang gleich oder größer demjenigen am B-Eingang ist, wird das LVLBLS+-Signal nicht erzeugt, und es wird ein Signal NAK durch den Treiber 108 und das Flip-Flop 120 erzeugt, wie nachstehend erläutert wird.
Wenn also die Aufgabe über die Unterbrecherebene, die beim Eingang A des Vergleichers 117 ankommt, kleiner ist als diejenige am Eingang B, ist das Signal LVLBLS+ binär Eins und wird an den D-Eingang beider Flip-Flop 120 und 121 gegeben, wobei bemerkt sein, daß der D-Eingang des Flip-Flop 120 ein negierter Eingang ist. Wenn das Signal am Eingang A gleich oder größer als das am Eingang B ist, was der Komparator 117 anzeigt, dann nimmt das Signal LVLBLS+ den Binärwert Null an und gelangt an den negierenden Eingang des Flip-Flop 120. Dieses erzeugt das Signal NAK, wenn an seinem Takteingang das Signal MYINTR+ auftritt, was ein Setzen des Flip-Flop im Element 113 zur Folge hat. Wenn die Ebene ausreichend ist, das heißt wenn das Signal am Eingang A kleiner war als dasjenige am Eingang B, und dies der Komparator 117 anzeigt, dann wird das Signal LVLBLS+ binär Eins und dementsprechend wird das Signal MYINTR+ dieses Signal an den -Ausgang des Flip-Flop 121 durchschalten, von wo es an den einen Eingang des OR-Gliedes 114 gelangt, das über den Treiber 115 das Signal ACK erzeugt. Das heißt also, daß dann, wenn das Signal MYNACK+ binär Eins ist, das NAK-Signal erzeugt wird und wenn das Signal MYINTF- binär Null ist, ein Signal ACK erzeugt wird. Die Flip-Flops im Element 113 werden durch den Inverter 125 in derselben Weise gelöscht, wie dies vorstehend im Zusammenhang mit ähnlichen Flip-Flops erläutert wurde. Es sei noch bemerkt, daß ein Signal ACK unabhängig von der durch den Komparator 117 gemachten Angabe erzeugt wird, wenn es sich um die zweite Hälfte eines Buszyklus' handelt. In diesem Fall wird das Signal MYSHRC- von einem der Flip-Flops des Elementes 113 geliefert, das mit dem Binärwert Null an den anderen Eingang des OR-Gliedes 114 gelangt, so daß das Signal ACK erzeugt wird und dabei sich gegen jegliche Angabe des Flip-Flop 121 durchsetzt.
Wie vorstehend angegeben, setzt das Signal BSDCND- über den Inverter 125 das Flip-Flop 121 und das Flip-Flop 120 zurück, initialisiert dabei die Flip-Flops entsprechend dem Buszyklus. Darüber hinaus wird das Flip-Flop 120 durch die dem Flip- Flop 127 zugeordnete Logik gesetzt, die ein Signal BT1MOT- erzeugt, daß anzeigt, daß eine nicht vorhandene Einheit adressiert worden ist, und daß daher keine Antwort, weder ein Signal NAK, noch ein Signal ACK oder WAIT durch irgendeine der möglichen Slave-Einheiten zu erzeugen ist. Dementsprechend ist ein monostabiler Multivibrator 126 vorgesehen, der beispielsweise eine Periode von fünf Mikrosekunden aufweist. Dieser Multivibrator 126 wird durch das Signal BSDCND+ getriggert, das heißt durch das Abtastsignal, das am Eingang des Puffers 119 empfangen wird. Wenn die Verzögerungszeit des Multivibrators 126 angelaufen ist und wenn ein Signal BSDCNG+ nicht empfangen wird, das das Ende des Buszyklus' anzuzeigen hat, dann wird nach Beendigung der durch den Multivibrator bestimmten Zeitspanne das Signal BTIMOT--Signal am -Ausgang des Flip-Flop 127 erzeugt, und zwar durch das Durchschalten des Signals BSDCNN+ vom D-Eingang des Flip-Flop 127 an dessen Ausgang. Es sei bemerkt, daß das letzterwähnte Signal anzeigt, daß der Buszyklus noch nicht beendet ist. Das Signal BTIMOT- wirkt auf das Flip-Flop 120 und führt zur Erzeugung eines Signals NAK (BSNAK-) über den Treiber 108. Wenn andererseits das Signal BSDCNB+ endet, bevor die Periode des Multivibrators 126 zu Ende ist, dann wird dieser zurückgestellt, und das Flip-Flop 127 ist daran gehindert, das Signal BTIMOT- zu erzeugen.
Es sei bemerkt, daß die Zentralprozessorlogik gemäß Fig. 11 entweder ein Signal NAK oder ACK erzeugt, jedoch nicht ein Signal WAIT. Der Grund hierfür liegt darin, daß der Zentralprozessor immer die niedrigste Priorität hat und dementsprechend dann, wenn er ein Signal WAIT erzeugt, die anderen Einheiten, die ihre Anforderungen an ihn richten, möglicherweise einen nicht programmierten Stop auf den Bus feststellen, wenn zum Beispiel eine Einheit mit höherer Priorität der Master war, an den der Zentralprozessor mit einem WAIT-Signal antwortete. Deswegen werden, gerade weil die Einrichtung höherer Priorität auf die Einrichtung mit der niedrigsten Priorität, das heißt auf den Zentralprozessor, wartet, andere Einrichtungen daran gehindert, den Bus zu benutzen.
Obenstehend wurde anhand der Fig. 11 die Wirkungsweise des Zentralprozessors als Slave-Einheit erläutert, die dem Speicher als Mastereinheit antwortet und damit eine Information zur Verfügung stellt, die durch den Zentralprozessor vorher durch eine Einfach- oder Doppelzugriffsanforderung (Speicher lesen) angefordert worden ist. Nunmehr wird unter Bezugnahme auf die Fig. 11A die Wirkungsweise des Zentralprozessors erläutert in Zusammenhang damit, wie die vom Speicher auf den Bus gegebenen Daten durch den Zentralprozessor gepuffert werden, sowie die Basis, aufgrund deren der Zentralprozessor entscheidet, ob eine Einfachzugriff- oder eine Doppelzugriffanforderung des Speichers vorzunehmen ist. Bei dem bevorzugten Ausführungsbeispiel kann der Prozessor mit einer Speicherleseanforderung signalisieren, daß er entweder ein einziges Wort vom Speicher haben möchte oder die Übertragung von zwei aufeinanderfolgenden Worten wünscht (das heißt eine Einfachzugriff- oder eine Doppelzugriffanforderung machen). Darüber hinaus kann bei dem bevorzugten Ausführungsbeispiel der Zentralprozessor gleichzeitig eine Einfachzugriffsanforderung an eine Speichersteuerung und eine Doppelzugriffsanforderung an eine andere Speichersteuerung richten. Wenn sowohl die Einfach- als auch die Doppelzugriffsanforderung Speicherplätze betreffen, die zur selben Speichersteuerung gehören, dann wird die zweite Anforderung durch die Speichersteuerung zurückgewiesen, was sich aus der Beschreibung der zugeordneten Logik gemäß Fig. 10 ergab. Die Speichersteuerung tut dies durch Erzeugung eines Signals WAIT, wenn sie noch damit belegt ist, die erste Anforderung zu bedienen.
Wenn eine Doppelzugriffsanforderung vorliegt, erzeugt der Zentralprozessor ein Doppelzugriffssignal (BSDBPL-=binär Null). Während der zweiten Hälfte des Buszyklus', der der Rückwärtsübertragung des ersten Wortes vom Speicher aus zugeordnet ist, liefert die Speichersteuerung nochmals das Doppelzugriffssignal BSDBPL- als Binärwert Null, womit angezeigt ist, daß ein weiteres Wort folgt. Während der zweiten Hälfte des im Rückwärtsverkehr des zweiten Wortes vom Speicher aus zugeordneten Buszyklus' liefert der Speicher das Signal BSDBPL- nicht, womit angezeigt ist, daß es sich um das letzte Wort der auszusendenden Daten handelt. Während der zweiten Hälfte des Buszyklus', der dem Rückwärtsverkehr des Einzelnennwortes vom Speicher aus in Beantwortung einer Einfachzugriffsanforderung zugeordnet ist, erzeugt die Speichersteuerung nicht nochmal das Signal BSDBPL-, womit angegeben ist, daß lediglich ein Einzelzugriff vorliegt, und daß keine weieren zweiten Buszyklushälften folgen.
Wie sich aus Fig. 11A ergibt, werden Daten eines Doppelzugriffs immer im Zentralprozessor in den Registern P1 und P2, den Elementen 152 und 153 gespeichert, wogegen Daten eines Einfachzugriffs im DT-Register, Element 151, gespeichert werden. Da bei einem einzigen Zentralprozessor gleichzeitig sowohl eine Einfachzugriffs- als auch eine Doppelzugriffsanforderung gleichzeitig vorliegen können, markiert dieser die Anforderung im Funktionscodefeld gemäß Fig. 4 zum Zeitpunkt der Anforderung. Einzelzugriffsanforderungen werden mit einem Funktionscode 00 markiert, wogegen zur Markierung von Doppelzugriffsanforderungen ein Funktionscode von 20, Basis 16, dient. Während der Zugriffsanforderung des Zentralprozessors bilden die Signale BSDT10- bis BSDT15- auf der Busdatenleitung die Markierung. Während des Speicherantwortzyklus' bilden die Signale BSAD18- bis BSAD23- auf der Adreßleitung die Markierung, die vom Speicher im Funktionscodefeld gemäß Fig. 3 zurückgesendet wird.
Im typischen Fall für die Zentralprozessorlogik zur Verbindung mit dem Bus gemäß Fig. 11 werden die angeforderten Daten in Form von Signalen empfangen, die vom Bus aus von Empfängern aufgenommen werden, die Bestandteile des Elementes 150 sind. Signale BSDT00+ bis DSDT15+, die ein 16-Bit-Datenwort bilden, werden jeweils an die Dateneingänge des DT-Registers 151, des P1-Registers 152 und des P2-Registers 153 gelegt. Die Register 151, 152 und 153 sind 16-Bit-Register, die jeweils aus zwei integrierten Schaltkreisen der Art bestehen, wie sie von der Firma Instruments unter der Bezeichnung SN74S374 hergstellt werden. Jedes enthält acht flankengesteuerte D-Flip-Flop. Die Daten werden in diese Register eingegeben, wenn das Taktsignal vom Binärzustand Null in den Binärzustand Eins übergeht. Während der zweiten Hälfte des Buszyklus' geht in Beantwortung einer Einzelzugriffsanforderung das Signal aus MYSHDR+ des Elementes 110 gemäß Fig. 11 vom Binärzustand Null in den Binärzustand Eins über und taktet das vom Speicher stammende Wort in das DT-Register 151. Während der ersten Zweithälfte des Buszyklus', die in Beantwortung einer Doppelzugriffsanforderung auftritt, taktet das Signal MYSHP1+ die Daten in das P1-Register 152. Während der zweiten Zweitbuszyklushälfte im Zuge dieser Anforderung taktet das Signal MYSHP2+ die Daten in das P2-Register 153. Die beiden letzterwähnten Signale werden immer erzeugt, so daß das erste Datenwort in das P1- Register 152 und das zweite Datenwort, sofern in der Speichersteuerung vorhanden, in das P2-Register 153 geladen wird. Sobald die Register 151, 152 und 153 mit Daten geladen sind, werden diese selektiv auf den internen Bus 154 des Zentralprozessors geschaltet, der 16 Signale BIXX10+ bis BIXX1F+ führt. Ausgelöst wird dies durch ein Signal vom Binärwert Null vom Ausgabesteuereingang der betreffenden Register, das heißt durch die Signale ENDTBI-, ENP1BI- und ENP2BI-, die in den Binärzustand Null übergehen.
Zwei J-K-Flip-Flop, die Elemente 31 und 32, speichern die in der zweiten Buszyklushälfte von der Speichersteuerung während der Doppelzugriffsoperation zurückkommenden Signale. Es handelt sich um durch die netative Flanke gesteuerte J-K-Flip- Flop mit einem Setzvorbereitungs- und einem Löscheingang, wie die von der Firma Texas Instruments unter der Bezeichnung SN74S112 hergestellten Exemplare aufweisen. Das A-Flip-Flop 31 und das B-Flip-Flop 32 werden durch das Signal MYPASK- des NAND-Gliedes 27 gesetzt und tasten die zweite Hälfte des Buszyklus' ab, wenn eine Bestätigung durch den Zentralprozessor in Form des Signals MYSHP- des Elementes 110 gemäß Fig. 11 vorliegt. Das NAND-Glied 27 wird am einen Eingang teilweise freigegeben, wenn das Signal MYASKK+, das Ausgangssignal des Benutzer Flip-Flop 15 in Fig. 8, den Binärwert Eins hat, womit angezeigt ist, daß der Zentralprozessor zur Anforderung des Busses auffordert. Der andere Eingang des NAND-Gliedes 27 wird durch das Signal CRDBPL+ freigegeben, wenn dieses den Binärwert Eins aufweist und damit anzeigt, daß ein Doppelzugriffslesen vorgenommen werden sollte, wenn die Register P1 und P2 leer sind. Zur Freigabe des NAND-Gliedes 27 dient ferner das CPU-Zeitsteuersignal MLRVLD+ in Form des Binärwerts Eins.
Wenn die Inhalte von zwei der zweiten Hälften der Buszyklen empfangen werden sollen, was durch das Signal BSDBPL+ im Binärzustand Eins angezeigt wird, wird das Flip-Flop 31 zurückgesetzt, nachdem der Inhalt der zuerste auftretenden zweiten Hälfte des Buszyklus' empfangen worden ist, und es wird das Flip-Flop 32 zurückgesetzt, nachdem der Inhalt der nächsten zweiten Hälfte des Buszyklus' empfangen worden ist. Wenn nur eine einzige zweite Hälfte des Buszyklus' zu erwarten ist, was im Falle einer Doppelzugriffsanforderung zutrifft, bei der lediglich das erste Wort in der Speichersteuerung vorhanden ist, wird lediglich das Flip-Flop 32 rückgesetzt. Die Flip-Flops 31 und 32 werden beide mit Auftreten eines Buslöschsignals (BSMCLR- ist binär Null) oder in Ausnahmefällen, wenn beispielsweise ein Masterlöschen oder eine Buszeitsperre vorliegt, durch ein Signal (TCSL31- mit Binärwert Null), das über das NOR-Glied 39 geliefert wird.
Die beiden anderen Flip-Flop, die Elemente 155 und 156, speichern, wenn der Zentralprozessor Daten aus den P1- und P2-Registern 152 und 153 benutzt. Das für P1 benützte Flip- Flop 155 wird zurückgesetzt, wenn der Zentralprozessor das erste Wort benützt, das heißt das in dem P1-Register 152 enthaltende Wort, das in P2 benutzte Flip-Flop 156 wird rückgesetzt, wenn der Zentralprozessor das zweite Wort, das heißt das im P2-Register 153 enthaltene Wort benutzt.
Die Flip-Flop 155 und 156 werden beide durch das vom NAND- Glied 27 gelieferte Signal MYPASK- gesetzt. Dieses genannte Signal setzt, wenn es binär Null ist, die Flip-Flop 31 und 32, um anzuzeigen, daß die Register P1 und P2 gefüllt werden, und setzt die Flip-Flop 155 und 156, um anzuzeigen, daß die Inhalte von P1 und P2 noch nicht benutzt worden sind. Das P1- oder P2-Register ist nur voll, wenn es nicht gerade gefüllt wird und nicht benutzt wird. Die Flip-Flop 155 und 156 werden durch ein Signal PRTAKR- bei dessen Binärwert Null rückgesetzt, wenn eine Verfallssituation eintritt, zum Beispiel, wenn der Prozessor-Befehlszähler aufgrund eines Verzweigungsbefehls, einer Unterbrechung oder eines nicht programmierten Sprungs geladen wird. Das P1-Flip-Flop 155 wird auch durch das Signal PRTAKT+ zurückgesetzt, das anzeigt, daß der Zentralprozessor ein Wort der Prozedur benutzt hat. Dies geschieht dadurch, daß der Binärwert Null am geerdeten Dateneingang des Flip-Flop an dessen Ausgänge durchgetaktet wird. Das P2-Flip-Flop 156 wird ebenfalls durch das Signal PRTAKT+ rückgesetzt, indem das Signal PRTAKC+ am Dateneingang zum Ausgang durchgetaktet wird. Bevor das erste Wort der Prozedur benützt wird, hat das Signal PRTAKT+ den Binärwert Eins, so daß das Flip-Flop 155 zurückgesetzt ist, wenn das erste Wort gelesen wird. Das Signal PRTAKC+ ist binär Null, nachdem das erste Wort der Prozedur benützt worden ist, mit der Folge, daß das Flip-Flop 156 zurückgesetzt wird, wenn das zweite Wort der Prozedur benutzt wird.
Eine Doppelzugriffsoperation wird vom Zentralprozessor nur dann angefordert, wenn sowohl das P1- als auch das P2-Register 152 und 153 leer sind und der Zentralprozessor nicht noch eine andere Doppelzugriffsanfordernung anstehen hat.
Das Signal PRMPTY-, das anzeigt, daß die P-Register leer sind, und das Ausgangssignal des NAND-Gliedes 34 darstellt, wird dazu benützt, zu unterscheiden, ob der Zentralprozessor eine Doppelzugriffsanforderung aufgrund der Zustände der Flip- Flop 31, 32, 155 und 156 machen soll. Wenn das Signal am Q-Ausgang des P2-Flip-Flop 156, das Signal PRTAKD+, binär Null ist, was anzeigt, daß dieses Register leer ist, oder wenn das Ausgangssignal am -Ausgang des Flip-Flop 31, das Signal PRASKA-, binär Null ist, was anzeigt, daß lediglich ein Wort in Beantwortung auf die letzte Doppelzugriffsanforderung empfangen worden ist, dann wird das Ausgangssignal des OR-Gliedes 33 binär 1, wobei das NAND-Glied 34 teilweise aktiviert wird. Dieses Verknüpfungsglied erhält eine weitere Aktivierung, wenn das -Ausgangssignal des P1-Flip- Flop 155, das Signal PRTAKC-, binär Eins ist, was anzeigt, daß der P1-Register 152 leer (benutzt) ist. Ferner dient zur Aktivierung des NAND-Gliedes 34 das -Ausgangssignal des Flip-Flop 32, das Signal PRASKB-, wenn es den Binärwert Eins aufweist und damit anzeigt, daß alle beim Empfang erwarteten Daten in Beantwortung einer Doppelzugriffsanforderung auch tatsächlich empfangen worden sind. Das NAND-Glied 34 ist dann durchlässig und das Signal PRMTPY- wird binär Null sein immer, wenn die Daten in den P1- und P2-Registern 152 und 153 benutzt worden sind, und wenn während des Auffüllens der P1-o und P2-Register keine Doppelzugriffsanforderung entsteht.
Das Ausgangssignal des OR-Gliedes 36, das Signal PRTASK+, ist binär Eins immer dann, wenn das Signal PRMPTY- binär Null ist, womit angezeigt wird, daß die P1- und P2-Register leer sind und auch nicht gerade gefüllt werden. Das Signal CSBSO1+ ist binär Null, um anzuzeigen, daß der Zentralprozessor aus anderen Gründen eine Doppelzugriffsoperation wünscht. Wenn das Signal aus PRTASK+ binär Eins ist, wird das AND- Glied 38 teilweise aktiviert. Zur Aktivierung trägt ferner das Signal CSBS00+ im Falle des Binärwertes Eins bei, womit angezeigt ist, daß der Zentralprozessor den Bus für einen Einzel- oder einen Doppelzugriff, für eine I/O- oder für eine Schreiboperation benutzen möchte. Wenn das AND-Glied 38 durchlässig ist, wird das Signal MYASKD+ auf der Leitung 181 binär Eins und zusammen mit dem Taktsignal MCLOCK+ führt dies zu einem Setzen des Benutzer-Flip-Flop 15 gemäß Fig. 8, was bedeutet, daß der Zentralprozessor den Bus benutzen möchte.
Bei einem bevorzugten Ausführungsbeispiel entnimmt der Zentralprozessor während der Ausführung eines durch ihn gegebenen Befehls vorab zwei Worte aus dem Speicher und speichert sie in den Registern P1 und P2. Diese Vorabentnahme von Befehlswörtern findet nur statt, wenn beide Register P1 und P2 leer sind. Wenn beispielsweise der Zentralprozessor gerade den Befehl ausführt, der sich an der Stelle 1000 befindet, macht er eine Doppelzugriffsanforderung, aufgrund deren ihm die auf den Plätzen 1001 und 1002 gespeicherten Worte vom Speicher geliefert werden sollen. Wenn der Zentralprozessor jedoch einen Verzweigungsbefehl ausführt, muß die Vorwegnahmeprozedur in den P1- und P2-Registern 152 und 153 gelöscht werden einschließlich dessen, was noch nicht vom Speicher her angekommen ist. Wenn beim obenstehenden Beispiel wärend der Bedienung der Stellen 1000 die Stellen 1001 und 1002 vorab bedient werden, und wenn das in der Stelle 1001 gespeicherte Wort einen Verzweigungsbefehl zur Stelle 1007 enthält, dann muß, wenn dieser Befehl, der vorübergehend im P1-Register 152 gespeichert worden ist, ausgeführt wird, der Inhalt von 1002, der vorübergehend im P2-Register gespeichert worden war, gelöscht werden, und es muß eine neue Doppelzugriffsanforderung des Inhalts der Speicherstelle 1007 gemacht werden, zu der der Verzweigungsbefehl die Steuerung führt und zur Speicherstelle 1008. Das Signal PURGEF+, eines der Eingangssignale des AND-Gliedes 39, erinnert an jede Doppelzugriffsanforderung, indem es binär Eins bleibt, bis alle vorstehend angeforderten Worte angekommen sind. Wenn das -Ausgangssignal des Flip-Flop 32, das Signal PRASKB-, binär Eins wird, was anzeigt, daß alle erwarteten Daten in Beantwortung einer Doppelzugriffsoperation empfangen worden sind, und wenn das Signal CRDBPL+ binär Eins ist, was anzeigt, daß eine Doppelzugriffsoperation vorgenommen werden soll, wenn die Register P1 und P2 leer sind, dann wird unter Mitwirkung des den Binärwert Eins annehmenden Signals PURGEF+ das NAND-Glied 39 voll durchlässig und das Signal MYASKS- auf der Leitung 180 wird binär Null, wodurch das Benutzer-Flip- Flop 15 gemäß Fig. 8 gesetzt wird mit dem Ergebnis, daß der einen Buszyklus anfordernden Zentralprozessor eine Speicherzugriffsanforderung vornimmt. Das Benutzer-Flip-Flop 15 gemäß Fig. 8 ist normalerweise durch das Signal MCLOCK+ gesetzt, das das Signal MYASKD+ durchtaktet, was der Fall ist, wenn der Zentralprozessor das zweite Wort der Prozedur aus dem P2-Register 153 entnimmt. Das Signal MYASKS- wird dazu benutzt, das Benutzer-Flip-Flop 15 zu setzen, um dem Fall gerecht zu werden, in dem ein Verfall auftritt, nachdem eine Doppelzugriffsanforderung gemacht und nicht vervollständigt worden ist, das heißt wenn ein Verzweigungsbefehl ausgeführt worden ist, während sich die Register 152 und 153 im Zustand des Auffüllens befunden haben.
Einzelzugriffe erfordern wenigstens zwei Schritte des Zentralprozessors. Durch den ersten Schritt wird eine Einzelzugriffsleseanforderung an den Speicher gegeben, wodurch ein Indikator gesetzt wird, wenn der Speicher (oder eine I/O-Einheit) die Anforderung annimmt. Der zweite Schritt des Zentralprozessors, der um einige Zentralprozessorschritte nach dem ersten liegen kann, ist der Versuch, die Daten vom DT-Register 151 auf den internen Zentralprozessorbus 154 zu schalten. Wenn der Inhalt der zweiten Hälfte des Buszyklus', der mit der Speicherantwort aufgrund einer Einzelzugriffsanforderung zusammenhängt, noch nicht angekommen ist, speichert der vorstehend gesetzte Indikator den Zentralprozessortakt, bis das Signal MYSHRD+ des Elementes 110 gemäß der Fig. 11 den Indikator löscht.
Die obenstehende Erläuterung der Fig. 11A vervollständigte die Erläuterung der Systemlogik im Zusammenhang mit einer Doppelzugriffsoperation. Es wird nun das Zeitdiagramm gemäß Fig. 12 besprochen, um die Beziehung der oben beschriebenen Steuersignale des Zentralprozessors, des Busses und der Speichersteuerung zu veranschaulichen. Die vier Signale in Fig. 12 oben sind diejenigen des Zentralprozessors, die zu einer Doppelzugriffsanforderung führen. Diese Signale werden durch die in den Fig. 8, 11 und 11A dargestellte Logik erzeugt. Die Signale in der Mitte von Fig. 12 sind diejenigen, die dem Datenbus des Datenverarbeitungssystems zugeordnet sind, und die der Verbindung zwischen Zentralprozessorlogik und Speicherlogik dienen. Die acht Signale in Fig. 12 unten stellen die Signale der Speichersteuerung dar, die durch die in den Fig. 9, 9A und 10 gezeigte Logik erzeugt werden. Die Fig. 12 ist außerdem in vertikaler Richtung in drei Spalten unterteilt. Die am weitesten links befindliche Spalte veranschaulicht den Signalsatz, der mit dem Zentralprozessor zusammenhängt, der eine Doppelzugriffsanforderung an den Speicher richtet. Die mittlere Spalte veranschaulicht die Signale, die mit der zuerst auftretenden zweiten Hälfte des Buszyklus' zusammenhängen, in der die Speichersteuerung das erste der beiden im Doppelzugriff geforderten Worte an den Zentralprozessor zurücksendet. Die rechte Spalte veranschaulicht die Signale, die mit der Aussendung des zweiten in einer Doppelzugriffanforderung geforderten Wortes von der Speichersteuerung an die Zentralsteuerung zusammenhängen, wobei diese Übertragung in der zweiten Hälfte des Buszyklus stattfindet, die als nachfolgende auftritt.
Die Doppelzugriffsoperation wird gemäß Fig. 12 durch das CPU-Signal MYASKK+ eingeleitet, und zwar dadurch, daß dieses zur Zeit 12-A den Binärwert Eins angibt, womit angezeigt ist, daß der Zentralprozessor als Mastereinheit zwei Datenworte vom als Slave-Einheit fungierenden Speicher fordert. Wenn das vorerwähnte CPU-Signal binär Eins wird, bringt die Prioritätsnetzwerklogik des Zentralprozessors gemäß Fig. 8 das Signal BSREQT- in den Binärzustand Null und führt, sofern keine Einheit mit höherer Priorität einen Buszyklus anfordert, dazu, daß dem Zentralprozessor der Bus zugeteilt wird, indem das CPU-Signal binär Eins gemacht wird.
Wenn dem Zentralprozessor der Bus einmal zugeteilt ist, gibt dieser die Adresse des ersten Wortes auf den Bus, zu dem in der Doppelzugriffsoperation zugegriffen werden soll, ferner die Kanalnummer des Zentralprozessors und den Funktionscode, der anzeigt, daß es sich um eine Doppelzugriffsanforderung handelt, zusammen mit anderen Signalen, die anzeigen, daß es sich um eine Speicherleseoperation im Doppelzugriff handelt. Die Speichersteuerungslogik gemäß den 9, 9A und 10 vergleicht dann nach einer Verzögerungszeit, die eine Stabilisierung der Signale auf dem Bus gestatten, die auf dem Bus auftretende Adresse mit der durch die Speichersteuerung eingestellte Adresse und erzeugt, wenn das erste Wort der Doppelzugriffsanforderung bei der Steuerung vorhanden ist, ein ACK-Signal, das an die Zentralprozessorlogik zurückgesandt wird, wodurch auf die Bussteuerung im Hinblick auf die nächste Benutzeranforderung verzichtet wird. Das Signal ACK, das die Speichersteuerung erzeugt, dient auch der Prüfung der Speichersteuerung, um zu sehen, ob das zweite durch diese Anforderung adressierte Wort in der Steuerung vorhanden ist. Ist dies der Fall, dann wird das Doppelzugriffs-Zustands-Flip-Flop 80 gemäß Fig. 9A gesetzt, um anzuzeigen, daß eine Doppelzugriffsoperation durchgeführt wird, und der Speicher fährt fort, die zwei Wörter der Information aus getrennten Speichermoduln in im wesentlichen parallen ablaufenden (überlappten) Arbeitsgängen aufzusuchen.
Wenn das erste Datenwort in der Speichersteuerung zur Verfügung steht, wird das Speichersteuerungssignal DCNNGO- zum Zeitpunkt 12B binär Eins mit der Folge, daß die Speicherprioritätsnetzwerklogik gemäß Fig. 9 den Bus anfordert, indem sie das Signal BSREQT- binär Null macht und damit den ersten Antwortzyklus in Gang setzt, das heißt die zuerst auftretende zweite Hälfte des Buszyklus', wobei der Speicher die Mastereinheit und der Zentralprozessor die Slave-Einheit ist. Wenn der Bus nicht belegt ist und der Speicher die anfordernde Einheit mit höchster Priorität ist, wird der Bus der Speichersteuerung zugeteilt, und das Speichersteuerungssignal MYDCNN+ wird binär Eins. Das Zuteilen des Bus' an die Speichersteuerung hat in der Speichersteuerungslogik zur Folge, daß das erste angeforderte Wort der Doppelzugriffsanforderung auf die Datenleitungen des Bus' geschaltet wird. Die Kanalnummer des Zentralprozessors, der die Anforderung macht, wird zusammen mit dem Doppelzugriffs-Anforderungsfunktionscode auf die Busadreßleitungen geschaltet, und andere Signale, die anzeigen, daß es sich um den ersten Antwortzyklus eines Doppelzugriffs handelt, werden auf andere Busleitungen geschaltet. Die Zentralprozessorlogik tastet nach einer Verzögerungszeit, die eine Stabilisierung der Signale auf dem Bus möglich macht, die Bussignale ab, und wenn es sich bei der Nummer des Zentralprozessors auf dem Bus um die Nummer des betreffenden Zentralprozessor handelt, bestätigt er die erstmalige zweite Hälfte des Buszyklus' und leitet das Speicherwort auf den Busdatenleitungen in das P1-Register 152. Die Bestätigung des ersten Antwortzyklus' durch den Zentralprozessor führt in der Speichersteuerung dazu, daß der Bus freigegeben und das Doppelwort-Zustands-Flip-Flop 80 rückgesetzt wird. Damit ist der erste Antwortszyklus abgeschlossen, das heißt die erstmalig auftretende zweite Hälfte des Buszyklus'.
Wenn das zweite Datenwort in der Speichersteuerung zur Verfügung steht, fährt die Speichersteuerung als Mastereinheit fort, den Bus anzufordern, und wenn er ihr zum Zeitpunkt 12-C zugeteilt wird, schaltet sie das zweite Datenwort auf den Bus. Der Zentralprozessor bestätigt die zum zweiten Male auftretende zweite Hälfte des Buszyklus' und schaltet das zweite Speicherwort in das P2-Register 153, womit sie die Doppelzugriffsoperation vollendet. Es sei bemerkt, daß dann, wenn der Bus zum zweiten Mal der Speichersteuerung zugeteilt wird, das in den Binärzustand 1 übergehende Signal MYDCNN+ der Speichersteuerung zu Folge hat, daß das Speichersteuerungssignal STREQR+ in den Binärzustand Eins übergeht, was das Rücksetzen des Speicher-Anforderungs- Flip-Flop 17M gemäß Fig. 9 zur Folge hat, so daß die Speichersteuerung keine weitere Busanforderung mehr stellt.
Es sei darauf hingewiesen, daß zur Vereinfachung der Fig. 12 nicht gezeigt ist, wie das CPU-Signal BSDCND- in den Binärzustand Eins übergeht, wenn das Bussignal BSDCNN- während des Doppelzugriffsanforderungszyklus', wenn der Zentralprozessor die Mastereinheit ist, in den Binärzustand Eins übergeht. In entsprechender Weise ist nicht gezeigt, wie das Signal BSDCND- in den Binärzustand Eins übergeht als Reaktion auf den Übergang des Signals BSDCNN- in den Binärzustand Eins während des ersten und zweiten Antwortzyklus', wenn der Speicher die Mastereinheit ist. Die Fig. 8 und 9 zeigen, daß die Steuersignale BSDCNN- auf das Bussignal BSDCNN- einer durch die Elemente 25 und 25M bedingten Verzögerung reagieren, und zwar sowohl dann, wenn die Steuerung die Mastereinheit als auch wenn sie die Slave-Einheit ist. Aus Gründen der Einfachheit ist jedoch lediglich das Slave- Signal BSDCND- gezeigt.
Die Art und Weise, wie bei der vorliegenden Anordnung die Adressierung benachbarte Speicherbereiche unabhängig von der Mischung der Speichertypen aufgrund verschiedener Geschwindigkeiten, verschiedener Bauarten, das heißt Magnetspeicher oder Halbleiterspeicher, und anderer Charakteristika vor sich geht, wird unter Bezugnahme auf die Fig. 13 nunmehr näher erläutert. Der Bus 200 ist dort an die Speichersteuerungen 202, 203, 204 wie auch an andere Steuerungen, zum Beispiel die Steuerung 210 und an den Zentralprozessor 206 angeschlossen dargestellt. Wie vorstehend anhand eines Beispiels erläutert, ist jede Speichersteuerung in der Lage, bis zu vier Speichermoduln anzusteuern. Diese Moduln nehmen die Positionen A, B, C und D der betreffenden Speichersteuerungen ein, wie Fig. 14 zeigt. Jede Speichersteuerung empfängt ihre eigene Adresse wie auch die Adresse des ihr zugeordneten Moduls. Die Moduladresse wird als 2-Bit-Kombination über den Bus 200 empfangen, diese Bits werden, wie Fig. 10 zeigt, als BSAD08+ und BSAD22+ bezeichnet. Die Speichersteuerungsadresse wird als Bits BSAD00- bis BSAD07+ empfangen. Damit antworten nur diejenigen Speichermoduln, deren Steuerung adressiert ist. Deswegen sind bei der Speichersteuerung 204 im Normalfall an den Stellen A, B, C und D die Speichermoduln A-358, B-360, C-362 und D-364 angeschlossen. Wenn die Speichersteuerung 204 adressiert wird und die 2-Bit-Unteradresse zum Beispiel den Modul C-362 bezeichnet, dann wird der Modul C auf eine Einzelwortanforderung antworten und die Moduln C und D werden auf eine Doppelzugriffsanforderung antworten. Wenn, wie vorstehend erläutert, verschiedenartige Speichertypen verwendet sind und eine solche Mischung sich auf mehr als das volle Speichersteuerungskomplement bezieht, das vorstehend als Beispiel mit 32 000 Speicherworten angegeben wurde, wobei jeder Modul 8000 Speicherworte enthält, dann stehen zusammenhängende Speicheradressen nicht zur Verfügung, da der Adressenabstand von 32 000 Worten für jede Steuerung zur Verfügung stehen muß, damit diese in der Lage ist, die Speicherkapazität des Systems zu einem späteren Zeitpunkt zu erhöhen. Wie man aus Fig. 13 ersieht, ist es möglich, nur einen Teil jeder dieser Speichersteuerungen zu verwenden, um eine solche abhängige Adressierung zu ermöglichen.
Demnach zeigt Fig. 13 unter der Voraussetzung, daß der Modul A-350 und der Modul B-352 denselben Typ aufweisen, und daß der Modul C-354 und der Modul D-356 von einem anderen Speichertyp sind, daß die Speichersteuerung 202 so angeschlossen ist, daß sie Zugriff zu den Moduln A und B hat und die Speichersteuerung 203 so angeschlossen ist, daß sie Zugriff zu den Moduln C und D hat. In einem solchen Falle weisen die Speichersteuerungen 202 und 203 dieselbe Adresse auf. Die Position C und D der Steuerung 202 und die Position A und B der Steuerung 203 stehen dann nicht zur Verfügung, wenn das System nicht vollständig umgeändert wird. Wenn also die beiden Steuerungen 202 und 203 ihre Adresse, das heißt dieselbe Adresse erkennen, dann versuchen sie beide zu antworten, jedoch in Abhängigkeit davon, ob der Modul A, B, C oder D durch die beiden Moduladressen BSAD08+ adressiert ist. Diese Adressen betreffen die unteren oder die oberen 16k Worte und werden auf dem Bus 200 empfangen. Somit antwortet lediglich eine der Steuerungen 202 oder 203 in Abhängigkeit davon, welcher der Moduln adressiert worden ist.
Die obenstehenden Erläuterungen wurden lediglich als Beispiel angegeben, und es versteht sich, daß beispielsweise mehr als vier solcher Moduln an eine gegebene Steuerung angeschlossen sein können als vorstehend angenommen wurde, so kann es auch sein, daß an die Steuerung 202 lediglich ein Modul A angeschlossen ist und an die Steuerung 203 die Moduln B, D und D in derselben relativen Anordnung angeschlossen sind. Es sei bemerkt, daß bei dieser Konfiguration, bei der Modul A an eine Steuerung und Moduln B, C und D an eine zweite (Doppelzugriffsspeicher-)Steuerung angeschlossen ist, diejenige Doppelzugriffsanforderungen, die Worte adressieren, die sich in den Moduln A und B befinden (ausgenommen das letzte Wort des Moduls B), zur Folge haben, daß ein einziges Wort zurückgesendet wird, wogegen Doppelzugriffsanforderungen, die Worte adressieren, die sich in den Moduln C und D befinden, ausgenommen das letzte Wort in Modul D, das Zurücksenden von zwei Worten zur Folge haben. Man sieht aus dem vorliegenden Beispiel, daß dann, wenn ein dritter Modul in der Position C der Steuerung 202 angeschlossen ist und der Modul C-354 mit der Steuerung 230 verbunden ist, dann wenn solcher Modul C adressiert wird und die Steuerungen 202 und 203 dieselbe Adresse haben, beide Steuerungen aufgrund des Empfangs ihrer identischen Adresse antworten würden und die Adresse des Moduls C damit einen Fehlbetrieb verursachen würde. Es hat sich gezeigt, wie abhängige Adressen in Durchführung der vorliegenden Erfindung gewonnen werden können, unabhängig von der Art der angeschlossenen Speicher.
Es wird nunmehr wieder auf Fig. 13 bezug genommen und angenommen, daß die Speichersteuerung 202 eine Steuerung für einen einfachen Speicherzugriff ist und die Speichersteuerungen 203 und 204 Steuerungen für Doppelspeicherzugriff sind, wobei an jede Steuerung vier Speichermoduln angeschlossen sind und jede Steuerung eine andere Adresse hat. Man erkennt also, daß 96k Worte eines zusammenhängenden Speichers erhalten werden. Die Steuerung 202 für den Einfachzugriff ist ähnlich derjenigen aufgebaut, wie sie im US-Patent 40 30 075 beschrieben ist und antwortet auf eine Speicheranforderung dadurch, daß sie während eines einzigen Antwortübertragungszyklus' ein Datenwort sendet. In diesem Zyklus bleibt das Signal BSDBPL- binär Eins, womit angezeigt ist, daß es sich um den letzten Antwortübertragungszyklus handelt. Man sieht, daß der Zentralprozessor 206 eine Doppelzugriffsanforderung für zwei Datenwörter machen kann, indem er die Adresse des ersten Wortes aussendet, ohne Rücksicht darauf, ob die Information sich bei der Speichersteuerung 202, 203 oder 204 befindet, ob in einem Speicher für Einfach- oder für Doppelzugriff, oder ob beide angeforderten Worte sich innerhalb eines Speichermoduls befinden, zu dem die Speichersteuerung Zugriff hat. Darüber hinaus benötigen in Durchführung des erfindungsgemäßen Verfahrens die Speichersteuerungen keine Logik, mit deren Hilfe sie sich von abnormalen Bedingungen erholen, zum Beispiel dann, wenn lediglich das erste der beiden Worte innerhalb des von einer bestimmten Speichersteuerungen gesteuerten Speichers vorhanden ist. Dadurch, daß die anfordernde Einheit, der Zentralprozessor im vorliegenden Beispiel, so ausgebildet ist, daß sie die Informationsworte verwenden, wie sie empfangen werden, ohne daß jedes angeforderte Wort auch empfangen werden muß oder sogar daß das letzte Wort, das durch die antwortende Einheit übertragen wird, ankommt, wird der Systemdurchsatz dadurch erhöht, daß erlaubt wird, daß die einzelnen Datenwörter dann benutzt werden, wenn sie für die anfordernde Einheit zur Verfügung stehen.
Während die Erfindung teilweise unter Bezugnahme auf ein bevorzugtes Ausführungsbeispiel, bei dem es sich um eine Doppelzugriffsoperation gehandelt hat, beschrieben und dargestellt worden ist, erkennt der Fachmann ohne weiteres, daß auch eine Vielfachzugriffsoperation durchgeführt werden kann, indem der erste und alle übrigen - außer dem letzten - Antwortzyklen das Doppel-(Multi-)Zugriffssignal BSDBPL- übertragen. Er erkennt auch, daß die Doppel- und Multizugriffsoperationen zwischen anderen Einheiten als zwischen dem Zentralprozessor und der Speichersteuerung durchgeführt werden können.

Claims (14)

1. Schaltungsanordnung in einem Datenverarbeitungssystem mit einem gemeinsamen, asynchronen, die angeschlossenen Systemeinheiten verbindenden Bus (200), wobei zur Steuerung des Zugriffs auf diesen Bus die einzelnen Einheiten (202, 204, 206, 208, 210, 212, 214) jeweils eine Prioritätssteuerungseinrichtung (Fig. 8 und 9) aufweisen, mit folgenden Schalteinrichtungen zur Bewerkstelligung der Datenübertragung zwischen zwei Einheiten, von denen je nach dem Modus der Datenübertragung die eine der Master (z. B. 206) und die andere der Slave (z. B. 202) ist.
  • - durch Setzen eines Benutzer- und Anforderungsschaltgliedes (15, 17) in der Prioritätssteuerungseinrichtung einer Master-Einheit wird zur Anforderung von Information (Datenwörtern) von einer Slave-Einheit ein Bus-Anforderungssignal (BSREQT) erzeugt;
  • - im Fall, daß keine Bus-Anforderung einer anderen Einheit mit höherer Priorität vorliegt, erzeugt ein Zuteilungsschaltglied (22) in der Master-Prioritätssteuerungseinrichtung ein Datenzyklus-Zustandssignal (BSDCNN),
    • - das allen Einheiten über den Bus signalisiert, daß einer Master-Einheit ein Buszugriff gewährt wird und
    • - das die Master-Einheit veranlaßt, durch Aussenden einer Zugriffsanforderung (z. B. Lesebefehl), die die Adresse des Masters, die Adresse des Slave und einen Funktionscode enthält, eine Slave-Einheit zur Durchführung einer Funktion (z. B. Übermittlung eines Datenwortes) anzurufen;
  • - in der angerufenen Einheit wird in einem Antwortsschaltglied (56, Fig. 10) ein Antwortsignal (z. B. BSACKER) erzeugt, wobei diese gerufene Einheit (202) mittels ihrer Benutzer-, Anforderungs- und Zuteilungsschaltglieder (15M, 17M, 22M) Zugriff zum Bus erhält und, wenn die anforderende Einheit (206) frei ist, dessen Adresse und das angeforderte Datenwort aussendet;
  • - in der anfordernden Einheit (206) wird durch das empfangene Antwortsignal (BSACKR) das genannte Zuteilungsschaltglied (22) zurückgesetzt und damit die Mastereigenschaft aufgehoben, worauf diese Einheit in die Lage versetzt ist, andere Verarbeitungsprogrammschritte, z. B. einen weiteren Zugriff auf eine andere Einheit einzuleiten oder durchzuführen, selbst wenn das angeforderte Datenwort noch nicht eingetroffen ist,
dadurch gekennzeichnet, daß
  • - der Bus eine Signalleitung für ein Mehrfachzugriffssignal (BSDBPL) enthält, das die anfordernde Einheit (206) bei einer Mehrwortanforderung zusammen mit der Zugriffsanforderung über den Bus aussendet;
  • - dann, wenn in der gerufenen Einheit (202) das erste angeforderte Datenwort zur Verfügung steht, das Antwortsignal (MYACKR) einen Zeittaktgenerator (95) startet, der zusammen mit dem Mehrfachzugriffssignal (BSDBPL) ein Mehrfachzugriffs-Schaltglied (80) setzt, und diese gerufene Einheit über ihr Anforderungsschaltglied (17M) Zugriff zum Bus fordert;
  • - dann, wenn durch Setzen des Zuteilungsschaltgliedes (22M) die gerufene Einheit (202) Zugriff zum Bus erhält, das erste angeforderte Datenwort zusammen mit der Adresse der anfordernden Einheit (206) und, falls auch das nächste Datenwort in dieser gerufenen Einheit vorhanden ist, das Mehrfachzugriffssignal (BSDBPL) über den Bus gesendet werden, was der anfordernden Einheit (206) signalisiert, daß noch ein weiteres Datenwort folgen wird; und
  • - falls kein weiteres Datenwort in dieser gerufenen Einheit mehr vorhanden ist, das Mehrfachzugriffssignal (BSDBPL) nicht gesendet wird, was der anfordernden Einheit signalisiert, daß die gerufene Einheit kein weiteres Datenwort übermitteln wird.
2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß eine rufende Einheit (z. B. 206) wahlweise Einzel- als auch Mehrfachwortanforderungen aussenden kann, wobei der Wortanforderungsmodus durch den Binärzustand des Mehrfachzugriffssignals (BSDBPL=0 bzw. 1) bestimmt ist.
3. Schaltungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß in der rufenden Einheit Einzelwortregister (151) und Mehrfachwortregister (152, 153) vorgesehen sind, und daß empfangene Datenworte, die von einem Mehrfachzugriffssignal (BSAD18=1) begleitet sind, in die Mehrfachwortregister (152, 153), und wenn sie von keinem Mehrfachzugriffssignal (BSAD18 =0) begleitet sind, in ein Einzelwortregister (151) eingeschrieben werden.
4. Schaltungsanordnung nach einem der Ansprüche 1, 2 oder 3, dadurch gekennzeichnet, daß eine anfordernde Einheit (z. B. 206) zum Zwecke der Bereitstellung mehrerer abzuarbeitender Befehle für die Verarbeitung von Operanden zwei unterschiedliche Zugriffsanforderungen nacheinander aussendet, eine zum Zugriff auf einen Operanden und eine zum Zugriff auf mindestens zwei Befehle, wobei die Operandenzugriffsanforderung von keinem Mehrfachzugriffssignal (BSDBPL=0) und die Befehlszugriffsanforderung von einem Mehrfachzugriffssignal (BSDBPL=1) begleitet ist, und daß beim Empfang der in beliebiger Reihenfolge eintreffenden Datenwörter (Operand und Befehle) der Operand in ein Einzelwortregister (151) und die Befehle in ein Mehrfachwortregister (152, 153) eingeschrieben werden.
5. Schaltungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß bei einer Mehrfachwortanforderung alle von der gerufenen Einheit (202) übertragenen Datenworte, mit Ausnahme des letzten, jeweils von einem Mehrfachzugriffssignal (BSDBPL=1) begleitet sind, und daß mit dem letzten vorgefundenen Datenwort kein Mehrfachzugriffssignal (BSDBPL=0) an die anfordernde Einheit ausgesendet wird, worauf eine in der anfordernden Einheit vorhandene Schlußwortsignal-Erkennungsschaltung (31-34, Fig. 11A) das Ende der Mehrfachanforderungesoperation erkennt, unabhängig davon, wieviele Datenworte die anfordernde Einheit bis dahin von der gerufenen Einheit empfangen hat.
6. Schaltungsanordnung nach Anspruch 5, dadurch gekennzeichnet, daß das von der gerufenen Einheit gesendete Mehrfachzugriffssignal (BSDBPL=1) in der anfordernden Einheit die Aussendung eines Bus- Anforderungssignals (BSREQT) unterbindet, bis die genannte Schlußwortsignal-Erkennungsschaltung (31-34) das Ende der Mehrfachanforderungsoperation signalisiert.
7. Schaltungsanordnung nach einem der vorangehenden Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die gerufene Einheit (z. B. 202) Doppelwortlogik-Schaltkreise (71-87, 95/Fig. 9A) umfaßt, welche auf die von der anfordernden Einheit (z. B. 206) ausgesendete Zugriffsanforderung ansprechen (MYACKR) und mit den genannten Benutzer-, Anforderungs- und Zuteilungsschaltgliedern (15M, 17M, 22M in Fig. 9) operativ (über 183-185) zusammenarbeiten zur Erzeugung von Signalen (MYDCNN) zur Steuerung der Übertragung der angeforderten Datenworte über den Bus zur anfordernden Einheit.
8. Schaltungsanordnung nach Anspruch 7, dadurch gekennzeichnet, daß die gerufene Einheit (202) eine Adreßregister- Multiplexer-Schaltgruppe (89-93) aufweist, die ein Mehrfachwortsignal (I2WRES) erzeugt, das angibt, ob noch weitere, zur Übertragung bestimmte Datenwörter im Speicher vorhanden sind.
9. Schaltungsanordnung nach Anspruch 8, dadurch gekennzeichnet, daß das genannte Mehrfach-Wortsignal (I2WRES) das genannte Mehrfachzugriffs-Schaltglied (80) derart steuert, daß ein daran angeschlossener Mehrfachzugriffs-Signalgenerator (83-85) immer dann ein Mehrfachzugriffssignal (BSDBPL=1) erzeugt, wenn noch weitere, zur Übertragung bestimmte Datenwörter im Speicher vorhanden sind.
10. Schaltungsanordnung nach Anspruch 9, dadurch gekennzeichnet, daß der genannte Mehrfachzugriffs-Signalgenerator (83-85) an den Bus angeschlossen ist (BSDBPL Signalleitung), auf dem zusammen mit dem letzten in dem Speicher der gerufenen Einheit vorgefundenen Datenwort ein Mehrfachzugriffs-Schlußwortsignal (BSDBPL=0) übertragen wird, das der die übertragenen Datenworte empfangenden Einheit (206) signalisiert, daß es sich bei diesem Übertragungszyklus um den letzten in dieser Zyklussequenz handelt.
11. Schaltungsanordnung nach Anspruch 7, dadurch gekennzeichnet, daß die genannten Doppelwortlogik-Schaltkreise (94, Fig. 9 bzw. 71-87, 95, Fig. 9A) an den Ausgang des Zuteilungsschaltgliedes (22M) und den Eingang des Benutzerschaltgliedes (15M) angeschlossen sind, so daß der Ausgang des Zuteilungsschaltgliedes (22M) den Eingang des Benutzerschaltgliedes (15M) in Abhängigkeit vom Vorhandensein einer Einzelwort- oder Mehrfachwortanforderung steuert, wobei das Benutzerschaltglied (15M) aktiviert bleibt, solange eine Mehrfachzugriffsübertragung im Gange ist.
12. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die anfordernde Einheit ein Zentralprozessor (206) und die gerufene Einheit ein Speicher (202 oder 204) ist, wobei der Zentralprozessor innerhalb der Prioritätshierarchie des Datenverarbeitungssystems die niedrigste und die Speichereinheiten die höchste Priorität haben.
13. Schaltungsanordnung nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß ein Bit (BSAD18) im Funktionscode (Fig. 3) durch seinen Binärzustand den Modus der Wortanforderung (Einzelwort oder Mehrfachwort) bestimmt und daß der mit der Zugriffsanforderung von der rufenden Einheit (Master 206) ausgesendete Funktionscode von der gerufenen, antwortenden Einheit (Slave 202) bei der Übermittlung des angeforderten Datenwortes (Datenwörter) mit zurückgesendet wird.
DE19792900380 1978-01-05 1979-01-05 Datenverarbeitungssystem Granted DE2900380A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US05/867,266 US4181974A (en) 1978-01-05 1978-01-05 System providing multiple outstanding information requests
US05/867,262 US4245299A (en) 1978-01-05 1978-01-05 System providing adaptive response in information requesting unit
US05/867,270 US4236203A (en) 1978-01-05 1978-01-05 System providing multiple fetch bus cycle operation

Publications (2)

Publication Number Publication Date
DE2900380A1 DE2900380A1 (de) 1979-07-19
DE2900380C2 true DE2900380C2 (de) 1992-04-30

Family

ID=27420445

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19792900380 Granted DE2900380A1 (de) 1978-01-05 1979-01-05 Datenverarbeitungssystem

Country Status (2)

Country Link
DE (1) DE2900380A1 (de)
YU (1) YU40357B (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2474199B1 (fr) * 1980-01-21 1986-05-16 Bull Sa Dispositif pour superposer les phases successives du transfert des informations entre plusieurs unites d'un systeme de traitement de l'information
ATE150188T1 (de) * 1991-04-02 1997-03-15 Philips Electronics Nv Verfahren zum verarbeiten von steueraufträgen
US5615343A (en) * 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3997896A (en) * 1975-06-30 1976-12-14 Honeywell Information Systems, Inc. Data processing system providing split bus cycle operation

Also Published As

Publication number Publication date
YU40357B (en) 1985-12-31
YU1079A (en) 1983-04-30
DE2900380A1 (de) 1979-07-19

Similar Documents

Publication Publication Date Title
DE2854485C2 (de) Datenverarbeitungsanlage
DE2856483C2 (de)
DE2455803C2 (de) Mehrprozessor-Datenverarbeitungsanlage
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3300261C2 (de)
DE3300260C2 (de)
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE4003759C2 (de) Verfahren und Anordnung zur Übertragung von Daten über einen Bus zwischen selektiv ankoppelbaren Stationen
DE2917441A1 (de) Multiprozessoranlage
DE2523372B2 (de) Eingabe-ZAusgabe-Anschlußsteuereinrichtung
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
CH620306A5 (de)
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
CH634940A5 (en) Channel-adapter arrangement
DE1524166B1 (de) Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage
DE3049774C2 (de)
EP0050305B1 (de) Einrichtung zur Steuerung des Zugriffes von Prozessoren auf eine Datenleitung
EP0184706B1 (de) Schnittstelleneinrichtung
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
EP0185260B1 (de) Schnittstelle für direkten Nachrichtenaustausch
CH634938A5 (de) Einrichtung fuer die weiterleitung von speicherzugriffsanforderungen.
DE102006009034B3 (de) Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller
DE2900380C2 (de)
DE2629401C2 (de)

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: BARDEHLE, H., DIPL.-ING., PAT.-ANW., 8000 MUENCHEN

8125 Change of the main classification

Ipc: G06F 13/38

8127 New person/name/address of the applicant

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee