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-RegisterInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation 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
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.
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
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)
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.
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3389380A (en) * | 1965-10-05 | 1968-06-18 | Sperry Rand Corp | Signal responsive apparatus |
-
1973
- 1973-08-21 DE DE2366283A patent/DE2366283C2/de not_active Expired
- 1973-08-21 DE DE2342101A patent/DE2342101C2/de not_active Expired
Patent Citations (1)
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)
Title |
---|
Proceedings of the Ire, Jan.1961, S.53-56 * |
Speiser: "Digitale Rechenanlagen", Springer-Ver- lag Berlin 1967, S.410 * |
Cited By (2)
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 |