Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
DE2419836B2 - CIRCUIT ARRANGEMENT FOR EXECUTING SUB-PROGRAM JUMP COMMANDS IN DATA PROCESSING SYSTEMS - Google Patents
[go: Go Back, main page]

DE2419836B2 - CIRCUIT ARRANGEMENT FOR EXECUTING SUB-PROGRAM JUMP COMMANDS IN DATA PROCESSING SYSTEMS - Google Patents

CIRCUIT ARRANGEMENT FOR EXECUTING SUB-PROGRAM JUMP COMMANDS IN DATA PROCESSING SYSTEMS

Info

Publication number
DE2419836B2
DE2419836B2 DE19742419836 DE2419836A DE2419836B2 DE 2419836 B2 DE2419836 B2 DE 2419836B2 DE 19742419836 DE19742419836 DE 19742419836 DE 2419836 A DE2419836 A DE 2419836A DE 2419836 B2 DE2419836 B2 DE 2419836B2
Authority
DE
Germany
Prior art keywords
command
address
jump
register
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19742419836
Other languages
German (de)
Other versions
DE2419836C3 (en
DE2419836A1 (en
Inventor
Reinhard Ing.(grad.) 4791 Elsen; Ponebsek Bojan Dipl.-Ing 4794 Schloß Neuhaus Hampel
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.)
Wincor Nixdorf International GmbH
Original Assignee
Nixdorf Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nixdorf Computer Corp filed Critical Nixdorf Computer Corp
Priority to DE2419836A priority Critical patent/DE2419836C3/en
Priority to IT20817/75A priority patent/IT1033335B/en
Priority to ES436303A priority patent/ES436303A1/en
Priority to CH472575A priority patent/CH586936A5/xx
Priority to NLAANVRAGE7504628,A priority patent/NL171749C/en
Priority to FR7512348A priority patent/FR2269145B1/fr
Priority to CA225,076A priority patent/CA1028428A/en
Priority to AT309175A priority patent/AT354157B/en
Priority to SE7504699A priority patent/SE411691B/en
Priority to GB16852/75A priority patent/GB1508476A/en
Priority to JP4920775A priority patent/JPS5518394B2/ja
Publication of DE2419836A1 publication Critical patent/DE2419836A1/en
Publication of DE2419836B2 publication Critical patent/DE2419836B2/en
Application granted granted Critical
Publication of DE2419836C3 publication Critical patent/DE2419836C3/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

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 Erfindung betrifft eine Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen, in denen aus Teilworten gebildete, gegebenenfalls Sprungkriterien enthaltende Befehlsworte verwendet werden, die gemäß einem Programm in einen Befehlsspeicher eingespeichert sind und durch Ansteuerung mitteis eines Befehlsadreßregisters aus dem Befehlsspeicher ausgelesen werden, wobei abhängig von einem Kriterium für einen durchzuführenden Unterprogramm-Sprungbefehl eine Erhöhung eines Unterprogramm-Kellerzeigers und durch Adressierung mittels dieses Unterprogramm-Kellerzeigers eine Einspeicherung einer Rückkehradresse aus dem Befehlsadreßregister in einen Rückkehradressenspeicher durchgeführt wird und danach eine geradzahlige Sprungadresse aus Teilen des jeweils aktuellen Befehlswortes und/oder Inhalten von Hilfsspeichern und/oder eines Hauptspeichers in einem Rechenwerk gebildet und in das Befehlsadreßregister eingespeichert wird.The invention relates to a circuit arrangement for carrying out subroutine jump instructions in Data processing systems in which, if necessary, containing jump criteria formed from partial words Command words are used which are stored in an instruction memory according to a program and read out from the instruction memory by means of a command address register, whereby depending on a criterion for a subroutine jump instruction to be carried out one Increase of a subroutine pointer and by addressing using this subroutine pointer a storage of a return address from the instruction address register in a return address memory is carried out and then an even-numbered jump address from parts of each current command word and / or contents of auxiliary memories and / or a main memory in one Arithmetic unit is formed and stored in the command address register.

In Datenverarbeitungsanlagen werden Informationen im Rahmen eines vorgegebenen Programms Quellregistern entnommen, einer Operation unterzogen und in ein Zielregister wieder eingespeichert. Solche Vorgänge erfolgen während einzelner Programmschritte abhängig von Befehlen, die in Form von Befehlsworten einem Befehlsspeichcr bzw. Programmspeicher nacheinander gemäß einer durch das Programm vorgegebenen Reihenfolge entnommen werden. Diese Entnahme wird durch ein Befehlsadreßregister gesteuert, das die einzelnen in dem Befehlsspeicher vorhandenen Befehlsworte nacheinander ansteuert und ihre Auslesung aus dem Befehlsspeicher, z. B. in ein Befehlsregister, sowie damit die Durchführung durch den jeweiligen Befehl vorbestimmter Funktionen veranlaßt.In data processing systems, information is stored in source registers within the framework of a specified program removed, subjected to an operation and stored again in a destination register. Such operations take place during individual program steps depending on commands that are sent to a Instruction memory or program memory one after the other according to a predetermined by the program Sequence can be taken. This extraction is controlled by an instruction address register which the controls individual command words present in the command memory one after the other and reads them out the instruction memory, e.g. B. in a command register, as well as the implementation by the respective command caused by predetermined functions.

Es kann nun im Ablauf eines Programms der Fall eintreten, daß während einzelner Programmschritte durch die jeweils durchgeführten Operationen solche Ergebnisse eintreten, die einen Programmsprung erfordern. Dies bedeutet, daß die durch das Programm an sich vorgegebene Reihenfolge der einzelnen Programmschritte verlassen wird und mit dem in Betracht kommenden Operationsergebnis ein oder mehrere Programmschritte übersprungen werden, so daß an einer durch diesen Sprung vorbestimmten Stelle in dem Programm fortgefahren wird. Zu diesem Zweck muß das Befehlsadreßregister so gesteuert werden, daß es abweichend von der vorgegebenen Reihenfolge denjenigen Befehl sprungartig ansteuert, der an der durch den Sprung vorgegebenen Stelle im Befehlsspeicher steht. Die von dem Befehlsadreßregister dabei anzusteuernde Befehlsadresse ergibt sich dann dadurch, daß bei Auftreten eines einen Sprung veranlassenden Kriteriums der Inhalt des Befehlsadreßregisters nicht nur um einen Programmschritt, sondern so geändert wird, daß zwangsläufig die beim Sprung zu erreichende Befehlsadresse in dem Befehlsadreßregister vorhandenIt can now happen in the course of a program that during individual program steps the operations carried out in each case result in such results that a program jump require. This means that the sequence of the individual Program steps is left and with the operation result in question or several program steps are skipped, so that at a point predetermined by this jump the program continues. For this purpose, the instruction address register must be controlled so that deviating from the specified sequence, it triggers the command abruptly which is linked to the is in the command memory specified by the jump. The ones from the instruction address register The command address to be controlled then results from the fact that when a Criterion, the content of the command address register is changed not just by one program step, but in this way that the command address to be reached during the jump is inevitably present in the command address register

ist. L1 is. L1

Ferner kann es abhängig von bestimmten Kriterien in den jeweils durch eine Operation erhaltenen Ergebnissen erforderlich werden, sogenannte Unterprogrammsprünge durchzuführen. Dies bedeutet, daß zwischen zwei meist aufeinanderfolgenden Befehlen ein besonderes zusätzliches Programm ablaufen muß, das zur Unterscheidung von dem Hauptprogramm als Unterprogramm bezeichnet wird. Um zu erreichen, daß nach Ablauf dieses Unterprogramms die durch das Hauptprogramm vorgegebene Reihenfolge der Befehle fortgesetzt wird, muli dann vor der Durchführung des Unterprogramms die Adresse desjenigen Befehls gespeichert werden, nach dem die normale Programmfolge zu verlassen ist, um zu gewährleisten, daß nach Durchführung des Unterprogramms der nächstfolgende Befehl des Hauptprogramms wieder erreicht wird, wozu also die Bildung der entsprechenden Rückkehradresse erforderlich ist.Furthermore, depending on certain criteria, it can be in the results obtained by an operation are required, so-called subprogram jumps perform. This means that between two mostly consecutive commands a special one additional program must run, which to distinguish it from the main program as a sub-program referred to as. In order to ensure that after this subroutine has run, the given sequence of commands is continued, then muli before executing the Subroutine, the address of that instruction is stored after which the normal program sequence must be exited to ensure that the next one after the subroutine has been carried out Command of the main program is reached again, including the formation of the corresponding return address is required.

Jedes Befehlswort hat einen Operationsteil und einen Adreßteil. Als Kriterium für die Durchführung eines Unterprogrammsprunges wurde bisher ein besonderer Code im Operationsteil des Befehlswortes verwendet (siehe z. B. IBM-System/360 Principles of Operation, 1964, Seiten 63 bis 66). Dadurch entsteht zwangsläufig eine mit einem besonderen Auswerteerfordernis verbundene Mehrdeutigkeit des Operationsteils, womit aber wiederum ein besonderer Aufwand für die Decodierung der Befehlsworte verbunden ist. Es ist nämlich erforderlich, im Rahmen der Decodierung festzulegen, ob der Operationsteil des jeweiligen Befehlswortes eine echte Operation oder aber die beschriebene Speicherung bzw. den Merkvorgang für diejenige Befehlsadresse steuern soll, die der Einleitung des Unterprogrammsprungs unmittelbar vorausgeht und aus der dann auch die auf sie folgende Rückkehradresse zu ermitteln ist.Each command word has an operation part and an address part. As a criterion for performing a A special code was previously used in the operation part of the command word for subroutine jump (see e.g. IBM System / 360 Principles of Operation, 1964, pages 63 to 66). This inevitably creates one associated with a special evaluation requirement Ambiguity of the surgical part, which in turn means a special effort for the Decoding of the command words is connected. Namely, it is necessary in the context of decoding determine whether the operation part of the respective command word is a real operation or the described storage or the memorization process for that command address is to control that of the introduction the subprogram jump immediately precedes and from which then also the one following it Return address is to be determined.

Will man diese Mehrdeutigkeit vermeiden, so müssen längere Befehlsworte verwendet werden, denn es ist dann ein besonderes Unterprogrammsprungkriterium aufzunehmen, dessen Bedeutung in einem besonderen Auswerte- bzw. DecodierschriU festzustellen ist. Eine Verlängerung der Befehlsworte ist jedoch unerwünscht, weil dadurch einerseits der Speicheraufwand für den Befehlsspeicher beachtlich erhöht wird, andererseits aber auch die zur Decodierung der Befehle erforderliche Zeit verlängert wird. Wird kein Unterprogrammsprung durchgeführt und soll trotzdem eine Befehlsschleife eingefügt werden, so muß ein zusätzlicher Befehl vor dieser Schleife veranlassen, daß die Rückkehradresse in einen besonderen Speicher eingeschrieben wird.If you want to avoid this ambiguity, longer command words must be used because it is then to include a special sub-program jump criterion, its meaning in a special one Evaluation or decoding step is to be determined. However, lengthening the command words is undesirable. because on the one hand the memory expenditure for the instruction memory is considerably increased, on the other hand but also the time required to decode the commands is increased. Will not be a subroutine jump is carried out and a command loop is to be inserted anyway, an additional Command prior to this loop cause the return address to be written into special memory will.

Durch »Digitale Rechenanlagen«, Springer-Verlag Berlin, 1967, Seiten 185 und 271 bis 273, ist es bereits bekannt, Zusätze zu Befehlsworten zu verwenden, um z. B. Sprungbefehle auszuführen und somit Worte von zwei verschiedenen Arten zu unterscheiden. Auch dieses Prinzip führt zu einer Verlängerung der Befehlsworte und den damit verbundenen und zuvor beschriebenen Nachteilen.With "Digitale Rechenanlagen", Springer-Verlag Berlin, 1967, pages 185 and 271 to 273, it is already there known to use additions to command words to z. B. execute jump commands and thus words from distinguish two different types. This principle also leads to an extension of the Command words and the associated disadvantages described above.

Es ist Aufgabe der Erfindung, ohne eine Verlängerung der Befehlsworte den zu ihrer Decodierung und Auswertung erforderlichen Schaltungsaufwand herabzusetzen und trotzdem Mehrdeutigkeiten zu vermeiden.It is the object of the invention, without an extension of the command words to their decoding and Evaluation to reduce the circuit effort required and still avoid ambiguities.

Diese Aufgabe wird für eine Schaltungsanordnung eingangs genannter Art erfindungsgemäß dadurch gelöst, daß zur Bildung des Kriteriums für einen rliirrhzuführenden Unterprogramm-Sprungbefehl aus Komponenten, die einerseits dem geradzahligen oder auch ungeradzahligen Adreßteil des Befehls, andererseits dem geradzahligen oder auch ungeradzahligen Inhalt von Hilfsregistern entnommen sind, nach einer diese Komponenten abhängig von einer im jeweils aktuellen Befehlswort enthaltenen Erzeugungsvorschrift für die geradzahlige Sprungadresse und für das Kriterium verknüpfenden Anordnung eine konjunktive Verknüpfung des Ausgangs dieser Anordnung mitThis object is achieved according to the invention for a circuit arrangement of the type mentioned at the beginning solved that for the formation of the criterion for a rliirrhzuführenden subroutine jump instruction Components, on the one hand, the even-numbered or odd-numbered address part of the command, on the other hand are taken from the even-numbered or odd-numbered content of auxiliary registers, after a these components depend on a generation rule contained in the current command word for the even-numbered jump address and for the criterion linking arrangement a conjunctive Link the output of this arrangement with

ίο einem Sprungkriterium vorgesehen ist.ίο a jump criterion is provided.

Die Erfindung beruht auf der Erkenntnis, daß bei Verwendung von Befehlsworten, die stets aus zwei oder meht geradzahligen Teilworten bestehen, deren Länge im übrigen der Informationswortlänge entspricht, die Befehlsadresse, also die Angabe des jeweiligen Speicherplatzes, immer einen geradzahligen Wert hat. An der niedrigstwertigen Stelle hat diese Befehlsadresse also stets den binären Wert O. Es ist somit möglich, das niedrigstwertige Bit einer Befehlsadresse zur Unterbringung eines besonderen Kriteriums auszunutzen, im vorliegenden Falle also zur Kennzeichnung eines durchzuführenden Unterprogrammsprungs. Wenn an der niedrigstwertigen Stelle eines Befehlsadressenwortes der binäre Zustand 1 auftritt, so kennzeichnet dieser Zustand eine Situation, die für eine Befehlsadresse an sich verboten ist. Daraus kann aber wiederum das Kriterium abgeleitet werden, daß mit einer Adresse, die dieses geringstwertige Bit aufweist, ein Unterprogrammsprung durchzuführen ist. Dieses Kriterium ist also nicht im ursprünglichen Befehlswort allein enthalten, sondern es entsteht durch eine Aufbereitung entsprechend der Erzeugungsvorschrift des Befehlswortes. Das Kriterium veranlaßt eine Speicherung bzw. das Merken der Adresse des zuletzt durchgeführten Befehls bzw. die Bildung der Rückkehradresse für den auf ihn im Hauptprogramm folgenden Befehl, so daß dieser nach Durchführung des Unterprogramms sicher angesteuert werden kann.The invention is based on the knowledge that when using command words, which always consist of two or There are more even-numbered partial words, the length of which otherwise corresponds to the information word length that Command address, i.e. the specification of the respective memory location, always has an even-numbered value. This command address always has the binary value O in the least significant position. It is therefore possible to use the exploiting least significant bits of an instruction address to accommodate a special criterion, im present case, therefore, to identify a subprogram jump to be carried out. When on the least significant digit of a command address word occurs when the binary state 1 occurs, then this marks it State a situation that is forbidden per se for an instruction address. From this, however, that can in turn Criterion can be derived that with an address which has this least significant bit, a subroutine jump is to be carried out. This criterion is not contained in the original command word alone, it is created by processing according to the generation specification of the command word. The criterion causes the address of the last one to be saved or noted Command or the formation of the return address for the command following it in the main program, so that this can be safely controlled after the subroutine has been carried out.

Ein Ausführungsbeispiel der Erfindung wird im folgenden an Hand der Figur beschrieben, die in Blockdarstellung eine Schaltungsanordnung zur Verarbeitung von Befehlen in einer Datenverarbeitungsanlage und zur Durchführung von Unterprogrammsprungbefehlen nach der Erfindung zeigt.An embodiment of the invention is described below with reference to the figure in Block diagram of a circuit arrangement for processing commands in a data processing system and shows for performing subroutine jump instructions according to the invention.

In der Figur ist innerhalb des arithmetischen Teils einer Datenverarbeitungseinrichtung die Ansteuerung eines Hauptspeichers 20 mit Befehls- und Datenadressen dargestellt. Befehlsworte, die in einer Programmroutine nacheinander ausgespeichert werden, gelangen dabei aus dem Hauptspeicher 20 in ein Befehlsregister 40, von dem aus sie wiederum auf ein Steuerwerk 34 einwirken, das ein Mikroprogramm enthalten kann und Steuergrößen ST\ bis STn abgibt, mit denen die noch zu beschreibenden Funktionen gesteuert werden. Das Steuerwerk 34 erhält außerdem Steuersignale, z. B. Statussignale von der arithmetischen Einheit 27 der Datenverarbeitungseinrichtung sowie Unterprogramm-Eprungsignale UP, die das Steuerwerk 34 veranlassen, Steuergrößen zur Durchführung von Unterprogramm-In the figure, the control of a main memory 20 with command and data addresses is shown within the arithmetic part of a data processing device. Command words, which are stored one after the other in a program routine, get from the main memory 20 into a command register 40, from which they in turn act on a control unit 34, which can contain a microprogram and emits control variables ST \ to STn , with which the still to descriptive functions can be controlled. The control unit 34 also receives control signals, e.g. B. status signals from the arithmetic unit 27 of the data processing device as well as subroutine jump signals UP, which cause the control unit 34, control variables for the execution of subroutines

(Ki Sprungbefehlen abzugeben.(Give Ki jump commands.

Die Figur zeigt alle Verbindungen zwischen den einzelnen Funktionsgruppen der besseren Übersicht halber einfach, wobei Mehrfachleitungen durch entsprechende Kennzeichnung ihrer Aderzahl deutlich ge-The figure shows all connections between the individual function groups for a better overview for the sake of simplicity, whereby multiple cables are clearly identified by the corresponding identification of their number of cores.

ds macht sind.ds power are.

Der Hauptspeicher 20 enthält verschiedene Speicherbereiche oder Speicherabschnitte 21, 22, 23 und 24, die beispielsweise zur Speicherung von Daten, vonThe main memory 20 contains various memory areas or memory sections 21, 22, 23 and 24, the for example to store data from

Befehlsworten für Hauptprogramme, von Befehlsworten für Unterprogramme und von Rückkehradressen dienen. Der Speicherabschnitt 24 für die Rückkehradressen wird auch als Rückkehradressenkeller bezeichnet. Dieser Abschnitt wirkt ähnlich wie ein Schieberegister. Command words for main programs, command words for subprograms and return addresses to serve. The return address storage section 24 is also referred to as a return address stack. This section acts like a shift register.

Der Hauptspeicher 20 wird durch ein Adressenregister 25 adressiert, in das die jeweilige Adresse eingeschrieben wird, die im Hauptspeicher anzusteuern ist. Somit wird abhängig von der im Adreßregister 25 stehenden Adresse einer der Abschnitte 21, 22, 23, 24 und darin jeweils ein bestimmter Speicherplatz angesteuert. Abhängig davon, ob Operanden oder Befehlsworte aus dem Hauptspeicher 20 ausgelesen werden, erfolgt die Durchschaltung eines von zwei UND-Gliedern 32 und 38 mittels der Steuergrößen STS oder 5Γ9, die vom Steuerwerk 34 geliefert werden. Das Adreßregister 25 kann über zwei UND-Glieder 36 und 37 mit Adressen versorgt werden, wobei diese UND-Glieder jeweils durch eine Steuergröße ST4 bzw. 575 durchgeschaltet werden. Über das UND-Glied 36 werden Befehlsadressen und Rückkehradressen in noch zu beschreibender Weise in das Adreßregister 25 eingegeben, während über das UND-Glied 37 Datcnadrcsscn eingegeben werden, die aus der arithmetischen Einheit 27 der Datenverarbeitungseinrichtung stammen. Befehlsadressen und Rückkehradressenzeiger können in einem Befehlsadrcßrcgister R 7 bzw. einem Register R 6 gespeichert werden, das auch als Kellerzcigcrrcgistcr bezeichnet ist. Eine Rückkehradresse aus dem jo Register R 7 ist nach einer noch zu beschreibenden Modifizierung dem Rückkchradressenkellcr 24 innerhalb des Hauptspeichers 20 zuzuführen. Die beiden Register R 6 und R 7 gehören zu einem Registerblock 26 der Datcnverarbeitungscinrichtung, der eine größere Anzahl von Einzclrcgisiern enthält, mit denen die verschiedensten Funktionen durchgeführt werden, die hier jedoch nicht niiher zu erläutern sind.The main memory 20 is addressed by an address register 25 into which the respective address is written which is to be controlled in the main memory. Thus, depending on the address in the address register 25, one of the sections 21, 22, 23, 24 and a specific memory location therein are controlled. Depending on whether operands or command words are read from main memory 20, one of two AND gates 32 and 38 is switched through by means of control variables STS or 5Γ9, which are supplied by control unit 34. The address register 25 can be supplied with addresses via two AND elements 36 and 37, these AND elements being switched through by a control variable ST4 or 575, respectively. Via the AND element 36, command addresses and return addresses are entered into the address register 25 in a manner still to be described, while the AND element 37 is used to input data addresses which come from the arithmetic unit 27 of the data processing device. Instruction addresses and return address pointers can be stored in an instruction address register R 7 or a register R 6, which is also referred to as a storage register. A return address from the jo register R 7 is to be supplied to the return address cell 24 within the main memory 20 after a modification to be described below. The two registers R 6 and R 7 belong to a register block 26 of the data processing device, which contains a large number of individual controls with which the most varied of functions are carried out, which, however, need not be explained in more detail here.

Im Rahmen eines normalen Hauptprogrammablaufs werden in linearer Folge nacheinander Bcfchlsworte abgearbeitet, die dem Abschnitt 22 des Hauptspeichers 20 entnommen werden. Diese Befehlsworte werden hierzu von dem Befchlsadrcßrcgisicr R 7 her adressiert, wozu dieses seinen Speicherinhalt immer so lindert, daß eine fortlaufende Adressierung der Befehlswort des 4s Hauptprogramms möglich ist. Die Steuerung hierzu erfolgt über einen Adressendccodiercr 41, der durch Steuergrößen ST 1 vom Steuerwerk 34 her so gesteuert wird, dtiQ nach Decodierung die verschiedenen Register R 0 bis R 7 des Registerblocks 26 je nach Erfordernis y> angesteuert werden. Die Veränderung des Speicherin· halts des Bcfehlsadreßrcgisters R 7 erfolgt derart, daß bei der Durchführung eines jeden Befehls sein Speicherinhalt über ein durch eine Steuergröße ST% angesteuertes UND-Glied 30 in eines von zwei ^ Opcrnndcnrcgistcrn 28 und 29 gegeben wird, das als Operandenregister A bezeichnet ist. Ferner wird in das zweite Operandenregister 29, das mit B bezeichnet ist, über ein mit piner Steuergröße ST 7 angesteuertes UND-Glied 31 eine Konstante mit dem Wert 2 (.0 eingeschrieben. Die SpcichcrinhaUc der Operandenregister 28 und 29 werden dann in der arithmetischen Einheit 27 addiert, und das Additionsergebnis wird dann Über den Ausgang der arithmetischen Einheit 27 in das Bcfchlsadressrcgistcr R 7 zurückgeschrieben. Diese < <·> Einspeichcrung erfolgt über ein UND-Glied 42 bzw. 43, das durch eine Steuergröße ST2 durchgeschnltct wird. In diesem Zusammenhang sei darauf hingewiesen, daß die arithmetische Einheit 27 Steuergrößen als Eingangssignale erhält, die den jeweils durchzuführenden arithmetischen Vorgang kennzeichnen. Diese Steuergrößen sind in der Figur mit STlO bezeichnet.As part of a normal main program sequence, key words that are taken from section 22 of main memory 20 are processed one after the other in a linear sequence. For this purpose, these command words are addressed by the command address R 7 , for which purpose this always reduces its memory content in such a way that continuous addressing of the command word of the 4s main program is possible. The control for this takes place via an address decoder 41, which is controlled by control variables ST 1 from the control unit 34 in such a way that after decoding the various registers R 0 to R 7 of the register block 26 are controlled depending on the requirement y>. The memory content of the error address register R 7 is changed in such a way that, when each command is carried out, its memory content is transferred to one of two operating registers 28 and 29 via an AND element 30 controlled by a control variable ST% , which is used as operand register A. is designated. Furthermore, a constant with the value 2 (.0 is written into the second operand register 29, which is denoted by B , via an AND element 31 controlled by a pin control variable ST 7. The memory of the operand registers 28 and 29 are then stored in the arithmetic unit 27 added together and the addition result is then written back via the output of the arithmetic unit 27 in the Bcfchlsadressrcgistcr R 7. this <<·> Einspeichcrung via an aND gate 42 or 43 which is durchgeschnltct by a control amount ST2. in this context, It should be pointed out that the arithmetic unit 27 receives control variables as input signals which characterize the arithmetic operation to be carried out in each case.

Durch die vorstehend beschriebene Operation wurde der Speicherinhalt des Befehlsadreßregister R 7 um die Konstante 2 erhöht. Bei der darauf folgenden neuen Adressierung des Abschnitts 22 wird dann das nächstfolgende Befehlswort gelesen. Durch Wiederholung der vorstehend beschriebenen Funktionen ergibt sich also der normale lineare Ablauf der Befehlsverarbeitung gemäß einem vorgegebenen Hauptprogramm.As a result of the operation described above, the memory content of the instruction address register R 7 was increased by the constant 2. During the subsequent new addressing of section 22, the next command word is then read. By repeating the functions described above, the normal linear sequence of command processing results in accordance with a predetermined main program.

Wird nun ein Sprung innerhalb des Hauptprogramms erforderlich, so tritt ein besonderer, vom linearen Programmablauf abweichender Sprungadreßteil auf. Durch Aufsteuerung des UND-Gliedes 32, abhängig von einer Steuergröße STS, gelangt der Sprungadreßteil aus dem Hauptspeicher 20 in das Operandenregistcr 29, das für die Operanden ß vorgesehen ist. In der arithmetischen Einheit 27 kann dieser Sprungadreßteil dann mit dem Inhalt des Operandenregisters A modifiziert werden. Dies bedeutet beispielsweise, daß bei einem sogenannten relativen Sprung der Inhalt des Befehlsadrcßregisters R 7, der über das UND-Glied 30 in das Operandenregister A eingespeichert wurde, zur Sprungadresse addiert wird. Die so errechnete neue Sprungadresse wird danach in das Befehlsadreßrcgistcr R 7 über den bereits beschriebenen Weg eingeschrieben. F.s erscheint also am Ausgang des Befehlsadrcßregisters R 7 eine Adresse, die nicht ein Befehlswort angibt, das unmittelbar auf das zuvor abgearbeitete Befehlswort innerhalb des Speicherabschnitts 22 im Hauptspeicher 20 folgt, sondern das Überspringen mehrerer Befchlswortc verursacht, wonach dann dort das Hauptprogramm fortgesetzt werden kann. Die Weite des Sprungs, d. h. die Anzahl zu überspringender ßefchlsworte, ergibt sich aus der in das Operandenregister /J eingespeicherten Information des Sprungbefehls.If a jump is now required within the main program, a special jump address part occurs which deviates from the linear program sequence. By activating the AND element 32, depending on a control variable STS, the jump address part arrives from the main memory 20 in the operand register 29, which is provided for the operands β. This jump address part can then be modified with the content of the operand register A in the arithmetic unit 27. This means, for example, that in the case of a so-called relative jump, the content of the instruction address register R 7, which was stored in the operand register A via the AND element 30, is added to the jump address. The new jump address calculated in this way is then written into the command address register R 7 via the route already described. An address appears at the output of the command address register R 7 which does not specify a command word that immediately follows the previously processed command word within the memory section 22 in the main memory 20, but causes several command words to be skipped, after which the main program can be continued there. The length of the jump, ie the number of command words to be skipped, results from the information of the jump instruction stored in the operand register / J.

Die Durchführung von Unterprogrammsprüngen ist nun durch eine binäre I an der niedrigstwertigen Stelle einer Befehlsadresse gekennzeichnet. Wenn diese binäre I auftritt, so wird dies durch ein UND-Glied 33 am für die niedrigstwertige Stelle vorgesehenen Einzelsteuereingang des UND-Gliedes 43 erkannt. Dieses Kriterium wird also einerseits durch die Einspeisung einer Befehlsadresse in das ßcfehlsadrcßrcgister R 7, andererseits durch die binäre I an der niedrigsten Stelle einer Befehlsadresse erzeugt. Das UND-Glied 33 gibt ein Steuersignal UP ab, das dem Steuerwerk 34 zugeführt wird. Dieses wird dadurcti veranlaßt, keinen normalen Programmsprung, sondcrr einen Unterprogrammsprung durchzuführen, durch der eine Unterprogrammroutine abgearbeitet wird, derer Befehle im Abschnitt 23 des Hauptspeichers 2( erreichbar sind. The execution of subroutine jumps is now indicated by a binary I at the lowest value position of an instruction address. When this binary I occurs, this is recognized by an AND element 33 at the individual control input of the AND element 43 provided for the least significant digit. This criterion is generated on the one hand by feeding a command address into the ßcfehlsadrcßrcgister R 7, on the other hand by the binary I at the lowest position of an instruction address. The AND element 33 emits a control signal UP , which is fed to the control unit 34. This is then caused not to carry out a normal program jump, but rather a subprogram jump through which a subprogram routine is processed, the commands of which can be reached in section 23 of main memory 2 (.

Um nach dem Abarbeiten des Unterprogramm wieder zu der Stelle des Hauptprogramms zurückkch rcn zu können, die auf den vor dem Untcrprogramn abgearbeiteten Befehl des Hauptprogramms folgt, is ein Merken der Adresse erforderlich, die dem zulciz abgearbeiteten Hauptprogrammbefehl bzw. dem au diesen folgenden Befehl entspricht. Diese Adresse wir als Rückkehradresse bezeichnet und in den Abschnitt 2 des Hauptspeichers 20 eingeschrieben, der den Rück kchrudreßkeller darstellt. Durch eine besondere Steuci größe STl wird der Kcllerzcigcr aus dem Kcllcrzcigci register R 6 innerhalb des Registerblocks 26 in de arithmetischen Einheit 27 wie bereits für die normalIn order to be able to return to the position in the main program after the processing of the subprogram, which follows the command of the main program processed before the subprogram, it is necessary to memorize the address that corresponds to the main program command processed or the command that follows it. This address is referred to as the return address and is written into section 2 of the main memory 20 which represents the return kchrudreßkeller. The Kcllerzcigcr from the Kcllcrzcigci register R 6 within the register block 26 in the arithmetic unit 27 as it is normal for the normal

e ie η is >. e ie η is>.

g J- ;r :r il 4 B :s O ir cg J-; r: r il 4 B: s O ir c

Bildung von Befehlsadressen um die Konstante hinsichtlich seines Inhalts vergrößert und das Additionsergebnis über die UND-Glieder 42 und 43, abhangig von einer Steuergröße .ST2, wieder in das Keller/eigenegi stcr R 6 zurückgeschrieben. Danach erfolgt eine Auslosung des neuen Inhalts des kellerzeigerregisters R 6 in das Adreßregister 25, wodurch der Rückkehradressenkeller 24 adressiert wird. Diese Adressierung ermöglicht nun das Einschreiben des Inhalts des Befehlsadrcßregisters R 7 in den Rückkehradressenkcller 24, so daß damit die l'olgeadrcsse gespeichert ist, mit der die Rückkehr in das llauptprogramm nach Abarbeitung des Unterprogramms erreicht weiden kann. Nach der Kinspeichcrung der l:olgcadresse in den Rückkehradrcssenkeller 24 ist das Befehlsadreßregister R 7 zur Aufnahme der Wnlerprogramm-Sprungadresse bereit, die eines der im Abschnitt 23 des Hauptspeichers 20 enthaltenen Unterprogramme adressiert.Formation of command addresses increased by the constant with regard to its content and the addition result is written back to the basement / eigenegi stcr R 6 via the AND gates 42 and 43, depending on a control variable .ST2. The new contents of the cell pointer register R 6 are then drawn into the address register 25, as a result of which the return address cell 24 is addressed. This addressing now enables the contents of the instruction address register R 7 to be written into the return address register 24, so that the sequence address is stored with which the return to the main program can be achieved after the subroutine has been processed. After the l Kinspeichcrung: olgcadresse in the Rückkehradrcssenkeller 24, the instruction address is R 7 for receiving the Wnlerprogramm jump address ready to address the one of the subroutines of the main memory 20 contained in the section 23rd

Da in das Befehlsadreßregistci- Rl jeweils nur solche Befehlsadressen eingespeichert werden, deren geringst wertige Stelle durch den geradzahligen Aufbau nichtSince only those command addresses are stored in the command address register Rl whose least significant digit is not due to the even-numbered structure

ίο auszunutzen ist. kann ein Speicherplatz für da> geringsiwertige Bit entfallen, was innerhalb de1 Befehlsadreßregisters R 7 durch eine entsprechend* Leerstelle gekennzeichnet ist.ίο is to be exploited. may be a storage space for as> geringsiwertige bit omitted, which is characterized in de instruction address 1 R 7 by an appropriately * space.

Hierzu 1 Blatt Zeichnungen1 sheet of drawings

it e e 3 η t. e it ee 3 η t. e

r s η h ηrs η h η

Claims (5)

Patentansprüche:Patent claims: 1. Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen, in denen aus Teilworten gebildete, gegebenenfalls Sprungkriterien enthaltende Befehlsworte verwendet werden, die gemäß einem Programm in einen Befehlsspeicher eingespeichert sind und durch Ansteuerung mittels eines BefehlsadreQregisters aus dem Befehlsspeicher ausgelesen werden, wobei abhängig von einem Kriterium für einen durchzuführenden Unterprogramm-Sprungbefehl eine Erhöhung eines Unterprogramm-Keilerzeigers und durch Adressierung mittels dieses Unterprogramm-Kellerzeigers eine Einspeicherung einer Rückkehradresse aus dem Befehlsadreßregister in einen Rückkehradressenspeicher durchgeführt wird und danach eine geradzahlige Sprungadresse aus Teilen des jeweils aktuellen Befehlswortes und/oder Inhalten von Hilfsspeichern und/oder eines Hauptspeichers in einem Rechenwerk gebildet und in das Befehlsadreßregister eingespeichert wird, dadurch gekennzeichnet, daß zur Bildung des Kriteriums für einen durchzuführenden Unterprogramm-Sprungbefehl aus Komponenten, die einerseits dem geradzahligen oder auch ungeradzahligen Adreßteil des Befehls (aus 20), andererseits dem geradzahligen oder auch ungeradzahligen Inhalt von Hilfsregistern (26) entnommen sind, nach eineI- diese Komponenten abhängig von einer im jeweils aktuellen Befehlswort enthaltenen Erzeugunj'svorschrift für die geradzahlige Sprungadresse und für das Kriterium verknüpfenden Anordnung (27) eine konjunktive Verknüpfung (33) des Ausgangs dieser Anordnung (27) mit einem Sprungkriterium vorgesehen ist.1. Circuit arrangement for carrying out subroutine jump commands in data processing systems, in which command words formed from partial words, possibly containing jump criteria, are used, which are stored in a command memory according to a program and read out from the command memory by means of a command address register, depending on a Criterion for a subroutine jump instruction to be carried out is an increment of a subroutine wedge pointer and, by addressing this subroutine pointer, a return address from the instruction address register is stored in a return address memory and then an even-numbered jump address from parts of the current command word and / or contents of auxiliary memories and / or a main memory is formed in an arithmetic unit and stored in the instruction address register, characterized in that for forming the criterion ms for a subroutine jump command to be carried out from components that are taken from the even or odd address part of the command (from 20) on the one hand and the even or odd content of auxiliary registers (26) on the other hand, according to an I - these components depend on one in each case current command word containing generation regulation for the even-numbered jump address and for the criterion-linking arrangement (27) a conjunctive link (33) of the output of this arrangement (27) with a jump criterion is provided. 2. Schaltungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die konjunktive Verknüpfung (33) durch das Signal der geringstwertigen Einspeicherleitung und durch das ein Sprungkriterium darstellende Adressierungssignal für das Befehlsadreßregister (R 7) angesteuert ist. 2. Circuit arrangement according to claim 1, characterized in that the conjunctive link (33) is controlled by the signal of the least significant storage line and by the addressing signal for the command address register (R 7) representing a jump criterion. 3. Schaltungsanordnung nach Anspruch 1 oder 2, mit einem Hauptspeicher und einem Registerblock, der das Befehlsadreßregister und den Unterprogramm-Kellerzeiger enthält und dessen Informationen abhängig von mit einem Mikroprogramm-Sieuerwerk erzeugten Steuersignalen in ein Operandenregister und von diesem in eine arithmetische Einheit einzugeben sind, deren Ausgang Ein-Speichersignale für den Registerblock liefert, dadurch gekennzeichnet, daß ein weiteres Operandenregister (29) vorgesehen ist, in das die Komponenten aus dem Adreßteil des im Hauptspeicher (20) vorhandenen Befehls einzuspeichern sind, und daß beide Operandenregister (28, 29) mit der arithmetischen Einheit (27) verbunden sind.3. Circuit arrangement according to claim 1 or 2, with a main memory and a register block, which is the instruction address register and the subroutine pointer and its information depending on with a microprogram control system generated control signals into an operand register and from this into an arithmetic Units are to be entered, the output of which supplies input memory signals for the register block characterized in that a further operand register (29) is provided in which the components are to be stored from the address part of the instruction present in the main memory (20), and that both operand registers (28, 29) are connected to the arithmetic unit (27). 4. Schaltungsanordnung nach Anspruch 3, dadurch gekennzeichnet, daß das Befehlsadreßregister (R 7) eine gegenüber der Stellenzahl der verwendeten A.dreßworte um eine Stelle gekürzte Stellenzahl aufweist und daß ein mit dem Mikroprogramm-Steuerwerk (34) verbundenes UND-Glied (33) vorgesehen ist, dessen Steuereingänge mit der gerinstwertigen Einspeicherleitung einerseits und mit der Adressierungsleitung für das Befehlsadreßregister (R 7) andererseits verbunden sind.4. Circuit arrangement according to claim 3, characterized in that the command address register (R 7) has a number of digits reduced by one digit compared to the number of digits of the A.dreßworte used and that an AND element (33) connected to the microprogram control unit (34) is provided, the control inputs of which are connected to the least significant storage line on the one hand and to the addressing line for the instruction address register (R 7) on the other hand. 5. Schaltungsanordnung nach Anspruch 1 oder 2,5. Circuit arrangement according to claim 1 or 2, dadurch gekennzeichnet, daß das Kriterium für einen durchzuführenden Unterprogramm-Sprungbefehl auf ein Mikroprogramm-Steuerwerk geführt ist, das die Erhöhung des Unterprogramm-Kellerzeigers (in R 6) und die Einspeicherung einer Rückkehradresse aus dem Befehlsadreßregister (R 7) in den Rückkehradressenspeicher (24) steuert.characterized in that the criterion for a subprogram jump command to be carried out is passed to a microprogram control unit, which increases the subprogram pointer (in R 6) and stores a return address from the command address register (R 7) in the return address memory (24) controls.
DE2419836A 1974-04-24 1974-04-24 Circuit arrangement for executing subprogram jump instructions in data processing systems Expired DE2419836C3 (en)

Priority Applications (11)

Application Number Priority Date Filing Date Title
DE2419836A DE2419836C3 (en) 1974-04-24 1974-04-24 Circuit arrangement for executing subprogram jump instructions in data processing systems
IT20817/75A IT1033335B (en) 1974-04-24 1975-02-28 PROCESS FOR THE EXECUTION OF SUB-PROGRAM SKIP COMMANDS IN DATA PROCESSING PLANTS AND CIRCUIT ARRANGEMENT THAT REALIZES THIS PROCESS
ES436303A ES436303A1 (en) 1974-04-24 1975-04-04 Data processing apparatus
CH472575A CH586936A5 (en) 1974-04-24 1975-04-14
NLAANVRAGE7504628,A NL171749C (en) 1974-04-24 1975-04-18 SWITCHING DEVICE FOR EXPORTING JUMP ORDERS IN A DATA PROCESSING DEVICE.
CA225,076A CA1028428A (en) 1974-04-24 1975-04-21 Method and apparatus for sub-programme jumping
FR7512348A FR2269145B1 (en) 1974-04-24 1975-04-21
AT309175A AT354157B (en) 1974-04-24 1975-04-22 CIRCUIT ARRANGEMENT FOR THE EXECUTION OF SUBROUTINE JUMP COMMANDS IN DATA PROCESSING SYSTEMS
SE7504699A SE411691B (en) 1974-04-24 1975-04-23 CONNECTOR FOR IMPLEMENTATION OF SUB-PROGRAM HOPING INSTRUCTIONS IN DATA PROCESSING SYSTEMS
GB16852/75A GB1508476A (en) 1974-04-24 1975-04-23 Data processing apparatus
JP4920775A JPS5518394B2 (en) 1974-04-24 1975-04-24

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2419836A DE2419836C3 (en) 1974-04-24 1974-04-24 Circuit arrangement for executing subprogram jump instructions in data processing systems

Publications (3)

Publication Number Publication Date
DE2419836A1 DE2419836A1 (en) 1975-10-30
DE2419836B2 true DE2419836B2 (en) 1977-07-28
DE2419836C3 DE2419836C3 (en) 1981-01-08

Family

ID=5913818

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2419836A Expired DE2419836C3 (en) 1974-04-24 1974-04-24 Circuit arrangement for executing subprogram jump instructions in data processing systems

Country Status (11)

Country Link
JP (1) JPS5518394B2 (en)
AT (1) AT354157B (en)
CA (1) CA1028428A (en)
CH (1) CH586936A5 (en)
DE (1) DE2419836C3 (en)
ES (1) ES436303A1 (en)
FR (1) FR2269145B1 (en)
GB (1) GB1508476A (en)
IT (1) IT1033335B (en)
NL (1) NL171749C (en)
SE (1) SE411691B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2835261A1 (en) * 1978-08-11 1980-02-14 Licentia Gmbh Data processor with processing unit and microprogrammed circuit - has controlled data exchange channels and minimal registers and reverse transfer paths

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6359571U (en) * 1986-10-07 1988-04-20
JPS63133176U (en) * 1987-02-24 1988-08-31
DE4211966A1 (en) * 1992-04-09 1993-10-14 Philips Patentverwaltung Arrangement for saving and reading out return data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2835261A1 (en) * 1978-08-11 1980-02-14 Licentia Gmbh Data processor with processing unit and microprogrammed circuit - has controlled data exchange channels and minimal registers and reverse transfer paths

Also Published As

Publication number Publication date
JPS5518394B2 (en) 1980-05-19
JPS50145037A (en) 1975-11-21
FR2269145B1 (en) 1977-04-15
NL171749B (en) 1982-12-01
DE2419836C3 (en) 1981-01-08
IT1033335B (en) 1979-07-10
SE411691B (en) 1980-01-28
ES436303A1 (en) 1977-04-01
AT354157B (en) 1979-12-27
NL171749C (en) 1983-05-02
GB1508476A (en) 1978-04-26
ATA309175A (en) 1979-05-15
NL7504628A (en) 1975-10-28
CA1028428A (en) 1978-03-21
DE2419836A1 (en) 1975-10-30
FR2269145A1 (en) 1975-11-21
SE7504699L (en) 1975-10-27
CH586936A5 (en) 1977-04-15

Similar Documents

Publication Publication Date Title
DE2704842C2 (en) Data processing device operating in pipeline operation
DE2753062C2 (en) Device for the repeated execution of program loops
DE2234867C2 (en) Arrangement in a data processing system for controlling the processing of two mutually independent command sequences
DE2318069C2 (en) Micro-programmed computer system with expansion of control functions by means of a hard-wired logic matrix
DE1499182C3 (en) Data storage system
EP0097725B1 (en) Circuits in the control part of a microprogrammable processor for direct hardware execution of selected instructions
DE2715073C3 (en) Microprogrammed computer control device
DE2036729A1 (en) Digital data processor
DE1275800B (en) Control unit for data processing machines
DE1915818B2 (en) Control circuit for an electronic data processing system
DE1499206C3 (en) Computer system
DE3043653A1 (en) DATA PROCESSING SYSTEM
DE2054830A1 (en) Information processing system with word-structured memory and method for accessing such a memory
DE2617485C3 (en) Circuit arrangement for data processing systems for processing micro instruction sequences
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE1499191B2 (en) ELECTRONIC DEVICE FOR A DATA PROCESSING SYSTEM
DE1957600C3 (en)
DE2419836B2 (en) CIRCUIT ARRANGEMENT FOR EXECUTING SUB-PROGRAM JUMP COMMANDS IN DATA PROCESSING SYSTEMS
DE2425380C2 (en) Data processing system for the parallel execution of processing operations
DE1184122B (en) Adding device
DE1221037B (en) Process for storing hierarchically ordered data chains and arrangement for carrying out this process
DE1499286B2 (en) DATA PROCESSING SYSTEM
DE1524211C3 (en) Data processing system
DE69425289T2 (en) Compilation system for programming languages
DE2150292C2 (en) Microprogram-controlled data processing system with superimposed execution and extraction of commands

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8320 Willingness to grant licences declared (paragraph 23)
8327 Change in the person/name/address of the patent owner

Owner name: SIEMENS NIXDORF INFORMATIONSSYSTEME AG, 4790 PADER

8339 Ceased/non-payment of the annual fee