-
Adressierschaltung zur programmgesteuuerten Änderung der Basisadressenwerte
Die Erfindung betrifft eine Adressierschaltung zum Adressieren eines Hauptspeichers
eines Rechenautomaten. von der ein Basisadressenwert in einem relativen Basisadressiersystem
selbsttätig abgeändert werden kann, ohne daß der fortlaufende Arbeitsvorgang des
Anwendungsprograanns unterbrochen wird. Bei den innerlich programmierten, modernen
Reohenautoiaten wird der Hauptspeicher gewöhnlich zur Unterbringung der Operanden
und der Rechenmaschinenbefehle verwendet. Die Operanden sind normalerweise die zu
verarbeitenden Daten, und die Befehle sind in ihrer Gemeinschaft die vom Rechenautomaten
selbsttätig auszuführenden Programme. Die einzelnen Befehl. bewirken, daß eine Rechenanlage
eine spezielle Funktion, s. B. das Addieren oder Dividieren, ausführt. Üblicherweise
enthält ein Befchlswort eines Rechenautomaten neben dem Befehlsteil zumindest einen
Adreßteil, der einen adressierbaren Platz ja Uptspeicher beseichnet, Folglich gibt
der Befehl.-teil die vc. Rechenautomaten durchzuführende Operation und der Adreßteil
die Adresse ja Hauptspeicher an, bei der die Information untergebracht ist, an der
die Operation ausgeführt worden soll.
-
Der Adreßteil des Bsfahlswortes braucht sich nicht direkt auf die
absolute Speicheradressa, auf die zugegriffen werden soll, zu besichen, sondern
kann einen Steuerabschnitt des Rechenautomaten aufruhen, der aus ihm durch seine
Bearbeitung oder durch Hinzufügung eines Indexwertes oder eines Basisadressenwertes
die gewünschte absolute Adresse errechnet.
-
Um einen Versweigungsbefehl auszuführen, kann der Adreßteil auch eine
Adresse im Hauptspeicher bezeichnen, bei der die Folge der Befehle fortgesetzt werden
soll.
-
Die Speichermsdien, z. B. die magnetischen Kernspeicher, die magnetischen
Trommelspeicher, die Magnetscheibenanordnungen oder andere bekannte Speichersysteme
sind normalerweise in adressierbare Speicherplätze unterteilt, die als adressierbare
Register, zugreifbare Speicherzellen oder durch andere Ausdrücke bezeichnet werden.
Diese adressierbaren Register sind dem Rechenautomaten durch bekannte Schaltungen
zugänglich. Bein Zugreifen auf den gewünschten Speicherplatz werden Signale erzeugt,
von denen ein Auslesen oder Einschrelben an diesem Speicherplatz bewirkt wird, wie
durch den Befchlsteil des Befchlswortes festgelegt ist.
-
Um eine spezielle Operation mit einem digitalen Rechenautomaten auszufuhren,
ist es Ublich, suerst eine vorgegeben. Liste von Befchls-Worten auf sustellen und
diese an adressierbaren Plätzen des Hauptspeichers unterzubringen. Außerdem werden
gewöhnlich Daten verschiedener Art benötigt, die im allgemeinen am Listenende der
Befehlsworte des Rechenautomaten aufbewahrt werden.
-
Mit der Konstruktion von Rechenautomaten, die mit zunchmend höheren
Geschwindigkeiten und zunehmend umfangreicheren Kapazitäten arbeiten, wunsoht man
zahlreiche unabhangig betriebsfähige Programm ii Hauptspeicher aufzubewahren und
ein ausführondes Steuerprogramm vorzusehen, von dem einige ausgewählte Programm,
die häufig als Arbeitsprogramme bezeichnet werden, zur Bearbeitung während einer
Zeitspanne veranlaßt worden, bis es abgeschlossen ist oder aus irgendeinem Grund
unterbrochen wird, s. B. wenn ein relativ langsames peripheres Gerät zugreift, Bei
der Unterbrechung eines Arbeitsprogramms kann das ausfhhrende Steuerprogramm forttahren,
einen Abschnitt eines anderen Arbeitsprogramms aussuführen. Diese Arbeitaweise ist
allgemein
als Zeitataffelung bekannt und flihrt während des Gebrauchs
des gesamten Rechenautomaten zu einer größeren Leistungsfähigkeit. Zu einem gegebenen
Zeitpunkt ruht wahrscheinlich eine Anzahl von Arbeitsprogrammen im. Hauptspeicher
und sogar eine noch gröbere Anzahl von Arbeitsprogrammen ist in den Speichermedien
außerhalb den Reohenautomatten untergebracht.
-
Eine Schwierigkeit die die Anwendung von umfangreichen digitalen Rechenautomaten
beschränkt, liegt in dem Problem, den verschiedenen Arbeitsprogrammen im Hauptspeicher
einen Raum zusuteilen, wenn diese von einem äußeren Speicher aus eingespeist werden.
Bei den frUheren Systemen gab es häufig Überschneidungen im Programmraum, die auf
eine gleiche absolute Adressierung zurückzuführen sind. Dieses wurde durch das Schwimmen
der vorgegebenen relativen Adressierung auf einer einstellbaren absoluten Basisadresse
des Systems erleichtert.
-
Es ist auch eine allgemeine Praxis, die Befchlsabschnitte eines Programms
in einem zusammenhängenden Abschnitt von Speicheradrensen des Hauptspeichers und
die Operanden fur die zu bearbeitenden Daten in einem anderen zusammenhängenden
Abschnitt von Speicharplätren unter zubringen. Der zuletzt genannte Abschnitt kann
Jedoch von demjenigen Abschnitt der Speicherplätie weit entfernt sein, an dem die
Befchle gespeichert sind, Während der Inhalt der verschiedenen Speicherabschnitte
willUrlich ist, können sich die Aufgaben der einzelnen Abschnitte ändern.
-
Wenn dementsprechend ein gegebenes Arbeitsprogramm in den Hauptspeicher
eingespeist werden soll, ist es ein offensichtliches Problem, für dieses dort einen
Raum zu finden, falls der hauptspeicher bereits mehrere Arbeitsprogramme enthält,
die einen wesentlichen Anteil des verfügbaren Raumes in der Weise einnehmen, daß
kein langer, zussmmenhängender Abschnitt mit Speicherplätsen verbleibt. Während
zahlreiche kurze Abschnitte mit Speicherplätzen zwischen den verschiedenen
im
Hauptspeicher untergebrachten Programmen vorhanden sein können, kann diesor verfügbare
Raumunsureichend sein, um die Befehls-oder Datenfolgen des neuen Programms aufzunehmen,
das in den Haupt speicher eingespeist werden soll, Zur Lösung dieses Problems sind
bislang verschiedene Vorschläge gemacht worden0 Ein solcher besteht einfach darin
eine Spoicherung von neuen Arbeitsprogrammen in den Hauptspeicher zuzulassen, obgleich
für nie kein Raum zur Verfügung steht. Dann ist es notwendig, nur diejenigen Arbeitsprogramme
herauszusuchen, die so kurz sind, daß sie noch in den verfügbaren Raum des Hauptspeichers
hineinpassen. Eine andere Lösung ist einfach die zu warten, bis das im Verfahren
befindliche Programm beendet ist, und dann das nächste Programm einzuführen.
-
Diese Lasung ist offensichtlich ziemlich zeitraubend. Eine weiter.
-
Lösung ist in der USA-Patentschrift Nr. 3.389.380 vom 18. Juni 1968
bzw. in der USA-Patentschrift Nr. 3.641.433 vom 12.August 1969 beschrieben; dort
wird eine relative Basisadressierung erläutert, bei der der Basisadressenwert abgeändert
und debei entweder die Befehlsfolge oder die Operandenfolge eines gegebenen Arbeitsprogramms
von dem einen Speicherabschnitt ZU einem anderen innerhalb des Hauptspeichers verschoben
werden kann. Folglich können die im Hauptspeicher befindlichen Programme weiter
geschoben werden, damit der verfügbare Speicherraum wirkungsvoller genutzt werden
kann.
-
Dieses bekannte Verfahren hat jedoch verschieden Nachteile, weil der
anwrtrisbarr Raum noch durch die Anzahl der im Hauptspeicher ruhenden Arbeitsprogramme
und durch die Größe der einzelnen Befehls- und Operandenfolgen dieser Arbeitsprogramme
beschränkt und begrenzt wird.
-
Eine weitere Beschränkung der bekannten Steuerschaltungen, bei denen
eine relative Basisadressierung stattfindet, liegt darin, daß die Basisadressenwerte
auf einen ziemlich engen Bereich des Hauptspeichors begrenzt sind. Bei einem Wort
aus 18 Bits ist der Block des
Hauptspeichers, in dew ein Prorainrn
neu angeordnet werden kann, auf 262.000 Wörter beschränkt.
-
Ein Hauptziel der Erfindung ist es, den Speicherbereich, in dem die
Abschnitte eines Programms untergebracht werden können, unter der Steuerung des
Arbeitsprogramms ohne Verluste an Genauigkeit und Sicherheit sehr betrachtlich zu
erweitern.
-
Ein weiteres Ziel der Erfindung ist es, den Gesamtspeicher, also sowohl
den Hauptspeicher als auch einen erweiterten Speicher in mehrere Speicherbänke zu
unterteilen, damit ein Arbeitsprogramm zwischen vier gewählten aktiven Speicherbänken
schalten und eine der vier aktiven Speicherbnke durch eine der anderen Speicherbänke
ersetzen kann, ohne daß die Steuerung des Systems aufgegeben wird.
-
Ein drittes Ziel der Erfindung ist es, durch eine Aufteilung der Befehls-
und Operandenfolge eines Arbeitsprogramms in mehrere Abschnitte einen größeren,
unmittelbar zugreifbaren Speicherraum verfugbar zu machen, diese Programmabschnitte
an verschiedenen Plätzen des Hauptspeichers oder des erweiterten Speichers unterzubringen
und dann auf jeden Programmabschnitt mit Hilfe eines Befehls und der luge-Hörigen
Steuerschaltung zuzugreifen, die den Basisadressenwert abändert, wenn die Folge
der Befehle oder Operanden von einem Programm abschnitt aus, der in einem Abschnitt
des Hauptspeichers oder des erweiterten Speichers untergebracht ist, zu einem Progra-absohnitt
weitergeht, der in einem anderen Bereich des Hauptspeichers oder des erweiterten
Speichers aufbewahrt ist, Die Abänderung des Basisadressenwerten kann entweder unmittelbar
durch das ausführende Programm oder ohne eine ausfllhrende Steuerwechselwirkung
durch das Arbeits-Programm erfolgen. Die Genauigkeit des Systems bleibt erhalten.
-
Ein viertes Ziel der Erfindung ist es für das Arbeitsprogramm oder
das ausführende Programm eine Abänderung seiner Grenzen jedesmal dann
vorzusehen,
wenn ein neuer Basisadressenwart gewellt wird, da der neue Basisadressenwert einen
unterschiedlichen Programmabschnitt in sich schließt.
-
Ein fünftes Ziel der Erfindung ist es, ein ständig auf den neuesten
Stand gebrachtes Anzeigewort flir die relative Basisadresse des Hauptspeichers vorzusehen,
die mit der relativen Basisadresse irgendeiner Befehls- oder Operandenadresse verglichen
werden kann ,wn festzustellen, ob das Programm auf einen Befehlsabschnitt oder einen
Operandenabschnitt des Progranuns zugreifen sollte.
-
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt
und werden im folgenden näher erläutert. Die Einzelheiten der Figuren geben wichtige
Merkmale der Erfindung wieder. Es stellen dar: die Figuren 1 bis 7 verschiedene
Wortformate, die gemäß der Erfindung angewendet werden, Figur 8 den Platz der verschiedenen
Wörter nach den Figuren 1 bis 7 in dem allgemeinen Registerstapel und im Hauptspeicher
der Rechenanlage, die Figuren 9 und 9A ein Flußdiagramm für den Arbeitsablauf der
Erfindung.
-
Figur 10 die gegenseitige Anordnung der Figuren 9 und 9A, die Figuren
11, llA und llB ein Blockschaltbild für die logische Schaltung gemäß der Erfindung,
Figur 12 die Art und Weise, wie die Figuren 11, llA und llB suesnander passen,
Figur
13 zeitliche Auftragungen, die das Verständnis des Schaltbildes der Figuren 11 und
llA erleichtern, Figur 14 etwas ausführlicher die Beziehung zwischen den MD, PSR-,
PSRU-, StR und SLRU-Registern in Abhängigkeit von einem LIJ-Sprungbefehl und Figur
15 eine ähnliche Beziehung zwischen den verschiedenen Registern in Abhängigkeit
von einem LDJ-Sprungbefehl.
-
Wie bereits angegeben, wird ein gegebenes Programm in mehrere Abachnitte
unterteilt, die in den verschiedenen Abschnitten des Hauptspeichers der Rechenanlage
gespeichert werden, damit die Speicherka pazität wirkungsvoller genutzt werden kann.
-
Diese Programmabschnitte können aus Befehlen oder Operanden oder aus
einer Kombination von beiden bestehen. Bei kleineren Unterschieden erm8glicht die
Erfindung, daß die Basisadressenwerte für die die Befehle enthaltenden Abschnitte
geändert werden, wie es bei den die Operanden enthaltenden Abschnitten der Fall
ist. Dementsprechend ist der größte Teil der Beschreibung auf die Abänderung der
Basisadressen-Werte in den die Befehle enthaltenden Programmabsohnitten gerichtet,
während besonders erklärt ist, wenn die die Operanden enthaltenden Abschnitte unterschiedlich
bearbeitet werden0 Wenn das Programm mit seinen zahlreichen Befehlen ausgeführt
wird, hat ein gegebener, laufender Befehl eine absolute Adresse, die mit der relativen
Basisadresse, addiert mit dem Basiswert, übereinatimmt, der allein für den Abschnitt
des Programms gilt, in dem der laufende Befehl untergebracht ist. Die relative Basisadresse
ist als Adresse des Befehls beztiglich der ersten Adresse des Programms, die normalerweise
null ist, definiert. Der basiswert ist derjenige Wert} der der relativen Basisadresse
hinzugefügt werden muß, um die absolute Adresse
zu erhalten. Dieser
Basisadressemwert ist tatsächlich die absolute Adres@@ des ersten Wortes des Speicherabschnittes,
in dem der gerade laufend ausgeführte Programmbefehl vorhanden ist.
-
Wenn der Befehlsteil (oder Operandenteil) eines Programms gerade in
einem gwisen Bereich d¢s Hauptspeichers arbeitet, möchte man ihn häufig zum Springen
zu einer anderen Befehlsfolge (oder Operandenfolge) veranlassen, die jn einem anderen
Bereich des Hauptspeichers untergebracht ist; am Schluß dieser anderen Folge möchte
man dann zum ersten Bereich des Hauptspeichers zurückkehren, um mit der Ausführung
des Progranrns fortzufahren. Bei einer solchen Folge von Ereignissen müssen gewisse
Aufzeichnungen festgehalten und gewisse Richtungen vorgegeben werden. Insbesonders
muß eine Information den genauen Bereich des Hauptspeichers bezsichnen, zu dem hin
das Programm springen muß, um den nächsten Befehl zu finden. Außerdem muß der Punkt
im Hauptspeicher registriort werden, zu dem In das Programm surU*kkehren muß Verschiedene
Worte werden in bestimmten Registern dea Rechenautomaten untergebracht, um diese
Informationen zu liefern, Beispielsweise enthält ein PSRRegister unter anderem den
Basisadressenwert, zu dem die relative Adresse eines Befehls hinzugefügt werden
muß, um die absolute Adresse eines Befehls zu bestimmen. Da es eine ganze Anzahl
solcher Basisadressenwerte für die verschiedenen Bereiche des Haupt speichers gibt,
in denen Abschnitte des Programms gespeichert werden, liegt für jedes Programm eine
Liste von MDW-Beschreidungswörtern vor, die je einen Basisadressenwert enthalten.
Diese Liste wird von einem MDP-Anzeigewort identifiziert. Jedesmal wenn das Programm
auf andere Abschnitte umschaltet, tnrd der Liste ein neues MDW-Beschreibungswort
entnommen, und der dort befindliche basisadressenwert wird in das PSR-Register gesetzt,
damit, wenn die relative Basisadresse des nächsten Befehls zum neuen Basisadressenwert
hinzugefügt wird, die richtige absolute Adresse des nächsten Befchls erhalten wird.
Es its notmendig,
daß der Adressenindex der speziellen, laufend
verwendeten MDW-Beschreibungswörter in einem besonderen MDIRegister festgehalten
wird.
-
Falls das Programm von einem Speicherabschnitt zu einem anderen springen
soll, muß eine LIJ-befehlsbank oder eine LDJ-Datenbank vorgesehen seing die eine
Programmsubroutine einleitet, die letztlich eine Kette von basisadressenwerten im
PSR-Register ergibt. Ein Befehl aus der LIJ- bzw. LDJ-Bank schreibt den Platz in
einem Register tor, das ein LIJ-/LDJ-Rückkehrwort enthält, das einen MDI-Indexwert
des Arbeitsprogramms aufweist, der auf eine spezielle Adresse in der Liste der MDW-Beschreibungswörter
des gerade ausgeführten Programms hin weist. Dieser MDI-Indexwert wird der Adresse
des MDP-Anzeigewortes hinzugefügt, und dabei entsteht eine absolute Adresse, die
das spezielle MDW-Beschreibungswort identifiziert, das den neuen, zu verwendenden
Basisadressenwert darstellt. Der letztere wird dann in das PSR-Register geracht
und greift, wenn er zur relativen Basisadresse des nächsten Befehls des Programms
hinzugefügt ist, auf den absoluten Wert dieses nächsten Befehls im Hauptspeicher
zu.
-
Für jedes Programm muß es, wie man erkennt, ein MDP-Anzeigewort geben,
das auf das erste Wort in einer interessierenden MDT-Beschrebungsliste hinweist,
die ihrerseits mehrere MDW-Beschreibungswörter aufweist Die letzteren werden einzeln
von den MDI-Indexwerten identifiziert, die in den LIJ-/LDJ-Rückkehrwörtern enthalten
sind, die je durch den LIJ-/LDJ-Sprungbefehl vorgeschriebeben sind.
-
Bei einem beliebigen Basisadressenwert ist es unabhängig davon, ob
er sich auf eine Befehls- oder Datenbank bezieht, notwendig, daß jeder Zugriff zum
Hauptspeicher, der durch den Basisadressenwert definiert ist, innerhalb der Grenzen
eines bestimmten Bereiches des Hauptspeichers erfolgt. Um sicherzustellen, daß diese
Grenzen eingehalten werden, ist ein SLR-Grenzenreigster vorgesehen, das die obere
und
untsre Grenze des Abschnittes des gerade ausgeführten Programms festhält Bevor ein
Befehl ausgeführt wird, wird seine relative Basisadresse bezüglich dieser oberen
und unteren Grenze überprüft, ob sie eine gültige Adresse ist. Gemäß der Erfindung
müssen diese obere und untere Grenze jedesmal. geändert werden. wenn der Basisadressenwert
abgeändert wird.
-
Ein weiteres Erfordernis in einem relativen Basisadressiersystem ist
die Bestimmung, ob der Basisadressenwert des Befehls oder der Daten zu einer gegebenen
relativen Basisadresse addiert wird. Wenn die relative Basisadresse einen Zugriff
auf einen Befehlsbereich des Hauptspeichers bewirken soll, wird der Basisadressenwert
eines Befebls zur relativen Basisadresse hinzugefügt. Falls die relative Basisadresse
für einen Zugriff zum Datenbereich des Hauptspeichers in Betracht kommen soll, wird
der Basisadressenwert der Daten mit ihr addiert.
-
Für diese Bestimmung wird ein BS-Feld benutzt. Insbesondere ist das
BS-Feld ein Wert, der die obere Grenze des laufend aktiven Abschnittes der Befehle
definiert. Die relative Operanden-Basisadresse U wird dann mit dem BS-Feld verglichen.
Falls sie kleiner als der Wert des BS-Feldes ist, wird sie zum Basisadressenwert
des Befehls addiert, um die absolute Adresse zu bilden. Falls die Operanden-Basisadresse
U größer als das BS-Feld ist, wird sie zum Basisadressenwert der Daten addiert.
-
Jedasmal wenn der Basisadressenwert der Befehlsbank abgeändert wird,
wird auch mit Hilfe des neuen Wertes des BS-Feldes, der im MDW-Beschrsibungswort
enthalten ist, der Wert des BS-Reldes abgeändert.
-
In der weiteren Beschreibung werden Wörter aus 36 flits und bestimmte
Wortformate benutzt, die aus Feldern von bestirter Länge aufgebaut sind.
-
Figur 1 zeigt den Aufbau zweier PSR- bzw. PSRE-Register 100 und 101,
die die Basisadressenwerte, ein Anzeigewort für die relative Basisadresse und ein
Feld mit Steuerbits enthalten. Das PSRE-Register 101 ist ein Zusatzrogister für
ein zweites Wort und wird dazu benutzt, die im PSR-Register 100 enthaltenen Basiswerte
so zu verändern, daß sie den erweiterten Abschnitt des Hauptspeichers erreichen.
Insbesondere legen ein BI- und BD-Feld des Wortes im PSR-Register 100 den Befehls-
bzw. Datenbasiswert innerhalb eines Wortabschnittes des Hauptspeichers von vorgegebener
Kapazität fest, dis weiterhin mit 262.000 Wörtern angenommen sei. Durch arweiterte
BIX- und BDX-Felder des Wortes im PSRE-Register 101 wird die Adressen-Kapazität
auf eine von 2n Gruppen der Speicherabschnitte aus 262.000 Wörtern erweitert.
-
Falls n 6 6 ist, wird die Adressen-Kapazität der Kombination des PSR-und
PSRE-Registers 100 und 101 auf 26 x 262.000, also auf ca, 16x106 Wörter des Hauptspeichers
erweitert.
-
Das BI- und BD-Feld des Wirtes im PSR-Register 100 hat Je eine Länge
von 9 Bits und kann daher 512 verschiedene Datenbnke identifizieren.
-
In dem spesiellen, hier zu erläuternden Beispiel wird jede Datenbank
durch eine Aufnahmefähigkeit von 512 Wörtern definiert0 Folglich erstreckt sich
die Adressier-Kapazität des Wortes im PAS-Register 100 auf 512 Bänke mit 512 Wörtern,
also auf insgesamt 262.000 Wörter.
-
Durch die Hinzufügung der erweiterten Adressier-Kapazität der BIX-und
BDX-Felder wird die Anzahl der möglichen Datenbänke aus 512 Wörtern auf 32.768 Bänke
oder 16x106 Wörter gesteigert.
-
Der Inhalt der BI- und BD-Felder des Wortes im PSR-Register 100 und
der BIY- und BDY-Felder des Wortes im PSER-Register 101 wird durch eines der MDW-Beschreibungswörter
abgeleitet und bestimmt, die in der MDT-Beschreibungsliste enthalten sind. Diese
Basisfelder werden mit einer Aufnahmefähigkeit von 512 Wörtern abgeleitet.
-
Wie bereits erwähnt wird ein neues MDW-Beschrelbungswort gewählt und
verwendet, um die Wörter des PSR- und PSRE-Registers 100 bzw. 101 je desmal auf
den neuesten Stand zu bringen, wenn neue Basisadressenwerte für die Befehls- oder
Datenbank als Ergebnis eines im Programm erscheinenden LIJ-/LDJ-Sprungbefehls benötigt
werden.
-
Das BS-Feld enthält einen Wert, der die obere Grenze der relativen
Basisadressen der Befehlsadressenabschnitte festsetzt. Die Datenbank der Adressen
beginnt, wie bemerkt sei, bei einem größeren Wert als der des BS-Feldes und nimmt
von diesem Punkt an zu, so daß sich die gesamte Operanden-Datenbank oberhalb des
Wertes des BS-Feldes erstreckt.
-
Das D-Feld in den Wörtern des PSR- und PSRE-Registers 100 und 101
enthält Steuerbits, die verschiedene Funktionen übernehmen, von denen einige für
die Erfindung interessant sind.
-
Figur 2 zeigt das Format der Wörter in einem PSRU- und PSRUE-Register
1Q3 und 104, die abwechselnd mit dem PSR- bzw. PSRE-Register 100, 101 der Figur
lin Gebrauch gencmmen werden, um die violseitige Verwendbardeit und die Leiscungsfähigkeit
des Systems zu vergrößern, Diese Wörter legen den Platz der Programme im Hauptspeicher
praktisch in derselben Weise wie die Wörter im PSR- und PSRE-Ragister 100 und 101
fest.
-
Die Wörter im PSRU- und PSRUE-Register 103 und 104 sind Alternativen
zu den Wörtern im PSR- und PSRE-Register 100 und 101 und können in derselben Weise
angewendet werden, um vier aktive Bänke der Rechenanlage zuzuordnen. Wie bemerkt
sei, enthalten diese Wrter keine D-Felder, da die D-Felder der Wörter im PSR und
PSRE-Register 100 und 101 ausreichen, um alle notwendigen Steuerfunktionen ausführen
zu können. Ein Kennteil D12 des Wortes im PSRE-Register 101 der Fi gur 1 bezeichnet
entweder die beiden PSR-Register oder die beiden
PSRU-Register
als gerade die flir die Rechenanlage tätigen Register.
-
Das Setzen des Kennbit D12 erfolgt unter der Steuerung des ausführenden
Programms in der Zeitspanne, in der das Arrbeitsprogamm in Abschnitte unterteilt
und in den verschiedenen Abschnitten des Hauptspeichers der Rechenanlage untergebracht
wird Während der Ausführung der verschiedenen Programmabschnitte ändert sich das
Kennbit D12.
-
Wenn das Kennbit D12 gelöscht ist, sind das PSR-Register 100 und ein
SLR-Grenzenregister 105 tätig, während im gesetzten Zustand des Kennbit D12 das
PSRU-Register 103 und ein SLRU-Grenzenregister 106 aktiv sind. Vor der Ausführung
eines Befehls findet eine Überprüfung der Grenzen mit dem SLR- oder SLRU-Grenzenregister
105 bzw. 106 statt.
-
Falls ein anderes Kennbit D18 des PSRE-Registers 101 nicht gesetzt
ist, wird die Ausführung des Befehls unter der Benutzung der laufend aktiven PSR-
und SLR-Register 100 und 105 eingeleitet, Selbst wenn die Uberprafung der Grenzen
einen Fehler anzeigt, falls jedoch ein verwendbarer Überwachungskennteil eine solche
Befehlsausführung erlaubt. Wenn das Kennbit D18 gesetzt ist und die Grensenüberprüfung
einen Fehler anzeigt, werden die (anderen) PSRU- und SLRU-Registe 103 und 106 benutzt,
und es erfolgt eine weitere Grenzenprüfung. Die Ausführung des Befehls unter Verwendung
des PSRU-Registers 103 hängt von den Ergebnissen der zweiten Grenznüberprüfung und
dem Zustand des Überwachungskennteils ab. Wenn der gerade ausgeführte Befehl ein
Sprungbefehl ist, wird das Kennbit D12 ausgelöst und tauscht den aktiven Zustand
der PSR- und PSRU-Register gegen den inaktiven aus. Bei anderen Befehlen als dem
Sprungbefehl wird das Kennbit D13 nicht ausgelöst, so daß der Zustand der letztgenannten
Register derselbe bleibt.
-
Figur 3 zeigt das Format des im SLR-Grenzenregister 105 aufgenommenen
Wortes und gibt die obere und untere Grenze eines gegebenen Abschnittes mit Befehlen
oder Operanden an, die im Hauptspeicher des Systems untergebracht sind. Die beiden
SLR- bzw. SLRU-Grenzenregister
105 und 106 sind dem PSR- bzw.
PSUR-Register 100 bzw. 103 zugeordnet. Beispielsweise enthält das Wort im LSR-Grenzenregister
105 in seinen Bits 18 - 26 die unteren Grenzen der Befehlsbank, in seinen Bits 27
- 35 die oberen Grenzen derselben Befehlsbank, in seinen Bits O - 8 die unteren
Grenzen für die Datenbank und in seinen Bits 9 - 17 deren obere Grenzen. Wie man
sieht, enthält das Wort des SLRU-Registers 106 ähnliche obere und untere Grenzen
flir die Befehls- und Datenbank.
-
Jedesmal wenn ein LIJ-/LDJ-Sprungbefehl auftritt, der eine Abänderung
der Befehls- oder Datenbasiswerte hervorruft, müssen auch die entsprechenden Grenzen
entweder im Wort des SLR-Grenzenregisters 105 oderim Wort des SLRU-Grenzenregisters
106 verändert werden, damit sie mit den neuen Speichergrenzen in Übereinstimmung
kommen. Die letzteren werden aus einem MDW-Beschreibungswort gewonnen, das nun in
Verbindung mit der Figur 4 erläutert sei.
-
Figur 4 stellt das Format eines MDW-Beschreibungswortes 107 dar, das
den neuen Basisadressenwert, den das Programm benutzt, und außerdem die obere und
untere Grenze des Progrannabachnittes {entweder des Betehls- oder Operandenabschnitte
als relative Basisadresse enthält. Es gibt zwei aktive Listen von MDW-Beschreibungswörtern,
die im Hauptspeicher untergebracht sind (Figur 8). Die eine Liste steht unter der
Steuerung des ausfuhrenden Programms und die andere unter der Steuerung des Arbeitsprogramms.
-
In dem Format des MDW-Beschreibungswortes 107 der Figur 4 können die
Bits 18 - 26, die als BI-Feld bezeichnet sind, entweder den Basisindex der Befehlsbank
oder der Datenbank angeben. Das BIX-Feld der Bits 27 - 32 stellt eine Verlängerung
des Bi- oder BD-Feldes dar. Ein LB-Feld in den Bitpositionen o - 8 und ein UB-Feld
in den Bitpositionen 9 - 17 geben die untere und obere Grenze des Programmabschnittes
fUr die Befehls~ oder Datenbank an. Ein W-Bit 34 ist ein Schreibschutz
und
verhindert das Einschreiben in die Befehls- oder Datenbank, falls es nach einer
Übertragung zum PSR-Register 100 gesetzt ist. Ein R-Bit 35 ist ein Ortsbit und bewirkt
im gesetzten Zustand eine Unterbrschung.
-
Figur 5 zeigt das Format eines MDP-Anzeigewortes 108 oder 109, das
auf die Liste der MDW-Beschreihungswörter hinweist, die für das zu bearbeitende
Programm einmalig sind, und außerdem die Länge einer solchen Liste angibt. Um auf
eine spezielle MDT-Beschreibungsliste zuzugreifen, die die MDW-Beschreibungswörter
enthält, die von einem gegebenen Programm benutzt werden, wird das MDP-Anzeigewort
108 oder 109 benötigt, das zum ersten Wort in der MDT-Beschreibungsliste hinweist.
Die Forsate dieser Anzeigexörter 108 und 109 sind sowchl für ihre Verwendung in
einem ausführenden Programm als @@@h in einen Arbeitsprogramm gezeigt.
-
Die beiden MDP-Anzeigewörter 108 und 109 haben dasselbe Format, in
dem ein m-Feld aus den Bits O - 23 ein. Adresse enthält, die auf die erste Adresse
der MDT-Beschrekbungsliste hinweist. Ein t-Feld aus den Bits 24 bis 35 gibt die
Lange der MDT-Liste an. Da es insgesamt 12 Bits umfaßt, kann es maximal 4.096 MDW-Beschreibungswörter
definieren. Sowohl das MDP-Anzeigewort 108 des ausführenden Programms als auch das
MDP-Anzeigewort 109 des Arbeitsprogramms sind in je einem Register des allgemeinen
Registerstapels der Figur 8 gespeichert.
-
Das spezielle MDW-Beschreibungswort, auf das zugegriffen werden soll,
wird durch einen XDI-Wert (Beschreibungsindexwert) bestimmt, der in einem LIJ-/LDJ-Rückkehrwort
enthalten ist, wie noch später erläutert wird.
-
Das t-Feld, also die Länge der MDT-Beschreibungsliste wird mit dem
MDI-Wert verglichen, um festzustellen, ob es größer als der MDI-Wert ist, damit
sichergestellt ist, daß das MDW-Beschreibungswort in die Länge der MDT-Beschreibungsliste
gemäß dem t-Feld hineinfällt.
-
Figur 6 stellt das Format eines LIJ-/LDJ-Rückkehrwortes 110 dar, das
sowohl der Identifizierung eines speziellen MDW-Beschreibungswortes, das angibt,
welches Programm als nächstes verwendet wird als auch dsr ansci1ieenden Angabe e
der vorgeschriebenen Zustände einschließlich der nächsten Befehlsadresse und des
MDW-Beschreibungswortes dient zu der das Programm am Schluß der Ausführung eines
Abschnittes aus dem ausführenden Programm zurückkehren muß.
-
Das LIJ-/LDJ-Rückkehrwort der Figur 6 weist in seinen Bits 0 - 17
einen P-Registerwert und in seinen Bits 18 - 29 den MDI-Indexwert auf.
-
Das R-Bit zur Anzeige des Ortes ist in der Bitposition 33 vorgesehen,
und ein I/D-Bit gibt in der Bitposition 34 an, ob auf eine Befehls-oder Datenbank
zugegriffen werden soll. Ein E-Bit der Bitposition 35 zeigt an, ob das MDP-Anzeigewort
108 des ausführenden Programms oder 109 des Arbeitsprogramms für die Wahl des neuen
Basiswertes verwendet werden soll Das Feld des P-Registerwertes aus den Bits O -
17 enthält die relative Basisadresse des nächsten, also nachfolgenden Befehls, nachdem
der LIJ-/LDJ-Sprungbefehl aufgetreten ist. Folglich enthält er die relative Basisadresse
P des LIJ-/LDJ-Sprungbefehls, addiert mit dem Wert 1.
-
der MDI-Indexwert der Bitpositionen 18 bis 29 weist auf das spezielle
MDW-Beschreibungswort in der MDT-Beschreibungsliste hin, die dem gerade ausgeführten
Programm zugeordnet ist. In Abhängigkeit von dem Zustand der Bitposition 35 kann
die MDT-Beschreibungsliste zum Arbeitsprogramm oder zum ausführenden Programm gehören.
Vor der Ausführung des LIJ-/LDJ-Sprungbefehls müssen die Bits 18 - 29 den MDI-Indexwert
des einzuspeisenden MDW-Beschreibungswortes enthalten. Ein solcher MDI-Indexwert
identifiziert also das MDWBeschreibungswort, das seinerseits festlegt, wohin als
nächstes das Programm als Ergebnis des LIJ-/LDJ-Sprungbefehls hinspringen wird.
-
Während der Ausführung eines LIJ-LDJ-Sprungbefehls wird der MDI-In
dexwert der Bits 18 - 29 durch denjenigen MDI-Indexwert ersetzt, der das MDW-Beschreibungswort
festsetzt, des den Basissadressenwert im laufend aktiven PSR-Register LOO enthält,
wie er vorhanden ist, bevor der LIJ-/LDJ-Sprungbefehl ausgeführt wird. Am Schluß
des Zugriffes auf den neuen Programmabschnitt enthält das LIJ-/LDJ-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-/LDJ-Sprungbefehl
ergeben.
-
Vor der Ausführung des LIJ-/LDJ-Sprungbefehls ist das I/D-Bit 34 nicht
definiert. Am Schluß von dessen Ausführung wird das I/D-Bit des laufend anwendbaren
MDI-Indexwertes in die Bitposition 35 des Formates des LIJ-/LDJ-Rückkehrwortes 110
eingesetzt. Vor der Ausführung des LIJ-/LDJ-Sprungbefehls schreibt die Null des
E*Bit 35 das MDP-Anzeigewort und die MDT-Beschreibungsliste des ausführenden Prog
vor. Im Falle einer Eins in E-Bit 35 und im Bit D19 des PSRE-Registers 101 der Figur
1 werden vor der Ausführung des LIJ-/ LDJ-Sprungbefehls das MDP-Anzeigewort und
die MDT-Beschrieibungsli ste des ausführenden Programms vorgegeben. Während der
Ausführung des LIJ-LDJ-Sprungbefehls wird das E-Bit 35 des LIJ-/LDJ-Rückkehrworten
110 der Figur 6 durch das neue E-Bit aus dem anwendbaren MDI-Indexwort der Figur
7 ersetzt.
-
Das LIJ-/LDJ-Rückkehrwort wird an einem von einem X-Feld vorgeschriebenen
Platz eines X-Registers in dem allgemeinen Registerstapel gespeichert, wie durch
den LIJ-/LnJ-Sprungbefehl festgelegt ist (Figur 8).
-
Figur 7 zeigt das Format eines MDI-Indexwortes 111 in einem MDI-Register,
das gemeinsam mit dem LIJ-/LDJ-Rückkehrwort 110 ständig den Platz des laufenden
MDW-Beschreibungswortes in der MDT-Beschreibungsliste festlegt.
-
Das Format des MDI-Indexowertes lll der Figur 7 ist in zwei zrundlegende
Teile zerlegt, von denen der eine die Bits o - 17 und der andere die Bits 18 - 35
enthält. Diese beiden zuvor erhnten Teile stehen mit einem D-Bankindex und einem
I-Bankindex in Zusammenhang. Der D-Bankindex ist in den Bitpositionen O - 11 und
die entsprechenden R-, I/D- und E-Bits ind in den Bitpositionen 15 bis 17 enthalten.
Der I-Bankindx 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 MDI-Indexwort 111 weist stets Daten auf, die mit dem laufend anwendbaren
MDI-Indexwert sowohl für die D-Bank als auch für die i-Bank in Beziehung stehen.
Fllr die PSRI und PSRU-Register 100 und 103 der Figur 1 gibt es je ein gesondertes
MDI-Indexwort 111, die das Format der Figur 7 besitzen.
-
Das MDI-Indexwort lll und das LIJ-LDJ-Rückkehrwort 110 erbeiten vor,
während und nach der Ausführung dos LIJ-/LDJ-Sprungbefehls zusammen.
-
Das erstere enthält stets die Information, die sich auf die laufend
anwendbaren MDW-Beschreibungswörter und außerdem auf den laufenden Zustand des R-,
I/D- und E-Bit für die I- und D-Bank bezieht. Andrerseits enthält das LIJ-/tDJ-Rückkehrwort
110 stets eine ähnliche Information für die Adresse, auf die das Programm im Begriff
ist, als Ergebnis des nächsten LIJ-/LDJ-Sprungbefehls zu springen.
-
Zusammenfassend betrachtet, werden in der Zeitspanne, in der der LIJ-/
LDJ-Sprungbefehl gerade ausgeführt wird, der Inhalt des LIJ-/LDJ-Rückkehrwortes
110 und der Inhalt der entsprechenden Hälfte des MDI Indexwortes 111 gegeneinander
ausgetauscht. Nachdem der LIJ-/LDJ Sprungbefehl beendet ist, enthält das LIJ-/LDJ-Rückkehrwort
110 noch die Information über den MDI-Indexwert, die hinweist, wohin das Programm
am Schluß der laufenden Befehlsfolge zurückkehren soll, und das MDI-Indexwort 111
enthält dann die laufende Information über den MDI-Indexwert der Befehls- und Datenbank.
-
Das Programm kann jedoch ein unterschiedliches LIG-/LDJ-Rückkehrwort
benutzen, oder die Daten der MDT-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 LIJ-/ LDJ-Sprungbefehl auftrat, sondern das es entsprechend
den neuen Daten des MDI-Indexwertes im LIJ/LDJ-Rückkehrwort an einen neuen Punkt
springt.
-
In den Figuren 14 und 15 ist die Beziehung zwischen einigen Wortformaten
nämlich zwischen dem MDW-Beschreibungswort und den Wörtern für die PSR-, PSRE-,
PSRU- und PSRUE-Register, sow4e für die SLR- und SLRU-Grenzenregister wiedergegebene
Insbesondere zeig die Figur 14 die Beziehung zwischen diesen Wörtern zur Ausführung
eines LIJ-Sprungbefehls und die Figur 15 dieselbe Beziehung für die Ausführung eines
b'DJ-Sprungbefehls.
-
In den beiden Figuren 14 und 15 ist angenommen, daß das neue MDW-Beschreibungswort
in der MDT-Beschreibungsliste unter Verwendung der Information identifiziert wird,
die in dem LIJ-/LDJ-Sprungbefehl, addiert mit dem MDP-Anzeigewort, enthalten ast,
Im Falle eines LIJ-Sprungbefehls ist in der Figur 14 die Übertragung der verschiedenen
Felder des MDW-Beschreibungswortes 107 zum PSR-Register 100 und zum SLR-Grenzenregister
105 gezeigt. Im einzelnen wird das BI-Feld in den Bitpositionen 18 - 26 in das BI-Feld
der Bitposi tionen 18 - 26 des PSR- Registers 100 eingespeist. Ein UB-Feld aus 7
Bits für die obere Grenze des neuen Basisadressenwertes, das in den Bitpositionen
9 - 15 des MDW-Beschreibungswortes 107 enthalten ist, wird ins BS-Feld, also in
die Bitpositionen 9 - 15 des PSR-Registers 100 gebracht. Es braucht nur ein Feld
aus 7 Bits übertragen zu werden, da 7 Bits für die Wahl der I-Bank in Abhängigkeft
von BS-Feld ausreichend sind, falls ein 65K-Bereich der I-Bank und eine Beschränkung,
des Adressenfeldes auf 16 Bits angenommen sei.
-
Die niedrigste relative Basisadresse der D-Bank ist größer als die
größte relative Basisadrease in der 1-Bank, so daß bei einem Ver gleich irgendeiner
gegebenen relativen Operanden-Adresse mit dem 13S-Feld festgestellt wird, ob dieser
Operand in der I- oder D-Bank aufgefunden werden kann, und folglich ob eine Basisadresse
BI der I-Bank oder eine Basisadresse BD der D-Bank addiert werden soll.
-
Das BIX-Feld in den Bitpositionen 27 - 32 des MDW-Beschreibungswortes
107, das eine Erweiterung des Basisadressenwertes darstellt,wird in die Bitpositionen
6 - 11 des PSRE-Registers 101 der Figur 14 überführt. Das LB- bzw; UB-Feld, das
die Bitpositionen O - 8 bzw. 9 -17 des MDW-Beschreibungswortes 107 umfaßt, wird
in die. Bitpositionen 18 - 26 bzw. 27 - 35 des SLR-Grenzenregisters 105 gebracht.
-
Falls das PSRU-Register 103 und das SLRU-Grenzenregister 106 angewendet
werden1 e erfolgt die Datenübertragung aus dem MDW-Beschreibungswort 107 in das
PSRU- bzw, PSRUE-Register 103 bzw. 104 und in das SLRU-Grenzenregister 106 wie durch
gestrichelte Verbindungslinien angedeutet ist; sie entspricht weitgehend dem vorherigen
Fall, bei dem die verschiedenen Felder in das PSR-Register 100 und in das SLR-Grenzenregister
105 eingebracht werden Die Wahl, ob das PSR- oder PSRU-Register 100 oder 103 verwendet
werden soll, wird, wie bereits erläutert, durch den Setzzustand des Kennbit D12
im D-Feld des PSRE-Registers 101 festgelegt. Falls dieses Kennbit D12 eine Null
ist, ist das PSR-Register in Tätigkeit, während im Falle der Eins dies für das PSRU-Register
103 gilt Wenn der Kennteil D18 eine Eins ist und die Überprüfung der Speichergrenzen
negativ ausfällt, wird das andere PSRE-Register 101 benutzt. Während der Ttigkeit
des PSR-Registers 100 wird das W-Bit 34 des MDW-Beschreibungswortes 107 in das Bit
D13 des D-Feldes im PSRERegister 101 übertragen. Wenn der Kennteil D12 eine Eins
enthält und das PSRU-Register 103 in Tätigkeit ist, wird das W-Bit 34 des MDW-Beschreibungswortes
107
in die Bitposition 15 des D-Feldes im PSRE-Register 101 übertragen.
-
In der Figur 15 ist die Informationsübertragung bei der Ausführung
eines LDJ-Sprungbefehls vom MDW-Beschreibungswort 107 in das PSR-Register 100 und
in das SLR-Grenzenregister 105 dargestellt. Die Basisadresse BI der Bitpositionen
18 bis 26 des MDW-Beschreibungswortes 107 wird in das BD-Feld, also in die Bitpositionen
O w 8 des PSR-Registers 100 übertragen. Das BIX-Feld der Bitpositionen 27 - 32 des
MDW-Beschreibungswortes wird zum BDX-Feld des PSRE-Registers 101 übertragen, das
die Bitpo'sitionen o - 5 umfaßt. Die untere und obere Grenze des Progranibschnittes,
der im neuen Bereich des Hauptspeichers untergebracht ist, ist in den Bitpositionen
O - 8 bzw. 9 - 17 des MDW-Beschreibungswortes 107 enthalten und wird in die Bitpositionen
0 - 8 bzw. 9 - 17 des SLR-Grenzenregisters 105 überführt.
-
Das W-Bit der Bitposition 34 im MDW-Beschreibungswort 107 wird als
Schreibschutz zum Bit D14 oder D16 des D-Feldes im PSRE-Register 101 in Abhängigkeit
davon gebracht, ob das Kennbit D12- des D-Feldes im PSRE-Register 101 null oder
eins ist. Durch den Zustand dieses Kennbit D12 wird also bestimmt, ob das PSRF oder
PSRURegister 100 oder 103 aktiv ist, zu dem die neuen Basisadressenwerte vom MDW-Beschreibungswort
107 aus zugeleitet werden sollen. Falls das kennbit D12 des D-Feldes im PSRERegister
101 eins ist, werden die Daten des MDW-Beschreibungswortes 107 zum PSRU- und PSRUE-Register
103 und 104 und zum SLRU-Grensenregister 106 übertragen, wie die Übertragungswege
als gestrichelte Linien der Figur 15 zeigen.
-
In der Figur 15 findet keine Datenübertragung aus dem oberen Teil
des UB-Feldes des MDW-Beschreibungswortes 107 zum Feld des PSR- oder PSRU-Registers
100 oder 103 statt. Dies ist damit begründet, daß das BS-Feld einen Anzeigewert
enthält, der auf die höchste relative Basisadresse des laufenden Befehlsabschnittes
im Programm hinweist,
und der eine Trennstufe zwischen der I -
und Bank darstellt. Wenn die D-Bank abgeändert wird, ändert sich die Trennstufe
zwischen den relativen Basisadressen des X- und D-Programmabschnittes nicht. Wie
bemerkt sei, ist es die relative Basisadresse eines gegebenen Operanden im Programm,
die mit dem ES-Feld verglichen wird, um festzustellen ob ein sole er Operand in
der laufend tätign I- oder D-Bank enthalten ist.
-
Gemäß den Flußdiagrammen der Figuren 9 und 9A wird der LIJ- oder LDJ-Sprungbefehl
abgelesen (Block 150), um den Betriebsablauf gemäß der Erfindung einzuleiten. Dementsprechend
tritt in der Figur 11B der LIJ-/LDJ-Sprungbefehl aus eines Hauptspeicher 200 in
ein Befehls, register 201 und eine Decodierschaltung 202 ein.
-
Um die relative Basisadresse P + 1 zu bilden, wird gemäß Figur 9 unächst
der Wert der laufenden Basisadresse BI oder BD vom Inhalt eines P-Registers abgezogen
(Block 151). Im speziellen Beispiel der Figur llB wird das BI-Feld vom Inhalt eines
P-Registers 203 subtra-Wert, wozu ein Weiterschaltregister 204 und ein Register
205 benutzt werden, in das die relative Basisadresse P 11 gelangt, die durch eine
Subtraktion der Basisadresse BI von der absoluten Adresse P + 1 gebildet ist0 Die
relative Basisadresse P + 1 wird dann über eine Leitung 208 in das P+l-Feld eines
Register2 206 des LIJ-/LD3-Rückkenhrwortes (Figur 11A) innerhalb eines allgemeinen
Registerstapels 207 aingelassen, wie auch in der Figur 9 als Block 152 angegeben
ist, Als nächstes muß bestimmt werden, ob das MDP-Anzeigewort des Arbeitsprogramms
oder des ausführenden Programms verwendet werden soll (Blökke 153 - 158 der Figur
9), was durch das E-Bit im Register 206 des LIJ-/LDJ-Rückkehrwortes (Figur llA)
und die Bitposition D19 eines PSRE-Registers 248 (Figur 11) festgelegt ist. Sowohl
das-E-Bit des Registers 206 als auch die Bitposition D19 des PSRE-Registers 248
werden
geprtift (Blok153 der Figur 9). Falls das E-Blt null ist (Block 154), wird über
eine Leitung 256 ein MDP-Anzeigewort 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 brfd Einsen enthalten
(Blöcke 154 und 156 der Figur 9), wird über eine Leitung 257 ein MDP-Anzeigewort
216 (Figur llA) des ausführenden Programms angewählt und auf sein Register im allgemeinen
Registerstapel 207 zugegriffen.
-
Falls jedoch das E-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-Zustandswort erzeugt wird (Block 167 der Figur 9A), das dann gespeichert
wird (Block 168).
-
Die entsprechende Schaltung zur Auswahl des Arbeitsprogramms oder
des ausführenden Programms enthält gemäß der Figur 11 zwei Verknüpfungs glieder
211 und 212. Im Falle, daß die Bitposition D19 null und das E-Bit eins ist, wird
ein Verknüpfungsglied 213 erregt, das einer seits eine Blockschaltung 214 in Gang
setzt, die aus dem LIJ-LDJ-Rückkehrwort das MDI-/MDW-Zustandswort erzeugt und außerdem
eine Unterbrechung bewirkt.
-
Falls das MDP-Anzeigewort 215 des Arbeitsprogramms gewählt ist, wird
das Feld des MDI-Indexwertes im Register 206 des LIJ-/LDJ-Rückkehrwortes mit dem
t-Feld des MDP-Anzeigewortes 215 verglichen (Block 159 der Figur 9), um zu bestimmen,
ob das MDW-Beschreibungswort in das t-Feld der MDT-Beschreibungsliste hineinfällt.
Falls der MDI-Indexwert kleiner als das t-Feld ist, wird er zum m-Feld des MDP-Anzeigewortes
215 addiert um die absolute Adresse des MDW-Beschreibungswortes zu erzeugen (Block
169 der Figur 9)4
Die entsprechende Schaltung zum Vergleichen des
MDI-Indexwertes aus dem Register 206 mit dem t-Feld ist ein Komparator 217 (Figur
llA).
-
Falls der MDI-Indexwert größer als der Wert des t-Feldes ist, ist
der MDI-Indexwert ungültig, worauf in einer Blockschaltung 218 der Figur 11A das
MDI-/MDW-Zustandswort erzeugt wird.
-
Wenn dagegen der MDI-Indexwert geringer als der Wert des t-Feldes
ist, wird er in einem Addierer 225 zum m-Feld des MDP-Anzeigewortes 215 (Figur llA)
addiert, um die absolute Adresse des MDW-Beschreibungswortes zu erzeugen auf das
zugegriffen werden soll.
-
Gemäß einem Block 170 der Figur 9A wird auf das MDW-Beschreibungswort
unmittelbar zugegriffen, nachdem die absolute Adresse des MDW Beschreibungswortes
(Block 169 der Figur 9) gebildet ist. Das Lesen des MDW-Beschreibungswortes erfolgt
also als Ergebnis der Bestimmung seiner absoluten Adresse in dem Addierer 225, der
es über eine Leitung 229 einer MDT-Beschreibungsliste 230 des Arbeitsprogramms innerhalb
des Hauptspeichers 200 (Figur 1113) entnimmt Der Inhalt des MDW-Beschreibungswortes,
auf das zugegriffen wurde, wird dabei in ein Register 231 der Figur 11 eingespeist.
Das R-Bit dieses MDW-Beschreibungswortes wird danach über eine Leitung 232 in das
R-Bit des MDI-Indexwortes 226 des allgemeinen Registerstapels 207 der Figur llA
rückgeführt.
-
In einer Blockschaltung 255 der Figur llA werden der MDI-Indexwert
und das E-Bit aus dem Register 206 des LIJ-/LDJ-Rückkehrwortes aufbewahrt (Block
160 der Figur 9). Der Grund hierfür ist, daß diese Werte während der Ausführung
des LIJ-Sprungbefehls in das MDI-Index-Wort 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 das LIJ-Sprungbefehls werden gewisse Daten.
-
die tor der Ausführung dieses Befehls im MDI-Indexwort vorhanden waren,
zum LIJ-/LDJ-Rückkehrwort übertragen, damit das Programm zu dem Zustand zurückkehren
kann, den es einnahm bevor der LIJ-/LDJ-Sprungbefehl auftrat.
-
Zusammsnfassend betrachtet, werden während der Ausführung des LIJ-Sprungbefehls
der MDI-Indexwert und das E-Bit des dem Sprung verausgehenden LIJ-/LDJ-Rückkehrwortes
zum MDI-Indexwort übertragen, und das E-, P- und I/D-Bit und das MDI-Feld des dem
Sprung vorausgehenden MDI-Indexwortes werden zum LIJ-/LDJ-Rückkehrwort gebracht.
Folglich zeigt das letztere stets den Zustand an, zu dem das Programm nach ch dem
Ende der Befehlsfolge, also nach dem Sprung zurückkehren kann, und das MDI-Indexwort
enthält stets den laufenden Zustand des Programms.
-
Der Informationsaustausch zwischen dem Register 206 des LIJ-/LDJ-Rückkohrwortes
und dem MDI-Indexwort 226 ist in Blöcken 171 und 172 der Figur PA enthalten. Gemäß
dem Block 172 wird nach den Ende des Sprungbefehls das R-Bit das MDI-Indexwortes
über eine Leitung 232 dem Register 231 das MDW-Beschreibungswortes entnommen, auf
das während der Ausführungszeit des Sprungbefehls zugegriffen wurde. Auch wird das
I/D-Bit 16 oder 34 des MDI-Indexwortes in Abhängigkeit davon geändert, ob der LIJ-/LDJ-Sprungbefehl
tatsächlich ein LDJ oder LIJ-Sprungbefehl war.
-
Das E-Bit und der MDI-Indexwert aus dem Register 206 des LIJ-/LDJ-Rückkehrwortes
(Figur llA) werden über eine Leitung 227 zun E-Bit und zum D-Bankindex des MDI-Indexwortes
226 gebracht. Nahezu gleichzeitig werden das E-Bit, daa I/D-Bit, das R-Bit und der
Inhalt des D-Bankindexes des MDI-Indexwortes 226, wie sie unmittelbar vor der Ausführung
des LIJ-Sprungbefehls gespeichert waran, über Leitungen 228 zu den entsprechenden
Bitpositionen des Registers 206 des LIJ-/LDJ-Rückkehrwortes übertragen.
-
Nach dem Zugriff auf das MDW-Beschreibungswort und dem Informationsaustausch
zwischen dem LIJ-/LDJ-Rückkehrwort und dem MDI-Indexwort ist der nächste Schritt
in Figur 9A die Abänderung des Inhalt es des PSR-Registers 100 und SLR-Grenzenregisters
105 durch das MDW-Beschreibungswort 107 (Block 173), wie in Verbindung mit der Figur
14 bereits erläutert ist. In der Figur 11 wird der Inhalt eines SPR-Registers 235
und SLR-Grenzenregisters 236 in derselben Weise geändert.
-
Wenn sich das R-Bit (Ortsbit) im Register 231 mit dem neuen MDW-Beschreibungswort
oder im Register 206 des LIJ-/LDJ-Rückkehrwortes am Schluß der Ausführung eines
LIJ-/LDJ-Sprungbehls im Setzzustand befindet, wird der Sprungteil dieses Befehls
aus folgendem Grunde unterdrückt. Wenn das R-Bit des MDW-Beschreibungswortes gesetst
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.
Denentsprechend wird eine Unterbrechung hervorgerufen, der eine Erzeugung und Speicherung
des MDI-/MDW-Zustandswortes in der Blockschaltung 218 folgt. Unter der Mitwirkung
des MDI-/MDW-Zustandswortes beendet das ausführende Programm zugleich die Raumzuweisung
rtir diesen Programmabschnitt und speist den letzteren in den zugeteilten Raum ein.
Somit iat das R-Bit bei der Bearbeitung von abschnittsweisen Überlagerungen wirksam.
-
Das R-Bit wird aus dem Register 206 des LIJ-/LDJ-Rückkehrwortes (Figur
11A) hierzu über eine Leitung 310 in eine logische Schaltung 245 (Figur 11) eingegeben,
in der sein Zustand geprüft wird. In ähnlicher Weise wird das R-Bit aus dem Register
231 des MDW-Beschreibungswortes über eine Leitung 232 einer logischen Schaltung
246 zugsleitet, um zu bestimmen, ob es 0 oder 1 ist. Falls das in die beiden logischen
Schaltungen 245 und 246 eintretende R-Bit eine Null iat, 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 Basisadressenwertes, der in das PSR-Register
235 und das PSRE-Register 248 eingeführt ist, durch ein U-Feld des LIJ-LDJ=Sprungbefehls
festgelegt ist.
-
Die spezielle Schaltung zur Bestimmung der absoluten Adresse des Operandenbefehls,
der durch den auf den LIJ- LDJ-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 P-Register 203 übarführt, von dem aus sie über das
UND-Clied 254 in die Sprungschaltung 247 gelangt, die auf den Hauptspeicher 200
zugreift Gemäß der Figur 11 gibt das UND-GLIED 253 ein 1-Signal ab, wenn den beiden
logischen Schaltungen 245 und 246 als R-Bits @@Signale zugeführt werden. Mit dem
Erscheinen eines Taktpulses Cltz ö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.
-
In der Figur 13 ist die Zeitgebereinheit aus einer Taktpulsquelle
315 und awei Zählern 316 und 317 dargestellt, die bis 4 zählen und somit durch 4
teilen. Im ersten Zähler, 316 wird eine Folge von vier Impulsen t1-t4 erzeugt, die
als Nebentaktpulse bezeichnet seien, und von denen der letzte t4 dem Zähler 317
zugeleitet wird, der seinerseits vier Haupttaktpulse C1 - C4 hervorruft, wie aus
einer Auftragung 318 hervorgeht, die die zeitlichen Beziehungen zwischen den beiden
Arten von Taktpulsen deutlich macht.
-
Von den Haupt- und Nebentaktpulsen wird in der Schaltung der Figuren
llA und 11B die Folge der Ereignisse gesteuert. Mit dem Auftreten der Taktpulse
C1t1 wird der LIJ- LDJ-Sprungbefehl in das P-Register 203 (Figur 11B) eingelassen.
Beim nächsten Nebentaktpuls C1t2 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 vollständigen Ausführung eines LIJ- LDJ-Sprungbefehls
erläutert ist. In den Figuren 11, 11a und 11B sind die üblichen Verknüofungsglieder
zur Eingabe der Takt signale weggelassan, so daß die letzteren direkt (zur Vereinfachung
der Zeichnung) in das jeweilige Register eintreten., Clbl Eintritt der absoluten
Basisadresse P des LIJ- LDJ-Sprungbefehls in das P-Register 203 (Figur 11B), C1t2
Vergrößerung des P-Registerinhaltes um Eins im Weiterschaltregister 204, um die
absolute Adresse P + 1 zu gewinnen, C1t3 Berechnung der relativen Basisadresse P
+ 1 im Register 205, C1t4 Eintritt der relativen Basisadresse (P + 1) - 131 der
BD) über die Leitung 208 in das Register 206 des LIJ-/LDJ-Rückkehrwortes (Figur
11A), C2t1 Überprüfung im Verknüpfungaglied 211 (Figur 11), ob das E-Bit dieses
Regiaters 206 null ist, C2t2 Überprüfen im Verknüpfungsglied 213, ob der Kennteil
D19 des PSRE-Registers 248 null und das E-Bit des Registers 206 eins ist, C2t3 Überprüfen
im Verknüpfungsglied 212, ob der kennteil D19 des PSRE-Registers 248 und das E-Bit
des Registers 206 eins sind,
C2t4 Überprüfen im Komparator 217
(Figur 11A), ob der MDI-Index wert aus dem Register 206 des LIJ- LDJ-Rückkehrwortes
größer als das t-Feld im MDP-Anzeigewort 215 des Arbeitsprogramms ist, C3t1 Hinzufügen
des MDI-Indexwertes zum m-Feld des MDP-Anzeigeortes 215 des Arbeitsprogramms, wobei
sich die Adresse des MDW-Beschreibungswortes ergibt, C3t2 Zugriff über die Leitung
229 zur MDT-Beschreibungsliste 230 im Hauptspeicher 200 (Figur 11B), C3t3 Auslesen
des Inhaltes eines neuen MDW-Beschreibungswortes in das Register 231 (Figur 11),
C3t4 Einspeisen der Daten des neuen MDW-Beschreibungswortes aus dem Register 231
in das PSR-Register 235, in das PSRE-Register 248 und in das SLR-Grenzenregister
236, C4tl Überprüfen der R-tits in Register 231 des MDW-Beschreibungswortes und
im Register 206 des LIJ- LDJ-Rückkehrwortes mit Hilfe der Leitungen 232 und 310
in den Verknüpfungsgliedern 245 und 246, C4t2 Bestimmung der absoluten Basisadresse
P + 1 des Befehlswortes für den mächsten Speicherzugriff im Block 250 (Figur 11),
C4t3 Eintritt dieser absoluten Basisadresse P + 1 in das P-Regi ster 203 (Figur
11B) und C1t1 Ausführung des Sprungteiles des LIJ- LDJ-Sprungbefehls bei der absoluten
Adresse P + 1 in der Sprungschaltung 247.
-
Zusammenfassend gesehen, ist zuvor eine Adressiorschaltung erläutert,
von der ein Arbeitsprogramm in verschiedene Abschnitts unterteilt wird, die je in
einem begrenzten Bereich des Hauptspeichers untergebracht werden; diese Bereiche
des Hauptspeichers werden von der Adresse sierschaltung in der Weise zugänglich
gemacht, daß der Wert des Basis adreßteils der absoluten Basisadresse unter der
Steuerung eines ausführenden oder eines Arbeitsprogramms abgeändert wird, ohne daß
die Steuerung aus dem Programm gelöst und die Zuverlässigkeit der Schaltung aufs
Spiel gesetzt wird.