DE1499224B2 - Datenverarbeitungsanlage mit kellerspeichereinrichtungen - Google Patents
Datenverarbeitungsanlage mit kellerspeichereinrichtungenInfo
- Publication number
- DE1499224B2 DE1499224B2 DE19651499224 DE1499224A DE1499224B2 DE 1499224 B2 DE1499224 B2 DE 1499224B2 DE 19651499224 DE19651499224 DE 19651499224 DE 1499224 A DE1499224 A DE 1499224A DE 1499224 B2 DE1499224 B2 DE 1499224B2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- counter
- operand
- register
- memory
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims description 229
- 230000006870 function Effects 0.000 claims description 10
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- GSDSWSVVBLHKDQ-UHFFFAOYSA-N 9-fluoro-3-methyl-10-(4-methylpiperazin-1-yl)-7-oxo-2,3-dihydro-7H-[1,4]oxazino[2,3,4-ij]quinoline-6-carboxylic acid Chemical compound FC1=CC(C(C(C(O)=O)=C2)=O)=C3N2C(C)COC3=C1N1CCN(C)CC1 GSDSWSVVBLHKDQ-UHFFFAOYSA-N 0.000 description 2
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 2
- 101000608752 Phytolacca americana Lectin-C Proteins 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 101000730648 Homo sapiens Phospholipase A-2-activating protein Proteins 0.000 description 1
- 102100032572 Phospholipase A-2-activating protein Human genes 0.000 description 1
- 101000972349 Phytolacca americana Lectin-A Proteins 0.000 description 1
- 101000608745 Phytolacca americana Lectin-B Proteins 0.000 description 1
- 102100028787 Tumor necrosis factor receptor superfamily member 11A Human genes 0.000 description 1
- 101710178436 Tumor necrosis factor receptor superfamily member 11A Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- 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 Datenverarbeitungsanlage mit Kellerspeichereinrichtungen zur Speicherung
von Operanden und Befehlen für verschachtelte Rechenoperationen.
Eine solche Einrichtung ist aus der USA.-Patentschrift 3 047 228 bekannt. In der darin beschriebenen
Datenverarbeitungsanlage werden zwei getrennte Kellerspeicher zur Speicherung von Operanden und
Funktionsangaben zur Verarbeitung dieser Operanden verwendet. Die Funktionsangaben werden dabei
über ein Tastenfeld direkt in den Kellerspeicher eingegeben. Die Verarbeitung wird nicht von einem in
der Anlage gespeicherten Verarbeitungsprogramm gesteuert, und die Anlage weist somit nicht die Vorzüge
einer solchen programmgesteuerten Verarbeitung auf. Die gezeigte Einrichtung beschreibt die Benutzung
eines Kellerspeichers bei der Bearbeitung von verschachtelten Daten, wie z. B. von ineinanderliegenden
Klammerausdrücken.
Die Arbeitsweise von speicherprogrammierten Datenverarbeitungsanlagen
ist bekannt. Der Speicher in solchen Anlagen enthält die zu verarbeitenden Daten
und die Befehle, aus denen das Verarbeitungsprogramm besteht. Meist wird in einem ersten Schritt ein
solcher Befehl ausgelesen, die in dem Befehl enthaltene Operationsangabe durch einen Entschlüßler decodiert
und mit Hilfe der im Befehl enthaltenen Adressenangabe der zu verarbeitende Operand aus
dem Speicher ausgelesen. Es ist ein Befehlszähler vorgesehen, welcher die Adresse des Befehles im
Hauptspeicher, welcher als nächster ausgelesen werden soll, speichert. Nach jeder Operation wird der
Inhalt dieses Instruktionszählers um eins erhöht. Bei Programmunterbrechungen oder -Verzweigungen erfolgt
jedoch ein Adressensprung, wobei die Verzweigungsadresse z. B. im Verzweigungsbefehl enthalten
sein kann. Um jedoch eine Rückkehr zum unterbrochenen Programm zu ermöglichen, muß die Adresse
des Befehls, auf den die Unterbrechung erfolgt, weggespeichert werden und bei Rückkehr zum Programm
wieder in den Instruktionszähler gebracht werden (s. Speiser, »Digitale Rechenanlagen«, 1961,
S. 398). Die Abspeicherung der später wieder benötigten Programmdaten in besondere Speichereinrichtungen
stellt eine zeit- und funktionsmäßige Belastung der Rechenanlage dar. In den bekannten Einrichtungen
müssen hierzu zumindest der Instruktionszähler und die Speicherregister, welche die Daten aufnehmen
sollen, adressiert werden. Aus dem Instruktionszähler muß zunächst die Adresse des letzten Befehles
des unterbrochenen Programms ausgelesen werden, und erst hiernach kann die erste Adresse des neuen
Programms in den Instruktionszähler eingelesen werden.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, in einer speicherprogrammierten Datenverarbeitungsanlage
einen Kellerspeicher zur Speicherung von Adressen derart zu verwenden, daß die Hauptspeicheradressierung
und die Verzweigung zu Unterprogrammen erleichtert wird.
Hierzu ist die Erfindung dadurch gekennzeichnet, daß in einer speicherprogrammierten Datenverarbeitungsanlage
ein Kellerspeicher zur Speicherung von Adressen vorgesehen ist, wobei mindestens dessen
zwei oberste Register mit durch einen Instruktionsentschlüßler gesteuerten Ausgängen versehen sind
und die gespeicherten Adressen zur Adressierung des Hauptspeichers zum Hauptspeicher-Adressenregister
übertragen können und wobei bei Programmverzweigungen
der Inhalt des Kellerspeichers um ein Register nach unten verschoben wird und die erste Adresse
des Verzweigungsprogramms im obersten Register des Kellerspeichers gespeichert wird und bei Programmrückkehr
der Inhalt des Kellerspeichers wieder um ein Register nach oben verschoben wird.
Die Erfindung hat den Vorteil, daß die Verzweigung zu Unterprogrammen und die Rückkehr zum
Hauptprogramm dadurch besonders vereinfacht wird, daß bei der Abspeicherung der benötigten Programmunterbrechurigsdaten
der Inhalt des Kellerspeichers einfach um ein Register nach unten verschoben wird
und die neue Instruktionsadresse in das oberste Register eingelesen wird. Bei der Rückkehr zum unterbrochenen
Programm wird der Inhalt des Kellerspeichers einfach um ein Register nach oben verschoben,
wodurch die neue benötigte Instruktionsadresse automatisch wieder im obersten Register zur Verfügung
steht. Dies bedeutet eine wesentliche Vereinfachung der Programmierung und eine Zeitersparnis bei Programmverzweigungen.
In der Instruktion, mit der zum unterbrochenen Programm zurückgekehrt wird, braucht nämlich die neue benötigte Instruktionsadresse nicht angegeben zu werden. Auch entfallen
besondere Speicherzugriffe zur Gewinnung dieser
neuen Instruktionsadresse. Dadurch, daß mindestens die beiden obersten Register des Kellerspeichers mit
Ausgängen zum Hauptspeicher-Adressenregister versehen sind, wird ein zusätzlicher Freiheitsgrad gewonnen,
welcher weitere vorteilhafte Ausgestaltungen der Erfindung ermöglicht.
Nach einer solchen vorteilhaften Weiterbildung sind die obersten Register als Instruktionszähler und
Operandenzähler ausgebildet und enthalten Inkrementierungsmittel, welche die in diesen Registern
stehenden Adressen um eins erhöhen können.
Durch die Verwendung des obersten Registers als Instruktionszähler steht nach jeder Verschiebeoperation
im Kellerspeicher die benötigte Instruktionsadresse sofort zur Verfügung. Zusätzlich kann das
zweite Register von oben zur Adressierung von Operanden benötigt werden. Es kann also in bestimmten
Fällen eine Angabe der Operandenadresse in der Instruktion eingespart werden. Eine solche vorteilhafte
Weiterbildung der Erfindung besteht darin, daß die Instruktionen statt einer Operandenadresse nur
eine Marke enthalten, welche angibt, daß die im Operandenzähler enthaltene Adresse dem Hauptspeicher-Adressenregister
zugeführt werden soll.
Hierdurch wird der von einer solchen Instruktion eingenommene Speicherraum verkleinert. Zugleich
kann auf einfache Weise die Operandenadresse durch die in dem betreffenden Register enthaltenen Inkrementierungsmittel
geändert werden. Der für die Befehle benötigte Speicherraum im Hauptspeicher kann
also verkleinert werden. Bei Programmverzweigungen ergibt sich ferner die Möglichkeit, die nach unten
verschobenen Instruktionsadressen wie Operandenadressen zu behandeln und die betreffenden Instruktionen
somit wie Operanden auszulesen. Auch wird hierdurch die Anzahl der notwendigen Hauptspeicherzugriffe
vermindert. Durch die Steuerung der Inkrementierungsmittel kann die Rückkehradresse zum
unterbrochenen Programm geändert werden, wodurch sich für die Programmierung zusätzliche Möglichkeiten
ergeben.
Die erwähnten Vorteile werden noch verstärkt dadurch, daß nach einer Weiterbildung mehrere mit
ίο dem Hauptspeicher-Adressenregister verbundene
Operandenzähler vorgesehen sind .-und eine Marke der jeweiligen Instruktionen angibt, welcher Operandenzähler
zur Adressierung des Hauptspeichers verwendet werden soll. Besonders bei Verwendung eines
Instruktionsformates, welches aus mehreren Feldern besteht, ist es vorteilhaft, in jedem Feld Funktionsangaben mit einer Marke oder Operandenadressen
vorzusehen. Durch dieses Instruktionsformat und durch die Verwendung der Marke kann die Anzahl
der benötigten Hauplspeicherzugriffe besonders stark vermindert werden.
Eine weitere vorteilhafte Ausführungsform der Erfindung
ist dadurch gekennzeichnet, daß die Adressen der jeweils vor der Programmunterbrechung ausgeführten
letzten Instruktionen von verschachtelten Unterprogrammen in das oberste Register des Kellerspeichers
eingespeichert werden.
Die Vorteile der Erfindung, welche sich auf die einfache Durchführung von Programmunterbrechungen
beziehen, treten bei der Durchführung von verschachtelten Unterprogrammen besonders ausgeprägt
in Erscheinung. Während es unerläßlich wäre, bei der notwendigen Abspeicherung von Programmunterbrechungsdaten
im Hauptspeicher die Reihenfolge der Unterbrechungen, d. h. die Beziehung der einzelnen
Unterprogramme zueinander, irgendwie festzuhalten, liefert die physikalische Struktur des Kellerspeichers
bereits eine solche Zuordnung und erfordert keine weiteren Maßnahmen.
Weitere vorteilhafte Ausbildungen der Erfindung sind Unteransprüchen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung wird nun an Hand von Zeichnungen näher beschrieben. Es zeigt
F i g. 1 ein Ausführungsbeispiel der Erfindung, Fig. la und Ib Formen von Befehlen zur Verwendung
im durch die Fig. 1 dargestellten Ausführungsbeispiel,
F i g. 2 eine veränderte Ausführungsform der in F i g. 1 dargestellten Anordnung,
Fig. 3 die ins einzelne gehende Anordnung von logischen Schaltungen für einen geeigneten Kellerspeicher
zur Verwendung im Zusammenhang mit der in den Fig. 1 oder 2 dargestellten Anordnung,
F i g. 4 eine andere Ausbildung des in F i g. 3 dargestellten Kellerspeichers,
F i g. 5 eine weitere Ausbildungsform des Erfindungsgedankens,
Fig. 5a die Form eines im Zusammenhang mit der in Fig. 5 dargestellten Anordnung zu verwcndenden
Befehls.
Die in der Fig. 1 dargestellten Speichereinheit enthaltenen Daten bestehen aus Befehlsworten und
Operandenworten. Die in der Speichereinheit 10 enthaltene Information wird in das Speicherpuffcr-Rcgister
eingelesen. Ist die in) Speicherpuffer-Registcr enthaltene Information ein Operandenwort, so wird
sie zur Rechen-Einheit 14 über die Leitung 12 übcrtrneen.
Der durch die Leitung 15 dargestellte Kann!
besteht aus einer Vielzahl von Leitern, über die die
aus mehreren Bits bestehende Information übertragen wird. Von der Rechen-Einheit 14 kann die Information
über einen aus mehreren Leitern bestehenden Kanal 16 zum Speicher 10 übertragen werden. Außer
den Leitungen 1.5 und 16 bestehen auch die Leitun- : gen 20, 24, 40, 52 und 60 aus aus Vielfachleitern
bestehenden Kabeln.
Ist die im Speicherpuffer-Register 12 untergebrachte
Information ein Befehlswort, so ist dieses, wie aus den Fig. la und 1 b ersichtlich, aufgebaut. Ein Befehlswort
enthält im wesentlichen einen Operationsteil und eine Datenadresse gemäß Fig. la. Der
Operationsteil besteht, wie aus Fig. Ib ersichtlich,
aus einem Funktionsteil und einem Markierungsteil. Der Operationsteil gibt den jeweils durchzuführenden
Befehl an, während die Datenadresse den Platz im Speicher angibt, in dem der auf Grund des Befehls zu
verarbeitende Operand untergebracht ist. Der Kennzeichenteil eines Operationscodes kann verwendet
werden, um eine bestimmte Möglichkeit eines Operations-Befehls anzugeben.
Besteht das Wort im Speicherpuffer-Register 12 (Fig. 1) aus einem Befehlswort, so wird der Operationsteil
über die Leitung 20 zu einem Operations-Register 22 übertragen, dessen Inhalt über die Leitung
24 zu einem Entschlüßler und Zeitgeberkreis 26 gelangt. Der Entschlüßler und Zeitgeberkreis 26, der im
folgenden der Einfachheit halber als Entschlüßler bezeichnet wird, liefert Steuersignale, die innerhalb des
Computers oder des datenverarbeitenden Systems zur Durchführung eines bestimmten Befehls benutzt
werden.
Die Adresse eines Operanden, der auf Grund eines bestimmten Befehls verarbeitet werden soll, wird
durch den Datenadreßteil eines Befehlswortes im Speicherpuffer-Register 12 gemäß Fig. 1 angegeben.
Die Datenadresse kann über eine Leitung 40, die UND-Schaltung 42 und die ODER-Schaltung 44 zu
einem Speicheradreß-Register 46 übertragen werden. Die durch das Speicheradreß-Register 46 angegebene
Speicheradresse wird aus dem Speicher 10 ausgelesen und über das Speicherpuffer-Register 12 zur Rechen-Einheit
14 übertragen. Die durch das Speicherpuffer-Register 12 übertragene Information kann auch an
andere, nicht dargestellte Ladeanordnungen einer Rechenanlage oder einer Datenverarbeitungsanlage
übertragen werden.
Der Kellerspeicher 50 der in der F i g. 1 dargestellten
Anordnung kann verschiedenen Zwecken dienen. Wie aus der F i g. 1 ersichtlich, wird das
erste Register als Befehls- oder Instruktionszähler (/. Z.) bezeichnet. Das zweite Register wird als Operandenzähler
(O. Z.) bezeichnet. Die ersten und zweiten dargestellten Stellen des Kellerspeichers sind mit
Schaltungen zur Erhöhung der in ihnen enthaltenen Werte um eins verbunden. Die Register Rl, R2, . . .
R η dienen im Kellerspeicher 50 lediglich Speicherzwecken. Eine Erhöhung der in ihnen enthaltenen
Werte kann bei diesen Registern nicht vorgenommen werden.
Die Eingabe von Informationen in den Kellerspeicher 50 erfolgt stets über das erste Register, das als
Instruktionszähler bezeichnet wird. Dabei wird die gerade im Instruktionszähler enthaltene Information
automatisch in den Opcrandenzähler übertragen, dessen Inhalt automatisch in das Register R 1 übertragen
wird. Ähnliche Übertragungen erfolgen zwischen den übrigen Registern in Richtung auf die tieferen Speicherplätze.
Auf Grund dieser Arbeitsweise wurde die Bezeichnung Kellerspeicher für den Speicher 50 gewählt.
Werden Informationen aus dem Kellerspeicher 50 entnommen, so erfolgt die Entnahme aus dem ersten,
als Instruktionszähler bezeichneten Register, während die Inhalte aller unterhalb liegenden Register um eine
Stelle nach oben verschoben werden. Wird beispielsweise der Inhalt des Instruktionszählers aus dem
Kellerspeicher 50 entnommen, so wird der Inhalt des Operandenzählers in den Instruktionszähler, der Inhalt
des R 1-Registers in den Operandenzähler und der Inhalt des R 2-Registers in das R 1-Register übertragen.
Der Inhalt des Instruktionszählers kann zerstörungsfrei aus dem Kellerspeicher 50 ausgelesen werden
und über die Leitung 52, die UND-Schaltung 54 und die ODER-Schaltung 44 zum Speicheradreßregister
46 übertragen werden. Der dem Speicheradreßregister 46 zugeführte Inhalt des Instruktionszählers gibt die
Speicherstelle an, aus der die nächste Instruktion zu entnehmen ist.
Der Inhalt des Operandenzählers des Kellerspeichers 50 kann zerstörungsfrei ausgelesen werden und
über die Leitung 60, eine UND-Schaltung 62 und die ODER-Schaltung 44 zum Speicheradreßregister 46
übertragen werden. Der zum Speicheradreßregister 46 gelieferte Inhalt des Operandenzählers stellt die
Adresse des nächsten zu verwendenden Operanden dar. Die Inhalte der Instruktionszähler und der Operandenzähler
im Kellerspeicher 50 können steuerbar um eins erhöht werden. Dies geschieht dann, wenn
sie als Zähler verwendet werden. Der Instruktionszähler und der Operandenzähler kann auch in manchen
Fällen als Register verwendet werden. In diesen Fällen erfolgt keine Erhöhung des Inhaltes um eins.
Soll beispielsweise die nächste Operandenadresse vom Speicherpufferregister 12 über die Leitung 40
zum Speicheradreßregister 46 geliefert werden, wird der Inhalt des Operandenzählers im Kellerspeicher
50 nicht um eins erhöht. Ebenso wird bei Durchführung einer Verzweigungsoperation die Adresse der
nächsten Instruktion von dem Speicherpufferregister 12 zum Speicheradreßregister geliefert, und der Inhalt
des Instruktionszählers wird nicht um eins erhöht. Statt dessen wird der Inhalt des Instruktionszählers nach unten verschoben und die Adresse der
nächsten Instruktion nicht nur zum Speicheradreßregister 46, sondern auch zum Instruktionszähler des
Kellerspeichers 50 übertragen. Auf diese Weise kann eine Verzweigungsoperation zu einer Unterroutine
durchgeführt werden, wobei die folgenden Adressen aus dem Instruktionszähler entnommen werden, dessen
Inhalt immer dann um eins erhöht wird, wenn er zur Bestimmung einer Instruktion verwendet wird.
Findet eine Verzweigungsoperation statt, so wird die nächste im Speicherpufferregister 12 enthaltene
Adresse über die Leitung 40 und die UND-Schaltung 64 zum Instruktionszähler des Kellerspeichers 50
übertragen. Der Inhalt des Instruktionszählers gibt dann die Startadresse einer Unterroutine an. Die folgenden
Instruktionsadressen werden dann durch den Instruktionszähler geliefert, dessen Inhalt immer
dann um eins erhöht wird, wenn er als Adresse für den Speicher 10 verwendet wird. Steuerleitungen 70,
72, 74 und 76, die den UND-Schaltungen 64, 42, 54 und 62 zugeordnet sind, werden durch Signale des
Entschlüßlers 26 erregt, wenn diese UND-Schaltungen wirksam werden sollen. Die Arbeitsweise des
Rechners zerfällt in zwei Hauptzyklen, die als Instruktionszyklus und als Operationszyklus bezeichnet
werden. Am Anfang eines Instruktionszyklus wird der Inhalt des Instruktionszählers über die Leitung
52, die UND-Schaltung 54 und die ODER-Schaltung 44 zum Speicheradreßregister 46 übertragen. Ein
Steuersignal wird vom Entschlüßler 26 über die Leitung 74 zur UND-Schaltung 54 übertragen, wodurch
die Übertragung des Inhaltes des Instruktionszählers zum Speicheradreßregister 46 ermöglicht wird. Die
Instruktionen, die unter der vom Speicheradreßregister 46 angegebenen Adresse gespeichert sind, werden
vom Speicher 10 zum Speicherpufferregister 12 übertragen. Das Speicherpufferregister 12 enthält eine
Instruktion, die einen Operationsteil enthält, der über die Leitung 20 zum Operationsregister 22 übertragen
wird, während der in der gleichen Instruktion enthaltene Adressenteil über die Leitung 40, die UND-Schaltung
42 und die ODER-Schaltung 44 zum Speicheradreßregister 26 übertragen wird. Während dieser
Zeit wird die UND-Schaltung durch ein über die Leitung 72 geführtes Signal des Entschlüßlers 26 erregt.
Zu diesem Zeitpunkt liefert das Register 22 Signale an den Entschlüßler 26, der seinerseits Steuersignale
zur Durchführung einer gegebenen Instruktion erzeugt, während das Speicheradreßregister Signale
enthält, die die Adresse eines Operanden im Speicher 10 enthalten, der auf Grund der durchzuführenden
Instruktion verarbeitet werden soll.
Anschließend findet der Operationszyklus statt. Zu diesem Zweck liefert der Speicher 10 einen Operanden
an das Speicherpufferregister 12, das seinerseits den Operanden an die Rechen-Einheit 14 liefert,
worauf die angegebene Operation mit dem Operanden durchgeführt wird. Sobald der Operationszyklus
beendet ist, wird der Inhalt des Instruktionszählers mit Hilfe von durch den Entschlüßler 26 gelieferten
Signalen um eins erhöht und sein Inhalt zum Speicheradreßregister 46 übertragen, um den nächsten Instruktionszyklus
einzuleiten. Der Instruktionszähler wird jedes Mal um den Wert eins erhöht, wenn eine
Instruktion aus dem Speicher ausgelesen wird. Auf diese Weise werden Instruktionen aus aufeinanderfolgenden
Speicheradressen ausgelesen und durchgeführt.
Innerhalb eines aus Instruktionen bestehenden Hauptprogramms ist es üblich, Verzweigungs- oder
Sprungoperationen durchzuführen, bei denen die normale Instruktionsfolge unterbrochen und Unterroutine-Instruktionen
ausgeführt werden. Zu diesem Zweck wird eine Verzweigungs- oder Sprunginstruktion
verwendet, die entweder unter Berücksichtigung eines bestimmten auftretenden Zustandes, oder ohne
eine solche Berücksichtigung durchgeführt wird. Die Verzweigungs- oder Sprunginstruktion gibt die Adresse
der ersten Instruktion in der Unterroutine an, welche Adresse im allgemeinen nicht in der Nachbarschaft
der nächsten Adresse der normalen Adressenfolge der Instruktionen des Hauptprogramms liegt. Eine
derartige Verzweigungsoperation wird verwendet, um die Instruktionsfolge des Hauptproblems zu verlassen
und auf eine Unterroutine überzugehen. Sobald die Unterroutine beendet ist, erlaubt eine andere Ver-Zweigungsinstruktion,
zu dem Punkt des Hauptprogramms zurückzukehren, von dem aus die Unterroutine eingeleitet wurde. Um zu der Stelle zurückzukehren,
in dem das Hauptprogramm verlassen wurde, ist es nötig, die Adresse der nächsten Instruktion
des Hauptprogramms zu speichern, das auf Grund einer Verzweigungs- oder Sprunginstruktion verlassen
wurde. Ist beispielsweise eine Verzweigungsinstruktion unter der Adresse 100 untergebracht, so
ist die Adresse 100 die Adresse, bei der das Hauptprogramm verlassen wird. Die Verzweigung führt zu
einer Adresse, die in der Verzweigungsinstruktion angegeben ist, worauf eine Unterroutine durchgeführt
wird. Sind die Instruktionen der Unterroutine ausgeführt, so wird eine weitere Verzweigungsinstruktion
in der Unterroutine vorgesehen, um wieder zum Hauptprogramm zurückzuführen. Führt die Verzweigung
zum Hauptprogramm zurück, so führt sie zu einer Instruktion, die unter der Adresse 101 untergebracht
ist, die im folgenden als Rückkehradresse bezeichnet wird. Es ist leicht einzusehen, daß die
Rückkehradresse um eins größer als die Adresse ist, bei der das Programm verlassen wurde.
Während der Durchführung einer Unterroutine ist es möglich, daß eine weitere Verzweigung zu einer
anderen Unterroutine durchgeführt wird. Verzweigungsinstruktionen können innerhalb einer Unterroutine
mehrere Male vorkommen. Dabei kann es schwierig werden, von den verschiedenen Unterroutinen
zu dem Punkt des Hauptprogramms zurückzukehren, von dem die ursprüngliche Verzweigung erfolgte.
Eine besonders vorteilhafte Ausführungsform des Erfindungsgedankens betrifft daher eine einfache,
einen Kellerspeicher enthaltende Anordnung zur Durchführung von Verzweigungsinstruktionen aus
einem Hauptprogramm durch eine oder mehrere Unterroutinen und wieder zurück zum Hauptprogramm.
In der Tafel 1 wird eine Folge von Programminstruktionen angegeben, die mit Hilfe der in F i g. 1
beschriebenen Anordnung durchgeführt werden können. Das in Tafel 1 angegebene Programm stellt ein
einfaches Beispiel dar, und es ist ohne weiteres einzusehen, daß eine ganze Reihe ähnlicher Programme
mit der erfindungsgemäßen Anordnung durchgeführt werden können.
Tafel I
Hauptprogramm instruktionen Speicherplatz] Inhalt |
Add-- | Unterprogr instruktic Speicherplatz |
amm- nen Inhalt |
80 | Div-- | ||
81 | Sp | /200 | Ent-- |
82 | Eing 200 | / 201 | Sub-- |
83 | T"\*Tr j | 202 | MuIt - - |
84 | DiV ' | Rück | |
85 | Add-- | 203 | |
Die Tafel I enthält einen Teil eines Hauptprogramms, dessen Instruktionen in den Plätzen 80 bis
85 gespeichert sind. Jede Instruktion enthält einen Operationscode und eine Datenadresse von der in
F i g. 1 angegebenen Form. Zur Erhöhung der Übersichtlichkeit und Vereinfachung der Darstellung
wurde die Datenadresse nicht angegeben. Es wird
angenommen, daß im Hauptprogramm bis zur Erreichung der Instruktion im Speicherplatz 80 fortgeschritten
wurde. Der Wert 80 ist im Instruktionszähler des Kellerspeichers 50 gemäß F i g. 1 untergebracht.
Diese Instruktion wird aus dem Speicher ausgelesen, und der Operationsteil wird zum Operationsregister 22 übertragen und dann im Entschlüßler 26
als Addierinstruktion entschlüsselt. Der Adressenteil der Instruktion wird vom Speicherpuffer-Register 12
zum Speicheradreß-Register 46 übertragen und der Inhalt dieses Registers der Recheneinheit 14 für die
Addieroperation zugeleitet. Der Instruktionszähler im Kellerspeicher 50 wird um den Betrag eins erhöht, so
daß der Wert 81 für die nächste Instruktion zur Verfügung steht, die eine Dividier-Instruktion ist. Nach
der Durchführung der Operation Dividiere wird der Inhalt des Instruktionszählers im Kellerspeicher 50
auf 82 erhöht und die nächste Instruktion aus dem Speicher 10 ausgelesen und als eine Speicherinstruktion
entschlüsselt. Daher wird das Ergebnis der Recheneinheit 14 gespeichert. Der Inhalt des Instruktionszählers
wird wieder um eins auf 83 erhöht und die nächste Instruktion ausgelesen und als Einganginstruktion
entschlüsselt. Diese Instruktion ist, wie aus der rechten Spalte der Tafel 1 zu ersehen, zur
Durchführung einer Verzweigung zu einer Unterroutine bestimmt. Der Adressenteil dieser Einganginstruktion
enthält den Wert 200, der über die Lei-.:, tung 40 und die UND-Schaltung 64 zum Instruk-
_4ionszähler des Kellerspeichers 50 übertragen wird.
:,-;■ Gleichzeitig mit dieser Übertragung wird der vorherige
Inhalt des Instruktionszählers nach unten in den Operandenzähler übertragen. In diesem Zustand
..;.. ist der Wert 200 im Instruktionszähler gespeichert :·;■ und der Wert 83 im Operandenzähler des Kellerspei-
chers 50 untergebracht. Die nächste Instruktion wird ■■: durch Übertragung des Inhalts des Instruktionszählers
über die Leitung 52, die UND-Schaltung 54 und die ODER-Schaltung 44 zum Speicheradreßregister 46
erhalten. Diese Instruktion wird aus dem Speicher ausgelesen und als »Entleere-und-Addieree-Operation
entschlüsselt, die anschließend durchgeführt wird. Der Inhalt des Instruktionszählers wird auf 201 erhöht
und die nächste Instruktion ausgelesen und als eine Subtrahierinstruktion entschlüsselt. Nach der
Durchführung der Subtrahieroperation wird der Inhalt des Instruktionszählers auf den Wert 202 erhöht und
die Instruktion ausgelesen, als Multiplizierinstruktion entschlüsselt und ausgeführt. Der Instruktionszähler
wird anschließend auf den Wert 203 erhöht und die nächste ausgelesene Instruktion als eine Rückkehrinstruktion
entschlüsselt. Die Rückkehrinstruktion bewirkt eine Nach-oben-Verschiebung des Inhalts des
Kellerspeichers, d. h., der Instruktionszähler wird entleert, wobei sein Inhalt verlorengeht. Der Inhalt
des Operandenzählers wird dabei nach oben in den Instruktionszähler verschoben. Dadurch wird der
Wert 83 wieder in den Instruktionszähler eingeführt und dieser Wert um eins erhöht, so daß sich der Wert
ergibt. Demgemäß wird die nächste Information aus dem Speicherplatz 84 entnommen und als Dividier-Instruktion
entschlüsselt. Danach wird der Inhalt des Instruktionszählers auf den Wert 85 erhöht
und die nächste Instruktion als Addierinstruktion entschlüsselt. Das Hauptprogramm wird anschließend
fortgesetzt. Dieser Vorgang wird jedoch der Einfachheit halber in dem in Tafel 1 aufgeführten Beispiel
nicht gezeigt. Es ist ohne weiteres einzusehen, daß bei
der Durchführung einer Verzweigungs- oder Sprungfunktion keine Rückkehradresse für die Rückkehrinstruktion
angegeben werden muß. Dies ist daraus ersichtlich, daß die Rückkehrinstruktion im Speicherplatz
203 der Unterroutine keinen Adressenteil enthält. Auf diese Weise kann der bei den bisher bekannten
Rechenanlagen übliche Aufwand zur Verfolgung und Angabe einer Rückkehradresse vermieden
werden. Dadurch wird die Aufgabe des Programmierers wesentlich erleichtert, insbesondere in solchen
Fällen, in denen mehrere Unterroutinen einander unterbrechen. Die Adressen, in denen die
Unterbrechungen vorkommen, werden im Kellerspeicher 50, gemäß Fig. 1, in der Reihenfolge, in der
sie auftreten, gespeichert, und diese Adressen werden in umgekehrter Reihenfolge zum Instruktionszähler
des Kellerspeichers rückgeführt. Zu diesem Zweck ist es lediglich erforderlich, Rückkehrinstruktionen am
Ende der verschiedenen Unterroutinen vorzusehen. Die Operanden werden aus dem Speicher 10 mit
Hilfe des Operandenzählers im Kellerspeicher 50, Fig. 1, entnommen und nur in seltenen Fällen mit
Hilfe des Adressenteils einer Instruktion. Mit der beschriebenen Anordnung läßt sich auch der Eintrittspunkt eines Programms während seines Ablaufs verändern,
d. h., anstatt an einem bestimmten Eintrittspunkt nach Beendigung einer Verzweigungsoperation
zurückzukehren, kann der Eintrittspunkt während der Datenverarbeitung verändert werden. Diese beiden
Möglichkeiten werden erreicht durch die Durchführung einer Verzweigungsoperation zu einer Unterroutine
durch Verwendung des Operandenzählers zur Sicherstellung eines Operanden für die Unterroutine
und durch Verwendung des veränderten Wertes des Operandenzählers als die modifizierte Eingangsadresse, wenn zum Hauptprogramm zurückgekehrt
wird. Dieser Tatbestand wird mittels der unten dargestellten Tafel II erläutert.
Tafel II
Inhalt des Instruktionszählers |
Inhalt des Speicherplatzes |
Inhalt des Operanden zählers |
100 | ADD (PL A) | |
101 | Sp (PL B) | |
102 | Eing. (200) | |
200 | Ent. (T) | 103X1 |
201 | SUB (PL) | |
202 | MULT (T) | 104X2 |
203 | Rück | 105 |
105 | ADD (PL C) | |
170 | Eing. 200 | |
200 | Ent (T) | 171Yl |
201 | SUB (PL K) | |
202 | MULT (T) | 172 Y 2 |
203 | Rück | 173 |
173 | Sp. (PL C) |
Das in Tafel II dargestellte Hauptprogramm ist bis zur Instruktion 100 fortgeschritten. Die in den Speicheradressen
100 bis 105 befindlichen Operationen stellen einen Teil des im Speicher 10 gemäß F i g. 1
untergebrachten Hauptprogramms dar. Die Instruktionen mit den Adressen 200 bis 203 stellen eine
Subroutine in Speicher 10 dar. Der Speicherplatz 100 im Hauptprogramm enthält eine Additions-Instruktion,
wobei der entsprechende Operand im Platz A gespeichert ist. Die Instruktion im Speicherplatz 101
ist eine Speicherinstruktion, die angibt, daß das Ergebnis aus der Recheneinheit 14 (Fig. 1) im Platz B
zu speichern ist. Der Speicherplatz 102 enthält eine Eingangsinstruktion, der der Speicherplatz der ersten
Instruktion der Unterroutine folgt, der der Speicherplatz 200 ist. Die Instruktionen der Unterroutine sind
in den Adressen 200 bis 203 gespeichert. Wird die Eingang-Instruktion entschlüsselt, so wird der Wert
203 im Instruktionszähler zum Operandenzähler des Kellerspeichers 50 übertragen und der Wert 200 der
Eingang-Instruktion aus dem Speicherpuffer-Register 12 über die Leitung 40 und die UND-Schaltung 64
zum Instruktions-Zähler des Kellerspeichers 50 übertragen. Die nächste aus dem Speicher 10 ausgelesene
Instruktion befindet sich am Platz 200 und stellt eine Entleer- und Additionsinstruktion mit einer Markierung
(T) dar, welche angibt, daß die Operandenadresse durch den Operandenzähler bestimmt wird.
Daher wird der Inhalt des Operandenzählers im Kellerspeicher 50 über die Leitung 60, die UND-Schaltung
62 und die ODER-Schaltung 44 zu dem Speicheradreß-Register 46 übertragen. Der auf diese
Weise erhaltene Operand wird zur Recheneinheit 14 übertragen. Nachdem der Inhalt des Operandenzählers
aus dem Kellerspeicher 50 übertragen wurde, wird er um den Wert eins erhöht, so daß sich die
Zahl 104 ergibt. Der Operand wird im Speicher 10 gemäß Fig. 1 im Speicherplatz 103 gespeichert, der
willkürlich mit X 1 bezeichnet wird. Die nächste Instruktion wird durch Rückgriff auf den Inhalt des
Instruktionszählers erhalten, der 201 ist. Die an diesem Speicherplatz befindliche Instruktion ist eine
Subtraktions-Instruktion, und der Operand wird vom Speicherplatz K entnommen. Die nächste Instruktion
wird vom Platz 202 entnommen, wobei es sich um eine Multiplikations-Instruktion mit einer Markierung
(T) handelt, die angibt, daß der Operand unter der vom Operandenzähler angegebenen Adresse gespeichert
ist, und daß der Adressenteil der Instruktion vernachlässigt werden kann. Daher wird der Wert
104 im Operandenzähler zu dem Speicheradreßregister 46 übertragen, um den nächsten Operanden zu
erhalten. Dieser Operand wird aus dem Speicher 10 zur Recheneinheit 14 übertragen und wird in Tafel 2
willkürlich mit X 2 bezeichnet. Die nächste durch den Instruktionszähler bezeichnete Instruktion befindet
sich unter der Adresse 203 und ist eine Rückkehrinstruktion. Daher wird der Inhalt des Kellerspeichers
50 nach oben verschoben, wobei der Inhalt des Instruktionszählers zerstört und der Wert 105 aus dem
Operandenzähler in den Instruktionszähler übertragen wird. Das Hauptprogramm ist mit der unter der
Adresse 105 des Speichers 10 befindlichen Instruktion wieder aufgenommen. Diese Instruktion ist eine Addierinstruktion,
wobei der Operand sich im Platz C des Speichers 10 befindet. Aus dem oben angegebenen
Beispiel ist zu ersehen, daß der Operandenzähler zur Adressierung von Daten für eine TTntprrnntinp
verwendet wird und daß der normale Rückkehrpunkt zum Hauptprogramm während des Verarbeitungsvorganges
modifiziert wird. ;
An einer späteren Stelle des in der Tafel 2 erläuterten Programms wird der Speicherplatz 170 durch
den Instruktionszähler adressiert. Der Inhalt des Instruktionszählers wird auf 171 erhöht Die Speichersteile
170 enthält eine Einganginstruktion mit der zugeordneten Adresse 200. Der Speicherplatz 200 ist
wiederum der Ausgangspunkt einer Unterroutine. Das Auftreten eines Eingangskommandos bewirkt,
daß die Größe 200 in den Instruktionszähler eingegeben und die Größe 171 nach unten in den Operandenzähler
des Kellerspeichers 50 verschoben wird. Die erste Operation der Unterroutine ist eine Leerund
Addierinstruktion mit einer Markierung (T), die angibt, daß die zugeordneten Daten durch den Operandenzähler
des Kellerspeichers 50 adressiert werden sollen. Der Operandenzähler enthält den Wert
171, so daß die Daten Y 1 unter dieser Adresse für eine Entleer- und Additionsoperation verwendet werden.
Die Instruktion im Speicherplatz 201 ist eine Subtrahierinstruktion, wobei der zugeordnete Operand
im Platz K gespeichert ist.
Die Instruktion im Speicherplatz 202 ist eine Multiplizierinstruktion, wobei die Markierung angibt,
daß der Operand von der durch den Operandenzähler des Kellerspeichers 50 angegebenen Adresse abgerufen
werden soll. Der in dieser Adresse befindliche Operand wird willkürlich mit Y 2 bezeichnet. Die
Instruktion im Speicherplatz 203 ist eine Rückkehrinstruktion, die bewirkt, daß der Inhalt des Operandenzählers
nach oben in den Instruktionszähler verschoben wird und das Hauptprogramm, beginnend
mit der im Speicherplatz 173 befindlichen Instruktion, wieder aufgenommen werden soll. Dies ist eine
Speicherinstruktion, wobei die Speicherung im Platz C des Speichers stattfinden soll. Es sei darauf
hingewiesen, daß nach Durchführung der ersten Unterroutine gemäß Tafel 2 die Daten X 1 und X 2
durch die in den Stellen 200 und 202 gespeicherten Instruktionen adressiert wurden. Bei der zweiten
Durchführung der Unterroutine wurden die Daten Yl und Y 2 durch die in den Speicherplätzen 200
und 202 gespeicherten Instruktionen adressiert. Diese Änderung wird durch den Operationszähler möglich
gemacht, der verschiedene Werte für jede der beiden in der Tafel 2 beschriebenen Unterroutinen aufweist.
Der Operandenzähler im Kellerspeicher 50 ermöglicht nicht nur diese variable Datenadressierung,
sondern er enthält auch einen modifizierten Eingangspunkt zur Rückkehr zum Hauptprogramm nach
Beendigung der Unterroutine. Darüber hinaus wird der Eintrittspunkt in das Hauptprogramm automatisch
abgeleitet als ein Ergebnis der Vorgänge während der Unterroutine.
In der Tafel III wird ein Beispiel dargestellt, aus dem ersichtlich ist, wie Unterroutinen sich gegenseitig
unterbrechen können und wie zum Hauptprogramm unter Verwendung der in Fig. 1 dargestellten
Anordnung zurückgekehrt werden kann.
In dem in Tafel III dargestellten Beispiel ist das Programm bis zur Adresse 300 fortgeschritten. Die
Adresse 300 enthält eine Additionsinstruktion, wobei der Operand im Speicherplatz Ä des Speichers 10
der Anordnung gemäß Fig. 1 gespeichert ist. Der Instruktionszähler in dem Kellerspeicher 4 wird auf
rton Wort Ml
liehe Instruktion ist eine Dividieie-Instruktion, und
der zugeordnete Operand ist im Speicherplatz B untergebracht. Der Instruktionszähler wird um eins
erhöht, und die nächste Instruktion ist eine Eingangsinstruktion, die angibt, daß eine Verzweigungs-
operation zu einer Unterroutine durchgeführt werden soll, deren erste Instruktion unter der Adresse 500
gespeichert ist. Der Wert 302 des Instruktionszählers wird auf 303 erhöht. Dieser Wert wird nach unten
in den Operandenzähler verschoben, bevor der Wert 500 der Eingangsinstruktion in den Instruktionszähler übertragen wird. Die nächste Instruktion wird
von der Adresse 500 entnommen, wobei es sich um eine Additionsinstruktion mit einer Markierung (T)
handelt, die angibt, daß die Operandenadresse durch den Operandenzähler angegeben wird und daß diese
Adresse 303 ist. Der Operand und diese Adresse werden in Tafel III willkürlich mit D 1 bezeichnet.
Tafel III
Speicherplatz /.Z. |
Inhalt | O. Z. | Rl |
300 | ADD (Pl. A) | ||
301 | DIV (Pl. B) | ||
3.02-—_ | ^^Eing. 500 | ||
500 | ADD (τΓ~~~~~~ | "^303-Dl | |
501 | Sp (Pl. XX) | 304 | |
502---. y |
.^Eing. 700 | 304. | |
700 | Ent. (Pl. YY) | ~*503 | ^304 |
701 | MULT (T) | 503-H1 | 304 |
702 | SUB (Pl. ZZ) | 504 | 304 |
703 | Rück ^__^—· | -504 | /304 |
504 « | ADD(PLAA) | 304^ | |
505 | Rück ^^_^— | -304 | |
304*-^" | Sp (Pl. CC) |
35
40
45
55
Der Operandenzähler wird dann auf den Wert 304 und der Instruktionszähler auf den Wert 501 erhöht.
Sobald die Addierinstruktion beendet wurde, wird die Instruktion in Adresse 501 ausgelesen und als
eine Speicherinstruktion entschlüsselt, die angibt, daß das Ergebnis der Verarbeitung in der Recheneinheit
14 im Speicherplatz XX im Speicher 10 der Anordnung nach F i g. 1 untergebracht werden soll. Nachdem
der Instruktionszähler auf den Wert 502 erhöht wurde, wird diese Instruktion ausgelesen und als eine
Eingangsinstruktion entschlüsselt, die angibt, daß eine Verzweigung zu einer Unterroutine gemacht
wird, deren erste Instruktion im Speicherplatz 700 untergebracht ist. Während der Entschlüsselung
dieser Instruktion, wird der Inhalt des Instruktionszählers auf den Wert 503 erhöht. Der Inhalt des
Kellerspeichers 50 wird als Ergebnis der Eingangsinstruktion nach unten verschoben. Daher wird der
Wert 304 im Operandenzähler nach unten in das RegisterRl verschoben. Der Wert 503 im Instruktionszähler
wird nach unten in den Operandenzähler verschoben. Der Wert 700, der den Adressenteil der
Eingangsinstruktion darstellt, wird vom Speicherpuffer-Register 12 über die Leitung 40 und die UND-Schaltung
64 zum Instruktionszähler des Kellerspeichers 50 übertragen. Die nächste Instruktion wird
vom Speicherplatz 700 entnommen und als Entleerer und Addierinstruktion entschlüsselt, wobei der zugeordnete
Operand im Platz YY untergebracht ist. Nachdem der Inhalt des Instruktionszählers auf 701
erhöht wurde, wird die nächste Instruktion ausgelesen. und als Multiplizierinstruktion mit der Markierung (T)
entschlüsselt, die angibt, daß die zugeordnete Operandenadresse durch den Operandenzähler angegeben
wird. Der Inhalt dieses Zählers ist 503, und der unter der Adresse 503 gespeicherte Operand wird in der
Tafel III willkürlich mit H1 bezeichnet. Nachdem der Wert des Instruktionszählers auf 702 erhöht
wurde, wird die nächste Instruktion ausgelesen und als eine Subtraktionsinstruktion entschlüsselt, wobei
der zugehörige Operand im Speicherplatz ZZ untergebracht ist. Der Inhalt des Instruktionszählers wird
wiederum erhöht, diesmal auf den Wert 703, und die nächste Instruktion ausgelesen und als eine
Rückkehrinstruktion entschlüsselt, die eine Aufwärtsverschiebung der im Kellenspeicher 50 enthaltenen
Informationen bewirkt. Demzufolge wird der auf 704 erhöhte Inhalt des Instruktionszählers zerstört. Der
auf 504 erhöhte Inhalt des Operandenzählers wird in den Instruktionszähler übertragen. Der Wert 304
im Register R1 wird in den Operandenzähler übertragen.
In diesem Zeitpunkt sind die in den Speicherplätzen 700 bis 703 gespeicherten Instruktionen der
Unterroutine durchgeführt, und das Programm kehrt zur Unterroutine mit in den Speicherplätzen 500 bis
505 untergebrachten Instruktionen zurück, von dem ein Teil schon vorher vollendet worden ist.
Die nächste Instruktion wird aus dem Speicherplatz 504 gelesen und als eine Addierinstruktion
entschlüsselt, wobei der zugehörige Operand im Speicherplatz AA untergebracht ist. Nachdem der
Inhalt des Instruktionszählers auf 505 erhöht wurde, wird die nächste Instruktion ausgelesen und als eine
Rückkehrinstruktion entschlüsselt, die bewirkt, daß der Inhalt des Kellerspeichers 50 nach oben verschoben
wird. Daher wird der erhöhte Inhalt 506 im Induktionszähler zerstört und der Wert 304 im
Operandenzähler in den Instruktionszähler übertragen. Die nächste Instruktion befindet sich in der
Adresse 304 und wird ausgelassen als eine Speicherinstruktion entschlüsselt, die angibt, daß das Ergebnis
der Verarbeitung in der Recheneinheit 14 im Speicherplatz CC unterzubringen ist. Das Hauptprogramm
wird mit der in der Adresse 304 gespeicherten Instruktion aufgenommen, und der Hauptfluß
der Instruktionen nimmt von hier seinen weiteren Fortgang.
Aus den oben beschriebenen Vorgängen ist zu ersehen, wie eine Unterroutine eine andere Unterroutine
unterbrechen kann und wie beide Unterroutinen beendet werden, bevor zu dem Hauptprogramm
zurückkgekehrt wird. Es wurde weiter gezeigt, daß der Rückkehrpunkt in das Hauptprogramm
durch eine der Unterroutinen verändert wurde, d. h., das Hauptprogramm wurde durch die
Instruktion in der Adresse 302 unterbrochen und durch eine in der Adresse 304 gespeicherte Instruktion
wieder fortgesetzt. In Fig. 2 ist eine etwas abgeänderte Ausführung der Anordnung gemäß
Fig. 1 dargestellt. Es ist manchmal wünschenswert, Operanden von verschiedenen Speicherplätzen zu
erhalten. Für diesen Zweck wird die Schaltung gemäß Fig. 1, wie in Fig. 2 dargestellt, verändert. In den
beiden Figuren werden gleiche Teile mit gleichen Bezugszeichen kenntlich gemacht. Es wird noch
darauf hingewiesen, daß die Anordnung gemäß F i g. 2 einen zusätzlichen Qperandenzähler O. Z. 2
aufweist, dessen Inhalt über die Leitung 80, die UND-Schaltung 82 und die ODER-Schaltung 44
zum Speicheradreßregister 46 übertragen werden kann. Die UND-Schaltung 82 kann über eine Leitung
84 mit einem Steuersignal beaufschlagt werden, wenn der Inhalt des Operandenzählers 2 zum Speicheradreßregister
46 übertragen werden soll. Die übrigen Elemente der Anordnung gemäß F i g. 2 sind mit
den Elementen der Anordnung gemäß F i g. 1 identisch. Der Markierungsteil des Operationskodes einer
Instruktion, beispielsweise der in F i g. 1 b dargestellten Information, gibt an, ob der Operationszähler 1
oder der Operationszähler 2 verwendet werden soll. Auf diese Weise erhält der Programmierer mehr
Möglichkeiten, indem er Operanden vom Speicher 10 gemäß Fig. 1 entnimmt. Ein Beispiel dieser zusätzlichen
Möglichkeiten wird in Tafel IV dargestellt.
Tafel IV
Speicherplatz LZ. |
Inhalt | O. ZA | O. Z. 2 |
800^. | ^Eing. 850 | ||
850^C | ^Eing.900^^- | -*80L· | |
900 | Ent. (ΤΐΓ~~^ | -*851K1 | ^801 |
901 | SUB (T 2) | 852 | 801Ll |
902 | DIV (T 2) | 852 | 802Nl |
903 | ADD(Tl) | 852Pl | 803 |
904 | Rück ^^___^ | —853 | ,803 |
853*" | MULT(Tl) | 803Tl^ | |
854 | Sp. (Pl. G) | 804 | |
855 | Rück ^^_ | "804 | |
804*-" | Ent. (Pl M) |
Es wird darauf hingewiesen, daß in der Tafel 1III
die unter der Adresse 800 gespeicherte Instruktion eine( Eingangsinstruktion ist, die bewirkt, daß das
Hauptprogramm zu einer Unterroutine verzweigt wird, deren erste Instruktion unter der Adresse 850
gespeichert ist. Der Wert 800 im Instruktionszähler wird auf 801 erhöht und der letztgenannte Wert im
Operandenzähler 1 gespeichert. Der Wert 850 wird vom Speicherpuffer 12 zum Instruktionszähler gemäß
ίο Fig. 1 übertragen. Die Instruktion im Speicherplatz
850 wird gelesen und als eine Eingangsinstruktion entschlüsselt, die angibt, daß eine neue Unterroutine
ausgeführt werden soll, wobei die ersten Instruktionen der neuen Unterroutine unter der Adresse 900
gespeichert ist. Nachdem der Inhalt des Instruktionszählers von 850 auf 851 erhöht wurde, wird er daher
zum Operandenzähler 1 und der Wert 801 im Operandenzähler 1 in den Operandenzähler 2 übertragen.
Das Programm wird mit der in der Adresse 900 beginnenden Unterroutine fortgesetzt. Die Instruktion
in der Adresse 900 wird ausgelesen und als Entleer- und Addierinstruktion entschlüsselt. Die
Markierung besagt, daß der Operandenzähler 1 zur Erlangung des zugeordneten Operanden herangezogen
werden soll. Daher wird der Wert 851 vom Operandenzähler 1 zum Speicheradreßregister übertragen,
wobei der aus diesem Speicherplatz ausgelesene Operand in Tafel IV willkürlich mit K1 bezeichnet
wird. Der Inhalt des Operandenzählers 1 wird um eins vom Wert 851 auf den Wert 852 erhöht. Ebenso
wird der im Instruktionszähler enthaltene Wert von 900 auf 901 erhöht. Die nächste Instruktion, die vom
Speicherplatz 901 entnommen wird, wird ausgelesen und als Subtrahierinstruktion entschlüsselt, wobei
der Markierteil angibt, daß der Operand für diese Instruktion von dem durch den Operandenzähler 2
angegebenen Speicherplatz zu entnehmen ist. Da der Inhalt des Operandenzählers 2 gleich 801 ist, wird
der Operand aus diesem Platz ausgelesen und in der Darstellung der Tafel IV willkürlich mit Ll bezeichnet.
Der Operandenzähler wird um den Wert 1 von 801 auf 802 erhöht. Der Inhalt des Instruktionszählers wird um den Wert 1 von 901 auf 902 erhöht.
Die aus diesem Speicherplatz entnommene Instruktion ist eine Dividierinstruktion, die eine Markierung
aufweist, die besagt, daß der Operand von der durch den Operandenzähler 2 angegebenen Adresse genommen
werden soll. Der Operand wird daher aus dem Speicherplatz 802 entnommen, der in der Darstellung
der Tafel IV willkürlich N1 bezeichnet wird. Der Inhalt des Operandenzählers 2 wird dann um
den Wert 1 von 802 auf 803 erhöht. Der Inhalt des Instruktionszählers wird auf den Wert 903 erhöht,
und die von dieser Adresse entnommene Instruktion ist eine Addierinstruktion, die angibt, daß der zugeordnete
Operand von der durch den Operandenzähler 1 angegebenen Adresse entnommen werden
sollte. Daher wird der nächste Operand aus dem Speicherplatz 852 entnommen und in der in Tafel IV
dargestellten Aufstellung willkürlich mit Pl bezeichnet. Der Inhalt des Operandenzählers 1 wird
vom Wert 852 auf den Wert 853 erhöht.
Der Instruktionszähler wird auf den Wert 904 erhöht. Die aus dieser Adresse ausgelesene Instruktion
wird als Rückkehrinstruktion entschlüsselt. Daher wird der Inhalt des Kellerspeichers (F i g. 1
und 2) nach oben verschoben, d. h., der Inhalt des Instruktionszählers wird zerstört. Der Wert 853 des
17 18
Operandenzählers 1 wird in den Instruktionszähler eingegeben, bis sie gebraucht wird. Wie schon gesagt,
übertragen und der Wert 803 im. Operandenzähler 2 werden die Daten auf der Verzögerungsleitung 100
in den Operandenzähler 1 übertragen. Zu diesem durch eine Rückkehr-Instruktion entnommen. Der
Zeitpunkt ist die Unterroutine, i deren Instruktionen Kellerspeicher 50 der F i g. 3 weist vier Speicherin
den Speicherplätzen 900 bis 904 untergebracht 5 register auf, die die Bezeichnungen Instruktionszähler
waren, beendet und das Programm zur Unterroutine (/. Z.), Operandenzähler (O. Z.), Register R1 und R 2
zurückgekehrt, deren Instruktionen in den Speicher- tragen. Die Daten des Instruktionszählers, des Opeplätzen
850 bis 855 untergebracht waren. randenzählers und der Register Rl, Rl gehen aus
Die nächste Instruktion wird von der Adresse 853 von der Verzögerungsleitung 100 unter der Steuerung
des Speichers entnommen und als Multiplizierinstruk- io der Impulse W, X, Y und Z. Diese vier Register sind
tion entschlüsselt. Der Markierungsteil dieser Instruk- innerhalb der Verzögerungsleitung bitweise unter der
tion gibt an, daß der zugeordnete Operand von der Steuerung der W-, X-, Y- und Z-Pulse verschachtelt,
durch den Operandenzähler 1 angegebenen Adresse die innerhalb jedes Bitzeitraumes erzeugt werden,
zu entnehmen ist. Daher wird der Operand von der Die dargestellten logischen Schaltungen verbinden
Adresse 803 entnommen und in der Aufstellung 15 den Ausgang der Verzögerungsleitung mit ihrem
gemäß Tafel IV willkürlich mit T 1 bezeichnet. Der Eingang, so daß eine Speicherung durch wiederholten
Inhalt des Operandenzählers 1 wird um den Wert 1 Durchlauf erreicht wird. In der besonderen Ausvon
803 auf 804 erhöht. Der Instruktionszähler wird gestaltung nach F i g. 3 sind vier logische Schaltungen
auf den Wert 854 erhöht und die nächste ausgelesene vorgesehen, die die Bezeichnung Zeitfortschalt-VerInformation
als Speicherinstruktion entschlüsselt, 20 zögerungslogik-(7Vl-DL)-Kreise tragen, denen jeder
die angibt, daß das Ergebnis der Verarbeitung in der einem besonderen Register und einem besonderen
Recheneinheit 14 im Speicherplatz G gespeichert Zeitsequenzimpuls innerhalb der Verzögerungsleitung
werden soll. Der Inhalt des Instruktionszählers wird zugeordnet ist.
auf den Wert-855 erhöht und diese Instruktion aus- Unter normalen Bedingungen liefert die Zeitfortgelesen
und als eine Rückkehrinstruktion entschlüs- 25 schalt-Verzögerungs-Leitungsschaltung eine 1-Bitselt.
Der Inhalt des Instruktionszählers wird daher Verzögerung außerhalb der Leitung, und die Daten
zerstört und der Inhalt 804 des Operationszählers 1 laufen im System ohne Änderung ihrer relativen
zum Instruktionszähler übertragen. Die nächste Zeitsrequenz um. Erhält eine Zeitfortschalt-Verzöge-Instruktion
wird von der Adresse 804 entnommen rungslogik-Schaltung ein Eingang-Kommando, so
und als Entleer- und Addierinstruktion entschlüsselt, 30 erzeugt sie eine 2-Bit-Verzögerung und verschiebt
wobei der entsprechende Operand von dem durch die Daten innerhalb der relativen Zeitfolge um eine
den Adreßteil der Instruktion im Speicherpuffer- Folgezeit zurück. Erhält die Zeitfortschalt-Verzöge-Register
12 angegebenen Speicherplatz M entnommen rungslogik-Schaltung ein Rückkehrkommando, so
wird. Von hier aus wird das Programm fortgesetzt. erzeugt sie keine Verzögerung, so daß sie tatsächlich
Aus der Darstellung nach Tafel IV ist zu entnehmen, 35 die Daten um eine Folgezeit der relativen Zeitfolge
daß zwei Operandenzähler in vorteilhafter Weise zur nach vorn verschiebt.
vielseitigen Adressierung von Operanden in verschie- Der Instruktionszähler arbeitet in der W-Zeitfolge.
denen Speicherplätzen verwendet werden können. Nun soil eine Unterroutine eingegeben werden. Die
Der Kellerspeicher nach Fig. 1 kann entweder Eingang-Instruktion verschiebt den Inhalt des
eine parallel oder seriell arbeitende Speicheranord- 40 Instruktionszählers oder das ff-Sequenzregister nach
nung sein, was auch im allgemeinen auf das in Frage unten in den Operandenzähler oder das X-Sequenzkommende
Datenverarbeitungssystem zutrifft. In register, in dem diese Information ungestört umläuft,
F i g. 3 wird eine besonders vorteilhafte Form eines während der Inhalt des Instruktionsregisters oder
Kellerspeichers beschrieben. Der serielle Keller- W-Sequenzregisters eine Unterroutine ausführt. Nach
speicher 50 der F i g. 3 enthält eine Verzögerungs- 45 Beendigung der Subroutine schiebt eine Rückgabeleitung
100, die eine durch die Gleichung D(Xn- 2) t oder Rückkehr-Instruktion den Inhalt des Operangegebene
Verzögerungszeit aufweist. denzählers in X-Sequenzregister zurück in den
Instruktionszähler in dem ff-Sequenzregister, und
Dabei sind die Hauptroutine wird fortgesetzt. Die Informationen
50 in der Verzögerungsleitung 100 treten durch die
D = Zeitverzögerung, UND-Schaltungen 110 bis 113 zu den zugeordneten
X = Anzahl der Register Verriegelungsschaltungen 120 bis 123 durch. Diese
' Verriegelungsschaltungen sind mit den betreffenden
η = Anzahl der Bits je Register, Zeitfortschalt-Verzögerungslogikkreisen 130 bis 133
_ . , , . 55 verbunden, von denen jeder drei Ausgangsleitungen
t - Z^itgeberpulsbreite. hat; die mk den verschiedenen Eingängen der ODER-Schaltungen
140 bis 143 verbunden sind. Die ODER-
Neue Daten werden in die Verzögerungsleitung 100 Schaltungen 140 bis 143 sind über die zugeordneten
unter Steuerung einer Eingang-Instruktion eingegeben UND-Schaltungen 150 bis 153 mit der ODER-
oder gespeichert, während Informationen aus der 60 Schaltung 101 verbunden, welche ihrerseits mit der
Verzögerungsleitung 100 durch eine Rückkehr- Verzögerungsleitung 100 verbunden ist. Die »Ad-
Instruktion entnommen werden. Während der Aus- diere-1 «-Schaltung 160 liegt zwischen der UND-
führung einer Eingang-Instruktion werden die Daten Schaltung 150 und der ODER-Schaltung 101. Die
über eine UND-Schaltung 64 (Fig. 1 und 2) und »Addiere-!«-Schaltung 161 liegt zwischen der UND-
über die ODER-Schaltung 101 (Fig. 3) zu der Ver- 65 Schaltung 151 und der ODER-Schaltung 101. Die
zögerungsleitung 100 geliefert. Nach einer bestimm- »Addiere-!«-Schaltungen 160 und 161 werden zur
ten Zeit tritt die Information aus der Verzögerungs- Erhöhung des Inhalts des Instruktionszählers und
leitung 100 aus und wird in diese so lange wieder des Operandenzählers verwendet. Die Steuerleitungen
19 20
162 und 163 der zugeordneten »Addiere-1 «-Schal- die UND-Schaltung 153 zur Zeit Z über die ODER-tungen
160 und 161 werden immer dann erregt, Schaltung 101 zur Verzögerungsleitung 100 überwenn
eine »Addiere-1 «-Operation durchgeführt wer- tragen. Die neue Information wurde über die UND-den
soll. ; Schaltung 64 und die ODER-Schaltung 101 zur Um zu erläutern, wie die Information eingegeben, 5 Zeit Y in die Verzögerungsleitung 100 eingegeben,
gespeichert und entnommen werden kann, erfolgt Es sei bemerkt, daß die neue Information vor der
eine weitere Beschreibung der Funktion des Keller- alten im Instruktionszähler gespeicherten Information
Speichers gemäß Fig. 3. Soll eine Eingang-Instruk- eingegeben wird. Es wird ferner darauf hingewiesen,
tion durchgeführt werden, gelangen die über die daß die alte, im Instruktionszähler gespeicherte
Leitung 40 gelieferten Daten durch die UND-Schal- 10 Information mittels der Verriegelungsschaltung 191
tung 64 zum F-Zeitpunkt zum Eingang der Ver- um eine zusätzliche Zeitperiode verzögert wurde,
zögerungsleitung und werden in der Verzögerungs- Es sei nun angenommen, daß zu diesem Zeitpunkt
leitung 100 gespeichert. Ein mit »Einführen« be- eine Rückkehr-Instruktion ausgeführt werden soll,
zeichnetes Steuersignal wird der Steuerleitung 162 Demgemäß findet eine Verschiebeoperation nach
dieser UND-Schaltung während der Eingang-Instruk- 15 oben statt. Die Information im Operandenzähler soll
tion zugeführt. Die Information wird in einem nach oben in den Instruktionszähler verschoben wer-Register
gespeichert, das den Instruktionszähler den. Die Information tritt von der Verzögerungsleidarstellt
und tritt aus der Verzögerungsleitung 100 tung 100 aus und gelangt durch die UND-Schaltung
unter der Steuerung eines IK-Impulses aus und ge- 111 zur Zeit X zu der Verriegelungsschaltung 121.
langt durch die UND-Schaltung 110 zur Verriege- 20 Die in dieser Verriegelungsschaltung enthaltene Inlungsschaltung
120. Sobald die Eingang-Instruktion formation wird zu der Zeitfortschalt-Verzögerungsbeendet
ist, werden die Steuerniveaus auf den mit logik-Schaltung 131 übertragen, die den gleichen Auf-
»Eingang« bezeichneten Leitungen verändert, um bau wie die Zeitfortschalt-Verzögerungslogik-Schalanzugeben,
daß diese Instruktion durchgeführt wurde. tung 130 aufweist. Die UND-Schaltung 195 in der
Nehmen wir an, daß der Inhalt des Instruktions- 25 Zeitfortschalt-Verzögerungslogik-Schaltung 130 wird
Zählers umlaufen soll, ohne verändert zu werden. durch die mit »Rückkehr« bezeichnete Leitung 196
Die Information von der Verriegelungsschaltung 120 erregt. Eine gleiche UND-Schaltung in der Zeitfortwird
über die UND-Schaltung 180 zur Verriegelungs- schalt-Verzögerungslogik-Schaltung 131 überträgt die
schaltung 181 übertragen. Dieser Übertrag findet Information von der Verriegelungsschaltung 121 zu
während der Zeit X statt. Es wird darauf hingewie- 30 der ODER-Schaltung 140. Diese Information wird
sen, daß die Steuerleitung 182 und 183 der UND- durch die UND-Schaltung zur Zeit Y durch die
Schaltung 180 durch X- und Rückkehrsignale erregt »Addiere-1«-Schaltung 160 und die ODER-Schaltung
sind. Die Information von der Verriegelungsschaltung 101 zu der Verzögerungsleitung 100 übertragen. Es
180 wird über die UND-Schaltung 185, die ODER- wird darauf hingewiesen, daß die in der VerSchaltung
140, die diese Information zum Zeit- 35 riegelungsschaltung 121 zur Zeit X gespeicherte Inpunkt
Y führende UND-Schaltung 150, die »Ad- formation in die Verzögerungsleitung 100 zur Zeit Y
diere-1 «-Schaltung 160 und die ODER-Schaltung 101 wieder eingegeben wird, wobei der Inhalt des Operanzu
der Verzögerungsleitung zwecks Wiedereinführung denzählers um eine Registrierstelle zeitlich nach vorn
übertragen. Die UND-Schaltung 185 wird durch die verschoben wird, wodurch eine Verschiebung nach
Information von der Verriegelungsschaltung 180 und 40 oben erfolgt. Es wurde somit gezeigt, daß der in
von der mit »Ein« bezeichneten Steuerleitung 186 F i g. 3 dargestellte, aus vier Registern bestehende
erregt. Die Eingabe-Spannung liegt vor und erregt serielle Kellerspeicher in der in Fig. 1 dargestellten
die UND-Schaltung 185, um die Information von Anordnung verwendet werden kann. Der Kellerspeider
Verriegelungsschaltung 181 zur ODER-Schaltung eher 50 nach Fi g. 3 kann auch als Kellerspeicher für
140 unter der Bedingung durchzulassen, daß die 45 die in F i g. 2 dargestellte Anordnung verwendet
Information in der Verzögerungsleitung 100 wieder werden.
umlaufen soll. Es sei darauf hingewiesen, daß, wann Der in F i g. 4 dargestellte Kellerspeicher ist der
immer der Inhalt des Instruktionszählers zur Durch- gleiche, wie der in F i g. 3 dargestellte, jedoch wurden
führung einer Instruktion verwendet wird, dieser im Falle der Fig. 4 die Zeitfortschalt-Verzögerungs-Inhalt
durch Erregung der Steuerklemmen 162 der 50 logik-Schaltungen 130 gemäß F i g. 3 der Einfachheit
»Adiere-1 «-Schaltung 160 erhöht wird. und der besseren Übersichtlichkeit halber weggelas-Die
Durchführung einer Eingang-Instruktion be- sen. Außerdem ist eine zusätzliche »Addiere-1 «-
wirkt eine Nach-unten-Verschiebung. Das heißt, der Schaltung 197 zwischen der UND-Schaltung 152 und
Inhalt des Instruktionszählers wird in den Operan- der ODER-Schaltung 101 vorgesehen,
denzähler übertragen, und neue Informationen wer- 55 Diese »Addiere-1 «-Schaltung ist mit einer Steuerden
in den Instruktionszähler eingegeben. Der Inhalt leitung 198 verbunden, die erregt wird, wenn der
des Instruktionszählers von der Verzögerungsleitung Inhalt des Operandenzählers 2 (O. Z. 2) erhöht wer-101
geht durch die UND-Schaltung 110 zur Zeit W den soll. Die Ausgänge der Verriegelungsschaltungen
und wird in der Verriegelungsschaltung 120 gespei- 120 bis 123 in Fig. 4 tragen die Bezeichnungen Inchert.
Die Information von der Verriegelungsschal- 6° struktionszähler, Operandenzähler 1, Operandenzähtung
120 wird über die UND-Schaltung 180 zur ler 2 bzw. Register R 1. Die Arbeitsweise des Keller-Zeit
X zu der Verriegelungsschaltung 181 übertragen Speichers 50 gemäß Fig. 4 ist gleich der Arbeitsund
von dort über die UND-Schaltung 190 zur Zeit Y weise des in Fig. 4 dargestellten Kellerspeichers, jezur
Verriegelungsschaltung 191. Die Rückkehr- und doch mit der Ausnahme, daß der Inhalt des Operan-Eingangpotentiale
werden zu diesem Zeitpunkt wir- 65 denzählers 2 der in Fig. 4 dargestellten Anordnung
sam. Der Ausgang der Verriegelungsschaltung 191 ist mit Hilfe der »Addiere-1«-Schaltung 197 erhöht werüber
die ODER-Schaltung 143 mit der UND-Schal- den kann, tung 153 verbunden. Diese Information wird durch In Fig. 5 wird eine andere Ausführungsform des
21 22
Erfindungsgedankens dargestellt, das unter Verwen- oder eine Operanden-Adresse enthalten, die durch
dung eines Kellerspeichers eine andere Instruktions- die Entschlüsselung des ersten Feldes verarbeitet
form verarbeitet. Ein Speicher 200 enthält Instruk- werden soll. Die Verteilung von Operationen oder
tionen und Daten. Der Speicher kann mittels -eines Operanden-Adressen in den verschiedenen Feldern
Speicheradreß-Registers 201 selektiv adressiert? wer- 5 der in F i g. 5 a angegebenen Form eines Instruktionsden,
wobei die ausgelesene Information einem Spei- wortes wird durch die Art des durchzuführenden
cherpuffer-Register 202 zugeführt wird. Vom Spei- Programms bestimmt. Jedes Feld des in F i g. 5 a
cherpuffer-Register 202 gelangt die Information zu dargestellten Instruktionswortes enthält einen Opeeinem
Feld-Register 203, wenn es sich um Informa- rations-Code der in F i g. 1 b dargestellten Form. Das
tionen in Form von Instruktionen handelt. Enthält das io heißt, der Operationscode enthält einen Teil, der eine
Speicherpuffer-Register 202 Operanden, so können Funktion angibt, und einen anderen Teil, der eine
diese zur Recheneinheit 204 übertragen werden. Das Markierung angibt. Der Funktionsteil gibt an, daß
Feld-Register 203 ist in eine Mehrzahl von Feldern die Operation eine Addier-, Subtrahier- oder eine anunterteilt,
im vorliegenden Falle sind willkürlich fünf dere Art von Funktion ist. Handelt es sich um einen
Felder vorgesehen. Ein Instruktionswort hat die in 15 Operanden, so gibt der Markierungsteil an, ob die
der F i g. 5 a dargestellte Form. Jedes Feld kann Operanden-Adresse im Speicher aus einem Feld in
einen Operationscode einer Instruktion oder eine dem Feld des Registers 203, aus dem Operanden-Operandenadresse
enthalten. Feld 1 einer Anfangs- zähler 1 oder dem Operandenzähler 2 entnommen
Instruktion enthält stets einen Operationscode. Die werden soll.
zum Feld-Register 203 übertragene Anfangs-Instruk- 20 Der Entschlüßler 210 hat für Programmsteuertion
wird um ein Feld nach rechts verschoben, wäh- zwecke zahlreiche Ausgangsleitungen, die innerhalb
rend der Inhalt des Feldes 1 in das Operations-Re- der gesamten Rechenanordnung zur Durchführung
gister 205 verschoben wird. Der Inhalt dieses Re- einer bestimmten Instruktion wirksam werden. Die
gisters wird in die Entschlüßler- und Zeitgeberschal- meisten dieser Leitungen wurden in der Darstellung
tung 210 übertragen, die im folgenden der Einfach- 25 zur Erhöhung der Übersichtlichkeit weggelassen. Im
heit halber als Entschlüßler 210 bezeichnet wird, und Zusammenhang mit dem Entschlüßler 210 sind die
die Einrichtungen zur Entschlüßlung des Operations- Ausgangsleitungen 211 bis 218 dargestellt, die im
codes und zur Lieferung von Signalen an die ver- wesentlichen zur Sicherstellung der nächsten Instrukschiedenen
Teile der datenverarbeitenden Anordnung tion oder des nächsten Operanden dienen. Soll der
aufweist,-um jeweils eine bestimmte Operation zu 30 Operand von einer durch das Feld-Register 203 geveranlassen.
Wurde eine Instruktion durchgeführt, so lieferten Adresse erhalten werden, so wird die Leiwird
der Inhalt des Feld-Registers 203 nach rechts tung 211 erregt, um die UND-Schaltung 231 zu erverschoben
und der nächste in das Operations-Re- regen und die Adressensignale von den am meisten
gister 205 eingeführte Operationscode im Entschluß- rechts gelegenen Feld des Feld-Registers 203 durch
ler 210 entschlüsselt, um die nächste Operation 35 die UND-Schaltung 231 und die ODER-Schaltung
durchzuführen. 235 zum Speicheradreß-Register 201 zu übertragen. Im vorliegenden Ausführungsbeispiel weist das Soll die nächste Operandenadresse aus dem Operan-Feld-Register
203 nur fünf Felder auf, es ist aber denzähler 1 des Kellerspeichers 270 entnommen wermöglich,
daß die Anzahl der Felder in beliebiger den, so wird die Leitung 212 des Entschlüßlers 210
Weise vergrößert oder verkleinert werden kann, 40 erregt, um die UND-Schaltung 233 zu erregen, um
ebenso die Anzahl der Bits in einem bestimmten Feld, den Inhalt des Operandenzählers 1 über die UND-je
nach der Anzahl der anzugebenden Operationen Schaltung 233 und die ODER-Schaltung 235 zum
und der Größe der Register im Speicher 200. Jedes Speicheradreß-Register 201 zu übertragen. Soll die
Feld des Registers 203 kann einen Operations-Code nächste Operandenadresse aus dem Operandenzäh-
oder eine Operanden-Adresse enthalten. Die Form 45 ler 2 im Kellerspeicher 270 entnommen werden, so
der in Fig. 5a angegebenen Instruktion hat den wird die Leitung213 des Dekoders210 erregt, um
Zweck, die Anzahl der Zugriffe zum Speicher 200 die UND-Schaltung 234 zu erregen und den Inhalt
zur Bereitstellung der Instruktionen für ein bestimm- des Operandenzählers 2 über die UND-Schaltung 234
tes Programm herabzusetzen, so daß wertvolle Re- und die ODER-Schaltung 235 zu dem Speicheradreßchenzeit
gespart wird. Da der Markierungsteil eines 50 register 201 zu übertragen. Sooft der Inhalt des
Operationscodes angeben kann, daß Operanden von Operandenzählers 1 oder der Inhalt des Operandendurch
den Operandenzähler 1 oder Operandenzäh- Zählers 2 zur Adressierung des Speichers 200 verwenler
2 angegebenen Adressen entnommen werden sol- det wird, wird der Inhalt des ausgewählten Operanlen,
kann die Speicherung von Operanden-Adressen denzählers um den Wert 1 erhöht. Wird ein serieller
in dem angegebenen Instruktionswort herabgesetzt 55 Kellerspeicher verwendet, so kann die Erhöhung
werden, so daß Speicherplatz im Speicher 200 gespart stattfinden, nachdem der Inhalt des ausgewählten
werden kann, der normalerweise für die Speicherung Operandenzählers aus der Verzögerungsleitung ausvon
Operanden-Adressen in Instruktionen erf order- gelesen worden ist. Sie hat jedoch, wie aus F i g. 3 zu
lieh sein würde. Die Form der in F i g. 5 a dargestell- entnehmen, vor dem Wiedereinlesen zu erfolgen. Auf
ten Instruktion weist fünf Felder 1 bis 5 auf, von de- 60 diese Weise wird der Inhalt des ausgewählten Operannen
jedes eine Instruktion oder eine Operanden- denzählers sofort nach deren Verwendung erhöht und
Adresse darstellen kann. Beispielsweise kann das für seine nächste Verwendung bereit gemacht,
erste Feld einer Instruktion eine durchzuführende Sooft eine Eingang-Instruktion im Entschlüßler
Operation darstellen und im Entschlüßler 210 ent- 210 entschlüsselt wird, wird die Ausgangsleitung 214
schlüsselt werden, dessen Ausgänge zur Durchfüh- 65 erregt, um den Kellerspeicher 270 zu betätigen. Die
rung der angegebenen Information innerhalb der UND-Schaltung 240 wird erregt, um den Inhalt des
gesamten Rechenanordnung verwendet werden. Das am weitesten rechts gelegenen Feldes des FeId-Rezweite
Feld kann eine zweite Instruktion enthalten gisters 203 zum Instruktionszähler des Kellerspeichers
270 zu übertragen. Sooft der Entschlüßler 210 eine Rückkehr-Instruktion· entschlüsselt, wird die Ausgangsleitung
215 erregt, um den Kellerspeicher 270 zu betätigen und eine Verschiebung des Inhaltes nach
oben zu bewirken. Ist die Verschiebung nach oben beendet, so wird die Leitung 216 des Enschlüßlers
210 auf eine Spannung gebracht, die durch die
ODER-Schaltung 271 hindurchgelangt und die UND-Schaltung 232 betätigt, um den neuen Inhalt des Instruktionszählers
über die ODER-Schaltung 235 zum Speicheradreß-Register 201 zu übertragen. Die Spannung
auf der Leitung 216 bewirkt au'ch, daß der Inhalt des Instruktionszählers um 1 erhöht wird, nachdem
er zum Speicheradreß-Register übertragen wurde.
Tafel V
LZ. | Feld 5 | Feld 4 | Feld 3 | Feld 2 | ' Feld 1 | o.z.x | O. Z. 2 | ->202 |
200 | Mult. | Pl. V | Sub. | Pl. U | Ent. | |||
201 | Eing. |
Pl. T | Add. | PI. S | ||||
500--_ | ^^ | 700 | Eing. | Add. (Tl) |
SuK " (Tl) |
203
700
Rück.
Add.
(T 2)
(T 2)
502
503
503
503
503
'204
205
206
-206
206
-206
Add.
(Tl)
(Tl)
207
-208
-208
208"
Da jedes Instruktionswort vom Speicher-Puffer-Register 202 zum Feld-Register 203 übertragen wird,
wird es vorübergehend in diesem Register gespeichert. Dann wird es um ein Feld nach rechts verschoben,
und die erste Entschlüssel-Operation findet statt. Ist eine Reihe von Operationen in benachbarten
Feldern untergebracht, so wird jedes dieser Felder nacheinander in das Operations-Register verschoben,
entschlüsselt und durchgeführt. Folgt einer bestimmten Operation eine Operanden-Adresse im benachbarten
Feld, so ist es erforderlich, den Inhalt des Feld-Registers für den nächsten Operations-Code um
zwei Felder nach rechts zu verschieben. Folgen einer gegebenen Operation Operanden-Adressen in zwei
benachbarten Feldern, ist es erforderlich, den Inhalt des Feld-Registers um drei Felder zu verschieben,
um den nächsten Operations-Code in das Operations-Register 205 zu bringen. Für diesen Zweck ist ein
Feld-Register-Verschiebungszähler 280 vorgesehen, um den Inhalt des Feld-Registers nach der Durchführung
jedes einzelnen Operations-Codes um die erforderliche Anzahl von Feldern zu verschieben. Die
Ausgabeleitungen 217 und 218 des Entschlüßlers 210 geben an, wie viele Verschiebungen durchgeführt
werden müssen, um den nächsten Operationscode aus dem Feld-Register 203 in das Operations-Register
205 zu übertragen. Die Signale der Leitungen 217 und 218 stellen einen Dual-Code dar, und die Anzahl
der dargestellten Verschiebungen geht von 1 bis 4. Sollen beispielsweise zwei Felder verschoben werden,
um den nächsten Operations-Code zu erhalten, wird dem Feld-Register-Verschiebungszähler 280 der
Wert 2 in dualer Form durch die Signale der Leitungen 217 und 218 zugeführt. Nachdem die vorliegende
Instruktion ausgeführt wurde, wird das Feld-Register 203 zweimal verschoben werden, um den
nächsten Operations-Code in das Operations-Register205
einzugeben, und der Inhalt des Feld-Register-Verschiebungszählers 280 wird gleich Null. Sooft
der Feld-Register-Verschiebungszähler 280 eine
Verschiebung im Feld-Register 203 durchführt, wird der Inhalt des Feldzählers 281 erhöht. Der Feldzähler
281 wird immer dann auf Null gestellt, wenn eine neue Instruktion zum Speicher-Puffer-Rcgistcr 203
übertragen wird. Im wesentlichen führt der Feld-Zähler eine Aufstellung über die Anzahl der gcmach-
ten Verschiebung und liefert nach fünf durchgeführten
Verschiebungen ein Signal über die ODER-Schaltung 231 zur UND-Schaltung 232, das bewirkt, daß
der Inhalt des Instruktionszählers über die UND-Schaltung 232 und die ODER-Schaltung 235 zum
Speicheradreß-Register 201 übertragen wird. Das nächste Instruktionswort wird von der durch das
Speicheradreß-Register 201 angegebene Adresse im Speicher 200 entnommen und über das Speicher-Puffer-Register
202 zum Feld-Register 203 zwecks Weiterführung des Programms übertragen. In der Tafel V
wird ein Programm wiedergegeben, das eine große Anzahl von Instruktionen mit relativ wenigen Speicherzugriffen
durchführen kann. Aus der gleichen Aufstellung ist auch zu ersehen, wie eine Reihe von
Instruktionen mit Hilfe der Operandenzähler 1 und 2 durchgeführt werden kann, wobei Speicherplatz gespart
wird, der normalerweise für die Speicherung von Operanden in im Speicher untergebrachten Instruktionen
vorgesehen ist. Im wesentlichen wird der zur Aufnahme eines gewissen Programms im Speicher
erforderliche Platz vermindert, so daß zusätzlicher Platz für Operanden frei wird.
Das in der-Tafel V dargestellte Programm ist bis
zur in der Adresse 200 gespeicherten Instruktion fortgeschritten. Der Wert 200 befindet sich im Instruktionszähler
des Kellerspeichers 270 und wird über die UND-Schaltung 232 und die ODER-Schaltung
235 zum Speicheradreß-Register 201 übertragen. Das Tnstruktionswort in dieser Speicherstelle wird vom
Speicher 200 ausgelesen und über das Speicher-Puffer-Register 202 zum Feld-Register 203 übertragen.
Der Inhalt des Feld-Registers 203 wird um ein Feld nach rechts übertragen, und der Operations-Code im
Feld 1 gelangt in das Operations-Register 205. Es wird im Fntschlüßler 210 als Entnahme- und Addierinstruktion
entschlüsselt. Der Markierungsteil gibt an, daß die Operandenadresse im Feld 2 enthalten
ist. Der Inhalt des Feldes 2 wird in das am weitesten rechts befindliche Feld des Feld-Registers 203 eingegeben
und über die UND-Schaltung 231 und die ODER-Schaltung 235 zum Speicheradreß-Register
201 übertragen, da der Ausgang der Leitung 211 vom EntschlüßleV210 die UND-Schaltung 231 erregt. Die
Adresse des Operanden wird in der Tafel V willkürlich mit U bezeichnet und wird vom Speicher 200
ausgelesen und über das Speicher-PufTer-Register 202
zur Recheneinheit 204 übertragen, in der die Operation stattfindet. Die Leitungen 217 und 218 des Entschlüßlers
210 führen Signale, die den Wert 2 zum Feld-Register-Verschiebungszähler 280 übertragen.
Wenn die Entnahme- und Addieroperation beendet wurde, wird der Feld-Register-Verschiebungszähler
betätigt, um den Inhalt des Feld-Registers um zwei Felder nach rechts zu verschieben, wodurch der Inhalt
des dritten Feldes in das Operationsregister 205 eingegeben wird. Der Inhalt des Feld-Register-Verschiebunpszählers
280 wird nach der Durchführung von zwei Verschiebungen gleich Null. Der Feld-Zähler
281, der nach der Eingangs-Verschiebungs-Operation den Wert 1 enthält, wird um den Wert 2 erhöht,
wenn der Feld-Register-Verschiebungszähler 280 zwei Verschiebungen durchführt. Der Feld-Zähler
281 enthält dann den Wert 3. Der Entschlüßler 210 entschlüsselt die nächste Instruktion als eine Subtrahier-Operation,
und der Markierungsteil gibt an, daß die Operandenadresse aus dem vierten Feld des Feld-Registers
203 zu entnehmen ist. Daher wird die Leitung 211 durch den Entschlüßler 210 erregt, und der
Inhalt des Feldes 4 wird von der am weitesten rechts liegenden Stelle des Registers 203 über die UND-Schaltung
231 und die ODER-Schaltung 235 zum Speicheradreß-Register 201 übertragen. Die Adresse
des Operanden wird in der Tafel V willkürlich mit V bezeichnet. Dieser Operand wird vom Speicher 200
über das Speicher-Puffer-Register 202 zur Recheneinheit 204 übertragen, wo die Subtrahier-Operation
ίο stattfindet. Dem Feld-Register-Verschiebungszähler
280 wird der Wert 2 durch die Signale der Leitungen 217 und 218 dem Entschlüßler 210 zugeführt. Sobald
die Subtrahier-Operation beendet ist, verschiebt der Feld-Register-Verschiebungszähler 280 den Inhalt
des Feld-Registers 203 um zwei Felder nach rechts, wobei das Feld 5 des vorliegenden Instruktionswortes
in das Operations-Register 205 übertragen wird. Als Ergebnis der beiden Verschiebungen
wird der Inhalt des Feldzählers 281 vom Wert 3 auf den Wert 5 erhöht, was angibt, daß der Feldzähler
das nächste Instruktionswort anfordern soll. Daher liefert der Feldzähler 281 ein Ausgangssignal zur ■
ODER-Schaltung 271, wodurch die UND-Schaltung 232 erregt wird, um den Inhalt des Instruktionszählers
durch die ODER-Schaltung 235 zum Speicheradreß-Register 201 zu übertragen. Der Wert 201 wird
vom Instruktionszähler zum Speicheradreß-Register übertragen. Der Inhalt des Instruktionszählers wird
um den Wert 1 auf den Wert 202 erhöht, nachdem der Wert 201 zum Speicheradreß-Register übertragen
wurde. Das nächste Instruktionswort wird vom Speicherplatz 201 des Speichers 200 entnommen und
über das Speicheradreß-Register 202 zum Feld-Register 203 übertragen. Die Instruktion im Operations-Register
205 wird im Entschlüßler 210 als Multiplizier-Instruktion entschlüsselt, die besagt, daß der Inhalt
des Feldes 1 als Operandenadresse verwendet werden soll. Daher erregt der Entschlüßler 210 die
Ausgangsleitung 211 und überträgt den Inhalt des am weitesten rechts gelegenen Feldes des Feld-Registers
203 über die UND-Schaltung 231 und die ODFR-Schaltung 235 zum Speicheradreß-Register 201. Die
Operanden-Adresse wird in der Tafel V willkürlich mit S bezeichnet. Dieser Operand wird vom Speicher
200 über das Speicheradreß-Register 202 zur Recheneinheit 204 übertragen, wo die Multiplizier-Operation
stattfindet.
Im vorhergehenden wurde beschrieben, wie die Anordnung gemäß F i g. 5 eine Gruppe von Instruktionen
ausführt. Da die genaue Operation der verschiedenen Schaltkreise ohne weiteres aus der vorhergehenden
Beschreibung hervorgeht, wird von einem Eingehen auf Einzelheiten abgesehen. Die folgenden
Ausführungen beziehen sich daher im wesentlichen auf das Programm.
Die nächste Instruktion befindet sich im Feld 2. Sie ist eine Addier-Instruktion, deren zueeordneter
Operand sich unter der Adresse T, wie im Feld 3 anpepeben, befindet. Die nächste Instruktion gelangt in
Feld 4 und wird als eine Eingang-Instruktion entschlüsselt, die eine Verzweigung zu einer Unterroutine
bewirkt. Der Inhalt des Feldes 5 pibt an, daß die Verzweigung für das nächste Instruktionswort zum
Speicherplatz 5 erfolgen soll.
Das Tnstruktionswort unter der Aresse 500 im Soeicher200
wird zumFeld-Repister 203 derFig. 5 übertrapen,
und der Inhalt des Feldes 1 wird als eine Subtraktions-Instruktion
entschlüsselt. In Tafel V trägt
die Subtrahier-Instruktion im Feld 1 die Bezeichnung
(Tl) und bedeutet Markierungs-Operanden-Zähler 1. Dies bedeutete daß der Markierungsteil des
Operations-Codes den .Operandenzähler 1 auswählt und der Inhalt des Operandenzählers 1 zur Erlangung
des nächsten Operanden dient. Daher wird der Operand für die Subtrahier-Instruktion von einer
Adresse entnommen, die durch den Operandenzähler 1 im Kellerspeicher 270 angegeben wird. Auf diese
Weise wird der Operand von der Aresse 202 im Speicher entnommen und der Inhalt des Operandenzählers
1 während des Vorganges auf den Wert 203 erhöht. Die nächste Instruktion ist eine Addier-Instruktion,
wobei der zugehörige Operand von einer Speicheradresse entnommen wird, die durch den
Operandenzähler 1 angegeben wird. Der Operand wird daher von der Aresse 203 im Speicher entnommen
und der Inhalt des Operandenzählers 1 auf den Wert 204 erhöht. Die nächste Instruktion wird als
Eingabe-Instruktion entschlüsselt, wodurch eine Verzweigung von der ersten zur zweiten Unterroutine bewirkt
wird. Daher erfolgt im Kellerspeicher 270 der Fig. 5 eine Verschiebung des Inhalts nach unten.
Der Wert 204 im Operandenzähler I wird nach unten in den Operandenzähler 2 verschoben. Der Wert 501
im Instruktionszähler wird nach unten in den Operandenzähler 1 verschoben. Der Wert 700 aus Feld 4 des
Instruktionswortes wird in den Instruktionszähler verschoben.
Die nächste Instruktion wird aus dem Speicherplatz 700 des Speichers 200 der Fig. 5 entnommen.
Die erste Instruktion ist eine Addier-Instruktion, die angibt, daß die Operandenadresse aus dem Operandenzähler
2 zu entnehmen ist. Daher wird der Wert 200 im Operandenzähler zur Adressierung des Speichers
200 für den nächsten Operanden verwendet, und der Wert 204 im Operandenzähler 2 wird auf
den Wert 205 erhöht. Die nächste Instruktion ist eine Subtrahier-Instruktion, die angibt, daß die nächste
Operandenadresse aus dem Operandenzähler 1 zu entnehmen ist. Daher wird der nächste Operand von
der Adresse 501 im Speicher 200 entnommen und der Wert 501 im Operandenzähler 1 auf den Wert 501 erhöht.
Die nächste Instruktion ist eine Addier-Instruktion, die angibt, daß die Operandenadresse aus dem
Operandenzähler 2 zu entnehmen ist. Daher wird der nächste Operand von der Aresse 205 im Speicher 200
entnommen und der Wert 205 im Operandenzähler 2 auf den Wert 206 erhöht. Die nächste Instruktion im
Feld 4 ist eine Subtrahier-Instruktion, und die entsprechende Adresse wird aus dem Operandenzähler
1 entnommen. Daher wird der nächste Operand von der Adresse 502 des Speichers 200 in F i g. 5 entnommen,
und der Inhalt des Operandenzählers 1 wird vom Wert 502 auf den Wert 503 erhöht. Die
nächste in Feld 5 enthaltene Instruktion ist eine Rückkehr-Instruktion, und der Inhalt des Kellerspeichers
270 in Fig. 5 wird nach oben verschoben. Daher wird der Inhalt des Operandenzählers 1 zum
Instruktionszähler verschoben und der Inhalt des Operandenzählers 2 zum Operandenzähler 1 verschoben.
Die nächste Instruktion wird von der Adresse
ίο 503 des Speichers 200 in Fig. 5 entnommen, da dieser
Wert im Instruktionszähler enthalten ist. Feld 1 dieser Instruktion wird als eine Addier-Instruktion
entschlüsselt und gibt an, daß die nächste Operanden-Adresse aus dem Operandenzähler 1 zu entnehmen
ist. Der nächste Operand wird daher von der Adresse 206 entnommen ud der Operand des Operandenzählers
auf den Wert 207 erhöht. Die nächste Instruktion im Feld 2 ist eine Addier-Instruktion, die angibt, daß
der Operandenzähler 1 zur Beschaffung des nächsten Operanden aus dem Speicher 200 herangezogen werden
soll. Der nächste Operand wird daher von der Adresse 207 des Speichers 200 entnommen und der
Inhalt des Operandenzählers 1 vom Wert 207 auf den Wert 208 erhöht. Die nächste Instruktion in Feld 3
ist eine Speicherinstruktion, und die Speicherung findet im Speicherplatz W, wie durch das Feld 4 angegeben,
statt. Die nächste Instruktion ist eine Rückkehr-Instruktion. Diese bewirkt, daß die Information
im Kellerspeicher 270 nach oben verschoben wird.
Daher wird der Wert 201 aus dem Operandenzähler 1 zum Instruktionszähler übertragen und das nächste
Instruktionswort aus dem Speicherplatz 208 des Speichers 200 in Fig. 5 entnommen. Das Programm
wird von diesem Punkt aus fortgesetzt.
Aus der Beschreibung der Funktion der in Fig. 5 dargestellten Anordnung geht hervor, in welcher
Weise Speicherplatz eingespart werden kann, indem man anstatt der Verwendung von Speicherplatz im
Speicher 200 die Operandenzähler 1 und 2 zur Bereitstellung von Operandenadressen heranzieht. Auf
diese Weise wird zusätzlicher Platz für Operanden im Speicher 200 frei gemacht. Aus der Tafel V ist ersichtlich,
daß 17 Instruktionen mit nur 5 Zugriffen zum Speicher 200 durchgeführt werden können. Dies
bedeutet im Vergleich zu den bekannten Anordnungen, bei denen zur Bereitstellung jeder Instruktion ein
Zugriff zum Speicher erforderlich ist, eine Einsparung von 12 Speicherzugriffen. In dem Ausmaß, wie die
Anzahl der Speicherzugriffe verringert wird, wird auch die Zeit zur Durchführung eines bestimmten
Programms verringert, wodurch sich insgesamt eine Einsparung an Rechenzeit ergibt.
Hierzu 2 Blatt Zeichnungen
Claims (9)
1. Datenverarbeitungsanlage mit Kellerspeichereinrichtungen zur Speicherung von Operanden
und Instruktionen für verschachtelte Rechenoperationen, dadurch gekennzeichnet, daß in einer speicherprogrammierten Datenverarbeitungsanlage
ein Kellerspeicher (50, 270) zur Speicherung von Adressen vorgesehen ist,
wobei mindestens dessen zwei oberste Register (7. Z., O. Z.) mit durch einen Instruktionsentschlüßler
(26) gesteuerten Ausgängen (52, 60) versehen sind und die gespeicherten Adressen
zur Adressierung des Hauptspeichers (10) zum Hauptspeicheradreßregister (46) übertragen können
und wobei bei Programmverzweigungen der Inhalt des Kellerspeichers um ein Register nach
unten verschoben wird und die erste Adresse des Verzweigungsprogramms im obersten Register
(/. Z.) des Kellerspeichers gespeichert wird und bei Programmrückkehr der Inhalt des Kellerspeichers
wieder um ein Register nach oben verschoben wird.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die obersten Register
als Instruktionszähler (/. Z.) und Operandenzähler (O. Z.) ausgebildet sind und Inkrementierungsmittel
enthalten, welche die in diesen Registern stehenden Adressen um eins erhöhen,
können.
3. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß Instruktionen statt
einer Operandenadresse (Fig. 1 a) nur eine Marke (Fig. 1 b) enthalten, welche angibt, daß
die im Operandenzähler (O. Z.) enthaltene Adresse dem Hauptspeicheradreßregister (46) zugeführt
werden soll.
4. Datenverarbeitungsanlage nach Anspruch 3, dadurch gekennzeichnet, daß mehrere mit dem
Hauptspeicheradreßregister (46) verbundene Operandenzähler (O. Z.) (F i g. 2, 5) vorgesehen sind
und eine Marke der jeweiligen Instruktion angibt, welcher Operandenzähler zur Adressierung des
Hauptspeichers verwendet werden soll (Fig. Ib und 5 a).
5. Datenverarbeitungsanlage nach Anspruch 4, mit einem aus mehreren Feldern bestehenden
Instruktionsformat (F i g. 5 a), dadurch gekennzeichnet, daß jedes Feld Funktionsangaben mit
einer Marke nach Anspruch 4 oder Operandenadressen enthalten kann.
6. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Adressen der
jeweils vor der Programmunterbrechung ausgeführten letzten Instruktionen von verschachtelten
Unterprogrammen in das oberste Register (7. Z.) des Kellerspeichers (50, 270) eingespeichert
werden.
7. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die einzelnen Register
des Kellerspeichers (50, 270) aus Verzögerungsleitungen mit Schaltungen zur phasengleichen
oder phasenverschobenen Wiedereingabe der Information bestehen (Fig. 3, 4).
8. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die obersten Register
(7. Z., O. Z.) zerstörungsfrei ausgelesen werden können.
9. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Aufwärts- oder
Abwärtsverschiebung im Kellerspeicher (50, 270) vom Instruktionsentschlüßler (26, 210) gesteuert
wird, wenn eine Programmverzweigung oder Programmrückkehr vorliegt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US400015A US3396371A (en) | 1964-09-29 | 1964-09-29 | Controller for data processing system |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1499224A1 DE1499224A1 (de) | 1970-04-02 |
DE1499224B2 true DE1499224B2 (de) | 1973-08-16 |
DE1499224C3 DE1499224C3 (de) | 1974-03-28 |
Family
ID=23581873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1499224A Expired DE1499224C3 (de) | 1964-09-29 | 1965-09-28 | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen |
Country Status (3)
Country | Link |
---|---|
US (1) | US3396371A (de) |
DE (1) | DE1499224C3 (de) |
GB (1) | GB1049984A (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725868A (en) * | 1970-10-19 | 1973-04-03 | Burroughs Corp | Small reconfigurable processor for a variety of data processing applications |
JPS5161749A (en) * | 1974-11-26 | 1976-05-28 | Fujitsu Ltd | Deetashorisochino shoriringuseigyohoshiki |
DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
US4176394A (en) * | 1977-06-13 | 1979-11-27 | Sperry Rand Corporation | Apparatus for maintaining a history of the most recently executed instructions in a digital computer |
US4504903A (en) * | 1979-07-19 | 1985-03-12 | Digital Equipment Corporation | Central processor with means for suspending instruction operations |
US4315313A (en) * | 1979-12-27 | 1982-02-09 | Ncr Corporation | Diagnostic circuitry in a data processor |
US4394729A (en) * | 1980-10-16 | 1983-07-19 | Ncr Corporation | Jump return stack |
CH649382A5 (de) * | 1981-02-03 | 1985-05-15 | Maag Zahnraeder & Maschinen Ag | Schaltung zum entnehmen von messwerten aus einem inkrementellen lagemesssystem. |
US4899307A (en) * | 1987-04-10 | 1990-02-06 | Tandem Computers Incorporated | Stack with unary encoded stack pointer |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3058658A (en) * | 1957-12-16 | 1962-10-16 | Electronique Soc Nouv | Control unit for digital computing systems |
US3191155A (en) * | 1960-08-22 | 1965-06-22 | Ibm | Logical circuits and memory |
US3200379A (en) * | 1961-01-23 | 1965-08-10 | Burroughs Corp | Digital computer |
US3153225A (en) * | 1961-04-10 | 1964-10-13 | Burroughs Corp | Data processor with improved subroutine control |
NL282320A (de) * | 1961-08-22 |
-
1964
- 1964-09-29 US US400015A patent/US3396371A/en not_active Expired - Lifetime
-
1965
- 1965-08-24 GB GB36419/65A patent/GB1049984A/en not_active Expired
- 1965-09-28 DE DE1499224A patent/DE1499224C3/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE1499224A1 (de) | 1970-04-02 |
GB1049984A (en) | 1966-11-30 |
US3396371A (en) | 1968-08-06 |
DE1499224C3 (de) | 1974-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3119741C2 (de) | Datenverarbeitungseinheit | |
DE3424962C2 (de) | ||
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE1178623C2 (de) | Programmgesteuerte datenverarbeitende Maschine | |
DE1282337B (de) | Programmgesteuerte elektronische Rechenanlage | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
DE1499193B2 (de) | Speicher-adressierschaltung | |
DE2234867A1 (de) | Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme | |
DE1303071B (de) | ||
DE1915818A1 (de) | Elektronisches Datenverarbeitungssystem | |
DE1285220B (de) | Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE1949916B2 (de) | Verfahren zum betrieb einer programmgesteuerten datenverarbeitungsanlage und anordnung zur durchfuehrung des verfahrens | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE2704560C2 (de) | Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen | |
DE1957600C3 (de) | ||
DE2220329C3 (de) | Schaltungsanordnung zum Umsetzen einer in Gleitkomma-Darstellung ausgedrückten Zahl in eine Festkomma-Darstellung bei elektronischen Rechnern | |
DE1222289B (de) | Datenverarbeitungseinrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
SH | Request for examination between 03.10.1968 and 22.04.1971 | ||
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 | ||
EHJ | Ceased/non-payment of the annual fee |