DE3114921A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

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
Application number
DE19813114921
Other languages
English (en)
Other versions
DE3114921C2 (de
Inventor
David E. Chelmsford Mass. Cushing
Philip E. Westboro Mass. Stanley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Information Systems Italia SpA
Honeywell Information Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA, Honeywell Information Systems Inc filed Critical Honeywell Information Systems Italia SpA
Publication of DE3114921A1 publication Critical patent/DE3114921A1/de
Application granted granted Critical
Publication of DE3114921C2 publication Critical patent/DE3114921C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction 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.
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)

  1. 31U921
    HONEYWELL INFORMATION SYSTEMS INC. 13.April 1981
    Smith Street 5101754 GE
    Waltham, Mass., USA Hz/umw
    Datenverarbeitungssystem
    Patentansprüche:
    MJ Datenverarbeitungssystem, gekennzeichnet durch
    a. 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; und
    d. eine die Multiplexereinrichtung umfassende Einrichtung, die auf die erste oder zweite Operation anspricht,
    31U921
    uia 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. 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; und
    b. eine auf die zweite Operation ansprechende Einrichtung zum Empfang eines Signales mit dem Komplement des ersten Pegels.
  3. 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. 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. 5. System nach Anspruch 2, dadurch gekennzeichnet, daß die Multxplexereinrichtung einen Auswahleingang aufweist, der an ein Auswahlsignal des gerade adressierten SteuerSpeicherwortes angeschlossen
    31U921
    ist, wobei dieses Auswahlsignal die Art der auszuführenden Operation anzeigt.
  6. 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. 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;
    und
    b. eine auf die zweite Operation ansprechende Einrichtung für den Empfang eines Signales mit einem zu dem ersten Pegel komplementären Pegel.
  8. 8. System nach Anspruch 7, dadurch gekennzeichnet, daß der erste Pegel dem Pegel eines Signales entspricht, das von einem vorbestimmten
    31U921
    Speicherplatz des gerade adressierten Steuerspeicherwortes erhalten wird.
  9. 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. 10. System nach Anspruch 7, dadurch gekennzeichnet, daß die Ausgänge der Multiplexer zur Adressierung des zweiten Teiles des Steuerspeichers verwendet werden.
DE3114921A 1980-04-15 1981-04-13 Mikroprogramm-Speicheranordnung Expired DE3114921C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1398367A (en) * 1972-12-26 1975-06-18 Ibm Data processing systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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