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
Application number
DE3000107A
Other languages
German (de)
Other versions
DE3000107A1 (en
Inventor
Virendra S. Pepperell Mass. Us Negi
Arthur Sudbury Mass. Us Peters
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/000,734 external-priority patent/US4309753A/en
Priority claimed from US06/000,864 external-priority patent/US4224668A/en
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE3000107A1 publication Critical patent/DE3000107A1/en
Application granted granted Critical
Publication of DE3000107C2 publication Critical patent/DE3000107C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation 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.The present invention relates to a microprogram addressing device according to the preamble of claim 1, in a data processing system with a Linking device, the link operations based on of data, these linking operations being a include first and second microprogram routines and ensuring that addresses are the most recent Microinstruction of the first microprogram routine mentioned are associated.

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.For microprogram control of data processing systems control memories are used in many cases, the sequence of operations through in it in the form of so-called firmware stored microinstruction words is controlled. In one Firmware are various main routines and beyond Subroutines that are shared by the main routines can contain. Is switched from a main routine to a subroutine or must interrupt a routine for some reason the address of the next memory location or of the next command in such a routine to ensure to later on the command of the routine that is no longer executed has been able to return.

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.According to the state of the art, for example in the US company publication from Advanced Micro Devices "Microprogramming Handbook "1976, pages 1-1 to 1-15 and pages 2-11 to 2-15  an address incrementing device is used for this purpose and a return address register. With help this embodiment is when a subroutine entry is executed the incremented address in the return address register as address for the control memory to return from the Subroutine saved. It can be seen that this is known Set up an elaborate increment and associated Control logic requires that - although appropriate - however takes up a significant amount of space and increases overall Manufacturing costs leads.

Der Erfindung liegt demzufolge die Aufgabe zugrunde, die Erzeugung der Rückkehradressen aus Subroutinen zu vereinfachen.The invention is therefore based on the object, the generation to simplify the return addresses from subroutines.

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.The above task is solved by a microprogram addressing device according to the preamble of the claim 1 in such a way that a state changing device is provided when returning from the second microprogram routine to resume execution of the interrupted first microprogram the state of a bit of the concerned Bits belonging to the last microinstruction concerned Invert address allowed before execution the first microprogram routine is returned.

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.With the help of this invention in a data processing system, its sequence of operations by stored in a control memory Microinstructions, for example in the form of firmware, is controlled, a simplified one for the return to a briefly interrupted routine and improved practice applied. The address the last microinstruction that was given before such a routine such a program interruption is saved, thereby later returning to the routine in question is that you use the stored address in question, but with a bit of this address in terms of its state  Inversion is changed.

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.The control store is based on the content of the control store words as well as on the basis of other input signals depending on in the central processor executed operations addressed. The next address will be generated by an address generation logic. It is it is important to address the control memory at the same time the status of more than one test condition (e.g. conditional Jump) is used and taken into account. Wouldn't you can take into account in an appropriate manner, it would be necessary each of the status or test states, for example, accordingly to load clock-controlled into a register. This would always be necessary when these test conditions change. So it is desirable to test several such functions at the same time, without having to load them into a clock-controlled register. For realization this desirable function includes the address generation logic a multiplexer with multiple signal inputs. One the multiplexer takes the input signals from a locking mechanism forth on what is the simultaneous exploitation of more than allows a test condition for addressing the control memory. By using further input signals on the multiplexer the control store can use branch address information and further test status information can be addressed. A page register provides the page address for a multitude of pages contained in the control memory thereby addressing the memory locations in each such page that the multiplexer-signal combination mentioned above is used becomes. By providing the ability to do more than one test condition The addressing of the control memory can be taken into account done faster, and accordingly the overall performance of the data processing system increased.

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. In the exemplary embodiment of a microprogram addressing device described below includes the data processing system a control store with a variety  of storage spaces, each for storing a Control word is used to control the operation of the processor is used. It is also an arrangement for recording a variety of signals provided or included, which are characteristic for the status information of the data processor. Furthermore the arrangement in question serves to receive an instruction or an instruction, the or the characteristic is for the address information that is used to address the Tax memory is used. It is also an arrangement to accommodate a first selected part an addressed control word of the control words. A first multiplexer arrangement is also provided that has an output. This first Multiplexer arrangement gives the output of signals on your Output free, which are characteristic of the status information the first selected part of the addressed control word of control words. Furthermore, an arrangement for the Decoding of the information provided by the command receiving arrangement is recorded, the recorded The command is characteristic of such address information. A third arrangement is also provided, which either the signals of the first selected part at the output the first multiplexer arrangement or that of the arrangement selects information recorded for decoding. Furthermore is a second multiplexer arrangement with an output and a variety of inputs provided, one of which first input is connected to the selection arrangement and a second entrance of which a selected part an addressed control word of the control words from the Control store fed here receives. It is also an arrangement for addressing the control memory by means of a of the input signals provided by the second multiplexer arrangement be included.  

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.The data processing system contains a link arrangement to perform link operations for dates. These operations close execution a first routine and a second routine a. Furthermore, a storage device with a Large number of stored instructions or commands provided, which are used to the Link arrangement for performing such operations in one by the relevant instructions or to release commands in a certain way. Besides, is an addressing device for addressing a provided such storage device. In the link arrangement an arrangement is included that for Execution of such routines serves. Furthermore, one Arrangement provided that the execution of the first routine interrupts to execute the second routine. Finally, an arrangement is provided that a Allow address to be retained which is the last command which command belongs to the first routine at the time of the interruption of execution of the concerned first routine was executed. Such one Address includes a variety of bits, each have a first state or a second state. Furthermore, an arrangement is provided, the state allowing such a bit of the address to be changed, associated with the last command, the one in question Change before the return to the execution of the first routine is done so that the next command of such a first routine is addressed to the relevant last command follows the first routine.

Anhand von Zeichnungen wird eine Ausführungsform der Erfindung nachstehend beispielsweise näher erläutert.An embodiment of the invention will be described below with reference to drawings for example explained in more detail.

Fig. 1 zeigt die Gesamtsystemkonfiguration, die die vorliegende Erfindung einschließt. Fig. 1 shows the overall system configuration including the present invention.

Fig. 2 zeigt ein Operationsfolgenzustandsdiagramm des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.2 shows an operational sequence state diagram of the processor according to the embodiment of the present invention.

Fig. 3 zeigt in einem Blockdiagramm den Prozessor nach dem Ausführungsbeispiel der vorliegenden Erfindung. Fig. 3 shows a block diagram of the processor according to the embodiment of the present invention.

Fig. 4 veranschaulicht den Inhalt eines der Register des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung. Fig. 4 illustrates the contents of the registers of the processor according to the embodiment of the present invention.

Fig. 5 zeigt in einem detaillierten Blockdiagramm ein Rechenwerk des Ausführungsbeispiels der vorliegenden Erfindung. Fig. 5 shows in a detailed block diagram of an arithmetic unit of the embodiment of the present invention.

Fig. 6 veranschaulicht einen Teil des Inhalts des Steuerspeicherwortes, welches in Verbindung mit der vorliegenden Erfindung benutzt wird. Figure 6 illustrates part of the contents of the control store word used in connection with the present invention.

Fig. 7A bis 7F veranschaulichen Einzelheiten der die jeweils nächste Adresse erzeugenden Adressenerzeugungslogik gemäß dem Ausführungsbeispiel der vorliegenden Erfindung. FIG. 7A to 7F illustrate details of the respective next address generating address generation logic in accordance with the embodiment of the present invention.

Fig. 8A und 8B veranschaulichen Einzelheiten einer Subroutinen- Logik gemäß dem Ausführungsbeispiel der vorliegenden Erfindung. FIGS. 8A and 8B illustrate details of a Subroutinen- logic according to the embodiment of the present invention.

Fig. 9 veranschaulicht in einer Wertetabelle die Operation der in Fig. 7A dargestellten Logik. Figure 9 illustrates in a table of values the operation of the logic shown in Figure 7A.

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.The overall configuration of the data processing system shown in FIG. 1, which comprises the microprogram addressing device according to the invention, shows a central processing unit CPU 11 , a commercial instruction processor 13 , which is abbreviated to CIP (Commercial Instruction Processor), a control device 15 and a memory 17 , all via one System bus line 19 are interconnected. The commercial instruction processor 13 is provided to expand the CPU instruction set with further instructions of a commercial type, for example with alphanumeric instruction types, sorting, data conversion, processing instructions, etc.

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. The commercial instruction processor receives the information from the Central unit and from the main memory and processes them in one logical consequence. Four CIP operating states occur as follows open: idle state, charge state, busy state and not programmed Jump state.  

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.The recording any commercial command by the CIP facility usually takes place simultaneously with the central unit, because this fetches every command from the main memory and decoded. Execution of the command in the CIP facility takes place asynchronously with the central unit Operations. Any attempt to run a commercial Command in the event that a CIP device in the System is not installed, the central unit causes to enter a certain non-programmed jump state.

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).As shown in FIG. 2, the CIP enters block 200 and remains idle (block 202 ) when no information processing is taking place; it must be in the idle state in order to receive a command or a command (ie a CIP instruction or an input / output command) from the central unit. Upon receipt of a command (block 204 ), if valid (block 205 ), the CIP device will enter the state of charge (block 206 ) and remain in the relevant state of charge until the entire associated command information has been recorded. If this information is successfully received (block 208 ), the CIP enters the busy state (block 210 ) to process the information. Any further attempts on the part of the central unit to enter into data exchange with the CIP device while the latter is in the busy state will not be acknowledged by the CIP device, and not until the latter returns to the idle state. CIP setup processing involves data exchange activity with main memory; this activity occurs when the required operand (s) are picked up. The CIP device only enters the non-programmed jump state (block 212 ) when special impermissible events occur (block 214 ), such as the determination of an impermissible operand length or an out-of-sequence command. The return to hibernation is made when the operation has completed (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.All associated or significant instruction transfers to the CIP facility are shared by the Central unit and the CIP device executed. The relevant instructions are decoded and processed by the CPU unit to the CIP device along with the whole associated information sent out for the Execution of the relevant instruction is required. When the information transfer is complete, place the central processing unit and the CIP device the processing of their corresponding instructions. Any CIP Instruction contains a 16 bit instruction word, which immediately up to six additional words from Description type (also with a width of 16 bits) follow, so-called data descriptors or labels. The instruction word contains the CIP operation code, which is sent to the CIP facility for processing becomes. The data descriptors describe the operand type,  the size and space in memory; the Tag provides the address of a remote data descriptor. Both the data descriptor and the label become processed by the central unit; one related to it standing information through this process is obtained or derived like an operand type and a memory address are sent to the CIP device sent out for processing. The central unit completed the procedure in that the operation code examines or analyzes the one contained in each instruction is. If the central unit has a CIP instruction notes (which means that the CIP facility in Is idle), then the central unit sends the Instruction opcode and the associated or so related information in the following Way out: (i) The central processing unit sends to the CIP device the opcode (i.e. the first word of the commercial instruction). The CIP establishment enters the state of charge when it accepts the opcode; (ii) the central unit calls the first data descriptor and queries the address syllable to find the generate effective address; (iii) the central unit sends the following information: The 24 bit effective byte address of the first operand, the content of the associated CPU data register, if applicable, and the data descriptor of the first operand that is updated is that it is a byte (8 bits) or nibble (4 bits) digit position within a word reproduces; when the second and third operand occurred are, the central unit carries out the appropriate Procedures in steps ii and iii.

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.At this point, the CIP device is loaded with all of the information required to execute the commercial instruction and also enters the busy state to execute the instruction. If necessary, the CIP device enters into direct data exchange with the main memory in order to obtain the applicable operand or operands. However, it should be noted that the CIP never accesses any of the CPU registers directly. It only uses the information that is sent to it by the central unit. With this, no CPU registers are modified by the CIP device, and the central processing unit continues processing the next and each subsequent CPU command until one of the following conditions occurs: (i) The CIP device shares an unprogrammed one Jump unit (TV) of the central unit with the fact that an illegal event has occurred during the execution of the commercial instruction currently running, or (ii) an internal or external interrupt signal is determined by the central unit.

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.If the CPU detects an interrupt signal the central unit performs the following operations out. The central unit concerned determines whether the last commercial instruction from the CIP facility has been completed or not. The central unit waiting for the last commercial instruction to finish. When the last commercial instruction is completed the central unit determines whether this is led to a non-programmed jump request Has. If this was the case, then consider the Central unit the non-programmed jump request before executing the interruption. this leads to a typical contextual retention / restoration Operation to get all relevant CPU and CIP status Store information that is needed. With the Completion of the required CPU operations for processing a CIP jump request or if none There is a jump request and a CIP instruction for  the processing is available, the central unit performs following operations. The central unit updated their program counter to go to the commercial Show instructions that she tried to trigger. The central unit postpones the attempt at processing the commercial instruction until the present interruption is served. The person in question Central unit takes into account and serves the by a external interruption caused.

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.When the CIP device executes an instruction, can all CPU registers, including those registers by the current commercial command or the relevant instruction is referenced by a Program can be changed via the CPU instructions. The However, software needs the operand for a commercial one Instruction not to be modified until the CIP device the processing of the relevant instruction executed. Otherwise, unspecified results occur. The ones included in the CIP instruction repertoire Branch instructions are issued by the central processing unit and executed synchronously by the CIP device.

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). The three data types that make up the data words that processed by the CIP facility are alphanumeric Data, binary data and decimal data. Any data type is classified in binary information units. By defining this unit, if by reference the alphanumeric and binary data characters are used given by eight bits (one byte); at Use to refer to decimal data they are four bits (nibbles) for packed decimal data and eight bits (one byte) for string decimal data. Include single precision binary numbers also two units (two bytes), and binary numbers double precision is four units (four 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.In Fig. 3 is a main block diagram of the commercial instruction processing processor 13 according to the present invention is illustrated, wherein all of the main data-transfer paths are illustrated between the registers of the processor.

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.Control store 10 includes a plurality of memory locations, one for each control store or firmware word. These firmware words directly or indirectly control the processor sequences, the data transfer paths and the bus operations.

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.The operand register files and the arithmetic and logic unit (RALU) 12 mainly comprise two register files, an arithmetic logic unit (ALU) and the associated multiplexers and control registers. The unit 12 also includes the operand register files ( RP 1 and RP 2 ), each of which contains 16 bit positions which are used to buffer operands for execution in the arithmetic logic unit ALU . The arithmetic unit input multiplexer and latch circuits are formed by the following devices; Three 2-to-1 multiplexers (zone selection), two 4-to-1 multiplexers (digit selection) and two 8-bit latches (byte latches). These multiplexers and locking circuits are used to deliver data from the operand register files to the arithmetic and control unit ALU . Data can also be output from the counter provided for the present product to the left side of the arithmetic and control unit ALU or from the operand register file 2 to the multiplication register. The 8-bit arithmetic and control unit ALU (which consists of two 4-bit ALU chips, a carry-preview chip and an entry / discharge flip-flop) can perform the following operations between the left ( 1 ) and right ( 2 ) Execute inputs: binary addition, binary subtraction input 1 from input 2 , binary subtraction input 2 from input 1 , logical OR, logical AND, exclusive OR, setting the ALU output to FF and deleting the ALU output to 00. The RALU device will be explained in detail in connection with FIG. 5.

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. The excess set ( XS 6 ) correction logic of the RALU device is released when the arithmetic and control unit ALU works in decimal mode; it is used to change the binary output signal from the adder to the correct decimal digit while the transmission output signal is modified for subsequent operations. The XS 6 correction is carried out using a 32-bit to 8-bit PROM chip, which encodes the corrected three high-value bits of the digit and generates the corrected carry. For further controls, a number comprising fewer than two functions is also available at the output of the PROM chip. The output multiplexer of the arithmetic and control unit ALU is used to deliver either the upper four bits of the adder output signal or the corrected decimal zone bits to the internal bus line 14 , depending on whether the arithmetic and control unit ALU is in binary mode or in decimal mode is working. The RALU control logic comprises three registers: RF 1 A - register file 1 address register, RF 2 A - register file 2 address register and ALMR - ALU operation control register. In conjunction with several microinstructions, these registers control all operations within the RALU facility. In addition to the registers described above and the control device described above, two further registers are provided, which are classified as RALU registers. These registers are a current product counter (CPRC) and multiplication register (MIER) . These registers and facilities will be discussed further below.

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.The control file 16 , which is also referred to as register file C (RFC) , is a RAM memory with 16 storage locations of 24 bits. This memory is mainly used to store all the instruction-related information coming from the central unit 11 (e.g. task or process words, data descriptors, effective addresses, etc.). The control file also contains several working memory locations which are used by the processor (CIP) firmware. The control file 16 receives bits 0-7 either from the internal bus line 14 or from the bus address register (MAR) 18 via the OR logic multiplexer 21 . The bus address register (MAR) 18 and the address adder logic 20 will now be explained in more detail. Register 18 is a 24-bit address register, which is mainly used to address system bus line 19 . It includes a two-input 8-bit multiplexer register at the bottom and a 16-bit increment / decrement device at the top. The input signal input to the lower eight bits by multiplex control comes either from the control file 16 or from the output of the address adder 20 . The address adder 20 is an 8-bit two's complement adder unit which is mainly used to increase or decrease the content of the bus address register 18 . The input signals to the address adder 20 are the eight low order bits of the bus address register and the 8 bit shift register (MSR) 22 . Shift register (MSR) 22 is an 8-bit universal shift register which can be loaded from internal bus line 14 and which can shift left or right by one bit (which means an open end shift with zero fill he follows). The shift register acts as an input device for the address adder 20 in order to increase or decrease the content of the bus address register 18 . In addition, bit zero of shift register 22 can be loaded into the ALU entry flip-flop, which is useful during execution of the conversion instructions.

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.The bus line output data register (OUR) 24 is a 16-bit data register which is used to transfer data to the data line of the bus line 19 . The relevant register is loaded by the internal bus line 14 with either the lower byte or the upper byte or the entire 16-bit word. The bus line input data register (INR) 26 is a 16-bit data register which is used to receive data from the data lines of the bus line 19 . The content of the input data register can be unloaded and output to the internal bus line 14 .

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. The input function code register (BFCR) 28 is a 6-bit register which is used to store the function code when the CIP device accepts any input or output command occurring on the bus line 19 . The firmware then checks the content of the function code register 28 and executes the specified command. The input address bank register (INAD) 30 is an 8-bit register which is used to store the high-order eight memory address bits which are received via the address lines of the bus line 19 . The higher eight address bits include the memory module address; they are transmitted by the central unit 11 as a result of a so-called IOLD command or an effective address function output code. The low-order 16 bits of the memory address are received via the data lines of the bus line 19 and keyed into the INR register 26 , whereby the required 24-bit main memory address is formed.

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.The CIP display register 32 is an 8-bit memory register in which each bit can be set or reset individually. The display register bit configuration is illustrated in FIG. 4. The TRP and TRP line indicators are used by the CIP device 13 only for internal processing; they are not visible to the software. The TRP line (CIP branch line) indicator is used to inform the CPU 11 of an existing non-programmed CIP branch state; the relevant display is transmitted via the bus line 19 by the external jump signal. If the TRP display (non-programmed CIP jump) is set, this display enables the CIP device to only accept input commands from the central unit.

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.The exam register (AR) 34 is a 16-bit register, which is mainly used to control microprogram branches (masked branches) and the perforation byte coding / decoding logic. This register is loaded with the entire 16-bit word from the internal bus line 14 . The micro-programmable switch register (MPSR) 36 is an 8-bit register in which each bit can be set or reset individually, under micro program control. Each bit within the MPSR register 36 is used as a tag to facilitate micro-programming (which means that the firmware can test each of the register bits and perform branching operations depending on the test results). Some of these bits are also used to control certain hardware functions of the CIP device 13 .

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.The ROS data register (RD) 38 is a 52-bit memory register which is used to store the control memory output signal (firmware word) for the present firmware cycle. The microprogram return address register (RSRA) 40 is an 11-bit register which is loaded from the output of the address generation (NAG) logic 42 which generates the next address in each case. The relevant register is used to store the microprogram return address when a firmware subroutine is executed. Register file C address multiplexer / selector (RFCA) 31 is a 4-bit, 2-to-1 selector capable of addressing one of the 16 memory locations contained in register file C (this is the control file 16 ). This selector 31 selects a combination of the function code register 28 and either the counter ( 1 ) 46 or selected bits of the ROS data register 38 . The CIP counters 44 comprise three 8-bit up / down counters 46, 48 and 50 , which are set as counter 1 ( CTR 1 ), counter 2 ( CTR 2 ) and counter 3 ( CTR 3 ) or are designated. These counters are charged / discharged via the internal bus line 14 . The content of each counter is available for test and branch operations.

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.Punch byte decoder / encoder logic 52 includes two PROM memory chips with 512 memory locations of four bits. These memory chips are used to decode / encode the content of the test register (AR) 34 . The byte that is decoded is obtained from AR bits 1 through 7, and the coded beginning of digits is obtained from AR bits 4 through 7. The decode / encode operation is performed by using AR bits 1 through 7 to address a particular PROM location. The content of the designated PROM memory location is encoded so that it matches, either: (1) with the decoded digit, its sign and its validity, or (2) with the encoded perforated byte. Bit 4 of the MPSR register 36 determines whether a decoding operation or an encoding operation is carried out, while the MPSR bit 1 indicates the sign of the encoded digit. In addition, the output signal of the perforation byte decoding / coding logic is available on both halves of the internal bus line 14 .

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.The CIP test logic 54 selects one of 32 possible firmware test conditions or test states for input to the address generation logic 42 generating the next address. The actual or incorrect state (1 or 0 state) of the function being checked controls bit 50 of the control memory address field provided for the next address (which means that bit 50 is set or reset, depending on the state of the tested one Function). The next generation address generation (NAG) logic 42 included in the CIP 13 uses one of the following five methods to generate the next firmware address: direct address, test and branch, masked branch , Main branch or subroutine return. The direct addressing method is used when an unconditional branch to the next sequential control storage location is carried out. This is achieved by using bits 41 to 51 of the control memory word to form the next address. These bits include the next address (NA) field, which can directly address any of the available control locations. The method of testing and branching is used when a 2-way condition branch (test state fulfilled) is executed within a firmware page (a firmware page is a segment with 128 memory locations within the control memory). This process is carried out by using the control memory bits 41, 42, 43, 44 and 50 to select a test condition or a test condition. Then, depending on the state of the function checked, a branch is made to one of the two memory locations. The branching operation performed using this method is a module 2 operation (which means that the two possible branching addresses are two memory locations apart). The module 2 address is formed as follows: (1) If the test state is fulfilled, bit 9 of the address is set to 1, or (2) bit 9 of the address is set to 0 if the test state is not fulfilled . The masked branch method is typically used when a branch is based on the contents of the Check Register (AR) - 34 or certain other conditions; this leads to a branch to memory locations 2, 4, 8 or 16 within the same firmware page (a firmware page is a segment with 128 memory locations within the control memory). The main branching method is used when the branching takes place within a firmware page (128 words). A CPU / CIP interface routine uses this method to carry out the required 16-fold branching with regard to the content of the function code register 28 . (INB main branch) and other control functions (EOP main branch). The subroutine return method is used to return the firmware to the next odd or even control memory location after a firmware subroutine is executed. The return address is obtained from the return address (RSRA) register 40 ; it must be stored in this register 40 before execution of the designated subroutine.

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.The internal bus line 14 has a width of 16 bits; it is mainly used to transfer data between the CIP registers, including the memory locations within the register files. The internal bus line receives data from various sources, as illustrated in FIG. 2. The output signals occurring on the internal bus line 14 are output to various registers within the CIP device.

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.The parity check logic 56 is connected between the bus line 19 and the internal bus line 14 ; it is used to check the parity of the incoming data. The parity generator logic 58 on the other hand is used to generate the correct parity bit for the transmission for the bus line 19 . Bus line request logic 60 and bus line response logic 62 are used for purposes of enabling the CIP device to gain access to bus line 19 and to respond to any requests to gain access to the CIP device. The linking devices 60 and 62 are described in US Pat. No. 3,993,981.

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). FIG. 5 shows a main block diagram of the RALU device 12 , with all main data transmission paths and control lines being illustrated. The control lines are indicated by dashed lines to facilitate understanding of the operation of the lines concerned. For the sake of simplicity, the description of the RALU device is divided into seven areas: operand register files, ALU input multiplexers and interlocking circuits, arithmetic logic unit, XS6 correction logic, ALU output multiplexers, RALU control logic and various RALU registers. The operand register files RF1 70 and RF2 72 each contain four RAM memory chips, which are used for short-term storage for CIP operands. The addresses for each of the register files are given by two 6-bit address registers RF 1 A 74 and RF 2 A 76 . Bits 0 to 3 of the respective address register supply the address of the memory location within the associated register file, while the low-order bits are provided for the byte and number selection at the output of the register file. These two address registers can be incremented or decremented by 1, 2 or 4 (ie by digits, bytes or words). As illustrated in Figure 5, the output from each register file is fed to the inputs of two multiplexers (i.e., a pair of multiplexers for each register file) which make a selection between the zone and digit information. The selection is effected by bits 4 and 5 of the associated address register. Bit 4 selects whether bits 0 through 3 or eight through 11 (from the register file) are applied to the output of 2-to-1 multiplexers 78 or 80 , while bit 5 is used to select the register file bits which form the digit which is fed to the output of the 4-to-1 multiplexer 82 or 84 . The various registers and multiplexers are connected in such a way that they are controlled via the various control lines, which are illustrated by broken lines; These control lines include, for example, control lines 71, 73, 75 and 77 . A third 2-to-1 multiplexer 86 is used to select whether the content of the product counter (CPRC) 88 intended for the current product or the number is output by the RF1 device to the A latches 90 . This multiplexer is controlled by the ALMR register 92 . The ALU input latches, A latches 90 and B latches 106 receive both the zone information and the digit information from the ALU input multiplexers and latch the data into register files during write operations. The outputs of the locking circuits deliver the zone and digit information to the left side or to the right side of the ALU device. The product counter (CPRC) for the product at hand is a 4-bit up / down decimal counter, which is mainly used during the execution of the decimal multiplication and division operations. The multiplication register (MIER) 94 is a 4-bit up / down binary counter used primarily during decimal multiplication and division operations. The ALU operation control register (ALMR) 92 is a 6-bit control register which is used to control all ALU operations. Register file 1 address register (RF1A) 74 is a 6-bit address register that performs two functions: (1) providing addresses for register file 1 ( 70 ) and (2) controlling two of the three ALU input multiplexers that are associated with the register file 1 . Register file 2 address register (RF2A) 76 is a 6-bit address register that performs two functions: (1) providing addresses for register file 2 ( 72 ) and (2) controlling the ALU input multiplexer associated with register file 2 . All operations of the arithmetic logic unit (ALU) 100 are carried out either in decimal mode or in binary mode. Decimal mode is used when working with decimal digit information while binary mode is used for byte (alpha) operations. The two modes also control the excess 6-XS6 correction logic 102 and the input signals for the transmit flip-flop. In decimal mode, the carry flip-flop for the carry is loaded by the low-order 4 bits of the ALU device, while in binary mode it is loaded with the carry by the eight bits of the ALU device for subsequent arithmetic operations. The carry flip-flop is loaded under micro program control when a carry must be forwarded for subsequent operations. In addition, the carry flip-flop can be loaded from the MSR register and set or reset under micro program control. The XS6 correction logic 102 has a 32-bit to 8-bit PROM memory chip and the associated control logic for correcting the high order three bits of the digit output signal of the ALU device. The XS6 correction is performed if (1) the ALU device operates in decimal addition mode and a decimal carry is included, or if the digit output of the ALU device 100 is greater than 9, and (2) in decimal subtraction mode if borrowing is included (ie in the absence of a carry from the digit portion of the adder). The PROM chip has five address lines. Three of these lines comprise the three high order bits from the digit output of the ALU, while the other two address lines indicate the type of operation being performed (ie addition correction, subtraction correction or no correction). The coded content of the PROM chip is given by the three higher-order corrected bits of the digit, the corrected decimal carry and the digit state, which is less than 2. The ALU output multiplexer 104 selects between the upper four bits of the adder output and the corrected decimal zone bits for delivery to the internal bus line. The configuration of the zone bits (for decimal mode) depends on whether ASCII or EBCDIC data is used (which means that when using ASCII data the zone bits are given a value of 3 , while when using EBCDIC- Data of the zone bits is given a value of F ).

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.The RALU control devices include registers RF 1 A 74 , RF 2 A 76 and ALMR 92 plus various microinstructions belonging to the RALU device. In addition, the ALU carry flip-flop is under micro program control.

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. The carry flip-flop can (if necessary) be pre-cleared or preset by the appropriate microinstructions, and it can also be loaded: (1) by the 4-bit digit carry for decimal operations, (2) by the 8-bit Binary transfer for binary operations or (3) through bit 0 of the MSR register 22 during the execution of conversion commands or instructions. The ALMR register 92 , which controls all of the ALU operations, is loaded by the control memory bits 2-7. Bit 0 determines whether the ALU device works in decimal mode or binary mode, which means that the carry output signal of the ALU device comes from bit 4 (digit transfer) or from bit 0 (binary transfer). Bit 0 also controls both the ALU correction ( XS 6 ) for decimal operations and the ALU output multiplexer 104 ; the multiplexer determines whether the four high-value bits of the ALU device or the supplied zone bits are forwarded to the internal bus line 14 . Bits 1, 2 and 3 are used to control operations within the ALU. Bit 4 determines whether the zone bits have a value of 3 or F (for ASCII data, the zone bits have a value of 3; for ADCDIC data, the zone bits have a value of F ). Bit 5 determines whether the selected digit from the register file 1 or the content of the product counter 88 currently being used is forwarded to the locking circuits 90 which are associated with the left-hand side of the ALU device. Register RF 1 A supplies the address and the control signals for register file 1 and the associated ALU input multiplexers. Register RF 2 A supplies the addresses and control signals for register file 2 and the associated ALU input multiplexers.

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.The control file 16 is divided into two areas: the upper area (bits 0 to 7) and the lower area (bits 8 to 23). Each area of the control file can be loaded as follows: Lower area RFC from the internal bus line (bits 0 to 15), upper RFC area from the internal bus line (bits 0 to 7), lower RFC area from the internal bus line (bits 0 to 15) and upper RFC area from the bus line address register 18 (bits 0 to 7). The functions used to perform the above operations are associated with an address that corresponds to the memory location RFC 16 that is being loaded. This address has its origin either in the function code register 28 or in the control memory 10 . Thus, the RFC address is directly related to the type of data that is output from the CPU 11 , or it is indicated by the function code.

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.The CIP firmware word is divided into 14 different fields. Although different fields appear in identical bit positions within the firmware word format, their functions differ according to the particular operation that is performed during the current firmware cycle. The 14 fields used for the CIP firmware word are: (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 and (14) NA . Here, only the BR and NA fields shown in FIG. 6 are important for the next generation address generation logic of the present invention.

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. The branch type (BR) field contains bits 37 through 40 of the firmware word. This field determines the type of branch to be executed as a result of a specific test condition. The address field (NA) relating to the next address contains bits 41 to 51 of the firmware word.

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.This field is either used to (1) one direct address for the next firmware memory location to deliver, or (2) to specify the test condition, the while generating the next firmware address is used, along with its relative Address.

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.The next ROS address is generated as a function of the BR and NA fields of the control memory word. Decoding these fields results in the following six microinstructions (plus associated arguments) that actually generate the next address: BUN - unconditional branch, BTS - branch on test condition, BMA main branch, RAS - return to subroutine, BRM - masked Branch and BRMEX - masked branch extended.

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.
The next generation address generation logic (NAG) 42 is illustrated in Figures 7A through 7F; it contains multiplexers, PROM memory chips, registers and associated logic devices which, in conjunction with the following ROS data (RD) register fields, generate a control memory (ROS) address. Such data register fields include (1) the branch field (RD 37 BR to RD 40 BR ) and (2) the next address field ( RD 41 NA to RD 51 NA ). These data register fields derive their special functions from the firmware word. The multiplexers perform the following functions together with the specific registers: (1) the address data from one of the lists listed below are selected, (2) the next 11-bit address field is formed from this data (NEXA 00 to NEXA 10 ) and (3) this field is supplied to control store (ROS) 10 to select a specific control store word. The sources from which the address data are selected are as follows:
(1) Check or Analysis Register (AR) 34 , (2) Extended Mask Branch Register 700 with its following inputs: (a) Micro Program Switch Register (MPSR) 36 , (b) Operation Code Register (CIOPR) 704 , (c) Counter-1 and Counter 2 decoder (CTR1 46 and CTR2 48 ), (d) Counter 3 (CTR3) 50 and (e) two sign status indicators ( NEGSNF and ILLSNF ) or indicator register 32 , (3) End of Operation Branch PROM (EOPMB) 706 , (4) initial main branch PROM (BINMB) 708 , (5) ROS return address register (RSRA) 40 , (6) ROS address field (NEXA) 710 , (7) ROS page register (RSRGR) 730 and (8 ) ROS data register (RD) 38 . The exact manner in which the NAG logic generates an address is described below. In the following, a functional description of the registers and PROM memory is given, which are directly connected to the NAG logic. The test register (AR) 34 is a 16-bit register, which is mainly used with a masked branch (BRM) instruction to effect the required microprogram branches within the control memory (ROS) 10 . The AR register is also used to perform the punch-byte decoding / coding operation. Data from the internal bus line ( BI ) is available to the AR register with the execution of a BARFBI microinstruction, which means that AR is loaded from BI . Data from the AR register 34 (or from the extended mask branch register 700 ) is selected and output to the AR test state field ( AR 00 TC to AR 15 TC) through the RD register 38 bit ( RD 37 BR) .

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.
Extended mask branch register 700 is a 16-bit register. It is used only with the extended mask branch (BRMEX) instruction or instruction to transfer the functional data of the associated commercial instruction process (CIP) from selected registers and counters to the AR's output test state field (AR 00 TC to AR 15 TC) Registers 34 to be used for control memory address modification or generation. The selected registers and counters are as follows:
(1) micro program switch register 36 ; this register supplies the applicable microprogram control indicators (MPSR 00 to MPSR 03 ) for the firmware query, (2) operation code register 704 , which holds the disposable or applicable CIP instruction word operation code field (CIOPR 0 to CIPR 5 ), (3) counter 1 46 and counter 2 48 - decoding; these counters provide the test conditions for special microprogram test and branch conditions, (4) counter 3 50 (bits 6 and 7) - counter 3 (bits 6 and 7) is used for offset checking, and (5) sign conditions that provide the negative sign (NEGSNF) and the allowed sign (ILLSNF) codes.

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.If a main branch (BMA) or a masked branch (BRM) instruction is executed, the control signal RD 37 BR is false or zero. This blocks the transfer of the foregoing functions (posters 1 through 5 ) to the extended masking branch register and enables delivery from the AR register. Then, decoding an extended mask branch (BRMEX) instruction causes the RD 37 BR signal to be asserted as a 1 signal, thereby disabling the output from the AR register and releasing the output from the extended mask branch register.

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.The microprogram switch register 36 ( MPSR ) is an 8-bit register, which uses each bit individually or collectively as a group of bits as an identifier for microprogramming or for firmware test and branching operations. The output signal from the MPSR register is distributed to the extended masking branch register and the binary multiplexers 712 to modify or generate a control memory address. In addition, selected output signals from MPSR register 36 are distributed to the following CIP logic elements to perform the designated functions: (1) Punch Decoding / Coding Logic 52 , where (a) MPSR 01 sets the operand sign ( 0 = positive (+) Sign; 1 = negative (-) sign), and (b) MPSR 04 specifies the type of decoding / coding operation ( 0 = decoding operation; 1 = coding operation); (2) Data status accumulator : MPSR 05 forms the address for the status accumulator PROM ; (3) RALU : MPSR 07 is used for the multiplexer 10's PROM during MIER loading .

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.The data output into the MPSR register 36 are obtained from the (RD 32 MS to RD 36 MS) field of the ROS data (RD) register 38 provided for various controls and are controlled by this field. The RD 32 MS signal provides the firmware data for the MPSR input lines. The signal in question is made available to the relevant MPSR output line by a 3-bit binary code on the select (SEL) input lines for the register. This 3-bit binary code is provided by the firmware via the various RD control signals ( RD 33 MS to RD 35 MS) . The actual data transmitted to the selected output line occurs when the signal RD 36 MS is a single signal and when there is a negative transition from MPSREN- on the clock input line C for the register.

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.The operation code register 704 is a 6-bit register ( CIOPR 0 to CIOPR 5 ), which holds an operation code from a CIP instruction word for the final address modification of a control memory address. This opcode is contained in the hexadecimal code field (bits 10 to 15) of the instruction word. The operation code register monitors bits BI 10 to BI 15 on the internal bus line for this field. When the opcode register receives this field, it is passed to the extended masking branch register 700 and to the end-of-operation PROM memory 706 , in which the field in question is used in the course of generating the next address field ( NEXA ). The data on the internal bus line is keyed into the opcode register 704 for the positive signal jump on the clock input line (C) by the LCIOPR signal. This signal is generated by decoding the output of RD register 38 if: (1) the decoder input address field (RD 17 KT to RD 19 KT) has a binary value 8 , (2) if one BI load operation on the RD register is not handled (which means that the discharge signal ULKNST occurs at a low level) and when (3) the positive signal jump of the next clock pulse 1 occurs.

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.The three 8-bit counter configurations, designated Counter 1 (CTR1) 46 , Counter 2 (CTR2) 48, and Counter 3 (CTR3) 50 , provide the NAG logic with the following four test states, which are necessary for the execution of certain Test and branching operations described below are used: Less than eight (CTR 3 L 8 ), less than four (CTR 1 L 4 ), CTR 2 L 4 and CTR 3 L 4 , less than two ( CTR 1 L 2 , CTR 2 L 2 and CTR 3 L 2 ) and zero ( CTR 1 E O , CTR 2 E O and CTR 3 E O ). This basic configuration is the same for each of the three counters. The following counter description is thus limited to counter CTR1 46 .

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.The internal bus line bits 00 to 07 represent the source data for the respective meter configuration. The five data bits with the lowest value of byte 0 of BI (BIDT 03 to BIDT 07 ) or all eight BI data bits of byte 0 (BIDT 00 to BIDT 07 ) can be added be loaded into the counter at any time, the time in question being determined by the firmware. The firmware selects 5-bit loading or 8-bit loading via the RD register constant (KT) field bits RD 16 KT to RD 23 KT . The counter is incremented or decremented by a negative pulse on its corresponding up-count or down-count input line while the other or opposite line is held high. The data from the counter 1 are used to decode one of the previous test conditions from the associated PROM memory. The selected information is then distributed to the extended mask branch register 700 and to the binary test collection multiplexers 712 , where it is used to form the next address field (NEXA) .

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.The ROS Return Address Register (RSRA) 40 is an 11 bit register which is used to store a micro program return address. This return address is contained in the next address field (NEXA 00 to NEXA 10 ) for the control memory . If this address is stored in the RSRA register, it can only be accessed by returning after a subroutine instruction (RAS) . The data from the next address field are keyed into the RSRA register for the positive signal transition on the clock input line (C) by the signal MISRAD.

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.The binary test logic 54 comprises four multiplexers and the associated logic logic; it is used only with a BTS instruction to branch to a test. The link arrangement in question selects one of 32 possible firmware test states and forwards the selected test status signal (RSTSTT) to the address generation logic 42 , which is used for the next address generation, to be used when generating a control memory address. The actual test selection is carried out by the four most significant bits of the RD register address field containing the next address, ie ( RD 41 NA to RD 44 NA) and RD 50 NA . For example, to select less than four states from the CIP counter 2 ( CTR 2 L 4 ), the firmware encodes this NA field with a binary 3 (indicating the return to RD 43 NA and RD 44 NA and the shutdown of RD 41 NA and RD 42 NA and also the switching on RD 50 NA means). As a result, the test results are transmitted from the microprogram switch register bit 7 (MPSR 07 ) and from CTR 2 L 4 to the multiplexer output signal lines RSTST 0 and RSTST 1 . The corresponding wired OR output signals RSTSTE and RSTSTD are activated by the signals or lines RSTST 0 and RSTST 1 . The signals RSTST 2 and RSTST 3 are blocked because the signal RD 41 is switched off. The signal RD 41 is fed to the enable input of the multiplexers via an inverter 713 , in accordance with RSTST 2/3 . When the RD 50 NA signal occurs as a 1 signal, however, further transmission of the output signal RSTSTE by the AND gate 717 is blocked or prevented since the RD 50 NA signal is inverted by means of the inverter 719 and because the negated signal is an input signal to the Logic gate 717 is supplied while the transmission of the output signal RSTSTD by the AND gate 715 is enabled. This activates the RSTSTT signal for the next generation address generation logic . This releases the signal RSTSTT , which reflects the actual state or the incorrect state of CTR 2 L 4 .

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.A control store address is generated by using NAG address generation logic 42 in conjunction with the address lines to control store ROS . The NAG logic is designed in such a way that the important or associated information technology is collected from the selected CIP sources, that this information is formed for a next 11-bit address field (NEXA 00 to NEXA 10 ) and that the relevant address field is on the corresponding control memory ROS address lines is delivered. The selection and forwarding of this information is triggered and controlled by the following six CIP branch instructions: unconditional branch (BUN) , branch to test state (BTS) , return to subroutine (RAS) , main branch ( BMA) , masked branch (BRM) and extended masking branch (BRMEX) . All branch instructions are encoded in the RD register branch field ( RD 37 BR to RD 40 BR) . It should be noted that in view of the fact that the RD register receives firmware information from the control memory, this information is also referred to as the control memory word. The manner in which each instruction and the NAG logic perform their assigned task to form a control store address is described below. It should be noted here that the term firmware side is defined as a 128 word segment within the control memory.

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.An unconditional branch instruction (BUN) is used to address the next sequential memory location in control memory 10 . The firmware forms this address in the RD register address field (NEXA) provided for the next address. The RD register branch field (RD 37 BR to RD 40 BR) is set to zero for the BUN instruction. When the NAG logic decodes this instruction, the next address control signals (NEXAS 0 and NEXAS 1 ) and the RAS instruction control signal (NEXRAS) are preserved as zero signals. As a result, a zero is output to the selection input lines (SEL) of the BUN multiplexers which, in conjunction with the associated logic logic, formulate and send out the above next address field for the control memory. In addition, when the control signal NEXAS 1 appears as a zero signal, the most significant four bits of the next address field (NEXA 00 to NEXA 03 ) are keyed into the page selection register 730 for the positive signal jump on the clock input line (C) by the signal RSPGCK. The page selection register puts the firmware page number into the control memory for subsequent use in connection with the BTS, BRM or BRMEX instruction.

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.An instruction (BTS) for executing a branch on a test state is used to execute a 2-way branch within a firmware page. This is done with bit 9 of the next address field (this is NEXA 09 ). The relevant bit 9 describes the 1/0 status of one of 32 possible test conditions which are selected by the binary test logic 54 . The relevant bit is used to modify the page address generated by the firmware when it is formed in the next address field (NEXA) and sent to the control memory . The RD Register BR field is set to a binary 1 (which means RD 40 BR is set) in response to the BTS instruction. The four most significant bits of the NEXA field (RD 41 NA to RD 44 NA) must contain a four-bit binary value in order to select the desired test results. If the NAG logic of this instruction is decoded, the NEXA control signal NEXAS 1 actually occurs or as a 1 signal, and the NEXA control signals NEXAS 0 and NEXAS 1 are retained as zero signals. This sets a binary signal 1 on the select (SEL) input line for the BTS multiplexer, and further releases the page select register and associated logic to form the next address field above and send it to the control memory.

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.The instruction to return after a subroutine (RAS) is used to return to either an odd or an even control memory location corresponding to the address stored in the RSRA register, the return after the execution of a firmware Subroutine is done. The return address is obtained from the return address register 40 ; it must be stored in this memory before the firmware subroutine is executed. Execution of the RAS instruction results in the transfer of this address from the return address register (RSRA) to the NAG logic to form the next address field (NEXA) for the control store address. The RD Register BR field is set to binary 10 for the RAS instruction. If the NAG logic decodes this instruction, then the NEXA control signals NEXAS 0 and NEXAS actually appear or as 1 signals. The control signal NEXAS 0 causes a binary 2 to appear on the selection (SEL) input line of the RAS multiplexer for the six least significant bits from the RSRA register (ie for RSRA 04 ) from the RSRA register via the NAG Linking logic free. The four RSRA register bits (RSRA 00 to RSRA 03 ) of the highest value are released if the signal RD 39 BR occurs on the selection (SEL) input line for a second RAS multiplexer or is present as a 1 signal. This measure forms the NEXA format for a control memory address.

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.In the course of the following description of the main branch (BMA), mask branch (BRM) and extended mask branch (BRMEX) instructions, it is assumed that the check and page selection registers contain the disposable address data necessary to form a next address field (NA) are required. The BMA, BRM and BRMEX instructions use the same NAG logic as the previous three instructions (these are the BUN, BTS and RAS instructions) to generate and format their next address fields. The firmware selects and executes one of the three branch instructions by coding both fields with the code that can be issued (instruction / data source). When the NAG logic decodes an instruction, it checks both fields (BR / NA) to determine the type of branch instruction and its data source; it then sets the logic or logic arrangement. For example, if the firmware triggers a BMA instruction using the initial main branch PROM 708 as the main data source, then the RD register branch field is encoded with a binary 5, and further the bits that can be output in the ON field, as set out above, set to zero. When the NAG logic decodes this instruction, it encodes (1) a binary 3 (NEXAS 1 / NEXAS 1 present or 1) on the BMA multiplexer select (SEL) input line for data from the initial main branch. PROM memory, releases (2) the output signal from the page selection register (NEXAS 1 or 1) and bit 45 (RD 45 NA) from the RD register (NEXRAS wrong or 0) and (3) selects ENBMA) , the initial main branch PROM memory from the RD 40 BR + signal. The next address field for a control memory address is thereby formed, as was shown in the previous illustration of the instruction format BM-NA . It should be noted that the initial branch PROM memory is selected via a main branch decoder 732 which is enabled when the RD register bits 41 to 44 are set to zero, as described above.

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.The masked branches BRM and BRMEX are very similar in property. The only difference between the two branches is that the BRM branch is based on the content of check register 34 shown in FIG. 7B, while the BRMEX branch, which is the extended masking branch, is based on the content of the extended one Masking branch register 700 is based, to which some specified CIP control hardware signals are supplied as input signals. For both branches BRM and BRMEX , the signal RD 38 of register 38 ( RD 38 BR ) must be present or a 1 signal, and to distinguish between branches BRM and BRMEX , bit RD 37 is switched off for the BRM branch and for the BRMEX branch switched on. For the purpose of a simple explanation, only the BRM branch is explained here, whereby analogous explanations apply to the BRMEX branch and to its associated hardware.

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.If the RD38 signal is present or occurs as a 1 signal, the hardware decodes this branch instruction as a BRM branch. The BRM branch is based on the content of check register 34 , which is a 16-bit register, as has already been described. This register 34 can be interpreted as containing four digits, that is the digits 0, 1, 2 or 3, the digit 0 having bits 0 to 3, while the digit 3 having bits 12 to 15. During execution of the BRM instruction, bits 39 and 40 of the RDBR facility control the digit selection of the check register. For example, if the signals RD 39 and RD 40 are given by zero and 1, respectively, the number 1, that is bits 4 to 7 of the test register, would be selected for a test process. Upon selection of the relevant bits 4 to 7 for a test process, as the name suggests, a mask is provided for these bits in order to hide or mask the bits to be tested. By masking these bits, the BRM instruction has the ability to branch on a 2-way branch, on a 4-way branch, on an 8-way branch, or on a full 16-way branch, provided all four bits of the relevant selected digit are tested.

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.The mask that controls the bits to be tested in the test register is provided by RD 41 NA to RD 44 NA . For example, if bits 4 and 5 of test register 34 were to be tested, bits RD 39 BR and 40 would be 0 bits and 1 bits, respectively, and bits RD 41 NA and 42 would both be present or only 1 Bits, while bits 43 and 44 are absent or 0 bits. This would result in a mask of 1100, a hexadecimal address (Hex) C , which indicates that bits 4 and 5 of the test register are to be tested. This is effected via the multiplexers 734 and 736 according to FIG. 7B. The multiplexer 734 receives as input signal the 16 bits AR 00 TC to AR 15 TC , which are basically a hard-wired OR function of either the outputs of the test register 34 or the outputs of the extended masking branch register 700 . Bits RD 39 BR and RD 40 BR are present at the selection input of such a multiplexer 734 . The selected four bits or the selected digit of the check register will appear at the output of multiplexer 734 , controlled by RD 39 and 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.The mask contained in RD 41 NA to 44 controls whether the bit selected from the digit of the check register or the corresponding bit of RDNA 46 to 49 is used to generate the NEXA field for the next address . This selection by masking the corresponding bits in the examination register referred to here as the test register is carried out by the multiplexer 736 according to FIG. 7B. As illustrated in FIG. 7B, the selection is controlled by bits RD 41 through RD 44 and the selection is made between the output of multiplexer 734 , NEXAR 0 through NEXAR 3 , and the corresponding bits from RD 46 NA through RD 49 NA . The corresponding bits of the NEXA field are selected such that, if mask bits are present or set, the corresponding bit of the selected digit of the check register is used to generate the NEXA field. If the corresponding bits of the mask in RD 41 NA to 44 are switched off, then the corresponding NEXA bit from the field RD 46 NA to 49 is used.

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.These four bits, which are the result of the BRM or BMA microinstructions, are used to generate bits NEXA 05 through NEXA 08 . Assuming, for example, the generation of NEXA 05 , NEXA 05 would be present if RD 41 NA is present, and the selected bit of the digit, basically NEXARO , would be present or a 1-bit. If RD 41 NA were not present or was a 0 signal, the RD 46 NA bit would be selected to generate NEXA 05 . As a result, this microinstruction BRM , like the microinstruction BRMEX, has the property of branching either to a 2-way branch by testing only one bit or, at the other extreme, to a 16-way branch by checking all four bits of the selected digit will.

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.The extended masking branch is very similar to the BRM branching, with the exception that instead of taking the output of the test register as the selected digit, a group of the groups of test conditions is selected from the extended masking branch register 700 . The end result of multiplexer 736 , which is the result of the masked branch, NEXMK 5 through NEXMK 8 , is ORed with appropriate bits for the initial branch from PROM memory 708 and for the end-of-operation branch from PROM- Memory 706 subjected. The main branch BMA is also similar to branches BRM and BRMEX , except that it requires masking where all bits RD 41 through 44 are zeros. Bits RD 39 and 40 select one of four possible branch PROM memories for the BMA states via decoder 732 to generate the next address. In the case of the BMA state, this is always an unconditional 16-way branch. Bits RD 46 NA to RD 49 NA are not used during the BMA operation. However, if additional main branch connections were required, these bits could be used to encode more BMA states.

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.The subroutine execution mechanism of the CIP device will now be described. Referring to FIG. 8 of the main process uses starting in block 801, the Busroutine in the blocks 841, 842, etc. multiple times, wherein the main shoot begins in block 871st To make multiple use of a subroutine between two or more main line firmware processes, a return address must be stored before proceeding to the subroutine. This firmware return address is stored in the RSRA 40 register under the control of the microinstruction storage return address ( SRA ) used to clock the RSRA 40 register. When the SRA micro-instructions are executed, the eleven bits of the next address are inserted into the register RSRA under clock control. Assuming, for example, from the flow which begins in block 801, then the SRA micro instruction is executed in block eight hundred and first This microinstruction stores the address of the next sequential memory location in the firmware, e.g., address 400 , for block 800 , as illustrated. Depending on the case, block 802 implements an unconditional branch or a test branch to the subroutine of block 841 . The subroutine is now executed by starting at block 841 and proceeding to block 842 , etc. until the end of the subroutine is reached at block 843 . A return after the subroutine (RAS) microinstruction is then performed, as illustrated in block 843 . This microinstruction causes the NEXA field to match the content of the RSRA register. While the return is being performed because the address 400 is kept in the RSRA register, the low order bit of the address in question in the RSRA register is inverted by means of the inverter 880 to correspond to the address 401 . The NEXA address then corresponds to memory location 401 and the firmware returns to the memory location of block 803 which memory location has address 401 . This only inverts the low-order bit of the RSRA register in order to get to the corresponding return address position after the subroutine.

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.In the same analogy, the firmware routine beginning in block 871 executes the SRA instruction, and block 872 , which has an address 503 , has temporarily stored such an address 503 in the RSRA register. At block 872 , an unconditional branch or test branch is made to the subroutine of block 841 . The subroutine is executed until it completes, that is, up to block 843 , whereupon a (RAS) microinstruction following the relevant subroutine is executed. At this time, the RSRA register contains address 503 and the low valued bit, bit 10, of the register in question is a binary 1 that is inverted into a binary 0, which corresponds to an address 502 . When the RAS instruction is executed, the return address is now 502 and the return is to block 873 , which has address 502 .

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.Thus, regardless of the content of the RSRA register Time of execution of the return one bit lower The value of the RSRA register is inverted by the corresponding one Return address point for the RAS microinstruction to build. With such a design or Realization is therefore the low valued bit for uses a subroutine handling mechanism. The one in question Bit leads to two address pairs, which is the exit point and the entry point after execution of the subroutine. If necessary, a to invert another bit, bit 8 or Bit 9 or any other weight bit inverted as long as an inverted bit must be provided to the two corresponding memory locations for the subroutines unwinding mechanism within the CIP facility to provide. This mechanism avoids the use of an incrementer in the next generation address generation logic. The use of such an incrementing device represents a conventional method to Subroutines run in machines controlled by firmware allow. In a normal firmware machine for example, the next address is incremented nominally, and this incremented value is in a return Address register kept, this register to do so is used, the execution of the concerned Return after execution of the subroutine microinstruction to handle. In the present invention, the Demand for such an incrementing device completely avoided, which is why an incrementer is no longer required for addressing  through firmware. Rather, it is only necessary invert a bit to the subroutine mechanism to make it effective.

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.This one intended for handling subroutines Mechanism can also be extended to, if required to nest subroutines. To form the nesting mechanism a file of RSRA registers would be provided. If, for example four levels of nesting subroutines then four such RSRA registers are to be provided provided within a register file or in a microcircuit, where the last signal entered the first signal output is. This nested subroutine register file would include a pointer that increments each time would be provided if a retention return address to the last saved return address shows so that when a subroutine return is performed becomes the same sequence that has been arrested.

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.The advantage of using the ROS side register 730 is that it provides four high order address bits for the next address of the firmware. If the ROS page register were omitted, it would be necessary to increment the firmware word by four bits to provide the higher four bits of the next address. Since the four bits of the next address according to the exemplary embodiment of the present invention are provided by the ROS page register, the corresponding four bits of the RDNA field, that is to say bits RDNA 41 to RDNA 44 , can provide further control for the branch microinstructions . For example, in the BTS microinstruction, these bits are used to encode the state that requires checking in this microinstruction. In the case of the BRM and BREX microinstructions , these bits, that is to say bits RDNA 41 to RDNA 44 , provide the 4-bit mask by which the bits of the examination or test register to be checked are controlled.

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.The firmware side in the arrangement according to the present invention comprises 128 words which are basically derived from the seven bits of low significance of the next address, which corresponds to bits RDNA 45 to RDNA 51 . These bits correspond to bits NEXA 04 to NEXA 10 . The firmware is divided into 128 word pages, the philosophy of these 128 words per page being that in branches such as branches BTS, BRM, BRMEX and BMA, the four bits of high value of the next address field directly from the four bits of the ROS -Page registers. Since the next address field is eleven bits, the seven least significant bits of the next address remain which are generated as a result of the address generation logic according to these branch microinstructions. Since the four high-value bits of the next address are constant during the execution of these microinstructions and originate from the ROS page register, only seven bits remain which are to be used or manipulated for the next address generation. Accordingly, the seven bits correspond to the 128 words of the address base that can be manipulated for these microinstructions. In the present arrangement, for example, 16 such pages with 128 words are provided (2⁷), which leads to a total address base of 2048 words of the firmware. The basic savings that result from using the ROS page register are that the control memory need not be expanded to include the bits corresponding to the ROS memory address and their next address field. If the depth of the control memory is, for example, that in the CIP device, two separate PROM memory chips would be required, which is considerably more expensive than a chip for the ROS page 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.The characteristic of the BRMEX instruction lies in an extension of the masked branching (BRM) microinstruction. Typically, the BRM microinstruction provides a branch characteristic with reference to more than one bit at a time, the relevant bits being selected from the contents of the check register. If the BRMEX property were not available and if it were necessary to test more than one link function in the firmware at the same time, then it would be necessary to load these link states into the examination or test register, from which the relevant states can be loaded using the BRM microinstruction could be tested. This would take place each time these link states change and are tested. By providing the BRMEX property, there is the ability to test more than one function at the same time, for example up to four functions, without having to load them into the examination or test register. These linking functions are systematically arranged in such a way that groups of four functions correspond to the different digits of the check register. These groups of four states are selected based on the layout design and their needs in the same group. This hardware 16544 00070 552 001000280000000200012000285911643300040 0002003000107 00004 16425 states to be tested simultaneously, similar to testing BRM , are available in the extended mask branch latch circuit 700 of FIG. 7B. In fact, the latch circuit 700 (or the relevant register) is a buffer, in particular a so-called tri-state buffer, which can be set in three states (which means that the relevant buffer hangs freely and basically for disconnected states is used by the rest of the hardware). Otherwise , the buffer in question is enabled or blocked for the selection of a BRMEX or BRM microinstruction.

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.The selection between the BRMEX buffer 700 and the BRM check register 34 is controlled by the bit RD 37 BR . The specific bit or 1-bit goes directly to the test register enable line, and the same bit RD 37 is inverted by means of the inverter 739 , the output signal of the relevant inverter being delivered to the enable pin of the BRMEX buffer 700 .

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.As already explained, the selection of the main branch or the check register branch BRM or BRMEX takes place under the control of the bits RDNA 41 to 44 . If these four bits are 0, then the BMA microinstruction is enabled. This zero detector logic is provided in block 731 of FIG. 7B. Decoder 732 is used to take advantage of bits RD 39 and RD 40 , which are encoded so that one of the four possible main branches is selected. In the present arrangement, only two of the four possible branches are used, namely ENBMA 0 and ENBMA 1 . These branches correspond to the EOP main branch PROM memory 706 and the initial main branch PROM memory 708, respectively.

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.Is shown in FIG. 7c with respect to the description of the counter 1, which is illustrated in detail above, that the output signals CTR 100 are supplied to the PROM chip 47 to 107 of the relevant counter CTR 1. On the output side, this PROM chip carries the states of counter 1 which are zero ( CRT 1 E 0 ), which are less than 2 ( CRT 1 L 2 ) or which are less than 4 ( CTR 1 L 4 ). This PROM chip is provided twice for each of the other two counters, namely counter 2 ( 48 ) and counter 3 ( 50 ). Basically, the PROM chip takes over all eight bits of the counters and decodes them to determine whether their values are 0, less than 2, less than 4 or, in the case of counter 3, less than 8. One reason for using a PROM chip for this linkage instead of a typical gate arrangement is that it saves physical space. If this decoding logic were provided using typical hardware (ie, small integrated factor integrated circuits such as AND and OR gates), about three logic chips per counter would be required to decode the values in question. By using the PROM chip for this decoding, a considerable amount of assets (physical space) has been saved.

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. FIG. 7A illustrates the final-selection of the bits 00 to NEXA NEXA 10 which are passed over the ROS address device 710 to the control memory 10 through. The control functions NEXAS 0 and NEXAS 1 , which are widely used in the link arrangement shown in FIG. 7A, will be explained with reference to the table of values shown in FIG. 9. The value table shown in FIG. 9 illustrates the generation of the two control functions NEXAS 0 and NEXAS 1 . In this value table, the second column contains the different values of bits RD 38 BR to RD 40 BR . Column 3 contains the possible codes for the control signals NEXAS 0 and NEXAS 1 and the corresponding microinstructions that are generated. For example, the signal NEXASA is present or a 1 signal if the bit RD 38 BR is present or a 1 bit or if the bit RD 39 BR is present or a 1 bit. This corresponds to the codes shown in column 3 for 100, 101, 110 and 111 and also for 010 and 011. The first four codes, which start with 100 to 111, are generated for the three micro instructions BRM, BRMEX and BMA , and code 010 is generated for the microinstruction RAS . For these four instructions BRM , BRMEX, BMA and RAS the signal NEXAS 0 is available or a 1 signal. The negated NEXAS 0 signal is present or a 1 signal for the two codes 000 or 001. This corresponds to the micro instructions BUN or 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.A corresponding explanation regarding the generation of the NEXAS 1 signal will now be given. The NEXAS 1 signal is present or a 1 signal if the RD 38 BR bit is present or a 1 bit or if the RD 40 BR bit is present or a 1 bit. This corresponds to codes 100 to 111 and 001 and 011. The first four codes correspond to microinstruction BRM, BRMEX and BMA . Code 001 corresponds to microinstruction BTS . It should be noted that code 01 is not used at all. Correspondingly, the negated signal NEXAS 1 occurs for the code 000 or 010 or as a link signal 1, which corresponds to the micro instructions BUN or RAS .

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.These functions NEXAS 0 and NEXAS 1 together with their negations, the negated function signals NEXAS 0 and NEXAS 1 are used to a large extent to control the multiplexer selection according to FIG. 7A. A detailed explanation of FIG. 7A is now made, in which the generation of the signals NEXA 00 to NEXA 10 is illustrated, which are used for the control memory addressing .

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.The four bits NEXA 00 to NEXA 03 of high value have a possibility of three input signals, these input signals either directly from RD 41 NA to RD 44 NA or from the ROS return address register RSRA 00 to RSRA 03 and ultimately from the ROS side Registers RSPG 00 to RSPG 03 can originate. The selection from RD 41 NA to RD 44 NA applies to the BUN microinstruction, which is the unconditional branch, whereby the data is taken directly from the ROS data register. The selection of the signals RSRA 00 to RSRA 03 , ie from the ROS return address register, applies to the microinstruction ROS . The selection of the signals or bits RSPG 00 to RSPG 03 , ie the ROS base register, applies to all other microinstructions which are the instructions BRM, BRMEX and BMA . The choice between RD 41 NA to RD 44 NA and RSA 00 to RSRA 03 is made via the 712 multiplexer. The selection from RD 41 to RD 44 is made for the microinstruction BUN , which is controlled by the negative signal RD 39 BR . If the RD 39 BR signal is positive, that is, it is occurring, then the multiplexer output is selected by the ROS return address register. The output signal of this multiplexer is designated NART 00 to NART 03 . The final selection from NART 00 to NART 03 and RSPG 00 to RSPG 03 takes place via the enable lines in the multiplexer 712 and via the register 730 , which is the ROS page register already explained earlier.

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.Returning to Fig. 9, in which the table of values is shown, it should be noted that this table of values illustrates that NEXAS is 1 or a 1 signal, which corresponds to micro-instructions BTS, BRM, BRMEX or BMA , while the presence of the negated one Signal NEXAS 1 corresponds to the micro instructions BUN or RAS . Signal NEXAS 1 thus controls the enabling and disabling of multiplexer 712 and register 730 . If the NEXAS 1 signal is present, ie, is a 1, meaning that either an instruction BTS, BRM or BRMEX is being processed, then the ROS page register 730 is enabled by the negative value function NEXAS 1 (negative) . If the signal or the function NEXAS 1 (negative) is present, which corresponds to the microinstructions BUN or RAS , then the negative signal NEXAS 1 enables the multiplexer 712 . The outputs of elements 712 and 730 are connected to each other by wiring according to an OR gate , and the final output signal form the four low-order bits of the next address, that is bits NEXA 00 to 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.The signal NEXA 04 is controlled by the two AND gates 714 and 716 . The output signals of these AND gates , namely NEXA 04 B or NEXA 04 A , form the address NEXA 04 through proper wiring of the relevant logic outputs . The two possible sources of the address NEXA 04 are either the ROS return address register or directly the ROS data register RD 45 NA . Bit 4 of the ROS return address register RSRA is enabled by the NEXAS function that is generated for the RAS microinstruction. If the function or the signal NEXRAS is present or is present as a 1 signal, then the output signal of the AND gate NEXA 04 B follows the content of the RSRA bit 4; it is used to generate the output signal NEXA 04 . In contrast, in the event that the negated signal NEXRAS is present, the output signal NEDA 04 A is released; it follows in the content of RD 45 A. These two hard-wired OR functions NEXA 04 A and NEXA 04 B together form the NEXA 04 bit of the next address.

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.The control of the last six bits of low value of the next link address , that is the bits NEXA 05 to NEXA 10 , is carried out via the multiplexer 718 . This multiplexer is a 1-out-of-4 multiplexer; it is controlled via the two control lines NEXAS 0 and NEXAS 1 , which can have the values 00, 01, 10 or 10 . These values are indicated in the diagram of the multiplexer 718 as selection code 0, selection code 1, selection code 2 or selection code 3. The selection code 0 is in the case that the negated signal NEXAS 0 is present and that the negated signal NEXAS 1 is present. This corresponds to the case of the BUN microinstruction, which is an unconditional branch. In this case, the contents of RD 46 NA to RD 51 NA , which are contents directly from the control memory word , are released at the output in order to form the signals NEXA 05 to NEXA 10 . The next case is when the "Selection 1" signal is present, which means that the negated signal NEXAS 0 is present and that the signal NEXAS 1 is present. In this case, the BTS microinstruction is released. In the case of the BTS microinstruction, the six lines, which are lines RD 46 NA to RD 49 NA , and the final output of test multiplexer 712 , as illustrated in FIG. 7E, are the or wired as the output Outputs of elements 715 and 717 together with signal RD 51 NA released in the relevant order at outputs NEXA 05 to 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. Selection 2, which is when there is one of the NEXAS 0 signals and when the negated signal NEXAS 1 is present, corresponds to the microinstruction RAS , which is the return microinstruction after a subroutine has been executed. In this particular case, bits 05 to 09 of the ROS return address register and the negated output signal of the ROS return address register RSRA 10 are released at the outputs NEXA 05 to NEXA 10 . The final selection output control signal 3 is present in the event that the two signals NEXAS 0 and NEXAS 1 are present or are present as 1 signals. This is the case for the micro instructions BRM, BRMEX and BMA . In this case, the signals NEXM 05 to NEXM 08 , which are the output signals of the multiplexer 736 according to FIG. 7B, are released together with the signals RD 50 NA and RD 51 NA at the outputs NEXA 05 to NEXA 10 . Thus, the multiplexer 718 controls the output signal for NEXA 05 to NEXA 10 for the next address generation .

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.Finally, these eleven bits NEXA 00 through NEXA 10 are passed from the ROS address, as indicated in block 710 , to the control store to complete the next address.

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.1. Micro program addressing device in a data processing system with a link device ( 12 ) which performs link operations on the basis of data, these link operations comprising a first and a second micro program routine, with a control memory device ( 10 ) with a large number of stored micro-instructions which the link device in question ( 12 ) to enable the execution of the operations in question in a manner determined by the micro-instructions concerned, with an address generation device ( 42 ) which allows the control storage device ( 10 ) to be addressed, with a control storage data register ( 38 ), with an interrupt device ( 54 ), which allows the execution of the first microprogram routine to be interrupted for the purpose of executing the second microprogram routine, and with a securing device ( 40 ) which ensures an address ( RSRA ) which is associated with the last microinstruction of the first microprogram routine, the address in question comprising a plurality of bits, each having either a first state or a second state, characterized by the provision of state changing means ( 880 ) which upon return of allowing the second microprogram routine to resume execution of the interrupted first microprogram routine to invert the state of a bit of the relevant bits of the address associated with the relevant last microinstruction before returning to execution of the first microprogram routine. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das betreffende eine Bit das Bit niedrigster Wertigkeit der die Adresse bildenden Bits ist.2. Device according to claim 1, characterized in that the relevant one bit the least significant bit which is the bits forming the address. 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.3. Device according to claim 1, characterized in that the second microprogram routine is a subroutine that is executed by the first routine and other routines can be used multiple times is. 4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Sicherstellungseinrichtung (40) ein Register ist.4. Device according to claim 1, characterized in that the securing device ( 40 ) is a register. 5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Zustandsänderungseinrichtung (880) zur Änderung des Zustands des betreffenden einen Bits ein Inverter ist.5. Device according to claim 1, characterized in that the state changing device ( 880 ) for changing the state of the relevant one bit is an inverter. 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.6. Device according to claim 1, characterized in that the securing device ( 40 ) and the state changing device ( 880 ) are connected to one another in such a way that the address actually stored by the relevant securing device is the address of the next instruction following the relevant last instruction. 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.7. Device according to claim 1, characterized in that the securing device ( 40 ) is a register with a plurality of bit positions, that the state changing device ( 880 ) is an inverter and that a connecting device is provided which connects the inverter with a location of the relevant register connects in such a way that the state of the relevant bit can be changed. 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.8. Device according to claim 7, characterized in that each registry office of the registry in question has an input and an output and that the Inverter with the input side of the relevant register connected is. 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.9. Device according to claim 7, characterized in that each registry office of the registry in question has an input and an output and that the relevant inverter connected to the output side is.
DE19803000107 1979-01-03 1980-01-03 DATA PROCESSING ARRANGEMENT AND DATA PROCESSOR USED WITH THIS Granted DE3000107A1 (en)

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 (en) 1980-07-17
DE3000107C2 true DE3000107C2 (en) 1988-06-01

Family

ID=26668073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803000107 Granted DE3000107A1 (en) 1979-01-03 1980-01-03 DATA PROCESSING ARRANGEMENT AND DATA PROCESSOR USED WITH THIS

Country Status (4)

Country Link
CA (1) CA1138118A (en)
DE (1) DE3000107A1 (en)
FR (1) FR2445987B1 (en)
GB (2) GB2040519B (en)

Families Citing this family (2)

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

Also Published As

Publication number Publication date
GB2117943B (en) 1984-03-21
GB2040519B (en) 1983-08-17
GB8302033D0 (en) 1983-02-23
FR2445987B1 (en) 1985-11-22
GB2040519A (en) 1980-08-28
GB2117943A (en) 1983-10-19
FR2445987A1 (en) 1980-08-01
DE3000107A1 (en) 1980-07-17
CA1138118A (en) 1982-12-21

Similar Documents

Publication Publication Date Title
DE2846495C2 (en) Central unit
DE2316296C2 (en) Micro programmable processor
DE1931966C3 (en) Data processing system with associative memories
DE69833008T2 (en) PROCESSOR WITH INSTRUCTION CODING BY MEANS OF A TEMPLATE
DE3851746T2 (en) Jump prediction.
DE2515696C2 (en) Data processing system
DE2714805A1 (en) DATA PROCESSING SYSTEM
DE2357003A1 (en) PROGRAMMABLE PROCESSOR
DE2517276A1 (en) DATA PROCESSING SYSTEM
DE1499200B2 (en) DATA PROCESSING SYSTEM WITH PRIORITY CONTROLLED PROGRAM INTERRUPTION
DE2524046C2 (en) Electronic data processing system
DE3131341A1 (en) "BUFFER STORAGE ORGANIZATION"
DE2806024A1 (en) STORAGE SYSTEM WITH ERROR DETECTION AND CORRECTION POSSIBILITY
DE3121742C2 (en) Microprogram control device
DE2612139A1 (en) INPUT / OUTPUT CONTROL SYSTEM
DE1929010B2 (en) MODULAR DATA PROCESSING SYSTEM
EP0010185A1 (en) Virtual-addressing device for a computer
DE69315192T2 (en) Data processing system and method with an expandable register
DE2830334C2 (en)
DE2952163C2 (en) Data processing system with a first and a second processor
DE3000107C2 (en)
DE2854400A1 (en) ARRANGEMENT FOR CHANGING BETWEEN TOOTHED PROGRAMS TO BE PROCESSED
DE2906685A1 (en) INSTRUCTION DECODER
DE2952072C2 (en) Calculation circuit for adding or subtracting binary coded decimal numbers
DE2702722A1 (en) INSTRUCTION INTERPRETATION IN ELECTRONIC DATA PROCESSING SYSTEMS

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