DE3000107C2 - - Google Patents
Info
- Publication number
- DE3000107C2 DE3000107C2 DE3000107A DE3000107A DE3000107C2 DE 3000107 C2 DE3000107 C2 DE 3000107C2 DE 3000107 A DE3000107 A DE 3000107A DE 3000107 A DE3000107 A DE 3000107A DE 3000107 C2 DE3000107 C2 DE 3000107C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- address
- bits
- bit
- branch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
Die vorliegende Erfindung betrifft eine Mikroprogrammadressierungseinrichtung
nach dem Oberbegriff des Patentanspruchs 1, in einem Datenverarbeitungssystem mit einer
Verknüpfungseinrichtung, die Verknüpfungsoperationen anhand
von Daten ausführt, wobei diese Verknüpfungsoperationen eine
erste und eine zweite Mikroprogramm-Routine umfassen und
wobei Adressen sichergestellt werden, die jeweils der letzten
Mikroinstruktion der genannten ersten Mikroprogramm-Routine
zugehörig sind.
Zur Mikroprogrammsteuerung von Datenverarbeitungssystemen
kommen vielfach Steuerspeicher zur Anwendung, wobei die Operationsabfolge
durch darin in der Form von sogenannter Firmware
gespeicherte Mikrobefehlsworte gesteuert wird. In einer solchen
Firmware sind verschiedene Hauptroutinen und darüber hinaus auch
Subroutinen, die von den Hauptroutinen gemeinsam genutzt werden
können, enthalten. Wird von einer Haupt- auf eine Subroutine umgeschaltet
oder muß aus irgendeinem Grunde eine Routine unterbrochen
werden, so ist die Adresse des nächsten Speicherplatzes oder
des nächsten Befehls in einer derartigen Routine sicherzustellen,
um später zu dem Befehl der Routine, der nicht mehr ausgeführt
worden ist, zurückkehren zu können.
Nach dem Stand der Technik, wie er beispielsweise in der US-Firmenschrift
der Firma Advanced Micro Devices "Microprogramming
Handbook" 1976, Seiten 1-1 bis 1-15 und Seiten 2-11 bis 2-15 dokumentiert
ist, benutzt man für diesen Zweck eine Adresseninkrementierungseinrichtung
und ein Rückkehr-Adreßregister. Mit Hilfe
dieser Ausführungsform wird bei Ausführung eines Subroutineneintrags
die inkrementierte Adresse in dem Rückkehr-Adreßregister
als Adresse für den Steuerspeicher zur Rückkehr von der
Subroutine aufbewahrt. Es ist einzusehen, daß diese bekannte
Einrichtung eine aufwendige Inkrementierungs- und zugehörige
Steuerlogik erfordert, die - obwohl zweckentsprechend - jedoch
einen erheblichen Platzbedarf beansprucht und insgesamt zu erhöhten
Herstellkosten führt.
Der Erfindung liegt demzufolge die Aufgabe zugrunde, die Erzeugung
der Rückkehradressen aus Subroutinen zu vereinfachen.
Gelöst wird die vorstehende Aufgabe bei einer Mikroprogrammadressierungseinrichtung
gemäß dem Oberbegriff des Patentanspruchs
1 in der Weise, daß eine Zustandsänderungseinrichtung
vorgesehen ist, die bei Rückkehr von der zweiten Mikroprogrammroutine
zur Wiederaufnahme der Ausführung der unterbrochenen
ersten Mikroprogrammroutine den Zustand eines Bits der betreffenden
Bits der der betreffenden letzten Mikroinstruktion zugehörigen
Adresse zu invertieren gestattet, bevor zu der Ausführung
der ersten Mikroprogrammroutine zurückgekehrt wird.
Mit Hilfe dieser Erfindung wird in einem Datenverarbeitungssystem,
dessen Operationsabfolge durch in einem Steuerspeicher gespeicherte
Mikrobefehle, beispielsweise in der Art von Firmware, gesteuert wird,
für die Rückkehr zu einer kurzzeitig unterbrochenen Routine eine vereinfachte
und verbesserte Verfahrensweise angewandt. Die Adresse
des letzten Mikrobefehls, der bei einer derartigen Routine vor einer
solchen Programmunterbrechung ausgeführt worden ist, wird gespeichert,
wobei später zu der betreffenden Routine dadurch zurückgekehrt
wird, daß man die betreffende gespeicherte Adresse verwendet,
wobei aber ein Bit dieser Adresse hinsichtlich seines Zustands durch
Invertierung geändert ist.
Der Steuerspeicher wird auf der Grundlage des Inhalts der Steuerspeicherwörter
sowie auch auf der Grundlage von anderen Eingangssignalen
und zwar in Abhängigkeit von in dem Zentralprozessor
ausgeführten Operationen adressiert. Die nächste Adresse wird
dabei durch eine Adressenerzeugungslogik generiert. Dabei ist
es wichtig, daß zur Adressierung des Steuerspeichers gleichzeitig
der Status von mehr als einer Testbedingung (z. B. bei bedingtem
Sprung) herangezogen und berücksichtigt wird. Würde man das nicht
in geeigneter Weise berücksichtigen können, wäre es erforderlich,
jeden der Status- oder Testzustände beispielsweise entsprechend
taktgesteuert in ein Register zu laden. Dies wäre immer dann erforderlich,
wenn sich diese Testbedingungen ändern. Es ist also
wünschenswert, mehrere solche Funktionen gleichzeitig zu testen,
ohne sie in ein taktgesteuertes Register laden zu müssen. Zur Realisierung
dieser wünschenswerten Funktion enthält die Adressenerzeugungslogik
einen Multiplexer mit mehreren Signaleingängen. Eines
der Eingangssignale nimmt der Multiplexer von einem Verriegelungsmechanismus
her auf, was die gleichzeitige Ausnutzung von mehr als
einer Testbedingung zur Adressierung des Steuerspeichers ermöglicht.
Durch die Verwendung von weiteren Eingangssignalen am Multiplexer
kann der Steuerspeicher durch die Verwendung einer Verzweigungsadresseninformation
sowie einer weiteren Testzustandsinformation
adressiert werden. Ein Seiten-Register liefert die Seiten-Adresse
für eine Vielzahl von Seiten, die in dem Steuerspeicher enthalten sind,
wobei die Speicherplätze in jeder derartigen Seite dadurch adressiert
werden, daß die oben erwähnte Multiplexer-Signalkombination verwendet
wird. Durch die Bereitstellung der Möglichkeit, mehr als eine Testbedingung
berücksichtigen zu können, kann die Adressierung des Steuerspeichers
schneller erfolgen, und demgemäß wird auch die Gesamtleistung
des Datenverarbeitungssystems erhöht.
Bei dem nachfolgend beschriebenen Ausführungsbeispiel einer Mikroprogrammadressierungseinrichtung
umfaßt das Datenverarbeitungssystem
einen Steuerspeicher mit einer Vielzahl
von Speicherplätzen, deren jeder zur Speicherung eines
Steuerwortes dient, welches für die Steuerung der Operation
des Prozessors verwendet wird. Ferner ist eine Anordnung
für die Aufnahme einer Vielzahl von Signalen
vorgesehen bzw. eingeschlossen, die kennzeichnend sind
für die Statusinformation des Datenprozessors. Außerdem
dient die betreffende Anordnung zur Aufnahme einer Instruktion
bzw. eines Befehles, die bzw. der kennzeichnend
ist für die Adresseninformation, die zur Adressierung des
Steuerspeichers herangezogen wird. Außerdem ist eine Anordnung
zur Aufnahme eines ersten ausgewählten Teiles
eines adressierten Steuerwortes der Steuerwörter vorgesehen.
Eine erste Multiplexeranordnung ist ebenfalls
vorgesehen, die einen Ausgang aufweist. Diese erste
Multiplexeranordnung gibt die Abgabe von Signalen an ihrem
Ausgang frei, die kennzeichnend sind für die Statusinformation
des ersten ausgewählten Teiles des adressierten Steuerwortes
der Steuerwörter. Ferner ist eine Anordnung für die
Decodierung der Information vorgesehen, die von der Befehlsaufnahmeanordnung
aufgenommen wird, deren aufgenommener
Befehl kennzeichnend ist für eine derartige Adresseninformation.
Ferner ist eine dritte Anordnung vorgesehen, die entweder
die Signale des ersten ausgewählten Teiles am Ausgang
der ersten Multiplexeranordnung oder die von der Anordnung
zur Decodierung aufgenommene Information auswählt. Außerdem
ist eine zweite Multiplexeranordnung mit einem Ausgang und
einer Vielzahl von Eingängen vorgesehen, von denen ein
erster Eingang mit der Auswahlanordnung verbunden ist und
von denen ein zweiter Eingang einen ausgewählten Teil
eines adressierten Steuerwortes der Steuerwörter von dem
Steuerspeicher her zugeführt erhält. Ferner ist eine Anordnung
zur Adressierung des Steuerspeichers mittels eines
der Eingangssignale vorgesehen, die von der zweiten Multiplexeranordnung
aufgenommen werden.
Das Datenverarbeitungssystem enthält eine Verknüpfungsanordnung
zur Ausführung von Verknüpfungsoperationen
auf Daten hin. Diese Operationen schließen die Ausführung
einer ersten Routine und einer zweiten Routine
ein. Ferner ist eine Speichereinrichtung mit einer
Vielzahl von eingespeicherten Instruktionen bzw. Befehlen
vorgesehen, die dazu herangezogen werden, die
Verknüpfungsanordnung zur Ausführung derartiger Operationen
in einer durch die betreffenden Instruktionen
bzw. Befehle bestimmten Weise freizugeben. Außerdem ist
eine Adressierungseinrichtung zur Adressierung einer
derartigen Speichereinrichtung vorgesehen. In der Verknüpfungsanordnung
ist eine Anordnung enthalten, die zur
Ausführung derartiger Routinen dient. Ferner ist eine
Anordnung vorgesehen, die die Ausführung der ersten Routine
unterbricht, um die zweite Routine auszuführen.
Schließlich ist eine Anordnung vorgesehen, die eine
Adresse aufzubewahren gestattet, welche dem letzten Befehl
der ersten Routine zugehörig ist, welcher Befehl
zum Zeitpunkt der Unterbrechung der Ausführung der betreffenden
ersten Routine ausgeführt wurde. Eine derartige
Adresse umfaßt eine Vielzahl von Bits, die jeweils
einen ersten Zustand oder einen zweiten Zustand aufweisen.
Ferner ist eine Anordnung vorgesehen, die den Zustand
eines derartigen Bits der Adresse zu ändern gestattet,
die dem letzten Befehl zugehörig ist, wobei die betreffende
Änderung vor der Rückkehr zu der Ausführung der
ersten Routine erfolgt, derart, daß der nächste Befehl
einer derartigen ersten Routine adressiert wird, der dem
betreffenden letzten Befehl der ersten Routine folgt.
Anhand von Zeichnungen wird eine Ausführungsform der Erfindung nachstehend
beispielsweise näher erläutert.
Fig. 1 zeigt die Gesamtsystemkonfiguration, die die
vorliegende Erfindung einschließt.
Fig. 2 zeigt ein Operationsfolgenzustandsdiagramm
des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 3 zeigt in einem Blockdiagramm den Prozessor nach dem
Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 4 veranschaulicht den Inhalt eines der Register
des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 5 zeigt in einem detaillierten Blockdiagramm ein
Rechenwerk des Ausführungsbeispiels der vorliegenden Erfindung.
Fig. 6 veranschaulicht einen Teil des Inhalts des Steuerspeicherwortes,
welches in Verbindung mit der vorliegenden
Erfindung benutzt wird.
Fig. 7A bis 7F veranschaulichen Einzelheiten der die
jeweils nächste Adresse erzeugenden Adressenerzeugungslogik
gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 8A und 8B veranschaulichen Einzelheiten einer Subroutinen-
Logik gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 9 veranschaulicht in einer Wertetabelle die Operation
der in Fig. 7A dargestellten Logik.
Die in Fig. 1 dargestellte Gesamtkonfiguration des Datenverarbeitungssystems,
das die erfindungsgemäße Mikroprogrammadressierungseinrichtung
umfaßt, zeigt eine Zentraleinheit CPU 11, einen kommerziellen
Befehlsprozessor 13, der die Kurzbezeichnung CIP (Commercial
Instruction Processor) trägt, eine Steuereinrichtung 15 und einen
Speicher 17, die alle über eine Systembusleitung 19 miteinander
verbunden sind. Der kommerzielle Befehlsprozessor 13 ist vorgesehen
zur Erweiterung des CPU-Befehlssatzes um weitere Befehle
kommerziellen Typs, beispielsweise um alphanumerische Befehlstypen,
Sortier-, Datenumsetzungs-, -bearbeitungsbefehle usw.
Der kommerzielle Befehlsprozessor erhält die Informationen von der
Zentraleinheit und aus dem Hauptspeicher und verarbeitet sie in einer
logischen Folge. Dabei treten vier CIP-Operationszustände wie folgt
auf: Ruhezustand, Ladezustand, Belegtzustand und nicht programmierter
Sprungzustand.
Die Aufnahme
jedes kommerziellen Befehls durch die CIP-Einrichtung
erfolgt üblicherweise gleichzeitig mit der Zentraleinheit,
da diese jeden Befehl aus dem Hauptspeicher abholt und
decodiert. Die Ausführung des Befehls in der CIP-Einrichtung
erfolgt jedoch asynchron mit den Zentraleinheits-
Operationen. Jeder Versuch zur Ausführung eines kommerziellen
Befehls in dem Fall, daß eine CIP-Einrichtung in dem
System nicht installiert ist, veranlaßt die Zentraleinheit,
in einen bestimmten nicht programmierten Sprungzustand einzutreten.
Wie in Fig. 2 gezeigt, tritt die CIP-Einrichtung in den
Block 200 ein und verbleibt im Ruhezustand (Block 202),
wenn keine Informationsverarbeitung erfolgt; sie muß im
Ruhezustand sein, um einen Befehl bzw. ein Kommando (d. h.
eine CIP-Instruktion oder ein Eingabe/Ausgabe-Kommando)
von der Zentraleinheit her aufzunehmen. Auf die Aufnahme
eines Kommandos (Block 204) wird bei Gültigkeit (Block 205)
die CIP-Einrichtung in den Ladezustand (Block 206) eintreten
und in dem betreffenden Ladezustand solange verbleiben,
bis die gesamte zugehörige Kommandoinformation
aufgenommen ist. Wenn diese Information erfolgreich
aufgenommen ist (Block 208), tritt die CIP-Einrichtung
in den Belegtzustand (Block 210) ein, um die Information
zu verarbeiten. Jegliche weiteren Versuche seitens der
Zentraleinheit, mit der CIP-Einrichtung in Datenaustausch
zu treten, während diese im Belegtzustand ist, werden von
der CIP-Einrichtung nicht quittiert, und zwar solange
nicht, bis diese wieder in den Ruhezustand zurückkehrt.
Die CIP-Einrichtungs-Verarbeitung umfaßt die Datenaustauschaktivität
mit dem Hauptspeicher; diese Aktivität
tritt dann auf, wenn der/die erforderliche(n) Operand(en)
abgeholt werden. Die CIP-Einrichtung tritt in den nicht
programmierten Sprungzustand (Block 212) lediglich dann
ein, wenn spezielle unzulässige Ereignisse auftreten
(Block 214), wie die Ermittlung einer unzulässigen
Operandenlänge oder ein außerhalb der Folge liegendes
Kommando. Die Rückkehr zu dem Ruhezustand wird dann vorgenommen,
wenn die Operation abgeschlossen worden ist
(Block 216).
Sämtliche zugehörigen bzw. bedeutenden Instruktionstransfers
zu der CIP-Einrichtung werden zusammen von der
Zentraleinheit und der CIP-Einrichtung ausgeführt. Die
betreffenden Instruktionen werden decodiert und von der
CPU-Einheit zu der CIP-Einrichtung zusammen mit der gesamten
zugehörigen Information ausgesendet, die für die
Ausführung der betreffenden Instruktion erforderlich ist.
Wenn der Informationstransfer abgeschlossen ist, setzen
die Zentraleinheit und die CIP-Einrichtung die Verarbeitung
ihrer entsprechenden Instruktionen fort. Jede CIP-
Instruktion enthält ein 16 Bit breites Instruktionswort,
welchem unmittelbar bis zu sechs zusätzliche Wörter vom
Beschreibungstyp (ebenfalls mit einer Breite von 16 Bits)
folgen, sogenannte Daten-Deskriptoren oder Etiketten.
Das Instruktionswort enthält den CIP-Operationscode,
der an die CIP-Einrichtung zur Verarbeitung ausgesendet
wird. Die Datendeskriptoren beschreiben den Operandentyp,
die Größe und den Speicherplatz im Speicher; das
Etikett liefert die Adresse eines Fern-Datendeskriptors.
Sowohl der Datendeskriptor als auch das Etikett werden
von der Zentraleinheit verarbeitet; eine damit in Beziehung
stehende Information, die durch diesen Vorgang
gewonnen bzw. abgeleitet wird, wie ein Operandentyp
und eine Speicheradresse, werden an die CIP-Einrichtung
zur Verarbeitung ausgesendet. Die Zentraleinheit vollendet
die Verfahrensweise dadurch, daß sie den Operationscode
untersucht bzw. analysiert, der in jeder Instruktion enthalten
ist. Wenn die Zentraleinheit eine CIP-Instruktion
feststellt (was bedeutet, daß die CIP-Einrichtung im
Ruhezustand ist), dann sendet die Zentraleinheit den
Instruktions-Operationscode und die zugehörige bzw. damit
in Beziehung stehende Information in der folgenden
Weise aus: (i) Die Zentraleinheit sendet an die CIP-Einrichtung
den Operationscode aus (d. h. das erste Wort der
kommerziellen Instruktion). Die CIP-Einrichtung tritt in
den Ladezustand ein, wenn sie den Operationscode annimmt;
(ii) die Zentraleinheit ruft den ersten Datendeskriptor
auf und fragt die Adressensilbe ab, um die
effektive Adresse zu erzeugen; (iii) die Zentraleinheit
sendet die folgende Information aus: Die 24 Bit umfassende
effektive Byte-Adresse des ersten Operanden, den Inhalt des
zugehörigen CPU-Datenregisters, sofern dies anwendbar ist,
und den Datendeskriptor des ersten Operanden, der derart
aktualisiert ist, daß er eine Byte-(8 Bits) oder Halbbyte
(4 Bits)-Ziffernposition innerhalb eines Wortes
wiedergibt; wenn der zweite und dritte Operand aufgetreten
sind, führt die Zentraleinheit die zutreffenden
Prozeduren in den Schritten ii und iii aus.
An dieser Stelle wird die CIP-Einrichtung mit der gesamten
erforderlichen Information geladen, die zur
Ausführung der kommerziellen Instruktion erforderlich ist,
und außerdem tritt sie in den Belegtzustand ein, um die
Instruktion auszuführen. Erforderlichenfalls tritt die
CIP-Einrichtung in direkten Datenaustausch mit dem
Hauptspeicher ein, um den anwendbaren Operand bzw.
die anwendbaren Operanden zu erhalten. Es sei jedoch
darauf hingewiesen, daß die CIP-Einrichtung niemals
einen direkten Zugriff zu irgendeinem der CPU-Register
vornimmt. Sie benutzt lediglich die Information, die ihr
von der Zentraleinheit her zugesandt wird. Damit werden
keine CPU-Register von der CIP-Einrichtung her modifiziert,
und die Zentraleinheit setzt die Verarbeitung des
nächsten und jedes nachfolgenden CPU-Befehls solange
fort, bis einer der folgenden Zustände auftritt:
(i) Die CIP-Einrichtung teilt über einen nicht programmierten
Sprungvenktor (TV) der Zentraleinheit mit,
daß ein unzulässiges Ereignis während der Ausführung
der gerade laufenden kommerziellen Instruktion aufgetreten
ist, oder (ii) von der Zentraleinheit wird ein
internes oder externes Unterbrechungssignal ermittelt.
Wenn durch die Zentraleinheit ein Unterbrechungssignal ermittelt
wird, führt die Zentraleinheit folgende Vorgänge
aus. Die betreffende Zentraleinheit bestimmt, ob die
letzte kommerzielle Instruktion von der CIP-Einrichtung
abgeschlossen worden ist oder nicht. Die Zentraleinheit
wartet auf die Beendigung der letzten kommerziellen Instruktion.
Wenn die letzte kommerzielle Instruktion abgeschlossen
ist, bestimmt die Zentraleinheit, ob dies
zu einer nicht programmierten Sprunganforderung geführt
hat. Wenn dies der Fall war, dann berücksichtigt die
Zentraleinheit die nicht programmierte Sprunganforderung
vor der Ausführung der Unterbrechung. Dies führt zu
einer typischen Kontext-Aufbewahrungs/Wiederspeicherungs-
Operation, um sämtliche relevanten CPU- und CIP-Status-
Informationen abzuspeichern, die benötigt werden. Mit der
Beendigung der geforderten CPU-Operationen zur Verarbeitung
einer CIP-Sprunganforderung oder dann, wenn keine
Sprunganforderung vorliegt und eine CIP-Instruktion für
die Verarbeitung verfügbar ist, führt die Zentraleinheit
folgende Vorgänge aus. Die Zentraleinheit aktualisiert
ihren Programmzähler, um auf die kommerzielle
Instruktion hinzuzeigen, die sie versucht hat auszulösen.
Die Zentraleinheit schiebt den Versuch der Verarbeitung
der kommerziellen Instruktion solange hinaus, bis die
vorliegende Unterbrechung bedient ist. Die betreffende
Zentraleinheit berücksichtigt und bedient die durch eine
externe Einrichtung hervorgerufene Unterbrechung.
Wenn die CIP-Einrichtung eine Instruktion ausführt, können
sämtliche CPU-Register, einschließlich jener Register, auf
die durch den laufenden kommerziellen Befehl bzw. die
betreffende Instruktion Bezug genommen wird, durch ein
Programm über die CPU-Instruktionen geändert werden. Die
Software braucht jedoch den Operanden für eine kommerzielle
Instruktion solange nicht zu modifizieren, bis die CIP-Einrichtung
die Verarbeitung der betreffenden Instruktion
ausgeführt hat. Ansonsten werden unspezifizierte Ergebnisse
auftreten. Die in dem CIP-Instruktionsrepertoire enthaltenen
Verzweigungsinstruktionen werden von der Zentraleinheit
und von der CIP-Einrichtung synchron ausgeführt.
Die drei Datentypen, welche die Datenwörter bilden, die
von der CIP-Einrichtung verarbeitet werden, sind alphanumerische
Daten, Binärdaten und Dezimaldaten. Jeder Datentyp
ist in Binärinformations-Einheiten klassifiziert.
Durch Definition dieser Einheit, wenn diese durch Bezugnahme
benutzt wird, sind die alphanumerischen und Binärdatenzeichen
durch acht Bits (ein Byte) gegeben; bei
Benutzung, um auf Dezimaldatenzeichen Bezug zu nehmen,
sind sie gleich vier Bits (Halbbyte) für gepackte Dezimaldaten
und acht Bits (ein Byte) für Zeichenfolgen-Dezimaldaten.
Binärzahlen mit einfacher Genauigkeit umfassen
ebenfalls zwei Einheiten (zwei Bytes), und Binärzahlen
doppelter Genauigkeit umfassen vier Einheiten (vier Bytes).
In Fig. 3 ist ein Hauptblockdiagramm des kommerzielle
Instruktionen verarbeitenden Prozessors 13 gemäß der
vorliegenden Erfindung veranschaulicht, wobei sämtliche
Hauptdaten-Übertragungswege zwischen den Registern des
Prozessors veranschaulicht sind.
Der Steuerspeicher 10 umfaßt eine Vielzahl von Speicherplätzen,
und zwar einen für jeden Steuerspeicher oder jedes
Firmwarewort. Diese Firmwarewörter steuern direkt oder indirekt
die Prozessorfolgen, die Datentransferwege und die
Busoperationen.
Die Operandenregisterdateien und das Rechen- und Verknüpfungswerk
(RALU) 12 umfassen hauptsächlich zwei Registerdateien,
eine Rechen-Verknüpfungseinheit (ALU) und
die zugehörigen Multiplexer und Steuerregister. In die
Einheit 12 sind ferner die Operandenregisterdateien (RP 1
und RP 2) eingeschlossen, deren jede 16 Bitstellen enthält,
die dazu herangezogen werden, Operanden für die Ausführung
in dem Rechenwerk ALU zu puffern. Die Rechenwerk-Eingangsmultiplexer
und Verriegelungsschaltungen sind durch folgende
Einrichtungen gebildet; Drei 2-zu-1-Multiplexer
(Zonenauswahl), zwei 4-zu-1-Multiplexer (Ziffernauswahl)
und zwei 8-Bit-Verriegelungsschaltungen (Byte-Verriegelungsschaltungen).
Diese Multiplexer und Verriegelungsschaltungen
werden dazu herangezogen, Daten von den Operanden-
Registerdateien zu dem Rechen- und Steuerwerk ALU abzugeben.
Daten können ferner von dem für das vorliegende Produkt
vorgesehenen Zähler an die linke Seite des Rechen- und
Steuerwerkes ALU oder von der Operandenregisterdatei 2
an das Multiplikationsregister abgegeben werden. Das 8-Bit-
Rechen- und Steuerwerk ALU (welches aus zwei 4-Bit-ALU-
Chips, einem Übertrag-Vorschau-Chip und einem Eintrag/Austrag-
Flipflop besteht) vermag die folgenden Operationen
zwischen den linken (1) und rechten (2) Eingängen auszuführen:
Binäre Addition, binäre Subtraktion Eingang 1
von Eingang 2, binäre Subtraktion Eingang 2 von Eingang 1,
logisches ODER, logisches UND, Exklusiv-ODER, Setzen des
ALU-Ausgangs auf FF und Löschen des ALU-Ausgangs zu 00.
Die RALU-Einrichtung wird im Zusammenhang mit Fig. 5 im
einzelnen erläutert werden.
Die Überschuß-Setz-(XS 6)-Korrekturlogik der RALU-Einrichtung
wird dann freigegeben, wenn das Rechen- und
Steuerwerk ALU im Dezimalbetrieb arbeitet; es wird dazu
herangezogen, das binäre Ausgangssignal von dem Addierer
auf die richtige Dezimalziffer zu ändern, während das
Übertragungsausgangssignal für nachfolgende Operationen
modifiziert wird. Die XS 6-Korrektur wird unter Heranziehung
eines 32-Bit-zu-8-Bit-PROM-Chips vorgenommen,
welches die korrigierten drei Bits hoher Wertigkeit der
Ziffer codiert und den korrigierten Übertrag erzeugt.
Für weitere Steuerungen steht am Ausgang des PROM-Chips
ferner eine weniger als zwei Funktionen umfassende Ziffer
zur Verfügung. Der Ausgangs-Multiplexer des Rechen- und
Steuerwerkes ALU wird dazu herangezogen, entweder die
oberen vier Bits des Addiererausgangssignals oder die
korrigierten Dezimalzonenbits an die interne Busleitung 14
abzugeben, und zwar in Abhängigkeit davon, ob das Rechen-
und Steuerwerk ALU im Binärbetrieb oder im Dezimalbetrieb
arbeitet. Die RALU-Steuerlogik umfaßt drei Register:
RF 1 A - Registerdatei-1-Adreßregister, RF 2 A - Registerdatei-
2-Adreßregister und ALMR - ALU-Betriebssteuerregister.
Diese Register steuern in Verbindung mit
mehreren Mikrobefehlen sämtliche Operationen innerhalb
der RALU-Einrichtung. Neben den zuvor beschriebenen Registern
und der zuvor beschriebenen Steuereinrichtung sind
zwei weitere Register vorgesehen, die als RALU-Register
klassifiziert werden. Diese Register sind ein für das
gegenwärtige Produkt vorgesehener Zähler (CPRC) und das
Multiplikationsregister (MIER). Auf diese Register bzw.
Einrichtungen wird weiter unten noch eingegangen werden.
Die Steuerdatei 16, die auch als Registerdatei C (RFC)
bezeichnet wird, ist ein RAM-Speicher mit 16 Speicherstellen
zu 24 Bits. Dieser Speicher wird hauptsächlich
dazu herangezogen, die gesamte auf die Instruktion bezogene
Information zu speichern, die von der Zentraleinheit
11 ausgeht (z. B. Aufgabe- bzw. Prozeßwörter, Datendeskriptoren,
effektive Adressen, etc.). Die Steuerdatei
enthält ferner mehrere Arbeitsspeicherplätze, die
von der Prozessor-(CIP)-Firmware ausgenutzt werden. Die
Steuerdatei 16 nimmt die Bits 0-7 entweder von der
internen Busleitung 14 oder von dem Busadreßregister
(MAR) 18 über den ODER-Verknüpfungs-Multiplexer 21 auf.
Das Busadreßregister (MAR) 18 und die Adressenaddiererlogik
20 werden nunmehr näher erläutert. Das Register 18
ist ein 24-Bit-Adreßregister, welches hauptsächlich dazu
herangezogen wird, die Systembusleitung 19 zu adressieren.
Es umfaßt ein zwei Eingänge aufweisendes 8-Bit-Multiplexerregister
am unteren Ende und eine 16-Bit-Inkrementierungs/
Dekrementierungs-Einrichtung am oberen Ende. Das
in die unteren acht Bits durch Multiplexsteuerung eingegebene
Eingangssignal stammt entweder von der Steuerdatei 16
oder vom Ausgang des Adressenaddierers 20. Der Adressenaddierer
20 ist eine 8-Bit-Zweierkomplement-Addierereinheit,
die hauptsächlich dazu herangezogen wird, den Inhalt
des Busadreßregisters 18 zu erhöhen oder zu vermindern.
Die Eingangssignale für den Adressenaddierer 20 sind die
acht Bits niedriger Wertigkeit des Busadreßregisters und
des 8-Bit-Schieberegisters (MSR) 22. Das Schieberegister
(MSR) 22 ist ein 8-Bit-Universalschieberegister, welches
von der internen Busleitung 14 geladen werden kann und
welches eine Linksverschiebung oder eine Rechtsverschiebung
um ein Bit auszuführen vermag (was bedeutet, daß eine
Verschiebung bei offenem Ende mit einer Null-Füllung
erfolgt). Das Schieberegister wirkt als Eingangseinrichtung
für den Adressenaddierer 20, um den Inhalt des
Busadreßregisters 18 zu erhöhen oder herabzusetzen.
Darüber hinaus kann das Bit Null des Schieberegisters 22
in das ALU-Eintrag-Flipflop geladen werden, was während
der Ausführung der Umsetzinstruktionen von Nutzen ist.
Das Busleitungs-Ausgabedatenregister (OUR) 24 ist ein
16-Bit-Datenregister, welches dazu herangezogen wird, Daten
auf die Datenleitung der Busleitung 19 zu übertragen. Das
betreffende Register wird von der internen Busleitung 14
entweder mit dem unteren Byte oder dem oberen Byte oder
dem gesamten 16-Bit-Wort geladen. Das Busleitungs-Eingabedatenregister
(INR) 26 ist ein 16-Bit-Datenregister, welches
dazu herangezogen wird, Daten von den Datenleitungen
der Busleitung 19 aufzunehmen. Der Inhalt des Eingabedatenregisters
kann entladen und an die interne Busleitung
14 abgegeben werden.
Das Eingabe-Funktionscoderegister (BFCR) 28 ist ein 6-Bit-
Register, welches dazu herangezogen wird, den Funktionscode
dann zu speichern, wenn die CIP-Einrichtung irgendein auf
der Busleitung 19 auftretendes Eingabe- oder Ausgabekommando
annimmt. Anschließend überprüft die Firmware den
Inhalt des Funktionscoderegisters 28 und führt das spezifizierte
Kommando aus. Das Eingabe-Adressenbankregister (INAD)
30 ist ein 8-Bit-Register, welches dazu herangezogen wird,
die höherwertigen acht Speicheradressenbits zu speichern,
die über die Adressenleitungen der Busleitung 19 aufgenommen
werden. Die höherwertigen acht Adressenbits umfassen
die Speichermoduladresse; sie werden von der
Zentraleinheit 11 infolge eines sogenannten IOLD-Kommandos
oder eines effektiven Adressenfunktionsausgabecodes übertragen.
Die niederwertigen 16 Bits der Speicheradresse werden
über die Datenleitungen der Busleitung 19 aufgenommen
und in das INR-Register 26 eingetastet, wodurch die erforderliche
24-Bit-Hauptspeicheradresse gebildet wird.
Das CIP-Anzeigeregister 32 ist ein 8-Bit-Speicherregister,
in welchem jedes Bit individuell gesetzt oder
zurückgesetzt werden kann. Die Anzeigeregisterbitkonfiguration
ist in Fig. 4 veranschaulicht. Die TRP-
und TRP-Leitungsanzeigen werden von der CIP-Einrichtung 13
lediglich für eine interne Verarbeitung benutzt; sie sind
für die Software nicht sichtbar. Die TRP-Leitungs-(CIP-
Sprungleitungs)-Anzeige wird dazu herangezogen, die
Zentraleinheit 11 über einen existierenden nichtprogrammierten
CIP-Sprungzustand zu informieren; die betreffende
Anzeige wird über die Busleitung 19 durch das externe
Sprungsignal übertragen. Wenn die TRP-Anzeige (nicht
programmierter CIP-Sprung) gesetzt ist, dann ermöglicht
diese Anzeige der CIP-Einrichtung, lediglich Eingabekommandos
von der Zentraleinheit anzunehmen.
Das Untersuchungs- bzw. Analyseregister (AR) 34 ist ein
16-Bit-Register, welches hauptsächlich dazu herangezogen
wird, Mikroprogrammverzweigungen (maskierte Verzweigungen)
und die Überlochung-Byte-Codierungs/Decodierungs-Logik
zu steuern. Dieses Register wird mit dem gesamten 16-Bit-Wort
von der internen Busleitung 14 her geladen. Das
mikroprogrammierbare Schalterregister (MPSR) 36 ist ein
8-Bit-Register, in welchem jedes Bit individuell gesetzt
oder zurückgesetzt werden kann, und zwar unter Mikroprogrammsteuerung.
Jedes Bit innerhalb des MPSR-Registers 36
wird als Kennzeichen ausgenutzt, um die Mikroprogrammierung
zu erleichtern (was bedeutet, daß die Firmware jedes
der Registerbits prüfen und Verzweigungsoperationen in Abhängigkeit
von den Testergebnissen ausführen kann). Einige
dieser Bits werden außerdem zur Steuerung gewisser Hardwarefunktionen
der CIP-Einrichtung 13 ausgenutzt.
Das ROS-Datenregister (RD) 38 ist ein 52-Bit-Speicherregister,
welches dazu herangezogen wird, das Steuerspeicher-
Ausgangssignal (Firmware-Wort) für den vorliegenden
Firmware-Zyklus zu speichern. Das Mikroprogramm-
Rückkehr-Adreßregister (RSRA) 40 ist ein 11-Bit-Register,
welches vom Ausgang der die jeweils nächste Adresse erzeugenden
Adressenerzeugungs-(NAG)-Logik 42 geladen wird.
Das betreffende Register wird dazu herangezogen, die
Mikroprogramm-Rückkehradresse zu speichern, wenn eine
Firmware-Subroutine ausgeführt wird. Der Registerdatei-C-Adressen-
Multiplexer/Wähler (RFCA) 31 ist ein 4 Bit umfassender
2-zu-1-Wähler, der imstande ist, einen der 16
Speicherplätze zu adressieren, die in der Registerdatei C
enthalten sind (das ist die Steuerdatei 16). Dieser Wähler
31 wählt eine Kombination des Funktionscoderegister 28
und entweder des Zählers (1) 46 oder ausgewählter Bits
des ROS-Datenregisters 38 aus. Die CIP-Zähler 44 umfassen
drei 8-Bit-Vorwärts/Abwärts-Zähler 46, 48 und 50, die als
Zähler 1 (CTR 1), als Zähler 2 (CTR 2) bzw. als Zähler 3 (CTR 3)
festgelegt bzw. bezeichnet sind. Diese Zähler werden über
die interne Busleitung 14 geladen/entladen. Der Inhalt jedes
Zählers ist für Test- und Verzweigungsoperationen verfügbar.
Die Überlochungs-Byte-Decoder/Codierer-Logik 52 umfaßt
zwei PROM-Speicherchips mit 512 Speicherplätzen zu vier Bits.
Diese Speicherchips werden dazu herangezogen, den Inhalt
des Prüfregisters (AR) 34 zu decodieren/zu codieren. Das
Byte, welches decodiert wird, wird aus den AR-Bits 1 bis 7
erhalten, und der codierte Ziffernanfang wird aus den
AR-Bits 4 bis 7 erhalten. Die Decodier/Codier-Operation
wird dadurch ausgeführt, daß die AR-Bits 1 bis 7 dazu herangezogen
werden, einen bestimmten PROM-Speicherplatz zu
adressieren. Der Inhalt des bezeichneten PROM-Speicherplatzes
wird so codiert, daß er übereinstimmt, und zwar
entweder: (1) mit der decodierten Ziffer, ihrem Vorzeichen
und ihrer Gültigkeit oder (2) mit dem codierten überlochten
Byte. Das Bit 4 des MPSR-Registers 36 legt fest, ob eine
Decodieroperation oder eine Codieroperation ausgeführt wird,
während das MPSR-Bit 1 das Vorzeichen der codierten Ziffer
anzeigt. Außerdem ist das Ausgangssignal der Überlochungs-
Byte-Decodier/Codier-Logik auf beiden Hälften der
internen Busleitung 14 verfügbar.
Die CIP-Testlogik 54 wählt eines von 32 möglichen Firmware-
Testbedingungen bzw. Testzuständen für die Eingabe
an die die nächste Adresse erzeugende Adressenerzeugungslogik
42 aus. Der tatsächliche oder falsche Zustand
(1- oder 0-Zustand) der überprüften Funktion
steuert das Bit 50 des für die nächste Adresse vorgesehenen
Steuerspeicher-Adressenfeldes (was bedeutet, daß
das Bit 50 gesetzt oder zurückgesetzt wird, und zwar in
Abhängigkeit vom Zustand der getesteten Funktion). Die
die nächste Adresse erzeugende Adressenerzeugungs-(NAG)-
Logik 42, die in der CIP-Einrichtung 13 enthalten ist,
wendet eine der folgenden fünf Methoden an, um die
nächste Firmware-Adresse zu erzeugen: direkte Adresse,
Test und Verzweigung, maskierte Verzweigung, Hauptverzweigung
oder Subroutinen-Rückkehr. Das Verfahren der
direkten Adresse bzw. direkten Adressierung wird dann
benutzt, wenn eine unbedingte Verzweigung zu dem nächsten
sequentiellen Steuerspeicherplatz ausgeführt wird. Dies
wird dadurch bewirkt, daß die Bits 41 bis 51 des Steuerspeicherwortes
dazu herangezogen werden, die nächste
Adresse zu bilden. Diese Bits umfassen das nächste Adresse-
(NA)-Feld, welches direkt irgendeinen der verfügbaren
Steuerspeicherplätze adressieren kann. Das Verfahren des
Testens und Verzweigens wird dann benutzt, wenn eine
2-Wege-Bedingungsverzweigung (Testzustand erfüllt) innerhalb
einer Firmware-Seite ausgeführt wird (eine Firmware-
Seite ist ein 128 Speicherplätze umfassendes Segment innerhalb
des Steuerspeichers). Dieser Vorgang wird dadurch ausgeführt,
daß die Steuerspeicherbits 41, 42, 43, 44 und 50
dazu herangezogen werden, eine Testbedingung bzw. einen
Testzustand auszuwählen. Sodann wird in Abhängigkeit vom
Zustand der überprüften Funktion eine Verzweigung zu einem
der beiden Speicherplätze ausgeführt. Die nach dieser
Methode ausgeführte Verzweigungsoperation ist eine
Modul-2-Operation (was bedeutet, daß die beiden
möglichen Verzweigungsadressen um zwei Speicherplätze
auseinanderliegen). Die Modul-2-Adresse wird wie folgt
gebildet: (1) Wenn der Testzustand erfüllt ist, wird
das Bit 9 der Adresse auf 1 gesetzt, oder (2) das Bit 9
der Adresse wird auf 0 gesetzt, wenn der Testzustand
nicht erfüllt ist. Die Methode der maskierten Verzweigung
wird normalerweise benutzt, wenn eine Verzweigung anhand
des Inhalts des Prüfregisters-(AR)-34 oder anhand bestimmter
anderer Bedingungen erfolgt; dies führt zu
einer Verzweigung zu den Speicherplätzen 2, 4, 8 oder 16
innerhalb derselben Firmware-Seite (eine Firmware-Seite
ist ein 128 Speicherplätze umfassendes Segment innerhalb
des Steuerspeichers). Die Methode der Hauptverzweigung
wird dann benutzt, wenn die Verzweigung innerhalb einer
Firmware-Seite (128 Wörter) erfolgt. Eine CPU/CIP-Schnittstellen-
Routine nutzt diese Methode aus, um die geforderte
16fache Verzweigung bezüglich des Inhalts des Funktionscoderegisters
28 auszuführen. (INB-Hauptverzweigung) und
andere Steuerfunktionen (EOP-Hauptverzweigung). Die Methode
der Subroutinen-Rückkehr wird dazu herangezogen, die Firmware
zu dem nächsten ungeraden oder geraden Steuerspeicherplatz
nach Ausführung einer Firmware-Subroutine zurückzuführen.
Die Rückkehradresse wird aus dem Rückkehradressen-
(RSRA)-Register 40 erhalten; sie muß in diesem Register 40
vor der Ausführung der bezeichneten Subroutine gespeichert
sein.
Die interne Busleitung 14 weist eine Breite von 16 Bits
auf; sie wird hauptsächlich dazu herangezogen, Daten
zwischen den CIP-Registern, einschließlich der Speicherplätze
innerhalb der Registerdateien, zu übertragen.
Die interne Busleitung nimmt Daten von verschiedenen
Quellen auf, wie dies in Fig. 2 veranschaulicht ist. Die
auf der internen Busleitung 14 auftretenden Ausgangssignale
werden zu verschiedenen Registern innerhalb der
CIP-Einrichtung hin abgegeben.
Die Paritätsprüflogik 56 ist zwischen der Busleitung 19
und der internen Busleitung 14 angeschlossen; sie wird
dazu herangezogen, die Parität der eintreffenden Daten
zu überprüfen. Die Paritätsgeneratorlogik 58 auf der
anderen Seite wird dazu herangezogen, das richtige
Paritätsbit für die Übertragung für die Busleitung 19
zu erzeugen. Die Busleitungs-Anforderungsslogik 60 und
die Busleitungs-Antwortlogik 62 werden zum Zwecke der
Freigabe der CIP-Einrichtung ausgenutzt, um einen Zugriff
zu der Busleitung 19 zu erhalten und um auf jegliche
Anforderungen, einen Zugriff zu der CIP-Einrichtung
zu erhalten, zu antworten. Die Verknüpfungseinrichtungen 60
und 62 sind in der US-PS 39 93 981 beschrieben.
In Fig. 5 ist ein Hauptblockdiagramm der RALU-Einrichtung
12 gezeigt, wobei sämtliche Hauptdaten-Übertragungswege
und Steuerleitungen veranschaulicht sind. Die
Steuerleitungen sind dabei durch gestrichelte Linien angedeutet,
um das Verständnis des Betriebs der betreffenden
Leitungen zu erleichtern. Der Einfachheit halber ist
die Beschreibung der RALU-Einrichtung in sieben Bereiche
unterteilt: Operandenregisterdateien, ALU-Eingangsmultiplexer
und Verriegelungsschaltungen, Rechenlogikeinheit,
XS6-Korrekturlogik, ALU-Ausgangsmultiplexer, RALU-Steuerlogik
und verschiedene RALU-Register. Die Operandenregisterdateien
RF1 70 und RF2 72 enthalten jeweils vier
RAM-Speicherchips, die zur Kurzzeitspeicherung für CIP-Operanden
benutzt werden. Die Adressen für jede der
Registerdateien werden von zwei 6-Bit-Adreßregistern
RF 1A 74 bzw. RF 2A 76 abgegeben. Die Bits 0 bis 3 des
jeweiligen Adreßregisters liefern die Adresse des Speicherplatzes
innerhalb der zugehörigen Registerdatei, während die
niederwertigen Bits für die Byte- und Ziffernauswahl
am Ausgang der Registerdatei vorgesehen sind. Diese
beiden Adreßregister können um 1, 2 oder 4 inkrementiert
oder dekrementiert werden (d. h. um Ziffern, Bytes oder
Wörter). Wie in Fig. 5 veranschaulicht, wird das Ausgangssignal
von jeder Registerdatei den Eingängen zweier Multiplexer
zugeführt (das heißt einem Paar von Multiplexern
für jede Registerdatei), die eine Auswahl zwischen der
Zonen- und Zifferninformation treffen. Die Auswahl wird
durch die Bits 4 und 5 des zugehörigen Adreßregisters bewirkt.
Das Bit 4 trifft eine Auswahl dahingehend, ob die
Bits 0 bis 3 oder acht bis 11 (von der Registerdatei) dem
Ausgang der 2-zu-1-Multiplexer 78 oder 80 zugeführt werden,
während das Bit 5 zur Auswahl der Registerdatei-Bits herangezogen
wird, die die Ziffer bilden, welche dem Ausgang des
4-zu-1-Multiplexers 82 oder 84 zugeführt wird.
Die verschiedenen Register und Multiplexer sind derart
angeschlossen, daß sie über die verschiedenen Steuerleitungen
gesteuert werden, die durch gestrichtelte Linien
veranschaulicht sind; zu diesen Steuerleitungen gehören
beispielsweise die Steuerleitungen 71, 73, 75 und 77. Ein
dritter 2-zu-1-Multiplexer 86 wird dazu herangezogen, auszuwählen,
ob der Inhalt des für das gerade vorliegende
Produkt vorgesehenen Produktzählers (CPRC) 88 oder die
Ziffer von der RF1-Einrichtung an die A-Verriegelungsschaltungen
90 abgegeben wird. Dieser Multiplexer wird
durch das ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen,
die A-Verriegelungsschaltungen 90
und die B-Verriegelungsschaltungen 106 nehmen sowohl die
Zoneninformation als auch die Zifferninformation von den
ALU-Eingangsmultiplexern auf und verriegeln die Daten in
Registerdateien während der Schreiboperationen. Die Ausgänge
der Verriegelungsschaltungen liefern die Zonen-
und Ziffern-Information an die linke Seite bzw. an die
rechte Seite der ALU-Einrichtung.
Der für das gerade vorliegende Produkt vorgesehene
Produktzähler (CPRC) ist ein 4-Bit-Vorwärts/Rückwärts-
Dezimalzähler, der hauptsächlich während der Ausführung
der Dezimal-Multiplikations- und Divisionsoperationen
benutzt wird. Das Multiplikationsregister (MIER) 94 ist
ein 4-Bit-Vorwärts/Rückwärts-Binärzähler, der hauptsächlich
während der Dezimal-Multiplikations- und Divisionsoperationen
benutzt wird. Das ALU-Betriebssteuerregister
(ALMR) 92 ist ein 6-Bit-Steuerregister, welches zur
Steuerung sämtlicher ALU-Operationen herangezogen wird.
Das Registerdatei-1-Adreßregister (RF1A) 74 ist ein
6-Bit-Adreßregister, welches zwei Funktionen ausführt:
(1) Abgabe von Adressen für die Registerdatei 1 (70) und
(2) Steuerung von zwei der drei ALU-Eingangsmultiplexer,
die der Registerdatei 1 zugehörig sind.
Das Registerdatei-2-Adreßregister (RF2A) 76 ist ein
6-Bit-Adreßregister, welches zwei Funktionen ausführt:
(1) Abgabe von Adressen für die Registerdatei 2 (72) und
(2) Steuerung der der Registerdatei 2 zugehörigen ALU-
Eingangsmultiplexer.
Sämtliche Operationen der Rechenlogikeinheit (ALU) 100
werden entweder im Dezimalbetrieb oder im Binärbetrieb
ausgeführt. Der Dezimalbetrieb wird dann benutzt, wenn
mit einer Dezimalzifferninformation gearbeitet wird,
während der Binärbetrieb für Byte-(Alpha)-Operationen
benutzt wird. Die beiden Betriebsarten steuern ferner
die Überschuß-6-XS6-Korrekturlogik 102 und die Eingangssignale
für das Übertrage-Flipflop. Im Dezimalbetrieb
wird das Übertrag-Flipflop für den Übertrag von den
niederwertigen 4 Bits der ALU-Einrichtung geladen, während
es im Binärbetrieb mit dem Übertrag von den acht Bits
der ALU-Einrichtung für nachfolgende Rechenoperationen
geladen wird. Das Übertrag-Flipflop wird unter Mikroprogrammsteuerung
geladen, wenn ein Übertrag für nachfolgende
Operationen weitergeleitet werden muß. Darüber
hinaus kann das Übertrag-Flipflop von dem MSR-Register
geladen und unter Mikroprogrammsteuerung gesetzt oder
zurückgesetzt werden.
Die XS6-Korrekturlogik 102 weist ein 32-Bit-zu-8-Bit-PROM-
Speicherchip und die zugehörige Steuerlogik auf,
um die höherwertigen drei Bits des Ziffernausgangssignals
der ALU-Einrichtung zu korrigieren. Die XS6-
Korrektur wird ausgeführt, sofern (1) die ALU-Einrichtung
im Dezimal-Additionsbetrieb arbeitet und ein Dezimalübertrag
eingeschlossen ist, oder wenn das Ziffernausgangssignal
der ALU-Einrichtung 100 größer ist als 9,
und (2) im Dezimal-Subtraktionsbetrieb, wenn ein Borgen
eingeschlossen ist (d. h. bei Fehlen eines Übertrags von
dem Ziffernteil des Addierers). Der PROM-Chip weist fünf
Adressenleitungen auf. Drei dieser Leitungen umfassen die
drei höherwertigen Bits von dem Ziffernausgang der ALU-Einrichtung,
während die anderen beiden Adressenleitungen
den Typ der ausgeführten Operation anzeigen (d. h.
Additions-Korrektur, Subtraktions-Korrektur oder keine
Korrektur). Der codierte Inhalt des PROM-Chips ist durch
die drei höherwertigen korrigierten Bits der Ziffer, den
korrigierten Dezimal-Übertrag und den Ziffernzustand, der
kleiner ist 2, gegeben.
Der ALU-Ausgangsmultiplexer 104 wählt zwischen den oberen
vier Bits des Addierer-Ausgangssignals und den korrigierten
Dezimalzonenbits für die Abgabe an die interne Busleitung
aus. Die Konfiguration der Zonenbits (für den
Dezimalbetrieb) hängt davon ab, ob ASCII- oder EBCDIC-
Daten benutzt werden (was bedeutet, daß bei Verwendung
von ASCII-Daten der Zonen-Bits ein Wert von 3 gegeben wird,
während bei Verwendung von EBCDIC-Daten der Zonen-Bits ein
Wert von F gegeben wird).
Die RALU-Steuereinrichtungen umfassen Register RF 1 A 74,
RF 2 A 76 und ALMR 92 zuzüglich verschiedener, der RALU-
Einrichtung zugehöriger Mikrobefehle. Darüber hinaus steht
das ALU-Übertrag-Flipflop unter Mikroprogrammsteuerung.
Das Übertrag-Flipflop kann (sofern erforderlich) vorgelöscht
oder voreingestellt werden, und zwar durch die
entsprechenden Mikrobefehle, und ferner kann es geladen
werden: (1) durch den 4-Bit-Ziffernübertrag für Dezimaloperationen,
(2) durch den 8-Bit-Binärübertrag für Binäroperationen
oder (3) durch das Bit 0 des MSR-Registers 22
während der Ausführung von Umsetzbefehlen bzw. -instruktionen.
Das ALMR-Register 92, welches sämtliche ALU-
Operationen steuert, wird von den Steuerspeicher-Bits
2 bis 7 geladen. Das Bit 0 legt dabei fest, ob die ALU-
Einrichtung im Dezimalbetrieb oder im Binärbetrieb arbeitet,
was bedeutet, daß das Übertrag-Ausgangssignal der ALU-Einrichtung
vom Bit 4 (Ziffernübertrag) oder vom Bit 0 (Binärübertrag)
stammt. Das Bit 0 steuert ferner sowohl die
ALU-Korrektur (XS 6) für Dezimaloperationen als auch den
ALU-Ausgangsmultiplexer 104; der Multiplexer legt fest,
ob die vier Bits hoher Wertigkeit der ALU-Einrichtung oder
die zugeführten Zonenbits an die interne Busleitung 14
weitergeleitet werden. Die Bits 1, 2 und 3 werden zur
Steuerung von Operationen innerhalb der ALU-Einrichtung
benutzt. Das Bit 4 legt fest, ob die Zonenbits einen
Wert von 3 oder F erhalten (bei ASCII-Daten erhalten die
Zonenbits einen Wert von 3; bei ADCDIC-Daten erhalten die
Zonenbits einen Wert von F). Das Bit 5 legt fest, ob die
ausgewählte Ziffer von der Registerdatei 1 oder der Inhalt
des gerade benutzten Produktzählers 88 zu den Verriegelungsschaltungen
90 weitergeleitet wird, die der
linken Seite der ALU-Einrichtung zugehörig sind. Das
Register RF 1 A liefert die Adresse und die Steuersignale
für die Registerdatei 1 und die zugehörigen ALU-Eingangsmultiplexer.
Das Register RF 2 A liefert die Adressen und
Steuersignale für die Registerdatei 2 und die zugehörigen
ALU-Eingangsmultiplexer.
Die Steuerdatei 16 ist in zwei Bereiche unterteilt:
den oberen Bereich (Bits 0 bis 7) und den unteren Bereich
(Bits 8 bis 23). Jeder Bereich der Steuerdatei
kann wie folgt geladen werden: Unterer Bereich RFC von
der internen Busleitung (Bits 0 bis 15), oberer RFC-
Bereich von der internen Busleitung (Bits 0 bis 7),
unterer RFC-Bereich von der internen Busleitung (Bits 0
bis 15) und oberer RFC-Bereich von dem Busleitungs-
Adreßregister 18 (Bits 0 bis 7). Den zur Ausführung
der obigen Operationen benutzten Funktionen ist eine
Adresse zugehörig, die dem Speicherplatz RFC 16 entspricht,
der geladen wird bzw. ist. Diese Adresse hat ihren Ursprung
entweder in dem Funktionscoderegister 28 oder in
dem Steuerspeicher 10. Damit steht die RFC-Adresse in
direkter Beziehung zu dem Typ der Daten, die von der
Zentraleinheit 11 abgegeben werden, oder sie wird durch
den Funktioncode angezeigt.
Das CIP-Firmwarewort ist in 14 verschiedene Felder unterteilt.
Obwohl verschiedene Felder in identischen Bit-
Positionen innerhalb des Firmwarewortformates auftreten,
unterscheiden sich ihre Funktionen gemäß der besonderen
Operation, die während des laufenden Firmwarezyklus ausgeführt
wird. Die für das CIP-Firmwarewort benutzten
14 Felder sind: (1) RALU, (2) BI, (3) BE, (4) MSC 1,
(5) CTRS, (6) C 2 R, (7) CONST, (8) MAR/MASR, (9) RFCAD,
(10) RFCWRT, (11) MISC 2, (12) MPSR, (13) BR und (14) NA.
Dabei sind lediglich die in Fig. 6 gezeigten Felder BR
und NA für die der nächsten Adressenerzeugung dienende
Adressenerzeugungslogik der vorliegenden Erfindung
wichtig.
Das Verzweigungs-Typ-(BR)-Feld enthält die Bits 37 bis 40
des Firmware-Wortes. Dieses Feld bestimmt den Typ der
auszuführenden Verzweigung als Ergebnis einer bestimmten
Testbedingung. Das die nächste Adresse betreffende Adressenfeld
(NA) enthält die Bits 41 bis 51 des Firmware-Wortes.
Dieses Feld wird entweder dazu herangezogen, (1) eine
direkte Adresse für den nächsten Firmware-Speicherplatz
zu liefern, oder (2) die Testbedingung zu spezifizieren,
die während der Erzeugung der nächsten Firmwareadresse
benutzt wird, und zwar zusammen mit ihrer relativen
Adresse.
Die nächste ROS-Adresse wird als Funktion der BR- und NA-
Felder des Steuerspeicherwortes erzeugt. Eine Decodierung
dieser Felder führt zu den folgenden sechs Mikrobefehlen
(zuzüglich zugehöriger Argumente), welche die tatsächliche
Erzeugung der nächsten Adresse ausführen: BUN - unbedingte
Verzweigung, BTS - Verzweigung auf Testbedingung hin,
BMA - Hauptverzweigung, RAS - Rückkehr nach Subroutine,
BRM - maskierte Verzweigung und BRMEX - maskierte Verzweigung
erweitert.
Die für die Erzeugung der nächsten Adresse vorgesehene
Adressenerzeugungslogik (NAG) 42 ist in Fig. 7A bis 7F
im einzelnen veranschaulicht; sie enthält Multiplexer,
PROM-Speicherchips, Register und zugehörige Verknüpfungseinrichtungen,
die in Verbindung mit den folgenden ROS-
Daten-(RD)-Registerfeldern eine Steuerspeicher-(ROS)-
Adresse erzeugen. Derartige Datenregisterfelder umfassen
(1) das Verzweigungsfeld (RD 37 BR bis RD 40 BR) und (2) das
nächste Adressenfeld (RD 41 NA bis RD 51 NA). Diese Datenregisterfelder
leiten ihre speziellen Funktionen aus
dem Firmwarewort ab. Die Multiplexer führen zusammen
mit den bestimmten Registern folgende Funktionen aus:
(1) es werden die Adressendaten von einer der nachstehend
aufgeführten Listen ausgewählt, (2) aus diesen
Daten wird das nächste 11-Bit-Adressenfeld gebildet (NEXA 00
bis NEXA 10) und (3) dieses Feld wird dem Steuerspeicher
(ROS) 10 zugeführt, um ein spezielles Steuerspeicherwort
auszuwählen. Die Quellen, von denen die Adressendaten
ausgewählt werden, sind folgende:
(1) Prüf- bzw. Analyseregister (AR) 34, (2) erweitertes Maskierungsverzweigungsregister 700 mit seinen folgenden Eingängen: (a) Mikroprogrammschalterregister (MPSR) 36, (b) Operationscoderegister (CIOPR) 704, (c) Zähler-1- und Zähler-2-Decoder (CTR1 46 und CTR2 48), (d) Zähler 3 (CTR3) 50 und (e) zwei Vorzeichen-Statusanzeigen (NEGSNF und ILLSNF) oder Anzeigenregister 32, (3) Operationsende- Verzweigungs-PROM (EOPMB) 706, (4) Anfangs-Hauptverzweigungs- PROM (BINMB) 708, (5) ROS-Rückkehradreßregister (RSRA) 40, (6) ROS-Adressenfeld (NEXA) 710, (7) ROS-Seitenregister (RSRGR) 730 und (8) ROS-Datenregister (RD) 38. Die genaue Art und Weise, in der die NAG-Logik eine Adresse erzeugt, wird nachstehend beschrieben. Im folgenden wird eine Funktionsbeschreibung der Register und PROM-Speicher gegeben, die in direkter Verbindung zu der NAG-Logik stehen. Das Prüfregister (AR) 34 ist ein 16-Bit-Register, welches hauptsächlich mit einer maskierten Verzweigungs-(BRM)-Instruktion dazu herangezogen wird, die erforderlichen Mikroprogrammverzweigungen innerhalb des Steuerspeichers (ROS) 10 zu bewirken. Das AR-Register wird ferner dazu herangezogen, die Überlochungs-Byte-Decodierungs/Codierungsoperation auszuführen. Daten von der internen Busleitung (BI) sind für das AR-Register verfügbar, und zwar mit der Ausführung einer BARFBI-Mikroinstruktion, was bedeutet, daß AR von BI her geladen wird. Daten von dem AR-Register 34 (oder von dem erweiterten Maskierungsverzweigungsregister 700) werden ausgewählt und an das AR-Testzustandsfeld (AR 00 TC bis AR 15 TC) durch das RD-Register-38-Bit (RD 37 BR) abgegeben.
(1) Prüf- bzw. Analyseregister (AR) 34, (2) erweitertes Maskierungsverzweigungsregister 700 mit seinen folgenden Eingängen: (a) Mikroprogrammschalterregister (MPSR) 36, (b) Operationscoderegister (CIOPR) 704, (c) Zähler-1- und Zähler-2-Decoder (CTR1 46 und CTR2 48), (d) Zähler 3 (CTR3) 50 und (e) zwei Vorzeichen-Statusanzeigen (NEGSNF und ILLSNF) oder Anzeigenregister 32, (3) Operationsende- Verzweigungs-PROM (EOPMB) 706, (4) Anfangs-Hauptverzweigungs- PROM (BINMB) 708, (5) ROS-Rückkehradreßregister (RSRA) 40, (6) ROS-Adressenfeld (NEXA) 710, (7) ROS-Seitenregister (RSRGR) 730 und (8) ROS-Datenregister (RD) 38. Die genaue Art und Weise, in der die NAG-Logik eine Adresse erzeugt, wird nachstehend beschrieben. Im folgenden wird eine Funktionsbeschreibung der Register und PROM-Speicher gegeben, die in direkter Verbindung zu der NAG-Logik stehen. Das Prüfregister (AR) 34 ist ein 16-Bit-Register, welches hauptsächlich mit einer maskierten Verzweigungs-(BRM)-Instruktion dazu herangezogen wird, die erforderlichen Mikroprogrammverzweigungen innerhalb des Steuerspeichers (ROS) 10 zu bewirken. Das AR-Register wird ferner dazu herangezogen, die Überlochungs-Byte-Decodierungs/Codierungsoperation auszuführen. Daten von der internen Busleitung (BI) sind für das AR-Register verfügbar, und zwar mit der Ausführung einer BARFBI-Mikroinstruktion, was bedeutet, daß AR von BI her geladen wird. Daten von dem AR-Register 34 (oder von dem erweiterten Maskierungsverzweigungsregister 700) werden ausgewählt und an das AR-Testzustandsfeld (AR 00 TC bis AR 15 TC) durch das RD-Register-38-Bit (RD 37 BR) abgegeben.
Das erweiterte Maskierungsverzweigungsregister 700 ist ein
16-Bit-Register. Es wird ausschließlich mit dem erweiterten
Maskierungsverzweigungs-(BRMEX)-Befehl bzw. der betreffenden
Instruktion benutzt, um die Funktionsdaten des
zugehörigen kommerziellen Instruktionsprozesses (CIP) von
ausgewählten Registern und Zählern her in das Ausgangstestzustandsfeld
(AR 00 TC bis AR 15 TC) des AR-Registers 34 zu
transportieren, und zwar für die Steuerspeicher-Adressenmodifikation oder
-Erzeugung. Die ausgewählten Register
und Zähler sind folgende:
(1) Mikroprogrammschalterregister 36; dieses Register liefert die anwendbaren Mikroprogrammsteuerkennzeichen (MPSR 00 bis MPSR 03) für die Firmware-Abfrage, (2) Operationscoderegister 704, welches das abgebbare bzw. anwendbare CIP-Instruktionswort-Operationscodefeld (CIOPR 0 bis CIPR 5) festhält, (3) Zähler 1 46 und Zähler 2 48 - Decodierung; diese Zähler liefern die Testbedingungen für spezielle Mikroprogramm-Test- und Verzweigungsbedingungen, (4) Zähler 3 50 (Bits 6 und 7) - der Zähler 3 (Bits 6 und 7) dient für ein Versatz-Ausprüfen, und (5) Vorzeichen-Bedingungen, die das negative Vorzeichen (NEGSNF) und die zulässigen Vorzeichen-(ILLSNF)-Codes liefern.
(1) Mikroprogrammschalterregister 36; dieses Register liefert die anwendbaren Mikroprogrammsteuerkennzeichen (MPSR 00 bis MPSR 03) für die Firmware-Abfrage, (2) Operationscoderegister 704, welches das abgebbare bzw. anwendbare CIP-Instruktionswort-Operationscodefeld (CIOPR 0 bis CIPR 5) festhält, (3) Zähler 1 46 und Zähler 2 48 - Decodierung; diese Zähler liefern die Testbedingungen für spezielle Mikroprogramm-Test- und Verzweigungsbedingungen, (4) Zähler 3 50 (Bits 6 und 7) - der Zähler 3 (Bits 6 und 7) dient für ein Versatz-Ausprüfen, und (5) Vorzeichen-Bedingungen, die das negative Vorzeichen (NEGSNF) und die zulässigen Vorzeichen-(ILLSNF)-Codes liefern.
Wenn eine Hauptverzweigungs-(BMA)- oder eine maskierte
Verzweigungs-(BRM)-Instruktion ausgeführt wird, ist das
Steuersignal RD 37 BR falsch bzw. Null. Dies sperrt die
Übertragung der vorangehenden Funktionen (Poster 1 bis 5)
in das erweiterte Maskierungsverzweigungsregister und
gibt die Abgabe von dem AR-Register frei. Anschließend
bewirkt die Decodierung einer erweiterten Maskierungsverzweigungs-
(BRMEX)-Instruktion die Abgabe des Signals
RD 37 BR als 1-Signal, wodurch das Ausgangssignal von dem
AR-Register gesperrt und das Ausgangssignal von dem erweiterten
Maskierungsverzweigungsregister freigegeben
wird.
Das Mikroprogramm-Schalterregister 36 (MPSR) ist ein 8-Bit-
Register, welches jedes Bit einzeln oder Bitgruppen kollektiv
als Kennzeichen für die Mikroprogrammierung oder für
Firmware-Test- und Verzweigungsoperationen benutzt. Das
Ausgangssignal von dem MPSR-Register wird auf das erweiterte
Maskierungsverzweigungsregister und die binären
Sammelmultiplexer 712 verteilt, um eine Steuerspeicheradresse
zu modifizieren oder zu erzeugen. Darüber hinaus
werden ausgewählte Ausgangssignale von dem MPSR-Register
36 auf die folgenden CIP-Logikelemente verteilt, um die
bezeichneten Funktionen auszuführen: (1) Überlochungs-
Decodierungs/Codierungs-Logik 52, wobei (a) MPSR 01 das
Operandenvorzeichen festlegt (0 = positiv (+)-Vorzeichen;
1 = negativ (-)-Vorzeichen), und (b) MPSR 04 legt den Typ
der Decodierungs/Codierungsoperation fest (0 = Decodierungsoperation;
1 = Codierungsoperation); (2) Datenstatusakkumulator:
MPSR 05 bildet die Adresse für den Statusakkumulator
PROM; (3) RALU: MPSR 07 wird für den Multiplexer-
Zehnerkomplement-PROM während des Ladens von MIER
benutzt.
Die in das MPSR-Register 36 abgegebenen Daten werden aus
den für verschiedene Steuerungen vorgesehenen (RD 32 MS
bis RD 36 MS)-Feld des ROS-Daten-(RD)-Registers 38 erhalten
und durch dieses Feld gesteuert. Das Signal RD 32 MS stellt
die Firmwaredaten für die MPSR-Eingangsleitungen zur Verfügung.
Das betreffende Signal wird für die betreffende
MPSR-Ausgangsleitung durch einen 3-Bit-Binärcode auf
den Auswahl-(SEL)-Eingangsleitungen für das Register
verfügbar gemacht. Dieser 3-Bit-Binärcode wird durch die
Firmware über die verschiedenen RD-Steuersignale (RD 33 MS
bis RD 35 MS) bereitgestellt. Die an die ausgewählte Ausgangsleitung
übertragenen eigentlichen Daten treten dann
auf, wenn das Signal RD 36 MS ein Einssignal ist und wenn
ein negativer Übergang von MPSREN- auf der Takteingangsleitung
C für das Register vorhanden ist.
Das Operationscoderegister 704 ist ein 6-Bit-Register
(CIOPR 0 bis CIOPR 5), welches einen Operationscode aus
einem CIP-Instruktionswort für die letztlich erfolgende
Adressenmodifikation einer Steuerspeicheradresse festhält.
Dieser Operationscode ist in dem Hexadezimal-Codefeld
(Bits 10 bis 15) des Instruktionswortes enthalten. Das
Operationscoderegister überwacht die Bits BI 10 bis BI 15
auf der internen Busleitung bezüglich dieses Feldes.
Wenn das Operationscoderegister dieses Feld aufnimmt,
wird dieses an das erweiterte Maskierungsverzweigungsregister
700 und an den Operationsende-PROM-Speicher 706
abgegeben, in welchem das betreffende Feld im Zuge der
Erzeugung des nächsten Adressenfeldes (NEXA) benutzt
wird. Die Daten auf der internen Busleitung werden in
das Operationscoderegister 704 auf den positiven Signalsprung
auf der Takteingangsleitung (C) durch das Signal
LCIOPR eingetastet. Dieses Signal wird dadurch erzeugt,
daß das Ausgangssignal des RD-Registers 38 decodiert wird,
und zwar dann, wenn: (1) das Decoder-Eingangsadressenfeld
(RD 17 KT bis RD 19 KT) gleich einen Binärwert 8 aufweist,
(2) wenn eine BI-Ladeoperation betreffend das RD-Register
nicht abgewickelt wird (was bedeutet, daß das
Entladesignal ULKNST mit niedrigem Pegel auftritt), und
wenn (3) der positive Signalsprung des nächsten Taktimpulses
1 auftritt.
Die drei 8-Bit-Zählerkonfigurationen, die als Zähler 1
(CTR1) 46, als Zähler 2 (CTR2) 48 und als Zähler 3 (CTR3) 50
bezeichnet sind, liefern der NAG-Logik die folgenden vier
Testzustände, die für die Ausführung bestimmter nachfolgend
beschriebener Test- und Verzweigungsoperationen benutzt
werden: Weniger als acht (CTR 3 L 8), weniger als vier (CTR 1 L 4 ),
CTR 2 L 4 und CTR 3 L 4, weniger als zwei (CTR 1 L 2, CTR 2 L 2 und
CTR 3 L 2) und gleich Null (CTR 1 E O, CTR 2 E O und CTR 3 E O). Diese
Grundkonfiguration ist für jeden der drei Zähler gleich.
Damit wird die folgende Zählerbeschreibung auf den
Zähler CTR1 46 beschränkt.
Die internen Busleitungsbits 00 bis 07 stellen die Quellendaten
für die jeweilige Zählerkonfiguration dar. Die
fünf Datenbits niedrigster Wertigkeit des Bytes 0 von BI
(BIDT 03 bis BIDT 07) oder sämtliche acht BI-Datenbits
des Bytes 0 (BIDT 00 bis BIDT 07) können zu irgendeinem
Zeitpunkt in den Zähler geladen werden, wobei der betreffende
Zeitpunkt durch die Firmware bestimmt wird.
Die Firmware wählt das 5-Bit-Laden oder das 8-Bit-Laden
über die RD-Register-Konstanten-(KT)-Feldbits RD 16 KT
bis RD 23 KT aus. Der Zähler wird durch einen negativen
Impuls auf seiner entsprechenden Vorwärtszähl- oder
Rückwärtszähl-Eingangsleitung inkrementiert oder dekrementiert,
während die andere bzw. gegenüberliegende
Leitung auf hohem Wert gehalten wird. Die Daten von dem
Zähler 1 werden dazu herangezogen, eine der vorhergehenden
Testbedingungen von dem zugehörigen PROM-Speicher zu
decodieren. Die ausgewählte Information wird dann auf
das erweiterte Maskierungsverzweigungsregister 700 und
auf die Binärtest-Sammel-Multiplexer 712 verteilt, wo sie
zur Bildung des nächsten Adressenfeldes (NEXA) benutzt
wird.
Das ROS-Rückkehr-Adreßregister (RSRA) 40 ist ein 11-Bit-
Register, welches zur Speicherung einer Mikroprogramm-
Rückkehradresse benutzt wird. Diese Rückkehradresse
ist in dem nächsten Adressenfeld (NEXA 00 bis NEXA 10) für
den Steuerspeicher enthalten. Wenn diese Adresse in dem
RSRA-Register gespeichert ist, kann ein Zugriff lediglich
durch eine Rückkehr nach einer Subroutinen-Instruktion
(RAS) erfolgen. Die Daten aus dem nächsten Adressenfeld
werden in das RSRA-Register auf den positiven Signalübergang
auf der Takteingangsleitung (C) durch das Signal
MISRAD eingetastet.
Die Binär-Testlogik 54 umfaßt vier Multiplexer und die
zugehörige Verknüpfungslogik; sie wird ausschließlich
mit einer BTS-Instruktion zur Verzweigung auf einen Test
hin benutzt. Die betreffende Verknüpfungsanordnung wählt
einen von 32 möglichen Firmware-Testzuständen aus und
leitet das ausgewählte Teststatussignal (RSTSTT) an
die zur nächsten Adressenerzeugung dienende Adressenerzeugungslogik
42 weiter, und zwar zur Ausnutzung bei
der Erzeugung einer Steuerspeicheradresse. Die eigentliche
Testauswahl wird durch die vier Bits höchster Wertigkeit
des die nächste Adresse enthaltenden RD-Registeradressenfeldes
ausgeführt, d. h. (RD 41 NA bis RD 44 NA) und RD 50 NA.
Um Beispielsweise weniger als vier Zustände von dem
CIP-Zähler 2 (CTR 2 L 4) auszuwählen, codiert die Firmware
dieses NA-Feld mit einer binären 3 (was die Rückkehr auf
RD 43 NA und RD 44 NA hin und die Abschaltung von RD 41 NA
und RD 42 NA und außerdem die Einschaltung RD 50 NA
bedeutet). Dadurch werden die Testergebnisse von dem
Mikroprogramm-Schalterregisterbit 7 (MPSR 07) und von
CTR 2 L 4 zu den Multiplexerausgangssignalleitungen RSTST 0
bzw. RSTST 1 hin übertragen. Durch die Signale bzw. Leitungen
RSTST 0 und RSTST 1 werden die entsprechenden verdrahteten
ODER-Ausgangssignale RSTSTE und RSTSTD aktiviert.
Die Signale RSTST 2 und RSTST 3 sind gesperrt, da das Signal
RD 41 abgeschaltet ist. Das Signal RD 41 wird über einen
Inverter 713 dem Freigabeeingang der Multiplexer zugeführt,
und zwar entsprechend RSTST 2/3. Bei als 1-Signal auftretendem
Signal RD 50 NA ist jedoch eine weitere Übertragung
des Ausgangssignals RSTSTE durch das UND-Glied
717 gesperrt bzw. verhindert, da das Signal RD 50 NA mittels
des Inverters 719 invertiert wird und da das negierte
Signal als ein Eingangssignal dem Verknüpfungsglied 717
zugeführt wird, während die Übertragung des Ausgangssignals
RSTSTD durch das UND-Glied 715 freigegeben ist. Dadurch
wird das Signal RSTSTT für die die nächste Adresse erzeugende
Adressenerzeugungslogik aktiviert. Dadurch wird das
Signal RSTSTT freigegeben, welches den tatsächlichen Zustand
oder den falschen Zustand von CTR 2 L 4 wiedergibt.
Eine Steuerspeicheradresse wird dabei dadurch erzeugt,
daß die NAG-Adressenerzeugungslogik 42 in Verbindung
mit den Adressenleitungen zu dem Steuerspeicher ROS
hin benutzt wird. Die NAG-Logik ist so ausgelegt, daß
die wichtige bzw. zugehörige Informatik von den ausgewählten
CIP-Quellen gesammelt wird, daß diese Information
zu einem nächsten 11-Bit-Adressenfeld (NEXA 00 bis
NEXA 10) gebildet wird und daß das betreffende Adressenfeld
an die entsprechenden Steuerspeicher-ROS-Adressenleitungen
abgegeben wird. Die Auswahl und Weiterleitung
dieser Information wird durch die folgenden sechs
CIP-Verzweigungsinstruktionen ausgelöst und gesteuert:
Unbedingte Verzweigung (BUN), Verzweigung auf Testzustand
hin (BTS), Rückkehr nach Subroutine (RAS), Hauptverzweigung
(BMA), maskierte Verzweigung (BRM) und erweiterte
Maskierungsverzweigung (BRMEX). Sämtliche Verzweigungsinstruktionen
sind in dem RD-Register-Verzweigungsfeld
(RD 37 BR bis RD 40 BR) codiert. Es sei
darauf hingewiesen, daß mit Rücksicht darauf, daß das
RD-Register eine Firmware-Information von dem Steuerspeicher
her aufnimmt, diese Information auch als Steuerspeicherwort
bezeichnet wird. Die Art und Weise, in der
jede Instruktion und die NAG-Logik ihre zugewiesene Aufgabe
ausführen, um eine Steuerspeicheradresse zu bilden,
wird im folgenden beschrieben. Es sei hier darauf hingewiesen,
daß der Begriff Firmware-Seite als ein 128 Wörter
umfassendes Segment innerhalb des Steuerspeichers definiert
ist.
Eine unbedingte Verzweigungsinstruktion (BUN) wird dazu
herangezogen, den nächsten sequentiellen Speicherplatz
in dem Steuerspeicher 10 zu adressieren. Die Firmware
bildet diese Adresse in dem für die nächste Adresse vorgesehenen
RD-Registeradressenfeld (NEXA). Das RD-Register-
Verzweigungsfeld (RD 37 BR bis RD 40 BR) wird für die BUN-Instruktion
auf Null gesetzt. Wenn die NAG-Logik diese
Instruktion decodiert, bleiben die nächsten Adressensteuersignale
(NEXAS 0 und NEXAS 1 ) und das RAS-Instruktionssteuersignal
(NEXRAS) als Null-Signale erhalten.
Dadurch wird eine Null an die Auswahleingangsleitungen
(SEL) der BUN-Multiplexer abgegeben, die in Verbindung
mit der zugehörigen Verknüpfungslogik das obige nächste
Adressenfeld für den Steuerspeicher formulieren und aussenden.
Außerdem werden bei als Null-Signal auftretendem
Steuersignal NEXAS 1 die höchstwertigen vier Bits des
nächsten Adressenfeldes (NEXA 00 bis NEXA 03) in das Seiten-
Auswahlregister 730 auf den positiven Signalsprung
auf der Takteingangsleitung (C) durch das Signal RSPGCK
eingetastet. Das Seitenauswahlregister gibt die Firmware-
Seitennummer in den Steuerspeicher für die anschließende
Verwendung in Verbindung mit der BTS-, BRM- oder BRMEX-
Instruktion ab.
Eine Instruktion (BTS) zur Ausführung einer Verzweigung
auf einen Testzustand hin wird dazu herangezogen, eine
2-Wege-Verzweigung innerhalb einer Firmware-Seite auszuführen.
Dies erfolgt mit dem Bit 9 des nächsten Adressenfeldes
(das ist NEXA 09). Das betreffende Bit 9 beschreibt
den 1/0-Status eines von 32 möglichen Testbedingungen, die
durch die binäre Testlogik 54 ausgewählt werden. Das betreffende
Bit wird dazu herangezogen, die durch Firmware
erzeugte Seitenadresse zu modifizieren, wenn sie im
nächsten Adressenfeld (NEXA) gebildet und an den Steuerspeicher
ausgesendet wird. Das RD-Register-BR-Feld wird
auf eine binäre 1 gesetzt (was bedeutet, daß RD 40 BR eingestellt
ist), und zwar auf die BTS-Instruktion hin. Die
vier Bits höchster Wertigkeit des NEXA-Feldes (RD 41 NA
bis RD 44 NA) müssen einen vier Bit umfassenden Binärwert
enthalten, um die gewünschten Testergebnisse auszuwählen.
Ist die NAG-Logik dieser Instruktion decodiert, tritt
das NEXA-Steuersignal NEXAS 1 tatsächlich auf bzw. als
1-Signal, und die NEXA-Steuersignale NEXAS 0 und NEXAS 1
bleiben als Null-Signale erhalten. Dadurch wird ein Binärsignal
1 auf der Auswahl-(SEL)-Eingangsleitung für den
BTS-Multiplexer eingestellt, und ferner werden das Seitenauswahlregister
und die zugehörige Verknüpfungslogik freigegeben,
um das obige nächste Adressenfeld zu bilden und
an den Steuerspeicher auszusenden.
Die die Rückkehr nach einer Subroutine betreffende Instruktion
(RAS) wird dazu herangezogen, entweder zu einem
ungeraden oder zu einem geraden Steuerspeicherplatz zurückzukehren,
der der Adresse entspricht, die in dem
RSRA-Register aufbewahrt ist, wobei die betreffende Rückkehr
nach der Ausführung einer Firmware-Subroutine erfolgt.
Die Rückkehradresse wird aus dem Rückkehradreßregister 40
erhalten; sie muß in dieses Speicher vor der Ausführung
der Firmware-Subroutine eingespeichert sein. Die Ausführung
der RAS-Instruktion führt zu der Übertragung dieser Adresse
von dem Rückkehradreßregister (RSRA) zu der NAG-Logik, um
das nächste Adressenfeld (NEXA) für die Steuerspeicheradresse
zu bilden. Das RD-Register-BR-Feld wird für die
RAS-Instruktion auf den Binärwert 10 gesetzt. Wenn die
NAG-Logik diese Instruktion decodiert, dann treten die
NEXA-Steuersignale NEXAS 0 und NEXAS tatsächlich auf bzw.
als 1-Signale. Das Steuersignal NEXAS 0 bewirkt das Auftreten
einer binären 2 auf der Auswahl-(SEL)-Eingangsleitung
des RAS-Multiplexers für die sechs Bits niedrigster Wertigkeit
von dem RSRA-Register her (d. h. für RSRA 04) von dem
RSRA-Register über die NAG-Verknüpfungslogik frei. Die
vier RSRA-Register-Bits (RSRA 00 bis RSRA 03) höchster
Wertigkeit sind freigegeben, wenn das Signal RD 39 BR auf
der Auswahl-(SEL)-Eingangsleitung für einen zweiten RAS-
Multiplexer auftritt bzw. als 1-Signal vorhanden ist. Durch
diese Maßnahme wird das NEXA-Format für eine Steuerspeicheradresse
gebildet.
Im Zuge der folgenden Beschreibung der Hauptverzweigungs-
(BMA)-, Maskierungs-Verzweigungs-(BRM)- und erweiterten
Maskierungsverzweigungs-(BRMEX)-Instruktionen sei angenommen,
daß die Prüf- und Seitenauswahl-Register die abgebbaren
Adressendaten enthalten, die zur Bildung eines
nächsten Adressenfeldes (NA) erforderlich sind. Die Instruktionen
BMA, BRM und BRMEX nutzen dieselbe NAG-Logik
aus wie die vorhergehenden drei Instruktionen (das sind
die Instruktionen BUN, BTS und RAS), um ihre nächsten
Adressenfelder zu erzeugen und zu formatieren. Die Firmware
wählt und führt einen der drei Verzweigungsinstruktionen
dadurch aus, daß beide Felder mit dem abgebbaren
Code codiert werden (Instruktion/Datenquelle). Wenn die
NAG-Logik eine Instruktion decodiert, überprüft sie beide
Felder (BR/NA), um den Typ der Verzweigungsinstruktion und
deren Datenquelle zu bestimmen; sie stellt dann die Logik
bzw. Verknüpfungsanordnung ein. Wenn die Firmware beispielsweise
eine BMA-Instruktion auslöst, und zwar unter
Heranziehung des Anfangs-Hauptverzweigungs-PROM-Speichers
708 als Hauptdatenquelle, dann wird das RD-Registerverzweigungsfeld
mit einer binären 5 codiert, und ferner
werden die abgebbaren Bits in dem AN-Feld, wie oben ausgeführt,
auf Null gesetzt. Wenn die NAG-Logik diese Instruktion
decodiert, dann codiert sie (1) eine binäre 3
(NEXAS 1/NEXAS 1 vorhanden bzw. 1) auf der BMA-Multiplexer-
Auswahl-(SEL)-Eingangsleitung für Daten von dem Anfangs-
Hauptverzweigungs-PROM-Speicher, gibt (2) das Ausgangssignal
von dem Seitenauswahlregister (NEXAS 1 vorhanden
bzw. 1) und das Bit 45 (RD 45 NA) von dem RD-Register
(NEXRAS falsch bzw. 0) frei und (3) wählt ENBMA), den
Anfangs-Hauptverzweigungs-PROM-Speicher über das
Signal RD 40 BR+ aus. Dadurch wird das nächste Adressenfeld
für eine Steuerspeicheradresse gebildet, wie dies
bei der vorhergehenden Veranschaulichung des Instruktionsformates
BM-NA gezeigt worden ist. Es sei darauf hingewiesen,
daß der Anfangs-Verzweigungs-PROM-Speicher über
einen Hauptverzweigungs-Decoder 732 ausgewählt wird, der
freigegeben ist, wenn die RD-Register-Bits 41 bis 44 auf
Null gesetzt sind, wie dies oben beschrieben worden ist.
Die maskierten Verzweigungen BRM und BRMEX sind in der
Eigenschaft sehr ähnlich. Der einzigen Unterschied zwischen
den beiden Verzweigungen besteht darin, daß die BRM-Verzweigung
auf den Inhalt des Prüf-Registers 34 gemäß Fig. 7B
basiert, während die BRMEX-Verzweigung, bei der es sich um
die erweiterte Maskierungsverzweigung handelt, auf den
Inhalt des erweiterten Maskierungsverzweigungsregisters 700
basiert, dem als Eingangssignale einige festgelegte CIP-Steuer-
Hardware-Signale zugeführt werden. Für beide Verzweigungen
BRM und BRMEX muß das Signal RD 38 des Registers
38 (RD 38 BR) vorhanden bzw. ein 1-Signal sein, und zur Unterscheidung
zwischen den Verzweigungen BRM und BRMEX ist das
Bit RD 37 für die BRM-Verzweigung abgeschaltet und für die
BRMEX-Verzweigung eingeschaltet. Zum Zwecke einer einfachen
Erläuterung wird lediglich die BRM-Verzweigung hier erläutert,
wobei analoge Ausführungen zu der BRMEX-Verzweigung und für
deren zugehörigen Hardware gelten.
Bei vorhandenem bzw. als 1-Signal auftretendem RD38-Signal
decodiert die Hardware diese Verzweigungsinstruktion als
BRM-Verzweigung. Die BRM-Verzweigung basiert auf den Inhalt
des Prüf-Registers 34, bei dem es sich um ein 16-Bit-Register
handelt, wie dies bereits beschrieben worden ist.
Dieses Register 34 kann als vier Ziffern enthaltend interpretiert
werden, das sind die Ziffern 0, 1, 2 oder 3, wobei
die Ziffer 0 die Bits 0 bis 3 aufweist, während die Ziffer 3
die Bits 12 bis 15 aufweist. Während der Ausführung der
BRM-Instruktion steuern die Bits 39 und 40 der RDBR-Einrichtung
die Ziffernauswahl des Prüfregisters. Wenn beispielsweise
die Signale RD 39 und RD 40 durch Null bzw. 1
gegeben sind, dann würde die Ziffer 1, das sind die Bits 4
bis 7 des Prüf-Registers, für einen Testvorgang ausgewählt
werden. Auf die Auswahl der betreffenden Bits 4 bis 7 für
einen Testvorgang wird, wie der Name sagt, eine Maske
für diese Bits bereitgestellt, um die zu testenden Bits
auszublenden bzw. zu maskieren. Indem diese Bits maskiert
werden können, weist die BRM-Instruktion die Fähigkeit
der Verzweigung auf einer 2-Wege-Verzweigung, auf einer
4-Wege-Verzweigung, auf einer 8-Wege-Verzweigung oder
auf einer vollständigen 16-Wege-Verzweigung auf, sofern
sämtliche vier Bits der betreffenden ausgewählten Ziffer
getestet werden.
Die Maske, welche die zu testenden Bits in dem Prüfregister
steuert, wird durch RD 41 NA bis RD 44 NA bereitgestellt.
Wenn nunmehr beispielsweise die Bits 4 und 5 des
Prüfregisters 34 zu testen wären, dann wären die Bits RD 39 BR
und 40 ein 0-Bit bzw. ein 1-Bit, und die Bits RD 41 NA und 42
wären beide vorhanden bzw. nur 1-Bits, während die Bits 43
und 44 nicht vorhanden bzw. 0-Bits wären. Dies würde zu
einer Maske von 1100, einer Hexadezimal-Adresse (Hex) C
führen, durch die angezeigt wird, daß die Bits 4 und 5 des
Prüfregisters zu testen sind. Dies wird über die Multiplexer
734 und 736 gemäß Fig. 7B bewirkt. Der Multiplexer
734 erhält als Eingangssignal die 16 Bits AR 00 TC bis AR 15 TC,
bei denen es sich um eine grundsätzlich fest verdrahtete
ODER-Funktion entweder der Ausgänge des Prüfregisters 34
oder der Ausgänge des erweiterten Maskierungsverzweigungsregisters
700 handelt. Am Auswahleingang eines derartigen
Multiplexers 734 sind die Bits RD 39 BR und RD 40 BR vorhanden.
Am Ausgang des Multiplexers 734 werden die ausgewählten
vier Bits oder die ausgewählte Ziffer des Prüfregisters
auftreten, und zwar gesteuert durch RD 39 und RD 40.
Die Maske, die in RD 41 NA bis 44 enthalten ist, bewirkt eine
Steuerung dahingehend, ob das aus der Ziffer des Prüfregisters
ausgewählte Bit oder das entsprechende Bit von RDNA 46
bis 49 dazu heranzuziehen ist, das NEXA-Feld für die nächste
Adresse zu erzeugen. Diese Auswahl durch die Maskierung der
entsprechenden Bits in dem hier als Prüfregister bezeichneten
Untersuchungsregister wird durch den Multiplexer 736 gemäß
Fig. 7B ausgeführt. Wie in Fig. 7B veranschaulicht,
wird die Auswahl durch die Bits RD 41 bis RD 44 gesteuert,
und die Auswahl erfolgt zwischen dem Ausgangssignal des
Multiplexers 734, NEXAR 0 bis NEXAR 3, und den entsprechenden
Bits von RD 46 NA bis RD 49 NA. Die entsprechenden Bits
des NEXA-Feldes werden so ausgewählt, daß bei Vorhandensein
bzw. eingestelltem Maskierungsbits das entsprechende
Bit der ausgewählten Ziffer des Prüfregisters dazu herangezogen
wird, das NEXA-Feld zu erzeugen. Wenn die entsprechenden
Bits der Maske in RD 41 NA bis 44 abgeschaltet
sind, dann wird das entsprechende NEXA-Bit aus dem Feld
RD 46 NA bis 49 herangezogen.
Diese vier Bits, die das Ergebnis der BRM- oder BMA-Mikroinstruktionen
sind, werden dazu herangezogen, die Bits
NEXA 05 bis NEXA 08 zu erzeugen. Nimmt man beispielsweise
die Erzeugung von NEXA 05 an, so wäre NEXA 05 vorhanden,
sofern RD 41 NA vorhanden ist, und das ausgewählte Bit der
Ziffer, grundsätzlich NEXARO, wäre vorhanden bzw. ein
1-Bit. Wenn RD 41 NA nicht vorhanden wäre bzw. ein 0-Signal
wäre, würde das Bit RD 46 NA ausgewählt werden, um NEXA 05
zu erzeugen. Dadurch weisen dieser Mikrobefehl BRM ebenso
wie der Mikrobefehl BRMEX die Eigenschaft auf, entweder auf
eine 2-Wege-Verzweigung durch Testen lediglich eines Bits
oder im anderen Extrem auf eine 16-Wege-Verzweigung hin zu
verzweigen, indem sämtliche vier Bits der ausgewählten
Ziffer geprüft werden.
Die erweiterte Maskierungsverzweigung ist der BRM-Verzweigung
sehr ähnlich, allerdings mit der Ausnahme, daß
anstatt der Aufnahme des Ausgangssignals des Prüfregisters
als ausgewählte Ziffer dabei eine Gruppe der
Gruppen von Testbedingungen aus dem erweiterten Maskierungsverzweigungsregister
700 ausgewählt wird. Das Endergebnis
des Multiplexers 736, welches das Ergebnis der
maskierten Verzweigung ist, NEXMK 5 bis NEXMK 8, wird durch
eine Verdrahtungsanordnung einer ODER-Verknüpfung mit
entsprechenden Bits für die Anfangsverzweigung von dem
PROM-Speicher 708 und für die Operationsende-Verzweigung
von dem PROM-Speicher 706 unterzogen. Die Hauptverzweigung
BMA ist ebenfalls den Verzweigungen BRM und
BRMEX ähnlich, allerdings mit der Ausnahme, daß sie eine
Maskierung erfordert, bei der sämtliche Bits RD 41 bis 44
Nullen sind. Die Bits RD 39 und 40 wählen über den Decoder
732 einen von vier möglichen Verzweigungs-PROM-Speicher
für die BMA-Zustände aus, um die nächste Adresse zu
erzeugen. Im Falle des BMA-Zustands handelt es sich dabei
stets um eine unbedingte 16-Wege-Verzweigung. Die Bits
RD 46 NA bis RD 49 NA werden während der BMA-Operation nicht
benutzt. Wenn jedoch weitere Hauptverzweigungsbeindungen
erforderlich wären, könnten diese Bits dazu herangezogen
werden, mehr BMA-Zustände zu codieren.
Nunmehr wird der die Ausführung von Subroutinen betreffenden
Mechanismus der CIP-Einrichtung beschrieben. Gemäß
Fig. 8 nutzt der Hauptleitungsprozeß beginnend im Block 801
die Busroutine in den Blöcken 841, 842, etc. mehrfach aus,
wobei der Hauptleitungsproß in dem Block 871 beginnt.
Um eine Subroutine zwischen zwei oder mehr Hauptleitungs-
Firmwareprozessen mehrfach auszunutzen, ist eine Rückkehradresse
abzuspeichern, bevor zu der Subroutine übergegangen
wird. Diese Firmware-Rückkehradresse wird in dem
Register RSRA 40 unter der Steuerung der Mikroinstruktions-
Aufbewahrungs-Rückkehradresse (SRA) gespeichert, die zur
Taktsteuerung des Registers RSRA 40 benutzt wird. Bei der
Ausführung der SRA-Mikroinstruktionen werden die elf Bits
der nächsten Adresse taktgesteuert in das Register RSRA
eingeführt. Geht man beispielsweise von dem Ablauf aus,
der im Block 801 beginnt, so wird im Block 801 die SRA-
Mikroinstruktion ausgeführt. Diese Mikroinstruktion bewahrt
die Adresse der nächsten sequentiellen Speicherstelle in
der Firmware, beispielsweise die Adresse 400, für den
Block 800 auf, wie dies veranschaulicht ist. Beim
Bock 802 erfolgt je nach Fall eine unbedingte Verzweigung
oder eine Testverzweigung zu der Subroutine
des Blockes 841 hin. Die Subroutine wird nunmehr ausgeführt,
indem im Block 841 begonnen und das zu dem Block
842 weitergegangen wird, etc., bis das Ende der Subroutine
im Block 843 erreicht ist. Sodann wird eine Rückkehr
nach der Subroutinen-(RAS)-Mikroinstruktion ausgeführt,
wie dies im Block 843 veranschaulicht ist. Diese
Mikroinstruktion führt dazu, daß das NEXA-Feld dem Inhalt
des RSRA-Registers entspricht. Während die Rückkehr ausgeführt
wird, da die Adresse 400 im RSRA-Register aufbewahrt
ist, wird das niederwertige Bit der betreffenden
Adresse in dem RSRA-Register mittels des Inverters 880
invertiert, um der Adresse 401 zu entsprechen. Die NEXA-
Adresse entspricht dann dem Speicherplatz 401, und die
Firmware kehrt zu dem Speicherplatz des Blockes 803 zurück,
welcher Speicherplatz die Adresse 401 aufweist. Damit wird
lediglich das niederwertige Bit des RSRA-Registers invertiert,
um zu der entsprechenden Rückkehradressenstelle
nach der Subroutine hin zu gelangen.
In gleicher Analogie führt die im Block 871 beginnende
Firmware-Routine die SRA-Instruktion aus, und der Block 872,
der eine Adresse 503 aufweist, hat eine derartige Adresse
503 in dem RSRA-Register zwischengespeichert bzw. aufbewahrt.
Im Block 872 wird eine unbedingte Verzweigung oder
eine Testverzweigung zu der Subroutine des Blockes 841 hin
vorgenommen. Die Subroutine wird bis zu ihrem Abschluß ausgeführt,
d. h. bis zum Block 843, woraufhin ein nach der betreffenden
Subroutine ablaufender (RAS)-Mikrobefehl ausgeführt
wird. Zu diesem Zeitpunkt enthält das RSRA-Register
die Adresse 503, und das Bit niedriger Wertigkeit, das
Bit 10, des betreffenden Registers ist eine binäre 1, die
in eine binäre 0 invertiert wird, was einer Adresse 502
entspricht. Bei der Ausführung der RAS-Instruktion ist
die Rückkehradresse nunmehr gleich 502, und die Rückkehr
erfolgt zu dem Block 873, der die Adresse 502 aufweist.
Somit wird unabhängig vom Inhalt des RSRA-Registers zum
Zeitpunkt der Ausführung der Rückkehr das Bit niedriger
Wertigkeit des RSRA-Registers invertiert, um den entsprechenden
Rückkehradressenpunkt für die RAS-Mikroinstruktion
zu bilden. Bei einer solchen Ausführung bzw.
Realisierung wird daher das Bit niedriger Wertigkeit für
einen Subroutinen abwickelnden Mechanismus benutzt. Das betreffende
Bit führt zu zwei Adressenpaaren, die die Austrittsstelle
und die Eintrittstelle nach der Ausführung
der Subroutine darstellen. Wenn es erforderlich ist, ein
anderes Bit zu invertieren, so wird das Bit 8 oder das
Bit 9 oder irgendein anderes Gewichtsbit invertiert, solange
ein Bit in invertierter Form vorzusehen ist, um
die beiden entsprechenden Speicherplätze für den die Subroutinen
abwickelnden Mechanismus innerhalb der CIP-Einrichtung
bereitzustellen. Dieser Mechanismus vermeidet
die Verwendung einer Inkrementierungseinrichtung
in der die nächste Adresse erzeugenden Adressenerzeugungslogik.
Die Verwendung einer solchen Inkrementierungseinrichtung
stellt ein herkömmliches Verfahren dar, um
Subroutinen in durch Firmware gesteuerten Maschinen ablaufen
zu lassen. In einer normalen Firmware-Maschine
wird beispielsweise nominell die nächste Adresse inkrementiert,
und dieser inkrementierte Wert wird in einem Rückkehr-
Adreßregister aufbewahrt, wobei dieses Register dazu
herangezogen wird, die Ausführung der betreffenden
Rückkehr nach Ausführung der Subroutinen-Mikroinstruktion
abzuwickeln. Bei der vorliegenden Erfindung ist die
Forderung nach einer derartigen Inkrementierungseinrichtung
vollständig vermieden, weshalb eine Inkrementierungseinrichtung
nicht mehr erforderlich ist für die Adressierung
durch Firmware. Vielmehr ist es lediglich erforderlich,
ein Bit zu invertieren, um den Subroutinen-Mechanismus
wirksam zu machen.
Dieser zur Abwicklung von Subroutinen vorgesehene
Mechanismus kann ferner erweitert werden, um, sofern
erforderlich, eine Verschachtelung von Subroutinen vorzunehmen.
Um den Verschachtelungsmechanismus zu bilden,
wäre eine Datei von RSRA-Registern vorgesehen. Wenn beispielsweise
vier Ebenen von Verschachtelungs-Subroutinen
vorzusehen sind, dann werden vier derartige RSRA-Register
vorgesehen, die innerhalb einer Registerdatei oder in
einer Mikroschaltung enthalten sein könnten, bei der das
letzte eingegebene Signal das erste ausgegebene Signal
ist. Dieser verschachtelten Subroutinen-Registerdatei
wäre ein Zeiger zugehörig, der jedesmal dann inkrementiert
würde, wenn einer Aufbewahrungs-Rückkehradresse bereitgestellt
wird, die auf die letzte gesicherte Rückkehradresse
zeigt, so daß dann, wenn eine Subroutinenrückkehr ausgeführt
wird, zu derselben Ablauffolge bzw. Sequenz
zurückgegangen wird, die festgehalten worden ist.
Der Vorteil der Verwendung des ROS-Seite-Registers 730
liegt darin, daß dadurch vier höherwertige Adressenbits
für die nächste Adresse der Firmware bereitgestellt werden.
Würde das ROS-Seiten-Register weggelassen werden,
so wäre es erforderlich, das Firmware-Wort um vier Bits
zu erhöhen, um die höherwertigen vier Bits der nächsten
Adresse bereitzustellen. Da die vier Bits der nächsten
Adresse gemäß dem Ausführungsbeispiel der vorliegenden Erfindung durch das ROS-
Seitenregister bereitgestellt werden, könne die entsprechenden
vier Bits des RDNA-Feldes, das sind die
Bits RDNA 41 bis RDNA 44, die weitere Steuerung für die
Verzweigungs-Mikroinstruktionen bewirken. So werden
beispielsweise in der BTS-Mikroinstruktion diese Bits
dazu herangezogen, den Zustand zu codieren, der die
Überprüfung in dieser Mikroinstruktion erfordert. Im
Falle der Mikroinstruktionen BRM und BREX stellen diese
Bits, das sind die Bits RDNA 41 bis RDNA 44, die 4-Bit-Maske
bereit, durch die die zu überprüfenden Bits des
Untersuchungs- bzw. Prüfregisters gesteuert werden.
Die Firmware-Seite umfaßt bei der Anordnung gemäß der
vorliegenden Erfindung 128 Wörter, die grundsätzlich aus
den sieben Bits niedriger Wertigkeit der nächsten Adresse
abgeleitet werden, was den Bits RDNA 45 bis RDNA 51 entspricht.
Diese Bits entsprechen ihrerseits den Bits
NEXA 04 bis NEXA 10. Die Firmware wird in Seiten von
128 Wörtern aufgeteilt, wobei die Philosophie dieser
128 Wörter pro Seite darin besteht, daß bei Verzweigungen
wie den Verzweigungen BTS, BRM, BRMEX und BMA, die vier
Bits hoher Wertigkeit des nächsten Adressenfeldes direkt
von den vier Bits des ROS-Seiten-Registers gekoppelt werden.
Da das nächste Adressenfeld elf Bits umfaßt, bleiben
die sieben Bits niedriger Wertigkeit der nächsten Adresse
übrig, die als Ergebnis der Adressenerzeugungslogik entsprechend
diesen Verzweigungsmikroinstruktionen erzeugt
werden. Da die vier Bits hoher Wertigkeit der nächsten
Adresse während der Ausführung dieser Mikroinstruktionen
konstant sind und aus dem ROS-Seiten-Register stammen,
bleiben lediglich sieben Bits übrig, die für die nächste
Adressenerzeugung heranzuziehen bzw. zu manipulieren sind.
Demgemäß entsprechen die sieben Bits den 128 Wörtern der
Adressenbasis, die für diese Mikroinstruktionen manipuliert
bzw. beeinflußt werden kann. Bei der vorliegenden
Anordnung sind beispielsweise 16 derartige Seiten mit
128 Wörtern vorgesehen (2⁷), was zu einer Gesamt-Adressenbasis
von 2048 Wörtern der Firmware führt. Die grundsätzlichen
Einsparungen, die aus der Verwendung des ROS-Seiten-
Registers sich ergeben, liegen darin, daß der Steuerspeicher
nicht erweitert zu werden braucht, um die der
ROS-Speicheradresse entsprechenden Bits und deren nächstes
Adressenfeld einzuschließen. Wenn die Tiefe des Steuerspeichers
beispielsweise entsprechend der in der
CIP-Einrichtung ist, wären zwei gesonderte PROM-Speicherchips
erforderlich, was wesentlich teurer ist als ein
Chip für das ROS-Seiten-Register.
Die Eigenschaft der BRMEX-Instruktion liegt in einer Erweiterung
der maskierten Verzweigungs-(BRM)-Mikroinstruktion.
Normalerweise sorgt die BRM-Mikroinstruktion
für eine Verzweigungseigenschaft unter Bezugnahme auf
mehr als ein Bit zum jeweiligen Zeitpunkt, wobei die betreffenden
Bits aus dem Inhalt des Prüfregisters ausgewählt
werden. Wenn die BRMEX-Eigenschaft nicht vorhanden
wäre und wenn es erforderlich wäre, mehr als eine Verknüpfungsfunktion
gleichzeitig in der Firmware zu testen,
dann wäre es erforderlich, diese Verknüpfungszustände in
das Untersuchungs- bzw. Prüfregister zu laden, von welchem
aus die betreffenden Zustände mittels der BRM-Mikroinstruktion
getestet werden könnten. Dies würde jeweils dann
erfolgen, wenn diese Verknüpfungszustände sich ändern und
getestet werden. Durch die Bereitstellung der BRMEX-Eigenschaft
existiert die Fähigkeit, mehr als eine Funktion
gleichzeitig, beispielsweise bis zu vier Funktionen,
testen zu können, ohne diese in das Untersuchungs- bzw.
Prüfregister laden zu müssen. Diese Verknüpfungsfunktionen
sind systematisch in einer solchen Weise angeordnet, daß
Gruppen von vier Funktionen den verschiedenen Ziffern des
Prüfregisters entsprechen. Diese Gruppen der vier Zustände
werden auf der Grundlage der Auslegung der Anordnung und
auf der Grundlage ihres Bedarfes in derselben Gruppe ausgewählt.
Diese Hardware 16544 00070 552 001000280000000200012000285911643300040 0002003000107 00004 16425-Zustände, die gleichzeitig zu
testen sind, und zwar ähnlich dem Testen von BRM, sind
in der erweiterten Maskierungsverzweigungsverriegelungsschaltung
700 gemäß Fig. 7B verfügbar. Tatsächlich handelt
es sich bei der Verriegelungsschaltung 700 (oder dem betreffenden
Register) um einen Puffer, und zwar insbesondere
um eine sogenannten Tri-State-Puffer, der in drei Zustände
einstellbar ist (was bedeutet, daß der betreffende
Puffer frei hängt und grundsätzlich für Trennzustände
vom Rest der Hardware ausgenutzt wird). Im übrigen
wird der betreffende Puffer für die Auswahl einer
Mikroinstruktion BRMEX oder BRM freigegeben oder gesperrt.
Die Auswahl zwischen dem BRMEX-Puffer 700 und dem BRM-
Prüfregister 34 wird durch das Bit RD 37 BR gesteuert. Das
bestimmte Bit bzw. 1-Bit geht dabei direkt zu der Prüfregister-
Freigabeleitung, und dasselbe Bit RD 37 wird mittels
des Inverters 739 invertiert, wobei das Ausgangssignal
des betreffenden Inverters an den Freigabestift
des BRMEX-Puffers 700 abgegeben wird.
Wie bereits erläutert, erfolgt die Auswahl der Hauptverzweigung
oder der Prüfregister-Verzweigung BRM oder BRMEX
unter der Steuerung der Bits RDNA 41 bis 44. Wenn diese
vier Bits 0 sind, dann ist die BMA-Mikroinstruktion freigegeben.
Diese Null-Detektorlogik ist im Block 731 gemäß
Fig. 7B vorgesehen. Der Decoder 732 wird dazu herangezogen,
die Bits RD 39 und RD 40 auszunützen, die so codiert
sind, daß eine der vier möglichen Hauptverzweigungen ausgewählt
wird. Bei der vorliegenden Anordnung werden lediglich
zwei der vier möglichen Verzweigungen ausgenutzt, nämlich
ENBMA 0 und ENBMA 1. Diese Verzweigungen entsprechen
dem EOP-Hauptverzweigungs-PROM-Speicher 706 bzw. dem Anfangs-
Hauptverzweigungs-PROM-Speicher 708.
Gemäß Fig. 7c sei im Hinblick auf die Beschreibung des
Zählers 1, der im einzelnen veranschaulicht ist, erwähnt,
daß die Ausgangssignale CTR 100 bis CTR 107 des betreffenden
Zählers 1 dem PROM-Chip 47 zugeführt werden. Dieses PROM-
Chip führt ausgangsseitig die Zustände des Zählers 1, die
gleich Null sind (CRT 1 E 0), die kleiner sind als 2 (CRT 1 L 2)
bzw. die kleiner sind als 4 (CTR 1 L 4). Dieses PROM-Chip ist
für jeden der anderen beiden Zähler doppelt vorgesehen,
nämlich für den Zähler 2 (48) und den Zähler 3 (50).
Grundsätzlich übernimmt das PROM-Chip sämtliche acht
Bits der Zähler und decodiert sie, um zu bestimmen, ob
ihre Werte gleich 0, kleiner als 2, kleiner als 4 oder
im Falle des Zählers 3 kleiner als 8 sind. Ein Grund für
die Ausnutzung eines PROM-Chips für diese Verknüpfung anstelle
einer typischen Gatteranordnung besteht darin,
daß dadurch physikalischer Raum gespart wird. Wenn diese
Decodierlogik durch Verwendung von typischer Hardware bereitgestellt
wäre (d. h. durch integrierte Schaltungen mit
kleinem Integrationsfaktor, wie UND- und ODER-Glieder),
dann wären etwa drei Verknüpfungschips pro Zähler erforderlich,
um die betreffenden Werte zu decodieren. Durch
die Verwendung des PROM-Chips für diese Decodierung ist
ein erheblicher Teil an Vermögen (physikalischer Raum) ein
gespart worden.
Fig. 7A veranschaulicht die End-Auswahl der Bits NEXA 00
bis NEXA 10, die über die ROS-Adresseneinrichtung 710 zu
dem Steuerspeicher 10 hin geleitet werden. Die Steuerfunktionen
NEXAS 0 und NEXAS 1, die in weitem Umfang in
der Verknüpfungsanordnung gemäß Fig. 7A benutzt werden,
werden unter Bezugnahme auf die in Fig. 9 dargestellte
Wertetabelle erläutert. Die in Fig. 9 dargestellte Wertetabelle
veranschaulicht die Erzeugung der beiden Steuerfunktionen
NEXAS 0 und NEXAS 1. In dieser Wertetabelle enthält
die zweite Spalte die verschiedenen Werte der Bits
RD 38 BR bis RD 40 BR. Die Spalte 3 enthält die möglichen
Codes für die Steuersignale NEXAS 0 und NEXAS 1 und die
entsprechenden Mikroinstruktionen, die erzeugt werden.
So ist beispielsweise das Signal NEXASA vorhanden bzw.
ein 1-Signal, wenn das Bit RD 38 BR vorhanden bzw. ein 1-Bit
ist oder wenn das Bit RD 39 BR vorhanden bzw. ein 1-Bit ist.
Dies entspricht den in der Spalte 3 dargestellten Codes
für 100, 101, 110 und 111 und außerdem für 010 und 011.
Die ersten vier Codes, die mit 100 beginnen, bis 111,
werden für die drei Mikroinstruktionen BRM, BRMEX und
BMA erzeugt, und der Code 010 wird für die Mikroinstruktion
RAS erzeugt. Für diese vier Instruktionen BRM,
BRMEX, BMA und RAS ist das Signal NEXAS 0 vorhanden bzw.
ein 1-Signal. Das negierte NEXAS 0-Signal ist vorhanden
bzw. ein 1-Signal für die beiden Codes 000 oder 001. Dies
entspricht den Mikroinstruktionen BUN bzw. BTS.
Nunmehr wird eine entsprechende Erläuterung bezüglich der
Erzeugung des Signals NEXAS 1 gegeben. Das Signal NEXAS 1
ist vorhanden bzw. ein 1-Signal, wenn das Bit RD 38 BR vorhanden
ist bzw. ein 1-Bit ist oder wenn das RD 40 BR-Bit
vorhanden bzw. ein 1-Bit ist. Dies entspricht den Codes 100
bis 111 und 001 sowie 011. Die ersten vier Codes entsprechen
der Mikroinstruktion BRM, BRMEX und BMA. Der
Code 001 entspricht der Mikroinstruktion BTS. Es sei darauf
hingewiesen, daß der Code 01 überhaupt nicht benutzt wird.
In entsprechender Weise tritt das negierte Signal NEXAS 1
für den Code 000 oder 010 auf bzw. als Verknüpfungssignal 1,
was den Mikroinstruktionen BUN bzw. RAS entspricht.
Diese Funktionen NEXAS 0 und NEXAS 1 werden zusammen mit
ihren Negationen, den negierten Funktionssignalen NEXAS 0
und NEXAS 1 in weitem Umfange dazu herangezogen, die Multiplexerauswahl
gemäß Fig. 7A zu steuern. Eine detaillierte
Erläuterung der Fig. 7A wird nunmehr vorgenommen, in der
die Erzeugung der Signale NEXA 00 bis NEXA 10 veranschaulicht
wird, die für die Steuerspeicheradressierung herangezogen
werden.
Die vier Bits NEXA 00 bis NEXA 03 hoher Wertigkeit weisen
eine Möglichkeit von drei Eingangssignalen auf, wobei
diese Eingangssignale entweder direkt von RD 41 NA bis
RD 44 NA oder von dem ROS-Rückkehradreßregister RSRA 00
bis RSRA 03 her und letztlich von dem ROS-Seiten-Register
RSPG 00 bis RSPG 03 stammen können. Die Auswahl
von RD 41 NA bis RD 44 NA trifft für die Mikroinstruktion BUN
zu, bei der es sich um die unbedingte Verzweigung
handelt, wodurch die Daten direkt aus dem ROS-Datenregister
entnommen werden. Die Auswahl der Signale RSRA 00
bis RSRA 03, d. h. von dem ROS-Rückkehr-Adreßregister,
trifft für die Mikroinstruktion ROS zu. Die Auswahl der
Signale bzw. Bits RSPG 00 bis RSPG 03, d. h. des ROS-Basisregisters,
trifft für alle übrigen Mikroinstruktionen zu,
die die Instruktionen BRM, BRMEX und BMA sind. Die Auswahl
zwischen RD 41 NA bis RD 44 NA und RSA 00 bis RSRA 03
erfolgt über den Multiplexer 712. Die Auswahl von RD 41
bis RD 44 wird für die Mikroinstruktion BUN vorgenommen,
was durch das negative Signal RD 39 BR gesteuert wird. Wenn
das Signal RD 39 BR positiv ist, d. h., daß es auftritt, dann
wird das Ausgangssignal des Multiplexers von dem ROS-Rückkehr-Adreßregister
ausgewählt. Das Ausgangssignal dieses
Multiplexers wird mit NART 00 bis NART 03 bezeichnet. Die
Endauswahl von NART 00 bis NART 03 und RSPG 00 bis RSPG 03
erfolgt über die Freigabeleitungen in dem Multiplexer 712
und über das Register 730, bei dem es sich um das früher
bereits erläuterte ROS-Seiten-Register handelt.
Zurückkommend auf Fig. 9, in der die Wertetabelle gezeigt
ist, sei angemerkt, daß diese Wertetabelle veranschaulicht,
daß NEXAS 1 vorhanden bzw. ein 1-Signal ist, was
den Mikroinstruktionen BTS, BRM, BRMEX oder BMA entspricht,
während das Vorhandensein des negierten Signals
NEXAS 1 den Mikroinstruktionen BUN oder RAS entspricht. Damit
steuert das Signal NEXAS 1 die Freigabe und Sperrung
des Multiplexers 712 und des Registers 730. Wenn das
Signal NEXAS 1 vorhanden ist, d. h. eine 1 ist, was bedeutet,
daß entweder eine Instruktion BTS, BRM oder BRMEX verarbeitet
wird, dann ist das ROS-Seiten-Register 730 durch
die einen negativen Wert annehmende Funktion NEXAS 1 (negativ)
freigegeben. Wenn das Signal bzw. die Funktion NEXAS 1
(negativ) vorhanden ist, was den Mikroinstruktionen BUN
oder RAS entspricht, dann gibt das negative Signal
NEXAS 1 den Multiplexer 712 frei. Die Ausgänge der
Elemente 712 und 730 sind durch Verdrahtung entsprechend
einem ODER-Glied miteinander verbunden, und das End-
Ausgangssignal bilden die vier Bits niedriger Wertigkeit
der nächsten Adresse, das sind die Bits NEXA 00 bis NEXA 03.
Das Signal NEXA 04 wird durch die beiden UND-Glieder 714
und 716 gesteuert. Die Ausgangssignale dieser UND-Glieder,
nämlich NEXA 04 B bzw. NEXA 04 A, bilden durch oder-
mäßige Verdrahtung der betreffenden Verknüpfungsausgänge
die Adresse NEXA 04. Die beiden möglichen Quellen der
Adresse NEXA 04 sind entweder das ROS-Rückkehr-Adreßregister
oder unmittelbar das ROS-Datenregister RD 45 NA.
Das Bit 4 des ROS-Rückkehr-Adreßregisters RSRA wird durch
die Funktion NEXAS freigegeben, die für die RAS-Mikroinstruktion
erzeugt wird. Wenn die Funktion bzw. das Signal
NEXRAS vorhanden ist bzw. als 1-Signal vorliegt, dann
folgt das Ausgangssignal des UND-Gliedes NEXA 04 B dem
Inhalt des RSRA-Bits 4; es wird dazu herangezogen, das
Ausgangssignal NEXA 04 zu erzeugen. Demgegenüber wird in
dem Fall, daß das negierte Signal NEXRAS vorhanden ist,
das Ausgangssignal NEDA 04 A freigegeben; es folgt im Inhalt
von RD 45 A. Diese beiden fest verdrahteten ODER-Funktionen
NEXA 04 A und NEXA 04 B bilden zusammen das Bit NEXA 04 der
nächsten Adresse.
Die Steuerung der letzten sechs Bits niedriger Wertigkeit
der nächsten Verknüpfungsadresse, das sind die Bits NEXA 05
bis NEXA 10, wird über den Multiplexer 718 vorgenommen.
Dieser Multiplexer ist ein 1-aus-4-Multiplexer; er wird
über die beiden Steuerleitungen NEXAS 0 und NEXAS 1 gesteuert,
die die Werte 00, 01, 10 bzw. 10 aufweisen
können. Diese Werte sind in dem Diagramm des Multiplexers
718 als Auswahlcode 0, Auswahlcode 1, Auswahlcode 2 bzw.
Auswahlcode 3 angedeutet. Der Auswahlcode 0 liegt in dem
Fall vor, daß das negierte Signal NEXAS 0 vorhanden ist
und daß das negierte Signal NEXAS 1 vorhanden ist. Dies
entspricht dem Fall der BUN-Mikroinstruktion, bei der
es sich um eine unbedingte Verzweigung handelt. In diesem
Falle wird der Inhalt von RD 46 NA bis RD 51 NA, bei dem es
sich um einen Inhalt direkt aus dem Steuerspeicherwort
handelt, am Ausgang freigegeben, um die Signale NEXA 05
bis NEXA 10 zu bilden. Der nächste Fall liegt dann vor,
wenn das Signal "Auswahl 1" vorhanden ist, was bedeutet,
daß das negierte Signal NEXAS 0 vorhanden ist und daß das
Signal NEXAS 1 vorhanden ist. In diesem Falle ist die
BTS-Mikroinstruktion freigegeben. Im Falle der BTS-Mikroinstruktion
sind die sechs Leitungen, bei denen es sich
um die Leitungen RD 46 NA bis RD 49 NA handelt, und das End-
Ausgangssignal des Test-Multiplexers 712, wie in Fig. 7E
veranschaulicht, als Ausgangssignal der odermäßig verdrahteten
Ausgänge der Elemente 715 und 717 zusammen mit
dem Signal RD 51 NA in der betreffenden Reihenfolge freigegeben
an den Ausgängen NEXA 05 bis NEXA 10.
Die Auswahl 2, die dann vorliegt, wenn irdendeines der
NEXAS 0-Signale vorhanden ist und wenn das negierte Signal
NEXAS 1 vorhanden ist, entspricht der Mikroinstruktion RAS,
bei der es sich um die Rückkehr-Mikroinstruktion nach
Ausführung einer Subroutine handelt. In diesem besonderen
Falle werden die Bits 05 bis 09 des ROS-Rückkehr-Adreßregisters
und das negierte Ausgangssignal des ROS-Rückkehr-
Adreßregisters RSRA 10 an den Ausgängen NEXA 05 bis
NEXA 10 freigegeben. Das Endauswahl-Ausgangssteuersignal 3
liegt in dem Fall vor, daß die beiden Signale NEXAS 0 und
NEXAS 1 vorhanden sind bzw. als 1-Signale vorliegen. Dies
ist der Fall für die Mikroinstruktionen BRM, BRMEX und
BMA. In diesem Falle sind die Signale NEXM 05 bis NEXM 08,
bei denen es sich um die Ausgangssignale des Multiplexers
736 gemäß Fig. 7B handelt, zusammen mit den Signalen RD 50 NA
und RD 51 NA an den Ausgängen NEXA 05 bis NEXA 10 freigegeben.
Somit steuert der Multiplexer 718 das Ausgangssignal für
NEXA 05 bis NEXA 10 für die nächste Adressenerzeugung.
Schließlich werden diese elf Bits NEXA 00 bis NEXA 10 von der
ROS-Adresse, wie dies im Block 710 angegeben ist, an den Steuerspeicher
zur Vervollständigung der nächsten Adresse abgegeben.
Claims (9)
1. Mikroprogrammadressierungseinrichtung in einem Datenverarbeitungssystem
mit einer Verknüpfungseinrichtung
(12), die Verknüpfungsoperationen anhand von Daten
ausführt, wobei diese Verknüpfungsoperationen eine
erste und eine zweite Mikroprogramm-Routine umfassen,
mit einer Steuerspeichereinrichtung (10) mit einer
Vielzahl von eingespeicherten Mikroinstruktionen,
die die betreffende Verknüpfungseinrichtung (12) zur
Ausführung der betreffenden Operationen in eine durch
die betreffenden Mikroinstruktionen festgelegten Weise
freizugeben gestatten, mit einer Adreßerzeugungseinrichtung
(42), welche die Steuerspeichereinrichtung
(10) zu adressieren gestattet, mit einem Steuerspeicherdatenregister
(38),
mit einer
Unterbrechungseinrichtung (54), welche die Ausführung
der ersten Mikroprogramm-Routine zum Zwecke der Ausführung
der zweiten Mikroprogramm-Routine zu unterbrechen
gestattet, und mit einer Sicherstellungseinrichtung
(40), die eine Adresse (RSRA) sicherzustellen
gestattet, welche der letzten Mikroinstruktion
der ersten Mikroprogramm-Routine zugehörig ist,
wobei die betreffende Adresse
eine Vielzahl von Bits umfaßt, deren jedes entweder
einen ersten Zustand oder einen zweiten Zustand aufweist,
gekennzeichnet durch
das Vorsehen einer
Zustandsänderungseinrichtung (880),
die bei Rückkehr von der
zweiten Mikroprogramm-Routine zur Wiederaufnahme der
Ausführung der unterbrochenen ersten Mikroprogramm-
Routine den Zustand eines Bits der betreffenden
Bits der der betreffenden letzten Mikroinstruktion
zugehörigen Adresse zu invertieren gestattet, bevor zu
der Ausführung der ersten Mikroprogramm-Routine zurückgekehrt
wird.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
das betreffende eine Bit das Bit niedrigster Wertigkeit
der die Adresse bildenden Bits ist.
3. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die zweite Mikroprogramm-Routine eine Subroutine ist, die von der
ersten Routine und anderen Routinen mehrfach ausnutzbar
ist.
4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die Sicherstellungseinrichtung (40) ein Register ist.
5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die Zustandsänderungseinrichtung (880) zur Änderung des Zustands
des betreffenden einen Bits ein Inverter ist.
6. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die Sicherstellungseinrichtung (40) und die Zustandsänderungseinrichtung
(880) derart miteinander verbunden sind, daß die
durch die betreffende Sicherstellungseinrichtung tatsächlich
aufbewahrte Adresse die Adresse der der betreffenden
letzten Instruktion folgenden nächsten
Instruktion ist.
7. Einrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß die Sicherstellungseinrichtung (40) ein Register mit
einer Vielzahl von Bitpositionen ist, daß die Zustandsänderungseinrichtung
(880) ein Inverter ist und daß
eine Verbindungseinrichtung vorgesehen ist, welche
den Inverter mit einer Stelle des betreffenden Registers
verbindet, derart, daß der Zustand des betreffenden
einen Bits änderbar ist.
8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß jede Registerstelle des betreffenden Registers
einen Eingang und einen Ausgang aufweist und daß der
Inverter mit der Eingangsseite des betreffenden Registers
verbunden ist.
9. Einrichtung nach Anspruch 7, dadurch gekennzeichnet,
daß jede Registerstelle des betreffenden Registers
einen Eingang und einen Ausgang aufweist und daß der
betreffende Inverter mit der Ausgangsseite verbunden
ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/000,734 US4309753A (en) | 1979-01-03 | 1979-01-03 | Apparatus and method for next address generation in a data processing system |
US06/000,864 US4224668A (en) | 1979-01-03 | 1979-01-03 | Control store address generation logic for a data processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3000107A1 DE3000107A1 (de) | 1980-07-17 |
DE3000107C2 true DE3000107C2 (de) | 1988-06-01 |
Family
ID=26668073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19803000107 Granted DE3000107A1 (de) | 1979-01-03 | 1980-01-03 | Datenverarbeitungsanordnung und bei dieser verwendbarer datenprozessor |
Country Status (4)
Country | Link |
---|---|
CA (1) | CA1138118A (de) |
DE (1) | DE3000107A1 (de) |
FR (1) | FR2445987B1 (de) |
GB (2) | GB2040519B (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4491908A (en) * | 1981-12-01 | 1985-01-01 | Honeywell Information Systems Inc. | Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit |
US4450525A (en) * | 1981-12-07 | 1984-05-22 | Ibm Corporation | Control unit for a functional processor |
-
1979
- 1979-12-13 GB GB7942984A patent/GB2040519B/en not_active Expired
-
1980
- 1980-01-02 CA CA000342927A patent/CA1138118A/en not_active Expired
- 1980-01-02 FR FR8000039A patent/FR2445987B1/fr not_active Expired
- 1980-01-03 DE DE19803000107 patent/DE3000107A1/de active Granted
-
1983
- 1983-01-25 GB GB08302033A patent/GB2117943B/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
CA1138118A (en) | 1982-12-21 |
GB2040519A (en) | 1980-08-28 |
GB2040519B (en) | 1983-08-17 |
GB8302033D0 (en) | 1983-02-23 |
DE3000107A1 (de) | 1980-07-17 |
GB2117943A (en) | 1983-10-19 |
FR2445987B1 (fr) | 1985-11-22 |
FR2445987A1 (fr) | 1980-08-01 |
GB2117943B (en) | 1984-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2846495C2 (de) | Zentraleinheit | |
DE2316296C2 (de) | Mikroprogrammierbarer Prozessor | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2357003A1 (de) | Programmierbarer prozessor | |
DE2517276A1 (de) | Datenverarbeitungssystem | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2524046C2 (de) | Elektronische Datenverarbeitungsanlage | |
DE3131341A1 (de) | "pufferspeicherorganisation" | |
DE2806024A1 (de) | Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit | |
DE3121742C2 (de) | Mikroprogramm-Steuereinrichtung | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE69315192T2 (de) | Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register | |
DE2906685C2 (de) | ||
DE2830334C2 (de) | ||
DE2948442C2 (de) | Digitalrechenanlage | |
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
DE3000107C2 (de) | ||
DE2854400A1 (de) | Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen | |
DE2952072C2 (de) | Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8125 | Change of the main classification |
Ipc: G06F 9/30 |
|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |