DE2366283C2 - Schaltungsanordnung zur Adressierung von listenmäßig abgelegten Beschreibungswörtern mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register - Google Patents

Schaltungsanordnung zur Adressierung von listenmäßig abgelegten Beschreibungswörtern mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register

Info

Publication number
DE2366283C2
DE2366283C2 DE2366283A DE2366283A DE2366283C2 DE 2366283 C2 DE2366283 C2 DE 2366283C2 DE 2366283 A DE2366283 A DE 2366283A DE 2366283 A DE2366283 A DE 2366283A DE 2366283 C2 DE2366283 C2 DE 2366283C2
Authority
DE
Germany
Prior art keywords
word
register
return
main memory
address
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
DE2366283A
Other languages
English (en)
Inventor
Garold Dean Cottage Grove Minn. Boss
Martin Don Burnsville Minn. Thompson
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.)
Sperry Corp
Original Assignee
Sperry 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 Sperry Corp filed Critical Sperry Corp
Application granted granted Critical
Publication of DE2366283C2 publication Critical patent/DE2366283C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

Die Erfindung betrifft eine Schaltungsanordnung zur Adressierung von in einem Haupispeicher listenmäßig abgelegten Beschreibungswörtern, die jeweils ein Feid mit einem Indexwert zur Bildung von mehreren absoluten Adressen in einem Bereich des Hauptspeichers enthalten, mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register, in dem außer der Rückkehradresse zur Fortsetzung des Hauptprogramms ein Indexwert zur Abänderung einer Anzahl aufeinanderfolgender Adressen eingebracht ist.
Aus einem Aufsatz von F. S. Beckman, F. P. Brooks
ίο und W. J. Lawless mit der Überschrift: »Developments in the Logical Organization of Computer Arithmetic und Control Units«, abgedruckt in der Zeitschrift: »Proceedings of the IRE«, (Januar 1961), Seiten 53 bis 56, gehen zahlreiche auf dem Markt befindliche Rechenanis lagen hervor, die bezüglich ihrer Fähigkeit, Befehlsfolgen mit Verzweigungen auszuführen, näher betrachtet werden. Insbesondere wird auf eine sehr nützliche Entwicklung hingewiesen, der der Gedanke zugrundeliegt, passend abgeänderte Zählerinhalte in einem besonde-
M ren Register, nämlich einem Indexregister zu speichern. Dieser Indexwert kann dann nicht nur zur Abänderung der Adresse des Rückkehrzweiges, sondern auch zur Abänderung aller Adressen verwendet werden, die sich auf eine Ruffolge für Operanden usw. beziehen.
Wegen dieses Zusammenhanges mit der Adresse des Rückkehrzweiges wird diesem besonderen Register der Begriff »Rückkehrwort-Register« zugeordnet, der hier durchweg benutzt wird.
Bei der Konstruktion von Rechenautomaten, die mit ständig höheren Geschwindigkeiten und laufend umfangreicheren Kapazitäten arbeiten sollen, wünscht man, in ihrem Hauptspeicher zahlreiche unabhängig betriebsfähige Programme aufzubewahren und ein ausführendes Programm vorzusehen, von dem einige ausgewählte Programme, die häufig als Arbeitsprogramme bezeichnet werden, zu einer Bearbeitung bis zu ihrem Ende oder bis zu einer Unterbrechung herangezogen werden, die dann erforderlich wird, wenn z. B. ein ziemlich langsam arbeitendes peripheres Gerät auf den Hauptspeicher zuzugreifen sucht Bei tiner derartigen Unterbrechung eines Arbeitsprogrammes kann das ausführende Programm weiterlaufen und ein Abschnitt eines anderen Arbeitsprogrammes zur Ausführung heranziehen. Diese Arbeitsweise ist als »Arbeits- oder Zeitstaffelung« bekannt und bringt eine größere Leistungsfähigkeit des Rechenautomaten mit sich, da normalerweise zu einem gegebenen Zeitpunkt eine gewisse Anzahl von Arbeitsprogrammen im Hauptspeicher festgehalten wird und wahrscheinlich eine sogar noch größere Anzahl von Arbeitsprogrammen in den Speichermedien außerhalb des Rechenautomaten für eine Eingabe in den Hauptspeicher bereitsteht.
Aus der US-Patentschrift 33 89 380 ist eine Rechenanlage bekannt, bei der ein gegebenes Programm in mehrere Abschnitte unterteilt ist, die in den verschiedenen Bereichen ihres Hauptspeichers untergebracht werden, urn die Speicherkapazität wirkungsvoller nutzen zu können. Diese Bereiche können die Befehle oder Operanden oder eine Kombination von beiden enthalten.
Wenn das Programm mit seinen zahlreichen Befehlen ausgeführt wird, hat ein gegebener gerade wirksamer Befehl eine absolute Adresse, die aus seiner relativen Adresse durch Addition mit einem Basiswert entsteht der allein für den Bereich gilt, in dem dieser Befehl aus dem Programm gerade untergebracht ist. Der Basiswert ist demnach derjenige numerische Wert, der zur relativen Basisadresse des Befehles hinzugefügt werden muß, um die absolute Adresse zu erhalten, und entspricht
tatsächlich der absoluten Adresse der ersten Zelle eines Bereiches des Hauptspeichers, in dem der gerade ausgeführte Befehl aus dem Programm untergebracht ist bzw. wird. Die relative Basisadresse ist dagegen als Adresse des Befehles bezüglich der ersten Adresse des Programms definiert die normalerweise null ist
Wenn die Befehle (oder Operanden) in der Folge eines Programms gerade in einem gewissen Bereich des Hauptspeichers bearbeitet werden, soil mitunter ein Sprung zu einer Folge der Befehle (oder Operanden) erfolgen, die in einem anderen Bereich des Hauptspeichers untergebracht sind. Am Schluß dieser anderen Folge soll dann eine Rückkehr zur ersten Folge innerhalb des ersten Bereich des Hauptspeichers stattfinden, um dort nach dieser Unterbrechung die Ausführung der Befehle (bzw. die Bearbeitung der Operanden) an derjenigen Stelle fortzusetzen, an der die Unterbrechung erfolgte.
Aus der erwähnten US-Patentschrift 33 89 380 ist für den Fall eines solchen Sprunges bekannt, aus der absoluten Adresse, mit der der Hauptspeicher zur Abgabe eines Befehlswortes veranlaßt wurde, in dessen einem Feld der Sprung angezeigt ist und dementsprechend eingeleitet wird, den Basiswert durch eine Subtraktion zu beseitigen, so daß die verbleibende relative Basisadresse vorübergehend abgespeichert werden kann, damit der Platz in dem ersten Bereich des Hauptspeichers festgehalten wird, an dem nach der Ausführung des Sprunges, also nach der Ausführung einer anderen Folge von Befehlen bzw. nach der Bearbeitung einer anderen Folge von Operanden, die in einem anderen Bereich des Hauptspeichers untergebracht sind, das Programm innerhalb des ersten Bereiches fortgesetzt werden kann.
In einer ähnlichen bekannten Rechenanlage gemäß der US-Patentschrift 34 61 433 ist zur Verhinderung von Fehlern beim Zugriff auf den Hauptspeicher nach der Bildung der absoluten Adresse eine Speicherschutzschaltung vorgesehen, der die durch eine oder mehrere Additionen zustandegekommene absolute Adresse während des Zugriffes auf den Hauptspeicher zugeleitet wird. Diese Speicherschutzschaltung steht mit einem sog. Speichergrenzen-Register in Verbindung, in das aus dem Hauptspeicher die Adressen für die obere und untere Grenze des Bereiches eingegeben sind, in den die errechnete absolute Adresse hineinfallen soll. Im Falle eines Fehlers wird der Zugriff auf den Hauptspeicher durch die Speicherschutzschaltung unterbunden. Die beiden Adressen für die obere und untere Grenze des Speicherbereiches sind als Wort mit drei Feldern an einem vorgegebenen Platz ues Hauptspeichers untergebracht.
In der Patentanmeldung P 23 42 101.4-53 gleichen Datums ist vorgeschlagen, in das dritte Feld dieses Wortes einen für diesen Bereich gültigen Basiswert einzufügen. Das derart ergänzte Wort wird »Beschreibungswort« genannt. Während die beiden Adressen der oberen und unteren Grenze des Bereiches in das Speichergrenzen-Register für eine Zusammenarbeit mit einer Speicherschutzschaltung eingespeist werden, gelangt der Basiswert in ein Basisregister, damit er für die Additionen mit den relativen Basisadressen einer Reihe von Befehlswörtern zur Verfügung steht, bei denen jeweils eine absolute Adresse innerhalb des Bereiches entsteht. Um die 2/bsoluten Adressen für einen weiteren Bereich des Hauptspeichers zv errechnen, der vom ersten Bereich getrennt ist, wird ein weiteres Beschreibungswort herangezogen, das zur günstigeren Adressierung im Hauptspeicher neben dem ersten Beschreibungswort eingegeben ist Damit die Bildung der absoluten Adressen für mehrere gesonderte Bereiche des Hauptspeichers erreicht wird, kann eine gewisse Anzahl Beschreibungswörter zu einer Liste zusammengefaßt werden, in der der Reihe nach im Rahmen des ablaufenden Programmes jedes Beschreibungswort zwecks Ausgabe seiner Felder angewählt wird. Für ein weiteres Programm ist eine zweite Liste von Beschreibungswörtern aufgestellt
ίο Der Erfindung liegt die Aufgabe zugrunde, eine beim Auftreten eines Sprungbefehles wirksam werdende Schaltungsanordnung zur Adressierung der in zwei oder mehreren Listen abgelegten Beschreibungswörter anzugeben, von der die infolge der Adressierung eines Beschreibungswortes eingeleitete Subroutine durch zumindest eine andere Subroutine desselben Programms ergänzt werden kann.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst daß beim Auftreten eines Sprungbefehles in Oberein-Stimmung mit dem jeweiligen Haup'rrogramm eines von mehreren Rückkchrwort-Rcgistcrn in einem allgemeinen Registerstapel adressiert wird, das seinen Indexwert als relative Adresse des Beschreibungswortes an einen Addierer ausgibt, in dem sie zu einer den Beginn einer Liste von Beschreibungswörtern angebenden Adresse aus einem ein Anzeigewort enthaltenden Register des Registerstapels addiert wird, und daß während der Durchführung der Subroutine der Indexwert innerhalb des adressierten Rückkehrwort-P.egisters zum Übergang auf einen anderen Bereich des Hauptspeichers gegen einen anderen Indexwert aus einem von mehreren Index wort-Registern austauschbar ist.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher erläutert. Es zeigen die
Fig. 1, IA und !Bein Blockschaltbild der Schaltungsanordnung gemäß der Erfindung,
F i g. 2 die Art und Weise, wie die F i g. 1, !A unH 1B aneinanderzusetzen sind,
F i g. 3 eine entsprechende Anordnung der F i g. 9 und 9A,dii
Fig.4 bis 7 verschiedene Wortformate, die in der Schaltungsanordnung gemäß der Erfindung angewendet werden,
F i g. 8 die Plätze der verschiedenen Wörter nacii den F i g. 4 bis 7, an denen diese im allgemeinen Registerstapel bzw. im Hauptspeicher untergebracht werden, und die
F i g. 9 und 9A ein Flußdiagramm für den Arbeitsablauf der Vorgänge innerhalb der Schaltungsanordnung gemäß der Erfindung.
Jedesmal wenn ein Z.//-/LD/-Sprungbefehl auftritt, der ein»1 Abänderung des Befehls- oder Datenbasiswertes notwendig macht, müssen auch die entsprechenden Grenzadressen im zugehörigen Speichergrenzenregister verändert werden. Sie werden einem Beschreibungswort entnommen, das nun in Verbindung mit der F i g. 4 erläutert sei.
F i g. 4 stellt die Form eines Beschreibungswortes 107 dar, das den neuen Basiswert, den von nun an das Programm benutzt und außerdem die obere und vntere Grenze des Programmabschnittes (entweder des Befehls- oder Operandenabschnittes) als relative Basisadresse enthält. Es sind zwei aktive Listen von Beschreibungswörtern im Hauptspeicher untergebracht (Fig.8). Die eine Liste steht unter der Steuerung des ausführenden Programms und die andere unter der Steuerung des Arbeitsprogramms.
In dem Beschreibungswort 107 der F i g. 4 können die Bits 18—26, die als fl/'-Feld bezeichnet sind, entweder den Basiswert 81 der Befehlsbank oder 80 der Datenbank angeben. Das flwr-Feld der Bits 27—32 stellt eine Verlängerung des ß/-Feldes dar. Ein LB-Fe\d in den Bitpositionen 0—8 und ein t/S-Feld in den Bitpositionen 9—17 geben die untere und obere Grenze des Bereiches für die Befehls- oder Datenbank an. Ein W-Bit 34 ist ein Schreibschutz und verhindert das Einschreiben in die Befehls- oder Datenbank, falls es gesetzt wird. Ein R-Bh in 35 ist ein Ortsbit und bewirkt im gesetzten Zustand eine Unterbrechung.
F i g. 5 zeigt die Form eines Anzeigenwertes 108 oder 109, das auf das erste Wort jeweils einer Liste der Beschreibungswörter hinweist, die für das zu bearbeitende Programm einmalig ist, und außerdem die Länge dieser Liste angibt, die als »Beschreibungsliste« bezeichnet sei. Um auf sie zugreifen zu können, wird das Anzeigewort 108 oder !C* hpnntigt. Die Formen dieser Anzeigewörter 108 und 109 sind für eine Verwendung in einem ausführenden Programm bzw. in einem Arbeitsprogramm vorgesehen.
Die beiden Anzeigewörter 108 und 109 haben dieselbe Form in der ein /η-Feld aus den Bits 0—23 eine Adresse enthält, die auf die erste Adresse der Beschreibungsliste hinweist. Ein /-Feld aus den Bits 24 bis 35 gibt die Länge dieser Liste an. Da es insgesamt 12 Bits umfaßt, kann es maximal 4096 Beschreibungswörter definieren. Sowohl das Anzeigewort 108 eines ausführenden Programms als auch das Anzeigewort 109 eines Arbeitsprogramms sind in je einem Register des allgemeinen Registerstapels der F i g. 8 gespeichert.
Das spezielle Beschreibungswort, auf das zugegriffen werden soll, wird durch einen Indexwert bestimmt, der in einem Z.//-/LD/-Rückkehrwort enthalten ist, wie noch später erläutert wird.
Das f-Feld, also die Länge der Beschreibungsliste wird mit dem Indexwert verglichen, um festzustellen, ob es größer ist, damit sichergestellt ist, daß das Beschreibungswort in die Länge der Beschreibungsliste gemäß dem r-Feld hineinfällt.
Fig.6 stellt die Form eines L/y-ZLOy-Rückkehrwortes 110 dar, das sowohl der Identifizierung eines speziellen Beschreibungswortes, das angibt, welches Programm als nächstes verwendet wird, als auch der anschließenden Angabe der vorgeschriebenen Zustände einschließlich der nächsten Befehlsadresse und des Beschreibungswortes dient, zu der das Programm am Schluß der Ausführung eines Abschnittes aus dem ausführenden Programm zurückkehren muß.
Das L/y-ZLDy-Rnckkehrwort der Fig.6 weist in seinen Bits 0—17 einen P-Registerwert und in seinen Bits 18—29 den Indexwert auf. Das R-Bh zur Anzeige des Ortes ist in der Bitposition 33 vorgesehen, und ein UD-Bit gibt in der Bitposition 34 an, ob auf eine Befehls- oder Datenbank zugegriffen werden soll. Ein Ε-Bit der Bitposition 35 zeigt an, ob das Anzeigewort 108 des ausführenden Programms oder 109 des Arbeitsprogramms für die Wahl des neuen Basiswertes verwendet werden soll.
Das Feld des f-Registerwartes aus den Bits 0—17 enthält die relative Basisadresse des nächsten, also nachfolgenden Befehls, nachdem der L//-/Z.D/-Sprungbeiehl aufgetreten ist. Folglich enthält er die relative Basisadresse P des L/yVLDy-Sprungbefehls, addiert mit dem Wert 1.
Der Indexwert der Bitposition 18 bis 29 weist auf das spezielle MDW-Beschreibungswort in der Beschreibungsliste hin, die dem gerade ausgeführten Programm zugeordnet ist. In Abhängigkeit von dem Zustand der Bitposition 35 kann die Beschreibungsliste zum Arbeitsprogramm oder zum ausführenden Programm gehören. Vor der Ausführung des Z.//-/L£V-Sprungbefehls müssen die Bits 18—29 den Indexwert des einzuspeisenden Beschreibungswortes enthalten. Ein solcher Indexwert identifiziert also das Beschreibungswort, das seinerseits festlegt, wohin als nächstes das Programm als Ergebnis des L/y-/LDy-Sprungbefehls hinspringen wird.
Während der Ausführung eines LIJ-/LDJ-Sprungbefehls wird der Indexwert der Bits 18—29 durch denjenigen Indexwert ersetzt, der das Beschreibungswort festsetzt, das den Basiswert für ein aktives Basisregister enthält, wie er vorhanden ist, bevor der LIJ-/LDJ-Sprungbefehl ausgeführt wird. Am Schluß des Zugriffes auf den neuen Bereich enthält das /.//-/LOy-Rückkehrwort die Information, die die spezielle Adresse angibt, zu der das Programm am Ende der Folge derjenigen Befehle zurückkehren kann, die sich aus dem LiJ-ZLDJ-Sprungbefehl ergeben.
Vor der Ausführung des /.//-/LDy-Sprungbefehls ist das I/D-Bh 34 nicht definiert. Am Schluß von dessen Ausführung wird das I/D-Bh des laufend anwendbaren Indexwertes in die Bitposition 35 des LIJ-/LDJ-Rückkehrwortes 110 eingesetzt. Vor der Ausführung des LIJ-/LDy-Sprungbefehls schreibt die Null des E-Bit 35 das Anzeigewort und die Beschreibungsliste des ausführenden Programms vor. Im Falle einer Eins im E-Bit 35 und im Bit D 19 eines Basisregisters werden vor der Ausführung des ZJ/-/LD/-Sprungbefehls das Anzeigewort und die Beschreibungsliste des ausführenden Programms vorgegeben. Während der Ausführung des LIJ-/LDJ-Sprungbefehls wird das E-Bit 35 des LIJ-ZLDJ-Mckkehrwortes 110 der F i g. 6 durch das neue Ε-Bit aus dem anwendbaren Indexwort der F i g. 7 ersetzt.
Das Z.//-/LDy-Rückkehrwort wird an einem von einem ΛΑ-Feld vorgeschriebenen Platz eines X-Registers in dem allgemeinen Registerstapel gespeichert, wie durch den L//-/LDySprungbefeh! festgelegt ist (F i g. 8).
F i g. 7 zeigt die Form eines Indexwortes 111 in einem Register, das gemeinsam mit dem L//-/LDy-Rückkehrwort 110 ständig den Platz des laufenden Beschreibungswortes in der Beschreibungsliste festlegt.
Die Form des Indexwortes 111 der Fig. 7 ist in zwei Teile zerlegt, von denen der eine die Bits 0—17 und der andere die Bits 18—35 enthält. Diese beiden Teile stehen mit einem Datenbankindex und einem Befehlsbankindex in Zusammenhang. Der Datenbankindex ist in den Bitpositionen 0—11 und die entsprechenden R-, UD- und Ε-Bits sind in den Bitpositionen 15 bis 17 enthalten. Der Befehlsbankindex umfaßt die Bits 18—29, und die zugehörigen R-, I/D- und E- Bits sind in den Bitpositionen 33—35 vorhanden. Die Bitpositionen 12—14 und 30—32 werden nicht gebraucht.
Das Indexwort 111 weist stets Daten auf, die mit dem laufend anwendbaren Indexwert sowohl für die Datenbank als auch für die Befehlsbank in Beziehung stehen. Für die verschiedenen Basisregister gibt es je ein gesondertes Indexwort 111.
Das Indexwort 111 und das LIJ-/LDJ-Rückkehrwort 110 arbeiten vor, während und nach der Ausführung des L/y-ZLDy-Sprungbefehls zusammen. Das erstere enthält stets die Information, die sich auf die laufend anwendbaren Beschreibungswörter und außerdem auf den laufenden Zustand des R-, l/D- und Ε-Bit für die Befehls- und Datenbank bezieht. Andrerseits enthält das LIJ-/LDJ-Rückkehrwort 110 stets eine ähnliche Information für
die Adresse, auf die das Programm im Begriff ist, als Ergebnis des nächsten L//-/Z-D/-Sprungbefehls zu springen.
Zusammenfassend betrachtet, werden in der Zeitspanne, in der der L//-/LD/-Sprungbefehl gerade ausgeführt wird, der Inhalt des /J/'/Z-DZ-Rückkehrwortes 110 und der Inhalt der entsprechenden Hälfte des Indexwortes ill gegeneinander ausgetauscht. Nachdem der Z.//-/LD/-Sprungbefehl beendet ist, enthält das LIJ-/LDJ-Rückkehrwort 110 noch die Information über den Indexwert, die hinweist, wohin das Programm am Schluß der laufenden Befehlsfolge zurückkehren soll, und das Indexwort 111 enthält dann die laufende Information über den Indexwert der Befehls- und Datenbank.
Das Programm kann jedoch ein unterschiedliches L//-/LD/-Rückkehrwort benutzen, oder die Daten der Beschreibungsliste des LIJ-/LDJ-Rückkehrwortes können derart abgeändert werden, daß das Programm nicht zu dem Punkt zurückkehrt, den es verlassen hatte, als der /,//-//.DZ-Sprungbefehl auftrat, sondern daß es entsprechend dem neuen Indexwert im LIJ-ZLDJ-Rückkehrwort an einen neuen Punkt springt.
Gemäß den Flußdiagrammen der F i g. 9 und 9A wird der LIJ- oder LD/-Sprungbefehl abgelesen (Block 150), um den Betriebsablauf gemäß der Erfindung einzuleiten. Dementsprechend tritt in der F i g. 1B der LIJ-/LDJ-Sprungbefehl aus einem Hauptspeicher 200 in ein Befehlsregister 201 und eine Decodierschaltung 202 ein.
Um seine relative Basisadresse P + 1 zu bilden, wird gemäß F i g. 9 zunächst der Wert der laufenden Basisadresse Blöder BD vom Inhalt eines f-Registers abgezogen (Block 151). Im speziellen Beispiel der Fig. IB wird das ß/-Feld vom Inhalt eines P-Registers 203 subtrahiert, wozu ein Weiterschaltregister 204 und ein Register 205 benutzt werden, in das die relative Basisadresse P + ! gelangt, die durch eine Subtraktion der Basis adresse ß/von der absoluten Adresse P + 1 gebildet ist. Die relative Basisadresse P + 1 wird dann über eine Leitung 208 in das P + 1-Feld eines Rückkehrwort-Registers 206 (F i g. 1 A) innerhalb eines allgemeinen Registerstapels 207 eingelassen, wie auch in der F i g. 9 als Block 152 angegeben ist
Als nächstes muß bestimmt werden, ob das Anzeigewort des Arbeitsprogramms oder des ausführenden Programms verwendet werden soll (Blöcke 153—158 der F i g. 9), was durch das E-Bit im Rückkehrwort-Register 206 (F i g. 1 A) und die Bitposition D !9 eines Basisregisters 248 (F i g. 1) festgelegt ist Sowohl das Ε-Bit des Rückkehrwort-Registers 206 als auch die Bitposition D19 des Basisregisters 248 werden geprüft (Block 153 der F i g. 9). Falls das f-Bit null ist (Block 154), wird über eine Leitung 256 ein Anzeigewort-Register 215 des Arbeitsprogramms für den nächsten Schritt (Block 155) angewählt, auf das im allgemeinen Registerstapel 207 zugegriffen wird.
Wenn dagegen das E-Bit und die Bitposition D19 beide Einsen enthalten (Blöcke 154 und 156 der F i g. 9), wird über eine Leitung 257 ein Anzeigewort-Register 216 (Fig. IA) des ausführenden Programms angewählt und im allgemeinen Registerstapel 207 zugegriffen.
Falls jedoch das Ε-Bit eine Eins und die Bitposition D19 eine Null aufweist, liegt eine E-Bitverletzung (Block 157) vor, die bewirkt, daß aus dem LIJ-/LDJ-Rückkehrwort ein MDI-/MDW-Zusandswort erzeugt wird (Block 167 der F i g. 9A), das dann gespeichert wird (Block 168).
Die entsprechende Schaltung zur Auswahl des Arbeitsprogramms oder des ausführenden Programms enthält gemäß der F i g. 1 zwei Verknüpfungsglieder 211 und 212. Im Falle, daß die Bitposition D 19 null und das f-Bit eins ist, wird ein Verknüpfungsglied 213 erregt, das seinerseits eine Blockschaltung 214 in Gang setzt, die aus dem /./Z'/Z-DZ-Rückkehrwort das MDI-/MDW-Zustandswort erzeugt und außerdem eine Unterbrechung bewirkt.
Falls das Anzeigewort des Arbeitsprogramms gewählt ist, wird das Feld des Indexwertes im Rückkehrwort-Register 206 mit dem f-Feld im Anzeigewort-Register 215 verglichen (Block 159 der F i g. 9), um zu bestimmen, ob das Beschreibungswort in das /-Feld der Beschreibungsliste hineinfällt. Falls der Indexwert kleiner als das f-Feld ist, wird er zum m-Feld des Anzeigewortes addiert, um die absolute Adresse des Beschreibungswortes zu erzeugen (Block 169 der F i g. 9).
Die entsprechende Schaltung zum Vergleichen des indexwertes aus dem Rückkehrwort-Register 20b mit dem /-Feld ist ein Komparator 217 (Fig. IA). Falls der Indexwert größer als der Wert des /-Feldes ist, ist der Indexwert ungültig, worauf in einer Blockschaltung 218 der Fig. IA das MDI-/MDW-Zustandswort erzeugt wird.
Wenn dagegen der Indexwert geringer als der Wert des /-Feldes ist, wird er in einem Addierer 225 zum /n-Feld des Anzeigewortes (Fig. IA) addiert, um die absolute Adresse des Beschreibungswortes zu erzeugen, auf das zugegriffen werden soll.
Gemäß einem Block 170 der Fig.9a wird auf das Beschreibungswort unmittelbar zugegriffen, nachdem seine absolute Adresse (Block 169 der F i g. 9) gebildet ist. Das Lesen des Beschreibungswortes erfolgt also als Ergebnis der Bestimmung seiner absoluten Adresse in dem Addierer 225, der es über eine Leitung 229 in einer Beschreibungsliste 230 des Arbeitsprogramms innerhalb des Hauptspeichers 200 (F i g.!! B) adressiert. Der Inhalt des Beschreibungswortes auf das zugegriffen wurde, wird dabei in ein MDW-Register 231 der F i g. 1 eingespeist. Das /?-Bit dieses Beschreibungswortes wird danach über eine Leitung 232 in das /?-Bit eines Indexwort-Registers 226 des allgemeinen Rcgisterstapels 207 der F i g. 1A rückgeführt.
In einer Blockschaltung 255 der Fig. IA werden der Indexwert und das Ε-Bit aus dem Rückkehrwort-Register 206 aufbewahrt (Block 160 der F i g. 9). Der Grund hierfür ist, daß diese Werte während der Ausführung des /-//-Sprungbefehls in das Index wort-Register 226 eingesetzt werden, damit es eine laufende Aufzeichnung über die Adresse enthält, an welcher Stelle sich das Programm befindet, nachdem der Sprung beendet ist.
Auch während der Ausführung des /.//-Sprungbefehls werden gewisse Daten, die vor der Ausführung dieses Befehls im Indexwort vorhanden waren, zum /,//-//.DZ-Rückkehrwort übertragen, damit das Programm zu dem Zustand zurückkehren kann, den es einnahm, bevor der Z.//-/Z.D/-Sprungbefeh] auftrat
Zusammenfassend betrachtet, werden während der Ausführung des Sprungbefehls der Indexwert und das Ε-Bit des dem Sprung vorausgehenden LIJ-ZLDJ-Rückkehrwortes zum Indexwort übertragen, und das E-, R- und I/D-Bh und das jeweilige Indexfcld des dem Sprung vorausgehenden Indexwortes werden zum LIJ-/LDJ-Rückkchrwort gebracht. Folglich zeigt das letztere stets den Zustand an, zu dem das Programm nach dem Ende der Befehlsfolge, also nach dem Sprung zurückkehren kann, und das Indexwort enthält stets den laufenden Zustand des Programms.
Der Informationsaustausch zwischen dem Rückkehrwort-Register 206 und dem indexwori-Register 226 ist in Blöcken 171 und 172 der Fig.9A enthalten. Gemäß dem Block 172 wird nach dem Ende des Sprungbefehls das Λ-Bit des Indexwortes über eine Leitung 232 dem MDW-Register 231 entnommen, auf das während der Ausführungszeit des Sprungbefehls zugegriffen wurde. Auch wird das I/D-Bh 16 oder 34 des Indexwortes in Abhängigkeit davon geändert, ob der Sprungbefehl tatsächlich ein LDJ- oder L//-Sprungbefehl war.
Das £-Bit und der Indexwert ays dem Rückwort-Register 206 (Fig. 1 A) werden über eine Leitung 227 zum ff-Bit und zum Datenbankindex des Indexwort-Registers 226 gebracht. Nahezu gleichzeitig werden das E-Bit, das //D-Bit, das Λ-Bit und der Datenbankindex des Indexwort-Registers 226, wie sie unmittelbar vor der Ausführung des Sprungbefehls gespeichert waren, über Leitungen 228 zu den entsprechenden Bitpositionen des Rückkehrwort-Registers 206 übertragen.
Nach dem Zugriff auf das Beschreibungswort und dem Informationsaustausch zwischen dem LIJ-/LDJ-Rückkehrwort und dem Indexwort ist der nächste Schritt in Fig.9A die Abänderung des Inhaltes eines PS/?-Basis-Registers 235 und eines SL/?-Speichergrenzenregisters 236 durch das Beschreibungswort 107 (Block 173).
Wenn sich am Schluß der Ausführung eines LIJ-/LDJ-Sprungbefehls das R-Bh (Ortsbit) des MDW-Registers 231, das mit dem neuen Beschreibungswort beladen ist, oder des Rückkehrwort-Registers 206 im Setzzustand befindet, wird der Sprungteil dieses Befehls aus folgendem Grunde unterdrückt. Wenn das R-Bh des Beschreibungswortes gesetzt ist, bedeutet dies, daß diesem Abschnitt des ausführenden Programms zur Zeit seiner anfänglichen Einbringung in den Hauptspeicher 200 kein Platz zugewiesen werden konnte. Dementsprechend wird eine Unterbrechung hervorgerufen, der eine Erzeugung und Speicherung des MDI-/MDW-2.M-standswortes in der Blockschaltung 218 folgt. Unter der Mitwirkung des A-/D/-/AfDH^-Zustandwortes beendet das ausführende Programm zugleich die Raumzuweisung für diesen Programmabschnitt und speist den letzteren in den zugeteilten Ruum ein. Somit ist das R-Bh bei der Bearbeitung von abschnittsweisen Überlagerungen wirksam.
Das R-Bh wird aus dem Rückkehrwort-Register 206 (Fig. IA) hierzu über eine Leitung 310 in eine logische Schaltung 245 (Fig. 1) eingegeben, in der sein Zustand geprüft wird. In ähnlicher Weise wird das R-Bh aus dem AfDW-Register 231 über eine Leitung 232 einer logischen Schaltung 246 zugeleitet, um zu bestimmen, ob es 0 oder 1 ist. Falls das in die beiden logischen Schaltungen 245 und 246 eintretende Ä-Bit eine Null ist, wird über UND-Glieder 253 und 254 eine Sprungschaltung 247 erregt, damit der Sprungteil des LIJ-/LDJ-Sprungbefehls wirksam wird. Insbesondere springt das Programm zu derjenigen Adresse, die unter Verwendung des neuen Basiswertes, der in das PS/?-Basisregister 235 bzw. ein PSÄE-Basisregister 248 eingeführt ist, durch ein i/-Feld des L//-/LD/-Sprungbefehls festgelegt ist.
Die spezieile Schaltung zur Bestimmung der absoluten Adresse des Operandenbefehls, der durch den auf den L//-/Z.D/-Sprungbefehl folgenden Befehl festgelegt ist, ist in einem Block 250 enthalten. Sobald diese absolute Adresse bestimmt ist, wird sie über eine Leitung 251 in das «"-Register 203 überführt, von dem aus sie über das UND-Glied 254 in die Sprungschaltung 247 gelangt, die auf den Hauptspeicher 200 zugreift Gemäß der Fig. 1 gibt das UND-Glied 253 ein 1 -Signal ab, wenn den beiden logischen Schaltungen 245 und 246 als R-Bhs O-Signale zugeführt werden. Mit dem Erscheinen eines Taktpulses C4/4 öffnet sich das UND-Glied 254 und läßt die neue absolute Adresse aus dem P-Register 203 ein, damit auf den Hauptspeicher 200 zugegriffen wird.
Von den Haupt- und Nebentaktpulsen wird in der Schaltung der Fig. IA und IB die Folge der Ereignisse gesteuert. Mit dem Auftreten der Taktpulse Gfi wird der L//-/LD/-Sprungbefehl in das P-Register 203 (F i g. 1 B) eingelassen. Beim nächsten Nebentaktpuls Ci h wird der Inhalt des P-Registers 203 zum Weiterschaltregister 204 überführt.
Im einzelnen sei auf die folgende Tabelle verwiesen, in der die gesamte Folge von Ereignissen während der weiteren Ausführung eines L//-/LD/-Sprungbefehls erläutert ist. In den Fig. 1, IA und IB sind die üblichen Verknüpfungsglieder zur Eingabe der Taktsignale weggelassen, su daß die 'letzteren direkt (zur Vereinfachung der Zeichnung) in das jeweilige Register eintreten. C\ ti Berechnung der relativen Basisadresse P + 1 im Register 205,
C\U Eintritt der relativen Basisadresse (P + 1) — Bl (oder BD) über die Leitung 208 in das Rückkehrwort-Register 206 (F ig. IA),
Gf, Überprüfung im Verknüpfungsglied 211 (Fig. 1), ob das Ε-Bit dieses Rückkehrwort-Registers 206 null ist.
Gf; Überprüfen im Verknüpfungsglied 213, ob der Kennteil D 19 des PSRE- Basisregisters 248 null und das Ε-Bit des Rückkehrwort-Registers 206 eins ist,
Cih Überprüfen im Verknüpfungsglied 212. ob der Kennteil D 19 des PSRE- Basisregisters 248 und das
Ε-Bit des Rückkehrwort-Registers 206 eins sind. C-iU Überprüfen im Komparator 217 (Fig. IA), ob der !ndexwert aus dem Rfickkehrwort-Register 206 größer als das /-Feld im Anzeigewort-Register 215 des Arbeitsprogramms ist,
Gfi Hinzufügen des Indexwertes zum m-Feld aus dem Anzeigewort-Register 215 des Arbeitspn-gramms, wobei sich die Adresse des Beschreibungswortes ergibt,
df j Zugriff über die Leitung 229 zur Beschreibungsliste
230 im Hauptspeicher 200 (F i g. 1 B), Gfj Auslesen des neuen Beschreibungswortes in das MDW-Register 231 (F ig. 1).
CiU Einspeisen des neuen Beschreibungswortes aus dem MDW-Register 231 in das PSK-Basisregister 235, in das PSRE- Basisregister 248 und in das SLR-Speichergrenzenregister 236,
Gf, Überprüfen der «-Bits im MDW-Register 23\ und im Rückkehrwort-Register 206 mit Hilfe der Leitungen 232 und 310 in den Verknüpfungsgliedern 245 und 246,
Gf2 Bestimmung der absoluten Basisadresse P + 1 des Befehlswortes für den nächsten Speicherzugriff im Block 250 (F ig. 1),
G/3 Eintritt dieser absoluten Basisadresse P + 1 in das P-Register 203 (F i g. 1 B), und
Gf4 Ausführung des Sprungteiles des LlJ-/LDJ-Sprungbefehls bei der absoluten Adresse P + 1 in der Sprungschaltung 247.
Hierzu 9 Blatt Zeichnungen

Claims (5)

Patentansprüche:
1. Schaltungsanordnung zur Adressierung von in einem Hauptspeicher listenmäßig abgelegten Beschreibungswörtern, die jeweils ein Feld mit einem Indexwert zur Bildung von mehreren absoluten Adressen in einem Bereich des Hauptspeichers enthalten, mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register, in dem außer der Rückkehradresse zur Fortsetztung des Hauptprogramms ein Indexwert zur Abänderung einer Anzahl aufeinanderfolgender Adressen eingebracht ist, dadurch gekennzeichnet, daß beim Auftreten eines Sprungbefehls in Obereinstimmung mit dem jeweiligen Hauptprogramm eines von mehreren Rückkehrwort-Registern (206) in einem allgemeinen Registerstapel (207) adressiert wird, das seinen Indexwert (MDl) als relative Adresse des Beschretbungswortes an einen Addierer (225) ausgibt, in dei« sie zu einer den Beginn einer Liste von Beschreihüagswörtern angebenden Adresse (m) aus einem ein Anzeigewort (MDP) enthaltenden Register (215 oder 216) des Registerstapels (207) addiert wird, und daß während der Durchführung der Subroutine der Indexwert (MDI) innerhalb des adressierten Rückkehrwort-Registers (206) zum Übergang auf den anderen Bereich des Hauptspeichers gegen einen anderen Indexwert (MDI) aus einem von mehreren Indexwort-Registern (226, 226') austauschbar ist
2. Schaltungsanordnung nach dem Anspruch 1, dadurch gekennzeichnet, daß die relative Adresse des Beschreibungswortes au., dem -,.dressierten Rückkehrwort-Register (206) in Hilfsmittel (255) zu ihrer vorübergehenden Aufbewahrung; 'verführbar ist.
3. Schaltungsanordnung nach dem Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Addierer (225) von einem Komparator (217) einschaltbar ist, dem sowohl aus einem Abschnitt (t) des das Anzeigewort (MDP) enthaltenden Registers (215 oder 216) eine die Länge der Liste der Beschreibungswörter angebende Zahl als auch die relative Adresse des Beschreibungswortes aus dem adressierten Rückkehrwort-Register (206) zuführbar sind, und daß im Falle, daß diese relative Adresse die die Länge der Liste angebende Zahl übersteigt, die Einschaltung des Addierers (225) unterbleibt.
4. Schaltungsanordnung nach dem Anspruch I, dadurch gekennzeichnet, daß im Rückkehrwort-Register (206) ein (7/D-JKennbit (34) in Abhängigkeit davon setzbar ist, ob ein Sprungbefehl bezüglich einer Befehlsbank des Hauptspeichers (200) oder ein Sprungbefehl bezüglich einer Datenbank des Hauptspeichers (200) ausgeführt wird.
5. Schaltungsanordnung nach den Ansprüchen 1 und 4, dadurch gekennzeichnet, daß die Indexwort-Register (226,226') aus zwei einander ähnlichen Teilen bestehen, von denen sich der eine auf eine relative Adresse für die Befehlsbank des Hauptspeichers (200) und der andere auf eine relative Adresse für die Datenbank des Hauptspeiehers (200) bezieht, und daß die beiden Teile je ein (l/D-JKennbit (16 bzw. 34) aufweisen, mit dessen Hilfe die eine der beiden relativen Adressen zum Austausch auswählbar ist.
DE2366283A 1972-08-24 1973-08-21 Schaltungsanordnung zur Adressierung von listenmäßig abgelegten Beschreibungswörtern mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register Expired DE2366283C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US28359672A 1972-08-24 1972-08-24

Publications (1)

Publication Number Publication Date
DE2366283C2 true DE2366283C2 (de) 1984-08-09

Family

ID=23086778

Family Applications (2)

Application Number Title Priority Date Filing Date
DE2366283A Expired DE2366283C2 (de) 1972-08-24 1973-08-21 Schaltungsanordnung zur Adressierung von listenmäßig abgelegten Beschreibungswörtern mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register
DE2342101A Expired DE2342101C2 (de) 1972-08-24 1973-08-21 Schaltung zum bereichsweisen Adressieren der Register in der Befehlsbank und Datenbank des Hauptspeichers einer Rechenanlage

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE2342101A Expired DE2342101C2 (de) 1972-08-24 1973-08-21 Schaltung zum bereichsweisen Adressieren der Register in der Befehlsbank und Datenbank des Hauptspeichers einer Rechenanlage

Country Status (1)

Country Link
DE (2) DE2366283C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0206335A2 (de) * 1985-06-27 1986-12-30 Nec Corporation Unterbrechungsmethode für ein Datenverarbeitungssystem

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0040703B1 (de) * 1980-05-23 1986-07-16 International Business Machines Corporation Verbesserung eines Datenverarbeitungsapparates vom Typ System/370

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3389380A (en) * 1965-10-05 1968-06-18 Sperry Rand Corp Signal responsive apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3389380A (en) * 1965-10-05 1968-06-18 Sperry Rand Corp Signal responsive apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Proceedings of the Ire, Jan.1961, S.53-56 *
Speiser: "Digitale Rechenanlagen", Springer-Ver- lag Berlin 1967, S.410 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0206335A2 (de) * 1985-06-27 1986-12-30 Nec Corporation Unterbrechungsmethode für ein Datenverarbeitungssystem
EP0206335A3 (en) * 1985-06-27 1988-09-21 Nec Corporation Interruption mechanism

Also Published As

Publication number Publication date
DE2342101A1 (de) 1974-03-28
DE2342101C2 (de) 1982-10-21

Similar Documents

Publication Publication Date Title
DE2724125C2 (de)
DE1952374C3 (de) Informationsverarbeitendes System mit einer Adressiervorrichtung
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE3751540T2 (de) Verfahren und Vorrichtung zur Datenverarbeitung.
DE2331589A1 (de) Datenverarbeitungsanordnung
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE1901343A1 (de) Datenverarbeitungsanlage mit mehreren Verarbeitungseinheiten und an diese angeschlossenen Speichereinheiten
DE2746505C2 (de)
DE1269393B (de) Mikroprogramm-Steuerwerk
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1179397B (de) Datenverarbeitende Maschine mit sich zeitlich ueberlappender Datenverarbeitung
DE1190706B (de) In zwei abwechselnden Zyklen arbeitende programmgesteuerte elektronische digitale Rechenmaschine
DE2366283C2 (de) Schaltungsanordnung zur Adressierung von listenmäßig abgelegten Beschreibungswörtern mit einem zur Durchführung einer Subroutine vorgesehenen Rückkehrwort-Register
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE1499286B2 (de) Datenbearbeitungsanlage
DE1296429B (de) Datenbearbeitungsanlage
DE2343501B2 (de) Steuerschaltung für zumindest eine Rechenanlage mit mehreren für die Durchführung von EuWAusgabe-Programmen bestimmten Registern
DE2644180C3 (de) Datenverarbeitungssystem
DE2204680C3 (de) Mikroprogramm-Steuereinrichtung
DE3887717T2 (de) Prozessor für programmierbaren logischen regler und programmierbarer logischer regler.
DE1957600B2 (de) Elektronischer Rechner
DE1524878B2 (de) Verfahren zum erzeugen von steuersignalen fuer die steuerung adressierbarer wortorientierter speicher
DE1934441C3 (de) Befehlswerkgesteuertes Rechenwerk für einen Digitalrechner
DE1774866C3 (de) Schaltung zur Bestimmung der Adresse einer in einem Speicher einer Datenverarbeitungsanlage enthaltenen, gesuchten Information

Legal Events

Date Code Title Description
OI Miscellaneous see part 1
OI Miscellaneous see part 1
OD Request for examination
OD Request for examination
OGA New person/name/address of the applicant
AC Divided out of

Ref country code: DE

Ref document number: 2342101

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee