DE3114921A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE3114921A1 DE3114921A1 DE19813114921 DE3114921A DE3114921A1 DE 3114921 A1 DE3114921 A1 DE 3114921A1 DE 19813114921 DE19813114921 DE 19813114921 DE 3114921 A DE3114921 A DE 3114921A DE 3114921 A1 DE3114921 A1 DE 3114921A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- bus
- control
- register
- bits
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/265—Microinstruction selection based on results of processing by address selection on input of storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
31H921
Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem
nach dem Gattungsbegriff des Anspruches 1 und insbesondere einen Steuerspeicher eines Systems.
Viele Datenverarbeitungssysteme umfassen einen sogenannten
Steuerspeicher, der eine Vielzahl von Speicherplätzen mit jeweils einem Steuerspeicherwort aufweist. Der Steuerspeicher
mit seinem Inhalt bildet die sogenannte Firmware, die.benutzt wird, um im Hinblick auf ein gefordertes Ergebnis eine
Reihe von Maschinenoperationen auszuführen. Der Steuerspeicher bildet hierbei das Kernstück des Steuermechanismus
der Datenverarbeitungseinheit. Die Arbeitsgeschwindigkeit des Prozessors ist somit direkt zu einem Großteil von der
Geschwindigkeit des Steuerspeichers abhängig. Eine erhöhte Steuerspeichergeschwindigkeit wurde auf vielerlei Weise
erzielt, beispielsweise durch die Verwendung von schnelleren Speichern, einer schnelleren Logik und verschiedenen Techniken
zur Zeiteinsparung/die eine verbesserte Architektur und
Zeittaktschemen umfassen. Verschiedene Techniken wurden ebenfalls verwendet,um die Größe des Steuerspeichers auf eine
minimale Anzahl von Speicherplätzen zu reduzieren, wodurch sich eine Platz- und Kostenersparnis ergibt und die Verwendung
von schnelleren Speichern erleichtert wird.
Es ist die Aufgabe der vorliegenden Erfindung einen verbesserten Steuerspeicher mit zugeordneter Logik für die
Verwendung in einem Datenverarbeitungssystem anzugeben. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten
Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den ünteransprüchen entnehmbar.
Das erfindungsgemäße Datenverarbeitungssystem umfaßt einen
Steuerspeicher mit einem ersten und einem zweiten Teil. Jeder
31U921
Teil des Steuerspeichers weist mehrere Speicherplätze auf,
um Steuerspeicherworte zu speichern, die für die Betriebssteuerung des Systemsverwendet werden. Es ist eine Einrichtung
vorgesehen, um den ersten Teil mit einm Teil des Inhalts des gerade adressierten Steuerspeicherwortes zu
adressieren,und eine Multiplexereinrichtung dient der Adressierung
des zweiten Teiles des Steuerspeichers mit einer Information die auf die Art der durch das System auszuführenden
Operation bezogen ist. Eine in der Multiplexereinrichtung enthaltene Einrichtung gestattet aufgrund einer ersten oder
einer zweiten Operationsart die Adressierung eines Speicherplatzes in dem ersten Speicherteil oder eines Speicherplatzes
in dem zweiten Speicherteil, wodurch die Paarbildung entweder eines geraden oder eines ungeraden Adreßspeicherplatzes
in jedem adressierten Speicherteil ermöglicht wird.
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,
das die erfindungsgemäße Einrichtung enthält;
Fig.2 ein detailliertes Blockdiagramm der Zentraleinheit
gemäß der vorliegenden Erfindung;
Fig.3 Einzelheiten der Verbindungen der Arithmetik- und Logikeinheit der Zentraleinheit gemäß der
Erfindung;
Fig.4 Einzelheiten bezüglich der Zusammensetzung der Speicherplätze des Steuerspeichers in der
erfindungsgemäßen Zentraleinheit;
Fig.5 ein detailliertes Blockdiagramm des Steuerspeichers
und der zugeordneten Logik innerhalb
31U921
-7-der erfindungsgemäßen Zentraleinheit;
Pig. 6 eine Tabelle zur Veranschaulichung der Signale, wie sie für die Adressierung des Steuerspeichers
in Abhängigkeit von verschiedenen Verzweigungsbedingungen verwendet werden;
Fig.7 ein detailliertes Blockdiagramm der Testlogik,
wie sie zur Freigabe des Steuerspeichers der erfindungsgemäßen Zentraleinheit
verwendet wird;
Fig.8 Einzelheiten eines Multiplexers,wie er zur
Adressierung des Steuerspeichers in der erfindungsgniäßen Zentraleinheit verwendet
wird; und
Fig.9 ein Beispiel für die Paarbildung von Speicherplätzen
in dem Steuerspeicher der erfindungsgemäßen Zentraleinheit.
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
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-
31U921
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 wirdfund hierbei die Hauptspeicheradresse
zu übersetzen. Aufgabe des internen Busses 9 ist 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 CPU-100 und den beiden anderen Prozessoren. Es ist ferner eine private Schnittstelle
zwischen jedem Prozessor und der Einheit 103 vorgesehen. Der interne Bus wird zeitlich gestaffelt durch alle
drei Prozessoren und die Einheit 103 benutzt. Die Einheit 103 bildet ferner eine Schnittstelle zwischen dem Systembus
105 und dem restlichen System, das in erster Linie den Hauptspeicher 106 und die über die Steuerung 107 angeschlossenen
Ein/Ausgabe-Geräte 108 aufweist.
Das in Figur 2 dargestellte Blockdiagramm der Zentraleinheit CPU sei nunmehr erläutert. Insbesondere sollen die verschiedenen
Busse und Funktionseinheiten und ihre Beziehungen zueinander erläutert werden. Die primären Elemente der Zentraleinheit
CPU sind durch gestrichelte Linien eingerahmt. Ein erstes solches Element ist die interne Bus-Schnittstelle 10,
die einen Datenpuffer, einen zyklisch betriebenen Speicherpuffer 36 und Adressenmultiplexer aufweist, welche an einen
31U921
Quellenbus 33 sowie an andere zu beschreibende Einrichtungen angeschlossen sind. Das erste Element 10 wird benutzt,um
Daten von dem internen Bus 9 aufzunehmen.
Ein zweites Element 16 bildet das Arithmetikelement und umfaßt verschiedene Einrichtungen einschließlich zweier Gruppen
von Registeranordnungen, die mit DRAM-11 und BRAM-12 bezeichnet
sind und über den RAM-Bus 13 miteinander verbunden sind. Das Element 16 umfaßt ferner einen inneren Bus 14, an
den das Register BRAM sowie andere Geräte angeschlossen sind. Eine Arithmetik-und Logikeinheit DALU-15 steuert das
Register DRAM-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
an.
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
31U921
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ückkommen, der Auswahl von Daten von Bootstrap-Festwertspeichern, wenn eine
ürladung angefordert ist und dem Richten von derartigen Daten an dem geeigneten 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
31U921
Bus nachgeladen, wenn er durch die Zentraleinheit CPU geleert wird.
Der F-Bus 37 ist ein spezieller Bus, der für die Eingabe von Information in das F-Register 38 benutzt wird, welches vier
Bereiche aufweist, die mit FOP, MN, FN und Link bezeichnet sind. Das F-Register ist das primäre Befehlsregister der Zentraleinheit
CPU. Es ist die Aufgabe des F-Busses 37/Daten aus dem F-Register 38 aufzunehmen und von den verschiedenen
Quellen Daten an das F-Register zu liefern. Es ist ferner ein Multiplexer 43 vorgesehen, der das Laden entweder von Konstanten
oder von Daten aus dem Element AS'-42 entweder in den Bereich Link oder FN des F-Registers 38 gestattet.
Ferner befindet sich in dem den Dateneingangsbereich bildenden Element 10 eine Gruppe von Bootstrap-Festwertspeichern
41, die anstelle des Hauptspeichers Befehle liefern, wenn die Zentraleinheit im Bootstrapbetrieb arbeitet.
Die Speichereinrichtung 36 mit den Speicherplätzen A,B,C
und D ist ein zyklischer Vier-Wort-Prozedurspeicher. Immer wenn dieser Speicher Platz für zwei Worte der Prozedur aufweist,
d.h. wenn er wenigstens halb leer ist, so löst er automatisch eine Speicherleseprozedur über den internen Bus 9
durch die Pufferspeicher/Speicherverwaltungseinheit aus. Die zurückkommenden Daten werden in den nächsten 2 Speicherplätzen
abgelegt, die in diesem zyklischen Speicher verfügbar sind. Wenn die Zentraleinheit CPU Prozeduren verwendet, durch
die entweder Worte an den Quellenbus 33 zur Verwendung innerhalb der Verarbeitungselemente der Zentraleinheit CPU 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
14921
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 LAP verwendet wird. Dann werden die
durch beide Positionsanzeiger angezeigten Worte in dem PA-Multiplexer
39 des Prozedurselektors kombiniert. Dies wird näher beschrieben, wenn die entsprechende Logik erläutert
wird.
Das Element 10 bildet somit den Bereich, durch den Daten in
die Zentraleinheit CPU zu dem Quellenbus gebracht werden, wobei dies entweder über die Datenselektoren 34 und 35, über
die Prozedurselektoren 39 und 40 oder durch direktes Einbringen der Daten in das Befehlsregister F-38 über den Prozedurpuffer
36 und den F-Bus 37 geschieht. Die Einrichtung F1-76 wird benutzt um ausgewählte Bits einer Hilfsadresseninformation
oder von Silben zu speichern. Die Adreßsilbe ist in Wirklichkeit Teil eines 16 Bit-Datendescriptors. Bestimmte
Bits in dem Descriptor müssen zurückgehalten werden für eine nachfolgende Analyse. Das Operanden-Größenbit in
dem CIP-Descriptor 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-
·: 11U921
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 sogenannte. M-Register zu bilden. Der
Speicher BRAM-12(der 16 Worte mit einer Breite von 24 Bit
enthält, bildet die sieben Basisregister plus einer Anzahl von dem Programmierer zugänglichen und dem Programmierer unzugänglichen
Zeigern verschiedener Typen.
Figur 3 zeigt in näheren Einzelheiten die Verbindung zwischen den Speichern RAM, den Bussen und der Einheit DALü-15. Die
Speicher DRAM und BRAM können jeweils Quellen für den RAM-Bus 13 darstellen. Der Speicher BRAM-12 weist tatsächlich
eine Doppelstruktur auf, d.h. es sind zwei parallele Speicher BRAM-60 und 61 in der Zentraleinheit CPU vorhanden. Die
beiden Elemente des Speichers BRAM werden identisch geladen. Ein solches Element,das Daten zu dem R-Bus überträgt,ist
durch das Element 60 gegeben und das andere Element,das den I-Bus 14 ansteuert, ist durch das Element 61 gegeben. Ein
wichtiger Gesichtspunkt für diese beiden identischen Speicher BRAM liegt darin, daß die Systemgeschwindigkeit erhöht wird.
Der R-Bus kann entweder durch den Speicher BRAM-60 oder durch den Speicher DRAM-11 angesteuert werden. Andere Quellen
steuern,wie noch zu sehen sein wird, den I-Bus 14 an. Die
Einheit DALü-15 benutzt den I-Bus und den R-Bus als Eingänge
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 f 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
31H921
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
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
31U921
Erzeugung von Operanden für die Einfügung in den Datenspeicher RAM oder mit der Erzeugung von Operanden zur Abgabe an den
äußeren Bus befaßt. Diese Operanden können entweder in den Speicher BRAM zurückgeführt werden oder sie können zu den verschiedenen
Adreß- und Datenregistern für die Ausgabe an den internen Bus 9 gesendet werden.
Das Element 22 betrifft in erster Linie den Abschnitt der Zentraleinheit CPU, der als äußerer Bus und Schreibbus bezeichnet
ist. Der äußere Bus ist der Bus, der verschiedene Datenwege sammelt, d.h. er ist an das Y-Register, das P-Register,
den Ausgang der Einheit DALU und den RAM-Bus angeschlossen. Der Schreibbus ist derjenige Bus, der verwendet wird, um Operanden
zu dem Speicher BRAM, zu den Schreib-Datenregistern und zu der Einheit DALÜ-55 zu übertragen, wobei letztere Einheit
in erster Linie für die Adressenmanipulation verantwortlich ist.
Zwischen dem äußeren Bus 17 und dem Schreibbus 84 ist eine Gruppe von 24 Multiplexschiebern 19 angeordnet, die eine
Verschiebung um 1, 2 oder 4 Bits in jeder Richtung bezüglich der Operanden auf dem äußeren Bus 17 gestatten. Zusätzlich
ist ferner eine Gruppe von 16 Multiplexschiebern 56 vorgesehen, die benutzt werden, um Operanden in das Q-Register
zu laden.
Zwei der vier unterschiedlichen Operandentypen, die auf den äußeren Bus gegeben werden, entstammen der Einheit DALü 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-
31U921
Multiplexer in Form des Y/D-Selektors 21 an den äußeren Bus
17 angeschlossen. Ferner ist an den äußeren Bus 17 das !-Register 57 angeschlossen, welches das Indikatorregister für
das zentrale Verarbeitungs-Subsystem ist. Die Information auf dem äußeren Bus 17 kann entweder direkt übertragen werden
oder zu dem Schreibbus 84 verschoben werden, um in der Zentraleinheit CPU weiter verarbeitet zu werden. Sie kann ebenfalls
direkt in das Q-Register 50 geladen werden, so daß das Q-Register für Verschiebeoperationen mit Doppelpräzision verwendet
werden kann.
Jede innerhalb der Zentraleinheit CPU stattfindende Verschiebung
erfolgt durch Manipulation der Operanden zwischen dem äußeren Bus und dem Schreibbus. Die 24 Verschieber 19 werden
benutzt, um Operanden mit 24 Bit zu verschieben, wobei 24 Bit der Größe der Operanden auf dem äußeren Bus 17 und dem Schreibbus
84 entspricht und wobei die Verschiebung nach links oder rechts unter Steuerung durch das Steuerspeicherwort erfolgt.
Sie können eine Verschiebung um entweder 1, 2 oder 4 Positionen vornehmen, sie können den Operanden unverändert übertragen
oder sie können den Operanden so übertragen, daß die zwei Bytes auf der rechten Seite des Operanden ausgetauscht
werden. Der Betrieb dieser Verschieber wird durch ein spezielles Feld in dem Steuerspeicherwort gesteuert. Dieser Abschnitt
der Zentraleinheit CPU wird für Verschiebungen von Operandenmit 24 Bit benutzt. Wenn Operanden mit 32 Bit
{Doppelregister) verschoben werden, so werden der rechte Operand über den äußeren Bus in das Q-Register geladen, und
es wird sodann eine Verschiebung ausgeführt, bei der nicht nur
die Verschieber 19 für den Schreibbus,, sondern auch die 16
Q-Registerschieber 56 benutzt werden. Der Inhalt des Q-Registers wird hierbei als eine 16 Bit-Erweiterung des rechten
Endes des Operanden mit 24 Bit behandelt, der in den Schreibbus 84 geschoben wird. Die Enden dieser zwei Verschieber
31H921
sind miteinander verbunden/ so daß eine 40-Bit-Verschiebung behandelt werden kann. Bei solchen Doppelregisterverschiebungen
sind die interessierenden Operanden die 16 Bit, die zu dem Q-Register zurückgeführt werden ■, und die 16 Bit ,die als
rechte zwei Bytes zu dem äußeren Bus übertragen werden, während die linken 8 Bits der Daten auf dem Schreibbus gewöhnlicherweise
gestrichen werden.
Das Element 75 dient der Sammlung der Statusbits in der Zentraleinheit
CPU zur Ausgabe über einen Treiber 93 zu dem Schreibbus bei bestimmten Bedingungen. Der Schreibbus besitzt
zwei Quellen, wobei die primäre Quelle der an den äußeren Bus 17 angeschlossene Verschieber 19 ist. Dieser Verschieber
19 kann als Eingang für den Schreibbus 84 gesperrt werden und es können stattdessen die Statusbits S/Z in dem
Element 75 auf dem Schreibbus 84 abgelegt werden, um eine nachfolgende Analyse durch die Firmware zu ermöglichen.
Eine Hardwareeinheit, die dem Q-Register zugeordnet ist und die zuvor nicht erläutert worden ist, ist durch das XB-Register
58 und den daran angeschlossenen Decodierer 59 gegeben. Das XB 5 8 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 Operandenverschiebungenfes
tgehalten werden. Der Inhalt des XB-Registers wird nachfolgend benutzt, um direkt die Halbauswahl zwischen
links und rechts zu steuern, wenn HalbwortOperanden behandelt
werden, um einen Parameter zu dem kommerziellen Befehlsprozessor
bei Zahlenoperanden zu senden und um eine
31U921
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
5 8 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-2 8 und den Schreibselektor WS-29 gegeben ist. Das Register 28 ist ein 32 Bit-Register
mit einer geteilten Lademöglichkeit, d.h. es kann entweder die rechte Hälfte oder die linke Hälfte oder beide
Hälften dieses Registers geladen werden. Die rechte Hälfte wird immer mit 16 Bit von dem Schreibbus 84 über die Treiber
geladen. In die linke Hälfte werden Daten eingeschrieben, die von dem Schreibselektor 29 kommen. Dieser Schreibselektor
weist an seinen 16 Eingängen entweder die 16 Bits der
rechten Hälfte des Schreibbusses oder die 8 linken Bit des Schreibbusses plus eine Vorzeichen- oder Nullerweiterung
auf. Der Schreibbus bildet den primären Weg^über den Daten zu
dem W-Register 28 gesendet werden können, um nachfolgend solche Daten in irgendeine andere an den internen Bus ange-
31U921
schlossene Einrichtung einschreiben zu können.
Der nächste Bereich in der Ausgangsschnittstelle 2 7 ist durch den Anweisungstreiber 71 gegeben. Der Anweisungstreiber
71 steuert eine Reihe von Anweisungsleitungen im Zusammenhang mit Übertragungen der Zentraleinheit CPU auf dem internen
Bus und er zeigt der Pufferspeicher/Speicherverwaltungseinheit entweder einen Speicherreferenzzyklus, einen
E/A-Referenzzyklus oder einen internen Bus-Referenzzyklus an. Die Information, die auf der Leitung 72 zu den Anweisungsleitungen übertragen wird, wird von den Feldern F und FK
des Steuerspeicher- bzw.Firmwarewortes FW in Figur 4 hergeleitet, wobei diese Felder zu anderen Zeitpunkten ebenfalls
das F-Register 38 des Elementes 10 ansteuern. Der dritte Teil des Elementes 27 umfaßt die zwei primären Adressregister,
d.h. das Y-Register 24 für nicht-prozedurale Speicheradressen und für Adressen von anderen Geräten an
dem internen Bus und dem Systembus und P-Register 23 (Programmzähler) sowie das Vorabrufregister 26.
Der Programmzähler 23 enthält jeweils das letzte von der Firmware benutzte Wort, das dem zyklischen Puffer 36 entnommen
wurde und der Zentraleinheit CPU eingegeben wurde. Das Vorabrufregister PF-26 enthält die Adresse des nächsten aus
dem Hauptspeicher abzurufenden Wortes. Dies heißt, die Register P und PF können sich hinsichtlich der Speicheradresse
um irgendeine Zahl entsprechend 1 bis 4 Worten unterscheiden, was davon abhängt, wie stark der zyklische Puffer gefüllt ist
und in welchem 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
erforderlichjum auf eine Anforderung mit neuen Daten zu ant-
31U921
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 darr 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,
31U921
wobei dies unter Firmwaresteuerung erfolgt, wenn diese benutzt wird oder zur Benutzung vorbereitet wird. Es gibt ein
Bus-Steuerfeld in dem Firmwarewort/ das die Steuerung dieser Erhöhung und der verschiedenen Zyklusanforderungen an den
internen Bus gestattet-
Die Eingänge zu dem W-Register 28 sind durch zwei 16 Bit-Datenwege
gegeben, die in verschiedener Weise betrieben werden. Wenn es gewünscht ist, eine 24 Bit-Adresse zu schreiben, so
werden die Treiber 74 eingeschaltet und gestatten die Übertragung der rechten 16 Bit auf dem Schreibbus zu den rechten
16 Bits des W-Registers. Der Multiplexer 29 wird so betrieben, daß die linken 8 Bits auf dem»Schreibbus und die 8 vorderen
(signifikantesten ) Bits mit dem Binärwert "0" zu der linken
Hälfte des W-Registers 28 ausgegeben werden..Hierdurch wird
eine Zwei-Wort-Adresse mit 24 Bit in das W-Register für die nachfolgende Einschreibung in den Speicher geladen. Wenn
das Einschreiben eines Einzelwortes in den Speicher gewünscht ist, so wird die rechte Hälfte des W-Registers nicht getaktet,
d.h. nicht freigegeben, und erfährt keine Änderung. Der Multiplexer 29 wird in die Lage versetzt, die 16 rechten Bits
auf dem Schreibbus zu den 16 linken Bits des W-Registers zu übertragen, in welches sie eingetaktet werden. Beim Schreiben
von Einzelworten bildet die linke Hälfte des W-Registers die in dem Speicher einzuschreibenden Daten.
Die bislang beschriebene Logik wird zur Anforderung und zur Annahme von Daten von anderen Einheiten an dem internen Bus,
wie beispielsweise der Pufferspeicher/Speicherverwaltungseinheit oder der Prozessoren CIP bzw. SIP benutzt. Sie wird
ferner benutztem auf diese Daten einzuwirken und diese intern in verschiedenen Registern über die Recheneinheiten in
dem System zu speichern, um neue Operanden zu schaffen, die
nachfolgend modifiziert werden und um diese zu dem internen
BiE 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
31H921
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
31U921
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 teuerfeld für das F-Register und ist in zwei Felder mit jeweils 4 Bits
unterteilt, die als F- und FK-FeId bezeichnet sind. Die Felder F und FK benutzt,um das Laden und das Ansteuern der verschiedenen
Elemente in dem F-Register und in dem Bereich des F-Busses zu steuern. D.h.sie werden benutzt, um die Ansteuerung
der Einrichtungen F1 und AS1, der Untereinheiten des F-Registers
38 und des Multiplexers 43 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 6 betrifft in erster Linie die Adressierung und Steuerung der
Speicher DRAM-11 und BRAM-12. Das TW-Feld mit zwei Bit wird
benutztyum 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
nächste DS-FeId weist eine Länge von 5 Bit auf und liefert
die Auswahl eines von 32 Registern in dem Speicher DRAM-II.
Das DM-Feld mit den Bits 56 und 57 ist das dem Speicher DRAM zugeordnete Auswahlmodifikationsfeld und gestattet die
Auswahl des Speichers DRAM direkt oder die Auswahl irgendeiner von drei unterschiedlichen Funktionen des F-Registers
38 für eine qualifizierte Adressierung des Speichers DRAM.
Das nächste interessierende Feld ist das Auswahlfeld BS mit den Bits 60-63, das für die Auswahl eines der 16Register in
dem Speicher BRAM benutzt wird. Das die beiden Bits 58 und umfassende Feld bildet das Auswahlmodifikationsfeld BM für
die Adressierung des Speichers BRAM. Es wirkt in gleicher Weise wie das Feld für die Adressierung des Speichers DRAM,
wobei jedoch aufgrund der getrennten Felder die Funktionen hinsichtlich der beiden Speicher BRAM und DRAM unabhängig
voneinander ausgewählt und modifiziert werden können.
Das nächste interessierende Feld ist das GB-FeId mit einer
Länge von 7 Bit (Bits 65-71) und es wird benutzt, um eine große Anzahl von Mehrzweck-Microoperationen innerhalb des
Prozessors zu steuern. Diese Operationen umfassen das Takten verschiedener bistabiler Flip-Flops und die Freigabe von
verschiedenen Steuerfunktionen. Das Feld wird ferner benutzt,
um von der Zentraleinheit CPU den Zugriff zu der Steuerkonsole für die Eingabe und Ausgabe von Daten zu steuern und um verschiedene
darin enthaltende Flip-Flops zu steuern.
Das nächste Feld RB mit den Bits 72 und 33 dient der Steuerung der Dateneingabe auf den R-Bus 13, wobei ein Bit den Speicher
BRAM und das andere Bit den Speicher DRAM steuert.
31U921
Das ΒΑ-Feld mit den Bits 74 bis 79 wird benutzt, um die Funktionen
der Recheneinheit BALU 55 zu'steuern, die mit ihren Eingängen an den I-Bus und W-Bus angeschlossen ist und zur
Ansteuerung des Y-Registers 24 benutzt werden kann. Die 6 Bit dieses Feldes werden folgendermaßen benutzt: eines dient
einer Ubertragseingabe in die Einheit BALU, eines dient der Logik/Arithmetiksteuerung und die anderen 4 dienen der Auswahl
bestimmter Funktionen.
Das nächste interessierende Feld ist das ID-FeId mit den
Bits 80 bis 83 und dieses wird benutzt,um die Freigabe der Datenquelle für den inneren Bus 14 zu steuern. Dieses Feld
kann die Datenverriegelungen freigeben, den Inhalt des F-Registers um das Vorzeichen erweitern, eine Konstante auswählen
oder den Speicher BRAM in verschiedenen Kombinationen an den I-Bus anschalten. Das nächste Feld SH mit den Bit 84-89
wird benutzt, um sowohl die Verschieber als auch die Anschaltung des W-Busses zu steuern, was zuvor erläutert wurde.
Diese 6 Bits gestatten dem System in großem Umfang eine autonome Steuerung darüber, welche Register für den W-Bus freigegeben
werden und ob das Q-Register geladen wird oder nicht und in welcher Richtung die Verschieber den Operanden bei
seinem Durchlauf verschieben.
Das letzte Feld DA mit den Bits 90-95 dient der Funktionssteuerung
der Einheit DALU 15, wobei die 6 Bit eine anlöge Funktion wie im Falle des ΒΑ-Feldes aufweisen. D.h. ein Bit
dient der Übertragseingabe, 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
f m · ··
31U921
-28-
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 <?e~
bräuchlichen Arten von Verzweigungen benutzen beide Speicher das NA-PeId 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 erzeugtenAufsplitterung 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-
λ λ m
-29-
ftihrung eines bestimmten iterativen Algorithmus, bei dem
die Operationen gänzlich innerhalb der Zentraleinheit CPU ablaufen. Diese Operationen sind typisch und sollen nachstehend
beschrieben werden.
Im Falle des Auslesens eines Wortes aus dem Speicher wird während eines Steuerspexcherschrittes 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 BALÜ-55, die durch das ΒΑ-Feld in die Lage versetzt
wird, den W-Buseingang direkt zu ihrem Ausgang weiterzuschalten. Zur gleichen Zeit veranlaßt das LB-FeId
das Laden des Y-Registers 24 und somit die Übertragung der Adresse in dieses Register.
Im nächsten Firmwareschritt richtet das LB-FeId eine Anforderung
an den internen Bus, wodurch angezeigt wird, daß eine Speicheranforderung vorliegt und daß die durch den
internen Bus gelieferte Adresse für diese Anforderung benutzt werden sollte. Die Anweisungslextungen 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
31U921
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 wild das DA-FeId benutzt,
um der Einheit DALU das Lesen des inneren Busses zu ermöglichen und sodann werden die Felder DW, DS und DM benutzt
,um eines der 32 Register in dem Speicher DRAM zu adressieren und in dieses hineinzuschreiben. Hierdurch ist der
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.
• · 4 » » t
•«•κ« «· «
-31-
Eine zweite typischerweise auszuführende Operationsfolge betrifft die Manipulation von Operanden in einer arithmetischen
Operation, beispielsweise die Addition eines aus dem Speicher abgerufenen Operanden mit dem Inhalt eines Datenregisters und
sodann nach der Addition die Zurückführung des Ergebnisse in das Datenregister und die Ablage in dem Schreibdatenpuffer,
so daß das Ergebnis nachfolgend in den Speicher zurückgeschrieben werden kann. Diese Operationsfolge beginnt nach dem
Stillstand in der zuvor geschilderten Operation. Dieser Schritt gestattet die Ausgabe der Daten, die im Falle eines Wortoperanden
aus einem Wort bestehen,aus dem Datenpuffer 31 über den L-Bus und die Datenmultiplexer 35 zu dem 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 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 ,
31U921
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 derP^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
* Λ Λ
31U921
-33-
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 ürspung, wo immer der sein mag, in
diesem Fall beispielsweise aus einem der 32 DRAM-Speicherplätze, Das DS-FeId wählt b-ei Freigabe einen der 32 DRAM-Speicherplätze
aus. Das RB-FeId ermöglicht die Anschaltung des Speichers DRAM an den R-Bus. Das SH-FeId wählt über den Selektor
den RAM-Bus für den äußeren Bus 17 aus und der äußere Bus wird für den Schreibbus 84 über den Verschieber 19 ausgewählt,
wobei keine Verschiebung stattfindet. Das LB-FeId gibt das Laden der linken Hälfte des W-Registers vor. Dies geschieht,
indem der W-Selektror 29 in die Lage versetzt wird, die rechten zwei Drittel des Schreibbusses für die linke Hälfte des
W-Registers freizugeben, wodurch das W-Register seine linke Hälfte laden kann. Schließlich wird der dritte Firmwareschritt
ausgeführt. Bei diesem Firmwareschritt besteht die einzig wichtige Operation darin, daß das LB-FeId einen Schreibzyklus
des internen Busses zu dem Speicher festlegt. Hierbei werden die Bits F und FK auf den Anweisungsleitungen zu dem internen
Bus benutzt, um der Pufferspeicher/Speicherverwaltungseinheit anzuzeigen, daß dies eine Speicher-Schreiböperation 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.
-34-
Die vierte Folge von typischen Operationen, die die Zentraleinheit
CPU ausführen kann, betrifft die Verschiebung eines Operanden mit Doppelpräzision um einige Bits nach links
oder nach rechts. Nimmt man an, daß sich beide interessierende
Operanden in dem Speicher BRAM befinden, so wird durch, den ersten Firmwareschritt die Übertragung des rechten Operanden
zu dem Q-Register ausgelöst . Dies geschieht folgendermaßen. Das BS-FeId adressiert einen der 16 Speicherplätze,der diesen
Operanden in dem Speicher BRAM-12 enthält. Das R-Busfeld, das
den RAM-Bus 13 steuert, veranlaßt die Aufnahme des Ausgangssignales
des Speichers BRAM anstatt des Ausgangssignales von dem Speicher DRAM. Das SH-FeId ermöglicht die Übertragung
der Information auf dem R-Bus zu dem äußeren Bus über den Selektor 20 und es legt ferner fest, daß das Q-Register und
der W-Bus beide mit dem Informationsinhalt des äußeren Busses beaufschlagt werden und dessen Inhalt in das Q-Register eingetaktet
wird. Hierdurch wird eine Übertragung des in dem Speicher BRAM adressierten Operanden zu dem Q-Register veranlaßt.
Der nächste Schritt bzw. die nächsten Schritte sind jene t 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.
31H921
Dieser 32 Bit-Operand wird entweder nach links, oder nach rechts
verschoben, wie dies durch das spezielle SH-FeId vorgegeben ist. Die 16 rechten Bits werden in das Q-Register zurückgeführt
und die 16 linken Bits zusammen mit den 8 unbeachteten Bits werden zu dem W-Bus übertragen. Dies wird durch das
SH-FeId gesteuert, das die exklusive Steuerung über die Verschiebedistanz
besitzt.
Der Operand wird somit von dem äußeren Bus zu dem W-Bus verschoben
und aus dem 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 CPU dar. Dieser Schritttyp, durch den die tatsächliche
Verschiebung ausgeführt wird, benutzt verschiedene Kombinationen zu verschiedenen Zeitpunkten, wobei beispielsweise
eine Verschiebung u.m 5 Bits nach links durch einen ersten Schritt mit einer Verschiebung nach links um 1 Bit und einen
nachfolgenden Schritt mit einer Verschiebung um 4 Bit nach links ausgeführt wird. Eine Verschiebung nach rechts um 3 Bit
erfordert eine Verschiebung nach rechts um 2 Bit und sodann eine Verschiebung nach rechts um 1 Bit.
Nachdem die endgültige Verschiebung ausgeführt worden ist, d.h. nachdem die Operanden nunmehr in dem adressierten
Speicherplatz des Speichers BRAM und dem Q-Register ausgerichtet sind, ruft sodann der endgültige Schritt keine Ver-
schiebung hervor, sondern es wird der Inhalt' des Q-Registers
zurück in den BRAM-Speicherplatz geführt, aus dem er ursprünglich
geladen wurde. Dies geschieht folgendermaßen. Das I-Busfeld legt fest, daß der I-Bus durch das Q-Register (16 Bit
erweitert um 8 Bit mit dem Binärwert "0") angesteuert wird. Die Einheit DALU 15 wird durch das DA-FeId gesteuert , so
daß ihr Eingang unverändert als Ausgang zu dem I-Bus weitergeleitet wird. Das SH-FeId ist so gewählt, daß derAusgang
der Einheit DALU unverändert über den Selektor 20 zu dem äußeren Bus 17 gelangt und von dort unverändert über den Verschieber
19 zu dem W-Bus 84. Das BW-Bit 50 in dem Firmwarewort
ist sodann so gesetzt, daß es das Laden des Speichers BRAM von dem W-Bus gestattet und die BS-Bits geben durch.ihren Zustand
vor, welchem der 16 Speicherplätze in dem Speicher BRAM der verschobene Operand zuzuführen ist.
Dies geschieht alles in einer Reihe von beispielsweise 3 oder mehr Firmwareschritten. Ein Schritt wird benutztjum 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-
31U921
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 verwendetfum wirksam
Verzweigungsentscheidungen zu treffen, die aus dem laufenden Firir.warewort 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-I00
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-
31U921
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 ty.pischerweise sehr viel schneller ein- und ausgeschaltet
werden als adressierte Ausgangssignale erzeugt werden. Die grundlegende
Lösung liegt daher hier in der Trennung der Steuerspeicher-PROM in zwei Gruppen oder Speicherbänke, so daß die
entsprechenden Adressen für jede Gruppe beispielsweise für eine von zwei Verzweigungsadressen durch die Steuerspeicherchips
werden
gleichzeitig durchlaufen+können, so daß die Entscheidung darüber, welche Adresse zu verwenden ist, bis zum letzten Moment zurückgestellt werden kann, wobei die Entscheidung dann verwirklicht wird, indem der Ausgang der einen oder anderen der beiden Speicherbänke freigegeben wird.
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 Computernjbetreffen 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 7FF.
31H921
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 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 6Qns. 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 benutzt,um eine
der beiden Adressen zu liefern, die zwischen jeder Firmwareverzweigung ausgewählt werden. Die von der unteren Speicherbank
31U921
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 t
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 255fwird 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
A ·
31U921
-41-
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 unteiB Speicherbankadresse NA kommt direkt von dem Steuerspeicherwort für den laufenden Firmwareschritt.
Somit ist sie verfügbar, sobald dieses Steuerspeicher-•wort 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(Ä). 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
31K321
Befehls-Operationscodes auzulösen. Die ΧΒ-Verzweigung wird
benutzt^um die anfängliche Decodierung einiger der Adresssilben
auszuführen, die in der Zentraleinheit CPU möglich sind.
Die XA-Verzweigung wird benutzt, um die Startadresse für die Ausführung der Leseroutine für Operanden in den meisten Fällen
auszuwählen, oder um bestimmte Befehle zu bearbeiten, die sofort ausgeführt werden können. Die XE-Verzweigung wird benutzt,
um zwischen den Startadressen der Firmwareroutinen auszuwählen, die für die Bearbeitung der individuellen Befehlsalgoryt
rimen 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 VerbindungsregisterSj
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
31U921
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 NichtAdressen klassifiziert. Die letzten 2 Bits sind durch das Ausgangssignal
eines XW-PROM gegeben und sie bilden die Bits 9 und 10 der nächsten Adresse,durch die festgelegt wird, ob das
Resultat in den Hauptspeicher, ein Basis- bzw. Datenregister oder in ein sogenanntes K-Register (nicht dargestellt) zu
führen ist.
Die Adressleitungen für die XL-Verzweigung benutzen die Bits
1 bis 6 des NH-Feldes für die ersten Bit und sie benutzen sodann 4 Bits des Verbindungsregistersfum die 4 letzten 4 Bit
-44-(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 diese Bedingung erfüllt ist oder nicht. Der Ausgang dieser Logik
besitzt zwei Signale, wobei das eine durch TCTRUE- bzw. NOTTRUe und das andere durch TCTRUE+ bzw. TRUEvorgegeben ist.
Das Signal TCTRUE- tritt auf der Leitung 261 auf und das Signal TCTRUE+ tritt auf der Leitung 262 in Figur 5' auf. Diese
Signale sind mit den Freigabeeingängen der entsprechenden Steuerspeicher PROM verbunden.
Am Beginn eines vorgegebenen Firmwareschrittes wird das NA-FeId
stabil und diese Adresse durchläuft unmittelbar die Steuerspeicherelemente
251 und 252. So schnell wie die Logik danach arbeitet, wird das Ausgangssignal an dem Multiplexer 256 stabil
und diese Adresse beginnt die Steuerspeicherelemente 253, 254 und 255 zu durchlaufen. Es sei vermerkt, daß eines der Adressbits am Ausgang des Multiplexers 256 eine Auswahl zwischen dem
Element 254 und dem Element 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
31U921
darin, daß ein Speicher für 512 Worte nur 9 Adressbits erfordert. Das zehnte Adressbit, das für alle anderen Steuerspeicher
PROM als Adressbit dient, wird stattdessen als ein zweites Freigabesignal für die Spe eher PROM mit 512 Worten
benutzt. Dies bedeutet, daß das Element 254 für die Adressen 400 bis 5FF freigegeben wird/und da diese Adressen invertiert
dem Element 255 zugeführt werden, wird dieses für die Adressen 600 bis 7FF freigegeben.
So schnell die Adressen verfügbar sind, werden sie somit durch die Steuerspeicher PROM geschickt. Unterdessen entscheidet
parallel die Testlogik TC-30,die in Figur 7 in Einzelheiten dargestellt ist, ob die Testbedingung erfüllt oder nicht erfüllt
ist, woraufhin die Ausgangssignale TCTRUE- und TCTRUE+ stabil werden. Wenn die Testbedingung mit der angezeigten Polarität
erfüllt wird, so gibt der niedrige Pegel des Signales TCTRUE+ die Steuerspeicher 253, 254 und 255 frei, während das
Signal TCTRUE- mit hohem Pegel die Steuerspeicher 251 und 252 sperrt. Somit geben die Ausgänge der festverdrahteten ODER-Verbindungen
257 und 258 mit 76 und 20 Leitungen den Inhalt des Speicherplatzes in der adressierten oberen Speicherbank aus.
Wenn jedoch die Bedingung nicht erfüllt ist, so besitzt das Signal TCTRUE- die andere Polarität und gibt die Steuerspeicherelemente
251 und 252 frei, während das Signal TCTRUE+ die Steuerspeicherelemente 253, 254 und 255 sperrt. In diesem Fall geben
die festverdrahteten ODER-Verbindungen 257 und 258 an ihren
Ausgängen den Inhalt des adressierten Speicherplatzes in der unteren Speicherbank aus.
Die Freigabezeit für die Steuerspeicher PROM beträgt typischerweise
15 bis 20ns, Dies ist bedeutend schneller als die Adressen-Fortpflanzungs
zeit in dem Steuerspeicher PROM, die
beispielsweise 60ns für den Steuerspeicher PROM-251 in Figur
3Π4921
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 Hauptiiunktionen^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 Eingangssig- . nale 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 Steuerspeicher
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 langer sein, da die Erzeugung einer
31Η921
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 Verzweigun^freigibt.
Der Freigabeweg benötigt sehr viel weniger Zeit,beispielsweise 15ns gegenüber 60ns,für den Adressweg,
wodurch es möglich ist, die Entscheidung über die Speicherbankauswahl bis zu 45ns in einem typischen Steuerspeicherschritt
zurückzustellen. Hierdurch kann jeder Steuerspeicherschritt sehr viel schneller ausgeführt werden.
In Figur 7 sind Einzelheiten der Testlogik 30 für die Erzeugung der Signale TCTRUE+ und TCTRUE- dargestellt. Das Signal
TCTRUE+ wird an dem negierten Ausgang des Multiplexers MUX-302 auf der Leitung 362 erzeugt und das Signal TCTRUE-wird
an dem negierten Ausgang des Multiplexers MUX-304 auf der Leitung 261 erzeugt. Die Leitungen 261 und 262 sind an
die Steuerspeicher PROM in Figur 5 angeschlossen. Die Multiplexer 202 und 304 besitzen 8 Eingänge 0 bis 7, wobei jedem
gleichnumerierten Eingang das gleiche Eingangssignal zugeführt wird. Diese Eingangssignale werden an 8 Ausgängen des
Multiplexers 300 erhalten, der in Wirklichkeit 8 Multiplexer
31H921
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 CRTCSF-
und CRTCSP+ entsprechen*, angeschlossen. Die bestätigten
und negierten Signale CRTSCP werden ebenfalls dem laufenden
31H921
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 TCTrüE mit der geeigneten Polarität erhalten.
Das Signal TCTRUE mit dem niedrigen Pegel gibt die von ihm angesteuerte Steuerspeicherbank frei. D.h. t wenn das Signal
TCTRUE- den niedrigen Pegel aufweist, so wird die untere Speicherbank freigegeben.
Wenn somi^wie aus der Operation der Logik gemäß Figur 7 er-
31U921
-50-
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 ge testeten 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 t 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 MuItiplexertentsprechend 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
31U921
sind in Figur 8 dargestellt. Insbesondere der Multiplexer f?6
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
desJT-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, XXX10
und XXX11 gegeben sind, wobei X entweder dem Binärwert "1"
oder dem Binärwert "0" entsprechen kann, so kann eine Verzweigungsfolge zu den Adressen XXXOO oder XXX01 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 XXXO1 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 insbe-
ISt
sondere in den Figuren 5 und 8 dargestellt wünschenswert. Ins-
ϊ 31Η921
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-
31H921
plätzen erzielt. Variationen des Beispieles gemäß Figur 9 zeigen, daß ein gerader Adressspeicherplatz der unteren Speicherbank
mit einem geraden oder ungeraden AdreßSpeicherplatz der
oberen Speicherbank gepaart werden kann und daß ein ungerader Adreßspeicherplatz der unteren Speicherbank ebenfalls entweder
mit einem geraden oder ungeraden Adreßspeicherplatz der oberen Speicherbank gepaart werden kann.
Es ist ersichtlich, daß die oben beschriebene Paarbildung verwirklicht
werden kann,indem der Binärwert des Bits NA10 unabhängig
von dem Binärwert des Bits NA10 des laufenden Firmwarewortes
eingestellt wird- Beispielsweise kann das Bit NA10
für XO-Verzweigung auf den Binärwert "1" anstelle von NA(A) eingestellt worden sein, solange das Bit NA10 für die X1-Verzweigung
sein Komplement darstellt und in diesem Fall durch den Binärwert "0" gegeben ist.
Claims (10)
- 31U921HONEYWELL INFORMATION SYSTEMS INC. 13.April 1981Smith Street 5101754 GEWaltham, Mass., USA Hz/umwDatenverarbeitungssystemPatentansprüche:MJ Datenverarbeitungssystem, gekennzeichnet durcha. einen einen ersten und einen zweiten Teil aufweisenden Steuerspeicher, wobei jeder Teil mehrere Speicherplätze für die Speicherung von Steuerworten aufweist, die für die Betriebssteuerung des Systems benutzt werden;b. eine Einrichtung zum Adressieren des ersten Speicherteils mit einem Teil des Inhalts eines gerade adressierten Steuerspeicherwortes;c. eine Multiplexereinrichtung, der Information zugeführt wird, die einen Unterteil des bei der Adressierung des ersten Speicherteils verwendeten Teils des Steuerwortes umfaßt, zur Adressierung des zweiten Teils des Steuerspeichers, wobei sich diese Information auf die Art der durch das System auszuführenden Operationen bezieht und die Operationen eine erste und zweite Operation umfassen; undd. eine die Multiplexereinrichtung umfassende Einrichtung, die auf die erste oder zweite Operation anspricht,31U921uia die Adressierung eines Speicherplatzes in dem ersten Teil oder eines Speicherplatzes in dem zweiten Teil freizugeben, wodurch die Paarbildung entweder eines geraden oder ungeraden AdreßSpeicherplatzes in dem ersten Teil mit einem geraden oder ungeraden Adreßspeicherplatz in dem zweiten Teil ermöglicht wird.
- 2. System nach Anspruch 1, dadurch gekennzeichnet, daß die Adressierungs-Freigabeeinrichtung umfaßt:a. eine auf die erste Operation ansprechende Einrichtung zum Empfang eines Signales mit einem ersten Pegel; undb. eine auf die zweite Operation ansprechende Einrichtung zum Empfang eines Signales mit dem Komplement des ersten Pegels.
- 3. System nach Anspruch 2, dadurch gekennzeichnet, daß der erste Pegel dem Pegel eines ersten Signales entspricht, das von einem vorbestimmten Speicherplatz des gerade adressierten Steuerspeicherwortes empfangen wird.
- 4. System nach Anspruch 2, dadurch gekennzeichnet, daß der erste Pegel dem Binärwert "1" und der zweite Pegel dem Binärwert "0" entspricht.
- 5. System nach Anspruch 2, dadurch gekennzeichnet, daß die Multxplexereinrichtung einen Auswahleingang aufweist, der an ein Auswahlsignal des gerade adressierten SteuerSpeicherwortes angeschlossen31U921ist, wobei dieses Auswahlsignal die Art der auszuführenden Operation anzeigt.
- 6. System nach Anspruch 5, dadurch gekennzeichnet, daß die Multiplexereinrichtung mehrere Multiplexer aufweist, wobei jeder Multiplexer mehrere Eingänge, einen Ausgang und den an das Auswahlsignal angeschlossenen Auswahleingang umfaßt, daß die Anzahl der Multiplexer der Anzahl der möglichen Bits der Information in dem Teil entspricht, der von dem gerade adressierten Steuerspeicherwort empfangen wird, und daß die Zahl der Eingänge der Anzahl der Operationsarten entspricht.
- 7. System nach Anspruch 6, dadurch gekennzeichnet, daß das erste Bit der Information für jede Operationsart von einem ersten Multiplexer empfangen wird, wobei gleichbezifferte Bits an einen entsprechend bezifferten Multiplexer angeschlossen sind bis das letzte Bit einem letzten Multiplexer zugeführt ist, und daß ein Multiplexer die Adressierungs-Freigabeeinrichtung aufweist, welche umfaßt:a. eine auf die erste Operation ansprechende Einrichtung für den Empfang eines Signales mit einem ersten Pegel;undb. eine auf die zweite Operation ansprechende Einrichtung für den Empfang eines Signales mit einem zu dem ersten Pegel komplementären Pegel.
- 8. System nach Anspruch 7, dadurch gekennzeichnet, daß der erste Pegel dem Pegel eines Signales entspricht, das von einem vorbestimmten31U921Speicherplatz des gerade adressierten Steuerspeicherwortes erhalten wird.
- 9. System nach Anspruch 7, dadurch gekennzeichnet/ daß diese Operationen Verzweigungsoperationen sind, durch welche das System in Abhängigkeit von vorbestimmten Bedingungen die Adressierung entweder des ersten oder des zweiten Teiles dieses Steuerspeichers ermöglicht.
- 10. System nach Anspruch 7, dadurch gekennzeichnet, daß die Ausgänge der Multiplexer zur Adressierung des zweiten Teiles des Steuerspeichers verwendet werden.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/140,643 US4348724A (en) | 1980-04-15 | 1980-04-15 | Address pairing apparatus for a control store of a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3114921A1 true DE3114921A1 (de) | 1982-03-25 |
DE3114921C2 DE3114921C2 (de) | 1986-11-20 |
Family
ID=22492172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3114921A Expired DE3114921C2 (de) | 1980-04-15 | 1981-04-13 | Mikroprogramm-Speicheranordnung |
Country Status (8)
Country | Link |
---|---|
US (1) | US4348724A (de) |
JP (1) | JPS5723149A (de) |
AU (1) | AU536511B2 (de) |
CA (1) | CA1157569A (de) |
DE (1) | DE3114921C2 (de) |
FR (1) | FR2480459A1 (de) |
GB (1) | GB2073923B (de) |
IT (1) | IT1170890B (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4521858A (en) * | 1980-05-20 | 1985-06-04 | Technology Marketing, Inc. | Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu |
US4390946A (en) * | 1980-10-20 | 1983-06-28 | Control Data Corporation | Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences |
US4441153A (en) * | 1981-04-03 | 1984-04-03 | International Business Machines Corp. | Instruction register content modification using plural input gates and a data flow register |
US4467416A (en) * | 1981-09-16 | 1984-08-21 | Honeywell Information Systems Inc. | Logic transfer and decoding system |
US4460959A (en) * | 1981-09-16 | 1984-07-17 | Honeywell Information Systems Inc. | Logic control system including cache memory for CPU-memory transfers |
JPS60227045A (ja) * | 1984-04-25 | 1985-11-12 | Mitsubishi Heavy Ind Ltd | 変速操向装置 |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
US4899275A (en) * | 1985-02-22 | 1990-02-06 | Intergraph Corporation | Cache-MMU system |
US4933835A (en) * | 1985-02-22 | 1990-06-12 | Intergraph Corporation | Apparatus for maintaining consistency of a cache memory with a primary memory |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US4821183A (en) * | 1986-12-04 | 1989-04-11 | International Business Machines Corporation | A microsequencer circuit with plural microprogrom instruction counters |
JPH01113151A (ja) * | 1987-10-26 | 1989-05-01 | Toyota Motor Corp | 成形金型及びその使用方法 |
JP6648339B2 (ja) | 2017-12-28 | 2020-02-14 | 日本碍子株式会社 | 圧電性材料基板と支持基板との接合体およびその製造方法 |
JP7080671B2 (ja) | 2018-02-27 | 2022-06-06 | NDK SAW devices株式会社 | 弾性表面波デバイス |
EP3771099B1 (de) * | 2018-03-20 | 2024-04-03 | NGK Insulators, Ltd. | Verbundener körper aus piezoelektrischem substrat und trägersubstrat |
CN114731150A (zh) | 2019-11-29 | 2022-07-08 | 日本碍子株式会社 | 压电性材料基板与支撑基板的接合体 |
EP4068624A4 (de) | 2019-11-29 | 2023-05-24 | NGK Insulators, Ltd. | Verbundener körper mit einem substrat aus piezoelektrischem material und trägersubstrat |
JP7336413B2 (ja) | 2020-04-30 | 2023-08-31 | 信越化学工業株式会社 | 複合基板の製造方法および複合基板 |
CN115956339A (zh) | 2020-09-10 | 2023-04-11 | 日本碍子株式会社 | 弹性波器件用复合基板 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1398367A (en) * | 1972-12-26 | 1975-06-18 | Ibm | Data processing systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5021821B1 (de) * | 1968-10-31 | 1975-07-25 | ||
JPS529342B2 (de) * | 1971-10-09 | 1977-03-15 | ||
JPS5439980B2 (de) * | 1972-03-24 | 1979-11-30 | ||
US4050058A (en) * | 1973-12-26 | 1977-09-20 | Xerox Corporation | Microprocessor with parallel operation |
US4058850A (en) * | 1974-08-12 | 1977-11-15 | Xerox Corporation | Programmable controller |
-
1980
- 1980-04-15 US US06/140,643 patent/US4348724A/en not_active Expired - Lifetime
-
1981
- 1981-04-02 CA CA000374490A patent/CA1157569A/en not_active Expired
- 1981-04-08 AU AU69197/81A patent/AU536511B2/en not_active Ceased
- 1981-04-10 GB GB8111279A patent/GB2073923B/en not_active Expired
- 1981-04-13 DE DE3114921A patent/DE3114921C2/de not_active Expired
- 1981-04-14 FR FR8107446A patent/FR2480459A1/fr active Granted
- 1981-04-14 IT IT48277/81A patent/IT1170890B/it active
- 1981-04-15 JP JP5688181A patent/JPS5723149A/ja active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1398367A (en) * | 1972-12-26 | 1975-06-18 | Ibm | Data processing systems |
Also Published As
Publication number | Publication date |
---|---|
JPS5723149A (en) | 1982-02-06 |
IT1170890B (it) | 1987-06-03 |
FR2480459A1 (fr) | 1981-10-16 |
DE3114921C2 (de) | 1986-11-20 |
IT8148277A0 (it) | 1981-04-14 |
US4348724A (en) | 1982-09-07 |
GB2073923B (en) | 1985-01-03 |
AU6919781A (en) | 1981-10-22 |
JPS6250856B2 (de) | 1987-10-27 |
CA1157569A (en) | 1983-11-22 |
FR2480459B1 (de) | 1985-01-04 |
AU536511B2 (en) | 1984-05-10 |
GB2073923A (en) | 1981-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE3114961C2 (de) | ||
DE2714805C2 (de) | ||
DE2755273C2 (de) | ||
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE4035405C2 (de) | ||
DE2724125C2 (de) | ||
DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE3638572C2 (de) | ||
DE2322674C3 (de) | Mikroprogramm-Steuereinrichtung | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE69826404T2 (de) | Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen | |
DE2130299B2 (de) | Eingabe-/Ausgabekanal für eine Datenverarb eitungsanlage | |
DE3114934A1 (de) | Zentrales subsystem fuer eine datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE2524046A1 (de) | Elektronische datenverarbeitungsanlage | |
DE2458096C2 (de) | Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung | |
DE69828890T2 (de) | Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP1789889B1 (de) | Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten | |
DE2024584B2 (de) | Steuereinrichtung für eine allgemeine Datenverarbeitungseinrichtung | |
DE10025952B4 (de) | Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
8339 | Ceased/non-payment of the annual fee |