DE2419836C3 - Circuit arrangement for executing subprogram jump instructions in data processing systems - Google Patents

Circuit arrangement for executing subprogram jump instructions in data processing systems

Info

Publication number
DE2419836C3
DE2419836C3 DE2419836A DE2419836A DE2419836C3 DE 2419836 C3 DE2419836 C3 DE 2419836C3 DE 2419836 A DE2419836 A DE 2419836A DE 2419836 A DE2419836 A DE 2419836A DE 2419836 C3 DE2419836 C3 DE 2419836C3
Authority
DE
Germany
Prior art keywords
address
command
register
jump
instruction
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
DE2419836A
Other languages
German (de)
Other versions
DE2419836A1 (en
DE2419836B2 (en
Inventor
Reinhard Ing.(Grad.) 4791 Elsen Hampel
Bojan Dipl.-Ing. 4794 Schloss Neuhaus Ponebsek
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 CA225,076A priority patent/CA1028428A/en
Priority to FR7512348A priority patent/FR2269145B1/fr
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; 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
    • 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 UnterprogramnrSprungbefehlen irt Datenverarbeitungsanlagen gemäß dem Oberbegriff des Anspruches 1.The invention relates to a circuit arrangement for carrying out sub-program jump commands Data processing systems according to the preamble of claim 1.

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 Befehlsspeicher 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 Auslegung aus dem Befehlsspeicher, z. B. in ein Befehlsregister, sowie damit die Durchführung durch den jeweiligen Befehl t5 - orbestimmter Funktionen veranlaßt.In data processing systems, information is stored in source registers within the framework of a specified program taken, subjected to an operation and stored again in a destination register. Such processes 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 removal is controlled ίο by a command address register that the controls individual command words present in the command memory one after the other and their interpretation the instruction memory, e.g. B. in a command register, as well as the implementation by the respective command t5 - initiated certain 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 ProgrammsprungIt 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

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 vorbestiinmten Stelle in dem Programm fortgefahren wird. Zu diesem Zweck muß das Befehlsadrel-register so gesteuert werden, daß es abweichend von der vorgegebenen Reihenfolge denjenigen Befehl sprungarüg 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 vorhanden ist.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 command address register must be controlled in such a way that deviating from the specified sequence, it triggers the command that was 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 is.

Im besonderen 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 Unter heidung 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, muß dann vor der Durchführung des Unterprogramms die Adresse desjenigen Befehls ge speichert werden, nach dem die normale Programmfolfe verlassen wird, um zu gewährleisten, daß nach Durchführung des I Interprogramms der nächstfolgende Befehl des Haiiplprogramms wieder erreicht wird, wozu also die Bildung der entsprechenden Ruckkehradresse erforderlich istIn particular, it can be obtained through an operation depending on certain criteria in each Results become necessary to carry out so-called subprogram jumps. This means, that a special additional program runs between two mostly consecutive commands got to. which is referred to as a sub-program to distinguish it from the main program. To achieve, that after this subroutine has run, the sequence of commands given by the main program is continued, the address of that command must then be ge before the execution of the subroutine after which the normal program follow is left to ensure that after Implementation of the I interprogram of the next one Command of the shark program is reached again, for what purpose i.e. the formation of the corresponding return address is required

ledes Befehlswort hat einen Operationsteil und einrii Adreßteil \ls Kriterium fur die Durchführung eines Untcrprogrammsprunges wurde bisher ein besonderer Code im Operationsteil des Befehlswortes verwendet, (siehe 2, B. IBM^System/SöO Principles of Operation, 1964, Seiten 63 bis 66). Dadurch entsteht zwangsläufig _ eine mit einem besonderen Äuswerteerfordernis verbundene Mehrdeutigkeit des Operationsteils, womit ein besonderer Aufwand für die Decodierung der Be* fehlsworte verbunden ist. Es ist nämlich erforderlich, im Rahmen der Decodierung festzulegen, ob der Operationsteil des jeweiligen Befehlswortes eine echteEach command word has an operation part and a unit Address part \ ls criterion for performing a Subprogram jump has so far been a special one Code used in the operation part of the command word, (see 2, B. IBM ^ System / SöO Principles of Operation, 1964, pages 63 to 66). This inevitably creates _ an ambiguity of the operation part associated with a special expression requirement, with which a special effort for the decoding of the Be * wrong words is connected. This is because it is necessary in the context of decoding to determine whether the operational part of the respective command word a real one

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.Operation or the described storage or the memorization process for that command address should control which immediately precedes the initiation of the subprogram jump and from which then also the return address following it must 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. Decodierschritt 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 größer wird. '5If 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 increases. '5

Durch »Digitale Rechenanlagen«, Springer-Verlag Berlin, 1957, 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 eier Befehlsworte und den damit verbundenen und zuvor beschriebenen Nachteilen.With "Digitale Rechenanlagen", Springer-Verlag Berlin, 1957, pages 185 and 271 to 273, it is already there known. To use additions to command words, e.g. B. execute jump commands and thus words from distinguish two different types. This principle also leads to an elongation egg Command words and the associated disadvantages described above.

Es ist die Aufgabe der Erfindung, Unterprogrammsprünge zu ermöglichen und dabei ohne eine Verlangerung der dazu verwendeten Befehlsworte den zu ihrer Decodierung und Auswertung erforderlichen Schaltungsaufwand herabzusetzen und trotzdem Mehrdeutigkeiten zu vermeiden.It is the object of the invention to enable subprogram jumps without being extended of the command words used for this purpose, the circuitry required for their decoding and evaluation and still avoid ambiguity.

Diese Aufgabe wird für eine Schaltungsanordnung eingangs genannter Art erfindungügemäß durch die Merkmale im Kennzeichen des Anspruchs 1 gelöst.This object is according to the invention for a circuit arrangement of the type mentioned by the Features in the characterizing part of claim 1 solved.

Die Erfindung beruht auf der Erkenntnis, daß bei Verwendung von Befehlsworten, die stets aus zwei oder mehr, stets jedoch aus einer geradzahligen Anzahl von 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 0. 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 -15 Stelle eines Befehlsadressenwortes der binäre Zustand I auftritt, so kennzeichnet dieser Zustand eine Situation, die für eine Befehlsadresse an sich verboten ist. Daraus kann aber das Kriterium abgeleitet werden, daß mit einer Adresse, die dieses geringstwertige Bit 5" aufweist, ein Unterprogrammsprung durchzuführen ist. Dieses Kriterium ist also nicht im ursprünglichen Be fehlswort allein enthalten, sondern es entsteht durch eine Aufbereitung entsprechend der Erzeugungsvor schrift des Befehls Das Kriterium veranlaßt die Speicherung b/w. das Merken der Adresse des /ulet/t durchgeführten Befehls b/w. die Bildung der Rückkehr adresse für den auf ihn im Uauptprograrr.m folgenden Befehl, so daß dieser nach Durchführung des Unter Programms sicher angesteuert werden kann.The invention is based on the knowledge that when using command words, which always consist of two or more, but always consist of an even number of partial words, the length of which is the rest of the The information word length corresponds to the command address, i.e. the specification of the respective memory location has an even value. This command address always has the binary address in the least significant position Value 0. It is thus possible to use the least significant bit of an instruction address to accommodate a special To use the criterion, in the present case to identify a subroutine jump to be carried out. If the binary state is in the least significant -15 position of a command address word I occurs, this state marks a situation that is forbidden for an instruction address per se is. From this, however, the criterion can be derived that with an address that contains this least significant bit 5 " has to perform a subroutine jump. So this criterion is not in the original Be Contains wrong word alone, but it arises from a preparation according to the generation before writing of the command The criterion causes the storage b / w. memorizing the address of / ulet / t executed command b / w. the formation of the return address for the person following him in the main program Command so that it 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 Unierpfograrhmspruhg- 6i befehlen nach der Erfindung zeigt.An embodiment of the invention is described below with reference to the figure, which shows a block diagram of a circuit arrangement for processing commands in a data processing system and for performing Unierpfograrhmspruhg- 6 i commands according to the invention.

In der Figur ist innerhalb des arithmetischen Teils einer Datenverarbeiiungsemritihtung die Ansteuerung eines Hauptspeichers 20 mit Befehls- und Datenadretsen dargestellt Befehlsworte, die in einer Programmroutine nacheinander ausgespeichert werden, gelangen dabei aus dem Hauptspeicher 20 in ein Befehlsregister 40, von dem aus sie auf ein Steuerwerk 34 einwirken, das ein Mikroprogramm enthalten kann und Steuergrößen STl 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-Sprungsignale UP, die das Steuerwerk 34 veranlassen, Steuergrößen zur Durchführung von Unterprogramm-Sprungbefehlen abzugeben.In the figure, within the arithmetic part of a data processing system, the control of a main memory 20 with command and data addresses is shown act, which can contain a microprogram and emits control variables STl to STn with which the functions to be described are controlled. The control unit 34 also receives control signals, e.g. B. status signals from the arithmetic unit 27 of the data processing device and subroutine jump signals UP, which cause the control unit 34 to output control variables for the implementation of subroutine jump commands.

Die Figur zeigt alle Verbindungen zwischen den einzelnen Funktionsgruppen der besseren Übersicht halber einfach, wobei Mehrfachleitungen durch entsprechende Kennzeichnung ihrer Aderzahl deutlich gemacht sind.The figure shows all connections between the individual function groups for a better overview for the sake of simplicity, with multiple lines made clear by appropriate identification of their number of cores are.

Der Hauptspeicher 20 enthält versu.iedene Speicherbereiche oder Speicherabschnitte 21, 22, A3 und 24, die beispielsweise zur Speicherung von Daten, von Befehlsworten für Hauptprogramme, von BefehLvorten 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 Schieberegi sier.The main memory 20 contains various memory areas or memory sections 21, 22, A3 and 24 which are used, for example, to store data, command words for main programs, command words for subprograms and return addresses. The return address storage section 24 is also referred to as a return address stack. This section works in a similar way to a sliding grinder.

Der Hauptspeicher 20 wird durch ein Aciressenregister 25 adressiert, in das die jeweilige Acfesse eingeschrieben wird, die im Hauptspeicher anzusteuern ist. Somit wild 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 S7~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. ST5 durchgeschaltet werden. Über das UND Glied 36 werden Befehlsadressen und Rückkehrad^essen in noch zu beschreibender Weise in das Adreßregister 25 eingegeben, während über das UND-Glied 37 Daten adressen eingegeben wenlen, die aus der arithmetischen Einheit 27 der Datenver.r leitungseiniichtung stammen. Befehlsadressen und Rm kkehradressenzeiger können in einem BefehlsadreOregistcr Ii 7 b/.v/. einem Register R 6 gespeichert werden, da^ auch als Keller/eigerregi ster bezeichnet ist. Fine Kückkehradresse aus dem Rcjisur R 7 ist nach einer noch /u beschreibenden Modifizierung dem Rückkehradresscnkeller 24 inner halb des Hauptspeichers 20 /u/uführen. Dw beiden Register /?6und R 7 gehören /u einem Registerblock 26 der D.itenvcrarbcitungscinrichtung. der eine größere Anzahl von F.in/elregistern enthält, mit denen die verschiedensten Funktionen durchgeführt werden, die hier jedoch nicht näher zu erläutern sirid.The main memory 20 is addressed by an access register 25 into which the respective acfesse that is to be controlled in the main memory is written. Thus, depending on the address in the address register 25, one of the sections 21, 22, 23, 24 and in each case a specific memory location is controlled. Depending on whether operands or command words are read from the main memory 20, one of two AND gates 32 and 38 is switched through by means of the control variables STS or S7 ~ 9. which are supplied by the 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 ST5 . 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 data addresses which originate from the arithmetic unit 27 of the data processing unit are entered via the AND element 37. Command addresses and return address pointers can be stored in a command address register Ii 7 b / .v /. a register R 6 is stored, as ^ is also referred to as a basement / own register. The return address from the Rcjisur R 7 is, after a modification to be described below, to the return address cell 24 within the main memory 20 / u /. The two registers /? 6 and R 7 belong to a register block 26 of the data processing device. contains a greater number of F.in/e lr egistern with which the various functions are performed, but Sirid not explain in detail here.

im Rahmen eines normalen Hauptprograrrtinaölaufs Werden in linearer Folge nacheinander Befehlsworte abgearbeitet, die dem Abschnitt 22 des Hauptspeichers 20 entnommen werc'?n. Diese Befehlsworte werden hierzu von dem Befehlsadreßregister R 7 her adressiert, wozu dieses seinen Speicherinhalt immer so ändert, daß eine fortlaufende Adressierung der Befehlsworte des Hauptprogramms möglich ist. Die Steuerung hierzuIn the context of a normal main program run, command words that are taken from section 22 of main memory 20 are processed in a linear sequence one after the other. For this purpose, these command words are addressed from the command address register R 7 , for which purpose it always changes its memory content so that the command words of the main program can be continuously addressed. The control for this

erfolgt über einen Adressendecodierer 41, der durch Steuergrößen STi vom Steuerwerk 34 her so gesteuert wird, daß nach Decodierung die verschiedenen Register RO bis R 7 des Registerblocks 26 je nach Erfordernis angesteuert werden. Die Veränderung des Speieherinhalts des Befehlsadreßregisters R 7 erfolgt derart, daß bei der Durchführung eines jeden Befehls sein Speicherinhalt über ein durch eine Steuergröße ST6 aufgesteuertes UND-Glied 30 in eines von zwei Operandenregistern 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 einer Steuergröße ST 7 aufgesteuertes UND-Glied 31 eine Konstante mit dem Wert 2 eingeschrieben. Die Speicherinhalle der Operandenregister 28 und 29 werden dann in der arithmetischen Einheit 27 addiert, und das Additionsergebnis wird dann uver «en . müsgsng «er sriinriiciiscucn tiinuCit 27 ίπ u35 Befehlsadreßregister R 7 zurückgeschrieben. Diese Einspeicherung erfolgt über ein UND-Glied 42 bzw. 43. das durch eine Steuergröße ST2 durchgeschaltet 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 5T10 bezeichnet.takes place via an address decoder 41, which is controlled by control variables STi from the control unit 34 so that, after decoding, the various registers RO to R 7 of the register block 26 are controlled as required. The memory contents of the instruction address register R 7 are changed in such a way that when each instruction is carried out, its memory contents are transferred to one of two operand registers 28 and 29, which is referred to as operand register A , via an AND element 30 controlled by a control variable ST6. Furthermore, a constant with the value 2 is written into the second operand register 29, which is denoted by B , via an AND element 31 controlled by a control variable ST 7. The Speicherinhalle of the operand registers 28 and 29 are then summed in the arithmetic unit 27, and the addition result is then he u v «s. must be sriinriiciiscucn tiinuCit 27 ίπ u35 Command address register R 7 written back. This storage takes place via an AND element 42 or 43, which is switched through by a control variable 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. These control variables are denoted by 5T10 in the figure.

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 5T8, gelangt der Sprungadreßteil aus dem Hauptspeicher 20 in das Operandenregister 29. das für die Operanden B 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 Befehlsadreß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ßregister R 7 über den bereits beschriebenen Weg eingeschrieben. Es erscheint also am Ausgang des Befehlsadreß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 Oberspringen mehrerer Befehlsworte verursacht, wonach dann dort das Hauptprogramm fortgesetzt werden kann. Die Weite des Sprungs, d. h. die Anzahl zu überspringender Befehlsworte, ergibt sich aus der in das Operandenregister ßcingespeicherten Information des Sprungbefehls. Die Durchführung von Unterprogrammsprüngen ist durch eine binäre 1 an der niedrigstwertigen Stelle einer Befehlsadresse gekennzeichnet. Wenn diese binäre 1 auftritt, so wird dies durch ein UND-Glied 33 am für die niedrigstwertige Stelle vorgesehenen Einzelsteuereingang des UND-Gliedes 43 erkannt. Dieses Kriterium '.vird also einerseits durch dieIf 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 5T8, the jump address part is transferred from the main memory 20 to the operand register 29, which is provided for the B 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 jump over, 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 command that is stored in the operand register. The execution of subprogram jumps is indicated by a binary 1 at the lowest value position of an instruction address. If this binary 1 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 thus on the one hand by the

ίο Einspeisung einer Befehlsadresse in das Befchlsadreßregister R 7, andererseits durch die binäre 1 an der niedrigsten Stelle einer Befehlsadresse erzeugt. Das UND-Glied 33 gibi ein Steuersignal L)P ab. das dem Steuerwerk 34 zugeführt wird. Dieses wird dadurch veranlaßt, keinen normalen Programmsprung, sondern einen Unterprogrammsprung durchzuführen, durch den eine Unterprogrammroutine abgearbeitet wird, derenίο Feeding an instruction address into the instruction address register R 7, on the other hand generated by the binary 1 at the lowest position of an instruction address. The AND gate 33 emits a control signal L) P. which is fed to the control unit 34. This causes this not to carry out a normal program jump, but a subprogram jump through which a subprogram routine is processed, whose

erreichbar sind.are attainable.

Um nach dem Abarbeiten des Unterprogramms wieder zu der Stelle des Hauptprogramms zurückkehren zu können, die auf den vor dem Unterprogramm abgearbeiteten Befehl des Hauptprogramms folgt, ist ein Merken der Adresse erforderlich, die dem zuletzt abgearbeiteten Hauptprogrammbefehl bzw. dem auf diesen tolgenden Befehl entspricht. Diese Adresse wird als Rück '.ehradresse bezeichnet und in den Abschnitt 24 des Hauptspeichers 20 eingeschrieben, der den Rückkehradreßkeller darstellt. Durch eine besondere Steuergröße 6Tl wird der Kellerzeiger aus dem Kellerzeigerregister R 6 innerhalb des Registerblocks 26 in der arithmetischen Einheit 27 wie bereits für die normale Bildung von Befehlsadressen um die Konstante 2 hinsichtlich seines Inhalts vergrößert und das Additionsergebnis über die UND-Glieder 42 und 43, abhängig von einer Steuergröße ST2, wieder in das Kellerzeigerregister R 6 zurückgeschrieben. Danach erfolgt eine Auslesung des neuen Inhalts des Kelierzeigerregisters R 6 in das Adreßregister 25, wodurch der Rückkehradressenkeller 24 adressiert wird. Diese Adressierung ermöglicht nun das Einschreiben des Inhalts des Befehlsadreßregisters R 7 in den Rückkehradressenkeller 24, so daß damit die Folgeadresse 1 gespeichert ist, mit der die Rückkehr in das Hauptprogramm nach Abarbeitung des Unterprogramms erreicht werden kann. Nach der Einspeicherung der Folgeadresse in den Rückkehradressenkeller 24 ist das Befehlsadreßregister R 7 zur Aufnahme der Unterprogramm-Sprungadresse bereit, die eines der im Abschnitt 23 des Hauptspeichers 20 enthaltenen Unterprogramme adressiert.In order to be able to return to the point in the main program after the subroutine has been processed, which follows the command of the main program processed before the subprogram, it is necessary to note the address that corresponds to the last processed main program command or the command following this. This address is referred to as the return address and is written into section 24 of main memory 20 which represents the return address block. By means of a special control variable 6Tl, the content of the stack pointer from the stack pointer register R 6 within the register block 26 in the arithmetic unit 27 is increased by the constant 2, as is already the case for the normal formation of instruction addresses, and the addition result is increased via the AND gates 42 and 43, depending on a control variable ST2, written back to the sub-pointer register R 6. Thereafter, the new contents of the cellar pointer register R 6 are read out 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 command address register R 7 to be written into the return address cell 24 so that the following address 1 is stored with which the return to the main program can be achieved after the subroutine has been processed. After the next address has been stored in the return address cell 24, the instruction address register R 7 is ready to receive the subroutine jump address that addresses one of the subroutines contained in section 23 of the main memory 20.

Da in das Befehlsadreßregister R 7 jeweils nur solche Befehlsadressen eingespeichert werden, deren geringstwertige Stelle durch den geradzahligen Aufbau nicht auszunutzen ist, kann ein Speicherplatz für das geringstwertige Bit entfallen, was innerhalb des Befehlsadreßregisters R 7 durch eine entsprechende Leerstelle gekennzeichnet ist.Since the instruction address register R 7 only stores those instruction addresses whose least significant digit cannot be used due to the even-numbered structure, there is no storage space for the least significant bit, which is indicated by a corresponding blank within the instruction address register R 7.

Hierzu 1 Blatt Zeichnungen1 sheet of drawings

Claims (4)

Patentansprüche:Patent claims: 1. Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen, in denen aus Teilworten gebildete, gegebenenfalls Sprunginformation enthaltende Befehlsworte verwendet werden, die gemäß einem Programm in einen Befehlsspeicher eingespeichert sind und durch Ansteuerung mittels eines Befehlsadreßregisters aus dem Befehlsspeicher ausgelesen werden, wobei abhängig von einem Steuersignal 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 aer. Inhalten von Hüfsregistem in einer arithmetischen Einheit gebildet und in das Befehlsadreßregister eingespeichert wird, dadurchgekennzeichnet, daß zur Bildung des Steuersignals (UP) für einen durchzuführenden Unterprogramm-Sprungbefehl ein konjunktives Verknüpfungsglied (33) vorgesehen ist, das gespeist wird mit dem Adressiersignal für das Befehlsadreßregister (R 7) und mit der niedrigstwertigen Stelle der Ausgangssignale der arithmetischen Einheit (27), wobei die höherwer'igen Stellen dieser Ausgangssignale eine geradzahlige Sprungadresse darstellen.1. Circuit arrangement for executing subprogram jump instructions in data processing systems, in which command words formed from partial words, possibly containing jump information, are used, which are stored in an instruction memory according to a program and read out from the instruction memory by means of an instruction address register, depending on one Control signal for a subroutine jump instruction to be carried out an increment of a subroutine pointer and, by addressing using 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 instruction word and aer. Contents of sub-registers are formed in an arithmetic unit and stored in the command address register, characterized in that a conjunctive logic element (33) is provided to form the control signal (UP) for a subprogram jump command to be carried out, which is fed with the addressing signal for the command address register ( R 7) and with the lowest digit of the output signals of the arithmetic unit (27), the higher digits of these output signals representing an even-numbered jump address. 2. Schaltungsanordnung nax.n Anspruch 1, mit einem Hauptspeicher una einem Registerblock, der das Befehlsadreßregister und de·. Unterprogramm-Kellerzeiger enthält und dessen Informationen abhängig von mit einem Mikroprogramm-Steuerwerk erzeugten Steuersignalen in ein Operandenregister und von diesem in die arithmetische Einheit einzugeben sind, deren Ausgang Einspeichersignale für den Registerblock liefert, dadurch gekennzeichnet, daß ein weiteres Operandenregister (29) vorgesehen ist, in das 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.2. Circuit arrangement nax.n claim 1, with a main memory and a register block which contains the instruction address register and the ·. Subroutine pointer contains and its information depending on with a microprogram control unit generated control signals in an operand register and from this in the arithmetic unit whose output supplies storage signals for the register block, characterized in that that a further operand register (29) is provided in which components from the address part of the im Main memory (20) existing instructions are to be stored, and that both operand registers (28,29) are connected to the arithmetic unit (27). 3. Schaltungsanordnung nach Anspruch 2. dadurch gekennzeichnet, daß das Befehlsadreßregister (R 7) une gegenüber der Stellenzahi der verwende ten Adreßworte um eine Stelle gekürzte .Stellenzahl aufweist.3. Circuit arrangement according to claim 2, characterized in that the command address register (R 7) has a number of digits shortened by one digit compared to the number of digits of the address words used. 4. Schaltungsanordnung nach Anspruch 1. dadurch gekennzeichnet, daß das Steuersignal (UPj für einen durchzuführenden Unterprogramm-Sprungbefehl auf das Mikroprogramm Steuerwerk (34) geführt ist. das die Erhöhung des L'ntcrprngramm-Kellerzeigers (in Rb) und die Finspeiche rung einer Rückkehradresse aus dem Befehlsadreü register (R 7) in den Ruckkchradressenspeicher (24) steuert.4. Circuit arrangement according to claim 1, characterized in that the control signal (UPj for a subroutine jump instruction to be carried out is routed to the microprogram control unit (34). The increase in the L'ntcrprngramm-pointer (in Rb) and the Finspeiche tion of a return address from the command address register (R 7) into the return address memory (24).
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.
FR7512348A FR2269145B1 (en) 1974-04-24 1975-04-21
CA225,076A CA1028428A (en) 1974-04-24 1975-04-21 Method and apparatus for sub-programme jumping
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 DE2419836B2 (en) 1977-07-28
DE2419836C3 true 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)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2835261C2 (en) * 1978-08-11 1982-04-15 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Data processing unit
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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2704842C2 (en) Data processing device operating in pipeline operation
DE1499182C3 (en) Data storage system
DE2735814A1 (en) DATA PROCESSING DEVICE
DE2630323B2 (en) Data storage device with a main memory, an auxiliary memory and a look-ahead logic
DE2448690A1 (en) BASEMENT STORAGE DEVICE FOR A DATA PROCESSING SYSTEM
DE2318069A1 (en) COMPUTER CONTROL SYSTEM USING MICROPROGRAMMING AND STATIC / DYNAMIC EXTENSION OF CONTROL FUNCTIONS USING HARDWIRED LOGICAL MATRIX
DE1774908B2 (en) DATA PROCESSING SYSTEM
DE2644441A1 (en) DATA PROCESSING SYSTEM
DE2023354A1 (en) Programmable unit and method of operating a programmable unit
DE2054830C3 (en) Information processing system with means for accessing memory data fields of variable length
DE1774870C3 (en) Device for addressing a memory cell of a memory in a data processing system
DE2746505A1 (en) IT SYSTEM WITH A DEVICE FOR ADDRESSING MICRO PROGRAMS STORED IN A FIXED VALUE MEMORY
DE3441640A1 (en) STRIP FIELD STORAGE CONTROLLER
DE3031964A1 (en) COMPUTER SYSTEM IN WHICH THE PROGRAM MEMORY IS SUITABLE TO CROSS, WHILE DATA UNASSIGNED FROM A COMMAND IS DETECTED INDIVIDUALLY
DE2617485A1 (en) PROCEDURE AND CIRCUIT ARRANGEMENT FOR PROCESSING MICRO-COMMAND SEQUENCES IN DATA PROCESSING SYSTEMS
DE1524200B2 (en) TIMING CONTROL FOR AN ELECTRONIC NUMBER CALCULATOR
DE2419836C3 (en) Circuit arrangement for executing subprogram jump instructions in data processing systems
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE1180171B (en) Number calculator
DE2723706A1 (en) DEVICE FOR ADDRESS COMPARISON
DE1774421B1 (en) MORE PROGRAM DATA PROCESSING SYSTEM
DE2425380C2 (en) Data processing system for the parallel execution of processing operations
DE1221037C2 (en) Process for storing hierarchically ordered data chains and arrangement for carrying out this process
DE1957600C3 (en)
DE1499286B2 (en) DATA PROCESSING SYSTEM

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