[go: up one dir, main page]

DE1285219B - Steuerwerk zur Ausfuehrung von Unterprogrammen - Google Patents

Steuerwerk zur Ausfuehrung von Unterprogrammen

Info

Publication number
DE1285219B
DE1285219B DEJ29712A DEJ0029712A DE1285219B DE 1285219 B DE1285219 B DE 1285219B DE J29712 A DEJ29712 A DE J29712A DE J0029712 A DEJ0029712 A DE J0029712A DE 1285219 B DE1285219 B DE 1285219B
Authority
DE
Germany
Prior art keywords
address
subroutine
parameter
program
register
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.)
Withdrawn
Application number
DEJ29712A
Other languages
English (en)
Inventor
Mullery Alvin Paul
Riekert Robert Harold
Schauer Ralph Floyd
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1285219B publication Critical patent/DE1285219B/de
Withdrawn 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

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)
  • Devices For Executing Special Programs (AREA)

Description

Die Erfindung bezieht sich auf ein Steuerwerk zur stufen gestattet. Dies wird bei einem Steuerwerk, das Ausführung von Unterprogrammen bei datenverarbei- einen Programmstufenzähler der erwähnten Art tenden Maschinen. verwendet, im wesentlichen dadurch gelöst, daß ein In der Programmierung datenverarbeitender Ma- Parameterzähler vorgesehen ist, der in einer der schinen ist es bekannt, für bestimmte, häufig auf- 5 eigentlichen Unterprogrammausführung vorausgehentretende Verarbeitungsaufgaben, wie Wurzelberech- den Unterprogramm-Bewertungsoperation für die in nungen oder Ein- und Ausgabe-Operationen, vor- dem jeweiligen Unterprogramm enthaltenen Parameter programmierte Unterprogramme zu verwenden, die (Operanden) in der Reihenfolge ihres Auftretens einmal in den Programmspeicher der Datenverarbei- unterschiedliche Zählwerte bildet, die gemeinsam mit tungsmaschine eingespeichert werden und während der io dem jeweiligen Zählstand des Programmstufenzählers Ausführung des Hauptprogramms wahlweise an als Speicheradresse dienen, auf welchen die Adressen bestimmten Punkten desselben aufgerufen werden. der dem betreffenden Parameterzählstand zugeordneten Ein solches Unterprogramm kann während der Dauer Parameter des bewerteten Unterprogramms in einer des Hauptprogramms mehrmals mit verschiedenen bei der Unterprogrammausführung benötigten Reihen-Operanden bzw. Parametern ablaufen. Die Operanden- 15 folge gespeichert werden, daß Unterprogrammteile, bzw. Parameteradressen eines Unterprogramms sind die auf Parameter aus Programmen der nächstniedridaher variabel. Der Programmierer muß beim Auf- geren Programmstufe Bezug nehmen, eine symbolische stellen des Hauptprogramms Vorsorge treffen, daß mit Adresse mit einem Parameterfolgenummernfeld aufeinem Aufruf eines Unterprogramms diesem auch die weisen, das den Ort der betreffenden Parameter in der richtigen Parameteradressen zur Verfügung gestellt 20 Parameterreihe dieses Programms markiert, daß bei werden. Dies geschieht üblicherweise durch eine Folge Bewertung einer solchen symbolischen Adresse eine programmierter Umspeicher- oder Adressenmodi- Parameterbewertungsschaltung den Stufenzähler auf fizierungs-Operationen. Eine derartige Arbeitsweise ist die Programmstufe des Programms niedrigerer Stufenumständlich und fehleranfällig und erfordert kostbare Ordnung zurückschaltet und den Parameterzähler Maschinenprogrammzeit. Die Programmierung der 25 entsprechend demParameterfolgenummernfeld einstellt Umspeicher- oder Adressenmodifizierungs-Operatio- und daß die so gebildete Adresse zur Entnahme der nen wird insbesondere dann sehr kompliziert, wenn gesuchten Parameteradresse aus dem Speicher dient, innerhalb eines Unterprogramms weitere Unter- die darauf hin auf die nächste Adresse in der Parameterprogramme ausgeführt werden sollen, in die womöglich adressenreihe des zu bewertenden Unterprogramms wiederum Unterprogramme eingeschoben sind, wobei 30 zum Speichern übertragen wird,
die Unterprogramme mit Parametern aus über- Eine vorteilhafte Weiterbildung der Erfindung geordneten Unterprogrammen oder aus dem Haupt- besteht darin, daß ein Kellerspeicher vorgesehen ist programm arbeiten. zur Aufnahme von Programmschluß- und/oder Pro-
Es ist bereits ein Programmwerk für programm- grammadressen beim Übergang auf eine höherwertige
gesteuerte Rechenmaschinen bekanntgeworden, das 35 Unterprogrammstufe und zur Abgabe dieser Adressen
zur beliebigen Ineinanderschachtelung von Unter- bei der Rückkehr zu einer Programmstufe niedrigeren
Programmen einen Programmstufenzähler verwendet, Wertes.
der von einem Hauptprogramm mit der Programmstufe Weitere vorteilhafte Ausgestaltungen der Erfindung
Null ausgehend beim Übergang auf ein sind aus den Ansprüchen in Verbindung mit einem
Unterprogramm auf die Programmstufe 1 geschaltet 40 nachfolgend an Hand von Zeichnungen beschriebenen
wird. Soll dieses Unterprogramm durch ein weiteres Ausführungsbeispiel ersichtlich. Es zeigt
Unterprogramm unterbrochen werden, so wird der F i g. 1 ein stark vereinfachtes Blockschaltbild
Zähler auf 2 geschaltet usw. Es erfolgt dadurch eine einer Datenverarbeitungsanlage mit dem erfindungs-
Markierung der einzelnen Programmstufen, die zur gemäßen Steuerwerk,
Steuerung der Befehlsadressenfolgeschaltungen beim 45 F i g. 2 ein Flußdiagramm, aus dem die prinzipielle
Übergang von der Befehlsfolge eines übergeordneten Arbeitsweise des Steuerwerkes nach F i g. 1 hervor-
Programms auf die eines untergeordneten Programms geht und
oder umgekehrt dient. Das Problem der variablen Fig. 3A, 3B und 3Cein detailliertes Blockschalt-
Parameteradressen wird durch diese Anordnung nicht bild eines Ausführungsbeispiels des erfindungsgemäßen
gelöst. Auch hier sind in Verbindung mit jedem 50 Steuerwerkes.
Unterprogrammanruf programmierte Umspeicher- Bevor auf das Ausführungsbeispiel nach Fig. 1
Operationen auszuführen. eingegangen wird, sei der allgemeine Aufbau eines
Es ist ferner bekannt, in einer Datenverarbeitungs- Maschinenbefehls, der die Ausführung eines Unteranlage bei der Operandenadressierung Adressen zu programme erfordert, erläutert. Prinzipiell ist ein verwenden, die sich aus zwei Adressenkomponenten 55 Unterprogramm eine bestimmte Operation des Rechzusammensetzen. Für die eine Adressenkomponente ners, die nicht unbedingt mathematisch zu sein braucht kann eine Basisadresse dienen, die in einem Register und die bei der Ausführung mathematischer Berechgespeichert wird, und die zweite Adressenkomponente nungen oder anderer Operationen mit dem Rechner kann durch den Stand eines Zählers erhalten werden, relativ häufig vorkommt. Weiter ist das Unterprogramm der das Vorliegen bestimmter Betriebsbedingungen der 60 häufig ziemlich kompliziert. Es erfordert Maschinen-Datenverarbeitungsanlage anzeigt (z. B. deutsches Operationen, die von einem Programmierer sonst Patent 1094 493). jedesmal, wenn er die Ausführung einer bestimmten
Die vorliegende Erfindung hat sich die Aufgabe Operation wünscht, mühsam als besondere Folge von gestellt, ein Steuerwerk für datenverarbeitende Maschi- Befehlen niedergeschrieben werden müßten. Ein nen anzugeben, das unter weitgehender Vermeidung 65 Beispiel für eine mathematische Operation, die in den der oben erläuterten Nachteile eine maschinelle meisten Rechnersystemen den Status eines Unter-Adressenanpassung der von einem Unterprogramm programms hat, ist das Ziehen von Quadratwurzeln, benötigten Parameter für beliebige Unterprogramm- Weitere allgemein bekannte Unterprogramme sind
3 4
ζ. B. Sinus-, Kosinus-, Logarithmus-, Antilogarithmus- enthielte, hätte dieses dritte und niedrigste Unterfunktionen, Umwandeln ins binäre System, Umwan- programm die Stufe 3.
dein ins Dezimalsystem, Eingabe, Ausgabe usw. An Hand der im folgenden erläuterten Befehls-
Je nach dem verwendeten Rechnersystem kann das Symbolik ist ersichtlich, wie die verschiedenen Befehle
Unterprogramm im normalen Lese-Schreib-Speicher 5 in der Beschreibung bezeichnet werden. Natürlich
oder als Teil einer Quasimaschinenstruktur, wenn es können beliebige Symbole bei der Vorbereitung einer
sich um ein mikroprogrammiertes System handelt, Maschinenoperation verwendet werden. Jedem der
gespeichert werden. Auf jeden Fall enthält das gespei- Symbole ist eine bestimmte binäre Codebezeichnung
cherte Unterprogramm eine genaue Liste von Maschi- zugeordnet,
nenbefehlen, die, wenn sie nacheinander auftreten, die io
Ausführung einer erforderlichen Operation bewirken. § = Die folgenden beiden Zeichenstellen Das können Schleifenbefehle oder auch nur ein im Befehlsregister, d. h. der Unternormaler Satz von aufeinanderfolgenden, durch das programmaufruf, sind die Anfangs-System auszuführenden Schritten sein. Der Unter- adresse einer bestimmten Unterproprogrammaufruf, d. h., die Anweisung, daß ein 15 grammfolge im Speicher;
Unterprogramm ausgeführt werden muß, und der , _ ,
Name oder die Adresse dieses Unterprogramms und > = f s Ei!de ^Ines Unterprogramms im
seine Parameter im Maschinenbefehl haben die all- Autrulbefenl;
gemeine Form [Unterprogramm, A, (B + C), D]; ? = die folgenden beiden Zeichenstellen
dabei ist »Unterprogramm« der Name eines bestimmten ao sind eine Adresse im Speicher für
Unterprogramms, und A, (B + C) und D sind einen Parameter im Aufrufbefehl; Parameter des Unterprogramms. In ihrer normalen
Reihenfolge sind diese Parameter gewöhnlich der Par = eine Anforderung aus dem System
erste, der zweite und der dritte für das Unterprogramm nacn einem bestimmten Parameter
erforderliche Parameter. Man sieht also, daß dadurch, 25 während der Ausführung des Unter-
daß ein Unterprogramm angegeben sowie Parameter Programms;
aufgeführt werden, der Maschinenbefehl die Möglich- Spezial- 1
keit erhält, zum Unterprogramm abzuzweigen und adressen- I = das Ende deg UnterprOgramms wäh.
dieses auszuführen uberein- rend desgen Ausführung-
Das vorliegende System ist in zwei Teile unterteilbar. 30 summung j
Der erste Teil bezieht sich auf den Unterprogrammaufruf, der angibt, welches Unterprogramm ausgeführt Wie aus der nachstehenden Beschreibung hervorwerden muß, und zwar gewöhnlich durch Bezeichnung geht, ist das vorliegende System imstande, die vordes Speicherplatzes des Unterprogramms im Speicher, stehenden Symbole zu erkennen, wenn sie im Befehlsund der außerdem die Parameter aufführt. Während 35 register des Rechners erscheinen, und verzweigt seine des Unterprogrammaufrufs bewahrt das vorliegende Steuerungen dementsprechend, um gemäß der jeweili-System diejenigen laufenden Befehlsadressen auf, die gen Situation oder dem aufgerufenen Befehl vornötig sind, um zu dem gewünschten Punkt in dem zugehen. Es folgt ein aus einem Unterprogramm Befehl zurückzukehren. Es bestimmt außerdem, in bestehendes Beispiel, das die obenstehende Sprache welcher Richtung das System laufen muß, wenn es 40 veranschaulichen soll. Es sei ein Unterprogramm mit der Ausführung des Unterprogramms beginnt, und definiert, das »Wiederholen« heißt und folgende stellt Steuerungen ein, um den Abschluß des Unter- Operation ausführt:
Programms festzustellen. Dieser Operationsabschnitt
bewertet weiterhin die Parameter und liefert Adressen /J|_ _a ^ __ par 2 \ „.
dieser Parameter im Speicher an einem besonderen 45 \ 2 par 1 /'
Adressenspeicherplatz. Diese Parameter können
während der eigentlichen Ausführung des Unter- In diesem mathematischen Ausdruck sind par 1
Programms durch das System entnommen werden. und par 2 die beiden Parameter des Unterprogramms
Der zweite Teil betrifft die Ausführung des Unter- oder die Zahlen, mit denen die angegebenen Rechenprogramms, die Ansteuerung von Parametern im 50 vorgänge ausgeführt werden müssen. Dieses UnterSpeicher und schließlich die Rückführung der System- programm würde wie folgt als Unterprogrammaufruf steuerung zu der ursprünglichen Befehlsfolge nach in dem Systembefehlssatz geschrieben:
Abschluß des Unterprogramms. Dieser Teil besitzt
weiterhin Steuerungen für die Entnahme eines Para- §7T, NN, QQ). (2)
meters aus einem höherstufigen Unterprogramm oder 55
eines während der Ausführung eines höherstufigen In dem vorstehenden Ausdruck zeigt das Zeichen (§)
Unterprogramms abgespeicherten Parameters, wenn an, daß die nächsten beiden Zeichenstellen die Speicher-
dieser von einem der Unterprogramme niedrigerer adresse des Anfangs des Unterprogramms sind. Diese
Stufen benötigt wird. Adresse wird durch (IT) dargestellt. Das (,) zeigt an,
Bei der Erwähnung einer Stufe des Unterprogramms 60 daß die nächsten beiden Zeichenstellen die Adresse
und des allgemeinen Maschinenbefehls wird die Stufe des ersten Parameters im Speicher darstellen. Diese
des normalen Maschinenbefehls als die Stufe 0 oder tatsächliche Adresse des ersten Parameters im Speicher
die höchste Stufe angesehen. Das erste angetroffene wird dargestellt durch (NN). Das zweite (,) zeigt
Unterprogramm hat dann die Stufe 1, und weitere wiederum an, daß die nächsten beiden Zeichenstellen
Unterprogramme innerhalb von Unterprogrammen 65 die Adresse eines zweiten Parameters darstellen. Diese
weisen entsprechend niedrigere Stufenanzeiger auf, Adresse wird dargestellt durch (QQ). Schließlich
Wenn z. B. das erste Unterprogramm ein zweites und kennzeichnet das Zeichen »)« das Ende des Unter-
dieses zweite Unterprogramm seinerseits ein drittel programms im Aufrufbefehl. Dieser vorstehende
Unterprogrammausdrack würde folgenden Rechen- programm ist im Speicher gespeichert und besteht aus Vorgang zur Folge haben: folgenden Schritten:
»Wiederholen« = 0,5 (nN - ®L\ (3) (SR:) EN:. 5* (par 1) -> XX
\ NN) 5 (Schleife:) § IT, XX, par 1) -> XX'
Falls XX-XX' < par 2, bis zum Ende
Für die Adressenbezeichnungen stehen in einem fortfahren
Arbeitsbeispiel entsprechende Zahlen, wie nachstehend (5) χχ' _> χχ gehe zur Schleife
beschrieben wird. χχ'
Das System beim Erkennen des Unterprogramm- 10 (ΕΝί) Aufruf signals (§) muß die Steuerung zum Zwischenspeichern der Unterprogrammadresse in Betrieb In diesem Unterprogramm stellt par 1 die Zahl dar, setzen, wodurch das Unterprogramm ausgeführt deren Quadratwurzel zu ziehen ist, und par 2 stellt werden kann, nachdem das Ende des Ausdrucks für den Genauigkeitsgrad dar, bis zu dem dieses »Quadratden Unterprogrammaufruf festgestellt worden ist »)«, 15 wurzek-Unterprogramm fortgesetzt werden muß. Wie d. h., nachdem der Unterprogrammaufruf vollständig man sieht, erscheint im »Quadratwurzek-Unterausgewertet worden ist. Nach Feststellung des Sym- programm die Verwendung eines anderen Unterbols § werden daher die beiden nächsten Zeichen (/Γ) Programms, des )>Wiederhole«-Unterprogramms. Das zeitweilig in ein Register eingegeben, und die Para- System hat die Eigenschaft, daß es vollständige meter AW und QQ werden bewertet und in einer 20 Freiheit bezüglich der Zahl von Unterprogrammen ersten und zweiten besonderen Adressenspeichersteile innerhalb von Unterprogrammen sowie bezüglich der für Parameter gespeichert. Bei Feststellung des Verwendung von Parametern läßt. Der gewünschte Symbols ) weiß das System, daß der Ausdruck für den Parameter wird stets für das richtige Unterprogramm Unterprogrammaufruf vollständig bewertet worden zur Verfugung gestellt. Aus dem vorstehenden Beispiel ist, und benutzt nun die Unterprogrammadresse, um 25 ist zu ersehen, daß par 1 des »Quadratwurzele-Unterdas Unterprogramm aus dem Speicher zu entnehmen programms in Wirklichkeit par 2 des »Wiederhole«- und es in das Befehlsregister des Systems einzugeben. Unterprogramms wird.
Danach entnimmt es die Adresse des Symbols) aus In dem vorgenannten »Quadratwurzel«-Unterpro-
dem Befehlsregister und setzt sie in einen Kellerspeicher gramm ist der erste Schritt die Modifizierung von ein und bringt die Endadresse des Unterprogramms 30 par 1 durch Multiplikation mit 0,5. Dieses Resultat in ein besonderes Arbeitsregister58 (Fig. 3C) ein, wird dann in ein durch die Adresse XX bezeichnetes so daß bei der Ausführung des Unterprogramms eine Resultatregister übertragen. Der zweite oder Schleifenfortlaufende Adressenprüfung in bezug auf diese schritt des »Quadratwurzek-Unterprogramms ist die Adresse erfolgen kann, um festzustellen, wann das Ausführung des »Wiederhole«-Unterprogramms, wobei Ende des Unterprogramms erreicht ist. Bei der Aus- 35 par 1 des »Wiederholei-Unterprogramms in der herführung des Unterprogramms und bei der Anforderung kömmlichen Form einer Speicheradresse, d. h. XX, des ersten Parameters entnimmt das System die angegeben ist. Der zweite Parameter des UnterAdresse NN und verwendet sie, um die gewünschte programms wird durch die symbolische Adresse par 1 Information aus dem Speicher zu entnehmen. Ebenso gegeben, wobei es sich natürlich um par 1 des »Quadratwird, wenn der zweite Parameter aufgerufen wird, die 40 wurzel-Unterprogramms handelt. Bei der Bewertung Adresse QQ entnommen und ihrerseits benutzt, um dieses inneren Unterprogramms stellt das System die die zweite für die Ausführung des Unterprogramms Adresse XX an den speziellen Speicherplatz für den nötige Information zu entnehmen. Nach der Aus- ersten Parameter dieses Unterprogramms. Um die führung des Unterprogramms wird die Rückkehr- richtige Speicheradresse für das pari, das vorher adresse in dem Befehl aus dem speziellen Kellerspeicher 45 gespeichert wurde, zu erhalten, wird par 1 bewertet, als entnommen, und der Hauptbefehl selbst wird wieder ob es normal in dem Programm für das »Quadratin das Befehlsregister eingestellt und die Steuerung auf wurzel«-Unterprogramm erschienen wäre. Diese den herkömmlichen Befehlssatz zurückgeführt, bis Adresse wird in den Speicherplatz eingebracht, der weitere Unterprogramme auftauchen. für den zweiten Parameter par 2 für das innere Unter-
Vorstehend handelt es sich um den einfachen Fall 50 programm bezeichnet worden ist. Es ist also klar, daß eines einzigen Unterprogrammaufrufs. Nun sei der durch das vorliegende System die Art und Weise, in Fall betrachtet, daß ein bestimmtes Unterprogramm der Unterprogramme enthaltende Unterprogramme tatsächlich ein weiteres Unterprogramm enthält, dessen aufgerufen werden, stark vereinfacht wird. Da das Ausführung für seine eigene Ausführung notwendig innere Unterprogramm vollständig allgemein ausist. Als Beispiel gelte das »Quadratwurzek-Unter- 55 gedrückt werden kann, unabhängig von der Stufe, auf programm, das wie folgt geschrieben wird: der es benutzt wird, erfordert es nicht die Rückkehr
zum Hauptprogramm, um die Parameter für das
δ VR NN Oi) ~) Cd\ betreffende Unterprogramm bereitzustellen.
8 ' ' y^;" w Die restlichen Befehle des »Quadratwurzek-Unter-
60 programms sind herkömmlicher Art. Der dritte Schritt
Dies ist ein Unterprogrammaufruf nach einem ist eine Bedingte-Verzweigungs-Operation, bei der »Quadratwurzek-Unterprogramm, worin das Sym- zwei Zahlen für einen bestimmten Umstand verglichen bol (§) anzeigt, daß die nächsten Zeichen die Adresse werden und das Resultat zur Verzweigung der Operadieser Unterprogrammfolge im Speicher anzeigen, das tion entweder zu deren Ende oder zurück in den Komma und die Zeichen AW und QQ die beiden 65 »Schleifenfr-Teil der Operation führt. Parameter sind, die für die Ausführung dieses Unter- Die Gegenstände und Vorteile des Systems gehen
programms nötig sind, und das Zeichen) das Ende deutlicher aus der nachstehenden Beschreibung der des Unterprogrammaufrufs darstellt. Dieses Unter- Erfindung an Hand der Zeichnungen hervor.
F i g. 1 zeigt ein Blockschaltbild einer Rechenanlage mit gespeichertem Programm, die gemäß der Erfindung ausgebildet ist. Eine solche Universal-Rechenanlage besteht in bekannter Weise aus einer Befehls - Steuereinheit, die die Programmbefehle empfängt und Signale zu der Speicherzugriffssteuerschaltung sendet, um sowohl Befehle als auch Daten aus dem Speicher zu entnehmen, sowie Befehle zu der Recheneinheit sendet, die verschiedene mathematische Operationen mit den entnommenen Daten ausführt. Die Befehls- und Steuereinheit bewirkt daraufhin die erneute Speicherung der Ergebnisse der verschiedenen mathematischen Operationen im Speicher an dem gewünschten Speicherplatz für Resultate. Der als »Unterprogramm-Zugriff s- und Bewertungssteuerschaltung« bezeichnete Teil von F i g. 1 wird durch einen in der Befehlsfolge auftretenden Unterprogrammaufruf betätigt und veranlaßt die Steuerung zur Verzweigung in ein Unterprogramm. Wie schon allgemein erwähnt worden ist, bewertet dieser Teil des Systems ein Unterprogramm insoweit, als das Speichern und das Erlangen solcher Adressen nötig ist, um das Unterprogramm dem Speicher zu entnehmen und es auszuführen. Außerdem bewertet er die Parameter und bewirkt deren Speicherung am richtigen Speicherplatz im Speicher.
Der andere Block innerhalb des gestrichelt umrandeten Teils von F i g. 1 ist als »Parameterzugriffssteuerschaltung« bezeichnet. Er bewirkt die Ansteuerung der Parameter im Speicher bei der Ausführung des Unterprogramms. Diese Schaltung erkennt auch in erster Linie, daß ein symbolischer Parameteraufruf in einem inneren Unterprogramm anzeigt, daß die tatsächliche Parameteradresse aus einem höherrangigen Unterprogramm geholt werden muß. Er bewirkt, daß die Systemsteuerung diesen Befehl von einem Aufruf zur Entnahme des Unterprogramms aus dem Speicher unterscheidet, und erkennt ihn als Bewertungsroutine. Diese letztgenannte Operation ist in einem später beschriebenen Beispiel ausführlich dargestellt.
F i g. 2 zeigt ein allgemeines Flußdiagramm, das unter gleichzeitiger Bezugnahme auf F i g. 3 die Aufeinanderfolge der Operationen darstellt. Jeder der Blöcke dieses Flußdiagramms enthält in der rechten oberen Ecke eine Nummer, die die Bezugnahme auf die verschiedenen Teile dieses Flußdiagramms im Text erleichtern soll. In F i g. 2 bestimmt der als »Befehlsbewertungsblock« bezeichnete Block 1 den Ausgangszustand der Operationsfolge, die durch das Programm eingeleitet wird. Während dieser Operation zeigt das Befehlsregister 51 (F i g. 3 A) und dessen Decodierer 52 an, ob es sich um einen Programmbefehl mit einem Zeichen handelt, das die Verlagerung der Steuerung in den Unterprogramm - Bewertungsmechanismus bewirkt. Der mit »Unterprogramm festgestellt« bezeichnete Block 2 von F i g. 2 zeigt an, daß hier die Unterprogrammanzeige (§) gefunden worden ist, durch die eine Verzweigung in die Unterprogramm-Steuerschaltimgen bewirkt wird. Außerdem zeigt dieser Block an, daß bestimmte einleitende Schritte unternommen werden, wie z. B. die Zwischenspeicherung der Unterprogramm-Anfangsadresse im Register53 (Fig. 3A) bis zur vollständigen Bewertung des Unterprogramms und bis das Unterprogramm aus dem Speicher entnommen und mit seiner Ausführung begonnen werden kann. Sofort nach dem Antreffen des Unterprogramms werden die Parameter im Block 3 in F i g. 2 bewertet, indem der Parameter selbst bewertet und seine Adresse im Hauptspeicher 54 (F i g. 3 C) an der aus der Stufen-Parameter-Adresse (LPA) bei 55 in F i g. 3 B abgeleiteten Adresse gespeichert wird. Wie noch erläutert wird, wird die LPA-Adresse aus dem Stufenzähler 56 sowie aus dem Parameterzähler 57 abgeleitet, und zwar sind diese beiden Zähler entsprechend der Stufe des Unterprogramms eingestellt, die gerade bewertet sind, sowie entsprechend der Zahl des gerade bewerteten Parameters. Nach Abschluß der Parameterbewertung und
ίο Feststellung des Schlusses des Unterprogramms »)« verzweigt die Steuerung zum Block 4 von F i g. 2. In diesem Block wird die Anfangsadresse des Unterprogramms aus dem Register 53 entnommen. Mit Hilfe dieser Adresse wird das Unterprogramm aus dem Speicher 54 entnommen. Wie bereits erläutert wurde, wird für unser Beispiel die Endadresse dieses Unterprogramms aus dem Speicher gelesen und in ein Unterprogramm-Endadressenregister 58 (F i g. 3 B) eingegeben, in welchem sie mit der derzeitigen Adresse im
ao Befehlsadressenregister 59 (F i g. 3 A) verglichen wird, während die Steuerung eine Bewertung des Unterprogrammbefehls vornimmt. Außerdem werden die derzeitige Befehlsadresse und die derzeitige Unterprogramm-Endadresse im Kellerspeicher 60 (F i g. 3 C) gespeichert. Der untere Teil des Blockes 4 von F i g. 2 stellt die Rückverzweigung zum Block 1 dar, in welchem der Unterprogrammbefehl bewertet und in der üblichen Weise ausgeführt wird. Nach Abschluß des Programms (Block 5) signalisiert entweder die Maschine »Ende«, was bedeutet, daß das konventionelle Programm abgeschlossen ist, oder sie sendet, wenn sie gerade ein Unterprogramm ausführt, ein Signal zu Block 6. Diese Verzweigung wird dadurch erreicht, daß der Inhalt des Befehlsadressenregisters 59 mit dem Inhalt des Unterprogramm-Endadressenregisters 53 verglichen wird. Wenn diese beiden Adressen übereinstimmen und genügend Zeit für die Ausführung des laufenden Befehls im Befehlsregister eingeräumt worden ist, kehrt die Systemsteuerung zurück zum Hauptprogramm. Wenn zum Anzeigen des Schlusses eines Unterprogramms eine spezielle Markierung verwendet wird, wird durch die Feststellung dieser Markierung anstatt durch eine Adressenüberemstimmung das Ende des Unterprogramms angezeigt. Block 6 gibt an, daß bei Abschluß des Unterprogramms die Anschlußadresse aus dem Kellerspeicher 60 entnommen werden muß, welche den ursprünglichen Befehl anzeigt, der nach Beendigung des Unterprogramms an der Reihe ist. Diese Adresse dient zum erneuten Beladen des Befehlsregisters mit dem folgenden Programmbefehl. Außerdem wird die Endadresse eines Unterprogramms niedrigerer Stufe, wenn ein solches vorliegt, in das Unterprogramm-Endadressenregister eingegeben, falls das soeben abgeschlossene Unterprogramm ein Unterprogramm niedrigerer Stufe innerhalb eines Unterprogramms ist. Gleichzeitig wird der Stand des Stufenzählers 56 um 1 verringert, so daß nachfolgende Anforderungen von Parametern zu der Entnahme von Parametern aus der richtigen Speicheradresse führen. Nach Abschluß von Block 6 kehrt das System wieder zum Befehlsbewertungsblock 1 zurück, in welcher es mit dem laufenden Programm im Befehlsregister 51 fortfährt.
Block 7 führt die Entnahme eines Parameters aus dem Speicher 54 unter Verwendung der Stufen-Parameteradresse aus, wenn im Unterprogramm eine Parameteranforderung vorliegt. Wie schon erwähnt, unterscheidet sich die Ausführung des Unterprogramms von
809 647/1921
9 10
der Bewertung des Unterprogrammaufrufs. Im erst- Das Unterprogramm 53 hat den Zweck, die Adresse genannten Fall muß zuerst die Adresse aus dem spe- des Anfangs des Unterprogramms im Speicher 54 ziellen Speicherplatz entnommen werden, und danach nach Feststellung dieses Unterprogramms vorübermüssen die Daten entnommen werden, damit die be- gehend zu speichern. Diese Adresse wird später aus treffenden Operationen durchgeführt werden können. 5 diesem Register 53 entnommen und über die Tore G24, In der vorstehenden Beschreibung von typischen Un- G14 in das Speicheradressenregister 62 eingeführt, terprogrammen und im nachstehenden Beispiel ist das Das Objektadressenregister 63 dient in erster Linie
Symbol »par«, das normalerweise eine Anforderung zum Speichern der Adresse von Daten, d. h. Paranach einem bestimmten Parameter während der Aus- metern. Diese Adressen werden entweder während der führung eines Unterprogramms bedeutet, in Form von io Bewertung eines Parameters im Speicher gespeichert drei Zeichenstellen dargestellt. Tatsächlich würde ein oder verwendet, um unter Wirkung der Befehlsaussolches Symbol nur eine Zeichenstelle in Form einer führungssteuereinheit 65 Daten aus dem Speicher zu Kombination von binären Bits in dem Befehl besetzen. entnehmen. Der Stufenzähler 56 und der Parameter-Die Steuerungen gemäß Block 7 und Block 3 wirken zähler 57 bilden die Stufen-Parameteradresse, die bei der Feststellung, wann das Symbol »par« in einer 15 zur Speicherung von Parameteradressen während der Anforderung nach einer Parameterbewertung während Bewertung von Parametern dient. Das Stufen-Zählereiner Unterprogrammbewertung erscheint und bei der register 56 überwacht die Unterprogrammhierarchie, Unterscheidung dieser Situation gegenüber dem Fall, in der sich das System derzeit befindet, und das Paradaß ein Unterprogramm ausgeführt und ein Parameter meterzählerregister 57 überwacht die Eingabe der angefordert wird, zusammen. Dies wird in einem spä- 20 eigentlichen Parameteradressen in aufeinanderfolgende teren Abschnitt noch beschrieben. Speicherstellen während der Parameterbewertung.
In der folgenden Beschreibung wird näher auf die Weiter wird es benutzt, um eine Zahl aus dem Befehls-Anordnung nach F i g. 3 und deren Wirkungsweise register 51 während einer Parameterentnahmeopeunter Bezugnahme auf F i g. 2 eingegangen. ration zu empfangen, wenn das Unterprogramm in der
Die dargestellte Anordnung verwendet zur Ausfüh- 25 Ausführung begriffen ist. Diese Zahl wird benutzt, rung der Operationsfolgen Taktgeberketten, die aus um die Datenadresse aus dem Speicher anzusteuern, hintereinandergeschalteten bistabilen oder monostabi- mit deren Hilfe die Daten zum Ausführen der erforderlen Schaltelementen bestehen, die nacheinander kurz- liehen Operation entnommen werden, zeitig in den Arbeitszustand geschaltet werden. Das Unterprogramm-Endadressenregister 58 dient
Die in Block 2 angegebenen Schritte werden durch 30 zum Speichern der Endadresse eines bestimmten die Taktgeberkette SS2 bis SS 4B bewirkt. Unterprogramms, das gerade ausgeführt wird. Diese
Die durch Block 3 in F i g. 2 dargestellten Schritte Adresse wird fortlaufend mit dem Inhalt des Befehlswerden durch die Taktgeberkette ÄSöbis SS12 bewirkt. adressenregisters 59 verglichen, damit die Anordnung Die von Block 4 bewirkten Operationen werden durch feststellen kann, wenn das Ende eines Unterprogramms die Taktgeberkette SS14 bis SS20 bewirkt. 35 erreicht ist. In einem solchen Fall wird die Steuerung
Die durch Block 6 in F i g. 2 dargestellten Schritte auf den nächsten Befehl der nächsthöheren Programmwerden durch die Taktgeberkette SS22 bis SS26 be- stufe zurückgeschaltet, bei der es sich entweder um ein wirkt, die durch Block 7 in Fig. 2 dargestellten Unterprogramm oder um das Hauptprogramm handeln Schritte durch die Taktgeberkette SS28 bis SS38. Die kann.
durch Block 5 des Flußdiagramms von Fig. 2 dar- 40 Der Unterprogramm-Kellerspeicher 60 wird benutzt, gestellten Schritte sind diejenigen Schritte, die in her- um die Anschlußadresse einer Befehlsfolge vor dem kömmlicher Weise Befehlsregister mit entsprechenden Eintritt in ein Unterprogramm zu speichern oder die Steuerschaltungen ausgeführt werden. Endadresse eines beliebigen Unterprogramms, das
Der in der unteren Hälfte der F i g. 3 A, 3 B, 3 C er- gerade in Ausführung begriffen ist, festzuhalten, wenn scheinende Hauptsteuerteil zeigt mehrere monostabile 45 ein weiteres Unterprogramm festgestellt wird. Wäre Multivibrator-Taktgeberstufen, die von SS2 bis SS3S der laufende Befehl, der festgestellt wird, das Hauptnumeriert sind. Jede dieser Stufen ist ein bekannter programm, so wäre die im Kellerspeicher 60 gespeimonostabilder Multivibrator, der, wenn er angestoßen cherte Endadresse eine 0, die anzeigt, daß die nächtwird, einen ersten Ausgangsimpuls und zum Rück- höhere Stufe das Hauptprogramm ist. schaltzeitpunkt eine zweiten Ausgangsimpuls erzeugt. 50 Das Speicheradressenregister 62 und der Speicher 54 Abweichend von der dargestellten Schaltung können sind in bekannter Weise ausgebildet. Der Speicher ist natürlich auch andere Folgeschaltungen im Rahmen z. B. ein dreidimensionaler, wortweise adressierbarer der Erfindung verwendet werden. Speicher mit wahlfreiem Zugriff.
Zur Verdeutlichung der Erfindung wird nachstehend Der Decodierer 52 ist ein herkömmlicher binärer
ein Beispiel erläutert, in dem ein Unterprogramm mit 55 Decodierer, in dem ein binärer Eingangscode, der ein einem darin enthaltenen weiteren Unterprogramm ent- Zeichen im Befehlsregister 51 darstellt decodiert und halten ist. Das Befehlsregister 51 ist ein herkömmliches je nach dem festgestellten Zeichen eine seiner Ausgangs-Befehlsregister, das zur Eingabe des jeweiligen Pro- leitungen erregt. Die vier Ausgangsleitungen die für grammbefehls in die Anordnung dient. Ein in dieses die Erläuterung der Erfindung von Bedeutung sind, Register eingegebener Befehl wird zeichenweise unter 60 sind die Leitung»)«, die das Ende eines Unterproder Steuerung eines zugeordneten Zählringes 61 aus- gramms anzeigt, die Leitung (§), die den Anfangeines gewertet. In das Befehlsregister 51 oder aus diesem Unterprogramms anzeigt, die Leitung (par), die eine können Befehle zeichenweise unter der Steuerung des Anforderung nach einem Parameter während der zugeordneten Zählringes 61 übertragen werden. Außer- Ausführung eines Unterprogramms anzeigt, und die dem kann jeweils ein vollständiges Befehlswort über 65 Leitung Q5 die anzeigt, daß ein Parameter während die Torschaltung G18 übertragen werden, die das eines Unterprogramm- und Parameterbewertungs-Befehlsregister 51 mit dem Speicher 54 verbindet, programme folgt. Ein auf diesen Leitungen erscheiwenn das durch ein Steuersignal CIP gefordert wird. nendes Signal leitet die Durchschaltung der ver-
schiedenen in F i g. 3 gezeigten Taktgeberketten S1S1 ein, zu denen die Leitungen führen.
Das Adressenvergleichsregister 64 ist ein Vergleichsregister, das eine Unterprogramm-Endadresse aus dem Register 58 und die jeweilige Befehlsadresse aus dem Register 59 zugeführt erhält, und das im Fall einer Übereinstimmung beider Adressen ein Signal zur Hauptprogramm-Bef ehlssteuerschaltung65 liefert. Dies zeigt an, daß das Ende eines in Ausführung begriffenen Unterprogramms erreicht ist. Das Signal IAR = SER auf der Ausgangsleitung des Vergleichsregisters 64 bedeutet, daß die Ausführung jedes weiteren zum jeweiligen Unterprogramm gehörenden Befehls verhindert wird.
Wie das vorliegende System im einzelnen arbeitet, geht aus dem nachstehenden Beispiel eines Unterprogramms hervor, das in einem Hauptbefehlsprogramm auftritt. Es handelt sich dabei um denselben Befehl, der oben beschrieben worden ist, nämlich
20 §SÄ, NN, QQ).
Die nachstehende Zeitfolgetabelle führt die Operationen auf, die während jedes Taktgeberumlaufs stattfinden müssen, und gibt außerdem die Folgeoperationen und die bedingten Verzweigungen zur Festlegung der Richtung an, in welcher eine Steuerfolge verläuft. Aus dieser Zeitfolgetabelle in Verbindung mit dem Flußdiagramm von F i g. 2 und dem logischen Schaltschema von F i g. 3 kann die Wirkungsweise des Systems verfolgt werden.
CL-12 = Erhöhe den Wert im Parameterzählerregister 57.
Falls das nächste Zeichen ein weiteres (,) ist, kehre zurück zu CL-6,
falls das nächste Zeichen ein »)« ist -> CL-U.
CL-XA = Übertrage die Adresse der nächsten Zeichenstelle im Befehlsregister 51 zum Unterprogramm-Endadressenregister 58.
-> CL-U.
CL-16 Übertrage die Adresse im Unterprogramm-EndadressenregisterSSzumUnterprogramm-Kellerspeicher 60.
-> CL-18.
CL-IS = Übertrage die Adresse im Unterprogrammadressenregister 53 zum Befehlsregister 51. Steuere den Speicher 54 an der im Befehlsadressenregister stehenden Adresse an, um deren Inhalt in das Befehlsregister 51 zu übertragen.
->
Zeitfolgetabelle
CL-I — Stelle Parameterzählerregister 57 auf 1 zurück.
-> CL-A.
35 CL-Il ■■ Übertrage die Endadresse des Unterprogramms aus dem Befehlsregister 51 in das Unterprogramm-Endadressenregister 58.
Stelle die Steuerung zurück zur Befehlsausführungssteuereinheit 65 bis die Anordnung feststellt, daß die Adresse im Befehlsadressenregister 59 der Adresse im Unterprogramm-Endadressenregister 58 gleicht.
An dieser Stelle fahre mit CL-Il fort.
Übertrage den Inhalt des Unterprogramm-Kellerspeichers 60 in das Unterprogramm-Endadressenregister 58.
-> CL-IA.
CL-A = Erhöhe den Stand des Stufen-Zählerre- 40 CL-IA gisters 56.
CL-AB.
CL-AB = Schalte das Befehlsregister 51 weiter und CL-16 übertrage die nächsten beiden Zeichen in das Unterprogrammadressenregister 53.
Falls das nächste Zeichen (,) ist -> CL-6, falls das nächste Zeichen ein) ist ->■ CL-14.
CL-6 = Übertrage die nächsten beiden Zeichen im Befehlsregister 51 zum Objektadressenregister 63.
Schalte das Befehlsregister 51 weiter.
Vermindere
register 56.
-*- CL-26.
den Wert im Stufen-Zähler-
Falls das nächste Zeichen ein (par) ist -> CL-36,
falls das nächste Zeichen kein (par) ist -* CL-8.
55
CL-8 = Übertrage den Inhalt der Stufen-Parameteradresse von 55 zum Speicheradressenre- CX-30 · gister 62.
-^ CL-IO.
CL-IO = Übertrage die im Objektadressenregister 63 gespeicherte, aus zwei Zeichen bestehende CL-1H Adresse in den Speicher 54.
-> CL-12.
■ Übertrage den Inhalt des Unterprogramm-Kellerspeichers 60 in das Befehlsadressenregister 59.
-^CIP.
(An dieser Stelle setzt wieder das herkömmliche Befehlsprogramm ein, und die Anordnung fährt mit der Interpretation des normalen Befehls fort bis eins der oben aufgezählten vier Zeichen vom Decodierer 52 festgestellt wird.)
Falls aus dem Decodierer 52 ein par-Signal erscheint und CL-6 im Aus-Zustand ist -> CL-IS.
CL-IS Schalte das Befehlsregister 51 weiter.
-> CL-30.
Übertrage die Parameternummernanzeige aus dem Befehlsregister 51 in das Parameterzählerregister 57.
-> CL-32.
Übertrage die Stufen-Parameteradresse von 55 in das Speicheradressregister 62.
-> CL-34.
Ct-34 = Übertrage den Inhalt des Speichers 54 an der im Speicheradressregister 62 stehenden Adresse in das Objektadressregister 63. Falls die Taktgeberstufe 6 diesen Umlauf nicht eingeleitet hat, kehrt die Steuerung zürn Hauptprogramm (CIP) zurück. Falls CL-6 das Signal ausgelöst hat -^CL-38.
CL-38 = Erhoheden Wert im Stufen-Zahlerregister 56. Übertrage den Wert aus dem Parameterzahlstand-Speicherregister 66 m das Parameterzahlregister57
Keüre zurucJc zu CL-X.
CL-36 = Vermindere den Wert im Stufen-Zähler- *5 register 56 um 1. Übertrage den Inhalt des Parameterzählerregisters 57 in das Parameterzählstand-Speicherregister 66.
->■ CL-2S.
ΰ e * s p x e l
Das vorliegende Beispiel erläutert die Wirkungsweise des Systems an Hand eines bestimmten Unterprogramme, das in das Befehlsregister 51 eingegeben worden ist. Dieses Beispiel gleicht dem oben beschriebenen und gibt die Wirkungsweise des Systems in allgemeiner Form an. Wie schon erwähnt, besteht der Unterprogrammaufruf in der Feststellung der folgenden Aussage in der Befehlsfolge:
Ausführung dieses Befehls verfolgt. Bei normalen Befehlssteuerungen befindet sich der vorstehende Befehl im Befehlsregister und wird normalerweise ausgeführt bis zum Erreichen des § SR. Dies zeigt an, 5 daß ein Unterprogramm im Befehlsregister 51 erscheint. Ein entsprechendes Signal wird vom Decodierer 52 zu der Taktgeberstuf e SS2 gesendet, wodurch die Durchschaltung der Kette SS2-SS4-SS4B ausgelöst wird, so daß die Anfangsadresse des Unterlo * mms SR im Unterprogrammadressenregister 53 J, ichert wird> Als nächstes werden die Parameter ^ Das Re^ster 57 zei t die Parameter]Ilummer diesg wird durch ^2 auf χ rückgestellt Das Register56 zeigt aDj weiche Unterprogrammstufe bevorsteht. Da der Eintritt in ein Unterprogramm bevorsteht, wird der Inhalt dieses Registers durch SS4 um 1 erhöht. (Zu Beginn eines Programms wird dieses Register stets auf O rückgestellt.) Als nächstes wird der Befehlsregisterabtastring 61 auf das nächste Zeichen weitergeschaltet, so daß das »,« nach dem § SR in den Decodierer 52 übertragen wird. Von der Stufe SS4B wird ein Signal sowohl zu Und-Schaltung Al als auch zu Und-Schaltung A4 gesendet. Da der zweite Eingang der Und-Schaltung A4 ein Signal auf der aus dem Decodierer 52 kommenden »,«-Leitung erhält, liefert sie ein Signal nur zu SS6. Dies bewirkt die Eingabe der Adresse des Parameters in das Objektadressenregister 63. Im dargestellten Beispiel besteht diese Adresse aus zwei Zeichen, die direkt aus dem Befehlsregister 51 übertragen werden können. In einem allgemeineren Fall könnte es sich dabei sowohl um einen arithmetischen Ausdruck als auch um einen einfachen Operanden handeln. In diesem Fall würden die normalen Befehlssteuerungen den Ausdruck nach Aufrufeines »Quadratwurzel «-Unterprogramms. Dieses 35 seinen normalen Regeln bewerten und die Adresse Unterprogramm ist an einer bei SR beginnenden des Resultats zum Objektadressenregister übertragen.
§ SR, NN, QQ ) — RR. Wie schon beschrieben, handelt es sich hier um den
Adresse im Speicher gespeichert und hat die folgende Bedeutung:
(SR:) EN: 5*par 1 -> XX KLf.) %ii, αλ, par i) -> χ χ
Wenn XX-YY > par 2, geht zu EN
YY ->■ XX geht zu LP
YY
Die zweite Zeile in der vorstehenden Unterprogrammfolge bezeichnet das Unterprogramm »Wiederholen«, das durch seine Aufrufaussage angezeigt ist. Wie schon erwähnt, ist dieses Unterprogramm im Speicher praktisch in folgender Form gespeichert:
(7Γ:) TE:. 5 (par (par 1 - par 2/par 1) (TEi)
Bei Ausführung des Unterprogramms ist der Parameter par 1 dieses Unterprogramms gleich XX, und der zweite Parameter par 2 ist par 1 des höherstufigen Unterprogramms oder des Hauptprogramms oder der durch die Adresse NN dargestellte Wert.
Nun sei angenommen, daß die Quadratwurzel der Zahl 22 auf den Genauigkeitsgrad 0,005 gefunden werden soll, und weiter sei angenommen, daß diese beiden letztgenannten Zahlen in den Speicherplätzen NN bzw. QQ gespeichert sind und daß das Resultat dieses Unterprogramms im Speicherplatz RR gespeichert werden soll. Wie der Unterprogrammaufruf geschrieben wird, ist oben angegeben. Nun sei die Da der Parameter selbst kein Parameter des höherstufigen Unterprogramms ist, bewirkt SSS nun die Übertragung des Inhalts der beiden Register 56, 57 in das Speicheradressenregister 62. Auf diese Weise wird eme Adresse aus den derzeitigen Stufen und Parameterzählständen abgeleitet. Auf den durch diese Adresse bezeichneten Speicherplatz wird die Adresse des Parameters auf der jeweiligen Stufe eingegeben.
In diesem Fall wird NN in den Speicherplatz 11 eingesetzt. Das geschieht durch SSlO. Als nächstes wird das Register 57 erhöht, und die Steuerung wird zu den Eingangs-Und-Schaltungen Al und A4 zurückgeführt. Zu diesem Zeitpunkt überträgt das Befehlsregister 51 das Komma nach dem JVJV in den Decodierer 52, und daher wird wieder die an die Und-Schaltung^ 4 angeschlossene Kette wirksam. Hierdurch gelangt die Adresse QO in den Speicherplatz 12, und die Steuerung wird erneut zu A 2 und A 4 zurückgeführt.
Diesmal wird die Klammer nach OO aus dem Befehlsregister in den Decodierer übertragen, so daß die Und-Schaltung A2 signalführend wird. Zunächst wird die Befehlsregisterabtastung 61 weitergeschaltet auf das Zeichen hinter der Klammer. Die Adresse dieses Zeichens, ein »->«, wird dann in den Unterprogramm-Kellerspeicher 60 übertragen. Dadurch wird bewirkt, daß nach Bewertung des Unterprogramms die Programmsteuerung an die Stelle, wo sie unterbrochen wurde, zurückgeführt werden kann. Nun wird der derzeitige Inhalt des Unterprogramm-Endregisters 58 zum Kellerspeicher 60 übertragen. In diesem Fall wird eine 0 in diesen Speicher eingegeben. Wenn dagegen bereits die Ausführung eines Unterprogramms abliefe,
15 16
würde die Endadresse dieses Unterprogramms ge- betätigt. Hierdurch gelangt die Rückkehradresse, die speichert, damit sie wieder im Register 59 gespeichert eine Kombination des Inhalts des Registers 59 des werden kann, wenn die Steuerung an den Punkt, wo Standes des /Ä-Zählrings 61 und der laufenden sie unterbrochen wurde, zurückgeführt wird. Schließ- Unterprogramm-Endadresse EN ist, aus dem Register lieh wird die Anfangsadresse des Unterprogramms SR 5 58 in den Kellerspeicher 60 und die Anfangs- und in das Befehlsadressenregister 59 eingegeben, und die Endadressen des neuen Unterprogramms, die aus dem Unterprogramm-Endadresse EN, die in erläutertem Unterprogrammspeicherplatz im Speicher 54 entBeispiel direkt hinter der SjR-Adresse im Unter- nommen worden sind, werden in das Register 59 bzw. programm zur Verfügung steht, wird in das Register 58 58 übertragen. Nun wird das neue Unterprogramm eingeführt. Nun wird die Steuerung auf die Befehls- io durch die Befehlsausführungssteuerung 65 ausgeführt, ausführungssteuerung 65 zurückgeführt, die den Befehl In diesem Unterprogramm werden par 1 und par 2 mit SR beginnend durchführt. dadurch bewertet, daß die Adressen in den Speicher-
Die Ausführungssteuerung läuft ab, bis par 1 er- platzen 21 und 22 entnommen werden,
reicht wird. Dadurch gelangt ein Signal zu 5528. Dann wird das Ende dieses Programmteils erreicht.
Hier wird die Adresse der Daten, die den Parameter 1 15 Jetzt ist IAR = SER, und das resultierende Signal bilden, benötigt. Zuerst wird das Register 51 zur Zahl 1 wird von Schaltung 64 nach SS22 gesendet. Die letzte weitergeschaltet. Dann überträgt 5530 diese Zahl in in den Kellerspeicher 60 eingegebene Adresse, EN, das Register 57. Nun bewirkt 5532, daß der Inhalt der wird zunächst wieder im Register 58 gespeichert. Dann Register 56, 57, der nun die Nummer 11 ist, in das wird der Wert im Stufenzähler 56 um 1 vermindert, Speicheradressenregister 62 übertragen wird. Schließ- 20 da die Steuerung im Begriff ist, wieder zur nächstlich bewirkt 5534 die Übertragung des Inhalts des höheren Stufe des Unterprogramms zurückzukehren. Speicherplatzes 11 in das Objektadressenregister 63. Schließlich wird die nächste Adresse im Kellerspeicher Der Inhalt des Speicherplatzes 11 lautet NN; er be- 60, die der Rückkehrpunkt der nächstniedrigeren zeichnet die Adresse des ersten Parameters. Auf diese Unterprogrammstufe war, in das Register 59 eingeeinfache Art und Weise wird also die Adresse der 25 geben. Daraufhin setzt die Steuerung die Programmjeweils benötigten Daten gebildet. Nun übernimmt ausführung von diesem Rückkehrpunkt aus fort, und wieder die Befehlsausführungssteuereinheit 65 die zwar von ->■ nach § IT, XX, par 1).
Steuerung zur Befehlsausführung. Schließlich kehrt die Steuerung zu LP zurück, und
Die nächste besondere Situation besteht beim an dieser Stelle ist wieder das Unterprogramm *IT Erreichen des Namens *IT. Dies ist der Name eines 30 erreicht. Der ganze Vorgang wird nochmals wiederweiteren Unterprogramms, das ausgeführt werden holt einschließlich der Parameterbewertung. Schließmuß, damit die Ausführung des Unterprogramms SR lieh wird der Schlußpunkt des 5R-Unterprogramms weitergeführt werden kann. Wie beim vorigen Unter- erreicht und die Stuerung zu dem Pfeil nach § SR, NN, programm wird die Steuerung nach 552 übertragen, QQ) in derselben Weise zurückgeführt, wie die Steuenachdem die Adresse des Unterprogramms in das 35 rung von SIT nach § SR zurückgeführt wurde. Register 53 eingeführt worden ist. Das Register 57 Mit den vorausgehend beschriebenen Schaltungen
ist jetzt auf 1 gestellt, und dann wird das Stufenzähl- ist somit eine vollständig automatische Unterproregister 56 um 1 erhöht; es hat also nun den Wert 2. grammbewertung und -ausführung möglich. Die Die Parameter dieses Unterprogramms werden jetzt allgemeine Anwendbarkeit des Systems geht daraus bewertet. 40 hervor, daß ein gegebenes Unterprogramm in seiner
Die Adresse] des nächsten 'Parameters, XX, wird eignen Definition verwendet werden kann, z. B. kann in den besonderen Speicherplatz Nr. 21 durch die das Unterprogramm § FACT, N) wie folgt definiert Wirkung von 556 bis 5512 eingegeben, und das werden:
Parameterzählregister 57 wird auf 2 erhöht. Der .
nächste Parameter ist par 1. Es wird also ein Signal zu 45 ^:) Γ^Ο^, 1 ',f* ZU. t
den Parameterbewertungssteuerungen gesendet. Da % FACT, (pax 1-1) *pax 1, &&& za EN
SS6 ein Signal liefert, wird die Und-Schaltung A6 (.FI:) 1
leitend und bewirkt, daß über 5536 das Stufenzähl- (ΕΝί)
register 56 um 1 erniedrigt wird. Dieses Register war
gerade auf 2 weitergeschaltet worden, aber hier muß es 50 Wie schon erwähnt, ist das im beschriebenen Ausvorübergehend auf 1 zurückgeschaltet werden, damit führungsbeispiel der Erfindung gewählte Verfahren die richtige Parameteradresse gefunden werden kann. zum Feststellen des Schlusses eines Unterprogramms Diese Adresse wird im Speicherplatz Nr. 11 gefunden nur eine Möglichkeit zu dessen Erkennung. Zum und hat den Wert der Stufenparameteradresse 55. Beispiel kann in dem Unterprogramm ein Sonder-Das Signal aus 556 betätigt über die Verzögerungs- 55 zeichen für diesen Fall benutzt werden,
schaltung 67 die Stufe 5538, die eine Wiedererhöhung Ebenso versteht es sich, daß die verschiedenen
des Registers 56 auf 2 bewirkt. Die Adresse von Symbole, die bei der Beschreibung des Systems ver-Speicherstelle 11 wird in das Objektadressenregister 63 wendet werden, d. h., die Symbole für Anfang und eingegeben. Nun wird der Wert der Register 56, 57, Ende des Unterprogramms, die Parametersymbole nämlich 22, in das Speicheradressenregister 62 einge- 60 und die Parameterbewertungssymbole lediglich als führt, und der Inhalt des Objektadressenregisters 63 Beispiele dienen und daß solche Symbole auch aus wird in den Speicherplatz 22 eingesetzt. Auf diese bestimmten Adressen dienen und daß solche Symbole Weise ist die Adresse des ersten Parameters des auch aus bestimmten Adressen feststellbar sein können. Unterprogramms SR automatisch als zweiter Para- Zum Beispiel kann die Adresse eines Unterprogramms meter des Unterprogramms IT zugänglich gemacht 65 im Speicher eine Anzeige enthalten, die durch den worden. Decodierer erkennbar ist und besagt, daß diese
Da als nächstes eine Klammer erscheint, wird die Adresse einzig und allein eine Unterprogrammadresse an die Und-Schaltung Al angeschlossene Steuerkette ist.
809 648/1921
Die Zahl der Übergänge von einem Programm zu einem Unterprogramm und umgekehrt sowie die Zahl der Unterprogrammstufen kann wesentlich höher als im erläuterten Beispiel sein. Sie ist lediglich durch die Kapazität der verwendeten Speicher und Zähler begrenzt. Es ist in beliebiger Weise möglich, Unterprogramme innerhalb von Unterprogrammen zu verarbeiten, wenn das innere oder niedrigerstufige Unterprogramm als ein Schritt eines höherstufigen Unterprogramms erkannt wird. Ebenso sei beachtet, daß das innere Unterprogramm auch als Parameter in einem Unterprogramm-Aufruf wie z. B. dem folgenden erscheinen könnte:
§Zß, NN, QQ, §XR, par I5 par 2)).
Dabei ist das innere Unterprogramm, nämlich § XR, par 1, par 2, als Parameter bezeichnet, der direkt bei der Ausführung des Zg-Unterprogramms benutzt wird.

Claims (11)

Patentansprüche: ao
1. Steuerwerk zur Ausführung von Unterprogrammen bei datenverarbeitenden Maschinen mit einem Programmstufenzähler, der, von einem Hauptprogramm der Programmstufe Null ausgehend, die in diesem auftretenden Unterprogramme bzw. Unter-Unterprogramme der Programmstufen 1, 2 ... η zum Zweck der Befehlsfolgeadressierung markiert, dadurch gekennzeichnet, daß ein Parameterzähler (57) vorgesehen ist, der in einer der eigentlichen Unterprogrammausführung vorausgehenden Unterprogramm-Bewertungsoperation für die in dem jeweiligen Unterprogramm enthaltenen Parameter (Operanden) in der Reihenfolge ihres Auftretens unterschiedliche Zählwerte bildet, die gemeinsam mit dem jeweiligen Zählstand des Programmstufenzählers (56) als Speicheradressen dienen, auf welchen die Adressen der dem betreffenden Parameterzählstand zugeordneten Parameter des zu bewertenden Unterprogramms in einer bei der Unterprogrammausführung benötigten Reihenfolge gespeichert werden, daß Unterprogrammteile, die auf Parameter aus dem Programm der nächstniedrigeren Programmstufe Bezug nehmen, eine symbolische Adresse mit einem Parameterfolgenummernfeld aufweisen, das den Ort der betreifenden Parameter in der Parameterreihe dieses Programms markiert, daß bei Bewertung einer solchen symbolischen Adresse die Parameterbewertungsschaltung (SS 36) den Stufenzähler auf die Programmstufe des Programms niedrigerer Stufenordnung zurückschaltet und den Parameterzähler entsprechend dem Folgenummernfeld einstellt und daß die so gebildete Adresse zur Entnähme der gesuchten Parameteradresse aus dem Speicher dient, die daraufhin auf die nächste Adresse in der Parameterreihe des zu bewertenden Unterprogramms zum Speicher übertragen wird.
2. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß ein Kellerspeicher (60) vorgesehen ist zur Aufnahme von Programmanschluß- und/oder Programmendadressen beim Übergang auf eine höherwertige Programmstufe und zur Abgabe dieser Adressen bei der Rückkehr zu einer Programmstufe niedrigeren Wertes.
3. Steuerwerk nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß eine Stufenfolgesteuerschaltung (SS4) vorgesehen ist, die in Abhängigkeit von in einem Haupt- oder Unterprogramm auftretenden Unterprogrammaufrufbefehlen eine Weiterschaltung des Stufenzählers (56) vornimmt.
4. Steuerwerk nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß eine Parameterbewertungsschaltung (SS6, SS8, SSlO, SS12, SS2S, SS30, SS32, SS34, SS36 und SS3S) vorgesehen ist, die in Abhängigkeit von Parametern des jeweiligen Unterprogramms den Parameterzähler (57) weiterschaltet und die Zählstände dieses Zählers und des Stufenzählers (56) als Programmstufen-Parameteradresse in ein Speicherregister (62) überträgt, wo sie den Speicherort für die Abspeicherung der bewerteten Parameteradresse angibt.
5. Steuerwerk nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß ein Zählstand-Speicherregister (66) zur Zwischenspeicherung des jeweiligen Parameterzählstandes während des Aufsuchens einer Parameteradresse in einem Programm niedrigerer Stufenordnung vorgesehen ist.
6. Steuerwerk nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß ein Register (55) vorgesehen ist zur Zwischenspeicherung einer Unterprogramm-Anfangsadresse während der Bewertung des betreffenden Unterprogramms.
7. Steuerwerk nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß eine Unterprogramm-Ende-Bewertungsschaltung (SS14, SS18, SS2Q) vorgesehen ist, die bei Feststellung eines Unterprogrammendes vor einer Auslösung der Unterprogrammausführung eine Einspeicherung der auf das Unterprogrammende folgenden Adresse (Anschlußadresse) in den Kellerspeicher (60) veranlaßt und die Unterprogramm-Anfangsadresse aus dem Register (53) in das dem Befehlsausführungssteuerteil (65) zugeordnete Befehlsadressenregister (59) überträgt.
8. Steuerwerk nach Anspruch 7, dadurch gekennzeichnet, daß eine Unterprogramm-Ende-Markierungsschaltung (58) vorgesehen ist, die mit einer Vergleichsschaltung (64) verbunden ist, der während der Unterprogrammausführung der jeweilige Befehlsadressenregisterinhalt neben dem Inhalt der Markierungsschaltung zugeführt wird und die bei Ermittlung einer Übereinstimmung zwischen Befehlsadresse und Unterprogramm-Ende-Markierung eine Zurückschaltung des Stufenzählers (56) auf den nächstniedrigeren Wert und eine Übertragung der zuletzt in den Kellerspeicher (60) eingegebenen Adresse in das Befehlsadressenregister (59) veranlaßt sowie den Befehlsausführungssteuerteil (65) stoppt.
9. Steuerwerk nach den Ansprüchen? und 8, dadurch gekennzeichnet, daß als Unterprogramm-Ende-Markierung ein bestimmter Adressenwert verwendet wird, der nach seiner Ermittlung durch den Befehlsdecodierer (52) über die Unterprogramm-Ende-Bewertungsschaltung (55"2O) in ein Endadressenregister (58) eingestellt wird.
10. Steuerwerk nach Anspruch 9, dadurch gekennzeichnet, daß die Unterprogramm-Ende-Bewertungsschaltung (SS16) vor Übertragung einer Unterprogramm-Ende-Adresse in das Endadressenregister (58) dessen Inhalt nach der jeweiligen Anschlußadresse iü den Kellerspeicher (60) eingibt und daß durch ein Ausgangssignal von der das
Ende der Unterprogrammausführung anzeigenden Vergleichsschaltung (64) eine Übertragung der zuletzt in den Kellerspeicher eingegebenen Unterprogramm-Ende-Adresse in das Endadressenregister auslöst, bevor durch eine erneute Kellerspeicherentnahme die Anschlußadresse in das Befehlsadressenregister (59) übertragen wird.
11. Steuerwerk nach einem der Ansprüche 1 bis
10, dadurch gekennzeichnet, daß während einer Unterprogrammausführung der Parameterzähler (57) jeweils auf den nächsten benötigten Parameter einstellbar ist und mit dem Programmstufenzähler (56) die Adresse zur Entnahme der richtigen Parameteradresse aus dem Speicher angibt, die ihrerseits zum Aufsuchen des Parameters im Speicher dient.
Hierzu 2 Blatt Zeichnungen
DEJ29712A 1964-12-30 1965-12-24 Steuerwerk zur Ausfuehrung von Unterprogrammen Withdrawn DE1285219B (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US422343A US3366929A (en) 1964-12-30 1964-12-30 Computing system embodying flexible subroutine capabilities

Publications (1)

Publication Number Publication Date
DE1285219B true DE1285219B (de) 1968-12-12

Family

ID=23674480

Family Applications (1)

Application Number Title Priority Date Filing Date
DEJ29712A Withdrawn DE1285219B (de) 1964-12-30 1965-12-24 Steuerwerk zur Ausfuehrung von Unterprogrammen

Country Status (8)

Country Link
US (1) US3366929A (de)
BE (1) BE673593A (de)
CH (1) CH446773A (de)
DE (1) DE1285219B (de)
ES (1) ES321214A1 (de)
GB (1) GB1091937A (de)
NL (1) NL6517115A (de)
SE (1) SE317212B (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO119615B (de) * 1966-02-25 1970-06-08 Ericsson Telefon Ab L M
US3623156A (en) * 1966-06-23 1971-11-23 Hewlett Packard Co Calculator employing multiple registers and feedback paths for flexible subroutine control
US3633176A (en) * 1969-08-19 1972-01-04 Kaiser Aluminium Chem Corp Recursive kopy program for remote input management system
US3614740A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with circuits for transferring between operating routines, interruption routines and subroutines
US3659272A (en) * 1970-05-13 1972-04-25 Burroughs Corp Digital computer with a program-trace facility
US3707725A (en) * 1970-06-19 1972-12-26 Ibm Program execution tracing system improvements
US3675214A (en) * 1970-07-17 1972-07-04 Interdata Inc Processor servicing external devices, real and simulated
US3794980A (en) * 1971-04-21 1974-02-26 Cogar Corp Apparatus and method for controlling sequential execution of instructions and nesting of subroutines in a data processor
JPS4828151A (de) * 1971-08-16 1973-04-13
JPS4828152A (de) * 1971-08-16 1973-04-13
FR2253418A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4097920A (en) * 1976-12-13 1978-06-27 Rca Corporation Hardware control for repeating program loops in electronic computers
US4176394A (en) * 1977-06-13 1979-11-27 Sperry Rand Corporation Apparatus for maintaining a history of the most recently executed instructions in a digital computer
US4181942A (en) * 1978-03-31 1980-01-01 International Business Machines Corporation Program branching method and apparatus
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
US4241399A (en) * 1978-10-25 1980-12-23 Digital Equipment Corporation Calling instructions for a data processing system
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4504903A (en) * 1979-07-19 1985-03-12 Digital Equipment Corporation Central processor with means for suspending instruction operations
CH679957A5 (en) * 1990-03-07 1992-05-15 Studer Revox Ag Digital signal processing e.g. for multichannel tape player - using control words to identify different processing program for data words
US5961639A (en) * 1996-12-16 1999-10-05 International Business Machines Corporation Processor and method for dynamically inserting auxiliary instructions within an instruction stream during execution
JP2001067335A (ja) * 1999-06-23 2001-03-16 Denso Corp マイクロコンピュータ
US8176567B2 (en) * 2005-12-22 2012-05-08 Pitney Bowes Inc. Apparatus and method to limit access to selected sub-program in a software system
US11921559B2 (en) * 2021-05-03 2024-03-05 Groq, Inc. Power grid distribution for tensor streaming processors

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1094493B (de) * 1957-12-09 1960-12-08 Ibm Deutschland Programmunterbrechungssystem fuer programmgesteuerte elektronische datenverarbeitende Maschinen und Rechenanlagen

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3293616A (en) * 1963-07-03 1966-12-20 Ibm Computer instruction sequencing and control system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1094493B (de) * 1957-12-09 1960-12-08 Ibm Deutschland Programmunterbrechungssystem fuer programmgesteuerte elektronische datenverarbeitende Maschinen und Rechenanlagen

Also Published As

Publication number Publication date
BE673593A (de) 1966-04-01
US3366929A (en) 1968-01-30
SE317212B (de) 1969-11-10
CH446773A (de) 1967-11-15
NL6517115A (de) 1966-07-01
GB1091937A (en) 1967-11-22
ES321214A1 (es) 1966-10-01

Similar Documents

Publication Publication Date Title
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE2515696C2 (de) Datenverarbeitungssystem
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2417795C2 (de) Datenverarbeitungsanlage
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE2448690A1 (de) Kellerspeichereinrichtung fuer eine datenverarbeitungsanlage
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE1901228B2 (de) Datenverarbeitungsanlage mit einrichtungen zur wiederholung von operationen beim auftreten eines fehlers
DE2753062A1 (de) Einrichtung zur durchfuehrung programmierter befehle
DE1499193B2 (de) Speicher-adressierschaltung
DE2424931A1 (de) Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE3323824A1 (de) Speicherprogrammierbare steuerung
DE2702722C2 (de) Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen
DE69111778T2 (de) Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits.
DE2710436C2 (de) Datenverarbeitungseinrichtung
DE2425380C2 (de) Datenverarbeitungsanlage zur parallelen Ausführung von Verarbeitungsoperationen
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2519195A1 (de) Assoziativspeicher
DD294115A5 (de) Vorrichtung und verfahren zur signalverarbeitung
DE10163206B4 (de) Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977
EHJ Ceased/non-payment of the annual fee