DE3114934A1 - Zentrales subsystem fuer eine datenverarbeitungsanlage - Google Patents

Zentrales subsystem fuer eine datenverarbeitungsanlage

Info

Publication number
DE3114934A1
DE3114934A1 DE19813114934 DE3114934A DE3114934A1 DE 3114934 A1 DE3114934 A1 DE 3114934A1 DE 19813114934 DE19813114934 DE 19813114934 DE 3114934 A DE3114934 A DE 3114934A DE 3114934 A1 DE3114934 A1 DE 3114934A1
Authority
DE
Germany
Prior art keywords
memory
signal
bus
data
address
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.)
Withdrawn
Application number
DE19813114934
Other languages
English (en)
Inventor
Richard P. Acton Mass. Brown
David E. Chelmsford Mass. Cushing
Thomas F. Phoenix Ariz. Joyce
Virendra S. Pepperell Mass. Negi
Arthur Sudbury Mass. Peters
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 Italia SpA
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems 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
Application filed by Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of DE3114934A1 publication Critical patent/DE3114934A1/de
Withdrawn 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Description

31U934
Die vorliegende Erfindung betrifft ein zentrales Subsystem nach dem Gattungsbegriff des Anspruches 1. Sie betrifft insbesondere Einrichtungen zur Informationsübertragung zwischen einer Pufferspeicher/Speicherverwaltungseinheit, einem zentralen Steuerprozessor, einem kommerziellen Prozessor und einem wissenschaftlichen Prozessor.
In „der Datenverarbeitungsindustrie werden fortlaufend Anstrengungen unternommen, die auf eine Erhöhung der Leistung eines Computersystemsgerichtet sind, während gleichzeitig die Kosten des Systems herabgesetzt werden sollen. Bei der Erhöhung der Leistungsfähigkeit eines Datenverarbeitungssystems bilden die Geschwindigkeit des verwendeten Prozessors innerhalb des Systems und die Geschwindigkeit,mit der Daten zwischen dem Systemspeicher und dem Prozessor übertragen werden können, eine wichtige Rolle. Eine bekannte Lösung zur Erhöhung der Leistungsfähigkeit des Datenverarbeitungssystems sieht mehrere Prozessoren vor, die jeweils an den Systemspeicher über einen gemeinsamen Datenbus angeschlossen sind. Bei einer Erweiterung dieser Lösung sind einzelne Prozessoren speziell ausgelegt, um bestimmte Operationstypen zu bearbeiten. So kann beispielsweise daSjDatenverarbeitungssystem einen Prozessor mit hoher Geschwindigkeit für wissenschaftliche Aufgaben aufweisen, der speziell ausgelegt ist/ um komplexe mathematische Berechnungen mit hoher Leistung auszuführen. Ein kommerzieller Prozessor dient der Datenverarbeitung von geschäftsbezogenen Daten und ein verallgemeinerter Zentralprozessor dient als Hauptprozessor für die Steuerung des gesamten Datenverarbeitungssystems, wobei dieser zusätzliche Verarbeitungsleistung vorgibt.
Bei solchen Datenverarbeitungssystemen mit mehreren Prozessoren war es bislang üblich, daß jeder Prozessor mit dem Systemspeicher über individuelle Verbindungen und einen gemeinsamen
J i i^
-6-
Datenbus in Nachrichtenverbindung steht, wobei der Datenbus an den Systemspeicher angeschlossen ist. Der große Zuwachs an Verarbeitungsleistung der durch die Verwendung mehrerer speziell ausgelegter Prozessoren erzielt wird, führt zwar zu einer erhöhten Gesamtleistung des Systems, aber der ungeheure Betrag an Daten,der konstant von den Prozessoren angefordert wird, überschreitet die Leistungsfähigkeit des Systemspeichers bezüglich der Datenübertragung zu den Prozessoren, wie sie für eine optimale Verarbeitungsgeschwindigkeit erforderlich wäre.
Eine zweite Lösung zur Erhöhung der Leistung eines Computersystems besteht darin, die Anzahl der erforderlichen Zugriffe eines Prozessors auf den Systemspeicher auf ein Minimum zu begrenzen. Diese Lösung beinhaltet die Verwendung eines Speichers begrenzter Kapazität und mit sehr hoher Geschwindigkeit, der als Pufferspeicher bezeichnet wird. Die von dem zentralen Prozessor am häufigsten aus dem Systemspeicher angeforderte Information wird in dem Pufferspeicher gleichzeitig mit ihrer Übertragung zu dem Prozessor gespeichert. Nachfolgende Anforderungen dieser Information führen zu einer Datenübertragung direkt aus dem Pufferspeicher zu dem Prozessor, ohne daß es erforderlich wäre,Zugriff auf den langsameren Systemspeicher mit großer Kapazität zu nehmen.
Eine dritte Lösung zur Erhöhung der Leistungsfähigkeit eines Datenverarbeitungssystems bildet eine Zwischenlösung zwischen der ersten und zweiten Lösung, wobei mehrere spezialisierte Prozessoren verwendet werden und ein Pufferspeicher zur Steuerung des Prozessors herangezogen wird. Hierdurch wird bis zu einem bestimmten Grad die mangelhafte Übertragungskapazität von Daten zu den Prozessoren verbessert, so daß diese effizient betrieben werden können. Die Zentraleinheit CPU ist
O Λ "■ I ■"■■ O /
hierbei jedoch in erster Linie bevorteilt, da sie direkt an den Pufferspeicher angeschlossen ist und daher weniger oft Zugriff auf den Systemspeicher nehmen muss. Ein zweiter Vorteil ergibt sich für die anderen Prozessoren, da der Datenverkehr auf dem Datenbus herabgesetzt wird.
Aber auch diese Zwischenlösung führt noch nicht zu einem Datenverarbeitungssystem, bei dem mehrere spezialisierte Prozessoren kontinuierlich unf optimal betrieben werden können. Ein bedeutendes Hindernis bei der Erzielung einer maximalen Prozessorleistung innerhalb des Datenverarbeitungssystems ist darauf zurückzuführen, daß die Informationsübertragung innerhalb des Systems nicht mit ausreichend hoher Geschwindigkeit erfolgen kann, um die Leistungsfähigkeit der speziell ausgelegten Prozessoren auszuschöpfen.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein zentrales Subsystem der gattungsgemäßen Art in der Weise zu verbessern, daß die Leistungsfähigkeit eines Datenverarbeitungssystems ohne spürbares Anwachsen der Kosten des Systems erhöht 'wird. Eine verbesserte Busstruktur soll hierbei der Informationsübertragung zwischen einem Pufferspeicher und mehreren spezialisierten Prozessoren dienen. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
— ft —
Anhand eines in den Figuren der beiliegenden Zeichnung dargestellten Ausführungsbeispieles sei im folgenden die Erfindung näher erläutert. Es zeigen:
Fig.1 ein allgemeines Blockdiagramm eines Systems; welches die erfindungsgemäße Einrichtung enthält;
Fig.2 ein detailliertes Blockdiagramm der zentralen Verarbeitungseinheit gemäß der vorliegenden Erfindung;
Fig.3 Einzelheiten bezüglich der Verbindungen der Arithmetik- und Logikeinheit in der Zentraleinheit gemäß der vorliegenden Erfindung;
Fig.4 Einzelheiten bezüglich der Zusammensetzung der Speicherplätze in dem Steuerspeicher der erfindungsgemäßen Zentraleinheit;
Fig.5 ein detailliertes Blockdiagramm des Steuer-' Speichers und der zugeordneten Logik in der erfindungsgemäßen Zentraleinheit;
Fig.6 eine Tabelle zur Veranschaulichung der Signale j wie sie zur Adressierung des Steuerspeichers und zur Antwort auf verschiedene Verzweigungsbedingungen verwendet werden;
Fig.7 ein detailliertes Blockdiagramm einer Testlogik zur Freigabe des Steuerspeichers der erfindungsgemäßen Zentraleinheit;
Fig.8 Einzelheiten eines Multiplexers zur Adressierung
3114334
des Steuerspeichers in der erfindungsgemäßen Zentraleinheit;
Fig.9 ein Beispiel für die Paarbildung von Speicherplätzen in dem Steuerspeicher der erfindungsgemäßen Zentraleinheit;
Fig.10a bis 10k Formate bei der Informationsübertragung der Adress- und Datenfelder über den internen Bus und den Megabus, die die Verarbeitungseinheiten miteinander verbinden;
Fig.11 ein detailliertes Blockdiagramm des internen Busadapters für die Steuerung der Informationsübertragung zwischen den Prozessoren und der Pufferspeicher/Speicherverwaltungseinheit in einem erfindungsgemäßen zentralen Subsystem;
Fig,12 ein detailliertes Blockdiagramm des Megabusadapters für die Steuerung der Informationsübertragung zwischen einem zentralen Subsystem und dem Megabus gemäß der vorliegenden Erfindung;
Fig.13 ein Blockdiagramm der Register in dem zentralen Prozessor zur Schnittstellenbildung mit dem internen Bus;
Fig.14 ein Blockdiagramm der Register in dem kommerziellen Befehlsprozessor für die Schnittstellenbildung mit dem internen Bus;
Fig.15 ein Blockdiagramm der Register in dem wissenschaftlichen Prozessor für die Schnittstellenbildung mit dem internen Bus;
31U934
Fig.16 ein Blockdiagramm der Register in einem Speichermodul für den Einzelauszug eines Wortes mit einfacher Breite und zur Schnittstellenbildung mit dem Megabus;
Fig.17 ein Blockdiagramm der Register in einem Speichermodul für den Doppelauszug eines Wortes mit einfacher Breite und zur Schnittstellenbildung mit dem Megabus;
Fig.18 ein Blockdiagramm der Register in einem Speichermodul für den Doppelauszug eines Wortes mit doppelter Breite und zur Schnittstellenbildung mit dem Megabus;
Fig.19 ein Blockdiagramm zur Veranschaulichung der Art und Weise, wie die Teile A und B in den Figuren 2OA bis 46B zusammengesetzt werden;
Fig.2OA bis 33B detaillierte logische Blockdiagramme zur Veranschaulichung der Hardware des internen Busadapters gemäß Figur 11; und
Fig.34A bis 46B detaillierte logische Blockdiagramme zur Veranschaulichung der Hardware des Megabusadapters gemäß Figur 12.
31U934
1. System-Übersicht
Figur 1 zeigt in einem Blockdiagramm die Konfiguration eines Systems,in welchem die Zentraleinheit gemäß der Erfindung Verwendung findet. Ein derartiges System umfaßt neben der Zentraleinheit CPü-100 wahlweise Prozessoren,die einen wissenschaftlichen Befehlsprozessor SIP-101 und einen kommerziellen Befehlsprozessor CIP-102 umfassen können. Diese wahlweise vorgesehenen Prozessoren werden benutzt, um bei speziellen Anwendungen die Fähigkeiten der Zentraleinheit zu erweitern. Das System kann ferner eine Pufferspeicher/ Speicherverwaltungseinheit 103, einen Systembus 105, einen Hauptspeichermodul 106, Ein/Ausgabe-Steuerungen 107, die an Ein/Ausgabe-Geräte 108 angeschlossen sind, und eine Mehrleitungs-Dialogsteuerung bzw. Dialogprozessor MLCP-109 umfassen. Die Konfiguration des Systems kann ein zweites zen-
trales Subsystem 110 aufweisen, wobei dieses Subsystem das vorstehend beschriebene System ganz oder teilweise enthält.
Die Prozessoren des zentralen Subsystems sind miteinander durch einen internen Bus 9 verbunden und sie stehen mit dem .restlichen System über die Pufferspeicher/Speicherverwaltungseinheit 103 in Verbindung. Es ist die Funktion der Einheit 103 in dem zentralen Subsystem,einen Pufferspeicher für den Teil des Hauptspeichers 106 vorzugeben, der gerade von den Prozessoren benutzt wird, und hierbei die Hauptspeicheradresse zu übersetzen. Aufgabe des internen Busses 9 ist es r eine Verbindung zwischen den drei Prozessoren und der Einheit 103 herzustellen. Hierbei ist ein physikalischer interner Bus 9 vorgesehen, der zahlreiche Schnittstellen aufweist. Wie man der Figur entnehmen kann, gibt es private Schnittstellen zwischen der Zentraleinheit CPU-100 und den beiden anderen Prozessoren. Es ist ferner eine private Schnittstelle zwischen jedem Prozessor und der Einheit 103 vorgesehen. Der interne Bus wird zeitlich gestaffelt durch alle drei Prozessoren und die Einheit 103 benutzt. Die Einheit 103 bildet ferner eine Schnittstelle zwischen dem Systembus 105 und dem restlichen System, das in erster Linie den Hauptspeicher 106 und die über die Steuerung 107 angeschlossenen Ein/Ausgabe-Geräte 108 aufweist.
Das in Figur 2 dargestellte Blockdiagramm der Zentraleinheit CPU sei nunmehr erläutert. Insbesondere sollen die verschiedenen Busse und Funktionseinheiten und ihre Beziehungen zueinander erläutert werden. Die primären Elemente der Zentraleinheit CPU sind durch gestrichelte Linien eingerahmt. Ein erstes solches Element ist die interne Bus-Schnittstelle 10, die einen Datenpuffer, einen zyklisch betriebenen Speicherpuffer 36 und Adressenmultiplexer aufweist, welche an einen
31U934
Quellenbus 33 sowie an andere zu beschreibende Einrichtungen angeschlossen sind. Das erste Element 10 wird benutzt,um Daten von dem internen Bus 9 aufzunehmen.
Ein zweites Element 16 bildet das Arithmetikelement und umfaßt verschiedene Einrichtungen einschließlich zweier Gruppen von Registeranordnungen, die mit DRAM-11 und BRAM-12 bezeichnet sind und über den RAM-Bus 13 miteinander verbunden sind. Das Element 16 umfaßt ferner einen inneren Bus 14, an den das Register BRAM sowie andere Geräte angeschlossen sind. Eine Arithmetik-und Logikeinheit DALU-15 steuert das Register DRAM-I1 an.
Ein drittes Element 22 der Zentraleinheit CPU umfaßt den äußeren Bus 17 und den Schreibbus 84, wobei beide Busse über die Verschieber 19-1 und 19-2 miteinander verbunden sind. Selektoren 20 und 21 steuern die Verschieber 19-1 und 19-2 an.
Ein viertes primäres Element 2 7 bildet den Adressenabschnitt der Zentraleinheit CPU und umfaßt das Prozedur-Adressregister P-23 und das Daten-Adressregister Y-24. Es umfaßt ferner den Adressenmultiplxer 25 und das Vorabruf-Adressregister 26. Ferner enthält das Element 27 das Schreibdatenregister W-28 und den Schreibadstenselektor WS-29. Dieser Teil der Zentraleinheit CPU wird verwendet, um Daten zu dem internen Bus 9 zu übertragen.
Die Einrichtung 30 bildet die Testlogik der Zentraleinheit CPU, welche gemäß Figur 7 eine Gruppe von 8 zu 1-Multiplexern umfaßt, welche ihrerseits eine zweite Gruppe von wenigstens zwei 8 zu 1-Multiplexern ansteuern, um ein einzelnes Binärsignal zu erzeugen. Dieses Signal wird mit "Test erfüllt" oder mit "Test nicht erfüllt" bezeichnet. Zugleich wird dieses Signal benutzt,um die Verzweigung in der Firmware zu
31HG34
steuern. Die Testsignale sind an programmierbare Festwertspeicher PROM innerhalb der Steuerspeicherreihen 80 und 81 gemäß Figur S angeschlossen.
Der Generator 44 für die nächste Adresse ist an das F-Register 38 und den F-Bus 37 angeschlossen. Der Generator für die nächste Adresse ist in erster Linie für die Erzeugung von Firmwareadressen zur Verwendung in der Zentraleinheit CPU vorgesehen .
Die Funktion des Elementes 10,das den Dateneingangsbereich des internen Busses repräsentiert,dient dem Empfang von Daten, , die von der Pufferspeicher/Speicherverwaltungseinheit oder von anderen Geräten an dem internen Bus zurückkommen, der Auswahl von Daten von Bootstrap-Festwertspeichern, wenn eine ürladung angefordert ist und dem Richten von derartigen Daten an demgeeigneten Datenpuffer. Beim Aufruf eines Befehlsabrufes werden die Daten in dem Funktionsregister abgelegt. Insbesondere erhält der primäre Datenpuffer 31 Datenworte mit 16 oder 32 Bit von dem internen Bus 9 zugeführt. Sein Ausgang ist an den L-Bus 32 angeschlossen. Der L-Bus wird sowohl benutzt, um den Quellenbus 33 durch Verwendung eines Paares von Selektoren DA-34 und DW-35 anzusteuern als auch um den Vier-Wort-Prozedurpuffer 36 anzusteuern. Nicht-Prozedurdaten gelangen in die Zentraleinheit CPU über den Quellenbus 33,der von dem L-Bus 32 über die Datenselektoren angesteuert wird. Prozedurdaten gelangen in die Zentraleinheit CPU über eine unterschiedliche Gruppe von Selektoren PA-39 und PW 40, wobei diese von dem Prozedurpuffer 36 kommen. Der Prozedurpuffer enthält die nächsten zwei oder drei Worte der« auszuführenden Prozedur, so daß dann, wenn sie erforderlich sind, keine Zeit benötigt wird,um sie abzurufen. Dieser Puffer wird automatisch von der Pufferspeicher/Speicherverwaltungseinheit über den internen
Q 1 Λ Ι η O /,
O 1 I ί·ί J J 4
-15-
BUS nachgeladen; wenn er durch die Zentraleinheit CPU geleert wird.
Der F-Bus 37 ist ein spezieller Bus, der für die Eingabe von Information in das F-Register 38 benutzt wird, welches vier Bereiche aufweist, die mit FOP, MN, FN und Link bezeichnet sind. Das F-Register ist das primäre Befehlsregister der Zentraleinheit CPU. Es ist die Aufgabe des F-Busses 37,Daten aus dem F-Register 38 aufzunehmen und von den verschiedenen Quellen Daten an das F-Register zu liefern. Es ist ferner ein Multiplexer 43 vorgesehen, der das Laden entweder von Konstanten oder von Daten aus dem Element AS'-42 entweder in den Bereich Link oder FN des F-Registers 38 gestattet.
Ferner befindet sich in dem den Dateneingangsbereich bildenden Element 10 eine Gruppe von Bootstrap-Festwertspeichern 41, die anstelle des Hauptspeichers Befehle liefern, wenn die Zentraleinheit im Bootstrapbetrieb arbeitet.
Die Speichereinrichtung 36 mit den Speicherplätzen A,B,C und D'ist ein zyklischer Vier-Wort-Prozedurspeicher. Immer wenn dieser Speicher Platz für zwei Worte der Prozedur aufweist, d.h. wenn er wenigstens halb leer ist, so löst er automatisch eine Speicherleseprozedur über den internen Bus 9 durch die Pufferspeicher/Speicherverwaltungseinheit aus. Die zurückkommenden Daten werden in den nächsten 2 Speicherplätzen abgelegt, die .in diesem zyklischen Speicher verfügbar sind. Wenn die Zentraleinheit CPU Prozeduren verwendet, durch die entweder Worte an den Quellenbus 33 zur Verwendung innerhalb der Verarbeitungselemente der Zentraleinheit CPU aus^ gegeben werden oder bei denen diese zu dem F-Register 38 gesendet werden, da sie Teil eines Befehles sind, so werden die zwei Zeiger 36-1 und 36-2, die Positionsanzeiger des
'3fUS34
zyklischen Speichers darstellen, zu dem nächsten verfügbaren Speicherplatz fortgeschaltet, indem ein Zähler in der Einrichtung 36 verwendet wird, der die vier Speicherplätze an den Ausgängen der Einrichtung 36 freigibt. Der linke Positionsanzeiger 36-2 zeigt das nächste Wort bzw. die nächste abzurufende Prozedur an. Der rechte Positionsanzeiger 36-1 repräsentiert das nachfolgende Wort. Manchmal wird ein Wort der Prozedur verwendet, in welchem Fall das durch den linken Positionsanzeiger angezeigteWort die Informations erzeugt, die über den PW-Multiplexer 40 ausgegeben wird. Manchmal sind zwei Prozedurworte erforderlich, beispielsweise wenn die große Adressform LAF verwendet wird. Dann werden die durch beide Positionsanzeiger angezeigten Worte in dem PA-Multiplexer 39 des Prozedurselektors kombiniert. Dies wird näher beschrieben, wenn die entsprechende Logik erläutert wird.
Das Element 10 bildet somit den Bereich,durch den Daten in die Zentraleinheit CPU zu dem Quellenbus gebracht werden, wobei dies entweder über die Datenselektoren 34 und 35, über die Prozedurselektoren 39 und 40 oder durch direktes Einbringen der Daten in das Befehlsregister F-38 über den Prozedurpuffer 36 und den F-Bus 37 geschieht. Die Einrichtung F1-76 wird benutzt um ausgewählte Bits einer Hilfsadresseninformation oder von Silben zu speichern. Die Adreßsilbe ist in Wirklichkeit Teil eines 16 Bit-Datendescriptors. Bestimmte Bits in dem Descriptor müssen zurückgehalten werden für eine nachfolgende Analyse. Das Operanden-Größenbit in dem CIP-Descr±ptor und die Operandengröße und vorzeichenbehaftete Bits gegenüber Bits ohne Vorzeichen in dem K-Register-Descriptor müssen zurückgehalten werden. Dies geschieht in dem F'-Register 76 für 5 Bit.
Das zweite Element 16 enthält die Arithmetik- und Logikein-
31UC34
heit DALU-15, den Speicher BRAM-12 und den Speicher DRAM-11, die die meisten für den Programmierer zugänglichen Register plus einer Anzahl von dem Programmierer nicht zugänglichen Arbeitsregistern enthalten. Diese Datenspeicherelemente sind folgendermaßen organisiert: Der Speicher DRAM-11, der eine von zwei Quellen bildet, die den RAM-Bus 13 ansteuern können, enthält 32 Speicherplätze,von denen jeder für 24 Bit vorgesehen ist. Diese Speicherplätze werden benutzt, um sogenannte D-Register, zwei Hälften (K und L) von sogenannten K-Registern mit einer Länge von 32 Bit, eine Anzahl von internen Zeigern und um sieben söge nannte. M-Register zu bilden. Der Speicher BRAM-12,der 16 Worte mit einer Breite von 24 Bit enthält, bildet die sieben Basisregister plus einer Anzahl von dem Programmierer zugänglichen und dem Programmierer unzugänglichen Zeigern verschiedener Typen.
Figur 3 zeigt in näheren Einzelheiten die Verbindung zwischen den Speichern RAM, den Bussen und der Einheit DALU-15. Die Speicher DRAM und BRAM können jeweils Quellen für den RAM-Bus 13 darstellen. Der Speicher BRAM-12 weist tatsächlich eine Doppelstruktur auf, d.h. es sind zwei parallele Speicher BRAM-60 und 61 in der Zentraleinheit CPU vorhanden. Die beiden Elemente des Speichers BRAM werden identisch geladen. Ein solches Element,das Daten zu dem R-Bus überträgt(ist durch das Element 60 gegeben und das andere Element,das den I-Bus 14 ansteuert, ist durch das Element 61 gegeben. Ein wichtiger Gesichtspunkt für diese beiden identischen Speicher BRAM liegt darin, daß die Systemgeschwindigkeit erhöht wird.
Der R-Bus kann entweder durch den Speicher BRAM-60 oder durch den Speicher DRAM-11 angesteuert werden. Andere Quellen steuern,wie noch zu sehen sein wird, den I-Bus 14 an. Die Einheit DALU-15 benutzt den I-Bus und den R-Bus als Eingänge
3i"H934
und der Ausgang der Einheit DALU kann zu dem Speicher DRAM Zurückgeführt werden oder anderswo in der Zentraleinheit CPU benutzt werden.
Das Element 16 umfaßt zwei Busse von wesentlichem Interesse. Der sogenannte innere Bus oder Eingangsbus 1-14 stellt die primäre Eingangsquelle innerhalb des Prozessors dar, d.h. Daten von dem Hauptspeicher ebenso wie der Ausgang des Q-Registers 50 über den Treiber 54 und der Ausgang des Speichers BRAM-12 werden über diesen Bus hereingeführt. Der zweite Bus, der sogenannte R-bzw. RAM-Bus,dient der Ankopplung der beiden Speicher BRAM und DRAM. Die Ausgangssignale dieser beiden Busse bilden die Eingänge für die Einheit DALU-15, welche Daten erzeugt, die entweder in den Speicher BRAM zurückgeführt werden können oder zu dem äußeren Bus 17 gesendet werden können,um in dem System weiter verarbeitet zu werden.
Sowohl der I-Bus als auch der RAM-Bus verwenden ein Hardwareelement, das als Schlagverriegelung ("batlatch" = BL) bezeichnet wird und durch ein Gatter vorgegeben ist, dessen Eingang und Ausgang zur Ankopplung an die Signale auf dem Bus miteinander verbunden sind. Diese Verriegelung übernimmt die Steuerung des Signales(nachdem die ansteuernde Quelle aus Zeittakt- und Fortschaltgründen von dem Bus abgetrennt werden muß. Wenn dies geschieht, so hält die Verriegelung das Signal auf dem gleichen Pegel wie zum Zeitpunkt/wo die ansteuernde Quelle vorhanden war, so lange/bis die Verriegelung abgeschaltet wird, woraufhin das Bussignal verschwinden kann, d.h. beispielsweise den O-Pegel einnehmen kann.
Der RAM-Bus 13 bildet die Schnittstelle für die übertragung von Daten zwischen der Steuerkonsole 90 und der Zentraleinheit, wobei diese Datenübertragung über 16 bidirektionale
3Ϊ14934
Signalleitungen erfolgt. Speicherdaten werden an den I-Bus 14 über eine Gruppe von Treiber gegeben ι die als Datenverriegelungen DL-51 bezeichnet sind. Den Datenverriegelungen 51 ist eine zweite Reihe von Verriegelungen SE-52 parallelgeschaltet, die für eine Vorzeichenerweiterung vorgesehen sind. Diese SE-Verriegelungen werden benutzt, um entweder den Datenverriegelungen ein Vorzeichen oder den Wert Null hinzuzufügen, wenn diese lediglich sechszehn Bit dem 24 Bit-Bus zuführen. In gleicher Weise wird die SE-Verriegelung 52 benutzt, um 7 oder 8 Bit des laufenden Befehls zu nehmen und s ie um das Vorzeichen auf 24 Bit zu erweitern und bei Verzweigungs- und Wertbefehlen zu benutzen, die ihre Verschiebung und ihren Operanden aus dem rechten Teil des Befehlswortes entsprechend entnehmen.
Eine Auswahl/Modifikationslogik 53 ist den Speichern BRAiM und DRAM ebenfalls zugeordnet, durch welche eine Adressierung dieser Speicher in Blöcken von 8 Registern gestattet wird, indem verschiedene Felder in dem Befehlswort benutzt werden, um die individuelle Registerauswahl innerhalb dieses Blockes zu steuern.
Ein Konstantegenerator KON-70 ist ferner in dem Element 16 vorgesehen und bildet eine weitere Quelle für den I-Bus 14, wobei er 24 Bit-Konstanten basierend auf dem Inhalt der BI- und K-Felder des Steuerspeicherwortes erzeugen kann. Unter Steuerung durch die Firmware verwendet die Arithmetikeinheit diese auf dem I-Bus zugeführte Kontante.
Das Element 16 bildet somit den primären arithmetischen Operationsbereich innerhalb der Zentraleinheit CPU. D.h. das Element 16 ist mit der Operandenmanipulation, mit der
"3ϊί"4934
Erzeugung von Operanden für die Einfügung in den Datenspeicher RAM oder mit der Erzeugung von Operanden zur Abgabe an den äußeren Bus befaßt. Diese Operanden können entweder in den Speicher BRAM zurückgeführt werden oder sie können zu den verschiedenen Adreß- und Datenregistern für die Ausgabe an den internen Bus 9 gesendet werden.
Das Element 22 betrifft in erster Linie den Abschnitt der Zentraleinheit CPU, der als äußerer Bus und Schreibbus bezeichnet ist. Der äußere Bus ist der Bus, der verschiedene Datenwege sammelt, d.h. er ist an das Y-Register, das P-Register, den Ausgang der Einheit DALU und den 'RAM-Bus angeschlossen. Der Schreibbus ist derjenige Bus, der verwendet wird, um Operanden zu dem Speicher BRAM, zu den Schreib-Datenregistern und zu der Einheit DALU-55 zu übertragen, wobei letztere Einheit in erster Linie für die Adressenmanipulation verantwortlich ist.
Zwischen dem äußeren Bus 17 und dem Schreibbus 84 ist eine Gruppe von 24 Multiplexschiebern 19 angeordnet, die eine Verschiebung um 1, 2 oder 4 Bits in jeder Richtung bezüglich der Operanden auf dem äußeren Bus 17 gestatten. Zusätzlich ist ferner eine Gruppe von 16 Multiplexschiebern 56 vorgesehen, die benutzt werden, um Operanden in das Q-Register zu laden.
Zwei der vier unterschiedlichen Operandentypen, die auf den äußeren Bus gegeben werden, entstammen der Einheit DALU und dem RAM-Bus, wobei die über einen 2 zu 1-Multiplexer 20 ausgewählt werden, der an den äußeren Bus 17 angeschlossen ist. Zwei andere Quellen für den äußeren Bus bilden das Y-Register als Datenadreßregister und das P-Register als Prozedurregister. Die Ausgänge dieser zwei Register sind über einen 2 zu 1-
31Ή934
Multiplexer in Form des Y/D-Selektors 21 an den äußeren Bus 17 angeschlossen. Ferner ist an den äußeren Bus 17 das I-Register 57 angeschlossen, welches das Indikatorregister für das zentrale Verarbeitungs-Subsystem ist. Die Information auf dem äußeren Bus 17 kann entweder direkt übertragen werden oder zu dem Schreibbus 84 verschoben werden, um in der Zentraleinheit CPU weiter verarbeitet zu werden. Sie kann ebenfalls direkt in das Q-Register 50 geladen werden, so daß das Q-Register für Verschiebeoperationen mit Doppelpräzision verwendet werden kann.
Jede innerhalb der Zentraleinheit CPU stattfindende Verschiebung erfolgt durch Manipulation der Operanden zwischen dem äußeren Bus und dem Schreibbus. Die 24 Verschieber 19 werden benutzt, um Operanden mit 24 Bit zu verschieben, wobei 24 Bit der Größe der Operanden auf dem äußeren Bus 17 und dem Schreibbus 84 entspricht und wobei die Verschiebung nach links oder rechts unter Steuerung durch das Steuerspeicherwort erfolgt. Sie können eine Verschiebung um entweder 1,2 oder 4 Positionen vornehmen, sie können den Operanden unverändert übertragen oder sie können den Operanden so übertragen, daß die zwei Bytes auf der rechten Seite des Operanden ausgetauscht werden. Der Betrieb dieser Verschieber wird durch ein spezielles Feld in dem Steuerspeicherwort gesteuert. Dieser Abschnitt der Zentraleinheit CPU wird für Verschiebungen von Operandenmit 24 Bit benutzt. Wenn Operanden mit 32 Bit (Doppelregister) verschoben werden, so werden der rechte Operand über den äußeren Bus in das Q-Register geladen, und es wird sodann eine Verschiebung ausgeführt, bei der nicht nur die Verschieber 19 für den Schreibbus, sondern auch die 16 Q-Registerschieber 56 benutzt werden. Der Inhalt des Q-Registers wird hierbei als eine 16 Bit-Erweiterung des rechten Endes des Operanden mit 24 Bit behandelt, der in den Schreibbus 84 geschoben wird. Die Enden dieser zwei Verschieber
3Π4334
sind miteinander verbunden, so daß eine 40-Bit-Verschiebung behandelt werden kann. Bei solchen Doppelregisterverschiebungen sind die interessierenden Operanden die 16 Bit, die zu dem Q-Register zurückgeführt werden^und die 16 Bit,die als rechte zwei Bytes zu dem äußeren Bus übertragen werden, während die linken 8 Bits der Daten auf dem Schreibbus gewöhnlicherweise gestrichen werden.
Das Element 75 dient der Sammlung der Statusbits in der Zentraleinheit CPU zur Ausgabe über einen Treiber 93 zu dem Schreibbus bei bestimmten Bedingungen. Der Schreibbus besitzt zwei Quellen, wobei die primäre Quelle der an den äußeren Bus 17 angeschlossene Verschieber 19 ist. Dieser Verschieber 19 kann als Eingang für den Schreibbus 84 gesperrt werden und es können stattdessen die Statusbits S/Z in dem Element 75 auf dem Schreibbus 84 abgelegt werden, um eine nachfolgende Analyse durch die Firmware zu ermöglichen.
Eine Hardwareeinheit, die dem Q-Register zugeordnet ist und die zuvor nicht erläutert worden ist, ist durch das XB-Register 58 und den daran angeschlossenen Decodierer 59 gegeben. Das XB 58 wird während einer Indexverschiebung benutzt t um jene Bits des Index einzufangen, die für Subwort-Operanden nach rechts verschoben werden und die verloren gehen würden, da sie sich nach rechts gegenüber dem Bit für das Einzelwort in der Adresse verschieben würden. Sie werden in dem XM-Register festgehalten, wobei ein Bit für Halbwortverschiebungen, zwei Bits für Ziffernverschiebungen und vier Operandenverschiebungenfestgehalten werden. Der Inhalt des XB-Registers wird nachfolgend benutzt, um direkt die Halbauswahl zwischen links und rechts zu steuern, wenn HalbwortOperanden behandelt werden, um einen Parameter zu dem kommerziellen Befehlsprozessor bei Zahlenoperanden zu senden und um eine
'31H934
Maske von 15 Bits mit dem Binärwert "0" und einem einzigen Bit mit dem Binärwert "1" im Zusammenhang mit dem Decodierer 5 zu erzeugen, wenn Bitoperanden behandelt werden. D.h., daß bei einem Bitoperanden ein Wort gelesen wird, eine Maske benutzt wird,um das ausgewählte Bit in dem Wort zu setzen oder zu löschen t und sodann das Wort zurück in den Speicher geschrieben wird. Die Maske wird durch den Decodierer 59 erzeugt und bildet einen Eingang für das Q-Register 50. Eine Information, die in^dasQ-Register geladen werden kann, ist daher die Decodiermaske, die aus dem Inhalt des XB-Registers 58 erzeugt wird.
Das vierte Hauptelement in der Zentraleinheit CPU ist durch den Bereich 27 gegeben, der mit der Erzeugung von Adressen, Anweisungen und Operanden befaßt ist, wobei diese zu dem internen Bus 9 und über den internen Bus entweder zu den Prozessoren CIP und SIP oder zu der Pufferspeicher/Speicherverwaltungseinheit und somit zu dem Hauptspeicher oder zu den Ein/Ausgabegeräten übertragen werden. Dieses Hauptelement kann in etwa drei Bereiche unterteilt werden, wobei der erste Bereich durch das Schreibdatenregister W-28 und den Schreibselektor WS-29 gegeben ist. Das Register 28 ist ein 32 Bit-Register mit einer geteilten Lademöglichkeit, d.h. es kann entweder die rechte Hälfte oder die linke Hälfte oder beide Hälften dieses Registers geladen werden. Die rechte Hälfte wird immer mit 16 Bit von dem Schreibbus 84 über die Treiber geladen. In die linke Hälfte werden Daten eingeschrieben, die von dem Schreibselektor 29 kommen. Dieser Schreibselektor weist an seinen 16 Eingängen entweder die 16 Bits der rechten Hälfte des Schreibbusses oder die 8 linken Bit des Schreibbusses plus eine Vorzeichen- oder Nullerweiterung auf. Der Schreibbus bildet den primären Weg,über den Daten zu dem W-Register 28 gesendet werden können, um nachfolgend solche Daten in irgendeine andere an den internen Bus ange-
"31Ή934
-24-schlossene Einrichtung einschreiben zu können.
Der nächste Bereich in der Ausgangsschnittstelle 27 ist durch den Anweisungstreiber 71 gegeben. Der Anweisungstreiber 71 steuert eine Reihe von Anweisungsleitungen im Zusammenhang mit Übertragungen der Zentraleinheit CPU auf dem internen Bus und er zeigt der Pufferspeicher/Speicherverwaltungseinheit entweder einen Speicherreferenzzyklus, einen E/A-Referenzzyklus oder einen internen Bus-Referenzzyklus an. Die Information, die auf der Leitung 72 zu den Anweisungsleitungen übertragen wird, wird von den Feldern F und FK des Steuerspeicher- bzw.Firmwarewortes FW in Figur 4 hergeleitet, wobei diese Felder zu anderen Zeitpunkten ebenfalls das F-Register 38 des Elementes 10 ansteuern. Der dritte Teil des Elementes 27 umfaßt die zwei primären Adressregister, d.h. das Y-Register 24 für nicht-prozedurale Speicheradressen und für Adressen von anderen Geräten an dem internen Bus und dem Systembus und P-Register 23 (Programmzähler) sowie das Vorabrufregister 26.
Der PrOgrammzähler 23 enthält jeweils das letzte von der Firmware benutzte Wort, das dem zyklischen Puffer 36 entnommen wurde und der Zentraleinheit CPU eingegeben wurde. Das Vorabrufregister PF-26 enthält die Adresse des nächsten aus dem Hauptspeicher abzurufenden Wortes. Dies heißt, die Register P und PF können sich hinsichtlich der Speicheradresse um irgendeine Zahl entsprechend 1 bis 4 Worten unterscheiden, was davon abhängt, wie stark der zyklische Puffer gefüllt ist und in welchem MaB die Zentraleinheit zuvor Daten aus dem Puffer entnommen hat. Wenn die Zentraleinheit alle Daten aus dem Puffer entnommen hat, so ist ein endlicher Zeitbetrag hinsichtlich der Pufferspeicher/Speicherverwaltungseinheit erforderlich, um auf eine Anforderung mit neuen Daten zu ant-
rs Λ -ι 7 ~· <~\ j
Jl I -τ vj -J -i
-25-
worten und den Puffer 36 erneut zu füllen. Unter diesen Umständen weisen das Vorabrufregister 26 und das Programmzählerregister 23 unter Umständen den gleichen Adressinhalt auf. Wenn der Puffer 36 gefüllt ist und die Zentraleinheit CPU zuletzt keine Daten entnommen hat, so ist der Inhalt des P-Registers um 2 bis 4 Worte hinter dem Inhalt des Vorabrufregisters zurück, da das Programmregister das zuletzt entnommene Wort anzeigt und das Vorabrufregister das nächste von dem Speicher zu sendende Wort anzeigt, wobei dies gesendet wird, sobald Platz in dem Vorabrufregister vorliegt.
Der Inhalt des P-Registers 23 dart niemals auf den internen Bus als Speicheradresse gegeben werden. Die beiden Datenquellen für den internen Bus,die über den virtuellen Adressmultiplexer 25 gehen, sind das Y-Register 24, das für alle nicht-prozedurale Datenabrufe benutzt wird,und das Vorabrufregister 26, das automatisch durch die Vorabruflogik für den Speicherzugang benutzt wird,um Worte für die Verwendung in nachfolgenden Firmwareschritten anzufordern.
Die Pfeile hinsichtlich der Einrichtungen 23, 24 und 26 zeigen die Möglichkeit der Zählstandserhöhung dieser speziellen Register an. Dies bedeutet, daß das P-Register um ein oder zwei Worte in Abhägigkeit von der Anzahl der Worte erhöht werden kann, die aus dem Vorabrufpuffer aufeinmal entnommen werden. D.h. die Entnahme eines Wortes aus dem Vorabrufpuffer 36 bewirkt eine automatische Erhöhung des Inhalts des P-Registersum eins. In gleicher Weise bewirkt die Entnahme von zwei Worten aus dem Vorabrufpuffer 36 die automatische Erhöhung des Inhalts des P-Registers um 2. Das Vorabrufregister wird immer um zwei erhöht, da die Vorabrufe immer ein Paar von Worten betreffen.
Das Y-Register kann entweder um eins oder zwei erhöht werden,
-1 1 / Π O /
i ι *+ α υ
-26-
wobei dies unter Firmwaresteuerung erfolgt, wenn diese benutzt wird oder zur Benutzung vorbereitet wird. Es gibt ein Bus-Steuerfeld in dem Firmwarewort, das die Steuerung dieser Erhöhung und der verschiedenen Zyklusanforderungen an den internen Bus gestattet.
Die Eingänge zu dem W-Register 28 sind durch zwei 16 Bit-Datenwege gegeben, die in verschiedener Weise betrieben werden. Wenn es gewünscht ist, eine 24 Bit-Adresse zu schreiben, so werden die Treiber 74 eingeschaltet und gestatten die übertragung der rechten 16 Bit auf dem Schreibbus zu den rechten 16 Bits des W-Registers. Der Multiplexer 29 wird so betrieben, daß die linken 8 Bits auf dem Schreibbus und die 8 vorderen (signifikantesten ) Bits mit dem Binärwert "0" zu der linken Hälfte des W-Registers 28 ausgegeben werden. Hierdurch wird eine Zwei-Wort-Adresse mit 24 Bit in das W-Register für die nachfolgende Einschreibung in den Speicher geladen. Wenn das Einschreiben eines Einzelwortes in den Speicher gewünscht ist, so wird die rechte Hälfte des W-Registers nicht getaktet, d.h. nicht freigegeben,und erfährt keine Änderung. Der Multiplexer 29 wird in die Lage versetzt, die 16 rechten Bits auf dem Schreibbus zu den 16 linken Bits des W-Registers zu übertragen, in welches sie eingetaktet werden. Beim Schreiben von Einzelworten bildet die linke Hälfte des W-Registers die in dem Speicher einzuschreibenden Daten.
Die bislang beschriebene Logik wird zur Anforderung und zur Annahme von Daten von anderen Einheiten an dem internen Bus, wie beispielsweise der Pufferspeicher/Speicherverwaltungseinheit oder der Prozessoren CIP bzw. SIP benutzt. Sie wird ferner benutzt, um auf diese Daten einzuwirken und diese intern in verschiedenen Registern Über die Recheneinheiten in dem System zu speichern, um neue Operanden zu schaffen, die
I 'τ ^ Ο
nachfolgend modifiziert werden und um diese zu dem internen Bus auszusenden und sie zu den durch die Adresse identifizierten Einheiten weiterzuleiten. Die Adressen werden hierbei intern in der Zentraleinheit CPU errechnet und zur Steuerung des internen Busses herangezogen. Alle diese Operationen werden durch die Firmware gesteuert, die in einem Steuerspeicher 80 und 81 innerhalb der CPU enthalten ist, wobei dieser Steuerspeicher 2048 Worte mit 96 Bits enthält.
Der Steuerspeicher ist in eine Anzahl von Einzelfeldern unterteilt, wobei jedes einen bestimmten inneren Ablauf in der Zentraleinheit CPU steuert. Figur 4 zeigt das Firmwarewort und die verschiedenen interessierenden Felder. Das erste dieser Felder ist das interne Busfeld LB, das die Bits O bis 7 des Steuerspeichers einnimmt. Das LB-FeId beinhaltet die Anforderung verschiedener Zyklen von dem internen Bus und die Antwort darauf. Es ist ferner verantwortlich für die Ausgabe von virtuellen Adressen über das Vorabrufregister oder das Y-Register und es steuert die verschiedenen Erhöhungen dieser Register Y und P. Das LB-FeId steuert ferner das aufeinanderfolgende Auslesen von Daten aus dem zyklischen Prozedurpuffer 36 und die Freigabe der Daten- und Prozedurmultiplexer 34, 35, 39 und 40 bezüglich des Quellenbusses 33 für die nachfolgende Verwendung durch den inneren Bus 14.
Das nächste Feld in Form des Taktfeldes CK umfaßt die Bits 8 und 9 des Steuerspeichers und wird benutzt, um die Taktgeschwindigkeit der Zentraleinheit CPU zu steuern. Genauer gesagt wird das Intervall zwischen aufeinanderfolgenden Taktimpulsen in der Zentraleinheit CPU gesteuert. Jeder Firmwareschritt besitzt eine zugeordnete Taktgeschwindigkeit, die dem Aufwand dieses Schrittes angepaßt ist. Im System der vorliegenden Erfindung gibt es vier mögliche Intervalle
3114334
zwischen aufeinanderfolgenden Taktimpulsen beispielsweise 85, 100, 115 und 130 ns. Welcher dieser Taktimpulse für einen Firmwareschritt benutzt wird, wird durch das CK-FeId dieses Firmwareschrittes gesteuert.
Das nächste Feld betrifft das TC-FeId und umfaßt die Bits 10-15 in dem Steuerspeicher. Dies ist ein 6 Bit-Feld,welches eine der 64 möglichen Logikfunktionen innerhalb der Zentraleinheit CPU für den Test und die Steuerung der Firmwareeequenz auswählt.
Das nächste Feld ist das BR-FeId und umfaßt die Bits 17 bis Es wird benutzt, um den Typ der vorzunehmenden Maßnahme zu steuern, der sich als Ergebnis einer Testbedingung ergibt. In Abhängigkeit von der Art der aufgetretenen Verzweigung kann entweder einfach zwischen zwei Firmwareschritten ausgwwählt werden oder zwischen einem Firmwareschritt und einer sogenannten Steuerspeicher-Aufsplitterung gewählt werden, wobei die nächste Adresse durch den Inhalt des F-Register gesteuert wird. Die Steuerspeicheraufsplitterung beinhaltet die Erzeugung einer nächsten Adresse innerhalb einer Vielzahl von Steuerspeicheradressen basierend auf dem Zustand von einem oder mehreren Logikelementen in der Zentraleinheit CPU.
Das nächste interessierende Feld ist durch das TP-FeId mit dem Bit 21 gegeben, wobei durch dieses Testpolaritätsfeld vorgegeben wird, ob die Testbedingung auf Vorhanden oder Nichtvorhanden geprüft wird.
Das NA-FeId mit den Bits 22 bis 31 wird benutzt, um wenigstens eine von 2 Adressen zu erzeugen, die durch alle Verzweigungen ausgewählt werden. Die andere Adresse wird entweder
J1 I4JJ4
ebenfalls von dem gleichen NA-FeId abgeleitet oder von der zuvor erwähnten Steuerspeicheraufsplitterung.
Das nächste Feld mit den Bits 32 bis 39 bildet das S ceuerfeld für das F-Register und ist in zwei Felder mit jeweils 4 Bits unterteilt, die als F- und FK-FeId bezeichnet sind.. Die Felder F und FK benutzt,um das Laden und das Ansteuern der verschiedenen Elemente in dem F-Register und in dem Bereich des F-Busses zu steuern. D.h.sie werden benutzt, um die Ansteuerung der Einrichtungen F1 und AS1, der Untereinheiten des F-Registers 38 und des Multiplexers 4 3 zu steuern. Die zu ladende Einheit und die Quelle für das Laden der Einheit werden durch die Felder F und FK gesteuert.
Das nächste Feld mit den Bits 40 bis 47 betrifft das Konstantenfeld K, das zur Ansteuerung des I-Busses 14 benutzt wird. Es ist ein 8 Bit-Feld, das die rechten 8 Bits für alle Konstanten liefert, die dem I-Bus zugeführt werden. Die linken 16 Bits der Konstante werden durch das I-Busfeld gesteuert, das noch näher erläutert wird. Das K-FeId ist direkt mit der Konstantßneinhei,t 70 verbunden.
Das nächste Feld in dem Steuerspeicher mit den Bits 48 bis 6 betrifft in erster Linie die Adressierung und Steuerung der Speicher DRAM-I1 und BRAM-12. Das TW-Feld mit zwei Bit wird benutzt,um das Einschreiben in den Speicher DRAM zu steuern, wobei das eine Bit die Schreiboperationen in der linken Hälfte (8 signifikanteste Bits) und das andere Bit die Schreiboperationen in der rechten Hälfte (16 geringwertigste Bits) steuert. Das nächste Bit 50 in dem BW-Feld wird benutztem Schreiboperationen in beiden Teilen des Speichers BRAM zu steuern, in die immer gemeinsam eingeschrieben wird. Das
3114334
nächste DS-FeId weist eine Länge von 5 Bit auf und liefert die Auswahl eines von 32 Registern in dem Speicher DRAM-11. Das DM-Feld mit den Bits 56 und 57 ist das dem Speicher DRAM zugeordnete Auswahlmodifikationsfeld und gestattet die Auswahl des Speichers DRAM direkt oder die Auswahl irgendeiner von drei unterschiedlichen Funktionen des F-Registers 38 für eine qualifizierte Adressierung des Speichers DRAM.
Das nächste interessierende Feld ist das Auswahlfeld BS mit den Bits 60-63, das für die Auswahl eines der 16Register in dem Speicher BRAM benutzt wird. Das die beiden Bits 58 und umfassende Feld bildet das Auswahlmodifikationsfeld BM für die Adressierung des Speichers BRAM. Es wirkt in gleicher Weise wie das Feld für die Adressierung des Speichers DRAM, wobei jedoch aufgrund der getrennten Felder die Funktionen hinsichtlich der beiden Speicher BRAM und DRAM unabhängig voneinander ausgewählt und modifiziert werden können.
Das nächste interessierende Feld ist das GB-FeId mit einer Länge von 7 Bit (Bits 65-71) und es wird benutzt, um eine große Anzahl von Mehrzweck-Microoperationen innerhalb des Prozessors zu steuern. Diese Operationen umfassen das Takten verschiedener bistabiler Flip-Flops und die Freigabe von verschiedenen Steuerfunktionen. Das Feld wird ferner benutzt, um von der Zentraleinheit CPU den Zugriff zu der Steuerkonsole für die Eingabe und Ausgabe von Daten zu steuern und um verschiedene darin enthaltende Flip-Flops zu steuern.
Das nächste Feld RB mit den Bits 72 und 33 dient der Steuerung der Dateneingabe auf den R-Bus 13, wobei ein Bit den Speicher BRAM und das andere Bit den Speicher DRAM steuert.
3 !
Das ΒΑ-Feld mit den Bits 74 bis 79 wird benutzt,um die Funktionen der Recheneinheit BALU 55 zu'steuern, die mit ihren Eingängen an den I-Bus und W-Bus angeschlossen ist und zur Ansteuerung des Y-Registers 24 benutzt werden kann. Die 6 Bit dieses Feldes werden folgendermaßen benutzt: eines dient einer Übertragseingabe in die Einheit BALU, eines dient der Logik/Arithmetiksteuerung und die anderen 4 dienen der Auswahl bestimmter Funktionen.
Das nächste interessierende Feld ist das ID-FeId mit den Bits 80 bis 83 und dieses wird benutzt,um die Freigabe der Datenquelle für den inneren Bus 14 zu steuern. Dieses Feld kann die Datenverriegelungen freigeben/ den Inhalt des F-Registers um das Vorzeichen erweitern, eine Konstante auswählen oder den Speicher BRAM in verschiedenen Kombinationen an den I-Bus anschalten. Das nächste Feld SH mit den Bit 84-89 wird benutzt, um sowohl die Verschieber als auch die Anschaltung des W-Busses zu steuern, was zuvor erläutert wurde. Diese 6 Bits gestatten dem System in großem Umfang eine autonome Steuerung darüber, welche Register für den W-Bus freigegeben werden und ob das Q-Register geladen wird oder nicht und in welcher Richtung die Verschieber den Operanden bei seinem Durchlauf verschieben.
Das letzte Feld DA mit den Bits 90-95 dient der Funktionssteuerung der Einheit DALU 15, wobei die 6 Bit eine anlöge Funktion wie im Falle des ΒΑ-Feldes aufweisen. D.h. ein Bit dient der Ubertragseingabe, ein Bit wählt zwischen Logik und Arithmetiksteuerung aus und die anderen vier Bits dienen der Auswahl spezieller Funktionen.
Der Steuerspeicher für die Zentraleinheit CPU besteht in
31U3G4
Wirklichkeit aus zwei Steuerspeichern, nämlich einer oberen Speicherbank 80 und einer unteren Speicherbank 81. Die obere Speicherbank wird durch den Generator 44 für die nächste Adresse adressiert und die untere Speicherbank wird direkt durch einen Teil des sodann vorliegenden Inhalts des laufenden Steuerspeicherwortes adressiert. Im Falle der mehr 5e~ bräuchlichen Arten von Verzweigungen benutzen beide Speicher das NA-FeId des Steuerspeicherwortes als Basis für die nächste Adresse, so daß die beiden Adressen für die obere und untere Speicherbank im wesentlichen identisch sind. Im Falle von anderen Verzweigungen, bei denen zwischen einer nächsten Adresse und einer vom Festwertspeicher erzeug ten Aufsplitterung ausgewählt wird, empfängt die untere Speicherbank das NA-FeId unverändert von dem laufenden Steuerspeicherwort, während die obere Speicherbank die aufgesplittete Adresse von dem laufenden Steuerspeicherwort empfängt. Der Steuerspeicher ist auf diese Weise unterteilt,so daß das System einen gleichzeitigen Zugriff auf beide möglichen durch die nächste Adresse vorgegebenen Steuerspeicherworte vornehmen kann und die Entscheidung darüber, welches Wort zu benutzen ist, solange zurückstellen kann, bis der laufende Steuerspeicherschritt beinahe beendet ist. Die Entscheidung erfolgt somit unmittelbar vor dem Eintakten der Daten in das Steuerregister 82. Die Einzelheiten des Steuerspeichers sollen nachstehend noch erläutert werden.
Die Art und Weise, in der die Zentraleinheit CPU und die Firmware zusammenwirken, um bestimmte typische Zentralprozessoroperationen auszuführen, soll nachstehend erläutert werden. Diese Operationen umfassen beispielsweise a) das Lesen eines Wortes aus dem Speicher; b) das Errechnen einer nächsten Adresse für das Lesen eines weiteren Wortes vom Speicher; c) das Schreiben eines Wortes in den Speicher und d) die Aus-
31H934
führung eines bestimmten iterativen Algorithmus, bei dem die Operationen gänzlich innerhalb der Zentraleinheit CPU ablaufen. Diese Operationen sind typisch und sollen nachstehend beschrieben werden.
Im Falle des Auslesens eines Wortes aus dem Speicher wird während eines Steuerspeicherschrittes durch das Steuerspeicherwort die virtuelle Speicheradresse des Wortes von dem Speicher BRAM 12 auf den RAM-Bus 13 über die Felder RB, BS und BM freigegeben. Sodann gibt das SH-FeId den äußeren Bus und den W-Bus als Quellen frei, so daß der RAM-Bus über den Selektror 20 an den äußeren Bus 17 und sodann unverändert über den Verschieber 19 an den W-Bus 84 angeschaltet werden kann. Der W-Bus bildet einen Eingang für die Einheit BALU-55, die durch das ΒΑ-Feld in die Lage versetzt wird, den W-Buseingang direkt zu ihrem Ausgang weiterzuschalten. Zur gleichen Zeit veranlaßt das LB-FeId das Laden des Y-Registers 24 und somit die übertragung der Adresse in dieses Register.
Im nächsten Firmwareschritt richtet das LB-FeId eine Anforderung an den internen Bus, wodurch angezeigt wird, daß eine Speicheranforderung vorliegt und daß die durch den internen Bus gelieferte Adresse für diese Anforderung benutzt werden sollte. Die Anweisungsleitungen 71, die an die Felder F und FK angeschlossen sind, zeigen in der Einheit 72 die Speicher-Leseanforderung an. Der Adressenmultiplexer 25 gestattet die Ausgabe des Inhalts des Y-Registers auf dem internen Bus über die 24 Adressleitungen. Die Pufferspeicher/Speicherverwaltungseinheit, die alle Aktivitäten auf dem internen Bus überwacht und steuert, bestätigt die Anforderung, während die Zentraleinheit
ο ι ι / η ο /
O ! K ο O
-34-
CPU zu dem nächsten Firmwareschritt fortschreitet. Im nächsten Firmwareschritt gibt sodann das Feld für den internen Bus einen Stillstand vor, wodurch angezeigt wird, daß die Zentraleinheit CPU diesen Firmwareschritt nicht verlassen sollte, bis das Ende des internen Bus-Zyklus festgestellt worden ist, wodurch die Daten von der Pufferspeicher/Speicherverwaltungseinheit über den internen Bus in den CPU-Datenpuffer zurückgeführt werden. Sobald diese Rückführung festgestellt ist, wird der Stillstand beendet und die Zentraleinheit CPU tritt in den vierten Schritt des Lesezyklus ein.
Im vierten Schritt gibt die Firmware ein LB-FeId vor, durch welches die Daten in dem Datenpuffer benutzt werden und auf den inneren Bus für eine Verwendung durch die Zentraleinheit CPU gegeben werden. Das LB-FeId gibt somit entweder den DA-Treiber 34 oder den DW-Treiber 35 in Abhängigkeit davon frei, ob ein wort mit einer Länge von 16 Bit oder eine Adresse mit einer Länge von 24 Bit auf dem Bus angefordert wird. Das Feld für den I-Bus legt sodann seinerseits fest, daß alle 24 Bit oder 16 Bit vorzeichenerweitert auf 24 des Quellenbusses für den inneren Bus freigegeben werden. Nimmt man an, daß auf dem inneren Bus ein von dem Datenpuffer zurückempfangenes 16 Bit-Wort vorliegt, so wisi das DA-FeId benutzt, um der Einheit DALU das Lesen des inneren Busses zu ermöglichen und sodann werden die Felder DW, DS und DM benutzt, um eines der 32 Register in dem Speicher DRAM zu adressieren und in dieses hineinzuschreiben. Hierdurch ist vierte Schritt dieser Steuerfolge beendet, wobei im ersten Schritt das Y-Register geladen wurde, im zweiten Schritt die Leseanforderung erfolgte, im dritten Schritt auf zurückkommende Daten gewartet wurde und im vierten Schritt die Daten genommen und in eines der Register innerhalb der CPU gegeben wurden.
O ι I i; j J
— 35—
Eine zweite typischerweise auszuführende Operationsfolge betrifft die Manipulation von Operanden in einer arithmetischen Operation, beispielsweise die Addition eines aus dem Speicher abgerufenen Operanden mit dem Inhalt eines Datenregisters und sodann nach der Addition die Zurückführung des Ergebnisse in das Datenregister und die Ablage in dem Schreibdatenpuffer, so daß das Ergebnis nachfolgend in den Speicher zurückgeschrieben werden kann. Diese Operationsfolge beginnt nach dem Stillstand in der zuvor geschilderten Operation. Dieser Schritt gestattet die Ausgabe der Daten, die im Falle eines Wortoperanden aus einem Wort bestehen,aus dem Datenpuffer 31 über den L-Bus und die Datenmultiplexer 35 zu dem Quellenbuc. Sodann legt das I-Busfeld fest, daß der Inhalt des Quellenbusses vorzeichenerweitert über die Vorzeichenerweiterungbeinrichtung52 und die Datenverriegelungen 51 auf den inneren Bus ge geben werden kann. Zur gleichen Zeit legt das Steuerfeld für den R-Bus fest, daß der Inhalt des speziell interessierenden Datenregisters in dem Speicher DRAM-11 für den R-Bus 13 freigegeben wird. Das DA-FeId, d.h. das DALU-Steuerfeld versetzt sodann die Einheit DALU in die Lage ,die 24 Bit auf dem R-Bus 13 zu den 24 Bit auf dem I-Bus 14 zu addieren. Die Logik 15 gibt somit an ihrem Ausgang 24 die Summe darstellende Bits aus. Das Bit DW zeigt an, daß das Ausgangssignal der Logikeinheit DALU in den Speicher DRAM-11 zurückzuschreiben ist.
Zur gleichen Zeit wird das Ausgangssignal der Logikeinheit DALU über das SH-FeId für den W-Bus freigegeben. Dieses Feld zeigt an, daß der Selektor 20 an den äußeren Bus angeschaltet wird und in.die Lage versetzt wird, das Ausgangssignal der Logikeinheit DALU anstelle des R-Busausganges für diesen Zweck auszuwählen. Zur gleichen Zeit wird der Verschieber 19 in die Lage versetzt, den Inhalt des äußeren Busses ohne Änderung zu dem Schreibbus 84 weiterzureichen. Das gleiche LB-FeId ,
3114334
das denSelektor DW-35 für den Quellenbus 3 3 festlegte, legt ebenfalls fest, daß der Schreibbus über den Selektor 29 an die linke Hälfte des W-Registers 28 gelegt wird. Dies findet alles in einem einzigen Firmwareschritt statt. Da es sich um eine Addition handelt, wird voraussehbar der tiberlauf bei der Addition durch einen Test geprüft,der durch die Testlogik 30 festgelegt ist. Die Logik für die nächste Adresse erzeugt eine Adresse/ durch die eine bestimmte Eintrittstelle vorgegeben wird, wenn der Operand sofort in den Speicher zurückzuschreiben ist. Die andere Adresse hinsichtlich der unteren Speicherbank wird für einen nächsten Schritt erzeugt, durch den sodann der Überlaufindikator in dem I-Register 57 gesetzt wird. Wenn kein überlauf vorlag, so wird das I-Register automatisch gelöscht.
Die dritte Operation betrifftdas Einschreiben eines Operanden in den Speicher. Dies erfordert drei Firmwareschritte. Im ersten Schritt wird die Adresse,unter der der Operand einzuschreiben ist, in das Y-Register 24 geladen. Im zweiten Schritt wird der einzuschreibende Operand in dem W-Register 28 abgelegt., Im dritten Schritt gibt das LB-FeId eine interne Busanforderung vor, die einen Speicher-Schreibzyklus festlegt, wobei die Pufferspeicher/Speicherverwaltungseinheit über den internen Bus diese Anforderung empfängt und bearbeitet.
Im ersten Schritt,durch der^f-Register 24 geladen wird, wird die Adresse von einem der 16 Speicherplätze in dem Speicher mit wahlfreiem Zugriff BRAM erhalten. Dies geschieht, indem der I-Bus über das I-Busfeld in die Lage versetzt wird, den Ausgang des Speichers BRAM zu überwachen. Das B-Auswahlfeld zeigt an, welches der 16 Register in dem Speicher BRAM für diesen Zweck adressiert wurde. Die Einheit DALÜ-55, die durch
Q 1 1 / ■"! Q /
Oi 14 jo LY -37-
das ΒΑ-Feld gesteuert wird, wird in die Lage versetzt, den Informationsinhalt (24 Bit) auf dem inneren Bus zu ihrem Ausgang weiterzureichen. Das LB-FeId kann das Laden des Y-Registers vorgeben. Da der Eingang des Y-Registers durch den Ausgang der Einheit BALU vorgegeben wird, bedeutet dies die Uberragung des Inhalts des ausgewählten BRAM-Registers in das Y-Register. Der nächste Steuerspeicherschritt entnimmt den Operanden an seinem Urspung, wo immer der sein mag, in diesem Fall beispielsweise aus einem der 32 DRAM-Speicherplätze, Das DS-FeId wählt b-ei Freigabe einen der 32 DRAM-Speicherplätze aus. Das RB-FeId ermöglicht die Anschaltung des Speichers DRAM an den R-Bus. Das SH-FeId wählt über den Selektor den RAM-Bus für den äußeren Bus 17 aus und der äußere Bus wird für den Schreibbus 84 über den Verschieber 19 ausgewählt, wobei keine Verschiebung stattfindet. Das LB-FeId gibt das Laden der linken Hälfte des W-Registers vor. Dies geschieht, indem der W-Selektror 29 in die Lage versetzt wird, die rechten zwei Drittel des Schreibbusses für die linke Hälfte des W-Registers freizugeben, wodurch das W-Register seine linke Hälfte laden kann. Schließlich wird der dritte Firmwareschritt ausgeführt. Bei diesem Firmwareschritt besteht die einzig wichtige Operation darin, daß das LB-FeId einen Schreibzyklus des internen Busses zu dem Speicher festlegt. Hierbei werden die Bits F und FK auf den Anweisungsleitungen zu dem internen Bus benutzt, um der Pufferspeicher/Speicherverwaltungseinheit anzuzeigen, daß dies eine Speicher-Schreibbperation ist. Die Adresse wird von dem Y-Register 24 über den Selektor 25 für die virtuelle Adresse für den internen Bus freigegeben. Die Daten werden aus dem W-Register 28 auf den internen Bus gegeben. Die Pufferspeicher/Speicherverwaltungseinheit, die alle internen Busübertragungen behandelt/ erkennt diese Übertragung als einen Speicher-Schreibzyklus, wobei sie die Adresse aufnimmt und zusammen mit den Daten zu dem Speicher sendet und dem Speicher an dem Systembus anzeigt, daß dies eine Speicher-Schreiboperation ist.
Die vierte Folge von typischen Operationen, die die Zentraleinheit CPU ausführen kann, betrifft die Verschiebung eines Operanden mit Doppelpräzision um einige Bits nach links oder nach rechts. Nimmt man an, daß sich beide interessierende Operanden in dem Speicher BRAM befinden, so wird durch den ersten Firmwareschritt die übertragung des rechten Operanden zu dem Q-Register ausgelöst .Dies geschieht folgendermaßen. Das BS-FeId adressiert einen der 16 Speicherplätze,der diesen Operanden in dem Speicher BRAM-12 enthält. Das R-Busfeld, das den RAM-Bus 13 steuert, veranlaßt die Aufnahme des Ausgangssignales des Speichers BRAM anstatt des Ausgangssignales von dem Speicher DRAM. Das SH-FeId ermöglicht die Übertragung der Information auf dem R-Bus zu dem äußeren Bus über den Selektor 20 und es Legt ferner fest, daß das Q-Register und der W-Bus 'beide mit dem Informationsinhalt des äußeren Busses beaufschlagt werden und dessen Inhalt in das Q-Register eingetaktet wird. Hierdurch wird eine übertragung des in dem Speicher BRAM adressierten Operanden zu dem Q-Register veranlaßt. Der nächste Schritt bzw. die nächsten Schritte sind jene j in denen die Verschiebungen tatsächlich ausgeführt werden. In diesem Schritt wird das andere der beiden Register, das den zweiten Operanden in dem Speicher BRAM enthält, durch das BS-FeId adressiert und der Inhalt wird über das RB-FeId auf den RAM-Bus 13 gegeben. Sodann wird der RAM-Bus über den Selektor 20 an den äußeren Bus geschaltet. Das SH-FeId nimmt irgendeinen Wert in Abhägigkeit davon ein, in welcher Richtung und um wieviele Bits die Verschiebung vorzunehmen ist. Das SH-FeId kann eine Links- oder Rechtsverschiebung um entweder 1,2 oder 4 Bits auswählen. In jedem dieser Fälle kann das Q-Register als eine an den äußeren Bus angeschlossene Erweiterung betrachtet werden, wodurch ein Operand mit 32 Bit gebildet wird. Tatsächlich ist es ein Operand mit 40 Bit, aber die linken 8 Bits des äußeren Busses werden nicht beachtet.
O ι I -ν V^ ο H
Dieser 32 Bit-Operand wird entweder nach links, oder nach rechts verschoben, wie dies durch das spezielle SH-FeId vorgegeben ist. Die 16 rechten Bits werden in das Q-Register zurückgeführt und die 16 linken Bits zusammen mit den 8 unbeachteten Bits werden zu dem W-Bus übertragen. Dies wird durch das SH-FeId gesteuert, das die exklusive Steuerung über die Verschiebedistanz besitzt.
Der Operand wird somit von dem äußeren Bus zu dem W-Bus verschoben und aus dem Ü-Register in das Q-Register zurückgeführt. Das SH-FeId verursacht das erneute Laden des Q-Registers mit dem verschobenen Operanden, während zur gleichen Zeit das BW-Feld das Einschreiben der Information auf dem W-Bus in den adressierten BRAM-Speicherplatz veranlaßt. Die Inhalte der Register B und Q sind somit verschoben worden und in die Register B und Q zurückgeführt worden. Die speziellen Endeffekte, die dieser Verschiebung in Form einer offenen, kreisförmigen oder arithmetischen Verschiebung zugeordnet sind, stellen eine Funktion von Steuer-Flip-Flops in der Zentraleinheit CPU dar. Dieser Schritttyp, durch den die tatsächliche Verschiebung ausgeführt wird, benutzt verschiedene Kombinationen zu verschiedenen Zeitpunkten, wobei beispielsweise eine Verschiebung u.m 5 Bits nach links durch einen ersten Schritt mit einer Verschiebung nach links um 1 Bit und einen nachfolgenden Schritt mit einer Verschiebung um 4 Bit nach links ausgeführt wird. Eine Verschiebung nach rechts um 3 Bit erfordert eine Verschiebung nach rechts um 2 Bit und sodann eine Verschiebung nach rechts um 1 Bit.
Nachdem die endgültige Verschiebung ausgeführt worden ist, d.h. nachdem die Operanden nunmehr in dem adressierten Speicherplatz des Speichers BRAM und dem Q-Register ausgerichtet sind, ruft sodann der endgültige Schritt keine Ver-
schiebung hervor, sondern es wird der Inhalt des Q-Registers zurück in den BRAM-Speicherplatz geführt, aus dem er ursprünglich geladen wurde. Dies geschieht folgendermaßen. Das I-Busfeld legt fest, daß der I-Bus durch das Q-Register (16 Bit erweitert um 8 Bit mit dem Binärwert "0") angesteuert wird. Die Einheit DALU 15 wird durch das DA-FeId gesteuert , so daß ihr Eingang unverändert als Ausgang zu dem I-Bus weitergeleitet wird. Das SH-FeId ist so gewählt, daß derAusgang der Einheit DALU unverändert über den Selektor 20 zu dem äußeren Bus 17 gelangt und von dort unverändert über den Verschieber 19 zu dem W-Bus 84. Das BW-Bit 50 in dem Firmwarewort ist sodann so gesetzt, daß es das Laden des Speichers BRAM von dem W-Bus gestattet und die BS-Bits geben durch ihren Zustand vor, welchem der 16 Speicherplätze in dem Speicher BRAM der verschobene Operand zuzuführen ist.
Dies geschieht alles in einer Reihe von beispielsweise 3 oder mehr Firmwareschritten. Ein Schritt wird benutzt; um das Q-Register zu laden und einen Operanden mit 40 Bit zu bilden, ein oder mehrere Schritte führen die Verschiebung diese Operanden in der erforderlichen Weise aus und sodann dient ein Schritt der Rückführung des Inhalts des Q-Registers ( der rechten 16 Bit) zu dem Speicher BRAM und somit der Vervollständigung der Operation.
Figur 5 zeigt die Organisation der oberen und unteren Speicherbank der Steuerspeicher PROM 80 und 81. Diese Figur zeigt insbesondere die Art und Weise,in der diese Speicher paarweise miteinander verbunden sind^um eine maximale Geschwindigkeit zu erzielen. Jede Speicherbank des Steuerspeichers umfaßt einen oder mehrere Speicher PROM, wobei jeder Speicher PROM mehrere Chips aufweist. Beispielsweise kann die Speicher-
31U-934
kapazität einer jeden Speicherbank 1044 (1K) adressierbare Speicherplätze umfassen, wobei jeder Speicherplatz 96 Bits beinhaltet. Dies kann durch 24 Chips mit jeweils 1K Speicherkapazität geschehen, wobei jeder Speicherplatz des Chips 4 Bit speichert. Zur Erhöhung der Operationsgeschwindigkeit besitzt jede Speicherbank wenigstens 2 Speicher PROM, wobei ein Speicher PROM schneller (geringere Adressen-Fortschreitungszeit als der andere in jeder Speicherbank ist,
um die Fortpflanzungsgeschwindigkeit in anderen Elementen innerhalb des Steuerspeichers zu berücksichtigen und zu kompensieren. Zwei Speicherbänke werden primär verwendet,um wirksam Verzwei'jungsentscheidungen zu treffen, die aus dem laufender Firmwarewort und von dem Generator 44 für die nächste Adresse abgeleitet werden. Eine Speicherbank ist so aufgebaut, daß sie direkt durch das Firmwarewort adressiert werden kann, während die andere Speicherbank (beispielsweise die obere Speicherbank) so aufgebaut ist, daß sie durch das Firmwarewort und/oder eine abgeleitete Funktion des Firmwarewortes und verschiedene Logikelemente innerhalb der Zentraleinheit CPU-100 adressiert werden kann. Demgemäß erfordert die obere Speicherbank einen Multiplexeingang und einer der zwei Speicher PROM in der oberen Speicherbank ist mit einer schnelleren Adressen-Fortpflanzungszeit gegenüber irgendeinem der anderen Speicher PROM in dieser Speicherbank versehen. Praktisch geschieht dies durch die Verwendung von zwei Speichern PROM mit jeweils einer erhöhten Operationsgeschwindigkeit, d.h. mit einer geringeren Adressen-Fortpflanzungszeit.
Der Zweck der Paarbildung der Steuerspeicher PROM ist in der Verringerung der Zeit zu sehen, die erforderlich ist, um die nächste Steuerspeicheradresse zu erzeugen, die zu dieser Adresse gehörenden Daten auszuwählen und diese an dem Haupt-Startregister des Steuerspeichers MLR-82 zur Verfügung zu stellen. Dies geschah in der Vergangenheit durch die Verwendung einer einzigen Gruppe von Steuerspeicher-PROM und durch Aus-
31US34
wahl der ihnen zugeführten Adressen. In diesen Fällen ist die für die Fortpflanzung von Daten durch den Steuerspeicher erforderliche Zeit durch die Adressen-Auswahlzeit gegeben/ d.h. durch die Zeit zwischen der Änderung der Adresse am Eingang des Speichers PROM bis zu der Zeit zu der sich der Ausgang des Speichers stabilisiert hat. Für typische Steuerspeicher PROM ist diese Zeit sehr viel länger als die sogenannte "Freigabezeit". Steuerspeicher PROM mit einem Freigabeeingang können typischerweise sehr viel schneller ein- und ausgeschaltet werden als adressierte Ausgangssignale erzeugt werden. Die grundlegende Lösung liegt daher hier in der Trennung der Steuerspeicher-PROM in zwei Gruppen oder Speicherbänke, so daß die entsprechenden Adressen für jede Gruppe beispielsweise für eine von zwei Verzweigungsadressen durch die Steuerspeicherchips
werden
gleichzeitig durchlaufen»können, so daß die Entscheidung darüber, welche Adresse zu verwenden ist, bis zum letzten Moment zurückgestellt werden kann, wobei die Entscheidung dann verwirklicht wird, indem der Ausgang der einen oder anderen der beiden Speicherbänke freigegeben wird.
Bei der Zentraleinheit CPU gemäß der vorliegenden Erfindung, ebenso bei einigen anderen Computernj betreffen alle sogenannten ·— Verzweigungsoperationen eine Auswahl einer Adresse aus einem Paar von Adressen, wobei eine Adresse explizit durch das Steuerspeicherwort in dem laufenden Schritt vorgegeben wird und die andere Adresse mehr oder weniger indirekt aus Daten erzeugt wird, die in dem laufenden Schritt verfügbar sind. In der erfindungsgemäßen Zentraleinheit CPU gehört dieses Adressenpaar in der Weise zwangsläufig- zusammen t als alle Verzweigungen die Auswahl zwischen zwei Adressen betreffen, wobei die eine Adresse der unteren Speicherbank und die andere Adresse der oberen Speicherbank zugeordnet ist. Die untere Speicherbank kann Adressen in dem Hexadezimalbereich zwischen 000 und 3FF benutzen und die obere Speicherbank benutzt derartige Adressen in dem Hexadezimalbereich zwischen 400 und 7FF.
3114334
Die bei dieser unterteilung des Steuerspeichers verwendete Struktur ist aus dem Blockdiagramm in Figur5ersichtlich. Der Steuerspeicher ist hierbei in fünf Gruppen von Steuerspeicherelementen unterteilt , die die Speicher PROM 251 bis 255 umfassen. Die Speicherelemente 251 und 252, die,wie in Klammern angeschrieben insgesamt 24 Steuerspeicherchips (19 in dem Element 251 und 5 in dem Element 2 52) umfassen, enthalten die Daten für die untere Speicherbank des Steuerspeichers. Die Speicherelemente 253, 254 und 255 umfassen insgesamt 29 Chips und enthalten die Daten für die obere Speicherbank. Drei Arten integrierter Schaltkreise werden verwendet,, um diese Elemente zu verwirklichen. Das Element 251 besteht aus 19 Steuerspeicherchips mit jeweils 1K χ 4 Bit und einer typischen Adressen-Fortpflanzungszeit von 60ns. Die Elemente 252 und 253 bestehen aus Speicherchips für 1K χ 4 Bit mit einer typischen Adressen-Fortpflanzungszeit von 50ns. Die Elemente 254 und 255 bestehen aus Steuerspeicherchips für 512 χ 4 Bit mit einer typischen Adressen-Fortpflanzungszeit von 40ns.
Es gibt zwei Gründe dafür, daß Chips oder Schaltkreise mit unterschiedlichen Fortpflanzungszeiten in dieser Logik verwendet werden. Die ausgewählten Elemente 253, 254 und 255 sind schneller als die Elemente 251 und 252,um die Fortpflanzungszeit durch den Adressenmultiplexer 256 in der oberen Speicherbank· zu kompensieren. Zusätzlich sind die Elemente 252, 254 und 255 schneller gegenüber den Elementen 251 und 253 im Hinblick auf die Fortpflanzungsverzögerung der Vorschaltlogik 259, die in Reihe zu dem Datenregister MLR 82 geschaltet ist.
Der Adressenmultiplexer 256 der oberen Speicherbank innerhalb des Generators 44 für die nächste Adresse wird benutzt,um eine der beiden Adressen zu liefern, die zwischen jeder Firmwareverzweigung ausgewählt werden. Die von der unteren Speicherbank
benutzte Adresse ist mehr oder weniger direkt auf die nächste Adresse bezogen, die sich in dem Steuerspeicherwort (NA-FeId) befindet und die die explizit ausgewählte Adresse in diesem Steuerwort darstellt. Die andere für eine Verzweigung benutzte Adresse,die von der oberen Speicherbank benutzt wird, ist eine logische Ableitung von dem NA-FeId bzw. eine logisch erzeugteAdresse, wobei dies über Festwertspeicher PROM oder andere Logikkreise in der Zentraleinheit CPU geschieht, wie dies durch die drei Eingänge an dem Multiplexer 256 dargestellt ist. Die Eingänge werden in Übereinstimmung mit dem Verzweigungstyp ausgewählt. Diese andere Logik, d.h. die Festwertspeicher PROM und der Multiplexer der die Logik auswählt, erfordern eine zusätzliche Fortpflanzungszeit, die in dem Adressenweg in der unteren Speicherbank nicht benötigt wird. Der Unterschied zwischen diesen zwei Adresswegen wird durch den Unterschied in der Geschwindigkeit der Steuerspeicherchips kompensiert, die dazu in Reihe geschaltet sind. Bei Benutzung der unteren Speicherbank, die direkten Adressenweg besitzt, müssen nur einige der Festwertspeicher PROM eine erhöhte Geschwindigkeit aufweisen, während alle Festwertspeicher PROM eine ,erhöhte Geschwindigkeit aufweisen müssen, wenn ein Multiplexer, wie der Multiplexer 256 f für beide Speicherbänke benutzt wird, um die gleiche Fortpflanzungszeit vorzugeben.
Die Vorschaltlogik 259, die an die schnellsten Festwertspeicher PROM in jeder Speicherbank angeschlossen ist,d.han die Elemente 252, 254 und 255,W!^ benutzt, um im voraus eine logische Decodierung des nächsten Steuerspeicherwortes vor der Verriegelung in dem Datenregister MLR-82 auszuführen. D.h, daß diese Logikdie Auswahlmodifikationslogik 53 umfassen kann, die benutzt wird, um die Adresseingänge für die Speicher DRAM11 und BRAM12 zu erzeugen, wobei diese Adresseingänge früh in dem
31U934
Steuerspeicherzyklus verfügbar sein müssen. Insbesondere können die Adresseingänge nicht erst erzeugt werden, nachdem der Haupttakt die Daten für die Eingabe in das Datenregister MLR freigegeben hat, sondern sie müssen am Eingang des Registers MLR erzeugt werden, so daß sie bei einer Taktumschaltung verfügbar sind.
Die Quellen für die zwei Adressen, die für die Auswahl eines Steuerspeicherwortes in den beiden Speicherbänken benutzt werden, sind folgende. Die untere Speicherbankadresse NA kommt direkt von dem Steuerspeicherwort für den laufenden Firmwareschritt. Somit ist sie verfügbar, sobald dieses Steuerspeicherwort in das Datenregister MLR 82 eingetaktet ist. Die Adresse NA bildet einen Eingang für beide Elemente 251 und 252. Die obere Speicherbankadresse am Ausgang des Multiplexers 256, d.h. die Adresseingänge für die Elemente 253,254 und 255, ist durch eine logische Ableitung aus einer Anzahl von Logikfunktionen innerhalb der Zentraleinheit CPU gegeben. Der Adressenmultiplexer kann im vorliegenden Ausführungsbeispiel 8 unterschiedliche Funktionsadressen erzeugen, die von der oberen Speicherbank "benutzt werden. Diese sind das Ergebnis von 8 möglichen Verzweigungstypen, die in dem Steuerspeicherwort festgestellt werden können.
Diese Verzweigungstypen sind mit XO, X1, XA, XB, XR,XE, XW und XL bezeichnet und in der Tabelle gemäß Figur 6 dargestellt. Die Verzweigungstypen XO und X1, die die häufigsten Verzweigungen darstellen, sind grundsätzlich eine direkte logische Funktion des NA-Feldes. Solche Verzweigungstypen verwenden das NA-FeId,wobei das niedrigrangigste Bit NA19 bzw. NA(A) unverändert bleibt NA(A) oder komplementiert wird NA(A). Die anderen sechs Verzweigungen werden für bestimmte Zwecke verwendet. Die XA-Verzweigung wird verwendet/um die geeignete Startadresse auzuwählen und die Decodierung eines neuen
31H934
Befehls-Operationscodes auzulösen. Die ΧΒ-Verzweigung wird benutzt, um die anfängliche Decodierung einiger der Adresssilben auszuführen, die in der Zentraleinheit CPU möglich sind. Die XA-Verzweigung wird benutzt, um die Startadresse für die Ausführung der Leseroutine für Operanden in den meisten Fällen auszuwählen, oder um bestimmte Befehle zu bearbeiten, die sofort ausgeführt werden können. Die XE-Verzweigung wird benutzt, um zwischen den Startadressen der Firmwareroutinen auszuwählen, die für die Bearbeitung der individuellen Befehlsalgoryt hmen verwendet werden. Die XW-Verzeigung wird für die Auswahl einer Routine aus einer Anzahl von Routinen benutzt, die für die Speicherung des Operanden verwendet werden. Die XL-Verzweigung wird benutzt,um eine vereinfachte Firmwareaufsplitterung unter Steuerung durch die Firmware zu ermöglichen. Diese Verzweigung benutzt den Inhalt des Verbindungsregisters, der unter Firmwaresteuerung geladen werden kann, um vier Bits der oberen Speicherbankadresse zu steuern.
Alle Hauptverzeigungen XA, XB, XR, XE, XW und XL benutzen die zwei hochwertigen Bits (NA1,2) des NA-Feldes als ihre hochwertigen Bits, wobei sie aber die verbleibenden acht Bits für ihre spezielle Adresse in einer unterschiedlichen Weise erzeugen .
Die XA-Aufsplitterung benutzt die Ausgangssignale von fünf XA-Festwertspeichern PROMjUm die Bits 3 bis 10 der nächsten Adresse XA zu erzeugen.
Die XB-Aufsplitterung benutzt drei konstante Signale, zweimal den Binärwert 11 und einmal den Binärwert O, sodann ein Bit, das durch das Ausgangssignal eines der Bitspeicherplätze des F-Registers 38 gegeben ist und vier Ausgangssignale von einem
31H334
Festwertspeicher PROM,der durch das F-Register angesteuert wird, um die Bits 7 bis 10 des NA-Feldes zu erzeugen.
Die XR-Aufsplitterung hält drei Bits mit dem Binärwert O fest (000), erzeugt das nächste Bits mit dem Inhalt eines Steuer-Flip-Flops (KOP),dessen Zustand durch den Befehlstyp vorgegeben ist,und erzeugt die letzten 4 Bits 7 bis 10 durch einen XR-PROM.
Das dritte Bit der XE-Aufsplitterung ist durch das zuvor erwähnte Signal vom Befehlstyp gegeben· Das nächste Bit zeigt an, ob das Bit 0 des F-Registers den Wert 0 aufweist oder nicht, das nächste Bit zeigt an, ob die Bits 1 bis 3 des F-Registers 38 alle den Wert 0 besitzen oder nicht und die Bits 4 bis 8 des F-Registers werden als Bits 6 bis 10 des NH-Feldes benutzt.
Die XW-Aufsplitterung führt zu einer Kombination von Signalen: Eine Konstante mit dem Wert 0 und 3 Ausgangssignale eines Speichers PROM, der die Operandengröße für die Bits 4 bis 6 decodiert und klassifiziert. Das Bit 7 besitzt den Binärwert 1 und das'Bit 8 ist durch das Ausgangssignal des Speichers PROM gegeben, der die Operanden entweder als Adressen oder NichtAdressen klassifiziert. Die letzten 2 Bits sind durch das Ausgangssignal eines XW-PROM gegeben und sie bilden die Bits 9 und 10 der nächsten Adresse,durch die festgelegt wird, ob das Resultat in den Hauptspeicher, ein Basis- bzw. Datenregister oder in ein sogenanntes K-Register (nicht dargestellt) zu führen ist.
Die Adressleitungen für die XL-Verzweigung benutzen die Bits 1 bis 6 des NH-Feldes für die ersten Bit und sie benutzen sodann 4 Bits des Verbindungsregistersfum die 4 letzten 4 Bit
ο λ *-. / -" ο λ
-48-(Bits 7 bis 10) zu erzeugen.
Diese verschiedenen Eingangssignal werden durch die Gruppe von 8 zu 1-Multiplexern ausgewählt, die die Multiplexer 256 für die obere Speicherbankadresse darstellen. Die spezielle/ durch diesen Multiplexer ausgewählte Adresse, wird durch die Verwendung des laufenden Steuerspeicherwortes ausgewählt. In dem laufenden Steuerspeicherwort wird eine Verzweigung ausgeführt, indem eine Testbedingung ausgewählt wird und geprüft wird, ob diese Bedingung erfüllt ist oder nicht. Der Ausgang dieser Logik besitzt zwei Signale, wobei das eine durch TCTRUE- bzw. NOTTRUe und das andere durch TCTRUE+ bzw. TRUEvorgegeben ist. Das Signal TCTRUE- tritt auf der Leitung 261 auf und das Signal TCTRUE+ tritt auf der Leitung 262 in Figur 5 auf. Diese Signale sind mit den Freigabeeingängen der entsprechenden Steuerspeicher PROM verbunden.
Am Beginn eines vorgegebenen Firmwareschrittes wird das NA-FeId stabil und diese Adresse durchläuft unmittelbar die Steuerspeicherelemente 251 und 252. So schnell wie die Logik danach arbeitet, wird das Ausgangssignal an dem Multiplexer 256 stabil und diese Adresse beginnt die Steuerspeicherelemente 253, 254 und 255 zu durchlaufen. Es sei vermerkt, daß eines der Adressbits am Ausgang des Multiplexers 256 eine Auswahl zwischen dem Element 254 und dem Element 2 55 trifft. Dies ist deswegen der Fall, weil diese Elemente eine höhre Adressiergeschwindigkeit bei einer kleinen Wortspeicherkapazität aufweisen. Dementsprechend wird eine Adressleitung eines Speichers PROM für
1K Worte zu einer selektiven Freigabeleitung für zwei Speicher PROM mit 512 Worten. Hierbei ist ein Freigabeeingang des Speichers PROM 255 über einen Inverter 264 angeschlossen. In den Elementen 254 und 255 sind insbesondere die Adressbits geringfügig unterschiedlich unterteilt. Der Grund hierfür liegt
O 11 / -Λ ·) /
darin, daß ein Speicher für 512 Worte nur 9 Adressbits erfordert. Das zehnte Adressbit, das für alle anderen Steuerspeicher PROM als Adressbit dient, wird stattdessen als ein zweites Freigabesignal für die Spe eher PROM mit 512 Worten benutzt. Dies bedeutet, daß das Element 254 für die Adressen 400 bis 5FF freigegeben wird/und da diese Adressen invertiert dem Element 255 zugeführt werden, wird dieses für die Adressen 600 bis 7FF freigegeben.
So schnell die Adressen verfügbar sind, werden sie somit durch die Steuerspeicher PROM geschickt. Unterdessen entscheidet parallel die Testlogik TC-30,die in Figur 7 in Einzelheiten dargestellt ist, ob die Testbedingung erfüllt oder nicht erfüllt ist, woraufhin die Ausgangssignale TCTRUE- und TCTRUE+ stabil werden. Wenn die Testbedingung mit der angezeigten Polarität erfüllt wird, so gibt der niedrige Pegel des Signales TCTRUE+ die Steuerspeicher 253, 254 und 255 frei, während das Signal TCTRUE- mit hohem Pegel die Steuerspeicher 251 und 252 sperrt. Somit geben die Ausgänge der festverdrahteten ODER-Verbindungen 257 und 258 mit 76 und 20 Leitungen den Inhalt des Speicherplatzes in der adressierten oberen Speicherbank aus. Wenn jedoch die Bedingung nicht erfüllt ist, so besitzt das Signal TCTRUE- die andere Polarität und gibt die Steuerspeicherelemente 251 und 252 frei, während das Signal TCTRUE+ die Steuerspeicherelemente 253, 254 und 255 sperrt. In diesem Fall geben die festverdrahteten ODER-Verbindungen 257 und 258 an ihren Ausgängen den Inhalt des adressierten Speicherplatzes in der unteren Speicherbank aus.
Die Freigabezeit für die Steuerspeicher PROM beträgt typischerweise 15 bis 20ns, Dies ist bedeutend schneller als die Adressen-Fortpflanzungs zeit in dem Steuerspeicher PROM,die
beispielsweise 60ns für den Steuerspeicher PROM-251 in Figur
3114034
betragen kann. Somit wird die Verzögerung gegenüber der y wo das Ergebnis der Testbedingung bekannt ist/verbessert, indem die Freigabezeit der Steuerspeicher PROM anstelle der Adressen-Fortpflanzungszeit für die Steuerung herangezogen wird. Der Grund dafür, daß diese speziellen Verhältnisse für den Zeittakt durch die Logikkette genommen wurden/ liegt darin, daß im schlimmsten Fall die Daten am Eingang des Datenregisters MLR-82 zu dem Zeitpunkt stabil sein müssen, wo der Haupttakt getriggert wird. Es ist daher eine der Hauptfunktionen,die Zykluszeit zu steuern und somit die Geschwindigkeit der Zentraleinheit CPU.
Wenn jeder der Steuerspeicher PROM eine Fortpflanzungszeit von 60ns hätte, so würde es im schlimmsten Fall bei der Auswahl einer Adresse für die obere Speicherbank 80ns ausgehend von einem vorausgehenden Startpunkt dauern, bis die Eingangssignal des DatenregistersMLR-82 stabil würden. Zur Erhöhung der Geschwindigkeit ist daher die Verwendung von Steuerspeichern PROM mit drei unterschiedlichen Fortpflanzungszeiten wünschenswert. Der Steuerspeicher PROM-2 52 kompensiert die durch die Vorschaltlogik 259 reduzierte Geschwindigkeit. Der Steuerspeiche'r 253 kompensiert die erhöhte Adressierverzögerung aufgrund des Multiplexers 256.Die Steuerspeicher 254 und 255 dienen sowohl der Kompensation des Multiplexers 256 als auch der Vorschaltlogik 259. Daher ist die schlechteste Durchlaufzeit durch dieses Netzwerk nahezu die gleiche unabhängig davon,ob die obere oder untere Speicherbank benutzt wird und unabhängig davon, welcher Ausgang erzeugt wird, d.h. einer der direkt zu dem Datenregister MLR-82 oder über die Logik 259 zu diesem Register geht. Wenn die Elemente 253, 254 und 255 nicht schneller als die Elemente 251 und 252 wären, so müßte die Taktperiode für jeden Firmwareschritt, in dem die obere Speicherbank aus gewählt wurde,länger sein . Somit würde die Zykluszeit für diesen Steuerspeicherschritt länger sein, da die Erzeugung einer
-ι / η
; ι / η > ! ι I L; ^ O Η·
-51-
stabilen Adresse die Laufzeit durch den Multiplexer berücksichtigen muss.
Das grundlegende Prinzip in der Logik gemäß Figur 5 läßt sich folgendermaßen zusammenfassen. Da der Adressweg durch die Steuerspeicher PROM soviel langsamer als der Freigabeweg ist, wird der Adressweg immer offen gelassen, d.h. die nächste Adresse durchläuft die untere Speicherbank und der Ausgang des Adressenmultiplexers 256 durchläuft die obere Speicherbank des Steuerspeichers, während die Entscheidung getroffen wird, welche Speicherbank endgültig benutzt wird. Die Zeit für diese Entscheidung wird nur kritisch, wenn es Zeit für die Freigabe der Ausgänge dieser Steuerspeicher PROM wird, in welchem Fall die erzeugte Testbedingung, erfüllt oder nicht erfüllt, die untere oder obere Speicherbank in Abhängigkeit von der Verzweigungjfreigibt. Der Freigabeweg benötigt sehr viel weniger Zeit,beispielsweise 15ns gegenüber 60ns ι für den Adressweg, wodurch es möglich ist, die Entscheidung über die Speicherbankauswahl bis zu 45ns in einem typischen Steuerspeicherschritt zurückzustellen. Hierdurch kann jeder Steuerspeicherschritt sehr viel schneller ausgeführt werden.
In Figur 7 sind Einzelheiten der Testlogik 30 für die Erzeugung der Signale TCTRUE+ und TCTRUE- dargestellt. Das Signal TCTRUE+ wird an dem negierten Ausgang des Multiplexers MUX-302 auf der Leitung 362 erzeugt und das Signal TCTRUE-wird an dem negierten Ausgang des Multiplexers MUX-304 auf der Leitung 261 erzeugt. Die Leitungen 261 und 262 sind an die Steuerspeicher PROM in Figur 5 angeschlossen. Die Multiplexer 202 und 304 besitzen 8 Eingänge 0 bis 7, wobei jedem gleichnumerierten Eingang das gleiche Eingangssignal zugeführt wird. Diese Eingangssignale werden an 8 Ausgängen des Multiplexers 300 erhalten, der in Wirklichkeit 8 Multiplexer
I-,
MUX1 bis MUX8 umfaßt, von denen jeder 8 Eingänge und einen Ausgang aufweist. Den 64 Eingängen des Multiplexers 300 wird eine Testbedingung von verschiedenen Funktionen innerhalb der Zentraleinheit CPU100 zugeführt. In Abhängigkeit von dem Zustand der getesteten Funktion wird entweder die obere oder untere Speicherbank des Steuerspeichers freigegeben und entsprechend adressiert. Die Eingänge der Multiplexer, die ausgewählt und/oder freigegeben werden, werden durch Steuerbits festgelegt, die aus dem laufenden Steuerwort entnommen werden, d.h. aus dem Firmwarewort des Steuerspeichers.
Es ist somit wünschenswert, auf eine Vielzahl von verschiedenen Signalen zu verzweigen, die beispielsweise 64 Signale umfassen können, so daß nur 1 Signal den ausgewählten Eingang innerhalb der 64 Eingänge repräsentiert. Die Logik gemäß Figur gibt diese Möglichkeit mit einer minimalen Schaltzeit vor, indem zwei Multiplexerstufen verwendet werden, wobei die eine Stufe den Multiplexer 300 und die andere Stufe die Multiplexer 302 und 304 umfaßt. Die Logik gemäß Figur 7 gestattet ferner eine solche Verzweigung aufgrund von zwei Polaritäten des gleichen Signales.
Die Operation der Logik gemäß Figur 7 ist folgende. Ein Eingang eines jeden der 8 Multiplexer in dem Multiplexer 300 wird für die Weitergabe der negierten Ausgänge GPObis GP7 ausgewählt, wobei dies über die drei Bits an den Auswahleingängen 3,4,5 eines jeden der 8 Multiplexer geschieht. Diese drei Bits werden dem TC-FeId (Bits 13 bis 15) des Firmwarewortes entnommen. Die Ausgänge GPO bis GP7 sind entsprechend an die mit 0-7 numerierten Eingänge eines jeden der Multiplexer 302 und 304 geführt. Die Multiplexer 302 und 304 sind ebenfalls mit ihren Freigabeeingängen an die Signale CRTCSP- und CRTCSP+ entsprechend angeschlossen. Die bestätigten und negierten Signale CRTSCP werden ebenfalls dem laufenden
Firmwarewort entnonunen und insbesondere dem TP-FeId (Bit 21) dieses Wortes. Dieses TP-FeId wird ebenso wie jedes andere Feld in dem Firmwarewort über das Register 82 übertragen. Bezüglich des Bits 21 in dem TP-FeId befindet sich an dem Bitspeicherplatz 21 in dem Register 82 in Wirklichkeit ein bistabiles Element (Flip-Flop), das sowohl einen negierten als auch einen bestätigten Ausgang aufweist. In Abhängigkeit von dem Logikpegel, der für die anderen Bits des Firmwarewortes erforderlich, wird entweder der bestätigte oder negierte Ausgang oder beide benutzt.
Die Multiplexer 302 und 304, die in Form des handelsüblichen BausteinsSN74S251 der Firma Texas Instruments Inc. im Handel erhältlich sind, gestatten eine Umschaltung der bestätigten und negierten Ausgänge des Multiplexers,wenn das Signal an dem Freigabeeingang den niedrigen Pegel aufweist. Wenn ein solches Signal an dem Freigabeeingang den hohen Pegel aufweist, so sind die Ausgangssignale fließend und entsprechend der Konfiguration wird ein solcher Multiplexer mit einem Freigabeeingang auf hohem Pegel aus der Logik gemäß Figur 7 herausgetrennfc. Somit ist ersichtlich nur einer der Multiplexer und 304 zu jedem Zeitpunkt freigegeben. Die Ausgänge der Multiplexer 302 und 304 sind so miteinander verknüpft, daß der Bestätigungsausgang eines jeden Multiplexers mit dem negierten Ausgang des anderen Multiplexers verbunden ist, so daß eine sogenannte festverdrahtete ODER-Verbindung entsteht. Wenn somit irgendeiner der Multiplexer 302 oder 304 freigegeben ist, so werden die Signale TCTrue mit der geeigneten Polarität erhalten. Das Signal TCTRUE mit dem niedrigen Pegel gibt die von ihm angesteuerte Steuerspeicherbank frei. D.h., wenn das Signal TCTRUE- den niedrigen Pegel aufweist, so wird die untere Speicherbank freigegeben.
Wenn somit w ie aus der Operation der Logik gemäß Figur 7 er-
i ! ί -'
sichtlich, das Signal CRTCSP- den hohen Pegel besitzt und dementsprechend das Signal CRTCSP+ den niedrigen Pegel, so ist der Multiplexer 304 aktiv bzw. freigegeben und das Signal TCTRUE- gibt den Pegel von einem der 64 getesteten Zustände wieder, wobei das Signal TCTRUE+ den umgekehrten Pegel wiedergibt. Wenn das Signal CRTCSP- den niedrigen Pegel besitzt, und dementsprechend das Signal CRTCSP+ den hohen Pegel, so ist der Multiplexer 302 aktiv bzw. freigegeben und das Signal TCTRUE+ gibt den Pegel des getesteten Zustandes wieder, wobei das Signal TCTRUE- den umgekehrten Pegel aufweist. Die Freigabe der oberen oder unteren Speicherbank des Steuerspeichers hängt somit davon ab, welches der Signale TCTRUE- bzw. TCTRUE+ den niedrigen Pegel besitzt.
Es ist erkennbar, daß der Operationscode eines von dem Speicher 106 gelesenen Befehles verwendet werden kann, um eine von verschiedenen Testbedingungen auszuwählen, wobei diese Testbedingungen gegenüber denjenigen,die von dem Multiplexer 300 empfangen werden/unterschiedlich sein können. In einem solchen Fall können die Bits des Operationscodes verwendet werden, um die Testbedingung an den Eingängen eines ersten Multiplexers entsprechend dem Multiplexer 300 oder eines Teiles desselben auszuwählen und es können ferner 2 MuItiplexersntsprechend den Multiplexern 302 und 304 verwendet werden, wobei die Anordnung ähnlich wie in Figur 7 zu treffen ist. Es ist ebenfalls erkennbar, daß die Verwendung des Operationscodes für die Auswahl einer Testbedingung unabhängig oder parallel mit der Logik in Figur 7 verwendet werden kann. Bei einer parallelen Anwendung müssen die durch die Firmwarebits angesteuerten Multiplexer 302 und 304 gesperrt werden, wenn die Multiplexer durch den Operationscode freigegeben werden und umgekehrt.
Einzelheiten des Multiplexers 256 und der Anschlüsse desselben
31U334
sind in Figur 8 dargestellt. Insbesondere der Multiplexer * 10 Multiplexer mit jeweils 8 Eingängen. Die Eingänge dieser 10 Multiplexer entsprechen den Signalen in der Tabelle von Figur 6. Diese Signale sind an die 8 in Figur 6 dargestellten Verzweigungstypen angeschlossen, so daß das erste Signal für jeden Verzweigungstyp an den 8 entsprechenden Eingängen des Multiplexers 1 innerhalb des Multiplexers 256 empfangen wird. Somit ist der Multiplexer 1 mit jedem seiner 8 Eingänge an das Signal NA1 angeschlossen. Der Multiplexer 2 erhält ebenfalls an jedem seiner Eingänge das gleiche Signal (NA2) zugeführt. Für alle anderen Multiplexer,mit Ausnahme der ersten beiden, sind die an die Eingänge angeschlossenen Signale in den meisten Fällen unterschiedlich. Beispielsweise ist der Multiplexer 3 mit seinem dritten Eingang an das Signal XA3 angeschlossen, das gemäß Figur 6 durch das dritte Bit der oberen Speicherbankadresse für die XA-Verzweigung vorgegeben ist, wobei dieses dritte Bit durch die Position 3 eines sogenannten XA-PROM gegeben ist, welcher nicht dargestellt ist, aber in einfacher Weise ein Decodierer sein kann, dessen Eingängen der Inhalt
desF-Registers 38 zugeführt wird und dessen Ausgang an den Multiplexer 3 des Multiplexers 256 angeschlossen ist.
Den anderen Eingängen der verbleibenden Multiplexer in dem Multiplexer 256 werden ebenfalls Eingangssignale entsprechend Figur 6 zugeführt. Die ersten zwei Eingänge des Multiplexers 10 NA(A) und NA(A) sind von weiterem Interesse. Die Verwendung dieser zwei Bits, wobei das eine das Komplement des anderen darstellt, gestattet insbesondere eine wirksame und flexible Paarbildung der Steuerspeicherplätze für Verzweigungsoperationen. Im Stand der Technik ist es bekannt, beim Antreffen eines Verzweigungszustandes auf einen ungeraden PROM-Speicherplatz zu verzweigen und bei einem fehlenden Verzweigungszustand auf einen geraden Speicherplatz zu verzweigen bzw. um-
gekehrt zu verfahren. Diese bekannte Technik besitzt Einschränkungen. Nimmt man beispielsweise 4 aufeinanderfolgende Speicherplätze an, deren Adressen durch XXXOO, XXXO1, XXX10 und XXX11 gegeben sind, wobei X entweder dem Binärwert "1" oder dem Binärwert "0" entsprechen kann, so kann eine Verzweigungsfolge zu den Adressen XXXOO oder XXXOI jenachdem verzweigen, ob ein Verzweigungszustand angetroffen wird oder nicht bzw. eine andere Verzeigungsfolge kann zu den Adressen XXX10 bzw. XXX11 verzweigen. Wenn jedoch die Speicherplätze XXX11 und XXX01 exakt die gleiche Information enthalten, so können die nicht vertauscht werden, d.h. es müssen 2 Speicherplätze benutzt werden für den gleichen Inhalt. Dies ist darauf zurückzuführen, daß beide Adressen ungerade sind und die Paarbildung nur für ungerade/gerade Adressen gestattet ist. Bei einem anderen bekannten Verfahren kann ein nicht festgestellter Verzweigungszustand die Adressierung des durch das Steuerspeicherwort festgelegten Speicherplatzes verursachen und ein festgestellter Verzweigungszustand kann die Adressierung eines Speicherplatzes verursachen, der durch die hochrangigen Adressbits festgelegt ist, wobei die zwei niedrigrangigsten Bits beispielsweise beide den Binärwert "1" aufweisen. Auf diese Weise kann eine Adresse, deren zwei niedrigrangigsten Bits den Binärwert "Ί" aufweisen, mit Adressen einer Paarbildung unterzogen werden, deren niedrigrangigste Bits entweder zweimal den Binärwert "0" oder einmal den Binärwert "1" und einmal den Binärwert "0" bzw. umgekehrt aufweisen . Hierbei wird jedoch die gemeinsame Adresse auf eine Adresse beschränkt, die in ihren beiden niedrigrangigsten Bits den Binärwert "1" aufweist.
In einer Datenverarbeitungseinheit, die einer Vielzahl von Quellen die Bildung der nächsten Adresse für den Steuerspeicher gestattet,ist die Verwendung einer Anordnung, wie sie insbesondere in den Figuren 5 und 8 dargeste11t;wünschenswert. Ins-
31HG3A
besondere gestattet die in diesen Figuren dargestellte Logik eine Reduktion der Gesamtanzahl der Steuerspeicherplätze, indem allen Speicherplätzen eine alternative Verwendung mit einer erhöhten Anzahl von ausgewählten Speicherplätzen gestattet wird. Um dies zu bewerkstelligen, wird die am wenigsten signifikante Bitposition (NA10) an die für die XO-Verzweigung angeschlossen, wobei die Bitposition tatsächlich durch das Bit NA10 vorgegeben ist; Die Bitposition NA (A) wird von dem Register 82 aus dem laufenden Steuerspeicherwort empfangen, während für die X1-Verzweigung das Komplement des Bits NA(A) verwendet wird.
Beispielsweise sei auf Figur 9 verwiesen.Wenn die NA-Adresse, die in der ersten Zeile dargestellte Form aufweist, so weist die Speicherbankadresse in der dargestellten Weise den gleichen Wert auf. Die obere Speicherbankadresse ist jedoch davon abhängig, ob eine XO- oder X1-Verzweigung vorliegt. Wenn eine X1-Verzweigung vorliegt, so ist dafür die obere Speicherbankadresse in der dritten Zeile dargestellt. Die endgültige Adresse davon ab, ob das Signal TCTRUE- den Binärwert "0" oder<"1" aufweist. Bei einem Binärwert "0" werden die Steuerspeicher PROM der unteren Speicherbank freigegeben. Gemäß der vierten Zeile ergibt sich somit entsprechend die endgültige Adresse für die untere Speicherbank, wenn das Signal TCTRUE-den Binärwert "0" aufweist. Wenn das Signal TCTRUE- den Binärwert "1" aufweist, so ergibt die endgültige Adresse für die obere Speicherbank in Abhängigkeit davon, ob die Verzweigung X1 oder XO vorliegt. Die entsprechende endgültige Adresse ist in den Zeilen 5 und 6 in Figur 9 dargestellt.
Insbesondere ist erkennbar ,daß die untere Speicherbankadresse in der Zeile 4 mit jeder der Adressen der oberen Speicherbank in den Zeilen 5 und 6 gepaart werden kann.
Auf diese Weise wird eine wirksamere Paarbildung von Speicher-
311/;
plätzen erzielt. Variationen des Beispieles gemäß Figur 9 zeigen/ daß ein gerader Adressspeicherplatz der unteren Speicherbank mit einem geraden oder ungeraden Adreßspeicherplatz der oberen Speicherbank gepaart werden kann und daß ein ungerader Adreßspeicherplatz der unteren Speicherbank ebenfalls entweder mit einem geraden oder ungeraden Adreßspeicherplatz der oberen Speicherbank gepaart werden kann.
Es ist ersichtlich, daß die oben beschriebene Paarbildung verwirklicht werden kann,indem der Binärwert des Bits NA10 unabhängig von dem Binärwert des Bits NA10 des laufenden Firmwarewortes eingestellt wird. Beispielsweise kann das Bit NA10 für XO-Verzweigung auf den Binärwert "1" anstelle von NA(A) eingestellt worden sein, solange das Bit NA10 für die Xl-Verzweigung sein Komplement darstellt und in diesem Fall durch den Binärwert "0" gegeben ist.
3 1U334
2. Übersicht über die Informationsübertragung
Von besonderem Interesse bei der vorliegenden Anmeldung ist die Informationsübertragung innerhalb eines zentralen Subsystems und zwischen einem zentralen Subsystem und den Systemelementen f wie beispielsweise dem Dialogprozessor 109, der Ein/Ausgabe-Steuerung 107 und den Ein/Ausgabe-Geräten 108 sowie den Speichermodulen 106, wobei diese Informationsübertragung über den System- bzw.Megabus 105 erfolgt. Die Information umfaßt Steuersignale, Daten- und Adressen, die in beiden Richtungen sowohl ' zwischen den Elementen innerhalb eines zentralen Subsystems als auch zwischen einm zentralen Subsystem und anderen Systemelementen ausgetauscht werden. Der Megabus 105 und der interne Bus 9 geben die Möglichkeit vor, parallel zwei Datenworte zu übertragen. Dies bedeutet, daß 32 Bits plus Paritätbits, 24 Adressbits plus Paritätbits und mehrere Steuersignalbits auf verschiedenen Signalleitungen übertragen werden können.
innerhalb eines zentralen Subsystems enthalten sowohl die Pufferspeicher-Speicherverwaltungseinheit 103, die Zentraleinheit CPU-100, der wissenschaftliche Prozessor SIP101 als auch der kommerzielle Prozessor CIP-102 Schaltkreiselemente für den Empfang und das Aussenden von Informationsbits von und zu den anderen Elementen, die an den internen Bus 9 innerhalb des zentralen Subsystems angeschlossen sind. Die Pufferspeichereinheit 103 ist zusätzlich an den Megabus 105 angeschlossen und enthält daher zusammen mit den anderen an den Megabus angeschlossenen Einheiten Schaltkreiselemente ιum Information auf dem Megabus zu empfangen und zu diesem zu übertragen.
3114334
Die Betriebscharakteristiken des Megabusses und des internen Busses sind einander sehr ähnlich, insofern als die zwei angeschlossenen Einheiten jeweils gestatten miteinander zu einem vorgegebenen Zeitpunkt über zugeordnete gemeinsame Signalleitungen in Verbindung zu treten, wobei Bits von Daten-, Adressen- und Steuersignalen Übertragen werden. Der Dialog über den Megabus und den internen Bus erfolgt asynchron. Jede Einheit, die einen Dialog mit einer anderen Einheit auszuführen wünscht, fordert einenBuszyklus an. Wenn dieser Buszyklus gewährt wird, wird die auslösende Einheit zur Haupteinheit und kann jede andere Einheit in dem System als Nebeneinheit adressieren, ganz gleich ob sich diese Einheit in dem zentralen Subsystem befindet oder an den Megabus angeschlossen ist.
Die meisten Übertragungen erfolgen von der Haupt- zur Nebeneinheit. In den Fällen wo ein Antwortzyklus angefordert ist, übernimmt die auslösende oder anfordernde Einheit die Rolle der Haupteinheit, sichert sich einen Buszyklus und überträgt eine Anforderung an eine Bestimmungs- bzw. Nebeneinheit. Mit der Anforderung erfolgt eine Identifizierung in Form einer Kanalnummer,um der Nebeneinheit nachfolgend das Richten einer Antwort zu der Haupteinheit zu gestatten. Wenn die Nebeneinheit eine angeforderte Operation ausgeführt hat und eine Antwort der anfordernden Einheit übertragen muss, so nimmt die Nebeneinheit die Rolle der Haupteinheit ein und löst während eines zweiten Buszyklus eine übertragung zu der auslösenden Einheit aus, die sodann die Rolle der Nebeneinheit einnimmt. Diese zwei Buszyklen vervollständigen den Informationsaustausch zwischen den Einheiten. Die Zeit zwischen den zwei Zyklen (Anforderungszyklus und Antwortzyklus) kann durch andere Systemelemente verwendet werden, um über den Bus Anforderungen auszugeben, die auf diese beiden Systemelemente nicht bezogen sind.
31US34
Eine Haupteinheit kann irgendeine andere Einheit entweder an dem internen Bus oder dem Megabus als eine Nebeneinheit adressieren. Sie tut dies, indem sie die Adresse der Nebeneinheit auf die Adressleitungen des Busses ausgibt. Die Zentraleinheit CPü-100 gibt somit die Adresse einer Nebeneinheit auf die Adressleitungen des internen Busses 9/ während der Dialogprozessor beispielsweise die Adresse der Nebeneinheit auf die Adressleitungen des Megabusses 105 gibt. Wie zuvor erwähnt, können 24 Adressleitungen vorgesehen sein, die auf eine von zwei Arten interpretiert werden, je nach' Zustand einer Steuerleitung, die das sogenannte Speicher-Referenzsignal MREF führt. Wenn das Speicher-Referenzsignal bestätigt ist (Binärwert "0"), so adressiert die anfordernde Einheit einen Speicherplatz in dem Speichermodul 106. Wenn jedoch das Speicher-Bezugssignal nicht bestätigt ist (Binärwert "1"), so führen die Adressleitungen eine Kanalnummer mit 10 Bit und einen Funktionscode mit 6 Bit. Wenn eine Kanalnummer und ein Funktionscode über die Adressleitungen übertragen werden, so tauschen die Quellen- und Bestimmungseinheiten, d.h. die Haupt- und Nebeneinheiten Steuerinformationen, Daten oder Unterbrechungen miteinander aus. Jede Systemeinheit, sowohl innerhalb als auch außerhalb eines zentralen Subsystems wird durch eine Kanalnummer mit 10 Bit eindeutig identifiziert, wobei die Kanalnummer über Schalter innerhalb der speziellen Einheit eingestellt wird.
Wenn eine Haupteinheit einen Antwortzyklus von einer Nebeneinheit anfordert, so zeigt sie dies der Nebeneinheit durch den Zustand einer binären Steuerleitung WRIT an. In dem einen Zustand zeigt die Steuerleitung WRIT der Nebeneinheit an, daß ein Antwortzyklus, wie beispielsweise bei einer Leseanweisung angefordert istfund im anderen Zustand zeigt sie der Nebeneinheit an, daß keine Antwort angefordert ist.
Wenn das Speicher-Referenzsignal MREF anzeigt, daß ein nicht
31H334
den Speicher betreffender Referenzzyklus angefordert ist, so enthalten die Dateneleitungen des internen Busses bzw. des Megabusses die Kanalnummer der anfordernden Einheit immer dann, wenn eine Antwort von der Nebeneinheit zu der Haupteinheit angfordert ist. Der Antwortzyklus ist sodann zu der anfordernden Einheit gerichtet und eine Steuerleitung SHBC für die zweite Hälfte des Buszyklus wird freigegeben, um der anfordernden Einheit anzuzeigen, daß die übertragene Information eine Antwort der Nebeneinheit auf eine zuvor ausgegebene Anforderung durch die Haupteinheit darstellt.
Wie zuvor erwähnt, liegt eine Kanalnummer für jede Endstelle in einem bestimmten System mit Ausnahme der Verarbeitungselemente vom Speichertyp,die durch die Speicheradressen identifiziert werden,vor. Eine Kanalnummer ist jedem solchen Gerät zugeordnet und Vollduplex~Geräte ebenso wie Halbduplex-Geräte verwenden zwei Kanalnummern. Geräte, lediglich mit Ausgabe oder Eingabe verwenden jeweils nur eine Kanalnummer· Die Kanalnummer sind leicht veränderlich und es können dementsprechend ein oder mehrere hexadezimale Drehschalter bezüglich jeder, Einheit verwendet werden, die an den internen Bus oder den Megabus angeschlossen sind,um die spezielle Adresse der Einheit anzuzeigen oder einzustellen. Wenn ein System konfiguriert wird, so kann für jede spezielle Einheit, die an den Bus angeschlossen ist, die Kanalnummer in geeigneter Weise festgelegt werden. Einheiten mit Mehrfach-Ein/Ausgabe-Anschlüssen (I/O) erfordern im allgemeinen einenBlock von aufeinanderfolgenden Kanalnummern.Beispielsweise kann eine Einheit mit 4 Anschlüssen Drehschalter verwenden,um die oberen 7 Bit einer Kanalnummer zuzuordnen und die unteren 3 Bit für die Definition der Anschlussnummer und zur Unterscheidung zwischen Ein- und Ausgängen zu benutzen.
Die Kanalnummer für die Nebeneinheit erscheint auf dem Adress-
31HS34
bus bei allen Übertragungen,die nicht auf den Speicher bezogen sind und jede Einheit vergleicht diese Nummer mit ihrer eigenen intern über Drehschalter gespeicherten Nummer . Die Einheit, die eine Übereinstimmung feststellt,ist definitionsgemäß die Nebeneinheit und muß auf den laufenden Buszyklus antworten. Im allgemeinen dürfen zwei Endpunkt,· in einem einzigen System nicht die gleiche Kanalnummer zugeordnet werden.
Eine spezifische Bus- bzw. Ein/Ausgabe-Funtkion wird durch die Leitungen18-23 der Busadressleitungen während eines Zyklus angezeigt, sofern dieser kein Speicherzyklus ist. Die Funktionscodes legen entweder Ein- oder Ausgabeoperationen fest ,wobei beispielsweise alle ungeraden Funktionscodes Ausgabeübertragungen (schreiben) vorgeben, während alle geraden Funktionscodes Eingabeübertragungen (lesen) festlegen können'.
Es gibt verschiedene Ausgabe- und Eingabefunktionen. Eine der Ausgabefunktionen ist eine Anweisung, wobei eine Datenmenge beispielsweise 32 Bit von den Datenleitungen des Megabusses oder des internen Busses in die Systemeinheit geladen wird, die durch die Kanalnummer in dem Kanalnummernfeld der Adressleitungen festgelegt ist. Die Bedeutungen der individuellen Datenbits sind komponentenspezifisch,aber der Ausdruck "Datenmenge" dient der Bezeichung der Daten, die in Abhängigkeit von der spezifischen Komponentenfunktion zu speichern, zu senden, zu übertragen usw. Eine weitere solche Ausgabefunktion ist eine Anweisung,durch die beispielsweise eine Menge von 24 Bit in ein Kanaladressregister geladen wird. Die Adresse ist eine Speicher-Byteadresse und bezieht sich auf den Startspeicher·«· platz in dem Speicher, an dem der Kanal mit der Eingabe oder Ausgabe von Daten beginnt. Verschiedene andere Ausgabefunktionen umfassen eine Ausgabe-Bereichsanweisung, die die Größe des Pufferspeicherplatzes definiert, der dem Kanal für eine bestimmte übertragung zugeordnet ist, eine Ausgabe-Steueranweisung, die durch ihre individuellen Bits bestimmte Anworten veranlaßt,
ι ι / η ο '
Ausgabefunktionen,wie beispielsweise Druckanweisungen und Ausgabekonfigu ationen^die Punktionen,wie beispielsweise eine Terminalgeschwindigkeit, eine Karteniesebetrieb usw., anzeigen.
Die Eingabefunktionen umfassen ähnliche Funktionen wie die Ausgabefunktionen mit der Ausnahme, daß in diesem Fall die Daten von der Einheit zu dem Bus übertr gen werden. Somit umfassen die Eingabefunktionen die Eingabe von Daten, Adressen und Bereichsanweisungen, sowie Anweisungen für die Konfiguration bei einer bestimmten Aufgabe und Unterbrechungsanweisungen. Zusätzlich ist eine Geräte-Identifikationsanweisung vorgesehen, durch die der Kanal seine Geräte- Identifikationsnummer auf den Bus gibt. Ferner sind verschiedene Statussignale vorgesehen, die beispielsweise anzeigen, daß ein bestimmtes Gerät sich in Betrieb befindet PRZT, ob ein bestimmtes Gerät bereit ist, Information von dem Bus aufzunehmen BUSY, ob ein nicht-korregierbarer Speicherfehler REDL, REDR vorliegt, ob ein korrigierbarer Speicherfehler YELO vorliegt und ob eine Anforderung nach einem nicht existenten Gerät UARL ausgegeben wird.
Zusätzlich zu den Speicherschreib - und Leseanforderungen und den Ein/Ausgabe-Anweisungen kann eine an den Megabus oder den internen Bus angeschlossene Einheit von der Zentraleinheit CPU-100 eine Unterbrechung oder die Ausführung einer bestimmten Aktion anfordern.
Eine Einheit, die die Zentraleinheit CPU zu unterbrechen wünscht, fordert einen Buszyklus an und bei Gewährung des Buszyklus gibt die Einheit ihren Unterbrechungsvektor auf den Bus ab, wobei der Unterbrechungsvektor die Kanalnummer der Zentraleinheit CPU und die Unterbrechungs-Pegelnummer der eigenen anfordernden Einheit enthält. Die Zentraleinheit CPU akzeptiert die Unterbrechung, wenn der Pegel der angeforderten Unterbrechung numerisch
31H934
kleiner als der laufende ünterbrechungspegel der Zentraleinheit CPU ist, und wenn die Zentraleinheit CPU nicht gerade eine andere Unterbrechung angenommen hat. Die Annahme einer Unterbrechung wird durch ein Bus-Bestätigungssignal ACK und eine Nicht-Annahme einer Unterbrechung wird durch ein Bus-Nicht-Bestätigungssignal NAK angezeigt. Geräte, die ein Signal NAK empfangen, fordern erneut eine Unterbrechung an, wenn ein Signal von der Zentraleinheit CPU empfangen wird, das die Wiederaufnahme der normalen Unterbrechung anzeigt. Die Zentraleinheit CPU gibt diesesSignal aus, wenn sie eine Pegeländerung vervollständigt hat und daher in der Lage ist, erneut Unterbrechungen zu akzeptieren. Die Kanalnummer der Haupteinheit ist in dem Unterbrechungsvektor enthalten, da sich mehr als ein Kanal auf dem gleichen Unterbrechungspegel befinden kann. Der Unterbrechungspegel NULL ist von spezieller Bedeutung, da er definitionsgemäß vorgibt, daß die Einheit nicht unterbrechen soll.
Die Figuren 10A-10K veranschaulichen die Daten- und Adressbusformate für die zuvor beschriebenen Busoperationen. Figur 1OA zeigt das Format für einen Speicher-Schreibzyklus»und es ist ersichtlich, daß die 24 Adressbits (0-23) die spezielle Speicheradresse festlegen und daß der Datenbus entweder ein Einzelwort (Bits 0-15)oder ein Doppelwort (Bit 0-31) zu der festgelegten Speicheradresse überträgt. Eine Speicher-Leseanforderung ist in Figur 10B gezeigt,und erneut legen die Adressbit 0-23 die Speicheradresse fest, aus der die Daten zu lesen sind,und die Datenbusbits 0-9 legen die Kanalnummer der die Speicher-Leseanforderung ausgebenden Quelle fest.
Eine Nebeneinheit überträgt aufgrund einer Speicher-Leseanforderung Information entsprechend dem Format in Figur 10C. Die BiIS 8-17 des Adressfeldes enthalten die Kanalnummer der Bestimmungseinheit (der anfordernden Einheit)) zu der die ein oder zwei Worte entsprechend der Bits 0-15 bzw. 0-31 des Datenbusses zu übertragen
3114334
Die Figuren 1OD und 1OE veranschaulichen die Formate für eine Ausgabe- und eine Eingabeanweisung. In der Ausgabeanweisung enthalten die Bits 8-17 auf dem Adressbus die Kanalnummer der Bestimmungseinheit und ein Funktionscode ist durch die Bits 18-23 festgelegt. Der Datenbus enthält entweder 16 oder 32 Bits von Daten,die entsprechend dem festgelegten Funktionscode bearbeitet werden. Die Eingabeanweisung besitzt ein ähnliches Format und enthält in den Bits 0-9 auf dem Datenbus die Kanalnummer der Anweisungsquelle. Bei der Eingabeanweisung legt somit der Datenbus die Quelle der Eingabeanweisung für die Nebeneinheit fest.
Figur 10F veranschaulicht die Antwort einer Nebeneinheit auf eine Eingabeanweisung. Die Bits 8-17 des Adressbusses enthalten die Kanalnummer der Bestimmungseinheit, die durch die Bits 0-9 auf dem Datenbus bei der Eingabeanweisung festgelegt ist. Der Datenbus enthält entweder 16 oder 32 Bit von Daten x die infolge der Eingabeanweisung aufzusuchen sind.
Die Figuren 1OG und 1OH veranschaulichen eine Lade-Ausgabeanweisung IOLD( wobei die Bits 0-7 des Adressbusses die Modulnummer festlegen und die Kanalnummer des Bestimmungsgerätes durch die Bits 8-17 vorgegeben wird. Die Bits 18-23 des Adressbusses legen den Funktionscode fest,unddie Bits 0-15 des Datenbusses geben die Anfangsadresse für die zu ladenden Daten vor. Das in Figur 10H dargestellte Format legt die Best immungs-Kanalnummer in den Bits 8-17 fest und gibt einen Funktionscode durch die Bits 18-23 vor. Der Datenbus legt über die Bits 0-15 den Bereich der zu ladenden Adressen fest.
Die Figuren 10J und 10K veranschaulichen die Busformate für auf
31H934
die Zentraleinheit CPU bezogene Aktionen. Die Bits 8-17 des Adressbusses geben in jedem Fall die Bestimmungs-Kanalnummer vor und bei einer CPU-Aktionsanforderung ist ein Aktionscode durch die Bits 18-23 festgelegt, während diese Bits bei der Unterbrechungsanforderung auf de.n Wert "0" gehalten werden. Der Datenbus enthält bei einer CPU-Aktionsanforderung entweder 16 oder 31 Datenbits, die der vorgegebenen Aktion zugeordnet sind. Während einer Unterbrechungsanforderung enthält der Datenbus die Kanalnummer für die Quelle der Unterbrechungsanforderung in den Bits 0-9 und die Prioritäts-Pegelnummer der Quelle in den Bits 10-15.
Die Besonderheiten der Pufferspeicher/Speicherverwaltungseinheit 103 bezüglich der Informationsübertragung zwischen der Zentraleinheit CPU-100, den Prozessoren SIP-101 und CIP-102 sowie dem Pufferspeicher in der Einheit 103 gehen aus dem Blockdiagramm in Figur 11 hervor. Dieses Blockschaltbild sei als interner Busadapter bezeichnet. Figur 12 zeigt in einem Blockdiagramm die Einrichtung innerhalb der Pufferspeicher/Speicherverwaltungseinheit 103 zur Schnittstellenbildung mit dem Systembus bzw. Megabus 105 und für die Steuerung der Informationsübertragung auf dem Megabus. Dieses Blockschaltbild kann als Megabusadapter bezeichnet werden.
Die in Figur 11 gezeigten Signale weisen den internen Bus als Quelle oder Bestimmung auf. Der Pufferspeicherdaten-Eingangs-Multiplexer 401 liefert selektiv 32 Datenbits (2 Worte mit jeweils 2 Byte) für die Speicherung in dem Pufferspeicher 403. Der Eingangsmultiplexer 401 wählt entweder die 32 Datenbits (+ 4 Paritätsbits) aus, die gerade auf den Datenleitungen des internen Busses (LBDTO:32) vorliegen, oder er wählt 32 Datenbits (+ Paritätsbits) aus, die gerade von dem Megabusadapter (MBDTO:32) geliefert werden. Die internen Busdaten LBDT be-
sitzen als Quelle entweder die Zentraleinheit CPU-100, die Prozessoren SIP101, CIP-102 oder die Pufferspeichereinheit 103. Die Megabusdaten MBDT können als Quelle entweder die Speichermodule 106, die Ein/Ausgabegeräte 108, den Dialogprozessor oder andere an den Megabus angeschlossene Einheiten haben. Die Megabusdaten werden normalerweise als Antwort auf eine Ein/ Ausgabeanweisung oder auf eine Speicher-Leseanforderung geliefert.
Der Pufferspeicher 403 ist ein Speicher mit begrenzter Kapazität und sehr schneller Zugriffszeit für die Speicherung von Duplikaten einer ausgewählten Gruppe von Datenworten, die ebenfalls in den Speichermodulen 106 gespeichert sind. Beispielsweise kann der Pufferspeicher eine Kapazität für 4096 Worte mit einer gleichen Anzahl von Eintrittsstellen in die Pufferspeicher-Adressliste aufweisen.
Eine detaillierte Beschreibung der Funktion und Wirkungsweise der Pufferspeicher- und Adresslisteneinheit 403 ist für das Verständnis der vorliegenden Erfindung nicht erforderlich. Allgemein speichert der Pufferspeicher die zuletzt angeforderte Information und es wird eine Eintrittsstelle in ihn zum gleichen Zeitpunkt eingeschrieben, wo eine solche in einen Speichermodul 106 eingeschrieben wird. Es ist jedoch von Bedeutung, daß die Unversehrtheit eines Pufferspeichers zu allen Zeitpunkten aufrecht erhalten bleibt und daß daher bei einer Speicherfortschreibung hinsichtlich eines Speicherplatzes in dem Speichermodul 106 durch eine Einheit außerhalb des speziellen zentralen Subsystems die entsprechende Eintrittsstelle in dem Pufferspeicher ebenfalls fortgeschrieben wird. Wie nachstehend noch beschrieben wird, führt der Megabus solche Fortschreibungen zur Sicherung der Unversehrtheit fort.
Der Zweck eines Pufferspeichers liegt darin, die Zeit zu reduzieren, die für das Liefern von Daten erforderlich ist, die
31H934
durch einen der Prozessoren CPÜ-100, SIP101 oder CIP-102 adressiert werden. Immer wenn daher eine Speicher-Leseanforderung durch einen dieser Prozessoren ausgegeben wird, so wird die Adressliste des Pufferspeichers abgefragt, um zu sehen, ob diese speziellen Daten darin gespeichert sind. Ist dies der Fall, so wird die Information von dem Pufferspeicher 403 in Form von internen Busdaten LBDT übertragen. In gleicher Weise signalisiert das Ausgangssignal CAHIT,daß die angeforderten Daten entweder in dem Pufferspeicher 303 vorliegen oder nicht vorliegen.
Wenn einer der Prozessoren CIP-100, SIP-101 oder CIP-102 einen in dem Pufferspeicher 403 repräsentierten Speicherplatz fortschreibt, so wird eine Speicher-Schreibanforderung an den betroffenen Speicherplatz in dem Speichermodul 106 ausgegeben, um die Unversehrtheit der darin gespeicherten Daten sicherzustellen.
Die Adressliste innerhalb des Pufferspeichers 403 speichert Adressbezeichnungen, die den gespeicherten Daten zugeordnet sind. Diese Adressen werden durch den virtuellen Adressen-Eingangsmultiplexer 405 geliefert. Der Multiplexer 405 wählt eine virtuelle Adresse aus, die von der Zentraleinheit CPU (CPVADR), den Prozessoren SIP (SIVADR), CIP(CIVADR) oder von dem Megabus (FIAD) geliefert werden. Diese Adressen weisen eine Länge von 24 Bit mit geeigneten Paritätbits auf. Das Ausgangssignal des virtuellen Adressenmultiplexers 405 VAINO:24 wird der Adressliste des Pufferspeicher 403 als Eingangssignal zugeführt.
Wie zuvor erwähnt, wird der Dialog über den Megabus undden internen Bus in einer asynchronen Weise ausgeführt. Somit müssen die Zentraleinheit CPU-100 und die Prozessoren SIP-101 und CIP-102 einen internen Buszyklus anfordern, bevor sie Information zu irgendeiner anderen Einheit innerhalb des zentralen Subsystems, zu der Pufferspeicher/Speicherverwaltungseinheit oder zu einer
31U934
Einheit an dem Megabus übertragen können. Eine vierte Anforderungsquelle für einen internen Buszyklus ist durch einen FIFO-Speicher innerhalb der Pufferspeicher/Speicherverwaltungseinheit 103 gegeben, der eine begrenzte Anzahl von Informationen für die Übertragung über den Megabus 105 enthält. Die in dem FIFO-Speicher gespeicherten Informationsübertragungen sind üblicherweise Hauptspeicher-Schreibzyklen, die durch eine Verarbeitungseinheit an dem Megabus ausgeführt werden.
Die Anforderungssignale CPREQT, SIREQT, CIREQT und FIFOMT werden einem Anforderungs-Entscheidungsschaltkreis 407 zugeführt, der bei einem verfügbaren internen Buszyklus den Buszyklus einem der Anforderer zuordnet. Eine solche Zuordnung wird durch die Freigabesignale CIASND, CPASND, SIASND und FIASND wiedergegeben, die dem Anforderungs-Gewährungsrpgister 409 zugeführt werden und auf den virtuellen Adressen-Eingangsmultiplexer 405, den Speicherbezugs-Multiplexer 411 und den BYAD-MuItiplexer 413 aufgeschaltet werden.
Das Register 409 erzeugt ein Freigabesignal, das zu der anfordernden Einheit übertragen wird, der ein interner Buszyklus gewährt wurde. Somit nehmen die Signale RQGTCP, RQGTCP, RQGTSI, RQGTCI und RQGTFI Werte ein, die den Einheiten CPU, SIP, CIP und FIFO die Gewährung eines internen Buszyklusses anzeigen. Die Ausgangssignale des Registers 409 werden ebenfalls als Eingangssignale dem Befehlsdecodierer 415 zugeführt.
Zusätzliche Steuersignale werden über den internen Bus zwischen der Pufferspeicher/Speicherverwaltungseinheit und den an den internen Bus angeschlossenen Prozessoren übertragen. Das Signal PRINT (Wiederaufnahme von Unterbrechungen) wird durch die Zentraleinheit CPU erzeugt, um anzuzeigen, daß die Zentraleinheit CPU eine Unterbrechung entweder von den Prozessoren
31U934
CIP bzw. SIP oder von einer Einheit außerhalb des zentralen Subsystems, d.h. von einer an den Megabus angeschlossenen Einheit aufnehmen kann.
Das Signal LBMCLR ist normalerweise nicht bestätigt und wird bestätigt, wenn der Druckknopfschalter "Hauptlöschung" auf der CPü-Wartungskonsole gedrückt wird. Wenn das Signal LBMCLR bestätigt ist, so werden Einheiten an dem Bus ausgelöst und führen Qualitäts-Logiktestroutinen QLT aus. Das Signal LBQLTH am Ausgang der Steuerlogik 417 zeigt an, daß ein solcher Qualitäts-Logiktestzyklus ausgeführt wird oder daß ein Fehler während eines QLT-Zyklus festgestellt worden ist.
Das Signal LBPWON liegt bestätigt vor, wenn alle Spannungsversorgungen in dem System ordnungsgemäß arbeiten. Bei einem Spannungsausfall ist das Signal LBPWON wenigstens für zwei ms vor dem Ausfall der Gleichspannung von +5V an der Logik nicht bestätigt. Steuerungen an dem Bus müssen zu diesem Zeitpunkt eine Auslösung ausführen und jeglichen Busverkehr sperren, um die CPU-Software zur Ausführung irgendwelcher Reinigungsoperationen zu befähigen, die speziell im Zusammenhang mit dem Speicher erforderlich sind. Bei der Rückkehr der Spannungsversorgung wird die Gleichspannung von +5V an der Logik stabil, bevor das Signal LBPWON seinen bestätigten Zustand einnimmt. Steuerungen an dem Bus werden bei der Rückkehr der Gleichspannung von +5V ausgelöst.
Die Signale für vorhandene Prozessoren CPPRZT, CIPRCT und SIPRCT zeigen an, daß die zugeordneten Prozessoren installiert sind und in dem zentralen Subsystem betrieben werden. Die Signale für belegte Prozessoren CIBUSY und SIBUSY werden über den internen Bus über ausgewählte Leitungen übertragen und bilden von den Prozessoren CIP und SIP erzeugte Antworten, die anzeigen,
31H334
daß die Prozessoren nicht in der Lage sind, bestimmte Anforderungen oder Datenübertragungen anzunehmen, da sie mit anderen Operationen beschäftigt sind.
In gleicher Weise liegen die Signale CITRAP und SITRAP auf bestimmten Leitungen des internen Busses in dem Fall vor, wo eine oder mehrere Einheiten an dem Bus einen Bearbeitungszustand festgestellt haben, der einen Abfang erfordert, der oftmals durch eine erzwungene Verzweigung auf einen speziellen Firmware-Speicherplatz verwirklicht wird.
Der BYAD-Mu.ltiplexer 413 erhält die Eingangssignale zugeführt, die gemeinsam mit BYAD bezeichnet sind. Diese Signale sind durch das Adressbit 2 3 der Adressen vorgegeben, die von den Einheiten CPU, CIP, SIP und FIFO geliefert werden. Das Ausgangssignal des Multiplexers wird der Steuerlogikeinheit 417 zugeführt. Das Signal BYAD ist ein Signal, das eine Bezugnahme auf ein bestimmtes Byte innerhalb eines Datenwortes anzeigt. Wie erwähnt,besitzt des Datenwort eine Länge von 16 Bit und umfaßt zwei Bytes mit 8 Bit. Wie zuvor festgestellt, ist der interne Bus in der Lage,parallel zwei Datenworte zu übertragen, obgleich nur ein Datenbyte aufeinmal übertragen werden kann.
Dem MREF-Multiplexer 411 wird das Freigabesignal von dem Anforderungs-Entscheidungsschaltkreis 407 zugeführtfum anzuzeigen, ob einem der Prozessoren oder dem FIFO-Speicher des Subsystems ein interner Buszyklus zuzuordnen ist. Der Multiplexer 411 wählt Eingangssignale entweder von den Einheiten CPU, SIP oder CIP bzw. von dem Speicher FIFO aus,und er liefert die ausgewählten Signale zu dem Zeittaktgenerator 419. Die Eingangssignale des Multiplexers 411 sind durch MREF, WRIT und DBLW mit vorangestelltem Doppelbuchstaben wie beispielsweise CP, SI, CI und FI vorgegeben, die die Quelle der Signale bezeichnen
3114334
Diese Vereinbarung wird während der detaillierten Beschreibung beibehalten.
Wie zuvor e-rwähnt, zeigt das Signal WRIT im bestätigtem Zustand an, daß keine Antwort erwartet wird, wenn eine Übertragung von einer Haupt- zu einer Nebeneinheit erfolgt. Wenn dieses Signal nicht bestätigt ist und eine übertragung begleitet, so zeigt es an, daß eine Antwort durch die Nebeneinheit zu der Haupteinheit erwartet wird. Das Signal MREF legt fest, ob die Information auf dem Adressbus eine Speicheradresse oder eine Ein/Ausgabeadresse (Kanalnummer und Funktionscode) ist. Das Signal DBLW zeigt die Anzahl der Worte in dem Datenfeld auf dem internen Bus während einer Schreiboperation oder einer Antwort auf eine Leseanforderung an.
Die Signale DBLW, BYAD, WCTL1 und WCTL2 werden zusammen benutzt, um die in die Pufferspeicher/Speicherverwaltungseinheit oder in den Systemspeicher in einem Schreibzyklus einzuschreibenden Bytes zu steuern. Diese Signale sind durch vier Binärsignale gegeben und sie können somit bis zu 16 mögliche Kombinationen vorgeben, die nicht alle benutzt werden. Da der interne Bus in der Lage ist t zwei Worte oder vier Bytes gleichzeitig zu übertragen,können sie als Byte 0 und Byte 1 des Wortes η und Byte 0 und Byte 1 des Wortes n+1 betrachtet werden. Wenn die Signale WCTL1, DDLW und WCTL2 alle den Binärwert "0" aufweisen, dann interpretiert die Pufferspeicher/ Speicherverwaltungseinheit oder der Systemspeicher eine Schreibanforderung so, daß das Byte 0 und das Byte 1 des Wortes η unabhängig von dem Wert des Signales BYAD geschrieben werden. Wenn die Signale BYAD, DBLW und WCTL2 den Binärwert "0" und das Signal WCTL1 den Binärwert "1" aufweisen, so wird nur das Byte 0 des Wortes η geschrieben. Wenn die Signale BYAD und WCTL1 beide den Binärwert "1" und die Signale DBLW und
WCTL2 beide den Binärwert "O" aufweisen, so wird das Byte 1 des Wortes η geschrieben. Die Bytes 0 und 1 des Wortes η und das Byte 0 des Wortes n+1 werden geschrieben, wenn die Signale WCTL1 und WCTL2 den Binärwert "0", das Signal DBLW den Binärwert "1" und das Signal BYAD entweder den Binärwert "0" oder "1" aufweisen. Wenn die Signale BYAD, WCTL1 und DBLW alle den Binärwert "1" aufweisen und das Signal WCTL2 den Binärwert "0" aufweist, so wird das Byte 1 des Wortes η und das Byte O des Wortes n+1 geschrieben. Die Bytes O und 1 sowohl des Wortes η als auch des Wortes n+1 werden immer dann geschrieben, wenn beide Signale DBLW und WCTL2 den Binärwert "1" besitzen, das Signal WCTL2 den Binärwert "0" besitzt und das Signal BYAD entweder den Binärwert "0" oder"1" aufweist. Schließlich werden das Byte 1 des Wortes η und die Bytes O und 1 des Wortes n+1 geschrieben, wenn alle vier Steuersignale den Binärwert "1" besitzen.
Der Zeittaktgenerator 419 empfängt die ausgewählten Ausgangssignale von dem Multiplexer 411 und liefert geeignete Zeittakt-Steuersignale an die Steuerlogikeinheit 417 in Abhängigkeit davon, ob ein Speicherreferenzsignal oder ein Ein/Ausgabe-Referenzsignal gerade von dem internen Bus 9 empfangen wird t und in Abhängigkeit davon,ob es eine Auslöseanforderung oder eine Antwort auf eine Anforderung ist.
Die Signale LBOCK und LBSHBC besitzen beide eine unabhängige Bedeutung sowie eine gemeinsame Interpretation. Wenn das Signal LBSHWC den Binärwert "1" aufweist und über den internen Bus zu den Prozessoren in dem zentralen Subsystem übertragen wird, so legt es fest, daß die begleitenden Daten aufgrund einer Eingabeanweisung übertragen werden, die zuvor durch einen der Prozessoren des zentralen Subsystems zu der Pufferspeicher/ Speicherverwaltungseinheit übertragen wurde. Wenn das Signal
31H334
LBSHWC durch die Prozessoren in dem zentralen Subsystem erzeugt wird und das Signal MREF inaktiv ist (Binärwert "0"), so legt eine Prozessorantwort auf eine Eingabeanweisung fest, die zuvor während eines vorangegangenen internen Buszyklus zu dem antwortenden Prozessor übertragen wurde. Bei einer unabhängigen Betrachtung definiert das Signal LBSHWC in dem einen Zustand,daß die begleitenden Daten einen Antwort-Buszyklus auf einen zuvor empfangenen Anforderungs-Buszyklus darstellen.
Das Signal LBLOCK zeigt bei einem Binärwert "1" an, daß eine Lese, Modifizier- oder Schreibanforderung (RMW) durch die Zentraleinheit CPU angefordert worden ist. Eine Verriegelung ist in Wirklichkeit ein Mittel zur Sperrung einer Speicherbezugnahme auf eine bestimmte Adresse in der Pufferspeicher/Speicherverwaltungseinheit und in dem Systemspeicher] nachdem auf diesen Speicherplatz gerade durch eine an den Megabus angeschlossene Einheit Zugriff genommen wurde. Das Konzept der Verriegelung eines bestimmten Speicherplatzes zur Verhinderung des Zugriffes durch eine andere anfordernde Einheit unter bestimmten Bedingungen ist bekannt und wird benutzt,um die Unversehrtheit der in dem verriegelten Speicherplatz gespeicherten Information sicherzustellen. Bei der vorliegenden Erfindung liegt das Signal LBLOCK sowohl für verriegelte als auch für nicht verriegelte Arten von Anforderungen RMW bestätigt vor und wird zusammen mit dem Signal LBSHBC benutzt,um die Verriegelungs/Entriegelungsfunktion während eines RMW-Zyklus festzulegen. Das Signal LBSHWC ist nicht bestätigt (Binärwert 11O") bei einer verriegelten RMW-Operation und es ist bestätigt (Binärwert "1") bei einer entriegelten RMW Operation. Das Signal MREF muss sowohl bei verriegelten als auch bei entriegelten RMW-Anforderungen bestätigt vorliegen, da eine Speicherbezugnahme erfolgt. Das Signal LBWRIT legt fest, ob durch eine vorge-
31U934
gebene RMW-Operation der Speicher gelesen oder geschrieben wird, da dieses Signal die Richtung der auszuführenden übertragung bestimmt, d.h., ob die Übertragung von einer Hauptzu einer Nebeneinheit oder umgekehrt erfolgt.
Die erwähnte Verriegelung wird durch ein Flip-Flop innerhalb des Speichers verwirklicht, dessen Zustand durch die Buszyklen festgestellt wird, die die Verriegelung setzen oder zurückstellen. Die Verriegelung kann als Teil eines Schreibzyklus oder einer Leseanforderung gesetzt werden und in gleicher Weise zurückgestellt werden. Wenn eine Verriegelung einmal gesetzt ist, so wird einerEinheit,die eine Schreib-, Test- und Setzverriegelung oder eine Lese-, Test- und Setzverriegelung auszugeben versucht,eine NAK-Antwort gegeben. Einheiten die normale Schreib- oder Lesezyklen ausführen, beachten den Verriegelungzustand nicht und sie empfangen ACK-NAK- oder Warte-Antworten,wie dies weiter unten erläutert wird.
Das Signal CPPROC zeigt im bestätigten Zustand der Pufferspeicher/Speicherverwaltungseinheit an, daß die laufende Speicheranforderung überprüft werden muss, um einen Gültigkeitsschutz auszuführen. Dies betrifft das zuvor erläuterte Konzept der Ringnummern und beinhaltet eine Zugriffshirarchie innerhalb des Systems, wobei bestimmte Speicherplätze nur zum Lesen, zum Lesen und Schreiben nur durch bestimmte Systemelemente oder nur unter bestimmten festgelegten Bedingungen zugänglich sind. Das allgemeine Konzept des beschränkten Zugriffes auf bestimmte Information bzw. Speicherplätze ist in der Datenverarbeitungstechnik bekannt und bildet kein spezifisches Merkmal der vorliegenden Erfindung. Es ist für das Verständnis ausreichend, daß bei einer Speicher-Zugriffsanforderung auf einen Speicherplatz durch einen nicht autorisierten Anforderer der Speicher eine aufgetretene Schutz-
31U334
Übertretung anzeigt und einen Fehlerindikator an die anfordernde Einheit weiterreicht.
Die ersten 3 Bit der internen Bus-Anweisungsleitungen LBCMD werden dem internen Bus durch eine der Einheit CPU, SIP oder CIP zugeführt und an den Kanalnummer-Decodierer 421 geliefert. Innerhalb eines zentralen Subsystems benutzt die Pufferspeicher/ Speicherverwaltungseinheit eine 3 Bit-Kanalnummer (intern), die auf die entsprechende 10 Bit-Kanalnummer (System) bezogen ist. Somit kann über die Kanalnummern von beispielsweise 000, 001, 010 und 011 auf die Zentraleinheit CPU, den Prozessor SIP, den Prozessor CIP und die Pufferspeicher/Speicherverwaltungseinheit Bezug genommen werden und durch eine Kanalnummer 111 auf dem internen Bus kann auf eine Einheit Bezug genommen werden, die an den Megabus angeschlossen ist. Wie erkennbar ist. zeigt der Kanalnummer-Decodierer 421 dem Befehlsdecodierer an, daß entweder der Pufferspeicher oder der Megabus die Bestimmungseinheit ist,und er zeigt ebenfalls der Steuerlogik 417 an, daß entweder der Pufferspeicher, der Megabus, der Prozessor CIP, die Zentraleinheit CPU oder der Prozessor SIP die Bestimmungseinheit bildet. Dem Kanalnummer-Decodierer 421 werden ebenfalls die 3 am wenigsten signif ikanten Bits einer Megabus-Adresse BSAD15:3 von dem Megabus-Kanalnummer-Decodierer 422 zugeführt, wenn entweder eine Anforderung oder eine Antwort von einer Einheit an den Megabus zu der Pufferspeicher/ Speicherverwaltungseinheit zu übertragen ist.
Das Signal LCND3:6 versorgt den Anweisungscode-Decodierer 423 mit dem Anweisungscode t der durch die Einheiten CIP, SIP oder CPU erzeugt wird, oder mit einem Anweisungscode, der durch die Megabus-Anweisungs-Codetreiber 425 (BSAD18:6) geliefert wird. Der Anweisungscode-Decodierer 423 ist in der Lage, eines
31U934
von 6 Ausgangssignalen an die Steuerlogik 417 zu liefern/ wodurch die auszuführende angeforderte Funktion angezeigt wird. Die Anweisungen umfassen das Signal LSDSCR, das das Laden eines Segmentdescriptors durch den anfordernden Prozessor in die Segment-Descriptortabelle der Pufferspeicher/ Speicherverwaltungseinheit anfordert, das Signal LDSGBR, das ein Laden des Segmentbasisregisters anfordert, das Signal LDMDER1 das das Laden eines ausgewählten Bits des Segmentdescriptors in das Modusregister der Pufferspeicher/Speicherverwaltungseinheit anfordert, das Signal XLTADR,das eine Übersetzung einer virtuellen Adresse in eine physikalische Adresse anfordert, und daß hierbei ein Speicherzugriff ausgeführt wird und wobei die übersetzte Adresse zurück zu dem Anforderer übertragen wird, das Signal IIVCTR, das das Entladen des Unterbrechungsvektors zu der Zentraleinheit CPU anfordert und das Signal LVLCHG, das ein Laden des Unterbrechungs-Pegelregisters anfordert.
Ein genaues Verständnis der exakten aufgrund einer decodierten Funktion ausgeführten Operationen ist für die vorliegende Erfindung nicht erforderlich.
Der Steuerlogik 417 wird ebenfalls ein Eingangssignal von dem MMü-Fehlerlogikmodul 427 zugeführt. Im allgemeinen gibt das Ausgangssignal des Moduls 427 den Auftritt einer Anforderung nach einem gerade für das Datenverarbeitungssystem nicht verfügbaren Systemmittel oder den Auftritt einer Speicher-Schutzübertretung wieder. Wenn beispielsweise die Zentraleinheit CPU eine Leseanforderung an den Systemspeicher bezüglich einer Adresse ausgibt, die in dem Systemspeicher nicht enthalten ist, so ist die Adresse für die Zentraleinheit CPU nicht verfügbar und der Systemspeicher zeigt dieses durch die Signale UARL
3 11
(linkes Wort nicht verfügbar) und UARR (rechts Wort nicht verfügbar) an. In gleicher Weise wird,wenn eine Übertretung der Priorxtätsringstruktur in Folge einer verbotenen Anforderung durch die Einheiten CIP, SIP oder CPU aufgetreten ist, dies durch das Signal PROV (Schutzübertretung) angezeigt.
Die Steuerlogikeinheit 417 erhält ferner Eingangssignale direkt von dem FIFO-Speicher (Fig.12) zugeführt, die Übertragungen von dem Megabus zu der Pufferspeicher/Speicherverwaltungseinheit wiedergeben und an Elemente innerhalb des zentralen Subsystems gerichtet sind. Diese Eingangssignale sind an den Ausgängen des FIFO-Speichers in Form der Signale FIMREF, FIBYTE, FIWRET, FISHBC, FTLOCK, FIDBPL, FIDBWD, FIRIDR, FIREDL und FIYELO dargestellt. Die Funktion einiger dieser Signale ist nicht erläutert worden: Es sei jedoch vermerkt, daß die Funktion der Signale FIBYTE und FIDDWD derjenigen der Signale BYAD und DBLW entspricht, dieim Zusammenhang mit dem internen Bus erläutert wurden. Die Signale FIREDR, FIREDL und FIYELO definieren zusammen die Unversehrtheit der Daten,die in diesem gleichen Buszyklus übertragen werden. Das Signal FIREDL zeigt im bestätigten Fall an, daß die begleitenden übertragenen Daten fehlerhaft sind. Dieses Signal wird durch den Systemspeicher bei einer Antwort auf eine Leseanforderung benutzt; um einen unkorrigierbaren Fehler in dem zurückgeführten am weitesten links stehenden Wort anzuzeigen, wenn zwei Worte parallel zurückgeführt werden. Wenn nur ein Wort zurückgeführt wird, so wird dieses als das am weitesten links stehende Wort betrachtet. Das Signal FIREDR zeigt im bestätigten Fall eben» falls an, daß die begleitende übertragene Information fehlerhaft ist. Dieses Signal wird durch den Speicher bei einer Antwort auf eine Leseanforderung benutzt, um einen unkorrigierbaren Fehler in dem am weitesten rechts stehenden zurückgeführten Wort anzuzeigen, sofern zwei Worte parallel zurückgeführt werden.
I 4 j ο
Ein Beipiel eines Fehlers, bei dem die Signale FIREDR und FIREDL bestätigt vorliegen, ist durch einen unkorrigierbaren Paritätsfehler in den entsprechenden Worten der zurückgeführten Daten vorgegeben. Wenn das Signal FIYELO während der zweiten Hälfte eines Buszyklus bestätigt vorliegt, so zeigt es an, daß die begleitende übertragene Information korrekt ist, aber eine Fehlerkorrektur ausgeführt worden ist. Es bezeichnet somit einen Softfehler, wie beispielsweise einen korrigierten Paritätsfehler, und es wird benutzt um anzuzeigen, daß eine Wartung in Aussicht genommen werden sollte, bevor die Fehler unkorrigierbar werden. Wenn ein Fehlerfeststeil- und Korrekturspeicher EDAC verwendet wird, so zeigt das Signal FIYELO im bestätigten Fall an, daß beispielsweise ein Einzelbit-Paritätsfehler festgestellt worden ist und durch den Speicher korrigiert wurde.
Die Funktion des Signales FIDBPL (Doppelauszug) wird später erläutert und zeigt im allgemeinen an, daß anstelle der Paralellübertragung zweier Worte während eines Buszyklus zwei Buszyklen verwendet werden müssen, um Einzelworte nacheinander zu übertragen .
Die Ausgangssignale der Steuerlogikeinheit 417 bilden die Pufferspeicher-Steuersignale CACNTRLO:10. Diese Signale stellen die gleichen Statussignale wie die zuvor beschriebenen Signale FICNTRLO:10 dar und sie umfassen die Signale CAMREF, CABYTE, CAWRIT, CASHBC, CALOCK, CADBPL, CADBWD, CAREDR, CAREDL und CAYELO, die durch den Megabusadapter gemäß Figur 12 zu dem Megabus übertragen werden.
Die Daten- Ausgangssignale DCNNCP, DCNNSI und DCNNCI zeigen an, daß ein Antwortzyklus von der Pufferspeicher/Speicherverwaltungseinheit an die Einheiten CPU, SIP oder CIP gerichtet
ι I κ- j ο -■«
wurde. Beim Empfang durch die entsprechenden Prozessoren dienen diese Signale zur Verriegelungsfreigabe der übertragenen Daten, Adressen und Steuersignale in die geeigneten Register der Prozessoreinheiten.
Die Leitung LBINTEGRITY in Figur 11 bezieht sich gemeinsam auf die Signale LBREDR, LBREDL, LBYELO, LBUARL, LBUARR und LBTROV, die an die Einheiten CIP, SIP oder CPU übertragen werden, um den Zustand der übertragenen Daten anzuzeigen.
Das Signal INPNDG wird alleine zwischen dem Pufferspeicher und der Zentraleinheit CPU übertragen und zeigt der Zentraleinheit CPU, daß eine Unterbrechung mit höherer Priorität gegenüber dem laufenden Unterbrechungs-Prioritätspegel durch die Pufferspeicher/Speicherverwaltungseinheit angenommen worden ist. Die Signale MYCHN1 und MYCHN2 werden von der Pufferspeicher/Speicherverwaltungseinheit zu der Zentraleinheit CPU übertragen um dieser die zugeordnete Kanalnummer mitzuteilen. Diese Leitungen repräsentieren entsprechend die Ausgänge 21 und 22 eines Schalters HXRTRY (hexadezimaler Drehschalter) innerhalb der Pufferspeicher/Speicherverwaltungseinheit, die;
wie zuvor erwähnt,die manuell zugeordneten Kanalnummern zu dem Pufferspeicher und die zugeordneten Prozessoren definiert.
Das Signal LBACKR, das durch die Steuerlogik 417 erzeugt wird, überträgt die bekannten Signale ACK und NAK zwischen den Einheiten an dem Megabus oder zwischen der Pufferspeicher/Speicherverwaltungseinheit und den Einheiten CPU, SIP oder CIP. Das Signal LBACKR ist ein Binärsignal mit zwei Zuständen, wobei ein Zustand das Signal ACK und der andere Zustand das Signal NAK vorgibt.
Das letzte Signal in Figur. 11 ist das Signal LBLKNC, das nur
1 Li J
während einer verriegelten Speicher-Leseanforderung an den Systemspeicher eine Bedeutung besitzt. Wenn das Signal LBLOCK bestätigt vorliegt und ein adressierter Speicherplatz sich in dem Pufferspeicher befindet, so gibt das Signal LBLKNC dem Systemspeicher die Anweisung, eine aktuelle angeforderte Leseoperation nicht auszuführen, sondern sein Verriegelungs-Flip-Flop zu setzen/zurückzustellen und die Daten von der Pufferspeicher/Speicherverwaltungseinheit zurückzuübertragen. Da das System gemäß der vorliegenden Erfindung verschiedene Arten von Speichermodulen umfassen kann, was später erläutert wird, kann die genaue Antwort des Speichermoduls auf ein Signal LBLKNC variieren.
Die Figuren 13, 14 und 15 zeigen in einer Blockdiagrammdarstellung die Schnittstellen der Einheiten CPU, CIP und SIP mit dem internen Bus. Da der Aufbau der Zentraleinheit CPU eingangs näher erläutert wurde, soll dies hier nicht wiederholt werden. Für ein Verständnis der vorliegenden Erfindung genügt es, die in den Figuren 13 bis 15 dargestellten Schnittstellenelemente zu betrachten.
Gemäß Figur 13 umfaßt die CPU-Schnittstelle ein privates Schnittstellenregister 451, dem die Signale RQGTCP und DCNNCP zugeführt werden, die über den internen Bus übertragen werden. Das Signal RQGTCP dient als ein Freigabesignal, um eine Informationsübertragung von der Zentraleinheit CPU zu einer Bestimmungseinheit während eines bestimmten Buszyklus auszulösen. Das Signal DCNNCP gestattet den Schnittstellenelementen in Figur 13 den Informationsempfang über den internen Bus.
Die Definitionen der Signale, die von den in Figur 13 dargestellten Registern empfangen und/oder gesendet werden, sind zuvor erläutert worden, mit Ausnahme der Ausgangssignale des virtuellen Adressregisters 453. Dieses Register empfängt und
i I k j J ii
überträgt 23 Adressbits CPVADRO:23 entsprechend irgendeiner virtuellen Adresse, wenn eine Speicherbezugnahme durch die Zentraleinheit CPU ausgelöst wird, oder eine Bestimmungs-Kanalnummer, wenn eine Ein/Ausgabe oder ein anderer Dialog mit einer Nicht-Speichereinheit angefordert wird. Das Ausgangssignal CPUBYAD ist ein Einzelbit-Signal, das anzeigt, ob auf das Byte 1 oder das Byte 2 eines Datenwortes Bezug genommen wird.
Das CPU-Statusregister 452 erhält die meisten Eingangsignale zugeführt, um die Zentraleinheit CPU von dem Zustand der anderen Elemente in dem System zu informieren. Das Statusregister berichtet über das Signal CPPRZT über eine wirksame Zentraleinheit CPU in dem System.
Das CPU-Anweisungsregister 457 erzeugt die 9 Bit-Anweisungen mit einer 3 Bit-internen Kanalnummer und 6 Bit-Anweisungsdaten. Da die Zentraleinheit CPU sowohl Daten empfangen als auch senden kann, umfaßt sie sowohl ein Daten-Eingangsregister 459 als auch ein Daten-Ausgangsregister 461. Wie hinsichtlich des CPU-Daten-Ausgangsregisters 461 dargestellt, gehen 32 Bits der Daten in einen Daten-Empfangsteil und 4 Paritätbits werden in einen Paritätbitteil übertragen. Diese gleiche Einrichtung, d.h. die 4 Paritätbits sind in dem CPU-Daten-Eingangsregister 459 dupliziert und diese Einrichtung ist in jedem Element des Systems enthalten, das gleichzeitig 2 Datenworte sendet oder empfängt. Schließlich erzeugt das CPU-Speicherreferenz-Steuerregister 463 die Information, die den durch die Zentraleinheit CPU angeforderten Operationstyp beschreibt und es definiert die Bytes innerhalb eines adressierten Datenwortes, auf die Zugriff genommen wird.
Die Figuren 14 und 15 veranschaulichen in einem Blockdiagramm
31K334
die Schnittstellen der Einheiten CIP und SIP mit dem internen Bus. über die in den Figuren 14 und 15 dargestellten Einzelheiten hinausgehende Einzelheiten, die die zahlreichen Elemente innerhalb der Einheiten CIP und SIP betreffen, sind für das Verständnis der vorliegenden Erfindung nicht erforderlich und sollen daher nicht näher erörtet werden.
Gemäß Figur 14 signalisiert das Anforderungs-Gewährungssignal RQGTCI, daß ein Buszyklus der Einheit CIP gewährt worden ist und dieses Signal gestattet die Informationsübertragung über den internen Bus. Das Signal DCNNCI informiert die Einheit CIP darüber (daß ein Buszyklus an sie gerichtet wurde und daß die Daten in dem Buszyklus übertragen werden. Somit ermöglicht das Signal DCNNCI den Registern in dem Schnittstellenteil der Einheit CIP die Aufnahme der Information, welche über den internen Bus übertragen wird.
Figur 15 zeigt in einem Blockdiagramm die Schnittstelleneinrichtung innerhalb der Einheit SIP für den Empfang und das Senden von Information von und zu anderen Elementen in dem System a.n dem internen Bus. Das Signal RQGTSI, das von dem Anforderungs-Gewährungsregister erzeugt wird und über den internen Bus zu der Einheit SIP übertragen wird, gestattet der Eimheit SIP die Informationsübertragung zu dem internen Bus aus den in Figur 15 dargestellten Registern. Das Signal DCNNSI, das eine Informationsübertragung zu der Einheit SIP begleitet^ gestattet den dargestellten Registern die Annahme der Information von dem internen Bus.
Figur 12 zeigt in einem Blockdiagramm den Teil der Pufferspeicher/Speicherverwaltungseinheit, der die Schnittstelle eines zentralen Subsystems mit dem Megabusbildet. Dieser Megabus-Schnittstellenteil, d.h. der Megabus adapt er; liefert die
31UD34
zuvor erwähnten Ausgangssignale von dem FIFO-Speicher, d.h. die 32 Bit der von dem Megabus übertragenen Daten MBDTO:32 und die von dem Megabus übertragene Adresse FIADO:24. In gleicher Weise werden die von dem internen Bus übertragenen Daten LDTRO:32, die von dem internen Bus übertragene Adresse LBADO:24 und die übertragenen Steuersignale beispielsweise CAMREF, CABYTE, CAWRIT usw., die durch die Steuerlogik 417 (Fig.11) erzeugt werden, durch die in Figur 12 dargestellte Einrichtung zu dem Megabus übertragen.
Bevor Einzelheiten des Adaptersgemäß Figur 12 betrachtet werden, sollen bestimmte Teile der Figuren 16 bis 18 betrachtet werden, da diese Figuren in Blockdiagrammform den Schnittstellenteil der Speichermodule 106 zeigender für die Verwendung bei dem vorliegenden Datenverarbeitungssystem geeignet ist. Wie zuvor erläutert, besitzt der interne Bus die Fähigkeit,32 Datenbits parallel innerhalb eines zentralen Subsystems zu übertragen. In gleicher Weise kann der Megabus bidirektional parallel 32 Datenbits übertragen. Es ist jedoch ein Merkmal des Systems, daß der Megabus mit Speichermodulen oder anderen Verarbeitungseinheiten in Verbindung treten kann, die nur eine Übertragungskapazität von 16 parallelen Datenbits aufweisen. Wenn somit ein zentrales Subsystem während eines Buszyklus 32 Datenbits an die Pufferspeicher/
sendet
Speicherverwaltungseinheit 103,um diese über den Megabus zu einem Speichermodul 106 zu übertragen, und der Bestimmungs-Speichermodul/B nur in der Lage ist 16 Bits parallel aufzunehmen, wie dies in den Figuren 16 und 17 der Fall ist, so muß die Pufferspeicher/Speicherverwaltungseinheit und insbesondere der Megabusadapter 2 Buszyklen erzeugen und 16 Bits in jedem Zyklus übertragen. In gleicher Weise muß ein 16 Bit-Speichermodul ,der auf eine Leseanforderung von 2 Worten bzw. 32 Bit antwortet von dem Megabus-Adapter 2 Megabus-Zyklen bereitgestellt bekommen, um alle 32 angeforderten Datenbits zu über-
31 Ί / ""· O f ι t 4 w ■,
tragen und in einem parallelen 32 Bit-Datenfeld zusammenzusetzen.
Gemäß Figur 12 überträgt der Megabus 501 die 32 Datenbits BSDT (+ 4 Paritätsbits), 24 Adressbits BSAD {+ 1 Paritätbit) und zahlreiche Steuersignale zu einem Sende/Empfangsschaltkreis 503. Wenn eine der Einheiten an dem Megabus Information über den Megabus zu dem Megabusadapter eines speziellen zentralen Subsystems überträgt, so ermöglichen beispielsweise die Sender/ Empfänger 503 die Übertragung der 32 Datenbits BSDT zu dem FIFO-Speicher 505. Wenn jedoch die übertragung von der Pufferspeicher/Speicherverwaltungseinheit zu einer Megabuseinheit erfolgt, so werden die 32 Datenbits LDTRO:16 und MYDTO:16 durch die Sender/Empfänger 503 zu de.n Megabus-Datenleitungen BSDT übertragen. Als ein weiteres Beispiel wird das von einer Megabuseinheit über den Megabus zu der Pufferspeicher/Speicherverwaltungseinheit übertragene Steuersignal BSBYTE über die Sender/Empfänger 503 in den FIFO Speicher übertragen. An einem Ausgang des zentralen Subsystems das entsprechende innerhalb des zentralen Subsystems erzeugte SignaL CABYTE auf die Leitung BSBYTE des Megabusses 501 durch die Sender/Empfänger 503 geschaltet.
Viele der Steuersignale des Megabusses sind Duplikate der zuvor erläuterten Steuersignale des internen Busses, so daß ein Verständnis der Bedeutung dieser Signale unmittelbar aus der vorangegangenen Erläuterung erfolgt. Diese Signale umfassen die Signale BSREQT,BSDCNN, BSWAIT, BSLKNC, BSQLTA, BSMCLR, BSPWON, BSRINT, BSTRAP, BSDT, BSAD, BSMREF, BSBYTE, BSWRIT, BSSHBC, BSLOCK, BSDBWD, BSREDR, BSREDL und BSYELO. Die verbleibenden Steuersignale sollen in näheren Einzelheiten erläutert werden.
Das Signal BSREQH zeigt eine Busanforderung mit hoher Priorität
Ji ί -, ν_- O ·4
durch eine Einheit an dem Megabus mit hoher Priorität an. Im bestätigtem Fall zeigt dieses Signal an, daß eine oder mehrere Einheiten in einer Gruppe mit hoher Priorität an dem Megabus einen Buszyklus angefordert hat. Im unbestätigtem Fall zeigt das Signal an, daß keine unerledigten Anforderungen von Einheiten mit hoher Priorität vorliegen. Das Signal BSREQL zeigt im bestätigten Fall an, daß eine oder mehrere Einheiten in einer Gruppe mit geringer Priorität an dem Megabus einen Buszyklus angefordert haben. In gleicher Weise zeigt dieses Signal im nicht bestätigten Fall an, daß keine unerledigten Anforderungen einer Einheit mit geringer Priorität vorliegen.
Das Konzept der Einheiten an dem Megabus ; die in Gruppen hoher oder niedriger Priorität gruppiert sind, bildet keinen Teil der vorliegenden Erfindung. Es ist im Stand der Technik bekannt, daß bestimmte Einheiten mit unterschiedlichen Prioritätspegeln entsprechend dem Aufbau eines Datenverarbeitungssystem ausgestattet sind. Beispielseise wird normalerweise einer Zentraleinheit eine geringe Priorität und einer Speichereinheit eine hohe Priorität zugeordnet. Ein solches Prioritätsschema stellt sicher, daß immer dann, wenndie Speichereinheit in der Lage ist, Daten aufgrund einer Speicher-Leseanforderung zu übertragen,ein Buszyklus für den Speicher bereit gestellt wird, bevor ein Buszyklus der Zentraleinheit gewährt wird. Der Grund für dieses Schema ist darin zu sehen, daß die Zentraleinheit die Speicher-Leseanforderung ausgibt und auf die angeforderte Information wartet.
Die Datenleitung BSTIE führteine weitere Gruppe von Prioritätssignalen, die von dem Megabusadapter benutzt werden, um eine Entscheidung bei Anforderungen nach Megabuszyklen zu treffen und festzustellen, welcher Einheit an dem Megabus der nächste Magabuszyklus gewährt wird. Die Gruppe der Signale auf
31
der Leitung BSTIE umfaßt die Signale BSIUOK, BSHUOK, BSGUOK usw.,die über den Megabus auf zugeteilten Leitungen verlaufen, so daß jede Megabuseinheit einen Megabuszyklus anfordern kann oder in einer geordneten Reihenfolge Zugriff zu sich selbst gewähren kann. Eine geeignete Einrichtung sowie ein Verfahren zur Ausführung von Tiebreak-Routinen für einen geordneten Zugriff auf Einheiten an dem Megabus kann in näheren Einzelheiten der US-PS 4 050 097 entnommen werden. Da die genaue Wirkungsweise der Tiebreak-Einrichtung innerhalb der Pufferspeicher/ Speicherverwaltungseinheit und der Meyabuseinheiten für ein vollständiges Verständnis der vorliegenden Erfindung nicht erforderlich ist, soll darauf nicht näher eingegangen werden.
Die Signale BSACKR und BSNAKR entsprechen den zuvor erläuterten Werten des Signales LBACKR. Das Signal BSACKR zeigt somit an,' daß eine Nebeneinheit eine Übertragung von einer Haupteinheit
hat
angenommen, wobei dieses Signal beispielsweise durch einen Speichermodul nach einer Lese- oder Schreibanforderung durch einen Prozessor des zentralen Subsystems ausgegeben werden kann. In gleicher Weise zeigt das Signal BSNAKR an, daß die Nebeneinheit die übertragung aus Gründen verweigert, die für die spezielle Nebeneinheit spezifisch sind. Im allgemeinen wird das Signal BSNAKR für die Software zugänglich gemacht, so daß spezifische zu unternehmende Maßnahmen zu einer Softwareentscheidung werden. Wo das Signal benutzt wird,um anzuzeigen, daß die Nebeneinheit beschäftigt ist, kann davon ausgegangen werden, daß der Belegtzustand für eine lange Zeitperiode bestehen bleibt.
Zusätzlich zu der Möglichkeit, daß eine adressierte Nebeneinheit ein Signal BSACKR, BSWAIT oder BSNAKR ausgibt, besteht die Möglichkeit, daß die Nebeneinheit überhaupt keine Antwort ausgibt. Wenn somit einige \ls seit der Ausgabe eines Signale BSTCNN durch den Megabusadapter verstreichen, wobei dieses Sig-
nal anzeigt, daß eine Datenübertragung zu der Nebeneinheit während eines bestimmten Buszyklus ausgeführt werden soll,und wenn keine Antwort von der Nebeneinheit erfolgt, so kann davon ausgegangen werden, daß die adressierte Nebeneinheit innerhalb des Systems nicht vorliegt. Jedes System enthält zumindest einen Zeitgeber pro Bus, d.h. pro interner Bus bzw. Megabus, der ein NAK-Signal ausgibt, wenn eine Nebeneinheit in dem System fehlt. Dadurch wird ein Hängenbleiben vermieden, das anderweitig auftreten würde. Die Anordnung und der Betrieb des Zeitgebers sind bei Datenverarbeitungssystemen bekannt.
Zur weiteren Erläuterung einer BSWAIT-Antwort sei vermerkt, daß eine Haupteinheit, die eine solche Antwort empfangen hat, sich über den zuvor erwähnten Tiebreak-Schaltkreis für den allernächsten Buszyklus bewirbt. Die Haupteinheit mit einer hohen Priorität kann jeden einzelnen Buszyklus in Anspruch nehmen, vorausgesetzt, daß sich nicht Einheiten mit höherer Priorität um diesen Zyklus bewerben und keine BSWAIT-Antwort vorliegt.
Bevor die verbleibenden Megabussignale erläutert werden, sei die Beziehung der Figuren 16, 17 und 18 mit Figur 11 erläutert
Die Figuren 16 bis 18 zeigen die Schnittstellenteile dreier unterschiedlicher Typen von Speichermodulen, die an den Megabus angeschlossen werden können,um mit der Pufferspeicher/ Speicherverwaltungseinheit und dem zentralen Subsystem in Verbindung zu treten. Figur 16 veranschaulicht in einem Blockdiagramm die Register innerhalb eines Speichermoduls,aus dem durch einen Einzelauszug ein Datenwort mit einfacher Breite entnommen wird. Dieser Speichermodul umfaßt einen Speicher^ der parallel 16 Datenbits aufnehmen und ausgeben kann und der aufgrund einer Speicher-Leseanforderung nur einen Buszyklus der zweiten Hälfte ausgeben kann. Die Schnittstellenanordnung gemäß Figur 16 umfaßt ein Daten-Eingangsregister 601, ein Daten-
Q -1
-90-
Ausgangsregister 603, ein Adressen-Eingangsregister 605 und einen Antwort-Bestimmungs.decodierer 607. Wenn eine an den Megabus angeschlossene Einheit, beispielsweise das zentrale Subsystem, eine Lese-Anforderung ausgibt, so werden in einem Einzelauszug aus dem Speichermodul 24 Adressbits BSADO:24 zu dem Adressen-Eingangsregister 605 und die Kanalnummer der anfordernden Einheit auf den Leitungen BSDTO:32 zu dem Daten-Eingangsregister 601 übertragen. Der Speichermodul versucht den vorgegebenen Speicherplatz auszulesen und er richtet im Erfolgsfall die Anforderer-Kanalnummer mittels des Antwort-Bestimmungscodierers 607 zu dem Adressfeld BSADO:24 und gibt 16 Datenbits in das Daten-Ausgangsregister 603 ein. Der Speichermodul fordert einen Buszyklus über das Speicher-Antwortregister 609 an, das das Signal BSREQT in bestätigter Form ausgibt. Wenn sich der Modul einen Buszyklus mittels des Tiebreak-Schaltkreises sichert und das Signal BSTIE von dem Bus-Prioritätsregister 611 empfangen wird, so werden die Daten in dem Daten-Ausgangsregister 603 und die Bestimmungs-Kanalnummer des Bestimniungscodierers 607 auf den Megabus übertragen. Die Schnittstellenanordnung gemäß Figur 16 umfaßt ferner ein System-Statusregister 613 und ein Übertragungs-Steuerregister 615 für den Empfang und die übertragung verschiedener Signale zur Betriebssteuerung des Speichermoduls an der Schnittstelle mit dem Megabus. Die Funktion der Signale BSQLTO, BSQLTI und BSEXTC sei nachfolgend erläutert.
Figur 17 zeigt in einem Blockdiagramm die Schnittstelleanordnung für einen Speichermodul mit Doppelauszug eines Datenwortes einfacher Breite, wobei dieser ebenfalls an den Megabus angeschlossen ist. Dieser Speichermodul arbeitet im wesentlichen identisch wie der Speichermodul gemäß Figur 16,indem er mittels seines Daten-Eingangsregisters 621 und seines Daten-Ausgangsregisters 623 parallel 16 Datenbits empfängt und überträgt. Ferner spricht das Speicher-Antwortregister 625 auf genau die
gleichen Signale wie das Speicher-Antwortregister 609 in Figur an. Der Antwort-Bestimmungscodierer 627, dasAdressenoingangsregister 629, das System-Statusregister 631 und das Bus-Prioritätsregister 633 empfangen und senden in gleicher Weise die gleichen Signale wie die entsprechenden Elemente in Figur 16. Der bedeutende Unterschied zwischen der Speichermodul-Schnittstelle in Figur 16 und der Speichermodul-Schnittstelle in Fig.17 findet sich in dem Übertragungs-Steuerregister 635. Neben all den Eingangs- und Ausgangssignalen des Übertragungs-Steuerregisters 615 in Figur 16 empfängtdas Übertragungs-Steuerregister 635 in Figur 17 das zusätzliche Signal BSDBPL,durch welches im bestätigten Fall der Speichermodul 2 Buszyklen der zweiten Hälfte aufgrund einer Leseanforderung erzeugt,bis die angeforderten Adressen eine Speichermodulgrenze überschreiten oder die zweite Adresse physikalisch in dem Systemspeicher nicht vorhanden ist. Statt der bloßen übertragung eines 16 Bit-Wortes aufgrund einer Leseanforderung werden im vorliegenden Fall bei bestätigtem Signal BSDBPL aufeinanderfolgend zwei 16 Bit-Datenworte übertragen, wobei jedes Wort einem unterschiedlichen Buszyklus der zweiten Hälfte zugeordnet ist. Die Vorteile einer Übertragung in einem Doppelauszug liegen dem Fachmann auf der Hand, da hierdurch der Gesamtaufwand an Speicheranforderungen vermindert wird, indem eine einzelne Speicheranforderung die Übertragung zweier Datenworte auslösen kann.
Figur 18 veranschaulicht in einem Blockdiagramm eine Schnittstellenanordnung für eine dritten Speichermodultyp, der an den Megabus anzuschließen ist. Dieser Speichermodul ist in der Lagej in einem Einzelauszug ein Datenwort doppelter Breite auf de ηMegabus zu geben, d.h. es werden bei der Übertragung 32 Datenbits parallel während eines Buszyklus auf den Megabus gegeben.
Die Signale die zwischen dem Megabus und dem Speicher-Antwort-
3 Λ Λ I ι ι A
r\
-92-
Register 649, dem Antwort-Bestimmungscodierer 643, dem Adressen-Eingangsregister 645, dem System-Statusregister 64? und dem Bus-Prioritätsregister 649 in der Anordnung gemäß Figur 18 übertragen werden, entsprechen den Signalen innerhalb der Figuren 16 und 17. Unterschiede liegen jedoch hinsichtlich des Daten-Ausgangsregisters 651 , des Daten-Eingangsregisters 653 und des Übertragungs-Steuerregisters 655 vor.
Zunächst sind das Dat^n-Ausgangsregiste.r 651 und das Daten-Eingangsregister 653 nunmehr in der Lage 32 Datenbits parallel zu handhaben. Ferner werden 3 zusätzliche Signale zwischen dem Megabus und dem Ubertragungs-Steuerregister 655 gegenüber dem entsprechenden Register in Figur 17 übertragen. Diese Signale sind durch die Signale BSLKNC, BSRESQ und BSDWBD vorgegeben. Die Funktion des Signales BSLKNC wurde zuvor im Zusammenhang mit dem internen Bus und dem Signal LBLKNC erläutert. Das Signal BSDBWD zeigt im bestätigtem Fall an, daß die Speicheranforderung 32 parallele Datenbits betrifft, wobei diese in den Speichermodul einzuschreiben oder aus dem Speichermodul zu lesen sind. Das Ubertragungs-Steuerregister 655 empfängt und überträgt ferner das Signal BSRESQ,das durch einen antwortenden Speichermodul in den bestätigten Zustand gesteuert wird, wenn dieser in der Lage ist/32 Datenbits parallel zu übertragen. Das Signal BSACKR zeigt dem anfordernden Gerät an, daß der Speicher diese Möglichkeit einer 32 Bit-Datenübertragung besitzt.
Es ist ein Merkmal der vorliegenden Erfindung, daß der Megabusadapter ein zentrales Subsystem in die Lage versetzt, einen Dialog mit irgendeinem der drei Speichermodultypen gemäß den Figuren 16, 17 und 18 auszuführen. Diese Möglichkeit wird geschaffen, ohne daß die Einheite- CPU, SIP oder CIP für einen Dialog mit einem bestimmten Speichermodultyp speziell ausge-
bildet sein müssen. Wenn somit die Zentraleinheit CPU eine Leseanforderung nach einem Doppel-Datenwort in dem Systemspeicher ausgibt, so antwortet der Megabusadapter mit den angeforderten 32 Datenbits unabhängig davon, ob sie in einem Speichermodul mit Einzelauszug und einfacher Breite, mit Doppelauszug und einfacher Breite oder mit doppelter Breite gespeichert sind. Dies wird durch den Megabusadapter bewerkstelligt; der bestimmte Werte der Steuersignale BSDBPL, BSDBWD und BSRESQ zusammen anderen Steuersignalen in der folgenden Weise erzeugt und erkennt.
Wenn einer der Prozessoren des zentralen Subsystems das Lesen zweier paralleler Worte anfordert, so liefert er die Speicherwortadresse über die Bits 0-24 des Adressfeldes LBAD auf dem internen Bus und seine eigene Kanalnummer über die Bits 0-9 des Datenfeldes LBDT auf dem internen Bus. Die Signale CASHBC, CAWRIT, CADBPL und CADBWD sind auf den Binärwert "1" gesetzt, das Signal CAMREF ist auf den Binärwert "0" gesetzt und das Signal CABYTE ist entweder auf den Binärwert "0" oder "1" gesetzt. Die Pufferspeicher/Speicherverwaltungseinheit überträgt· mittels des Senders/Empfängers 503 die von dem internen Bus gelieferten Signale betreffend die Adresse , die Daten und die Steuersignale zu dem Megabus und gibt einen Buszyklus aus, durch den die Daten zu dem adressierten Speichermodul übertragen werden.
Wenn sich der adressierte Speicherplatz in einem Speichermodul mit Einzelauszug und für eine einfache Wortbreite befindet, so wird durch die Speicherantwort die anfordernde Kanalnummer in den Bits 8-17 des Adressfeldes BSAD und ein Datenwort (16 Bit) in den Bits 0-15 des Datenfeldes BSDT abgelegt. Die Signale BSMREF, BSWRIT, BSDBPL, BSDBWD, BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt und das Signal BSSHBC wird auf den Binärwert "0" gesetzt. Der Megabusadapter
Q 1 1 / -"; O !
Oi I '.- ο ο -ί
-94-
erkennt aus der Kombination der von dem Speichermodul zurückempfangenen Steuersignale, daß nur 16 Datenbits zurückgeführt werden,und er gibt eine weitere Speicher-Leseanforderung aus, nachdem die zuvor übertragene Adresse um 1 erhöht wurde, um die weiteren angeforderten 16 Datenbits zu erhalten.
Wenn der antwortende Speichermodul ein Speichermodul für Doppelwortbreite ist, so unterscheidet sich die Antwort darin, daß das Datenfeld BSDT 32 Datenbits umfaßt, das Signal BSDBWD auf den Binärwert "0" gesetzt ist und das Signal BSDBPL den. Binärwert "1" aufweist. Die Pufferspeicher/Speicherverwaltungseinheit erkennt, daß die Speicheranforderung vervollständigt ist und sie überträgt die Daten über den internen Bus zu der anfordernden Einheit.
Wenn die Leseanforderung zwei 16 Bit-Datenworte der Reihe nach anfordert , so ist die Speicher-Leseanforderung die gleiche wie bei einer Anforderung von zwei parallelen Worten,aber das Signal CADBPIi ist auf den Binärwert 'Ί" gesetzt. Ein Speichermodul für Einzelauszug und Einzelwortbreite antwortet auf eine Anforderung durch die Abgabe der Kanalnummer des anforderndem Prozessors in den Bits 8-17 des Adressfeldes BSD und durch die Abgabe eines Datenwortes in den Bits 0-15 des Datenfeldes BSDT. Die Signale BSMREF, BSWRIT, BSDBPL, BSDBWD, BSLOCK und BSLKNC sind auf den Binärwert "1" gesetzt, das Signal BSSHBC besitzt den Binärwert "0" und das Signal BSRESQ weist den Binärwert "1" auf, da dem Speichermodul mit Einzelauszug und Einzelwortbreite das Signal BSRESQ nicht zugeführt wird. Die Pufferspeicher/ Speicherverwaltungseinheit realisiert beim Empfang der Antwort von dem Speichermodul erneut, daß nur ein Datenwort übertragen worden ist, während zwei Datenworte angefordert wurden. Sie erhöht daher die zuvor angeforderte Adresse und fordert die Daten unter der neuen Adresse an, wobei sie,nachdem die verbleibenden 16 Bits geliefert worden sind ein 32 Bit-Datenwort für die übertragung zu dem anfordernden Prozessor zusammen-
ο ! I -;· υ ο -t
Der Speichermodul für eine Einzelwortbreite mit Doppelauszug überträgt die Kanalnummer der anfordernden Einheit in den
Bits 8-17 des Adressfeldes BSAD und ein Datenwort in den Bits 0-16 des Datenfeldes DSDT, wobei die SignaleBSMREF, BSWRIT, BSDBWD, BSLOCK und BSLKNC auf den Binärwert "1" und die Signale BSSHBC und BSDBPL auf den Binärwert "0" gesetzt werden. Der Modul überträgt sodann einen Bus Zyklus der zweiten Hälfte
mit dem gleichen Adressfeld und das nächste angeforderte Datenwort in den Bits 0-15 des Datenfeldes BSDT, wobei die gleichen Werte für die Steuersignale mit Ausnahme des auf den Binärwert "1" gesetzten Signales BSDBPL übertragen werden.
Ein Prozessor kann ebenfalls anfordern, daß zwei Worte entweder parallel oder der Reihe nach gelesen werden. Der Prozessor setzt hierzu die Bits 0-22 des Feld LBAB auf die
Speicherwortadresse und er plaziert seine eigene Kanalnummer in den Bits 0-9 des Datenfeldes LBDT. Die Signale CASHBC,
CAWRET, CALOCK und CALKNC werden auf den Binärwert "0" gesetzt· und die Signale CADBPL und CADBWD werden auf den
Binärwert "1" gesetzt.
Der Megabusadapter überträgt die Anforderung an den Megabus und die Antworten des adressierten Speichermoduls. Wenn der antwortende Speichermodul mit Einzelauszug und einfacher
Wortbreite arbeitet, so gibt er die anfordernde Kanalnummer in den Bits 8-17 des Adressfeldes BSAD und ein Datenwort in den Bits 0-15 des Datenfeldes BSDT aus. Die Steuersignale
werden auf die gleichen Werte gesetzt, wie dies bei der Leseanforderung für zwei parallele Datenworte der Fall war. Erneut erkennt der Megabusadapter aus den zurückgeführten Werten der Steuersignale, daß nur ein Wort der beiden angeforderten Datenworte geliefert worden ist und er erzeugt eine geeignete
Leseanforderung an den gleichen Speichermodulrf um das nächste adressierte Datenwort zu erhalten. Beim Empfang beider Worte überträgt der Megabusadapter diese über den internen Bus zu der anfordernden Einheit.
Wenn der antwortende Speichermodul eine Doppelwortbreite aufweist, so antwortet er genau in der gleichen Weise wie dies bei der Leseanforderung für zwei parallele Datenworte der Fall war, wobei das Signal BSRESQ auf den Binärwert "1" gesetzt wird.
Ein Speichermodul mit Doppelauszug für eine einfache Wortbreite antwortet in der gleichen Weise,wie dies bei der Leseanforderung für zwei Datenworte der Reihe nach der Fall war.
Die vorliegende Einrichtung ist ebenfalls in der Lagey sieben Arten von nicht-verriegelten Schreibzyklen auszuführen. Bei jeder Schreibanforderung werden die Bits 0-22 des Adressfeldes BSAD auf die zu schreibende Speicherwortadresse gesetzt. Wenn ein Datenbyte an den Beginn dieser Adresse zu schreiben ist , so wird das Bit 24 des Adressfeldes BSAD auf den Binärwert "0" gesetzt, die Bits 0-7 des Datenfeldes BSDT werden auf die zu schreibenden Daten eingestellt, die Signale BSMREF, BSWRIT und BSBYTE werden auf den Binärwert "0" gesetzt und die Signale BSSHBC, BSDBPL, BSDBWD, BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt. Alle drei Arten von Speichermodulen sind in der Lage diesen Schreibzyklus auszuführen, wobei sie entweder ein Signal BSACKR oder BSWAIT erzeugen. Das Signal BSRESQ weist den Binärwert "0" auf.
Bei dem zweiten Schreibtyp wird das rechte Byte des durch die Speicheradresse in dem Adressfeld BSADO-22 adressierten Wortesgeschrieben. Das Bit 2 3 des Adressfeldes BSAD wird auf
j I ι 4-
-97-
den Binärwert "1" gesetzt, die Bit 8-15 des Datenfeldes BSDT enthalten die zu schreibenden Daten, die Signale BSMREF, BSWRIT und BSBYTE sind auf den Binärwert "O" gesetzt und die Signale BSSHBC, BSDBPL, BSDBWD, BSLOCK und BSLKNC sind auf den Binärwert "1" gesetzt. Erneut sind alle drei Arten von Speichermodulen in der Lage, diese Schreibanforderung auszuführen.
Bei dem dritten Schreibtyp werden die Bytes 0 und 1 eines adressierten Wortes in den Speichermodul eingeschrieben. Der Wert des Bits 23 des Adressfeldes BSAD ist ohne Bedeutung, die 16 Datenbits werden in die BitsO-15 des Datenfeldes BSDT geladen, die Signale BSMREF und BSWRIT werden auf den Binärwerte "0" gesetzt und die Signale BSSHBC, BSBYTE, BSDBPL, BSDBWD, BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt. Dieser Schreibtyp wird ebenfalls in gleicher Weise von allen drei Arten von Speichermodulen ausgeführt.
Bei dem vierten Schreibtyp werden das rechte Byte des Wortes η und das linke Byte des Wortes n+1 in den Speichermodul geschrieben. Die Adresse des Wortes η wird in den Bits 0-22 des Adressfeldes BSAD abgelegt, das Bit 23 des Adressfeldes BSAD wird auf den Binärwert "1" gesetzt. Die Daten werden in den Bits 8-23 des Datenfeldes BSDT abgelegt, die Signale BSMREF, BSWRIT, BSBYTE, und BSBBWD werden auf den Binärwert "0" gesetzt und die Signale BSSHBC, BSDBPL, BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt. Nur die Speichermodule mit einer Doppelwörtbreite sind in der Lage, diese Schreiboperation in einem einzigen Buszyklus auszuführen,und das Signal BSRESQ wird auf den Binärwert "0" gesetzt, wenn die adressierten Speicherplätze in dem Speichermodul enthalten sind. Der Megabusadapter erkennt, daß keine weitere Maßnahme in einem solchen Fall erforderlich ist. Wenn die Schreibanforderung an einen Speichermodul mit einfacher Wortbreite und mit Einzel-
auszug oder an einen Speichermodul· mit doppelter Wortbreite und Einzeiauszug gerichtet wurde, so bleibt das Signal BSRESQ auf den Binärwert "1" gesetzt, da keinem dieser Speichermodule die Signalleitung BSRESQ zugeführt ist. In einem solchen Fall erkennt der Megabusadapter, daß nur das rechte Byte des Wortes η geschrieben werden ist und er(gibt eine weitere Schreibanforderung aus, um das linke Byte des Wortes n+1 zu schreiben.
Bei dem fünften Schreibtyp werden beide Bytes des Wortes η und das linke Byte des Wortesn+1 geschrieben. In diesem Fall wird die Adresse des Wortes η in den Bits 0-22 des Adressfeldes BSAD abgelegt, das Bit 23 des Adressfeides BSAD wird entweder auf den Binärwert "0" oder "1" gesetzt, die Daten werden in den Bits 0-23 des Datenfeldes BSDT abgelegt, die Signale BSNREF, BSWRIT und BSDBWD werden auf den Binärwert "0" gesetzt und die Signale BSSHBC, BSBYTE, BSDBPL, .BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt. Der Speichermodul antwortet, indem der das Signal BSRESQ auf den Binärwert 11O"-setzt, wenn er eine Doppelbreite aufweist und die adressierten Speicherplätze in ihm enthaltensind. Wenn der Speichermodul eine Einzelwortbreite aufweist und der Auszug in einem oder zwei Schritten erfolgt, so wird das Signal BSRESQ aus den gleichen Gründen wie bei dem vierten Schreibtyp auf den Binärwert "1" gesetzt und der Megabusadapter erzeugt eine neue Schreibanforderung#um das linke Byte des Wortes n+1 zu schreiben.
31 U
Bei dem sechsten Schreibtyp wird das rechte Byte des Wortes η und beide Bytes des Wortes n+1 eingeschrieben. Die Adresse des Wortes η wird in den Bits 0-22 des Adressfeldes BSAD abgelegt, das Bit 23 des Adressfeldes BSAD wird auf den Binärwert "1" gesetzt, die Daten werden in den Bits 8-31 des Datenfeldes BSDT abgelegt, die Signale BSMREF, BSWRIT, SWYTE, BSDBPL, und BSDBWD werden auf den Binärwert "0" gesetzt und die Signale BSSHBC, BSIOCK und BSLKNC werden auf den Binärwert "1" gesetzt.
Wenn der Speichermodul ein Doppelwortspeicher ist, so wird das Signal BSRESQ erneut auf den Binärwert"0" gesetzt, um anzuzeigen, daß alle drei Datenbytes in einem Buszyklus geschrieben worden sind. Wenn der Speicher keine Doppelwortbreite aufweist, so gibt der Megabusadapter eine zweite Schreibeanforderung aus , um die zwei Bytes des Wortes n+1 zu schreiben.
J ι I -4 ο - 100 -
Der letzte Schreibtyp dient dem Einschreiben zweier Worte mit 32 Datenbits auf einmal. Die Adresse des Wortes η wird in den Bits 0-22 des Adressfeldes BSAD abgelegt, das Bit 23 des Adressfeldes BSAD wird entweder auf den Binärwert "0" oder "1" gesetzt, die Daten werden in den Bits 0-31 des Datenfeldes BSDT abgelegt, die Signale BSMREF, BSWRIT, BSDBPL und BSDBWB werden auf den Binärwert "0" gesetzt und die Signale BSSHBC, BSBYTE, BSLOCK und BSLKNC werden auf den Binärwert "1" gesetzt. Wie im Falle der Schreibtypen 4 bis 6 wird das Signal BSRESQ auf den Binärwert "0" gesetzt, wenn der Speicher eine doppelte Wortbreite aufweist und der Schreibzyklus erfolgreich war. Ist dies nicht der Fall, so wird der Megabusadapter aus dem Wert der Steuersignale entnehmen, daß nur die ersten 16 Datenbits in das Wort η geschrieben worden sind und er wird somit eine zweite Schreibanforderung erzeugen, um die Datenbits 16-31 des Datenfeldes BSDT in das Wort n+1 zu schreiben. Das Erfordernis nach einem zweiten Schreibzyklus ergibt sich aus dem Signal BSRESQ, das den Binärwert "0" aufweist.
Kehrt man zu Fig. 12 zurück, so sieht man, daß die Signalleitungen BSQLTO und BSQLTI einen Teil des Megabusses bilden und eine Möglichkeit liefern, unter bestimmten Bedingungen einen internen Logiktest auszuführen. Ein Signal BSQLTO wird an der physikalischen Spitze des Systems ausgelöst und tritt in die erste Einheit an dem Bus als Signal BSQLTI ein, wobei es durch ein UND-Gatter mit einem Signal kombiniert wird, das anzeigt, daß die spezielle Einheit ihren Logiktest vervollständigt hat. Von dieser Einheit wird das Ausgangssignal des UND-Gatters zu der nächsten Einheit als Signal BSQLTÖ gesendet, wo der Schritt wiederholt wird. Das Signal am physikalischen Ende des Systems zeigt im nicht bestätigten Fall an, daß jede Einheit in dem System ihren Logiktest erfolgreich ausgeführt hat. Einheiten, die keine eigene Testlogik aufweisen, müssen die Signale BSQLTI und BSQLTO intern miteinander verbinden. Die Signalleitung BSQLTA verläuft über die volle Länge des Megabusses und dient der übertragung des Signales des vervollständigten Logiktestes vom Ende des Systems zu der Steuer-
ό , ! A ^ O -i
konsole der Zentraleinheit CPU, wo es an eine geeignete Anzeige angeschlossen wird. Das Signal BSQLTA liegt normalerweise unbestätigt vor, wenn rias System richtig arbeitet, aber es wird auf den bestätigten Wert beim Beginn eines Logiktestes gesetzt. Eine erfolgreiche Beendigung aller Qualitäts-Logiktests in dem System führen das Signal BSQLTA auf den nicht bestätigten Wert zurück.
Die Signale BSEXTC und BSTIMR stellen verschiedene Signale dar, die in dem Megabus verwendet werden und sich nicht speziell auf die vorliegende Erfindung beziehen. Das Signal RSTIMR wird durch jede Spannungsversorgung der Schaltungsplatinen eines Platinenrahmens in dem System geliefert und führt eine positive Umschaltung mit der entsprechenden Netzfrequenz (60 Hz oder 50 Hz) aus. Das Signal BSEXTC verbindet einen Block von 5 benachbarten Karten miteinander, wobei ein auf niedrige Frequenzen beschränktes externes Signal angeschlossen werden kann.
Der Megabusadapter gibt den in einem zentralen Subsystem enthaltenen Einheiten CPU, SIP und CIP die Möglichkeit vor, in den Systemspeicher einzuschreiben und aus diesem zu lesen, sowie Anweisungen zu anderen Einheiten an dem Megabus zu übertragen. Der Megabusadapter umfaßt zwei nahezu unabhängige Datenwege. Der erste Datenweg gestattet einem zentralen Subsystem das Senden von Information zu dem Megabus. Dies wird durch die Eingänge auf der rechten Seite der Sender/Empfänger 503 ermöglicht, die Daten (LDTR16:16 und MYDTO:16), eine Adresse (MYADO:24) und Steuersignale (CAMREF-CAYELO) zu entsprechenden Leitungen auf dem Megabus übertragen. Der zweite Datenweg gestattet die übertragung von Information zu dem zentralen Subsystem, die von Einheiten an dem Megabus erzeugt wird und zu dem internen Bus weitergereicht wird. Dies geschieht durch das FIFO-Speicherregister, das beispielsweise eine Kapazität zur Speicherung von 4 Informationsaufzeichnungen bzw. Übertragungen mit 72 Bit besitzt. Dem FIFO-Speicher 505 werden die Megabusdaten BSDTOO:36, die Megabusadresse BSADOO:25 und die Megabus-Steuersignale
Ί 1 1 / ' 9 4
»J I 1 4V >-· v^ τ·
- 102 -
BSMREF-BSYELO immer dann zugeführt, wenn eine. Informationsübertragung zu dem zentralen Subsystem erfolgt oder ein Hauptspeicher-Schreibzyklus ausgeführt wird. Die Information wird in den FIFO-Speicher eingeschrieben und keine weitere unmittelbare Maßnahme ist erforderlich. Dies gestattet dem internen Bus und dem Megabus eine nahezu vollständig asynchrone Arbeitsweise, wodurch die Leistungsfähigkeit beider Busse in großem Umfang erhöht wird.
Die in dem FIFO-Speicher 505 gespeicherte Information kann zu dem internen Bus in Form von Daten MBDTO:32, einer Adresse FIADO:24 und in Form von Steuersignalen FIMREF-FIYELO übertragen werden. Wie zuvor erläutert, erhält der Pufferspeicher-Daten-Eingangsmultiplexer 401 (Fig. 11) die Megabusdaten MBDT0:36 zugeführt, der virtuelle Adressen-Eingangsmultiplexer 405 erhält die Megabusadresse FIADO:24 von dem FIFO-Speicher 505 zugeführt und die Megabus-Steuersignale werden zu der Steuerlogik 417 übertragen, was durch die gemeinsame Leitung FICNTRLO:10 angezeigt ist.
Das Schreib-Adressregister 507 zeichnet das Laden der Megabusinformation in den FIFO-Speicher 505 auf und das Lese-Adressregister 509 zeichnet die übertragung der in dem FIFO-Speicher 505 gespeicherten Information zu dem internen Busadapter gemäß Fig. 11 auf. Der Megabus-Schreibdetektor 511 erhält die Signale BSWAIT, BSNAKR, BSACKR, BSDCNN, BSWRIT und BSMREF als Eingänge zugeführt und er erzeugt bei der Feststellung eines bestimmten Musters in diesen Signalen eine Ladeanweisung an die FIFO-Steuerung 513. Wenn die zuletzt in dem FIFO-Speicher 505 gespeicherte Information zu retten ist, so erzeugt die FIFO-Steuerung 513 Schreibsteuersignale WRTINC und liefert diese an das Schreib-Adressregister 507, um die nächste Informationsübertragung von dem Megabus 501 über die Sender/Empfänger 503 in die nächste verfügbare Adresse des FIFO-Speichers 505 zu veranlassen. Wenn jedoch festgestellt wird, daß die zuvor eingeschriebene Information in den FIFO-Speicher 505 nicht zu sichern ist, so wird der neu übertragenen Information ein über-
- 103 - ^ ' ' '■"" Γ
schreiben der zuletzt übertragenen Information gestattet.
Die FIFO-Steuerung 513 erzeugt ebenfalls ein repräsentatives Signal REDINC und liefert dieses zu dem Lese-Adressregister 509, um den Informationstransfer von dem FIFO-Speicher 505 zu den geeigneten Empfangseinheiten in dem internen Busadapter zu steuern.
Der Typ der in dem FIFO-Speicher 505 gespeicherten Informationsübertragung ist beispielsweise eine Hauptspeicher-Schreibanforderung, die von einer anderen Verarbeitungseinheit an dem Megabus an den ebenfalls an den Megabus angeschlossenen Hauptspeicher gerichtet wird. Wie zuvor erwähnt, muß die Pufferspeicher/Datenverwaltungseinheit immer auf dem neuesten Stand gehalten werden, wenn solche Hauptspeicher-Schreibanforderungen ausgeführt werden und somit werden die Daten in dem FIFO-Speicher 505 immer festgehalten, wenn der Megabus-Schreibdetektor 511 einen Hauptspeicher-Schreibzyklus feststellt. Die festgehaltene Information verschiebt sich in dem FIFO-Speicher 505 nach unten und sie löst eine Anforderung nach einem internen Buszyklus aus, um zu dem internen Busadapter übertragen zu werden und erforderlichenfalls den Pufferspeicher fortzuschreiben.
Ein zweiter Zyklustyp, der in dem FIFO-Speicher 505 festgehalten wird, ist eine Testanweisung, die von einer an den Megabus angeschlossenen Verarbeitungseinheit ausgeht und an die Einheit SIP oder CIP in dem zentralen Subsystem gerichtet ist. Eine solche Testanweisung ähnelt bei ihrer Abgabe auf den Megabus im Format einer Ein/Ausgabe-Operation und sie enthält die Kanalnummer der Einheit SIP bzw. CIP, an die sie gerichtet ist. Wenn die Kanalnummer eine Einheit in dem zentralen Subsystem vorgibt, so wird die Information in dem FIFO-Speicher 505 festgehalten. Ferner wird eine FIFO-Anforderung zu dem internen Bus gesendet und es wird die geeignete Information zu den adressierten Einheiten CIP bzw. SIP übertragen.
Ein dritter in dem FIFO-Speicher 50 5 festgehaltener Übertragungstyp ist eine Speicherantwort auf eine Leseanforderung, die von
31HÜ34
einer Einheit CPU, SIP oder CIP in dem zentralen Subsystem ausgegeben wird. Solche Antworten müssen auf einer FIFO-Basis festgehalten werden. Da eine Speicherantwort einen Buszyklus der zweiten Hälfte auf dem Megabus beansprucht, muß sie durch den FIFO-Speicher 505 akzeptiert werden und das Aussenden einer FIFO-Anforderung an den internen Busadapter und somit zu dem anfordernden Prozessor und zu dem Pufferspeicher hervorrufen.
Ein weiteres Merkmal des FIFO-Speichers 505, des Megabus-Schreibdetektors 511 und der FIFO-Steuerung 513 liegt darin, daß sie den internen Busadapter zur Informationsübertragung von dem FIFO-Speicher 505 zu dem Pufferspeicher bzw. zu dem internen Busprozessor zwingen, um sicherzustellen, daß die Speicherkapazität des FIFO-Speichers 505 nicht überschritten wird. Dies geschieht dadurch, daß der Megabusadapter die Steuerung des Pufferspeichers von dem internen Bus wegnimmt und die erforderlichen Anweisungen erzeugt, um Fortschreibungen in dem Pufferspeicher entsprechend den zuvor festgestellten Hauptspeicher-Schreibzyklen durch Verarbeitungseinheiten außerhalb des zentralen Subsystems zu erzeugen. Diese Pufferspeicher-Fortschreibungen werden sooft wie nötig ausgeführt, um den FIFO-Speicher zu leeren oder um festzustellen, daß der FIFO-Speicher nicht länger Information entsprechend einem Hauptspeicher-Schreibzyklus enthält. Der Grund dafür, daß der FIFO-Speicher 505 überlaufen kann, liegt darin, daß die Priorität eines zentralen an den Megabus angeschlossenen Subsystems im Vergleich zu anderen Verarbeitungseinheiten an dem Megabus gering eingestellt werden kann und daß somit der Megabusadapter einen Zugriff auf den Megabus über eine ausgedehnte Zeitperiode versuchen kann, während welcher zahlreiche Megabus-Informationsübertragungen in dem FIFO-Speicher 505 gespeichert werden können. Das Signal FIFOMT zeigt im nicht bestätigten Zustand an, daß der FIFO-Speicher nicht leer ist und es wird dem Anforderungs-Entscheidungsschaltkreis zugeführt, um dem FIFO-Speicher einen internen Buszyklus zu gewähren.
Oi I is J O - 105 -
Gemäß Fig. 12 ist die Datenstrecke innerhalb des Megabusadapters für die übertragung von Megabusdaten zu dem internen Busadapter in zwei Datenwege unterteilt. 16 Datenbits (MBDTO:16) werden durch das ODER-Gatter 515 übertragen und 16 Datenbits (MBDT16:16) werden durch den Multiplexer 517 übertragen. Die Eingänge des ODER-Gatters 515 werden durch die Signale MBIN0:16, MBSHO:16 und FIDTO:16 des Unterbrechungsregisters 19, des Registers 521 für die zweite Hälfte des Buszyklus und des FIFO-Speichers 505 gebildet. Die Eingangssignale des Multiplexers 517 sind durch die linken und rechten Datenworte vorgegeben, die von dem FIFO-Speicher 505 in Form der Signale FIDTO:16 und FIDT16:16 übertragen werden.
Das Unterbrechungsregister 519 gestattet dem Megabusadapter die zeitweilige Speicherung einer von dem Megabus übertragenen Unterbrechung, um hierdurch die Zentraleinheit CPU in die Lage zu versetzen, die Bearbeitung irgendeines laufenden Befehls zu vervollständigen, den sie vor der Annahme eines Unterbrechungszustandes ausführt. Diese Befehlsbearbeitung kann einige CPU-Zyklen beanspruchen. Durch Anordnung des Unterbrechungsregisters 519 kann der Empfang einer Unterbrechung durch den Megabusadapter bestätigt werden und die Unterbrechung selbst kann weggespeichert werden, bis die Zentraleinheit CPU sie verarbeiten kann. Wenn die Zentraleinheit CPU einen unterbrechbaren Zustand einnimmt, so sendet sie eine Anweisung über den internen Bus zu der Megabus-Schnittstelle. Diese Anweisung wird durch die Leitung SNDINT signalisiert und dem Unterbrechungsregister 519 zugeführt, um die übertragung der Signale MBINO:16 zu dem ODER-Gatter 515 und hierdurch zu dem internen Busadapter zu ermöglichen.
Das Register 521 für die zweite Hälfte des Buszyklus gestattet eine Anpassung an die zuvor erläuterte Situation, in der das zentrale Subsystem eine parallele übertragung von zwei Worten anfordert, obgleich der an dem Megabus befindliche Speichermodul nicht die Fähigkeit zur übertragung einer Doppelwort-
ο I 1 4 3 ο
breite aufweist. Ein solcher Speichermodul ist beispielsweise durch einen Speicher mit Einzelwortbreite und Doppelauszüg gegeben, der der Reihe nach zwei Worte während benachbarter Buszyklen der zweiten Hälfte ausgibt. Ein solcher Speichermodul kann aber auch durch einen Speicher mit einer Einzelwortbreite und Einzelauszug vorgegeben sein, der für jedes abgegebene Wort einen Speicherzyklus erfordert. Wenn die angeforderten zwei Datenworte tatsächlich nicht parallel übertragen werden, so speichert das Register 521 das erste übertragene Wort und das zweite übertragene Wort wird in den FIFO-Speicher 505 eingeschrieben. Wenn dieses Wort am Ausgang des FIFO-Speichers 505 auftritt, so wird das Signal MBSHO:16 von dem Register 521 zu dem ODER-Gatter 515 übertragen und gleichzeitig wird das Signal FIDTO:16 zu dem Multiplexer 517 übertragen. Hierdurch werden in der richtigen Reihenfolge die 32 Bits des angeforderten Datenwortes zusammengesetzt.
Wenn alle 32 Datenbits in einem einzigen Buszyklus empfangen werden, so werden sie in den FIFO-Speicher 505 übertragen und beim Austritt aus dem Speicher zu dem internen Busadapter übertragen. Das Signal FIDTO:16 wird auf das ODER-Gatter 515 geschaltet und das Signal FIDT16:16 wird am Eingang des Multiplexers 517 ausgewählt.
Der Multiplexer 517 erhält ein drittes Eingangssignal FIADO:7 zugeführt, das während bestimmter Testmodus-Operationen ausgewählt wird, wobei eine E/A-Modusadresse von dem Megabus zu irgendeiner Einheit CIP oder SIP in dem zentralen Subsystem übertragen werden muß. Bei einer solchen Operation gibt die Einheit an dem Megabus 16 Bits ab, die als Teil einer Adresse auf den Leitungen MBDTO:16 interpretiert werden und 8 weitere Bits auf der Leitung BSADO:7 ab. Wenn diese in den FIFO-Speicher 505 weitergereicht werden, so werden die Datenbits zu dem Signal FIDTO:16 und die Adressbits zu dem Signal FIADO:7. Die Datenbits werden über das ODER-Gatter 515 zu der Leitung MBDTO:16 weitergereicht und der Multiplexer 517 wählt die 8 Adressbits auf der Leitung MBDT16:8 aus und füllt den Rest
31HG34
des Datenfelds mit "O"-Binärstellen. Durch Benutzung des Datenfelds mit 16 Bit und des Adressfeldes mit 8 Bit kann der Testmodus durch Einrichtungen ausgeführt werden, die in der Lage sind, nur 16 Datenbits parallel zu übertragen.
Daten werden von dem internen Bus zu dem Megabus über 32 ausgewählte Leitungen LDTRO:32 (plus 4 Paritätsleitungen) übertragen. Die Datenleitungen werden als Eingänge dem Daten-Ausgangsmultiplexer 523 zusammen mit der Kanalnummer der Pufferspeicher/ Speicherverwaltungseinheit zugeführt, wobei diese Kanalnummer durch den zuvor erwähnten hexadezimalen Drehschalter eingestellt und dem Multiplexer 523 über die Leitung MYCHN zugeführt wird. Der Ausgang des Datenmultiplexers 523 umfaßt die 16 Bit des Ausgangs-Datenfeldes MYDTO:16. Das Signal LDTR16:16 wird ebenfalls direkt dem Megabus-Datan-Sender /Empfänger 503 zugeführt, so daß das Ausgangs-Datenfeld DSDTO:32 entweder die Signale LDTR16:16, LDTRO:16 oder das Signal MYCHN in den linken 16 Bit und das Signal LDTR16:16 in den rechten 16 Bit enthält. Der Zweck des Daten-Ausgangsmultiplexers 523 liegt in der Freigabe der Pufferspeicher/Datenverwaltungseinheit, damit diese entweder 32 Bit parallel oder 2 Worte mit 16 Bit der Reihe nach in Abhängigkeit davon übertragen kann, welche Bestimmungs-Verarbeitungseinheit an dem internen Bus vorliegt.
Das Signal MYCHN wird ebenfalls dem Kanalnummerndecodierer zusammen mit den 9 Bit des Adressfeldes BSAD11:9 zugeführt. Dies gestattet dem Megabusadapter eine Feststellung, ob eine Antwort zu seinem zugeordneten zentralen Subsystem zu richten ist. Ist dies der Fall, so wird das Signal ITSAME in den bestätigten Zustand gesteuert und dem Unterbrechungs-Steuerregister 527 zugeführt. Der Pegelvergleicher 529 erhält den mit einer Unterbrechungsanforderung von dem Megabus in dem Feld BSDT10:6 übertragenen Pegel zusammen mit der Pegelnummer des gerade ablaufenden Prozesses zugeführt, wobei dies durch das Signal LDTR26:6 gegeben ist. Das Ausgangssignal des Pegelvergleichers 529 wird als Eingang der Unterbrechungssteuerung
Ji I "r J J H
zugeführt, die das Signal MYINT in den bestätigten Zustand steuert, wenn die Pegelnummer der angeforderten Unterbrechung größer als der laufende durch die Zentraleinheit CPU verarbeitete Pegel ist.
Der ALU-Adressengenerator 531 wird durch den Megabusadapter verwendet, um die Erzeugung der richtigen Adressen in Abhängigkeit von dem Typ der an dem Megabus adressierten Einheit zu erzeugen. Der ALU-Adressengenerator 531 erhält die interne Busadresse über die Leitung LBADO:23 zugeführt und er besitzt die Fähigkeit, die Adresse um 0 oder 1 zu erhöhen. Wenn die durch das Signal LBADO:23 angeforderte Adresse in einem Doppelwortspeicher oder in einem Einzelwortspeicher mit Doppelauszug vorliegt, so liegt kein Erfordernis vor, die Ausgangsadresse MYADO:23 zu erhöhen, da solche Speicher in der Lage sind, die angeforderten 32 Bit zu übertragen. Wenn jedoch der adressierte Speichermodul eine Einzelwortbreite aufweist und mit Einzelauszug betrieben wird, so wird anfänglich die Adresse MYADO:23 durch die Sender / Empfänger 503 auf die Leitung BSADO:23 übertragen und nachfolgend erzeugt der Megabusadapter einen neuen Lese- oder Schreibzyklus, wobei der ALU-Adressengenerator 531 die Adresse MYADO:23 +1 an die Leitung BSADO:23 liefert. Dies ruft die Adressierung der richtigen zwei Worte in dem Speichermodul hervor, die über den Megabus zu dem Megabusadapter übertragen werden.
Der Megabusadapter umfaßt ferner eine Nebenmoduslogik 533 für die Steuerung der Antwort der Pufferspeicher/Speicherverwaltungseinheit sowohl auf eine Anforderung durch eine Megabus-Verarbeitungseinheit als auch auf eine Antwort durch eine Megabus-Verarbeitungseinheit auf eine vorangegangene Anforderung durch einen Prozessor des zentralen Subsystems.
In gleicher Weise umfaßt der Megabusadapter eine Hauptmoduslogik 535, die eine Megabusübertragung auf Grund von Steuersignalen des internen Busses auslöst, d. h. auf Grund der Signale CAWRIT-CABYTE. Die Hauptmoduslogik 535 und die Neben-
3114334
moduslogig 533 sind herkömmlicher Art und bilden kein Merkmal der vorliegenden Erfindung. Allgemein gestatten diese Logikeinheiten dem Megabus die Erzeugung der erforderlichen Signale DCNN auf Zeittaktdaten und Adressenübertragungen, die über die Sender/ Empfänger 503 auf den Megabus gehen. Die Logik erzeugt ferner die Antworten ACK, NACK und WAIT zurück zu dem Megabus. Derartige Signale bilden Standardsignale in bekannten CPU-Einheiten, in Steuerungen und in Speicherschnittstellen. Die Schaltkreise und die Betriebsweise der Megabus-Nebenmodus-Antwortlogik 53J und der Megabus-Hauptmodus-Steuerlogik 535 sollen weiter erläutert werden, wenn die detaillierten Logikschaltkreise erörtert werden.
3. Beschreibung des bevorzugten Ausführungsbeispieles des internen Bus-Adapters.
Wie zuvor erwähnt, umfaßt die Pufferspeicher/Speicherverwaltungseinheit innerhalb eines zentralen Subsystems einen internen Busadapter für die Steuerung der Informationsübertragung über den internen Bus zwischen den Einheiten CIP, SIP, CPU und der Pufferspeicher/Speicherverwaltungseinheit. Die wesentlichen Einrichtungen innerhalb des internen Busadapters sind in detaillierten logischen Blockdiagrammen der Figuren 20a bis 32b dargestellt, um ein Verständnis der Erfindung zu erleichtern, besitzen die Figuren 20a - 32b jeweils einen Teil a und einen Teil b, wie beispielsweise die Figuren 20a und 20b, wobei diese Figuren jeweils Seite an Seite zusammenzusetzen sind, wie dies durch Fig. 19 angegeben wird. Die Grundstruktur und die Wirkungsweise des internen Busadapters der Pufferspeicher/Speicherverwaltungseinheit ist im Zusammenhang mit den Figuren 11, 13, 14 und 15 beschrieben worden, aber die folgende Erläuterung dient der zusätzlichen Beschreibung des bevorzugten Ausführungsbeispieles des internen Busadapters.
Die detaillierten Logikblöcke gemäß den Figuren 20a - 32b veranschaulichen bekannte integrierte Standard-Logikchips, die im
31U334
Handel erhältlich sind. Ein jedes einzelne Teil kennzeichnender Code ist auf jedem Element dargestellt. Beispielsweise ist der Multiplexer 01A06 in Fig. 20a ein Standard-Multiplexer-Schaltkreischip, der unter der Typ-Nummer 74S64 durch die Firma Texas Instruments Inc. hergestellt und vertrieben wird. Tatsächlich ist jeder Schaltkreischip, dessen Typnummer mit 74 beginnt, ein von der Firma Texas Instruments Inc. hergestellter Chip, wobei weitere Einzelheiten bezüglich dieser Schaltkreise der Veröffentlichung "The TTL Data Book for Design Engineers", 2. Ausgabe entnommen werden können.
Die Figuren 20a, 20b und 21 zeigen ein Ausführungsbeispiel eines virtuellen Adressenmultiplexers 405 (Fig. 11). Der Schaltkreis 01B06 in Fig. 20a sei als ein Beispiel erläutert. Dieser Schaltkreis umfaßt vier UND-Gatter mit mehreren Eingängen und ein ODER-Gatter, dem die Ausgänge der UND-Gatter zugeführt werden. Nur ein UND-Gatter der vier Gatter weist an all seinen Eingängen gleichzeitig den Binärwert "1" auf, um am Ausgang VAINOO das Bit 0 des Adressfeldes zu erzeugen. Das erste UND-Gatter erhält die Signale ENMBA1, LOGIC1, FIADOO und LOGIC1 zugeführt. Das Signal FIADOO wird wie zuvor erläutert, von dem FIFO-Speicher 505 des Megabusadapters in Fig. 12 geliefert. Die Signale ENMBA1 und LOGIC1 sind Freigabesignale, die durch Schaltkreise in Fig. 27b erzeugt werden. Der Treiber 01D25 in Fig. 27b erhält die zugeordneten Signale von dem Anforderung-Entscheidungsschaltkreis 407 zugeführt und erzeugt Freigabesignale für eine Megabus-Adresse, eine SIP-Adresse, eine CIP-Adresse oder eine CPU-Adresse. Wenn somit der FIFO-Speicher einen internen Buszyklus zugeordnet hat, so nimmt das Signal ENMBA1 den Binärwert "1" ein und die anderen Ausgangssignale der Treiber 01D25 liegen unbestätigt vor. Das Signal LOGIC1 wird durch den Treiber 03D25 erzeugt, der ebenfalls in Fig. 27b dargestellt ist. Das Signal LOGIC1 liegt konstant bestätigt vor, da sein entsprechendes Signal am Eingang ZGNDB19 unbestätigt ist aber bei der Zuführung zu dem Treiber 03D25 invertiert wird. Der Treiber wird ebenfalls durch das Signal ZBNDB19 freigegeben. Wenn somit der FIFO-Speicher einen Megabuszyklus zugeordnet hat, so werden alle
31 u
Eingänge an dem oberen UND-Gatter des Multiplexers 01B06 (Fig. 20a) freigegeben und das Signal VAINOO besitzt den Wert des Signales FIADOO. Die verbleibenden drei UND-Gatter des Multiplexers 01B06 erhalten die Freigabeausgänge des zuvor beschriebenen Treibers 01D25 und das Bit 0 der Adresse zugeführt, die von den Einheiten CPU, SIP und CIP geliefert wird. Es liegt auf der Hand, daß der Multiplexer 01B06 das Signal VAINOO veranlaßt, den Wert des zugeführten Adressbits anzunehmen, ganz gleich, welche Einheit CPU, SIP, CIP oder FIFO freigegeben ist.
Die verbleibenden Schaltkreise in den Figuren 20a, 20b und 21 arbeiten in der gleichen Weise wie der Schaltkreis 01B06, um in Kombination Bits 0-22 des Signales VAINO-23 zu erzeugen. Dies gilt allerdings nicht für den Multiplexerschaltkreis 01D07 in Fig. 21. Dieser Multiplexerschaltkreis wird durch das zuvor definierte Signal ENMA1 freigegeben und er umfaßt vier 2x1-Multiplexer. Der erste Multiplexer entspricht dem BYAD-Multiplexer 413 in Fig. 11.Er wählt entweder das Signal LBBYAD oder FIAD23 in Abhängigkeit von dem Wert des Signales ENMBA1 aus und erzeugt das Ausgangssignal VBYTAD.
Das Signal VBYTAD ist ein Binärsignal, welches anzeigt, welches der beiden Bytes von dem Speicher zu lesen oder in den Speicher zu schreiben ist. Das Signal ERRCLR wird als ein Eingangssignal beiden Eingängen des zweiten Multiplexers zugeführt und das Ausgangssignal dieses Multiplexers ist daher durch ERRCLR unabhängig von dem Wert des Signales ENMBA1 gegeben. Der dritte Multiplexerschaltkreis erhält an seinen beiden Eingängen das Signal ENPALB zugeführt, das bedeutet, daß die Übertragung einer physikalischen Adresse zu dem internen Bus freizugeben ist, wobei das Ausgangssignal des dritten Multiplexers somit durch ENPALB gegeben ist. Der letzte Multiplexerschaltkreis in dem Multiplexer 01D07 erhält als Eingänge die Signale APWRIT und RQGTFI zugeführt und er erzeugt an seinem Ausgang das Signal LMBWRT. Das Signal RQGTFI ist das Ausgangssignal des Anforderungs-Gewährungsregisters 409 und zeigt an, daß dem FIFO-
31US34
Speicher und dem Megabusadapter der nächste interne Buszyklus gewährt worden ist. Das Signal APWRIT zeigt die Richtung an, in der eine interne Busübertragung stattfindet, d. h. es ist eine Anforderung an den Speicher oder eine Antwort von dem Speicher. Das Signal LMBWRT ist somit ein Binärsignal, das anzeigt, ob Information zu dem internen Bus von dem Megabusadapter oder von dem internen Bus zu dem Megabusadapter zu übertragen ist.
Die Figuren 22a und 22b veranschaulichen Multiplexerschaltkreise für die Erzeugung der Werte LBADOO-LBAD23. Beispielsweise umfaßt der Multiplexer 01A08 vier 2x1-Multiplexerschaltkreise. Der erste Multiplexerschaltkreis erhält als Eingangssignale PAMROO und VAINOO zugeführt. Wie zuvor erläutert, ist das Signal VAINOO das Ausgangssignal des Schaltkreises 01B06 in Fig. 20a. Das Signal PAMROO wird innerhalb der Pufferspeicher/Speicherverwaltungseinheit erzeugt und entspricht dem Bit 0 einer tatsächlichen physikalischen Adresse in einem der an den Megabus angeschlossenen Speichermodule. Das Signal LBADOO nimmt den Wert eines der beiden Eingangssignale an, je nachdem welchen Wert eine angelegte virtuelle Auswahladresse oder eine physikalische Adresse in Form des Signales SVAEPA aufweist. Das Ausgangssignal LBADOO nimmt den Wert einer physikalischen Adresse ein, wenn das Auswahlsignal SVAEBA den nicht bestätigten Wert aufweist und es gibt eine virtuelle Adresse wieder, wenn das Signal SVAEBA den bestätigten Wert aufweist.
Der Treiber 10A08 und die ODER-Gatter 08A08 und 08B08 werden verwendet, um das Paritätbit zu erzeugen, das mit dem Adressfeld übertragen wird.
Die verbleibenden Multiplexerschaltkreise in den Figuren 22a und 22b arbeiten in der gleichen Weise wie der zuvor beschriebene Multiplexerschaltkreis 01A08 mit der Ausnahme, daß sie unterschiedliche Bits der Adress-Eingangsleitungen zugeführt erhalten und unterschiedliche Bits auf den Adress-Ausgangsleitungen erzeugen. Die Einzelheiten bezüglich der Wirkungs-
31UG34
weise dieser zusätzlichen Multiplexerschaltkreise liegen dem Fachmann auf der Hand.
Die Figuren 23a und 23b veranschaulichen ein Ausführungsbeispiel eines Pufferspeicherdaten-Eingangsmultiplexers 401. Dieser umfaßt 16 2x1-Multiplexer, die von den Signalen ENMBLR und LDLDTR freigegeben und gesteuert werden. Wenn das Signal ENMBLR den bestätigten Wert aufweist, so werden die Megabusdaten (MBDT) an den Ausgangsleitungen LDTR (Daten-Ladeleitungen) freigegeben. Wenn das Signal ENMBLR den nicht bestätigten Wert aufweist, so werden die internen Busdaten (LBDT) an den Ausgangsleitungen LDTR freigegeben. Das Signal ENMBLR bildet das Ausgangssignal von dem Inverter 01B25 und dem ODER-Gatter 01A25, wie dies in Fig. 27a dargestellt ist.
Die Figuren 24a und 24b zeigen ein Ausführungsbeispiel eines Teiles einer Pufferspeicher- und Adresslisteneinheit 403, die die Ausgangsdaten LBDT=:32 plus 4 Paritätbits liefert. Beispielsweise wird das Signal LBDTOO durch das ODER-Gatter 11A14 (Fig. 24a) aus den drei Eingangssignalen CADOOO, L2DO00 und SEGD24 erzeugt. Diese Eingangssignale des ODER-Gatters 11A14 werden innerhalb des Pufferspeichers erzeugt und es reicht für das Verständnis der vorliegenden Erfindung aus, wenn man weiß, daß beim Vorliegen einer angeforderten Adresse in dem Pufferspeicher die zugeordneten Daten auf den Datenleitungen CADO geliefert werden. Diese ODER-Gatter stellen die Quelle der Datensignale LBDT00-LBDT32 für den internen Bus dar.
Ferner ist in Fig. 24a eine Quelle für das Anweisungsfeld LBCMD3:6 für den internen Bus dargestellt. Diese Signale werden durch die Treiberschaltkreise 01A14 und 03A14 aus den Eingangssignalen FIAD18-FIAD23 erzeugt. In gleicher Weise erzeugt der Treiberschaltkreis 03A14 den internen Buszyklus der zweiten Hälfte LBSHBC aus dem FIFO-Buszyklus der zweiten Hälfte FISHBC. Die Treiber 01A14 und 03A14 werden durch das Signal MBCYCL (vom Inverter OYD26, Fig. 28 und vom ODER-Gatter 09025, Fig. 27b)
311 /: 334
freigegeben, welches immer dann erzeugt wird, wenn ein interner Buszyklus dem Megabusadapter gewährt worden ist, um Information von dem FIFO-Speicher 505 zu dem internen Busadapter gemäß Fig. zu übertragen.
Fig. 25 zeigt ein Ausführungsbeispiel des Anforderungs-Entscheidungsschaltkreises 407. In der dargestellten Weise erhält der ODER-Schaltkreis 03B26 die Anforderungssignale CPREQT, SIREQT, CIREQT und FIREQT (erzeugt, wenn RIFOMI nicht bestätigt ist) zugeführt und erzeugt immer dann ein Anforderungs-Aktivierungssignal RQACTV, wenn eines der Anforderungssignale im bestätigten Zustand vorliegt. Die zugeordneten Signale CPASND, SIASND, CIASND und FIASND werden durch UND-Gatter 05B26, 07B26, 09B26 und 11B26 entsprechend erzeugt. Diese UND-Gatter erhalten jeweils das Eingangssignal LBRQIH zugeführt, das eine Anforderungssperre für den internen Bus vorgibt und von dem ODER-Gatter 01B26 erzeugt wird. Diesem ODER-Gatter wird seinerseits ein Eingangssignal zugeführt, das durch das ODER-Gatter 01A26 erzeugt wird und bei dem Binärwert "1" anzeigt, daß alle Anforderungen gesperrt werden, sollten. Die Eingangssignale des ODER-Gatters 01A26 umfassen die Ausgangssignale des Anforderungs-Gewährungsregisters 409, d. h. die Signale RQGTCP, RQGTSI und RQGTCT. Immer, wenn somit eine Anforderung einem der internen Bus-Prozessoren gewährt worden ist, so befindet sich die zugeordnete Anforderungs-Gewährungsleitung auf dem Binärwert "0" und da das Signal am Eingang des ODER-Gatters 01A26 invertiert wird, weist das Ausgangssignal INALRQ den Binärwert "1" auf. Das andere Eingangssignal des ODER-Gatters 01B26 sperrt die internen Busanforderungen IHLBRQ, die immer dann den bestätigten Wert aufweisen, wenn ein interner Buszyklus dem Megabusadapter zugeordnet worden ist, um die Informationsübertragung von dem FIFO-Speicher zu ermöglichen.
Die anderen Eingangssignale des UND-Gatters 05B26 sind durch die Signale CPREQT, SIASND, CIASND und FIASND gegeben. Wenn alle diese Eingangssignale unbestätigt vorliegen, d. h. den Binärwert "1" besitzen, so wird der Zentraleinheit CPU der nächste
Ui μ; J O 4 - 115 -
interne Buszyklus zugeordnet und das Signal CPASND wird auf den Binärwert "1" gesetzt.
Das Signal CPASND wird den UND-Gattern 07B26, 09B26 und 11B26 zugeführt und sperrt im bestätigten Fall, d. h. bei einem Binärwert "O'^die Zuordnung eines internen Buszyklus zu den Einheiten SIP, CIP oder FIFO. Die UND-Gatter 7B26, 9B26 und 11B26 arbeiten in ähnlicher Weise wie das UND-Gatter 05B26. Ein Ausführungsbeispiel des Kanalnumnier-Decodierers 4 21 ist in den Figuren 26a und 26b dargestellt. Dem Decodierer 01A24 werden hierbei als Eingangssignale die Signale LBCMD1 und LBCMD2 von dem internen Bus zugeführt. Das Freigabesignal NHBTCD wird durch das ODER-Gatter 10A24 erzeugt. Dem ODER-Gatter 10A24 werden die Signale LBCMDO und CABUSY zugeführt und somit wird der Decodierer 01A24 immer dann freigegeben, wenn die Pufferspeicher/ Speicherverwaltungseinheit nicht beschäftigt ist und das Signal LBCMDO den bestätigten Wert aufweist. Der Decodierer 01A24 erzeugt die Ausgangssignale DSTNCP, DSTNSI, DSTNCI und DSTNCA für die Übertragung zu dem Befehlsdecodierer 415. Der Megabus-Kanalnummerntreiber ist in Fig. 31b als Treiberschaltkreis 09D29 dargestellt, um immer dann, wenn das Signal MBCYCL den bestätigten Wert aufweist, eine Übertragung von dem Megabusadapter zu dem internen Busadapter zu ermöglichen. In diesem Zeitpunkt wird das Signal LBCMDO auf Massepotential gesetzt, das Signal LBCMD1 wird dem Signal FIAD14 gleichgesetzt und das Signal LBCMD2 wird dem Signal FIAD15 gleichgesetzt.
Die Figuren 26a und 26b zeigen ferner den Funktionscode-Decodierer 423 und den Megabus-Funktionscodetreiber 425. Der Funktionscode-Decodierer ist durch den Decodierer 05A24 verwirklicht, der freigegeben wird, wenn die Signale LB2MRY und CACMND bestätigt vorliegen und das Signal ENCAFC nicht bestätigt ist. Das Signal ENCAFC bildet das Ausgangssignal des UND-Gatters 08A24, dem die Eingangssignale LBCMDO und INALRQ zugeführt werden. Wie zuvor erläutert, bildet die Quelle für das Signal INALRQ das ODER-Gatter 01A26 in Fig. 25.
O Ί " / ' '"■ / - 116 - ^ ' 1^0'4
Das Signal CACMND ist das invertierte Ausgangssignal des UND-Gatters 09A24, dem die Signale LBCMD1 und LBCMD2 als Eingangssignale zugeführt werden. Das Signal LB2MRY stellt das invertierte Ausgangssignal APMREF des Schaltkreises 01B24 dar und besitzt immer dann den bestätigten Wert, wenn einem der internen Bus-Prozessoren ein interner Buszyklus gewährt worden ist. Somit wird der Decodierer 05A24 immer dann freigegeben, wenn eine Übertragung von dem Megabusadapter (Fig. 12) zu dem internen Bus 9 erfolgt, um die Werte der Signale LBCMD6-LBCMD8 zu decodieren und um durch Komplementbildung Ausgangssignale aus den zuvor definierten Signalen REDSCR, LDSGTR, XLTADR, LSDSCR, IIVCTR, LVLCHG, RDMDER und LBMDER zu erzeugen.
Die Megabus-Funktionscodetreiber 425 sind durch die Treiberschaltkreise 01A14 und 03A14 (Fig. 24a) veranschaulicht, die die Signale LBCMD3-LBCMD8 auf die Werte der Signale FIAD18-FIAD23 setzen.
Die spezifischen Schaltkreiselemente, die den Befehlsdecodierer 415 und die Steuerlogik 417 verwirklichen, sind über die Figuren 26a-b, 27a-b, 28, 29a-b, 30, 31a-b, 32a-b und 33a-b verteilt. Eine detaillierte Erläuterung aller interner Schaltkreiselemente und verwendeten Signale ist für ein Verständnis der vorliegenden Erfindung nicht erforderlich und es sollen nur Elemente herausgegriffen werden, denen die decodierten Funktionen von dem Funktionsdecodierer 423 zugeführt werden und die decodierte Befehle erzeugen, welche von dem Befehlsdecodierer 415 zu der Steuerlogik 417 übertragen werden. Ferner sei die Quelle des Signales CACNTRLO:10 erläutert.
Die Signale RDCYCL, INCYCL, LBCRMB, MRFCYL, und LBCRLB werden durch UND-Gatter in Fig. 26b erzeugt. Jedem dieser UND-Gatter wird als ein Eingangssignal das Signal PSYCYLO zugeführt, das das Ausgangssignal des ODER-Gatters 01C26 in Fig. 28 bildet. Das Signal PSCYCL weist den bestätigten Wert auf, wenn eines der Signale CPASND, CIASND oder SIASND auf den bestätigten Wert gesetzt worden ist.
- 1 1 7 - Q ·1 ι /. ■- O /,
w- O
Das UND-Gatter 01D24, das das Signal RDCYCL als Ausgang erzeugt, erhält die Signale LB2MRY und APWRIT als Eingangssignale zugeführt. Die Beziehung dieser beiden letztgenannten Eingangssignale wurde zuvor beschrieben. Das Signal RDCYCL am Ausgang des UND-Gatters 01D24 besitzt immer dann den Binärwert "1", wenn der interne Busprozessor einen Speicher-Lesezyklus anfordert.
Das Signal INCYCL wird auf den Binärwert "1" immer dann gesetzt, wenn keine- Speicherbezugnahme durch einen internen Busprozessor vorliegt und das Pufferspeicher-Bestimmungssignal DSTNCA ebenfalls den Binärwert "1" besitzt, nachdem es durch den Inverter 05C24 invertiert wurde.
Das Signal LBCRMB besitzt den Binärwert "1", wenn keine Speicherbezugnahme durch einen der internen Busprozessoren ausgelöst wird und die Bestimmungseinheit mit dem Megabus verbunden ist, was durch das Signal DSTNMB mit dem Binärwert "1" angezeigt wird.
Das Signal MRFCYL entspricht immer dann dem Binärwert "1", wenn ein interner Busprozessor eine Anforderung an den Speicher ausgibt.
Die Inverter 06D24 und 07D24 sind vorgesehen, um die Werte der Signale RDCYCL und LBCRMB zu invertieren.
Das Signal LBCRLB am Ausgang des UND-Gatters 06C24 entspricht immer dann dem Binärwert "1", wenn die Signale PSCYCL, LB2MRY, DSTNMB und DSTNCA alle den Binärwert "1" aufweisen.
Die Signale MBCMLB, MBRSLB und FICYCL, die von dem Befehlsdecodierer 415 zu der Steuerlogik 417 übertragen werden, werden durch den Decodierschaltkreis 05C26 in Fig. 28 erzeugt. Die zu decodierenden Eingangssignale bilden die Signale FISHBC und FIMREF und die Decodierung wird immer freigegeben, wenn eine Anforderung dem FIFO-Speicher gewährt worden ist, was durch das bestätigte Signal RQGTFI angezeigt wird, welches dem
ο i I i; J O li
invertierten Eingang zugeführt wird.
Das Signal MBCYCL wird immer durch das ODER-Gatter 09D25 (Fig. 27b) erzeugt, wenn die Signale MBCMLB oder MBRSLB den bestätigten Wert aufweisen.
Das Signal WRCYCL wird durch den Inverter 11D26 (Fig. 28) aus dem Signal LBWCYL erzeugt, das von dem UND-Gatter 07C26 kommt. Wenn die Signale LBWRIT, LB2MRY und PSCYCL alle den bestätigten Wert aufweisen, so weist das von dem Inverter 11D26 ausgegebene Signal WRCYCL ebenfalls den bestätigten Wert auf.
Die Pufferspeicher-Steuersignale am Ausgang der -Steuerlogik werden folgendermaßen erzeugt. Das Signal CADBPL bildet den Ausgang des ODER-Gatters 12C24 (Fig. 26b). Den Eingängen des ODER-Gatters 12C24 werden die Signale WRDBPL und SDBPL1 zugeführt. Das Signal WRDBPL wird durch das UND-Gatter 12B24 erzeugt und besitzt immer dann den Binärwert "1", wenn die Signale WRCYCL, LBWCT2 und UARRFP alle den Binärwert "1" aufweisen. Die Quelle des Signales WRCYCL ist erläutert worden, das Signal LBWCT2 bildet, wie zuvor erläutert, ein Eingangssignal von einem der internen Busprozessoren und das Signal UARRFP ist durch das Ausgangssignal des D-Flip-Flops 05B28 (Fig. 30) gegeben. Dieses D-Flip-Flop bildet einen Teil der Speicherverwaltungs-Fehlerlogik 427 und das Signal UARRFP besitzt den Binärwert "1", wenn sich eine angeforderte Speicheradresse innerhalt der Grenzen der verfügbaren Speichermodule befindet. Wie zuvor erläutert, überprüft die Fehlerlogik 427, ob die Adresse physikalisch in dem Datenverarbeitungssystem vorhanden ist und ob kein Versuch durch einen Anforderer gemacht worden ist, auf einen Speicherplatz zuzugreifen, auf den er keine Zugriffsberechtigung besitzt. Wie zuvor festgestellt, bildet die Funktion der Fehlerlogik kein Merkmal der vorliegenden Erfindung, aber die D-Flip-Flops 01B28, 03B28, 05B28 und 07B28 (Fig. 30) bilden die Schaltkreise dieser Logik. Der Treiber 09B28 erzeugt drei Unversehrtheitssignale LBPROV, LBUARL und LBUARR.
31U334
Dem anderen Eingang des ODER-Gatters 1 2C24 wird das Signal SDBPL1 von dem Ausgang des UND-Gatters 08C26 (Fig. 28) zugeführt. Dieses UND-Gatter erhält an seinen Eingängen die Signale RDCYCL, MUUARR, RGTHIT, CPLOCK und SWRNLH zugeführt. Das Signal SWRNLH bildet seinerseits das invertierte Ausgangssignal des ODER-Gatters 10C26, dem die Eingangssignale APDBLW und LFTHIT zugeführt werden. Somit wird das Ausgangssignal CADBPL immer dann erzeugt, wenn sich die angeforderten Speicherplätze innerhalb der Grenzen des Systemspeichers befinden, zwei Worte angefordert worden sind und keines der adressierten Worte sich in dem Pufferspeicher 403 befindet.
Die Signale CASHBC, CALOCK, CABYTE und CAWRIT werden durch den Treiberschaltkreis 01D27 (Fig. 29b) erzeugt. Die Werte der Signale CALOCK und CABYTE geben die Werte der Signale CPLOCK und LBWCT1 wieder, die von der Pufferspeicher / Speicherverwaltungseinheit empfangen werden. Das Signal CAWRIT wird auf den Wert des Signales LBWRIT gesetzt, das aus dem Eingangssignal APWRIT über den Inverter 9D23 (Fig. 33) erzeugt wird. Das Signal APWRIT weist seinerseits immer den Binärwert "0" auf, wenn einer der internen Busprozessoren einen Schreibzyklus an den Speicher angefordert hat und ihm ein interner Buszyklus gewährt worden ist.
Das Signal CASHBC wird auf den Wert des Signales LBSHBC gesetzt, welches seinerseits durch den Treiberschaltkreis 03A14 (Fig. 24) erzeugt wird und den Wert des Signales FISHBC wiedergibt.
Die Signale DAYELO und CAMREF werden durch den Treiberschaltkreis 06C30 (Fig. 32b) erzeugt und sie entsprechen den Signalen CPYELO und LB2MRY. Wie zuvor erwähnt, bildet das Signal CPYELO ein Ausgangssignal der Zentraleinheit CPU und das Signal LB2MRY zeigt im bestätigten Fall eine übertragung von dem internen Bus zu dem Speicher an.
1 ι / η Τ ;
i i k ο J 4 - 120 -
Ein Signal CALKNC wird durch das UND-Gatter 04A29 (Fig. 31a) immer dann erzeugt, wenn die Signale FULHIT, CPLOCK und RDCYCL alle den Binärwert "1" besitzen. Das Signal FULHIT bildet ein Ausgangssignal des Pufferspeichers 403 und zeigt an, daß alle in einem Speicher-Lesezyklus angeforderten Daten bereits in dem Pufferspeicher vorliegen. Das Signal CPLOCK am Eingang wird immer dann auf den Binärwert "1" gesetzt, wenn beim Lesen eine Rechtsmodifikation (RMW) durch die Zentraleinheit CPU angefordert worden ist und das Signal RDCYCL zeigt bei einem Binärwert "1" an, daß ein Speicher-Lesezyklus angefordert worden ist. Das Signal CADBWD bildet das Ausgangssignal des ODER-Gatters 11C24 (Fig. 26) und besitzt immer dann den Binärwert "1", wenn die Signale CADBLW und SDBPL1 beide oder eines von ihnen den Binärwert "1" aufweisen. Die Art und Weise, in der das Signal SDBPL1 erzeugt wird, ist zuvor erläutert worden und das Signal CADBLW bildet den Ausgang des UND-Gatters 07B29 (Fig. 31a), das immer dann den Binärwert "1" besitzt, wenn ein Schreibzyklus entsprechend dem Signal WRCYCL angefordert worden ist, der zugeordnete Prozessor entsprechend dem Signal LBDBLW ein Doppelwort angefordert hat und entsprechend dem Signal UARRFP keine Anforderung nach einem nicht verfügbaren Systemmittel vorliegt.
Wie zuvor erwähnt, erhält die Steuerlogik 417 ferner die FIFO-Steuersignale FIMREF-FIYELO zugeführt, die als Ausgangssignale des FIFO-Speichers 505 durch den Megabusadapter (Fig. 12) erzeugt werden. Die Signale FIDBDL, FIBYTE, FIDBWD und FIAD23 werden alle als Eingänge dem Multiplexer 01A30 (Fig. 32a) zugeführt, durch welchen die entsprechenden internen Bussignale oder die Signale selbst entsprechend dem Wert des Signales FICYCL ausgewählt werden. Wenn ein FIFO-Zyklus dem internen Busadapter gewährt worden ist, so werden die ursprünglichen FIFO-Signale ausgewählt, während bei einem Nicht-FIFO-Zyklus die ursprünglichen internen Bussignale ausgewählt werden.
Die Signale FIREDL und FIREDR werden als Eingänge den ODER-Gattern 04A30 und 05A30 entsprechend zugeführt (Fig. 32a).
Die anderen Eingangssignale dieser ODER-Gatter werden durch die Signale UARLPP und ÜARRFP gebildet. Der Zweck dieser ODER-Gatter liegt in der Erzeugung interner Signale, die die Datenübertragungen begleiten, um anzuzeigen, daß ein unkorrigierbarer Fehler in dem linken oder rechten Wort der Daten aufgedeckt worden ist. Wenn dieser Fehler durch den Systemspeicher erfaßt wird, so wird er durch die Signale FIREDL und FIREDR angezeigt. Die Signale UARLFP und UARRFP zeigen eine Anforderung nach einem durch die Pufferspeicher/Speicherverwaltungseinheit festgestellten, nicht verfügbaren Systemmittel an.
Das Signal FILOCK wird dem Inverter 07A30 zugeführt, dessen Ausgangssignal auf das Schaltkreiselement 09A30 geführt ist.
Wie zuvor erwähnt, wird das Signal FISHBC als Eingang dem Treiberschaltkreis 03A14 zugeführt, wobei es verwendet wird, um den Wert des Signales LBSH3C einzustellen.
Das Signal FIMREF wird zusammen mit dem Signal FISHBC dem Schaltkreis 11C23 (Fig. 33b) zugeführt. Das Ausgangssignal FIREQT dieses Schaltkreises signalisiert, daß der FIFO-Spoicher Zugriff zu dem internen Busadapter gefordert hat. Wie zuvor erläutert, gibt das Signal FIMREF den Auftritt eines Hauptspeicher-Schreibzyklus durch eine an den Megabus angeschlossene Einheit wieder, so daß es erforderlich ist, Zugriff zu dem internen Bus und dem Pufferspeicher zu nehmen, um sicherzustellen, daß der Speicherplatz in dem Pufferspeicher fortgeschrieben wird.
Der Zeittaktgenerator 419 wird durch Verzögerungsschaltkreise 03B27 und 08B27 (Fig. 29a) verwirklicht. Der Verzögerungsschaltkreis 03B27 wird immer ausgelöst, wenn eine Speicherbezugnahme gleichzeitig mit einer aktiven Anforderung des internen Busses auftritt. Der Verzögerungsschaltkreis 08B27 wird immer ausgelöst, wenn eine Speicherbezugnahme vorliegt und der Pufferspeicher beschäftigt ist, was durch das Signal CABUSY angezeigt wird. *
3-1 λ t <—
Der Logikschaltkreis 417 erzeugt die Signale DCNNCP, DCNNSI unf DCNNCI mit dem Binärwert "1" immer dann, wenn durch den internen Busadapter eine Übertragung zu den Einheiten CPU, SIP oder CIP gerichtet ist. Diese Signale gestatten dem empfangenden Prozessor die Annahme eines internen Bustransfers. Diese Signale werden durch die UND-Gatter 09C29, 10C29 und 11C29 (Fig. 31b) erzeugt. Beispielsweise besitzt das Signal DCNNCP den Binärwert "1", wenn die Signale LBDCNN und DSTNCP an den Eingängen des UND-Gatters 09C29 beide bestätigt vorliegen. Wie zuvor erläutert, bildet das Signal DSTNCP ein Ausgangssignal des Kanalnummer-Decodierers 421 und insbesondere des Decodierschaltkreises 01A24 (Fig. 26a). Das Signal LBDCNN bildet das invertierte Ausgangssignal des Schaltkreises 06D29 (Fig. 31b) und besitzt immer den bestätigten Wert, wenn am Ausgang eines der vier UND-Gatter in dem Schaltkreis ein Signal mit dem Binärwert "1" erzeugt wird. Eines dieser UND-Gatter erhält die Eingangssignale FULHIT, CPLOCK, RDCYCL und DYSRCD zugeführt. Die Herkunft der Signale FULHIT, CPLOCK und RDCYCL wurde bereits erläutert. Das Signal DYSRCD (Adressiisten-Absuche) bildet den Ausgang des Treiberschaltkreises 01A29 (Fig. 31a) und es besitzt den Wert des Signales MMRYP3, das das Ausgangssignal des Verzögerungsschaltkreises 03B27 (Fig. 29a) bildet. Wenn somit ein Lesezyklus durch einen internen Busprozessor angefordert worden ist, die angeforderte Information in dem Pufferspeicher gespeichert ist und die Zentraleinheit CPU den Speicherplatz des Pufferspeichers nicht verriegelt hat und wenn eine Adresslistenabsuche vervollständigt worden ist, so weisen die vier Eingangssignale des UND-Gatters den Binärwert "1" auf und das Signal LBDCNN nimmt den bestätigten Wert ein.
Ein zweites UND-Gatter in dem Schaltkreis 06D29 erhält die Eingangssignale MBCOVR und APWRIT zugeführt. Wie zuvor erläutert, zeigt das Signal APWRIT im bestätigten Zustand an, daß ein Schreibzyklus in dem Speicher durch einen internen Busprozessor angefordert wird. Wenn kein Schreibzyklus angefordert worden ist, besitzt somit das Signal APWRIT den Binär-
J i i . . ,y -'4
wert "1" und das Signal MBCOVR besitzt den invertierten Wert des von dem Megabusadapter zu dem internen Busadapter übertragenen Signales. Der Wert des invertierten Signales MBCOVR ist durch den Binärwert "1" gegeben, wenn eine übertragung zu dem internen Bus gerichtet ist und das Signal LBDCNN wird daher auf den Binärwert "0" gesetzt. Das Signal LBDCNN besitzt ebenfalls den Binärwert "0", wenn die Signale MBLBIO, DYISRCD und INHDCN alle den Binärwert "1" besitzen. Diese drei Signale bilden Eingänge des dritten UND-Gatters in dem Schaltkreis 06D29. Das Signal MBLBIO steht am Ausgang des ODER-Gatters 05C29 zur Verfügung und ist immer dann auf den Binärwert "1" gesetzt, wenn der Megabus eine Anweisung an den internen Bus richtet. Das Signal DYSCRD ist immer dann auf den Binärwert "1" gesetzt, wenn eine Pufferspeicher-Adresslistenabsuche ausgeführt wird und das Signal INHDCN ist immer auf den Binärwert "1" gesetzt, wenn ein Signal DCNN nicht gesperrt ist. Das Signal INHDCNN wurd durch das UND-Gatter 04C29 erzeugt, dem die Eingangssignale ERREND und APWRIT zugeführt werden. Das Signal ERREND liegt am Ausgang des Inverters 12B28 (Fig. 30) vor, dem am Eingang das invertierte Ausgangssignal des ODER-Gatters 12A28 zugeführt wird. Wie aus den Schaltkreisen in Fig. 30 ersichtlich, bedeutet der Wert des Signales ERREND, der dem invertierenden Eingang des UND-Gatters 04C29 zugeführt wird, daß: 1. eine Speicheranforderung durch einen internen Busprozessor angefordert wird und die Anforderung ein nicht verfügbares Systemmittel oder die Übertretung einer Schutzregel betrifft oder 2. eine interne Busübertragung zu dem Megabus vorliegt, was anzeigt, daß der Speicher umgangen wird. Das Signal APWRIT wird auf den Binärwert "1" gesetzt, wenn es dem invertierenden Eingang des UND-Gatters 04C29 zugeführt wird und ein interner Busprozessor einen Speicher-Schreibzyklus angefordert hat. Wenn somit die Erzeugung eines Signales DCNN nicht gesperrt worden ist und wenn ein Megabustransfer zu dem internen Bus vorliegt und die Pufferspeicher-Adressliste nicht abgesucht worden ist, so nimmt das Ausgangssignal des UND-Gatters in dem Schaltkreis 06D29 den Binärwert "1" ein und das Signal LBDCNN wird auf den Binärwert "0" gesetzt.
Das letzte UND-Gatter in dem Schaltkreis 06D29 erzeugt ein Ausgangssignal mit dem Binärwert "1", wenn ein Transfer zwischen zwei internen Busprozessoren vorliegt, was durch den Binärwert "1" des Signales LBCRLB angezeigt wird und wenn ein interner Bustransfer zu diesem Zeitpunkt gültig ist, was durch das Signal LBVALD mit dem Binärwert "1" angezeigt wird. Das Signal LBVALD bildet den Ausgang des Inverters 10C27 (Fig. 29b) und es wird auf den Wert des Signales N0MYP2 gesetzt, das am Ausgang des Verzögerungsschaltkreises 08B27 (Fig. 29a) vorliegt.
Das Ausgangssignal INPNDG wird durch die Steuerlogik 417 über einen geeigneten Treiberschaltkreis erzeugt, dem ein Ausgangssignal von dem Megabusadapter zugeführt wird, welches anzeigt, daß eine Unterbrechung in dem Unterbrechungsregister 519 vorliegt. Das Signal MBIPND des Unterbrechungsregisters wird zu einer zugeteilten Leitung des internen Busses übertragen und der Zentraleinheit CPU zugeführt.
Das Signal LBACKR liegt am Ausgang des D-Flip-Flops 01D28 (Fig. 30) vor. Dieses Signal zeigt bei einem Binärwert "1" eine ACK-Antwort und bei einem Binärwert "0" eine NAK-Antwort durch die Megabuseinheit an. Das Signal LBACKR wird immer auf den Binärwert "0" gesetzt, wenn eine Hauptlöschung, eine Schreibunterbrechung entsprechend dem Signal WBRKIN mit dem Binärwert "1" von dem Megabusadapter oder wenn ein Signal CASTRT mit dem Binärwert "1" vorliegt. Wenn der Megabus eine NAK-Antwort ausgegeben hat, was durch das Signal MBNAKR mit dem Binärwert "0" angezeigt wird, so wird das D-Flip-Flop 01D28 zurückgestellt und das Signal LBACKR auf den Binärwert "0" gesetzt.
4. Bevorzugtes Ausführungsbeispiel des Megabusadapters
Die Figuren 34a-b, 35a-b, und 36a-b veranschaulichen die Hardware der Sender/Empfänger 503 (Fig. 12). Beispielsweise erhält der Sender/Empfänger 01AA03 die Megabus-Datenleitung BSDTOO zugeführt. Der Empfängerteil des Senders/Empfängers liefert einen
_ -joe _ O [ ι ' ί v.^ v_y
invertierten Wert der empfangenen Megabusdaten und eine invertierte Übertragung von dem Megabusadapter zu dem Megabus wird durch den Treiberteil des Senders/Empfängers ausgeführt. Der Treiberschaltkreis erhält als Eingang das Signal MYDTOO zugeführt und er überträgt einen invertierten Wert des Signales als Signal BSDTOO, wenn das Freigabesignal MYDCNW bestätigt vorliegt. Das Signal MYDCNW wird durch das UND-Gatter 08DD10 (Fig. 41b) erzeugt. Ein Eingang des UND-Gatters 08DD10 wird durch einen Ausgang des JK-Flip-Flops 05DD10 vorgegeben und besitzt den Binärwert "1", wenn der Megabusadapter durch die zuvor erwähnte Bus-Prioritätslogik einen Megabuszyklus angenommen hat. Der andere Eingang des UND-Gatters 08DD10 wird durch das Signal CAWRIT am Ausgang des Treiberschaltkreises 10AA04 (Fig. 35a) vorgegeben. Dieses Signal besitzt seinen Ursprung in dem internen Busadapter und weist immer dann den Binärwert "1" auf, wenn ein Systemspeicher-Schreibzyklus angefordert worden ist. Der Sender/Empfänger 01AA03 überträgt somit das Datenbit MYDTOO zu der Megabusleitung BSDTOO, wenn in dem zentralen Subsystem eine Anforderung für eine Übertragung zu dem Megabus ausgegeben worden ist und der Megabusadapter einen Megabuszyklus angenommen hat.
Die Sender/Empfängerschaltkreise 02AA03-08AA03 senden und empfangen entsprechende Megabus-Datenbits BSDT01-BSDT07, wie dies im Zusammenhang mit dem Schaltkreis 01AA03 erläutert wurde. In gleicher Weise bilden Sender/Empfänger 01BB03-08BB03 Schnittstellen mit dem Megabus für die Datensignale BSDT08-BSDT15. Die Datenbits BSDTl6-BSDT23 werden durch Sender/Empfänger 01AA04-08AA04 (Fig. 32a) gesendet und empfangen und die Datenbits BSDT24-BSDT31 werden mittels Sender/Empfänger 01BB04-08BB04 gesendet und empfangen. Die den Datenworten zugeordneten Paritätbits werden durch Sender/Empfänger 09AA03 und 09BB03 gesendet und empfangen.
Der Sender/Empfänger 10AA03 empfängt das Signal BSAD23 und sendet das Signal LBAD23. Der Sender/Empfänger 11AA03 empfängt und sendet das Doppelauszug-Signal DBPL und der Sender/Empfänger
31U334
12AA03 empfängt das Buszyklussignal der zweiten Hälfte CASHBC, wenn es zu dem Megabus gesendet wird und sendet das Buszyklussignal der zweiten Hälfte ISSHBC/ wenn es von dem Megabus empfangen wird. Der Inverter 13AA03 invertiert den Wert des empfangenen Doppelauszug-Signales BSDBPL. Der Sender/Empfänger 10BB03 empfängt und sendet das Busanforderungssignal mit hoher Priorität BSREQH, der Sender/Empfänger 11BB03 empfängt und sendet das Verriegelungssignal LOCK und der Sender/Empfänger empfängt und sendet das Schreibsignal WRIT.
Gemäß Fig. 34b empfängt und sendet der Sender/Empfänger 01CC03 das Speicher-Referenzsignal MREF, der Sender/Empfänger 02CC03 das Signal YELO, der Sender/Empfänger 03CC03 das Signal REDL und der Sender/Empfänger 04CC03 das Signal BYTE.
Das Wartesignal WAIT wird von dem Megabusadapter zu dem Megabus durch Sender/Empfänger 05CC03 und 06CC03 gesendet und von diesem empfangen. Das ODER-Gatter 06DD03 verbindet die Ausgänge der Sender/Empfänger für das Wartesignal. Das Signal NAKR wird durch Sender/Empfänger 07CC03 und 08CC03 empfangen und gesendet und das ODER-Gatter 08DD03 verknüpft die von dem Megabus empfangenen Signale BSNAKR.
Die Megabusadapter-Anforderung in einem Signal MYREQT wird zu dem Megabus als Signal BSREQL gesendet und von dem Megabus als Signal BSREQL durch den Sender/Empfänger 09CC03 empfangen.
Die Sender/Empfänger 10CC03, 11CC03 und 12CC03 empfangen und senden das Hauptlöschsignal MCLR, das Wiederaufnahme-Unterbrechungssignal RIMT und das Abfangsignal TRAP. Gemäß Fig. 35a übertragen die Sender/Empfänger 01AA04-08AA04 und 01BB04-08BB04 die Signale LDTR16-LDTR31 sowie BSDT16-BSDT31. Wie zuvor erläutert, bilden die Datensignale LDTR Ausgangssignale des Pufferspeicherdaten-Eingangsmultiplexers 401, wobei sie internen Bus-Datensignalen entsprechen, die durch den Megabusadapter gesichert werden.
O I i s j j 4 - 127 -
Treiberschaltkreise 10AA04, 12AA04, 10BB04 und 12BB04 in Fig. 35a bilden Schnittstellen für die Pufferspeicher-Steuersignale CACNTRLO:1O1 die durch die Steuerlogik 417 (Fig. 11) mit den zuvor beschriebenen Sendern/Empfängern erzeugt werden.
Das Signal PULLUP besitzt einen konstant hohen Pegel und wird zur Freigabe verschiedener Schaltkreiselemente in dem Megabusadapter, z.B. für den Treiberschaltkreis 10AA04 benutzt. Das zur Freigabe der Treiber 10BB04 benutzt. Das zur Freigabe der Treiber 10BB04 und 12BB04 verwendete Signal MYINCR wird durch den Ausgang eines D-Flip-Flops 01DD14 (Fig. 45b) vorgegeben und wird auf den Binärwert "1" gesetzt, um den Treiberschaltkreis freizugeben.
Gemäß Fig. 35b empfangen und senden die Sender/Empfänger 01 CC04 und 02CC04 die verbleibenden zwei Daten-Paritätbits.
Der Sender/Empfänger 03CC04 empfängt und sendet das Doppelbreitensignal DBWD und der Sender/Empfänger 06CC04 empfängt und sendet das Nicht-Zyklus-Verriegelungssignal LKNC. Die Sender/Empfänger 04CC04, 05CC04, 07CC04 und 08CC04 geben immer an ihrem invertierten Ausgang im freigegebenen Zustand einen hohen Pegel aus, da der Eingang der Treiberschaltkreise in den Sendern/Empfängern auf Massepotential gehalten wird. Diese Sender/Empfänger empfangen die Signale BSRESQ (Antwortqualifikation) ,BSREDR (nicht korrigierbarer Fehler in dem rechten Datenwort), BSSPR7 (Ersatz) und BSSPR8 (Ersatz).
Fig. 36a veranschaulicht die Hardware von Sendern/Empfängern für den Empfang und das Senden von Adressdaten. Diese Sender-Empfänger 01AA08-12BB08 senden die Signale MYAD00-MYAD22 zu dem Megabus von dem Megabusadapter und sie empfangen die Signale BSAD00-BSAD22 von dem Megabus.
Fig. 36b umfaßt den Paritätgenerator 10DD08 für die übertragung eines geraden oder ungeraden Paritätbits zusammen mit den Adressdaten.
οι ι ' ■' ο f
Ferner weist die Anordnung gemäß Fig. 36b Sender/Empfänger für die Signale DCNN und ACKR auf.
Ein Ausführungsbeispiel des Daten-Ausgangsmultiplexers 523 ist in den Figuren 37a und 37b gezeigt. Die Multiplexer 01BB05, 04BB05 und 06BB05 wählen entweder die 6 linken Bits des ersten Datenwortes (LDTR00-LDTR05) oder die 6 linken Bits des zweiten Datenwortes (LDTR16-LDTR21) unter der Steuerung des Freigabesignales SHIFTD aus, um die Signale MYDT00-MYDT05 zu erzeugen. Der Wert des Signales SHIFTD wird durch das ODER-Gatter 09CC05 immer auf den Binärwert "1" gesetzt, wenn entweder das Signal CAMREF oder MYINCR den bestätigten Wert aufweist. Bei einem Binärwert "1" veranlaßt das Signal SHIFTD die Übertragung der linken 6 Bit des zweiten Datenwortes zu dem Datenfeld MYDTO:5 des Megabusadapters.
Der Multiplexer 08BB05 erzeugt die Datenbits MYDT06 und MYDT07 unter der Steuerung durch die Signale SHIFTD und CAWRIT. Wenn beide Steuerbits den Binärwert "0" aufweisen, so werden die Signale LDTR06 und LDTR07 zu dem Ausgang übertragen; wenn das Steuersignal SHIFTD den Binärwert "1" und das Steuersignal CAWRIT den Binärwert "0" aufweist, so werden die Signale LDTR22 und LDTR23 zu den Ausgängen übertragen und wenn das Steuersignal CAWRIT den Binärwert "1" und das Steuersignal SHITD den Binärwert "0" aufweist oder beide Steuersignale den Binärwert "1" besitzen, so werden die Signale CIRQGF und SIRQGF, die durch den internen Busadapter erzeugt werden, an den Ausgängen MYDT06 und MYDT07 ausgegeben.
Der Multiplexer 01DD05 (Fig. 37b) wird ebenfalls durch die Steuersignale SHIFTD und CAWRIT gesteuert und erzeugt Ausgangs-Datensignale MYDT08 und MYDT09. Das Signal MYDT08 wird entweder auf einen der Werte der Signale LDTR08 bzw. LDTR24 oder auf den Wert des Signales MYCHN2 gesetzt, das durch das zweite Bit der Megabusadapter-Kanalnummer vorgegeben ist, die durch den hexadezimalen Schalter 01AA11 (Fig. 42a) erzeugt wird, wobei die Auswahl der Signale durch die Steuersignale erfolgt.
6 I j ■■·.· ^ J 4
In gleicher Weise wird das Signal MYDT09 auf den Wert der Signale LDTR09, LDTR25 oder MYCHN3 in Abhängigkeit von den Werten der Steuersignale gesetzt.
Die Multiplexer 04DD05, 06DD05 und 08DD05 wählen entweder die Signale LDTR10-LDTR15 oder LDTR26-LDTP31, gesteuert durch das Steuersignal SHIFTD1 aus, um die Ausgangssignale MYDT10-MYDT15 zu erzeugen.
Die Paritätbits MYDPOO und MYDP08 werden durch Multiplexer 11BB05 und 11DD05 in Abhängigkeit von den Werten der Steuersignale SHIFTD und CAWRIT erzeugt.
Die Figuren 38a-b, 39a-b, 40a und 44a-b veranschaulichen ein Ausführungsbeispiel des FIFO-Speichers 505, des Schreibadressregisters 507, des Leseadressregisters 509, des Schreibdetektors 511, der FIFO-Steuerung 513, des ODER-Gatters 515, des Multiplexers 517, des ünterbrechungsregisters 519 und des Registers 521 für die zweite Hälfte des Buszyklus.
Gemäß den Figuren 38a, 38b und 3 9a ist eine Gruppe von Speichern mit wahlfreiem Zugriff (RAM) und Ausgangsmultiplexern dargestellt. Der Speicher 01AA06 ist ein 4X4-Speicherelement, dem die Eingangssignale BSDT00-BSDT03 zugeführt werden und der die Ausgangssignale FIDT00-FIDT03 liefert. Das Einschreiben von Daten in den Speicherplatz des Speichers 01AA06 wird durch Schreibsteuersignale WRTADO und WRTAD1 gesteuert, so daß Information in den Speicher eingeschrieben und vom Eingang zum Ausgang verschoben werden kann. Leseadress-Steuersignale REDADO und REDAD1 steuern z.B. die Adressen 0-3, aus denen Information gelesen werden kann.
Die Schreibsteuersignale WRTADO und WRTAD1 werden durch die JK-Flip-Flops 05BB13 und 05AA13 (Fig. 44A) erzeugt. Diese JK-Flip-Flops erhalten das Signal WRTINC mit einem bestätigten Wert immer dann zugeführt, wenn die Schreibadresse in dem FIFO-Speicher zu erhöhen ist. Das Signal WRTINC steht am Ausgang des
Q 1 * I. C, q A
- 130 - Jlil1^4
Inverters 04CC15 (Fig. 44b) zur Verfugung, der ein Eingangssignal WRT030 von dem Verzögerungsschaltkreis 02BB13 zugeführt erhält. Die Verzögerung wird ausgelöst durch ein Schreib-Speichersignal WRTSTR, das von dem ODER-Gatter 04AA13 erzeugt wird. Das Schreib-Speichersignal wird immer auf den Binärwert "1" gesetzt, wenn der Systemspeicher eine ACK-Antwort auf eine Speicher-Schreibanforderung erzeugt (MEMACK besitzt den Binärwert "0") oder wenn ein Buszyklus der zweiten Hälfte in dem FIFO-Speicher zu speichern ist, was durch das bestätigte Signal SHBFIF angezeigt wird. Dies ist der Fall, wenn der FIFO-Speicher ein zweites übertragenes Datenwort aufnehmen muß, das durch einen Speicher mit Doppelauszug und Einzelwortbreite in einem zweiten Buszyklus übertragen wird oder auf Grund einer zweiten Leseanforderung bei einem Speicher mit Einzelauszug und Einzelwortbreite übertragen wird.
Das Signal SHBFIF wird speziell durch das Ausgangssignal des D-Flip-Flops 11B13 vorgegeben. Wie zuvor im Zusammenhang mit Fig. erläutert, wird das erste Datenwort, das auf Grund einer Doppelauszug-Anforderung DBPL oder auf Grund einer Doppelbreite-Leseanforderung übertragen wird, in den Registern 07DD13 und 10DD13 gespeichert, wobei dies durch das Signal SHBREG gesteuert wird, welches von dem D-Flip-Flop 12DD13 erzeugt wird.
Die Steuerung der D-Flip-Flops 11BB13 und 12BB13 erfolgt durch drei UND-Gatter 11AA13, 12AA13 und 13AA13. Anfänglich weist das einem Eingang des UND-Gatters 13AA13 zugeführte Signal SHBREG den Binärwert "0" auf, so daß das invertierte Ausgangssignal DBLSHB den Binärwert "1" besitzt. Das Signal DBLSHB wird durch den Eingang des UND-Gatters 12AA13 invertiert und logisch mit dem Wert des Signales BSDBWD kombiniert. Hierdurch nimmt das Signal FSTSHB den Binärwert "1" ein und schaltet das D-Flip-Flop 12BB13 in den gesetzten Zustand, um das Signal SHBREG auf den Binärwert "1" zu setzen. Hierdurch werden die Signale BSDTOO-BSDT15 in die Register 07DD13 und 10DD13 geladen. Durch das Setzen des Signales SHBREG auf den Binärwert "1" nimmt das Signal DBLSHB den Binärwert "1" ein, nachdem es am Ausgang des
3-1I ' r ~) / i i J; j j 4
UND-Gatters 13AA13 invertiert ist. Dies führt dazu, daß das Signal FSTSHB am Ausgang des UND-Gatters 12AA13 auf den Binärwert "O" umschaltet. Das UND-Gatter 11AA13 erhält die Signale PSTSHB und CALKNC als Eingänge über die Inverter zugeführt und es setzt das letzte Buszyklussignal LSTSHB für die zweite Hälfte auf den Binärwert "1", so daß das Flip-Flop 11B13 umschaltet und das Signal SHBFIF auf den Binärwert "1" gesetzt wird. Auf diese Weise wird die Schreibadresse des FIFO-Speichers erhöht und es werden die 16 Bit der in dem nächsten Megabuszyklus übertragenen Megabusdaten in dem FIFO-Speicher gespeichert.
Die Lesesteuersignale REDAD1 und REDADO werden durch JK-Flip-Flops 05CC13 und 05DD13 erzeugt. Die Leseadresse wird unter Steuerung durch das Signal RARINC erhöht, das durch das ODER-Gatter 04DD15 (Fig. 46b) erzeugt wird. Das Signal RARINC wird immer auf den Binärwert "0" gesetzt, wenn eine Leseanforderung an den FIFO-Speicher, beispielsweise auf Grund einer Schreibunterbrechung erzeugt wird, wobei die JK-Flip-Flops 05CC13 und 05DD13 umschalten, da das Signal RARINC den invertierenden Eingängen dieser Flip-Flops zugeführt wird.
Der Vergleicher 02DD13 (Fig. 44a) überwacht den Inhalt des FIFO-Speichers 505, indem er den Wert der Schreibadreßsignale WRTADO und WRTAD1 mit dem Wert der Leseadreßsignale REDADO und REDAD1 vergleicht. Wenn diese gleiche Werte aufweisen, so wird das Signal FIFOMT auf den Binärwert "1" gesetzt, um anzuzeigen, daß der FIFO-Speicher gerade leer ist. Gemäß Fig. 11 wird das Signal FIFOMT dem Anforderungs-Entscheidungsschaltkreis 407 zugeführt, um die Zuordnung eines internen Buszyklus zu dem FIFO-Speicher anzufordern.
Gemäß Fig. 38a wählen die Multiplexerschaltkreise 01BB06 und 04BB06 entweder die Signale FIDT00-FIDT07 oder den Binärwert "0" unter Steuerung durch das Signal FIFSHF aus. Der ausgewählte Wert wird zu den Ausgängen MBDT00-MBDT07 übertragen. Die Ausgänge MBDT00-MBDT07 können somit alle den Binärwert "0" oder die Bits der Signale FIDT00-FIDT07 aufweisen. Die Multiplexer
- 132 - 3114034
07BB06 und 10BB06 setzen ihre Ausgänge MBDT08-MBDT15 entweder auf die Werte der Signale FIDT08-FIDT15 oder der Signale FIADOO-FIAD07, wobei dies durch das Signal FIFSHF gesteuert wird. Die übertragung der Adressignale zu den Megabus-Datenleitungen wird wie zuvor erläutert immer dann ausgeführt, wenn eine Ein/Ausgabe-Operation an das zentrale Subsystem gerichtet wird.
Die Multiplexer 01DD06-10DD06 setzen ihre Ausgänge MBDT16-MBDT31 auf die Werte der Signale FIDT16-FIDT31 oder FIDT00-FIDT15 unter Steuerung durch das Signal FIFSHF. Wenn somit die in dem FIFO-Speicher gespeicherten Daten nicht auf Grund eines Buszyklus der zweiten Hälfte gespeichert worden sind, so werden die Signale FIDT16-FIDT31 an den Ausgängen des Multiplexers freigegeben. Wenn umgekehrt die Daten in dem FIFO-Speicher während eines Buszyklus der zweiten Hälfte oder während eines zweiten Lesezyklus gespeichert wurden, so werden die Signale FIDT00-FIDT15 an den Ausgängen des Multiplexers freigegeben.
Fig. 39a zeigt die Speicherelemente 01AA07-10AA07, die für die Speicherung der Megabus-Steuersignale und der Megabus-Datenparitätssignale verwendet werden. Diese Signale werden durch die Speicherelemente unter Steuerung durch die Schreib- und Leseadreßsignale zusammen mit ihren zugeordneten Daten und Adressen verschoben.
Die Register 02BB07 und 05BB07 speichern 16 Bus-Datenbits (BSDT00-BSDT15) unter Steuerung durch das Unterbrechungs-Bestätigungssignal INTACK. Die gleichen 16 Datenbits werden als Signale MBIN00-MBIN15 unter Steuerung durch das Unterbrechungssendesignal SNDINT übertragen.
Das Signal SNDINT liegt am Ausgang der Steuerlogik 417 vor und das Signal INTACK wird durch das D-Flip-Flop 06DD11 (Fig. 42b) erzeugt. Das Signal INTACK liegt bestätigt vor, wenn der Megabusadapter bestätigt, daß eine Megabus-Verarbeitungseinheit eine Unterbrechungsanforderung an das zentrale Subsystem richtet. Die Logik für die Bestätigung einer solchen Unterbrechungsanforderung
3< Λ f - ~- f ι ! -■} ^ O ·-{■
ist in den Figuren 42a und 42v veranschaulicht und umfaßt den Vergleicher 02BB11, der die mit der ünterbrechungsanforderung übertragene Kanalnummer mit der Kanalnummer des zentralen Subsystems vergleicht. Wenn diese gleich sind, so wird das Signal ITSAME auf den Binärwert "1" gesetzt und dem UND-Gatter 06CC11 zugeführt. Dieses UND-Gatter erhält ebenfalls die Signale MYPRZT und CPINTR von dem Multiplexer 05BB11 zugeführt. Das Signal MYPRZT wählt eines der Eingangssignale CPPRZT, SIPRZT oder CIPRZT aus, die von dem internen Busadapter unter Steuerung durch die Signale BSAD15 und BSAD14 geliefert werden. Diese Steuersignale enthalten die zwei Bit-Kanalnummer eines internen Busprozessors. Wenn somit 1. die Unterbrechung zu der Zentraleinheit CPU und dem zentralen Subsystem gerichtet ist, 2. die Zentraleinheit CPU in dem Subsystem zum Zeitpunkt der Unterbrechung vorliegt und 3. die Signale BSAD16-17 den Signalen MYCHN3 und MYCHN2 entsprechen und die Signale BSAD12-13 den Binärwert "0" aufweisen, so setzt das UND-Gatter 06CC11 das Signal MYINTS auf den Binärwert "1", wodurch das D-Flip-Flop 04DD11 umschaltet und das Signal MYINTR auf den Binärwert "1" setzt. Hierdurch wird das Signal INTACK auf den Binärwert "1" gesetzt. Wenn das Signal INTACK den Binärwert "1" aufweist, so werden die Daten BSDT00-BSDT15 in die Register 02BB07 und 05BB07 geladen.
Das ODER-Gatter 515 in Fig. 12 umfaßt die ODER-Gatter 01CC07-08CC07 und 01DD07-08DD07 (Fig. 39b). Für eine übertragung zu dem internen Busadapter reichen sie entweder die ersten 16 Bit der FIFO-Daten, die 16 Datenbits des Unterbrechungsregisters oder die 16 Datenbits für den Buszyklus der zweiten Hälfte auf der Datenleitung MBDTO:16 weiter. Die geeigneten Paritätbits werden durch die Multiplexer 09CC07 und 09DD07 geliefert.
Fig. 40a zeigt die Ausgestaltung eines FIFO-Speicherplatzes für die Speicherung von vier Gruppen von Megabusadressen. Die Speicherelemente werden durch die Signale WRTADO, WRTAD1, REDADO und REDAD1 gesteuert.
3 Λ -", I r\ r^ f I I ^r CJ O 4
In den Figuren 4 2a und 42b ist dor Pegelvergleicher 529 dargestellt. Dem Register 12AA11 werden Eingangssignale entsprechend der Pegelnuiraner der Verarbeitungseinheit zugeführt, die gerade den internen Bus steuert. Diese Signale werden den Eingängen LDTR26-LDTR31 unter Steuerung durch das Signal LVLCHG zugeführt. Die Ausgangssignale LBLVLO-5 des Registers 12AA11 werden in dem Register 12BB11 unter Steuerung durch das Signal MYRINT gespeichert. Der Vergleicher 11CC11 vergleicht den Megabuspegel in dem Signal BSDT12-15 mit den vier signifikantesten Bits des in dem Register 12BB11 gespeicherten Pegels und er erzeugt entsprechend die Ausgangssignale MBLVGX, MBLVEX und MBLVLX. Der Vergleicher 10DD11 erhält die Ausgangssignale des Vergleichers 11CC11 zugeführt und er erzeugt ein Ausgangssignal MBLVLS, wenn der Megabuspegel geringer als der gerade durch den internen Bus verarbeitete Pegel ist. Ist dies der Fall, so bestätigt das D-Flip-Flop 06DD11 die Megabus-ünterbrechung mit einer ACK-Antwort.
Ein Ausführungsbeispiel des ALU-Adressengenerators 531 ist in Fig. 40b dargestellt. Wie im Zusammenhang mit Fig. 12 erläutert, wird der ALU-Adressengenerator immer dann verwendet, wenn eine Speicheranforderung mit Doppelwortbreite durch einen internen Busprozessor ausgegeben wird und wenn der die angeforderte Adresse aufweisende Speichermodul ein Speicher mit Einzelauszug und für eine Einzelwortbreite ist. In einem solchen Fall wird das Signal MYINCR auf den Binärwert "1" gesetzt und als Eingang der Recheneinheit 01CCO9 zugeführt. Diese Recheneinheit ALU erhält ferner die vier am wenigsten signifikanten Bits einer internen Busadresse LBAD19-LBAD22 zugeführt. Wenn das Signal MYINCR den Binärwert "1" aufweist, so wird der Wert der vier Eingangsbits um 1 erhöht und als Ausgangssignal MYAD19-MYAD22 geliefert. Wenn ein Übertrag erzeugt wird, so wird das Signal PROPOO auf den bestätigten Wert gesetzt. Dem Übertragsgenerator 01DDO9 wird das Signal PROPOO zugeführt und er setzt das Signal CARY01 auf den Binärwert "1". Das Signal CARY01 wird der Recheneinheit 04CC09 zugeführt und zu dem Wert des Signales LBAD15-LBAD18 addiert, um das Signal MYAD15-MYAD18 plus ein Übertrags-
bit PROP01 zu erzeugen. Das Signal PROP01 wird ferner einem Eingang des Übertragsgenerators 01DD09 zugeführt und es steuert den Wert des Signales CARYO2.
Aus der vorstehenden Erläuterung wird dem Fachmann klar, daß die Recheneinheiten 07CC09, 10CC09, 07DD09 und 10DD09 mit den Ubertragsgeneratoren 01DD09 und 04DD09 zusammenarbeiten, um die Adreßsignale LBAD00-LBAD22 um 1 zu erhöhen und die erhöhte Adresse den Leitungen MYAD00-MYAD22 zur Übertragung zu den Megabus-Adressleitungen zuzuführen.
Die Figuren 41a und 41b zeigen ein Ausführungsbeispiel einer Megabus-Hauptmodus-Steuerlogik 535, wobei der Megabusadapter einen Megabuszyklus anfordert und eine Informationsübertragung von dem internen Bus zu dem Megabus auslöst. Wie im Zusammenhang mit den Sender/Empfängerschaltkreisen erläutert, wird eine Übertragung von Daten des internen Busses zu dem Megabus durch das Signal MYDCNN freigegeben. Das Signal MYDCNN wird nur erzeugt, wenn alle Eingänge des UND-Gatters 04CC10 den Binärwert "1" aufweisen. Die Eingangssignale BSHUOK, BSGUOK, BSFUOK und BSEUOK umfassen Signale BSTIE, die durch den Tie-Break-Schaltkreis verwendet werden, der in jeder Megabus-Verarbeitungseinheit einschließlich dem Megabusadapter vorhanden ist. Das Signal HIREQT wird durch das JK-Flip-Flop 09BB10 und das Signal MYREQT wird durch das JK-Flip-Flop 07BB10 gesteuert. Das Signal BSDCNB wird am Ausgang des Inverters 11CC10 abgenommen, wobei dieser Inverter von dem ODER-Gatter 11BB10 beaufschlagt wird. Ein Eingang des ODER-Gatters 11BB10 wird durch das invertierte Ausgangsgangssignal BSDCNN des UND-Gatters 10AA10 gebildet. Die Eingänge des UND-Gatters 10AA10 sind zusammengefaßt und werden durch das Signal BSDCNN gebildet, das durch das ODER-Gatter 02DD08 (Fig.37b) erzeugt wird. Der andere Eingang des ODER-Gatters 11BB10 wird durch das Signal DCN060 gebildet, welches am Ausgang des UND-Gatters 10AA10 ansteht und durch den Verzögerungsschaltkreis 11AA10 um 60 ns verzögert wird.
l 1 /.
l I -γ <->
Das Signal MYDCNR wird ebenfalls als ein Eingangssignal dem UND-Gatter 04CC10 zugeführt, wobei dieses durch das invertierte Ausgangssignal des ODER-Gatters 07CC10 gebildet wird. Diesem ODER-Gatter werden die Signale BSACKR, BSNAKR und BSMCLR von dem Megabus über den Sende/Empfangsschaltkreis 503 zugeführt. Ein weiterer Eingang dieses Gatters wird durch das Signal BSWAIT von dem Megabus gebildet. Wenn alle Eingänge des ODER-Gatters 07CC10 den Binärwert "O" aufweisen, so besitzt das Signal MYDCNR den Binärwert "1".
Das Eingangssignal MBIDCN des UND-Gatters 04CC10 wird durch das UND-Gatter 08DD15 (Fig. 46b) erzeugt. Das Signal MBIDCN besitzt den Binärwert "1", wenn der FIFO-Speicher leer ist und keine Schreibunterbrechung gerade bearbeitet wird. Der letzte Eingang des UND-Gatters 04CC10 wird durch das Signal BSREQD gebildet, das am Ausgang des UND-Gatters 03AA10 vorliegt und um 20 ns verzögert ist. Das Signal BSREQD entspricht dem Binärwert "1", wenn das zuvor beschriebene Signal BSDCNB und das von dem Megabus empfangene Signal BSREQL den Binärwert "1" besitzen.
Die Figuren 43a und 43b zeigen ein Ausführungsbeispiel einer Megabus-Nebenmodus-Antwortlogik 533. Das UND-Gatter 02AA12 und das ODER-Gatter 01AA12 legen auf Grund der Signalwerte BSAD14 und BSAD15 fest, ob ein interner Busprozessor die Bestimmungseinheit bildet. Das ODER-Gatter 05BB12 und das UND-Gatter 05CC12 bestimmen, ob sich die Einheit SIP oder die Einheit CIP in einem abgefangenen Zustand befindet. In gleicher Weise stellen das ODER-Gatter 06BB12 und das D-Flip-Flop 06CC12 fest, ob die Einheit SIP oder die Einheit CIP belegt ist. Wenn sich 1. die Einheiten SIP und CIP nicht im abgefangenen Zustand befinden, wenn 2. weder die Einheit SIP noch die Einheit CIP belegt ist und wenn 3. weder die Einheit SIP noch die Einheit CIP als Bestimmungseinheit angezeigt wird, dann setzt das UND-Gatter 02BB12 das Signal ACKCYC auf den Binärwert "1" und das UND-Gatter 02CC12 triggert das D-Flip-Flop 02DD12, um dem ODER-Gatter 04DD12 ein Eingangssignal zuzuführen und das Signal MYACKR
T) " 1 / r- o O ι i 4 _. O
zu erzeugen, das eine Megabus-Bestätigungsantwort darstellt, die zu dem Megabus durch die Sender/Empfänger 503 übertragen wird. Wenn sich jedoch die Einheit SIP oder die Einheit CIP in einem abgefangenen Zustand befindet und diese Einheit ebenfalls eine Bestimmungseinheit in einem Megabuszyklus darstellt, so triggern die UND-Gatter 03BB12 und 03CC12 das D-Flip-Flop 03DD12, um über das ODER-Gatter 05DD12 das Signal MYNAKR in den bestätigten Zustand zu setzen.
Ein anderer wichtiger Schaltkreis ist der Schaltkreis 11CC12, der das Signal MYRINT erzeugt, wenn das Signal LVLCHG den Binärwert "1" aufweist, um den Megabuseinheiten anzuzeigen, daß Unterbrechungen der Zentraleinheit CPU erneut ausgelöst werden können.
Die Figuren 45a und 45b zeigen ein Ausführungsbeispiel eines Schaltkreises zur Erzeugung von Megabusadapter-Zyklusende-SteuerSignalen. Von besonderer Bedeutung ist das D-Flip-Flop 01DD14 zur Erzeugung des Signales MYINCR immer dann, wenn das Signal CADBWD auf den Binärwert "1" gesetzt ist, um eine Anforderung nach einer Doppelwortbreite anzuzeigen. Dieser Schaltkreis prüft ferner Zeitabläufe auf dem Megabus und erzeugt Signals MBUARL und MBUARR für die Speicherverwaltungseinheit, wenn ein angeforderter Speicherplatz in dem System nicht physikalisch verfügbar ist.
J i I 'i J J
Die Figuren 46A und 46B zeigen den Schaltkreis zur Ausführung einer Schreibpause aufgrund der Ansammlung von Megabuszyklen, betreffend Schreibanforderungen des FIFO-Speichers 505. Das die Schreibpause anzeigende Signal wird durch das D-Flip-Flop 04CC15 erzeugt, das durch die Signale SWBRKN, BRKCYC und BRKAGN gesteuert wird. Das Signal SWBRKN ist durch den Ausgang des UND-Gatters 03AA15 vorgegeben und entspricht dem Binärwert "0", da das Ausgangsignal dieses UND-Gatters invertiert wird, wenn die Signale FIFOMT, FIFRIT, BRKEUN und MBIBSY alle den Binärwert "1" aufweisen. Das Signal FIFOMT besitzt den Binärwert "!",wenn keine laufenden Eintrittsstellen in den FIFO-Speicher vorliegen. Das Signal FIWRIT besitzt den Wert des Ausgangssignales des RAM-Speichers O4AA07. Das Signal BRKEUN weist den Binärwert "1" auf, wenn eine Schreibpause nicht gesperrt ist, da eine Pufferspeicherreferenz oder ein Pufferspeicher-Schreibzyklus abläuft und ein Pausenzyklus gerade aktiv ist. Das Signal MBIBSY besitzt den Binärwert "1", wenn der Megabusadapter einen Megabuszyklus anfordert und das zuvor erläuterte Signal MYDBRH am invertierten Ausgang des D-Flip-Flops O1CC11 (Fig.42B) den Binärwert "0" besitzt. Das Signal BRKCYC steht am Ausgang des D-Flip-Flops06DD15 an, das an seinem Setzeingang durch das Signal FWBO75 gesteuert wird, welches dem um 75ns durch den Verzögerungsschaltkreis O3BB15 verzögerten Signal FWBRKN entspricht. An den Eingängen CD und C liegen die Signale FIWRIT und BRKEND an, wobei das letztere aus dem invertierten Signal BRKAGN verzögert um 75ns durch den Verzögerungsschaltkreis O9BB15 besteht. Da das Eingangssignal des VerzögerungsschaltkreisesO9BB15 invertiert wird, besitzt das Signal BRKEND den Binärwert "1" nur dann(wenn eine weitere Schreibpause durch das UND-Gatter O9AA15 innerhalb 75ns nicht angefordert worden ist. Am Rückstelleingang des Flip-Flops O6DD15 liegt das invertierte Signal FIFOMT an.
Somit zwingt der Schaltkreis gemäß den Figuren 46A und 46B den
internen Busadapter zur Gewährung von internen Buszyklen für den FIFO-Speicher/um diesen zu leeren.
5. Betriebsweise des zentralen Subsystems
Anfänglich sendet die Einheit CPU, CIP oder SIP eine Anforderung nach einem internen Buszyklus zu der Pufferspeicher/ Speicherverwaltungseinheit aus. Wenn der Pufferspeicher auf der Basis zuerst angefordert- zuerst bedient nicht zugeordnet ist, so findet ein Pufferspeicher-Endscheidungszyklus statt, und der Pufferspeicher wird durch das Anforderungs-Gewährungsregister 409 dem Anforderer mit der höchsten Priorität zugeordnet. Wenn der Pufferspeicher zugeordnet war, so müssen nachfolgende Anforderer auf einen verfügbaren internen Buszyklus warten. Wenn der Pufferspeicher einmal zugeordnet worden ist, so wird ein Anforderungs-Gewährungssignal zu dem zugeordneten Prozessor übertragen und die virtuelle Adresse und die Adresse BYAD dieses Prozessors werden durch den virtuellen Adressenmultiplexer 405 und den BYAD-Multiplexer 413 ausgewählt. Alle Unversehrtheits- und Zeittakt-Indikatoren werden zurückgestellt. Als nächsteswird die Speicher-Referenzleitung MREF des ausgewählten Prozessors überprüft,um zu sehen,ob sie aktiviert ist. Ist sie es nicht, so richtet der Prozessor ein Referenzsignal an eine Nicht-Speichereinheit. Wenn die Speicher-Referenzleitung aktiviert ist, so wird eine Speicheranforderung angezeigt.
Der erste während einer Speicheranforderung ausgeführte Schritt besteht in der Prüfung der Zugriffsrechte des anfordernden Prozessors in Bezug auf den adressierten Speicherplatz. Wenn der Prozessor keine Zugriffsrechte besitzt, so wird das Signal LBACKR auf den Binärwert "0" und das Signal LBPROV auf den
O I I ι- ^ O -r -140-
Binärwert "1" gesetzt. Handelt es sich um eine Leseanforderung, was durch das Signal LBWRIT mit dem Binärwert "0" angezeigt wird, so wird dem zugeordneten Prozessor ein Signal DCNN übertragen, wenn die angeforderte Information verfügbar wird und seine Anforderungs-Gewährungsleitung wird auf den Binärwert "0" gesetzt. Wenn es sich um eine Schreinanforderung handelt, so liegt keine Notwendigkeit vor, ein Signal DCNN zu dem zugeordneten Prozessor zu übertragen.
Wenn die Anforderung die Prüfung auf Zugriffsrechte erfüllt, so wird die angeforderte Adresse überprüft, um zu sehen, ob sie innerhalb des Systemspeichers verfügbar ist. Ist sie nicht verfügbar, so wird das Signal LBACKR auf den Binärwert "0" gesetzt und das Signal LBUARL wird auf den Binärwert "1" gesetzt. Wenn es sich um eine Doppelwortanforderung handelt, was durch das Signal DBLW angezeigt wird, so wird das Signal LBUARR ebenfalls auf den Binärwert "1" gesetzt. Erneut wird bei einer Leseanforderung das Signal DCNN zu dem zugeordneten Prozessor übertragen und die Anforderungs-Gewährungsleitung wird auf den Binärwert "0" gesetzt, wenn es sich um eine Lese- oder Schreibanforderung handelt.
Wenn das erste angeforderte Wort verfügbar ist, so wird die Anforderung überprüft, um zu sehen,ob es sich um eine Doppelwort^anforderung handelt,und bejahendenfalls wird eine Prüfung ausgeführt, um zu sehen, ob die gegenüber der angeforderten Adresse um 1 höhere Adresse ebenfalls verfügbar ist. Ist dies nicht der Fall, so wird das Signal LBUARR auf den Binärwert "1" gesetzt. Als nächstes wird die Leitung WRIT des zugeordneten Prozessors überprüft,um zu sehen, ob sie den Binärwert "1" aufweist und ob ein Speicher-Schreibzyklus bearbeitet wird.
Wenn die Leitung WRIT des zugeordneten Prozessors den Binärwert
"O" aufweist, so wird eine Speicher-Leseanforderung bearbeitet. Zunächst wird die Adressliste der Eintrittsstellenin dem
zu
Pufferspeicher 403 abgesucht, um sehen, ob die angeforderte Adresse in dem Pufferspeicher vorliegt. Ist dies der Fall und weist die Leitung DBLW des zugeordneten Prozessors den Binärwert "1" auf, so wird die Adressliste 403 weiter abgesuchtem zu sehen, ob das zweite Wort ebenfalls in dem Pufferspeicher vorliegt. Wenn alle angeforderten Worte gegenwärtig in dem Pufferspeicher gespeichert werden, so liegt keine Notwendigkeit vor, einen Speicher-Lesezyklus auszugeben. Wenn ein oder mehrere der angeforderten Worte nicht in dem Pufferspeicher vorliegen, so muß eine Systemspeicher-Leseanforderung ausgegeben werden. Die angeforderte Adresse wird durch die Pufferspeicher-Adressliste 403 in Form der Signale LBADO:24 freigegeben und das Signal CADBPL wird auf den Binärwert "0" oder "1" durch die Steuerlogik 417 in Abhängigkeit davon gesetzt, ob ein oder zwei Worte angefordert werden.
Die Systemspeicher-Leseanforderung beinhaltet die Freigabe der angeforderten Adresse und der notwendigen Steuersignale an den Megabus unter Steuerung durch das Signal MYDCNN.
Die Adressspeichereinheit führt sodann einen Lesezyklus aus und antwortet in der zuvor beschriebenen Weise in Abhängigkeit davon, ob es sich um einen Speicher mit Einzelauszug und Einzelwortbreite, einen Speicher mit Doppelauszug und Einzelwortbreite oder um einen Speicher mit Doppelwortbreite handelt.
Der Megabusadapter empfängt die Antwort des Speichers und wenn das Signal BSRESQ den Binärwert "0" aufweist, so werden alle 32 Datenbits und die geeigneten Steuerbits in dem FIFO-Speicher 505 gespeichert. Wenn das Signal BSRESQ den Binärwert "1" aufweist, aber das Signal BSDBPL den Binärwert "0" besitzt, so
311' '"*■■ Q ■' ! ί -l· \J Ct
wird das Signal BSDTO:16 in dem Register 521 für die zweite Hälfte des Buszyklus freigegeben und der Megabusadapter wartet auf ein zweites Buszyklussignal der zweiten Hälfte durch den übertragenden Speicher. Wenn dieses Buszyklussignal empfangen wird, so werden die Signale BSDTO:16 auf den Leitungen FIADO:16 zusammen mit den geeigneten Steuersignalen, die in den FIFO-Steuersignal-Speicherplätzen gespeichert sind, freigegeben. Wenn diese Eintrittsstellen aus dem FIFO-Speicher 505 übertragen werden, so wählt der Multiplexer 517 die Eingangssignale FIDTO:16 aus/Und das Register 521 für den Buszyklus der zweiten Hälfte überträgt das Signal MBSHO:16 zu dem ODER-Gatter 515,um die parallele übertragung aller 32 Datenbits zu dem internen Bus freizugeben.
Wenn schließlich der antwortende Speicher ein Speicher mit Einzelauszug und Einzelwortbreite ist, so werden die aufgrund der ersten Leseanforderung übertragenen 16 Bit in dem Register 521 gespeichert und der ALU-Adressengenerator 531 erhöht die Adresse LBAD um 1,und es wird eine zweite Leseanforderung an den Speicher ausgegeben. Wenn der Speicher mit einem angeforderten Wort anwortet, so wird es zusammen mit den geeigneten Steuersignalen in den FIFO-Speicher 505 geladen. Wenn diese spezielle Eintrittsstelle an den FIFO-Speicher übertragen wird, so wird erneut eine gleichzeitige übertragung der in dem Register 521 gespeicherten 16 Bit zu dem ODER-Gatter 515 freigegeben, welches zusammen mit dem Multiplexer 517 alle 32 angeforderten Bit überträgt.
Die übertragung von Daten auf dem Megabusadapter zu dem internen Busadapter aufgrund einer Leseanforderung die durch einen internen Busprozessor ausgelöst,wird, führt dazu, daß die angeforderten Daten in den Pufferspeicher eingeschrieben und über die internen Bus-Datenleitungen zu dem anfordernden Prozessor zusammen mit einem Freigabesignal auf der Leitung DCNN des anfor-
dernden Prozessors übertragen werden. Nachdem das Signal DCNN ausgegeben ist, wird die Leitung RQGT des anfordernden Prozessors auf den Binärwert "0" gesetzt und der Pufferspeicher wird für eine neue Zuordnung freigegeben.
Wenn der interne Busprozessor einen Speicher-Schreibzyklus anstelle eines Speicher-Lesezyklus angefordert hat, so wird eine Listenabsuche des Pufferspeichers 403 ausgeführt, um festzustellen, ob die zwei adressierten Speicherplätze vorhanden sind. Ferner wird eine Prüfung auf Zugriffsrechte ausgeführt und die Adressen werden überprüft,um zu sehen, ob sie innerhalb des Systemspeichers verfügbar sind. Wenn die Tests durchlaufen sind, so werden die Signale CADBPL und CADBWD auf den Binärwert "1" gesetzt, wenn ein Schreibzyklus für zwei Worte angefordert ist. Die Adressen LBADO:24 werden durch den Pufferspeicher 403 freigegeben und die Daten LBDTO:32 + 4 Parität bits werden auf den Leitungen LDTRO:32 ausgegeben. Wenn ferner die einzuschreibenden Speicherplätze in dem Pufferspeicher vorliegen, so wird der Pufferspeicher parallel mit dem Einschreiben in den Speicher fortgeschrieben. In gleicher Weise setzt die Steuerlogik 417 die geeigneten Werte für die Signale CABYTE, CAWRIT, CAMREF und LBAD2 3/um das Einschreiben in die Bits innerhalb der adressierten Speicherplätze zu steuern. Das Signal MYDCNN gestattet die Übertragung von 32 Datenbits, der Adressen und der Steuersignalen zu dem Megabus;und die adressierte Speichereinheit führt den Speicher-Schreibzyklus aus.
Wenn die Speichereinheit in der Lage ist,32 Bits parallel zu übertragen und eine Doppelwort-Schreibanforderung erfolgte, so antwortet die Speichereinheit mit Signalen BSACKR und BSRESQ auf dem Binärwert "0". Wenn das Signal CADBPL den Binärwert "1"
ο ! ι π W ο S-
aufweist, so überträgt der Daten-Ausgangsmultiplexer 553 anfänglich die Eingangssignale LDTRO:16 zu dem Ausgang MYDTO:16 und es wird ein anfänglicher Schreibzyklus ausgeführt. Als nächstes werden die Daten LDTR16:16 zu dem Ausgang MYDTO:16 von dem Daten-Ausgangsmutliplexer 52 3 übertragen t und es wird ein Buszyklus der zweiten Hälfte ausgegeben.
Wenn schließlich der adressierte Speicher ein Speicher mit ELnfachauszug und für eine einfache Wortbreite ist, so antwortet er mit einem Signal BSACKR und einer Kombination von Steuersignalen, wie dies zuvor im Zusammenhang mit den Schreibtypen 1-3 erläutert wurde. Wenn das Signal DBWD den Binärwert "1" aufweist, so erkennt der Megabusadapter,daß ein weiterer Schreibzyklus zu dem Speicher erforderlich ist, der ALU-Adressengenerator 331 erhöht die Adresse und der Daten-Ausgangsmultiplexer führt den Eingang LDTR16:16 zu dem Ausgang MYDTO:16. Eine zweite Schreibanforderung wird ausgegeben.
Wenn ein Zyklus ausgegeben worden ist, der keine Speicherbezugnahme beinhaltet, so wird die Leitung MREF des zugeordneten Prozessors auf den Binärwert "0" gesetzt und es wird eine Bestimmungs-Kanalnummer in den Bits LBCMDO:3 gespeichert. Der interne Busadapter prüft die 3 Bit der Kanalnummer und wenn sie mit der Kanalnummer eines internen Busprozessors übereinstimmen, so gibt er ein Signal DCNN zu diesem adressierten Prozessor aus,um die Daten und Steuersignale zu diesem zu übertragen.
Wenn die Kanalnummer eines internen Busprozessors oder der Pufferspeicher/Speicherverwaltungseinheit nicht vorgegeben wird, so werden die Datenwege für einen Megabus-Nicht-Speicher-Referenz zyklus errichtet. Der Pufferspeicher-Daten-Eingangs-Multiplexer 401 gibt seinen Eingang LBDTO:32 an seinem Aus-
31H334
gang LDTRO:32 aus. Entsprechend wird das Signal VADRO:23 des zugeordneten Prozessors auf der Leitung LBADO:23 der Pufferspeicher-und Adresslisteneinheit 403 freigegeben. Die Steuerlogik 417 gibt die entsprechenden Ausgänge für das Pufferspeicher-Steuersignal CCANTRL frei,und der Megabusadapter gestattet die Informationsübertragung zu dem Megabus nach der Annahme eines Megabuszyklus.
Wenn eine Verarbeitungseinheit an dem Megabus eine Ein/Ausgabemodus-Anweisung an ein zentrales Subsystem ausgibt, so wird diese durch den Megabusadapter angenommen, wenn das Signal BSDCNN den Binärwert "0" aufweist, die Signale BSMREF, BSSHBS und BSLOCK de η Binärwert "1" besitzen und das Adressfeld BSAD8:10 die Kanalnummer entweder der Einheit CPU, SIP, CIP oder der Pufferspeicher/Speicherverwaltungseinheit des zentralen Subsystems enthält. Wenn die Kanalnummer der CPU-Kanalnummer entspricht, so prüft der Megabusadapter, ob die Einheit CPU vorhanden ist. Wenn das Signal CPPRZT den Binärwert "0" aufweist, so wird keine Antwort an den Megabus ausgegeben. Wenn jedoch das Signal BSSHBC nicht den Binärwert "0" aufweist, der Funktionscode eine Unterbrechung anfordert und der Unterbrechungspegel geringer als der laufende CPU-Pegel ist und wenn keine Unterbrechung gerade anhängig ist, so wird das Signal BSDTO:16 in das Unterbrechungsregister 519 eingegeben und der Hinweis auf eine anhängige Unterbrechung INPNDG wird auf den Binärwert "1" gesetzt. Das Signal BSACKR wird sodann auf den Binärwert "1" gesetzt und die übertragende Einheit an dem Megabus empfängt eine Bestätigungsantwort ACK.
Wenn jedoch der Pufferspeicher nicht gerade auf einen Buszyklus der zweiten Hälfte aufgrund einer Leseanforderung wartet, so wird eine Anforderung nach einem internen Buszyklus durch den Megabusadapter ausgelöst und bei seiner Zuordnung werden die Datenwege errichtet,um eine Megabusanweisung zu dem internen
3114334
Bus zu übertragen, indem die Unversehrtheits- und Zeittaktleitungen des internen Busses ausgelöst werden und das Signal MBDTO:32 auf den Leitungen LBDTO:32 freigegeben wird. Der Funktionscode wird überprüft,um zu sehen,ob es sich um eine Auslöseanweisung handelt,und wenn dies nicht der Fall ist, wird die Leitung DCNN des adressierten Prozessors auf den Binärwert "1" gesetzt und das Signal LBSHBC wird auf den Binärwert "0" gesetzt,um die Megabusinformation zu dem durch den Megabus adressierten Prozessor zu übertragen.
Wenn der Funktionscode eine Auslöseanweisung festlegt und der adressierte Prozessor belegt war, so wird eine Antwort NAK an den Megabus ausgegeben. Wenn der Prozessor nicht belegt war, sich aber in einem abgefangenen Zustand befand und ein Eingangsfunktionscode nicht festgelegt war, so wird eine Antwort NAK an den Megabus ausgegeben. Wenn der Prozessor nicht abgefangen war oder ein Eingangs-Funktionscode nicht festgelegt war, so wird die Leitung DCNN des adressierten Prozessors auf den Binärwert "1" gesetzt, das Signal LBSHBC wird auf den Binärwert "0" gesetzt und eine Antwort ACK wird an den Megabus ausgegeben. Nach der Ausgabe einer Antwort ACK oder NAK an den Megabus ist der Pufferspeicher für eine neue Zuordnung verfügbar .
Wie zuvor erwähnt, fängt der Megabusadapter jegliche Hauptspeicher-Schreibanforderungen, die durch eine Verarbeitungseinheit an dem Megabus ausgelöst werden,ab, um die Unversehrtheit des Pufferspeichers in dem zentralen Subsystem aufrecht zu erhalten. Wenn diese Schreibanforderungen nicht abgefangen und durch das Subsystem verarbeitet werden und wenn die betroffenen Speicherplätze gerade Duplikate in dem Pufferspeicher des zentralen Subsystems aufweisen, so wird das zentrale Subsystem die meisten laufenden Daten nicht verarbeiten.
Der Megabus-Schreibdetektor 511 erkennt einen Hauptspeichor-Schreibzyklus durch die Signale BSDCNN, BSWRIT und BSMREF mit dem Binärwert "1", wenn sie von dem Megabus zu den Sender/ Empfängern 503 übertragen werden. Bei Erkennen dieses Ereigniszustandes wird der Megabuszyklus in dem FIFO-Speicher gespeichert und die FIFO-Steuerung 513 erhöht den Inhalt des Schreibadressregisters 507. Nachfolgend wird das Signal FIFOMT auf den Binärwert "1" gesetzt, da der Inhalt des Schreibadressregisters mit dem Inhalt des Leseadressregisters nicht übereinstimmt, wodurch angezeigt wird, daß der FIFO-Speicher nicht langer leer ist. Ein Signal FIFOMT mit dem Binärwert "1" zeigt an, daß eine FIFO-Zugriffsanforderung des Pufferspeichers vorliegt, die von dem Anforderung-Entscheidungsschaltkreis bearbeitet wird. Wenn der Pufferspeicher dem FIFO-Speicher zugeordnet ist, so werden die Datenstrecken errichtet t um die Daten, Adressen und Steuersignale des FIFO-Speichers zu dem internen Busadapter zu übertragen. Dies bedeutet, daß das Signal FIADO:23 dem virtuellen Adressen-Eingangsmultiplexer 405 zugeführt wird und das Signal MBDTO:32 dan Pufferspeicherdaten-Eingangsmultiplexer 401 zugeführt wird. In gleicher Weise wird das Signal FICNTRLO:10 der Steuerlogik 417 zugeführt. Eine Fortschreibung des Pufferspeichers wird sodann ausgelöst, wenn der adressierte Speicherplatz in dem Pufferspeicher vorliegt und das FIFO-Lese-Adressregister wird durch die FIFO-Steuerung 513 um 1 erhöht.
Da das Schreibadressregister 507 und das Leseadressregister 509 durch Zähler gegildet werden, die aufgrund einer Hauptlöschung einfach zurückgestellt werden, wird der Inhalt der Zähler miteinander verglichen und bei Gleichheit wird das Signal FIFOMT mit dem Binärwert "0" ausgegeben. Ferner wird das FIFO-Anforderungs-Gewährungssignal auf den Binärwert "0" gesetzt und der interne Busadapter ist frei/einer anderen Einheit eine Zugriffsanforderung zu gewähren.
3 ί ι k j J ',«·
Wenn das durch die Adresse FIADO:23 adressierte Wort nicht in dem Pufferspeicher vorliegt, so wird natürlich keine Fortschreibung ausgeführt. Liegt das adressierte Wort in dem Pufferspeicher vor, so werden die geeigneten Bytes entsprechend den Werten der Signale FIBYTE, LBWCT1, LBWCT2 und FIAD23 eingeschrieben.
Wenn das Signal FIFOMT nicht den Binärwert 0" aufweist, so wird der Pufferspeicher erneut dem FIFO-Speicher zugeordnet und es werden alle Schreibzyklen in dem FIFO-Speicher bearbeitet bis das Signal FIFOMT den Binärwert "0" aufweist.
Leerseite

Claims (8)

Patentansprüche:
1.]Zentrales Subsystem für eine Datenverarbeitungsanlage, welche ein Hauptsystem mit mehreren an einen Systembus angeschlossenen Haupt-Datenverarbeitungseinheiten aufweist und wobei diese Haupt-Datenverarbeitungseinheiten System-Speichermodule und Hauptsystem-Einrichtungen zum Auslösen von Informationsübertragungen aufweisen, gekennzeichnet durch
mehrere Subsystem-Verarbeitungseinrichtungen zum unabhängigen Auslösen von Informationsübertragungen zu den Haupt-Datenverarbeitungseinheiten und zu anderen Subsystem-Verarbeitungseinrichtungen ; Subsystem-Buseinrichtungen, die an jede der Subsystem-Verarbeitungseinrichtungen angeschlossen sind,um während Subsystem-Buszyklen asynchron Information zu übertragen, wobei die Subsystem-Buszyklen vorbestimmte Zeitperioden Tsnfassen, während denen der Subsystembus für Informationsübertragungen zur Verfügung steht; und an den Systembus und die Subsystem-Buseinrichtungen angeschlossene Bus-Steuereinrichtungen zur selektiven Zuteilung der Subsystem-Buszyklen zu irgendeiner der Hauptsystem-Einrichtungen oder irgendeiner der Subsystem-Verarbeitungseinrichtungen/am die Informationsübertragung auszulösen,
3114334
wobei die Subsystem-Buseinrichtungen ferner asynchron Information zwischen sich und dem Systembus während der zugeteilten Buszyklen übertragen.
2. System nach Anspruch 1, dadurch gekennzeichnet/ daß die Subsystem-Verarbeitungseinrichtungen mehrere Verarbeitungseinrichtungen für spezielle Zwecke umfassen, wobei eine dieser Verarbeitungsrichtungen als steuernde Verarbeitungseinrichtung innerhalb des zentralen Subsystems dient.
3. System nach Anspruch 1, dadurch gekennzeichnet, daß die Informationsübertragungen Informationsdaten, Adressdaten und Steuerdaten umfassen, und daß die Subsystem-Buseinrichtungen Einrichtungen zum separaten übertragen der Informationsdaten, der Adressdaten und der Steuerdaten aufweisen.
4. System nach Anspruch 3, dadurch gekennzeichnet, daß jede Subsystem-Verarbeitungseinrichtung Einrichtungen zur Benutzungsanforderung der Subsystem-Buseinrichtungen während der Subsystem-Buszyklen aufweist.
5. System nach Anspruch 4, dadurch gekennzeichnet, daß die Bus-Steuereinrichtungen aufweisen:
Anforderungs-Selektoreinrichtungen, die die durch die Subsystem-Verarbeitungseinrichtungen erzeugten Anforderungen für die Subsystem-Buszyklen empfangen und selektiv einen Subsystem-Buszyklus der anfordernden Subsystem-Verarbeitungseinrichtung zuteilen; und Anzeigeeinrichtungen für gewährte Anforderungen, um
31H334
die Zuteilung eines Subsystem-Buszyklus zu einer Subsystem-Verarbeitungseinrichtung anzuzeigen.
6. System nach Anspruch 5, dadurch gekennzeichnet, daß die Bus-Steuereinrichtungen eine Steuerlogik aufweisen, der die durch die Subsystem-Verarbeitungseinrichtungen übertragenen Steuerdaten zugeführt werden, um die Datenübertragung zu der Subsystem-Verarbeitungseinrichtung zu steuern.
7. System nach Anspruch 7, gekennzeichnet durch einen adressierbaren Pufferspeicher mit mehreren adressierbaren Speicherplätzen und eine Adressen-Multiplexereinrichtung in der Bus-Steuereinrichtung, der Adressdaten und Informationsdaten bei den durch die Verarbeitungseinrichtungen des Subsystems ausgelösten Informationsübertragungen zugeführt werden, um selektiv auf Speicherplätze des Pufferspeichers entsprechend der empfangenen Adresse Zugriff zu nehmen und die empfangenen Informationsdaten in den Pufferspeicher zu übertragen.
8. Da'tenverarbeitungssy stern, g ekennzeichnet durch ein Hauptsystem mit mehreren Haupt-Datenverarbeitungseinheiten, die zusammen an einen Systembus für einen didirektionalen Dialog angeschlossen sind, mit System-Speichermodulen und Haupt-Datenverarbeitungseinheiten zum Auslösen von Informationsübertragungen zu den System-Speichermodulen und zum Anfordern von Informationsübertragungen von den System-Speichermodulen;
ein zentrales Subsystem mit mehreren Subsystem-Verarbeitungseinrichtungen zum unabhängigen Auslösen von In-
31H334
formationsübertragungen, die an die Haupt-Datenverarbeitungseinheiten und die anderen Subsystem-Verarbeitungseinrichtungen gerichtet sind; und
Subsystem-Buseinrichtungen/ die an jede Subsystem-Verarbeitungseinrichtung angeschlossen sind, um asynchron und bidirektional Informationsübertragungen zwischen diesen auszuführen und um Information zwischen den Haupt-Datenverarbeitungseinheiten und den Subsystem-Verarbeitungseinrichtungen zu übertragen.
DE19813114934 1980-04-15 1981-04-13 Zentrales subsystem fuer eine datenverarbeitungsanlage Withdrawn DE3114934A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/140,622 US4323967A (en) 1980-04-15 1980-04-15 Local bus interface for controlling information transfers between units in a central subsystem

Publications (1)

Publication Number Publication Date
DE3114934A1 true DE3114934A1 (de) 1982-03-04

Family

ID=22492071

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813114934 Withdrawn DE3114934A1 (de) 1980-04-15 1981-04-13 Zentrales subsystem fuer eine datenverarbeitungsanlage

Country Status (8)

Country Link
US (1) US4323967A (de)
JP (1) JPS56159728A (de)
AU (1) AU6945981A (de)
CA (1) CA1165456A (de)
DE (1) DE3114934A1 (de)
FR (1) FR2480458B1 (de)
GB (1) GB2074765B (de)
IT (1) IT1170892B (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4482949A (en) * 1981-07-20 1984-11-13 Motorola, Inc. Unit for prioritizing earlier and later arriving input requests
US4604500A (en) * 1981-12-02 1986-08-05 At&T Bell Laboratories Multiprocessing interrupt arrangement
EP0116600B1 (de) * 1982-08-23 1991-04-10 Western Electric Company, Incorporated Mechanismus zur berechnung der nächsten adresse vor ihrer durchführung
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
US4633245A (en) * 1983-12-30 1986-12-30 International Business Machines Corporation Local area network interconnect switching system
DE3502147A1 (de) * 1984-01-23 1985-08-08 Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung
US4941088A (en) * 1985-02-05 1990-07-10 Digital Equipment Corporation Split bus multiprocessing system with data transfer between main memory and caches using interleaving of sub-operations on sub-busses
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
US4791562A (en) * 1985-12-02 1988-12-13 Unisys Corporation Data processing system in which modules logically "OR" number sequences onto control lines to obtain the use of a time shared bus
US4788640A (en) * 1986-01-17 1988-11-29 Intel Corporation Priority logic system
US4727486A (en) * 1986-05-02 1988-02-23 Honeywell Information Systems Inc. Hardware demand fetch cycle system interface
NL8603193A (nl) * 1986-12-16 1988-07-18 Hollandse Signaalapparaten Bv Database-systeem.
US5091845A (en) * 1987-02-24 1992-02-25 Digital Equipment Corporation System for controlling the storage of information in a cache memory
US5029074A (en) * 1987-06-29 1991-07-02 Digital Equipment Corporation Bus adapter unit for digital processing system
US4775431A (en) * 1987-11-23 1988-10-04 Atlas Powder Company Macroemulsion for preparing high density explosive compositions
US5185879A (en) * 1988-01-21 1993-02-09 Akira Yamada Cache system and control method therefor
US5006982A (en) * 1988-10-21 1991-04-09 Siemens Ak. Method of increasing the bandwidth of a packet bus by reordering reply packets
GB2226666B (en) * 1988-12-30 1993-07-07 Intel Corp Request/response protocol
US5081609A (en) * 1989-01-10 1992-01-14 Bull Hn Information Systems Inc. Multiprocessor controller having time shared control store
JPH02226454A (ja) * 1989-01-13 1990-09-10 Internatl Business Mach Corp <Ibm> コンピユータ・システムおよびそのデータ転送方法
CA2007737C (en) * 1989-02-24 1998-04-28 Paul Samuel Gallo Data transfer operations between two asynchronous buses
EP0440456B1 (de) * 1990-01-31 1997-01-08 Hewlett-Packard Company Stossbetrieb für Mikroprozessor mit externem Systemspeicher
US5678020A (en) * 1994-01-04 1997-10-14 Intel Corporation Memory subsystem wherein a single processor chip controls multiple cache memory chips
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5761422A (en) * 1995-03-22 1998-06-02 Telefonaktiebolaget Lm Ericsson Transferring address of data in buffer memory between processors using read-only register with respect to second processor
FR2737591B1 (fr) * 1995-08-03 1997-10-17 Sgs Thomson Microelectronics Dispositif d'organisation d'acces a un bus memoire
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
DE60038448T2 (de) 1999-10-14 2009-04-02 Bluearc Uk Ltd. Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen
US20020188697A1 (en) * 2001-06-08 2002-12-12 O'connor Michael A. A method of allocating storage in a storage area network
US8041735B1 (en) 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7457822B1 (en) 2002-11-01 2008-11-25 Bluearc Uk Limited Apparatus and method for hardware-based file system
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US4016541A (en) * 1972-10-10 1977-04-05 Digital Equipment Corporation Memory unit for connection to central processor unit and interconnecting bus
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
DE2546202A1 (de) * 1975-10-15 1977-04-28 Siemens Ag Rechnersystem aus mehreren miteinander verbundenen und zusammenwirkenden einzelrechnern und verfahren zum betrieb des rechnersystems
US4067059A (en) * 1976-01-29 1978-01-03 Sperry Rand Corporation Shared direct memory access controller
US4128876A (en) * 1977-04-28 1978-12-05 International Business Machines Corporation Synchronous microcode generated interface for system of microcoded data processors
US4149242A (en) * 1977-05-06 1979-04-10 Bell Telephone Laboratories, Incorporated Data interface apparatus for multiple sequential processors
US4246637A (en) * 1978-06-26 1981-01-20 International Business Machines Corporation Data processor input/output controller
US4231086A (en) * 1978-10-31 1980-10-28 Honeywell Information Systems, Inc. Multiple CPU control system

Also Published As

Publication number Publication date
FR2480458B1 (fr) 1988-05-27
GB2074765A (en) 1981-11-04
JPS56159728A (en) 1981-12-09
IT1170892B (it) 1987-06-03
GB2074765B (en) 1983-12-14
CA1165456A (en) 1984-04-10
AU6945981A (en) 1981-10-22
IT8148285A0 (it) 1981-04-15
FR2480458A1 (fr) 1981-10-16
US4323967A (en) 1982-04-06

Similar Documents

Publication Publication Date Title
DE3114934A1 (de) Zentrales subsystem fuer eine datenverarbeitungsanlage
DE3114961C2 (de)
DE2854485C2 (de) Datenverarbeitungsanlage
DE2657848C2 (de)
DE2856483C2 (de)
DE2755897C2 (de)
DE2847216C2 (de) Datenverarbeitungsanlage mit Mehrprogrammbetrieb
DE3127349C2 (de)
DE2230830C2 (de) Datenverarbeitungsanlage
DE2714805C2 (de)
DE2750721A1 (de) Ein/ausgabe-system
DE2755952C2 (de)
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
DE2809602C3 (de) Kanalbus-Steuereinrichtung
DE3606211A1 (de) Multiprozessor-computersystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2411963B2 (de) Datenverarbeitungsanlage
DE2209282B2 (de) Datenverarbeitungsanlage
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE2854397A1 (de) Pufferspeichereinheit fuer ein datenverarbeitungssystem
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2755371A1 (de) Ein/ausgabe-verarbeitungssystem
DE2612139A1 (de) Ein/ausgang-steuerungssystem

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal