DE3114961A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE3114961A1 DE3114961A1 DE19813114961 DE3114961A DE3114961A1 DE 3114961 A1 DE3114961 A1 DE 3114961A1 DE 19813114961 DE19813114961 DE 19813114961 DE 3114961 A DE3114961 A DE 3114961A DE 3114961 A1 DE3114961 A1 DE 3114961A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- signal
- address
- bus
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
Description
-:-31H961
Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem und insbesondere auf eine Einrichtung zur Informationsübertragung
zwischen einem zentralen Subsystem und mehreren Speichermodulen, wobei die Speichermodule unterschiedliche Funktionen
und Datenbreiten aufweisen,und wobei das zentrale Subsystem
eine Pufferspeicher/Speicherverwaltungseinheit, einen zentralen Steuerprozessor, einen wissenschaftlichen Prozessor und
einen kommerziellen Prozessor umfaßt.
In der DatenverarbeitungsIndustrie werden fortlaufend Anstrengungen
unternommen, die auf eine Erhöhung der Leistung eines Computersystems gerichtet sind, während gleichzeitig die Kosten
des Systems herabgesetzt werden sollen. Bei der Erhöhung der Leistungsfähigkeit eines Datenverarbeitungssystems spielen die
Datenübertragungsgeschwindigkeit zwischen den Prozessoren und den System-Speichermodulen und die Flexibilität der Prozessoren
bei der Schnittstellenbildung mit unterschiedlichen Typen von Speichermodulen eine wichtige Rolle.
Bei bekannten Speichermodulen ist die Datenübertragung zwischen
dem Modul und einem Prozessor aufgrund einer einzelnen Speicheranforderung auf ein einzelnes Datenwort begrenzt. Da die Vergrößerung
des Umfanges eines Datenwortes mit Kosten behaftet ist, gibt es in der Praxis obere Grenzen im Hinblick auf die Anzahl
der Bits, die in einem Datenwort enthalten sein können und parallel durch den Speichermodul übertragen werden können.
Bekannte Speichermodule, die nur ein Datenwort parallel übertragen
können, sehen jedoch die Möglichkeit der Übertragung zweier Datenworte vor, indem aufeinander folgende Buszyklen aufgrund
einer einzigen Speicheranforderung ausgegeben werden. Hierdurch wird die Leistungsfähigkeit des gesamten Datenverarbeitungssystemes
erhöht, da aufgrund der automatischen übertragung in der zweiten Hälfte eines Buszyklus der Gesamtaufwand für die Übertragung
eines zweiten Datenwortes vermindert wird.
* m mm φ
■ · ♦
• *
• ■ ·
• · ■ ·
" '··' "-31H961
— 7 —
Durch die Verwndung von integrierten Schaltkreisen als Bausteine von vollständigen Computersystemen ist in der jüngsten Zeit die
physikalische Größe eines derartigen Systems in großem Umfang reduziert worden und als Folge davon haben sich die Lange der
Busse und Verbindungsleitungen, die die Systemelemente miteinander verbinden, beträchtlich verkürzt. Daraus ergab sich
die Möglichkeit, die Anzahl der parallel über die Busse und Verbindungsleitungen
übertragenen Informationsbits zu erhöhen, ohne daß hierbei die Gesamtkosten anwachsen. In neueren Computersystemen
ist es daher möglich, zwei Datenworte parallel zwischen dem Speichermodul und den Prozessoren des Systems zu übertragen.
Eine Schwierigkeit ergibt sich jedoch, wenn unterschiedliche Typen
von Speichermodulen in einem einzigen Computersystem enthalten sind. Zur Erhöhung der Leistungsfähigkeit des Systems ist es
dann erforderlich, Information mit dem gleichen Aufwand in irgendeinem
der Speichermodule zu speichern. Da jedoch die Speichermodule in der Lage sind, unterschiedliche Wortbreiten in einem
unterschiedlichen Übertragungsmodus zu übertragen, ergibt sich ein Problem, wenn ein Prozessor Information anfordert, die irgendwo
in dem Systemspeicher gespeichert ist, ohne daß er den Modultyp kennt, der auf die Speicheranforderung antwortet. Es ist
höchst unbefriedigend, die Fähigkeiten der zentralen Prozessoren auf Informationsübertragungen zu begrenzen, die durch den am wenigsten
leistungsfähigen Speichermodul vorgegeben sind, wenn zur
gleichen Zeit sichergestellt sein soll, daß die Prozessoren eine Speicheranforderung in ihrer Gesamtheit befriedigen sollen.
Es ist daher die Aufgabe der vorliegenden Erfindung, die Datenübertragungsgeschwindigkeit
innerhalb des Datenverarbeitungssystemes zu erhöhen, während gleichzeitig die Flexibilität des Systems
verbessert wird, um unterschiedliche Arten von Datenübertragungen auszuführen.
Durch die Erfindung soll ferner eine Pufferspeicher/Speicherverwaltungseinheit
vorgegeben werden, die eine Schnittstelle der
Prozessoren mit unterschiedlichen Typen von Speichermodulen bildet und die es ermöglicht, daß die Prozessoren alle Speicheranforderungen
erfüllen, ohne daß eine vorherige Kenntnis des Typs des antwortenden Speichermoduls erforderlich ist. Ferner
soll ein verbesserter Datenbus für die Informationsübertragung zwischen verschiedenen Speichermodultypen und mehreren Prozessoreinheiten
vorgegeben werden. Hierbei soll ein Megabusadapter eine Schnittstelle zwischen unterschiedlichen Typen von Speichermodulen
und mehreren Datenprozessoren in einer solchen Weise bilden, daß eine die Übertragung mehrerer paralleler Datenworte betreffende
Porzessoranforderung in ihrer Gesamtheit unabhängig davon ausgeführt wird, ob der adressierte Speichermodul in der
Lage ist, mehr als ein Datenwort parallel zu übertragen.
Die Lesung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten
Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den ünteransprüchen entnehmbar.
·· · Of·
•31U9-61
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 Steuerspeichers
und der zugeordneten Logik in der erfindungsgemäßen Zentraleinheit;
Fig.6 eine Tabelle zur Veranschaulichung der Signale)
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
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;
«31 U961
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.
·:·'--* '■■' :. '·■" -r31U961
to
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 CPU-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 100
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-
""" : '-' *:31H961
/3
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 i-st es ,
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 CPü-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
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 DALü-15 steuert das
Register DRAM-11 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
Ein viertes primäres Element 27 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
31U961
j NACHGEREICHT [
steuern. Die Testsignale sind an programmierbare Festwertspeicher PROM innerhalb der Steuerspeicherreihen 80 und 81
gemäß Figur 5 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ückkoirimen, der
Auswahl von Daten von Bootstrap-Festwertspeicnern, wenn eine Urladung 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
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 auf-
***' weist, 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 ausgegeben 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
■3Ί-Κ961
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
F'-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-
31U961
-rr-
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-^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 Poppelstruktur 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
31H961
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
Signalleitungen erfolgt. Speicherdaten werden an den I-Bus
ü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
oder 8 Bit des laufenden Befehls zu nehmen und sie 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 BRAM 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
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 Adrefl- 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 1f 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-
-rr-
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 Operanden mit 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
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 Zen- traleinheit
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-Re-
gister 58 und den daran angeschlossenen Decodierer 59 gegeben. Das XB 58 wird während einer Indexverschiebung benutzt,
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 Be-
fehlsprozessor bei Zahlenoperanden zu senden und um eine
31K961
Maske von 15 Bits mit dem Binärwert "O" und einem einzigen
Bit mit dem Binärwert "1" im Zusammenhang mit dem Decodierer 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;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 2 8 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 Weg4über den Daten zu
dem W-Register 28 gesendet werden können, um nachfolgend solche Daten in irgendeine andere an den internen Bus ange-
-erschlossene 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 Anweisungs leitungen ü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 Maß 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-
2b
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,
-φ-
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.
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
(signifikantester ) 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.
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
w> 31U961
nachfolgend modifiziert werden und um diese zu dem internen
Bis 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
31U961'
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 Firmwaresequenz 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
31U961 "",—
•LA
j NA
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 f 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 F' und AS', der Untereinheiten des F-Re-
^-*" gisters 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 Konstanteneinheit
70 verbunden.
Das nächste Feld in dem Steuerspeicher mit den Bits 48 bis 63 betrifft in erster Linie die Adressierung und Steuerung der
Speicher DRAM-11 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 benutzt, um
Schreiboperationen in beiden Teilen des Speichers BRAM zu steuern, in die immer gemeinsam eingeschrieben wird. Das
31Η961
ΛΛ I nachqereicht]
3ή
L »
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 AuswahlmodifikationsfeId 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 DRAM7
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.
31U961
Das ΒΑ-Feld mit den Bits 74 bis 79 wird benutzt, um die Funktionen
der Recheneinheit BALÜ 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.
w 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
3TU961
SZ
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 gebrä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-
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 wah
rend 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 Anförderung
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
"3 1 TÄST6
3$
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 winidas 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.
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 Worts'·'
Operanden aus einem Wort bestehen,aus dem Datenpuffer 31 über
den L-Bus und die Datenmultiplexer 35 zu dem Quellenbus. Sodann legt das I-Busfeld fest, daß der Inhalt des Quellenbusses
vorzeichenerweitert über die Vorzeichenerweiterungseinrichtung52
und die Datenverriegelungen 51 auf den inneren Bus gegeben 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 1W 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 ,
das denSelektor DW-35 für den Quellenbus 33 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 überlauf 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 derf^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 DALU-55, die durch
2.8
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 bei Freigabe einen der 32 DRAM-Speicherplatze
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.
31T4361
Z0I
-ys-
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 Ausgangssignaies
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 ι 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.
311*49151
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 iri 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 ver- ^- schoben und aus dem U-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 CPCJ dar. Dieser Schritttyp, durch den die tatsächliche
Verschiebung ausgeführt wird, benutzt verschiedene Korabi-
nationen zu verschiedenen Zeitpunkten, wobei beispielsweise w
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-
3 1 η 9*6 1
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-
J NACHGEREICHT -/T-
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 Elementeninnerhalb
des Steuerspeichers zu berücksichtigen und zu kompensieren. Zwei Speicherbänke werden primär verwendet, um wirksam
Verzweigungsentscheidungen zu treffen, die aus dem laufenden Firinwarewort 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-
31U961
J?
nachqereicht]
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 langer 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
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 Computern^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,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 7FP.
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 252) umfassen, enthalten die Daten für die untere Speicherbank des Steuerspeichers. Die
Speicherelemente 253, 254 und 255 umfassen insgesamt 29 Chips w 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 IK χ 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 benutztem eine
der beiden Adressen zu liefern, die zwischen jeder Firmwareverzweigung ausgewählt werden. Die von der unteren Speicherbank
31U961
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ü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,wird 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
31H961'
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 unteie 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
-AtT-
Befehls-Operationscodes auzulösen. Die XB-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 nmen 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 PROMj um 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
NACHGERElCHTf
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 Befeh.ls.typ 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 Nicht-1^
Adressen 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 Verbindungsregisters,um die 4 letzten 4 Bit
31U961
j NACHGEREICHT
(Bits 7 bis 10) zu erzeugen.
Diese verschiedenen Eingangssignale 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 ^n 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 2 56 stabil
und diese Adresse beginnt die Steuerspeicherelemente 253, 2 54 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 255 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
31U961·
so
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 er- '
fü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
31H961"" SI
betragen kann. Somit wird die Verzögerung gegenüber der Zeit/
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 Eingangssignale 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-252 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 ausgewählt
wurde,länger sein. Somit würde die Zykluszeit für diesen
Steuerspeicherschritt länger sein, da die Erzeugung einer
3TU96f
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 Verzweigungfreigibt. 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 TCTRÜE- dargestellt. Das Sigr
nal 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
31H961""»·
53
ft« ■
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
31 Π
S¥
Firmwarewort entnommen 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 herausgetrennt. 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^wie aus der Operation der Logik gemäß Figur 7 er-
• · .» en
3114 061
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 Muitiplexerentsprechend 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
31H961 SG
sind in Figur 8 dargestellt. Insbesondere der Multiplexer fsb
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(Ä) 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, ΧΧΧ10
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 XXXO1 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 "1" 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 dargestellt wünschenswert. Ins-
-VT-
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-
31H961
platzen 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 ersichtli.cn, 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 X1-Verzweigung
sein Komplement darstellt und in diesem Fall durch den Binärwert "0" gegeben ist.
31U96.1 GO
-ST9-
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 Systernelernenten;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 sowohJ " 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
ium Information auf dem Megabus zu empfangen
und zu diesem zu übertragen.
·*· „a
3ΊΗ961 -yr-
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.
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
31U961
■4T-
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-
31U961
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,
31U961
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
31H961
kleiner als der laufende Unterbrechungspegel 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
ι ι
Die Figuren 1OD und 10E 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,
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 festrunddie Bits 0-15
des Datenbusses geben die Anfangsadresse für die zu ladenden Daten vor. Das in Figur 10H dargestellte Format legt die Bestimmungs-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
, 31Κ961
-pr-
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-
A /* t ^S /~\ Λ
I I 43D I
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 Datent
die infolge der Eingabeanweisung aufzusuchen sind.
Die Figuren 10G und 10H veranschaulichen eine Lade-Ausgabeanweisung
IOLDj 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 Bestimmungs-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
3 mg 61
durch einen der Prozessoren CPU-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
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ährungsregister 409 zugeführt
werden und auf den virtuellen Adressen-Eingangsmultiplexer 405, den Speicherbezugs-Multiplexer 411 und den BYAD-MuItiplexer
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
311496t
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 νOn +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 Reinigungsoperationeri
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,
3 i 14 s ε i
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-Multiplexer 413 erhält die Eingangssignale zugeführt,
die gemeinsam mit BYAD bezeichnet sind. Diese Signale sind durch das Adressbit 23 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ührt, um 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.
3ΤΗ96-
Diese Vereinbarung wird während der detaillierten Beschreibung beibehalten.
Wie zuvor erwä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
3T Τ496Τ
WCTL2 beide den Binärwert "O" aufweisen, so wird das Byte 1
des Wortes η geschrieben. Die Bytes O 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 0 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/ 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
-JiBr-
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 "0") 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-
RMW-Operation der Speicher gelesen oder geschrieben wird, da dieses Signal die Richtung der aaszufü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-
"3TUiBT
ü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 signifikanten 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 f 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
* · · B | J | ff · | - ■ | Λ | 1 |
• · * ψ | * | 496 | η | ||
11 | |||||
νοη 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 anfördernden 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 Segmontdescriptors
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
MMU-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
31U961 90
(linkes Wort nicht verfügbar) und UARR (rechts Wort nicht verfügbar)
an. In gleicher Weise wird,wenn eine Übertretung der
Prioritä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, FILOCK, 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
w 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 ebenfalls
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.
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
SZ
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
-JW-
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
glf 31U961
ü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-Statusreglster 452 erhält die meisten Eingangsignale
zugeführt, um die Zentraleinheit CPÜ 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
. 31U961
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 fdaß 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 Megabusadapte^ liefert die
31U961 SG
-w-
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 zeigen, der 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-Speichermodule 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-
Speicherverwaltungseinheit 103,um diese über den Megabus zu einem Speichermodul 106 zu übertragen, und der Bestimmungs-Speichermodule 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-
31H961
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
31U9-61
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 f die in Gruppen hoher
oder niedriger Priorität gruppiert sind, bildet keinen Teil der vorliegenden Erfindung. Es ist im Stand der Technikbekannt, 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 fuhrteine 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
^ 31U961
rf
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/
Speicherveiwaltungseinheit und der Megabuseinheiten 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.
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 με seit der Ausgabe eines Signale
BSTCNN durch den Megabusadapter verstreichen, wobei dieses Sig-
to
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-
31H961
Ausgangsregister 603, ein Adressen-Eingangsregister 605 und einen Antwort-Bestimmungsdecodierer 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 Bestimmungscodierers 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
-abgleichen Signale wie das Speicher-Antwortregister 609 in Figur
an. Der Antwort-Bestimmungscodierer 627, dasAdresseneingangsregister
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 Ubertragungs-Steuerregister 635. Neben all
den Eingangs- und Ausgangssignalen des Übertragungs-Steuerregisters
615 in Figur 16 empfängtclas Ü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 Lage/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-
-vf-
Register 649, dem Antwort-Bestimmungscodierer 64 3, dem Adressen-Eingangsregister
645, dem System-Statusregister 647 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 Daten-Ausgangsregister 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 Übertragungs-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 Übertragungs-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-
9f
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 zusammen1anderen 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
31H961
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 CADBPL ist auf den Binärwert "1" gesetzt. Ein Speichermodul für Einzelauszug und Einzelwortbreite antworte t 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 *f <JU I
setzt.
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 SignaIeBSMREF, 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 Buszyklus 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 Steuersignals
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
31U961
Leseanforderung an den gleichen Speichermodul,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 Lage/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
Wbrtesgeschrieben. Das Bit 23 des Adressfeldes BSAD wird auf
tt
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
Doppelwortbreite 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-
31.U961
1 · β
auszug oder an einen Speichermodul mit doppelter Wortbreite
und Einzelauszug 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 worden ist und ergibt 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 Adressfeldes 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 "0"
setzt, wenn er eine Doppelbreite aufweist und die adressierten Speicherplätze in ihm enthaltensind. Wenn der Speichermodul
eine Einzelwortbrexte 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.
LJ ft 3
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.
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 BSQLTO 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-
sJ i.. I it yJ\J
401
konsole der Zentraleinheit CPU, wo es an eine geeignete Anzeige angeschlossen wird. Das Signal BSQLTA liegt normalerweise unbestätigt
vor, wenn das 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 MYDT0:16), eine Adresse (MYAD0: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
üSMREF-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 MBDTO: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 Megabusinfprmation
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-
tot
- Wf-
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 505 festgehaltener Übertragungstyp ist eine Speicherantwort auf eine Leseanforderung, die von
tos
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 MegaLusadapter 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 langer 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.
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 MBINO: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-Schnittsteile. 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-
31U961
breite aufweist. Ein solcher Speichermodul ist beispielsweise durch einen Speicher mit Einzelwortbreite und Doppelauszug 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 3 2 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
des Datenfelds mit "O"-Binärstellen. Durch Benutzung defl 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-Daten-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 ünterbrechungsanforderung von dem Megabus in dem
Feld BSDT10:6 übertragenen Pegel zusammen mit der Pegelnununer
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
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 ALÜ-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 ALÜ-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 ALÜ-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-
i -t \J \J I
410
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 533 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
31H961
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öffent-lichung
"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
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 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-
31U961
1T5
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-
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
■o·" 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 Treiberschal tkreis 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)
<tis
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äß Fiq.
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-Aktivierungs- *
signal 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
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 "0", 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 Kanalnummer-Decodierers 421 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.
31K961
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 Treiberschal tkreise 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 4 23 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.
O I I
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
31U961
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 417
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 427 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.
JZO
Dem anderen Eingang des ODER-Gatters 12C24 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.
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 UARLFP und UARRFP 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 LBSHBC 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-Speicher 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.
31H961
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 (Adresslisten-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-
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.
31U961
MS
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 NOMYP2 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, 3 5a-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
O f I
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 BSDTO1-BSDTO7, 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 BSDT16-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
31U961
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 Sendcr/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. *
ns
Treiberschaltkreise 10AA04, 12AA04, 10BB04 und 12BB04 in Fig. 35a
bilden Schnittstellen für die Pufferspeicher-Steuersignale CACNTRLO:10,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
w
und wird auf den Binärwert "1" gesetzt, um den Treiberschaltkreis freizugeben.
Gemäß Fig. 35b empfangen und senden die Sender/Empfänger 01CC04
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
w 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.
31U961
- ve* -
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.
no
- ye? -
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-LDTR31, gesteuert durch
das Steuersignal SHIFTD,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 39a 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 01AAO6 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
31H961
Inverters 04CC15 (Pig. 44b) zur Verfügung, 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
[ I HOD /
.- Wf-
ÜND-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
FSTSHB 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
31U961
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
ünterbrechungsanforderung an das zentrale Subsystem richtet. Die
Logik für die Bestätigung einer solchen Unterbrechungsanforderung
Ol
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 "O" 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.
31H961
t * A
♦ · fc »
O fL t *
ΐ * » n "■ k *
12>S
In den Figuren 42a und 4 2b ist der Pegelvergleicher 529 dargestellt.
Dem Register 12AA11 werden Eingangssignale entsprechend
der Pegelnununer 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
01DD09 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-
I I HOU I
130
bit PROPO1 zu erzeugen. Das Signal PROPO1 wird ferner einem
Eingang des Übertragsgenerators 01DD09 zugeführt und es steuert den Wert des Signales CARY02.
Aus der vorstehenden Erläuterung wird dem Fachmann klar, daß die Recheneinheiten 07CC09, 10CC09, 07DD09 und 10DD09 mit den
Übertragsgeneratoren 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/Empfangerschaltkreisen 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
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 "0" 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
zu erzeugen, das eine Megabus-Bestc die zu dem Megabus durch die Sender
wird. Wenn sich jedoch die Einheit in einem abgefangenen Zustand beffalls
eine Bestimmungseinheit in. so triggern die UND-Gatter 03BB12
03DD12, um über das ODER-Gatter 05C den bestätigten Zustand zu setzen.
Ein anderer wichtiger Schaltkreis der das Signal MYRINT erzeugt, wer
wert "1" aufweist, um den Megabuse terbrechungen der Zentraleinheit C können.
Die Figuren 45a und 45b zeigen ein Schaltkreises zur Erzeugung von Me
Steuersignalen. Von besonderer Bed. 01DD14 zur Erzeugung des Signales I
Signal CADBWD auf den Binärwert "1 förderung nach einer Doppelwortbre.
kreis prüft ferner Zeitabläufe auf w nals MBUARL und MBUARR für die Spe
ein angeforderter Speicherplatz ir verfügbar ist.
31U961
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 " 1", 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
31U961
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 Binarwert "0" und das Signal LBPROV auf den
31U961
4H
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
• «
31U961
"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 abgesucht um 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.
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 abgesucht um 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
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-
31U961
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ärwerL
"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"
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 523 übertragen,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-Referenzzyklus errichtet. Der Pufferspeicher-Daten-Eingangs-Multiplexer
401 gibt seinen Eingang LBDTO:32 an seinem Aus-
31U961
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 Megabus2yklus.
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 errichtetem eine Megabusanweisung zu dem internen
31H961
Bus zu übertragen, indem die ünversehrtheits- 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.
31U961
Der Megabus-Schreibdetektor 511 erkennt einen Hauptspeicher-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
länger 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,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 den 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, v^ 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.
31H961
-yx-
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 "θ" 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.
Claims (13)
- 31U961HONEYWELL INFORMATION SYSTEMS INC. 13.April 1981Smith Street 5101779 GeWaltham, Mass., USA Hz/umw/deDatenverarbeitungssystemPatentansprüche:M Λ Datenverarbeitungssystem, gekennzeichnet durch
ein Speichermodui-Subsystem mit:a. einem ersten Speichermodul mit einem eine erste ßitbreite aufweisenden Datenweg, der Daten in mehreren adressierbaren Speicherplätzen speichert, aufgrund von Datenübertragungsanforderungen Daten über den ersten Datenweg überträgt und Antwortsignale erzeugt, um die Ausführung einer Datenübertragung anzuzeigen;b. einem zweiten Speichermodul mit einem eine zweite Bitbreite aufweisenden Datenweg, wobei die zweite Bitbreite größer als die erste Bitbreite ist und der zweite Speichermodul Daten in mehreren adressierbaren Speicherplätzen speichert, aufgrund von Datenübertragungsanforderungen Daten über den zweiten Datenweg überträgt und Antwortsignale erzeugt, um die Ausführung einer Datenübertragung anzuzeigen; und durchein zentrales Subsystem mit:a. Subsystem-Verarbeitungseinrichtungen zum Auslösen von Datenübertragungsanforderungen der zweiten Bitbreite zwischen dem Speichermodul-Subsystem und dem zentralen Subsystem;b. einer Einrichtung zum Übertragen der Anforderungen und der Daten zwischen der Subsystem-Verarbeitungseinrichtung und dem Speichermodui-Subsystem; und-31U961c. eine Einrichtung zum Empfang der von dem ersten und zweiten Speichermodul erzeugten und übertragenen Antwortsignale und zum Auslösen zusätzlicher Datenübertragungsanforderungen zwischen dem ersten Speichermodul und der Subsystem-Verarbeitungseinrichtung, wenn die empfangenen Antwortsignale anzeigen, daß eine Datenübertragungsanforderung durch den ersten Speichermodul ausgeführt worden ist, wobei die zusätzlichen Datenübertragungsanforderungen die kumulative Übertragung von Daten mit der zweiten Bitbreite zwischen dem ersten Speichermodul und der Subsystem- Verarbeitungseinrichtung gestatten. - 2. System nach Anspruch. 1, gekennzeichnet durch Verarbeitungseinheiten zur Ausführung von Datenübertragungen mit dem ersten und zweiten Speichermodul.
- 3. System nach Anspruch 2, dadurch gekennzeichnet , daß die Empfangseinrichtung Datenübertragungen zwischen den Verarbeitungseinheiten und dem ersten und zweiten Speichermodul feststellt und daß ein FIFO-Speicher zum Speichernder festgestellten Datenübertragungen angeordnet ist.
- 4. System nach Anspruch 1, dadurch gekennzeichnet, daß die Empfangseinrichtung umfaßt:a. einen Adressengenerator zur Erzeugung von Adressen in dem ersten Speichermodul für zusätzliche von der Empfangseinrichtung ausgelöste Datenübertragungsanforderungen;b. ein Register für die zweite Hälfte des Buszyklus zum Speichern der von dem ersten Speichermodul zu der Empfangseinrichtung aufgrund der zusätzlichen Datenübertragungsanforderungen übertragenen Information.
- 5. System nach Anspruch 1, dadurch gekennzeichnet, daß die Datenübertragungen Adreß-(Steuer-31U961und Informationsdaten umfassen und daß die Empfangseinrichtung einen Ausgangsmultiplexer für die selektive Übertragung der Adreß-, Steuer- und Informationsdaten aufweist, die bei der Datenübertragung zu der Subsystem-Verarbeitungseinrichtung von der Empfangseinrichtung empfangen werden.
- 6. Datenverarbeitungssystem, gekennzeic hnet durcha. ein Speichermodul-Subsystem mit einem ersten Speichermodul und einem eine erste Bitbreite aufweisenden Datenweg, der Daten in mehreren adressierbaren Speicherplätzen speichert aufgrund von Datenübertragungsanforderungen Daten über den ersten Datenweg überträgt und Antwortsignale erzeugt, um die Ausführung einer Datenübertragung anzuzeigen, und mit einem zweiten Speichermodul mit einem eine zweite Bitbreite aufweisenden Datenweg, wobei die zweite Bitbreite grosser als die erste Bitbreite ist und wobei der zweite Speichermodul Daten in mehreren adressierbaren Speicherplätzen speichert, aufgrund von Datenübertragungsanforderungen Daten über den zweiten Datenweg überträgt und Antwortsignale erzeugt, um die Ausführung einer Datenübertragung anzuzeigen;b. ein zentrales Subsystem mit mehreren Subsystem-Verarbeitungseinrichtungen zum Auslösen von Datenübertragungsanforderungen zwischen dem Speichermodul-Subsystem und dem zentralen Subsystem; undc. eine Schnittstelleneinrichtung zwischen dem Speichermodul-Subsystem und dem zentralen Subsystem zum Übertragen von Datenübertragungsanforderungen und der angeforderten Daten zwischen den Subsystem-Verarbeitungseinrichtungen und dem Speichermodul-Subsystem.
- 7. System nach Anspruch 6, gekennzeichnet durch einen Systembus zur Verbindung des Speichermodul-Subsystems mit den System-Verarbeitungseinheiten für einen:-31U961bidirektionalen Dialog und durch einen Subsystembus für einen bidirektionalen Dialog zwischen den System-Verarbeitungseinheiten, wobei die Schnittstelleneinrichtung den Systembus mit dem Subsystembus verbindet, um eine Übertragung der Datenübertragungsanforderungen und der angeforderten Daten zwischen dem Systembus und dem Subsystembus zu ermöglichen.
- 8. System nach Anspruch 7, dadurch gekennzeichnet, daß die Schnittstelleneinrichtung Sende/ Empfangseinrichtungen aufweist, um Daten von dem Systembus zu empfangen und zu dem Systembus zu senden, wobei die empfangenen Daten Ädreß-, Steuer- und Inforraationsdaten umfassen .
- 9. System nach Anspruch 8, dadurch gekennzeichnet, daß die Schnittstelleneinrichtung eine Einrichtung zur Erzeugung mehrerer Datenübertragungsanforderungen der ersten Bitbreite an den ersten Speichermodul aufweist, wenn erstens von einer Subsystem-Verarbeitungseinheit eine Anforderung einer Datenübertragung der ersten Bitbreite empfangen wird und zweitens die angeforderten Daten in dem ersten Speichermodul gespeichert sind.
- 10. System nach Anspruch 9, dadurch gekenn-z ei c h η e t , daß eine Datenübertragungsanforderung eine Datenadresse entsprechend einer Adresse in dem Speichermodul-Subsystem umfaßt und daß die Anforderungs-Erzeugungseinrichtung eine Arithmetik- und Logikeinheit zum selektiven Erhöhen der von einer Subsystem-Verarbeitungseinheit empfangenen Datenadresse aufweist.
- 11. System nach Anspruch 7, dadurch gekennzeichnet, daß die System-Verarbeitungseinheiten• ·— 5 — '--■"■' ■■'-System-Datenübertragungen.zu dem Speichermodul-Subsystem auslösen und daß die Schnittstelleneiririchtung Einrichtungen aufweist, um die System-Datenübertragung festzustellen, die festgestellten Syst'em-Datenübertragungen zu speichern und die gespeicherten System-Datenübertragungen zu dem zentralen Subsystem zu übertragen. ■
- 12. System nach Anspruch TV, da d u r c h ψ e k. e η η ζ ei c h η e t , daß die Speichereinrichtung einen FIFO-Speicher mit mehreren Speicherplätzen und eine.
- Einrichtung zum Steuern der Einspeicherurig der festgestellten Datenübertragung in die Speicherplätze des FIFO-Speichers aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/140,623 US4371928A (en) | 1980-04-15 | 1980-04-15 | Interface for controlling information transfers between main data processing systems units and a central subsystem |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3114961A1 true DE3114961A1 (de) | 1982-03-25 |
DE3114961C2 DE3114961C2 (de) | 1991-02-21 |
Family
ID=22492076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19813114961 Granted DE3114961A1 (de) | 1980-04-15 | 1981-04-13 | Datenverarbeitungssystem |
Country Status (8)
Country | Link |
---|---|
US (1) | US4371928A (de) |
JP (1) | JPS56159889A (de) |
AU (1) | AU549928B2 (de) |
CA (1) | CA1165458A (de) |
DE (1) | DE3114961A1 (de) |
FR (1) | FR2480460B1 (de) |
GB (1) | GB2075226B (de) |
IT (1) | IT1170893B (de) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57121746A (en) * | 1981-01-22 | 1982-07-29 | Nec Corp | Information processing device |
EP0077863B1 (de) * | 1981-10-28 | 1986-09-17 | International Business Machines Corporation | Abtasteinrichtung für Übertragungsleitungen, bestimmt für eine Übertragungssteuerung |
EP0411679B1 (de) * | 1982-08-23 | 1996-05-01 | Western Electric Company, Incorporated | Rechner mit dynamischem Aufbau eines Befehlzusatzfeldes zur Speicherung der folgenden Befehlsadresse. |
US4530053A (en) * | 1983-04-14 | 1985-07-16 | International Business Machines Corporation | DMA multimode transfer controls |
US4571675A (en) * | 1984-01-03 | 1986-02-18 | Texas Instruments Incorporated | Microprocessor device with integrated auto-loaded timer |
DE3502147A1 (de) | 1984-01-23 | 1985-08-08 | Hitachi Microcomputer Engineering Ltd., Kodaira, Tokio/Tokyo | Datenverarbeitungssystem mit verbesserter pufferspeichersteuerung |
US4736293A (en) * | 1984-04-11 | 1988-04-05 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interleaved set-associative memory |
US4763243A (en) * | 1984-06-21 | 1988-08-09 | Honeywell Bull Inc. | Resilient bus system |
KR900007564B1 (ko) * | 1984-06-26 | 1990-10-15 | 모토로라 인코포레이티드 | 동적 버스를 갖는 데이터 처리기 |
CA1239227A (en) * | 1984-10-17 | 1988-07-12 | Randy D. Pfeifer | Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system |
US5012407A (en) * | 1984-12-11 | 1991-04-30 | Finn Charles A | Computer system which accesses operating system information and command handlers from optical storage via an auxiliary processor and cache memory |
JPS61175845A (ja) * | 1985-01-31 | 1986-08-07 | Toshiba Corp | マイクロプロセツサシステム |
BG39765A1 (en) * | 1985-02-14 | 1986-08-15 | Turlakov | Device for connecting 8- degree and 16- degree modules to 16- degree microprocessor system |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
US4683534A (en) * | 1985-06-17 | 1987-07-28 | Motorola, Inc. | Method and apparatus for interfacing buses of different sizes |
US4803617A (en) * | 1986-02-10 | 1989-02-07 | Eastman Kodak Company | Multi-processor using shared buses |
AU601784B2 (en) * | 1986-12-18 | 1990-09-20 | Honeywell Bull Inc. | Data processing system having a bus command generated by one subsystem on behalf of another subsystem |
JPS63245547A (ja) * | 1987-03-31 | 1988-10-12 | Hitachi Ltd | デ−タ処理装置 |
US5081701A (en) * | 1987-04-20 | 1992-01-14 | Tandem Computers Incorporated | System for controlling data transfer using transfer handshake protocol using transfer complete and transfer inhibit signals |
US5243701A (en) * | 1987-09-17 | 1993-09-07 | Mitsubishi Denki Kabushiki Kaisha | Method of and system for processing data having bit length variable with modes of operation |
US4914573A (en) * | 1987-10-05 | 1990-04-03 | Motorola, Inc. | Bus master which selectively attempts to fill complete entries in a cache line |
EP0349123B1 (de) * | 1988-06-27 | 1995-09-20 | Digital Equipment Corporation | Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern |
US5073969A (en) * | 1988-08-01 | 1991-12-17 | Intel Corporation | Microprocessor bus interface unit which changes scheduled data transfer indications upon sensing change in enable signals before receiving ready signal |
JPH0687232B2 (ja) * | 1988-12-19 | 1994-11-02 | 三菱電機株式会社 | データ処理装置 |
GB2226666B (en) * | 1988-12-30 | 1993-07-07 | Intel Corp | Request/response protocol |
US5146439A (en) * | 1989-01-04 | 1992-09-08 | Pitney Bowes Inc. | Records management system having dictation/transcription capability |
GB2228348A (en) * | 1989-01-13 | 1990-08-22 | Texas Instruments Ltd | Memory interface integrated circuit |
US5148537A (en) * | 1989-05-02 | 1992-09-15 | Belsan Jay S | Method and apparatus for effecting an intra-cache data transfer |
US6564308B2 (en) | 1989-05-05 | 2003-05-13 | Samsung Electronics Co. Ltd. | Multiple mode memory module |
US5307469A (en) * | 1989-05-05 | 1994-04-26 | Wang Laboratories, Inc. | Multiple mode memory module |
US5261073A (en) * | 1989-05-05 | 1993-11-09 | Wang Laboratories, Inc. | Method and apparatus for providing memory system status signals |
DE3917715A1 (de) * | 1989-05-31 | 1990-12-06 | Teldix Gmbh | Rechnersystem |
US5146574A (en) * | 1989-06-27 | 1992-09-08 | Sf2 Corporation | Method and circuit for programmable selecting a variable sequence of element using write-back |
US5165022A (en) * | 1989-10-23 | 1992-11-17 | International Business Machines Corporation | Channel and control unit having a first I/O program protocol for communication with a main processor and a second universal I/O program protocol for communication with a plurality of I/O adapters |
US5315708A (en) * | 1990-02-28 | 1994-05-24 | Micro Technology, Inc. | Method and apparatus for transferring data through a staging memory |
US5185876A (en) * | 1990-03-14 | 1993-02-09 | Micro Technology, Inc. | Buffering system for dynamically providing data to multiple storage elements |
JPH0484253A (ja) * | 1990-07-26 | 1992-03-17 | Mitsubishi Electric Corp | バス幅制御回路 |
US5357622A (en) * | 1990-09-27 | 1994-10-18 | Dell U.S.A., L.P. | Apparatus for queing and storing data writes into valid word patterns |
US5182800A (en) * | 1990-11-16 | 1993-01-26 | International Business Machines Corporation | Direct memory access controller with adaptive pipelining and bus control features |
US5255374A (en) * | 1992-01-02 | 1993-10-19 | International Business Machines Corporation | Bus interface logic for computer system having dual bus architecture |
AU1463892A (en) * | 1991-02-19 | 1992-09-15 | Traveling Software, Inc. | Method and apparatus for high speed parallel communications |
US5615127A (en) * | 1994-11-30 | 1997-03-25 | International Business Machines Corporation | Parallel execution of a complex task partitioned into a plurality of entities |
US6317878B1 (en) * | 1996-05-22 | 2001-11-13 | Fujitsu Limited | Information processing system and recording media |
US6041388A (en) * | 1996-12-11 | 2000-03-21 | Cypress Semiconductor Corporation | Circuit and method for controlling memory depth |
US6249827B1 (en) * | 1997-08-11 | 2001-06-19 | Advanced Memory International, Inc. | Method for transferring data associated with a read/write command between a processor and a reader circuit using a plurality of clock lines |
US5872993A (en) * | 1997-12-01 | 1999-02-16 | Advanced Micro Devices, Inc. | Communications system with multiple, simultaneous accesses to a memory |
US6661355B2 (en) * | 2000-12-27 | 2003-12-09 | Apple Computer, Inc. | Methods and apparatus for constant-weight encoding & decoding |
US7307554B2 (en) * | 2004-12-20 | 2007-12-11 | Kawasaki Microelectronics, Inc. | Parallel data transmission method and parallel data transmission system |
US9189430B2 (en) | 2011-01-14 | 2015-11-17 | Skyworks Solutions, Inc. | Apparatus and methods for serial interfaces |
US10437774B2 (en) | 2017-01-26 | 2019-10-08 | Skyworks Solutions, Inc. | Low noise serial interfaces with gated clock |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2844357A1 (de) * | 1977-10-12 | 1979-04-19 | Bunker Ramo | Speichererweiterung |
DE2854485A1 (de) * | 1977-12-22 | 1979-07-05 | Honeywell Inf Systems | Datenverarbeitungssystem mit speicherhierarchie |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3810114A (en) * | 1971-12-29 | 1974-05-07 | Tokyo Shibaura Electric Co | Data processing system |
US3858183A (en) * | 1972-10-30 | 1974-12-31 | Amdahl Corp | Data processing system and method therefor |
US4048624A (en) * | 1973-09-13 | 1977-09-13 | Texas Instruments Incorporated | Calculator system having multi-function memory instruction register |
FR2273317B1 (de) * | 1974-05-28 | 1976-10-15 | Philips Electrologica | |
US4067059A (en) * | 1976-01-29 | 1978-01-03 | Sperry Rand Corporation | Shared direct memory access controller |
US4048625A (en) * | 1976-05-05 | 1977-09-13 | General Electric Company | Buffered print control system using fifo memory |
US4096571A (en) * | 1976-09-08 | 1978-06-20 | Codex Corporation | System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking |
US4161778A (en) * | 1977-07-19 | 1979-07-17 | Honeywell Information Systems, Inc. | Synchronization control system for firmware access of high data rate transfer bus |
JPS5438724A (en) * | 1977-09-02 | 1979-03-23 | Hitachi Ltd | Display unit |
US4195342A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | Multi-configurable cache store system |
JPS55500197A (de) * | 1978-04-21 | 1980-04-03 | ||
US4213177A (en) * | 1978-04-24 | 1980-07-15 | Texas Instruments Incorporated | Eight bit standard connector bus for sixteen bit microcomputer using mirrored memory boards |
JPS581451B2 (ja) * | 1978-04-28 | 1983-01-11 | 株式会社東芝 | デ−タ転送方式 |
GB2021823B (en) * | 1978-05-30 | 1983-04-27 | Intel Corp | Data transfer system |
-
1980
- 1980-04-15 US US06/140,623 patent/US4371928A/en not_active Expired - Lifetime
-
1981
- 1981-04-08 CA CA000374966A patent/CA1165458A/en not_active Expired
- 1981-04-10 GB GB8111278A patent/GB2075226B/en not_active Expired
- 1981-04-13 DE DE19813114961 patent/DE3114961A1/de active Granted
- 1981-04-13 AU AU69458/81A patent/AU549928B2/en not_active Ceased
- 1981-04-14 FR FR8107447A patent/FR2480460B1/fr not_active Expired
- 1981-04-15 IT IT48286/81A patent/IT1170893B/it active
- 1981-04-15 JP JP5575581A patent/JPS56159889A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2844357A1 (de) * | 1977-10-12 | 1979-04-19 | Bunker Ramo | Speichererweiterung |
DE2854485A1 (de) * | 1977-12-22 | 1979-07-05 | Honeywell Inf Systems | Datenverarbeitungssystem mit speicherhierarchie |
Non-Patent Citations (1)
Title |
---|
US-Firmenschrift: INTEL, The 8086 Family User's Manual, Okt. 1979, S.A.-182 bis A-183 * |
Also Published As
Publication number | Publication date |
---|---|
AU549928B2 (en) | 1986-02-20 |
DE3114961C2 (de) | 1991-02-21 |
GB2075226B (en) | 1984-01-18 |
CA1165458A (en) | 1984-04-10 |
JPH0325819B2 (de) | 1991-04-09 |
FR2480460A1 (fr) | 1981-10-16 |
IT1170893B (it) | 1987-06-03 |
US4371928A (en) | 1983-02-01 |
JPS56159889A (en) | 1981-12-09 |
GB2075226A (en) | 1981-11-11 |
IT8148286A0 (it) | 1981-04-15 |
FR2480460B1 (fr) | 1988-06-10 |
AU6945881A (en) | 1981-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3114961A1 (de) | Datenverarbeitungssystem | |
DE3114934A1 (de) | Zentrales subsystem fuer eine datenverarbeitungsanlage | |
DE2854485C2 (de) | Datenverarbeitungsanlage | |
DE2847216C2 (de) | Datenverarbeitungsanlage mit Mehrprogrammbetrieb | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE3127349C2 (de) | ||
DE2714805C2 (de) | ||
DE2230830C2 (de) | Datenverarbeitungsanlage | |
DE2755897C2 (de) | ||
DE2856483C2 (de) | ||
DE2657848C2 (de) | ||
DE69433293T2 (de) | Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher | |
DE2846495C2 (de) | Zentraleinheit | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE4208924A1 (de) | Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer | |
DE2809602C3 (de) | Kanalbus-Steuereinrichtung | |
DE2755952C2 (de) | ||
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
DE3606211A1 (de) | Multiprozessor-computersystem | |
DE2854397A1 (de) | Pufferspeichereinheit fuer ein datenverarbeitungssystem | |
DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE102008055892A1 (de) | Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich | |
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |