DE1957600C3 - - Google Patents
Info
- Publication number
- DE1957600C3 DE1957600C3 DE1957600A DE1957600A DE1957600C3 DE 1957600 C3 DE1957600 C3 DE 1957600C3 DE 1957600 A DE1957600 A DE 1957600A DE 1957600 A DE1957600 A DE 1957600A DE 1957600 C3 DE1957600 C3 DE 1957600C3
- Authority
- DE
- Germany
- Prior art keywords
- command
- register
- jump
- instruction
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/02—Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/04—Digital computers in general; Data processing equipment in general programmed simultaneously with the introduction of data to be processed, e.g. on the same record carrier
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- 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
Description
Die Erfindung betrifft einen elektronischen Rechner gemäß dem Gattungsbegriff des Patentanspruchs.
Die Erfindung bezieht sich insbesondere auf das Gebiet der Kleinrechner, die auch als »Tischrechner«
bekannt sind. Bei dioser Klasse von Rechnern sind viele lemühungen unternommen worden, um die Maschinen
■uf einfachere Weise als bisher zu programmieren.
Es sind viele Einrichtungen zum Steuern der Rückkehr auf den Hauptprogramn.-Ausgangspunkt am
Ende des Unterprogramms vorgeschlagen worden. Bei cb.er ersten bekannten Vorrichtung ist zum Speichern
der Wiedereintrittsadresse, abgesehen von dem üblichen Programmzähler, ein Hilfsregister erforderlich,
wodurch die Adresse zurückbehalten wird, ehe sie vom Hauptprogramm auf das Unterprogramm springt
(DE-AS 10 84 952). Das heißt: Wenn auf das Unterprof ramm gesprungen wird, muß die Wiedereintrittsadresse
vom Programmzähler auf das Hilfsregister übertragen Werden, um die Wiedereintrittsadresse zurückzubehalten,
und wenn das Unterprogramm endet, muß die Rückwärtsübertragung ausgeführt werden. Diese Vorrichtung
ist von Nachteil, weil der Programmierer die Bestimmungs- und die Rückkehradressen zu Fehlerbeseitigungszwecken
beachten muß: Tatsächlich müssen diese Adressen jedesmal, wenn das Programm durch
Einfügen oder Löschen von Befehlen geändert wird, verändert werden.
Bei einer zweiten bekannten Vorrichtung ist ein Hilfsregister vorgesehen, um ein Markierungsbit in
einer Stelle zu speichern, die der Stelle des Widereintrittssprungbefehls
in das Hauptprogramm entspricht
ίο (GB-PS 11 03 385). Diese Vorrichtung erfordert daher,
daß ein Maschinenregister zum Speichern der Adresse des Wiedereintrittssprungbefehls während der Ausführung
eines Unterprogramms reserviert bleibt, was die Anpassungsfähigkeit der Maschine beschränkt
Bei einer dritten Vorrichtung muß die Adresse der Wiedereintrittsstelle in das Hauptprogramm bei dem
Endbefehl einer Unterroutine erstellt oder geschrieben werden (Biermann: »Vorträge über Rechenanlagen«,
Max Planck Institut für Physik, 1953, Seiten 109 bis 114).
Diese drei Vorrichtungen sind wegen der Schreibund der Leseoperation im Hilfsregister oder dem
Programmspeicher sowohl bezüglich der Wirtschaftlichkeit der Hardware als auch hinsichtlich der
Arbeitsgeschwindigkeit von Nachteil.
Die von der vorliegenden Erfindung zu lösende Aufgabe besteht darin, einen elektronischen Rechner
mit einer Einrichtung zu versehen, durch die das Abrufen eines arteigenen Unterprogramms von mehr
als einem Sprungstartpunkt des Programms aus ermöglicht wird, ohne daß ein spezifisches Speicherregister
zum Speichern der Wiedereintrittsstelle des Hauptprogramms zum Wiedereintritt vom Unterprogramm
aus erforderlich ist.
Diese Aufgabe wird erfindungsgemäß durch die im Patentanspruch angegebenen Meßnahmen gelöst.
Ein »Sprungbefehl« ist ein Befehl, der während der Ausführung eines Programms die sequentielle Extraktion
der Befehle unterbricht und einen Sprung bewirkt. Er kann auch »Sprungentstehungbbefehl« genannt
werden. Der Sprung hält an einem Befehl an. der sich in einem anderen Abschnitt des Programms befindet.
Dieser zweite Befehl kann »Sprungbestimmungsbefehl« genannt werden.
Es gibt zwei λπεη zur Bestimmung des Bestimmungsbefehls.
Die erste besteht im Bestimmen desjenigen Speicherplatzes, der den Bestimmungsbefehl
speichert mit Hilfe einer Adresse, z. B. »Auf Platz xy des
Speichers gehen«. Die zweite besteht im Bestimmen des Inhalts eines Teils des Bestimmungsbefehls, der in
diesem Fall »Bezugsbefehl« genannt wird. Dieser Inhalt wird üblicherweise »Etikett« genannt und muß sowohl
auf dem Sprungentstehungsbefehl als auch auf dem Bestimmungsbefehl aufgezeichnet werden. Ein
»Wiedereintrittssprungbefehl« ist ein Sprungbefehl, der die Wiederaufnahme der Ausführung des Programms
bewirkt.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher
beschrieben. Es zeigt
Fig. 1 bestehend aus Fig. la und Fig. Ib ein
schematisches Blockdiagramm eines Teiles einer Ausführungsform der elektronischen Rechenmaschine gemäß
einem Ausführungsbeispiel der Erfindung,
Fig.2 ein Blockdiagramm der Zeitsteuerschaltüng für die Rechenmaschinenach Fig. laund Ib,
Fig.2 ein Blockdiagramm der Zeitsteuerschaltüng für die Rechenmaschinenach Fig. laund Ib,
Fig.3 ein Diagramm der durch die Zeitsteuerschaltung
nach F i g. 2 erzeugten Taktimpulse,
Fig.4 ein detailliertes schematisches Diagramm
Fig.4 ein detailliertes schematisches Diagramm
einiger der Zustar.dsregister nach Fi g. 1.
Gemäß Fi g. 1 der Zeichnungen besitzt die elektronische
Rechenmaschine nach der Erfindung einen magnetostriktiven Verzögerungsleitungsspeicher LDR,
auf dem beispielsweise sechzehn Register PI, PI, P3,
P4, R, M, A B1 C, D, E, F, C, D', fund F' aufgezeichnet
sind. Der Speicher LDR ist mit einem einen Leseverstärker 13 speisenden Lesewandler 11 und mit einem von
einem Schreibverstärker 17 gespeisten Schreibwandler 15 versehen.
Jedes auf dem Speicher LDR aufgezeichnete Speicherregister kann einunddreißig Dezimalziffern
umfassen, die je aus ach! Binär-Bits bestehen, so daß jedes Register bis zu 31 Acht-Bit-Zeichen speichern
kann. Sowohl die Zeichen als auch die Bits werden in Reihe verarbeitet Demzufolge läuft an der Verzögerungsleitung
LDR eine Reihe aus 16.831 Binärsignalen um.
Die auf der Verzögerungsleitung LDR auftretenden ersten sechzehn Binär-Signale steller das erste Bit der
ersten Dezimalziffer der Register Pi,P2,P3 PA, R, M.
A, B, C. D, E, F. C, D\ E' bzw. F' und die nächsten
sechzehn Binärsignale jeweils das zweite Bit der ersten Dezimalziffer dieser Register dar.
Wenn beispielsweise angenommen wird, daß die Binärsignale in die Verzögerungsleitung LDR nach der
Technik der Nichtrückkehr zu Null eingegeben werden, so daß sie um eine halbe Mikrosekunde voneinander
getrennt sind, so sind die zu einem bestimmten Register gehörenden Signale um 8 Mikrosekunden voneinander
getrennt. Jedes Register enthält eine Reihe von 8.31 um 8 Mikrosekunden voneinander getrennten Binarsignalen,
wobei die zu den einzelnen Registern gehörenden Signalreihen um '/: Mikrosekunde gegeneinander
versetzt sind.
Der Leseverstärker 13 speist einen Serien-Parallelwandler 19, de:' über sechzehn gesonderte Ausgangsleitungen
LPl, LP2, LPi, LPA, LR. LM, LA, LB, LC. LD. LE. LF, LC, LD', LE' und LF' sechzehn gleichzeitige
Signale erzeugt, die die in der gleichen Binärstelle der gleichen Dezimalstelle der sechzehn Register gespeicherten
sechzehn Bits darstellen.
Demzufolge sind zu einem gegebenen Zeitpunkt an den sechzehn Ausgangsleitungen sechzehn das erste Bit
der ersten Dezimalziffer der sechzehn Register darstellende Signale gleichzeitig vorhanden. Acht
Mikrosekunden später sind sechzehn das zweite Bit der ersten Dezimalziffer darstellende Signale aii den
Ausgangsleilungen vorhanden usw.
Jede Gruppe aus sechzehn von dem Wandler 19 über die Ausgangsleitungen gleichzeitig gelieferten Signalen
wird nach ihrer Verarbeitung dem Parallel-Serienwandler 21 zugeführt. Der Wandler 21 speist seinerseits den
Schreibverstärker 17 mit den sechzehn in ihrer vorherigen Reihenfolge und um U2 Mikrosekunde
voneinander getrennt erneut gespeicherten Signalen. Der Wandler 15 schreibt somit die Signale entweder
unverändert oder durch das Einwirken der Rechenmaschine geändert wieder in die Verzögerungsleitung
LDR ein, wobei sie ihre vorherige gegenseitige Lage &°
beibehalten. Es leuchtet also ein, daß hinsichtlich der externen Schaltungen die einzige Verzögerungsleitung
LDR einer Gruppe von sechzehn parallel arbeitenden, je ein einziges mit einer Ausgangs- und einer
Eingangsleitung versehenes Register enthaltenden Verzögerungsleitungen gleichwertig ist.
Diese zueinander geschachtelte Anordnung der Signale in de·- Verzögerungsleitung ermöglicht es, daß
alle Register der Rechenmaschine in einer einzigen, mit einem einzigen Lesewandler und einem einzigen
Schreibwandler versehenen Verzögerungsleitung enthalten sind, so daß die Kosten des Speichers im
wesentlichen die gleichen siind wie die einer nur ein Register enthaltenden Verzögerungsleitung. Da die
Impulswiederholungsfrequenz in der Verzögerungsleitung sechzehnfach höher ist als in den anderen
Schaltungen der Rechenmaschine, ist es darüber hinaus möglich, eine gute Ausnutzung der Speicherkapazität
der Verzögerungsleitung zu erzielen, während Kreise mit geringerer Geschwindigkeit in den anderen Teilen
der Rechenmaschine verwendet werden können.
Aufgrund der zyklischen Art der Verzögerungsleitungsspeicherung ist der Betrieb der Rechenanlage in
aufeinanderfolgende Speicherzyklen unterteilt, die je zweiunddreißig Ziffemperioden Cl bis C32 enthalten,
wobei jede Ziffernperiode in acht Bitpenoden 7"! bis
TS unterteilt ist
Gemäß F i g. 2 der Zeichnung erzr ,ji ein Taktimpulsgeneraior
23 an den Ausgangsieitu.ig'-n Ti bis 78
aufeinanderfolgende 8-Mikrusekunden-Takt impulse, die, wie in dem Zeitsteueningsdiagramm nach F1 g. 3
gezeigt, entsprechende Bitperioden anzeigen. Der Ausgar, »sanschluß Ti ist während der gesamten ersten
Bitperiode jeder der zweiunddreißig Ziffemperioden erregt, der Ausgangsanschluß T2 ist entsprechend
während der gesamten zweiten Bitperiode jeder der Ziffemperioden erregt usw.
Der Taktimpulsgenerator 23 ist mit der Verzögerungsleitung LDR in der Weise synchronisiert, daß der
Anfang der /7-ten Bitperiode der /77-ten Zi'fernperiode
mit dem Zeitpunkt zusammenfällt, zu dem die die im η-ten Binär-Bit der m-ten Dezimalziffer der sechzehn
Speicherregister abgelesenen Bits darstellenden Binärsignale an den Ausgangsleitungen des Serien-Parallelwandler
19 verfügbar zu werden beginnt. D'ese Binärsignale werden in dem Wandler 19 für die Dauer
der entsprechenden Bitperiode gespeichert. Wahrend der gleichen Bitperiode werden die Signale, die die
sechzehn Bits darstellen, die durch das Verarbeiten der aus der Verzögerungsleitung LDR ausgelesenen sechzehn
Bits erzeugt worden sind, dem Paiallel-Üenenwandler
21 zugeführt und in die Verzögerungsleitung eingeschrieben. Der Generator 23 (Fig. 2) erzeugt
außerdem während jeder Bitperiode sechzehn Impulse Mi bis Λί16 (Fig. 3). Der Impuls Mi bestimmt den
Ablesezeitpunkt d. h. den Zeitpunkt, zu dem der Serien-Parallelwandler 19 die zu der momentanen
Bitperiode gehörenden Bits verfügbar zu machen beginnt. Der Impuls MA gibt den Schreibzeitpunkt an,
d. h. den Zeitpunkt, zu dem die verarbeiteten Bits zum Einschreiben in die Verzögerungsleitung LDR dem
Parallel-Serienwandler21 zugeführt werden.
Der Generator 23 besitzt einen Oszilla.or 25. der im
Betrieb einen Impulsverteiler 27 mit Impulsen speist, die die Frequenz dpr Impulse M1 bis M 16 aufweisen. Ein
durch den Impulsverteiler 27 gespeister Frequenzteiler 29 erzeugt die Ta^timpulse Tl bis TS. Der Oszillator 25
is' nur solange in Tätigkeit, wie eine durch die an der Verzögerungsleitung LDR umlaufenden Signale gesteuerte
bistabile Schaltung eingeschaltet bleibt. Eine detaillierte Beschreibung der Arbeitsweise dieser
bistabilen Schaltung ist der eingangs erwähnten GB-PS 11 03 385 zu entnehmen.
Jede Dezimalzifferstelle des Speichers LDR kann entweder eine Dezimalziffeir oder einen Befehl enthalten.
Die Register Pt bis PA können nur zum Speichern
von Befehlen eines Programms verwendet werden und speichern je bis zu 31 Befehle. Die Register C, D, E, F, C1
D', E'und F' können je zum Speichern von bis zu 31
Befehlen oder bis zu 30 Datenziffern verwendet werden. Die Maschine erhält somit eine Programmkapazität von
372 Befehlen. Das Register B läßt sich nur zum Speichern von Daten verwenden. Die Speicherregister
Werden in der Reihenfolge P i, P2, P3, PA, C', D', E', F', C, D, E, F zum Speichern von Programmbefehlen
Verwendet. Die Register M, A und /7sind zum Speichern von Operanden und Rechenergebnissen verwendete
Arbeitsregister.
Die Programmbefehle der elektronischen Rechenmaschine nach der Erfindung können drei Formate haben.
Das Grundformat eines Befehls ist ein Acht-Bit-Zeichen, bei welchem die letzten vier Bits einen von
Vierzehn möglichen Kunktionskodes darsteiien, während
die ersten vier Bits das Speicherregister darstellen, an welchem die Operation ausgeführt werden soll.
Der Adressenteil des Befehls kann sich auf ein entweder mit dem ersten oder mit dem sechzehnten Bit
des Registers beginnendes Feld beziehen, je nachdem, ob das Register selbst oder der abgeteilte Teil adressiert
wird. Auf diese Weise kann ein Register in zwei Teile geteilt werden und zwei voneinander unabhängige
Informationsabschnitte speichern. Zu diesem ersten Grundformat gehören die Rechen- und Übertragungsbefehle, der Befehl zum Drucken von Zahlen mit dem
internen Drucker und einige Sprungbefehle, bei welchen die Adresse einen Erkennungskode für das Sprungende
angibt.
Im Nachstehenden sind kurz einige der wichtigeren Befehle des ersten Formals beschrieben, wobei der
Buchstabe Y das durch den Befehl adressierte generische Register anzeigt:
F1.1) Addition:
Übertrage die in dem Register Y enthaltene Zahl in das Register M, dann addiere den Inhalt
des Registers M zum Inhalt des Registers A und Die Befehle des zweiten Formats beslchfcri aus zwei
Ziffern von je achi Bits B 1 bis BS, die in zwei einander
benachbarten Dezimafzifferstellen des Speichers angeordnet
sind;
Zu der· wichtigeren Befehlen dieses Formats gehören:
F2.1) Andere den ersten Befehl des Programms; Bei
diesem Befehl bestimmt die erste Ziffer den
Furiktionskode und enthält die zweite Ziffer
acht in die erste Dezimalzifferstelle des Registers P 1 einzugebende Bits.
Unter anderen Verwendungen kann dieser Befehl einen in den acht Binärstellen der zweiten Ziffer des
Befehls kodierten Sprungbefehl in die erste Dczimalzifferstelle
des Befehls kodierten Sprungbefehl in die
symbolischer Form:
F 1.2) Subtraktion:
Entsprechend Y *-M,(A -M) *-A\
F13) Multiplikation:
F13) Multiplikation:
Entsprechend Y-+M,(A ■ M)^A-.
F1.4) Teilung:
F1.4) Teilung:
Entsprechend Y-* M. (A :M)-*A;
FU) Übertragung aus M:
FU) Übertragung aus M:
Übertrage den Inhalt des Registers M in das
Register Y. d. h. in symbolischer Form M^Y;
F1.6) Rückführung nach A:
F1.6) Rückführung nach A:
Übertrage den Inhalt des Registers Y in das
Register Λ, d. h. in symbolischer Form Y-* A;
F 1.7) Austausch:
F 1.7) Austausch:
Übertrage den Inhalt des Registers Y in das Register A und umgekehrt, d. h. in symbolischer
Form Y~A-F1.8) Druckregister:
Drucke den Inhalt des Registers Y auf dem
internen Drucker;
F1.9) Sprung ohne Sprungbedingung:
F1.9) Sprung ohne Sprungbedingung:
Springe auf den mit Hilfe des Kode Y Etikettes
erkennbaren Befehl;
Fl.10) Sprung mit Sprungbedingung:
Fl.10) Sprung mit Sprungbedingung:
Springe auf den mit Hilfe des Kode Y Etikettes erkennbaren Befehl, sofern der Inhalt des
Registers A größer als Null ist.
ersie L/eiiniai^iiicfsiciic uc5 KcgistErs "J Übertragers.
Bei dieser Verwendung ist der Befehl im wesentlichen ein Wiedereintreten aus einem Unterprogramm in das
Hauptprogramm zusammen mit dem Befehl F3.1 dritten Formats, der einen Sprung ohne Sprungbedingung
auf die erste Befehlsstelle des Speichers befiehlt;
Ein Befehl des dritten Formats besteht aus acht Bits öl bis BS, die gemeinsam einen Funktionskode
anzeigen. 7um dritten Format gehören besondere Befehle, Jie beispielsweise die Übertragung zwischen
vorbestimmten logischen Gliedern und das Errechnen von Prozentsätzen steuern. Die nachstehenden sind die
wichtigsten dieser Befehlsart:
F3.1) Sprung auf den in der ersten Ziffernstelle des Registers Pl enthaltenen Befehl. Dieser Befehl
kann beispielsweise in Verbindung mit dem vorstehend beschriebenen Befehl F2.1 zum
Wiedereintritt in das Hauptprogramm nach Beendigung eines Unterprogramms verwendet
werden.
F3.2) Verschieben von Registeradressen. Dieser Befehl
stellt die bistabile Schaltung A5 (Fig.4)
pin die bewirkt, daß der Befehlsdecoder 31 den die Register C. D, E oder F adressierenden
Adressenteil von Befehlen ersten Formats oder eines Ausgabebefehls als C. D'. E' oder F'
auswertet.
F33) Rückstellen der bistabilen Schaltung A 5. so daß
der Befehlsdecoder 31 die Adressen wieder normal auswertet.
F3.4) Einstellen der bistabilen Schaltung A 14 für die indirekte Adresse. Das Einstellen der bistabilen
Schaltung 4 14 (F ig. 4 der Zeichnungen) bewirkt, daß die Maschine den Adressenteil des
folgenden Befehls indirekte Adresse auswertet. Die tatsächlich durch den Befehl zu verarbeitenden
Daten sind in der Adresse angeordnet, die in dem durch den Adressenteil des Befehls
adressierten Register angegeben wird.
F3.5) Rückstellen der bistabilen Schaltungen A 5 und
A 16 nach einem indirekten Adressenbefehl, so daß die nachfolgenden Befehle wieder normal
ausgewertet werden.
F3.12) Änderung der Teilung. Der Befehl stellt die bistabile Schaltung A16 (Fig.4) ein, die
bewirkt, daß die Rechenmaschine den Adressenteil der folgenden Berehie ais Adresse eines
Registerfeldes auswertet, das mit utr achten
oder vierundzwanzigsten Ziffernste JIe des Registers
beginnt, je nachdem ob das gesamte Register oder der (mit der sechzehnten
Ziffernslelle beginnende) abgeteÜle Teil durch den Befehl adressiert Ist. Dieser Befehl erlaubt
das Aufteilen jedes Registers in Viertel.
F3.13) Rückstellen der teilung. Die bistabile Schaltung
F3.13) Rückstellen der teilung. Die bistabile Schaltung
A 16 (F i g. 4) wird zurückgestellt.
F3.14) Sprung unter Beibehaltung des Ausgangspunkt bis tes, IZs handelt sich urn eine Vielzahl von F3iri'y Befehlen, die je einem anderen Bezugsbefchl entsprechen^ Der Sprung wird aüsgefühfi auf ein Unterprogramm, welches mit dem entsprc cheriden Bezugsbefehl beginnt' und endet. Die Maschine behandelt den zweiten Bezugsbefehl wie den entsprechenden Sprungbefehl und springt zurück auf den ursprünglichen Sprungbefehl, der zum Zeilpunkt des anfänglichen Sprunges in einen Bezugsbefehl umgewandelt worden war.
F3.14) Sprung unter Beibehaltung des Ausgangspunkt bis tes, IZs handelt sich urn eine Vielzahl von F3iri'y Befehlen, die je einem anderen Bezugsbefchl entsprechen^ Der Sprung wird aüsgefühfi auf ein Unterprogramm, welches mit dem entsprc cheriden Bezugsbefehl beginnt' und endet. Die Maschine behandelt den zweiten Bezugsbefehl wie den entsprechenden Sprungbefehl und springt zurück auf den ursprünglichen Sprungbefehl, der zum Zeilpunkt des anfänglichen Sprunges in einen Bezugsbefehl umgewandelt worden war.
In der Kechenmaschine wird jede Dalcndezimalzilter
mit Hilfe von vier Bits von vier Bits B 5. B 6. B 7 und B 8
entsprechend einem Binär-Dezimalkode dargestellt. Diese vier Bits sind in dem Verzögerungsleitungsspeicher
LDR in den letzten vier Bitstellen T5, Τβ, Tl bzw.
Γ8 aufgezeichnet, während die ersten vier Bilstellen
zum Speichern von Markierungsbils benutzt werden.
Die Bitstelle Γ4 wird zum Speichern eines Dezimalkomma-Bits Ö4 verwendet, das für aller Ziffern einer
Dezimalzahl mit Ausnahme der ersten Ziffer nach dem Komma »0« ist. Die Bitstelle T3 wird zum Speichern
eines Vorzeichen-Bits 53 verwendet, das für alle Dezimalziffern einer positiven Zahl »0« und für alle
Dezimalziffern einer negativen Zahl »1« ist. Die Bitstelle T2 wird zum Speichern eines Ziffern-Erkenhungsbits
B 2 verwendet, das bei jeder besetzten Dezimalzifferstelle »I« und in jeder unbesetzten
Dezimalzifferstelle (nicht geltende Null) »0« ist.
Demzufolge macht die vollständige Darstellung einer Dezimalziffer in dem Speicher LDR sieben Bitstellen
T2, T3. Γ4. 7"5. T6. Tl und 7"8 einer gegebenen
Dezimalzifferstelle erforderlich. Die verbleibende Bitstelle 7"! wird zum Speichern eines Markierungsbits
Ziffernstelle gespeicherten Dezimalziffer verknüpft ist. benutzt.
In der nachfolgenden Beschreibung wird ein in einer Binär-Bitstelle a einer Dezimalzifferstelle eines Registers
b gespeichertes Bit mit Bab und das beim Auslesen des Bits aus dem Speicher LDR erzielte Signal mit LBab
bezeichnet.
Ein in der ersten Dezimalzifferstelle Cl des Registers
R gespeichertes Bit B 1/? = »1« wird verwendet, um am
Anfang jedes Speicherzyklus den Taktimpulsgenerator 23 zu starten. Ein in der 32. Dezimalzifferstelle C32des
Registers E gespeichertes Bit ßl£=»l« wird zum Anhalten des Generators 23 verwendet. Ein in der n-ten
Dezimalstelle des Registers B gespeichertes Bit B lß=»l« zeigt an, daß während der Ausführung eines
Programms der nächste auszuführende Befehl in der /Ken Dezimalstelle des verwendeten besonderen
Programmregisters gespeichert ist. Ein in der n-ten Dezimalstelle des Registers M gespeichertes Bit
B 1/W= »1« zeigt an, daß beim Eingeben einer Zahl von dem Tastenfeld her in das Register M die nächste
eingegebene Dezimalziffer in der (n— 1)-ten Dezimalzifferstelle gespeichert werden soll, daß beim Eingeben
eines Befehls von dem Tastenfeld her der nächste Befehl in der n-ten Dezimalzifferstelle eines Speicherregisters
gespeichert werden soll; daß beim Ausdrucken einer in
einem beliebigen Register gespeicherten Zahl die zu druckende nächste Ziffer die in der n-ten Dezimalzifferstelle
dieses Registers gespeicherte Ziffer ist; daß beim Addieren von zwei Zahlen die in der n-leri Dezihialzifferstelie
des Registers A gespeicherte Ziffer der Summe danach durch Hinzuaddiereh einer Füllziffer
korrigiert werden muß. Ein in der n-len Dezimalstelle
des Registers A gespeichertes Bit BiA = n\» zeigt an,
daß die Ausführung des Hauptprögrämms beim n-ten
Befehl eines Speicherregisters unterbrochen worden ist, um die Ausführung eines Unterprogramms zu beginnen.
Somit werden die Markierungsbits BiR, B \E verwendet,
um in den verschiedenen Registern feststehende Bezugsstellen (Anfang bzw. Ende) darzustellen, und die
Markierungsbits B XA, BiB und BiM stellen in den
Registern bewegliche Bezugsstellen dar. Darüber hinaus wird das Bit B 1M bei Ausführung einer Addition dazu
verwendet, für jede Dezimalstelle zu einer auf diese Dezimalstelle anzuwendenden Uperation gehörende
information abzuzeichnen.
Die Erneuerung. Änderung und Verschiebung der Markierungsbits B1 werden mit Hilfe einer Markierungsbit-Steuerschaltung
33 durchgeführt.
Die Rechenmaschine enthält außerdem einen Addierer 35 mit zwei Eingangsleilungen 37 und 39 zur
gleichzeitigen Aufnahme von zwei zu addierenden Bits. An der Ausgangsleitung 41 wird ein Summenbit erzeugt.
Die Rechenmaschine ist mit einem acht Binärstufen Ki bis K 8 umfassenden Schieberegister K versehen
(Fig. 1). Bei Aufnahme eines Schiebeimpulses über einen Anschluß 77 werden die in den Stufen K 2 bis K 8
gespeicherten Bits jeweils in die Stufen Ki bis Kl
geschoben oder, sofern an den Eingangsleitungen 5,6,7,
8, 9, 10, 11 und 12 über das ODER-Tor 113 Bits vorhanden sind, werden sie in die Stufen K 1, K 2, K 3.
K4.K5.K6.K1 bzw. K 8 übertragen.
Die durch den Impulsverteiler 27 (Fig.2) erzeugten
Impulse /V/4 werden als Schiebeimpulse für das Register
K benutzt, das somit während jeder Bitperiode einen Schiebeimpuls bzw. während jeder Ziffernperiode acht
Schiebeimpulse erhält. Der Inhalt jeder Stufe des
bis zu dem Impuls M4 der nächsten Bitperiode unverändert. Ein der Eingangsleitung 79 des Registers K
während einer bestimmten Bitperiode zugeführtes Bit ist an der Ausgangsleitung 81 des Registers K acht
Bitperioden bzw. eine Ziffernperiode später verfügbar. Somit kann das Register K wie ein Verzögerungsleilungsabschnitt
mit einer Länge von einer Zifferperiode wirken.
Indem ein Speicherregister und das Schieberegister K in einer geschlossenen Schleife angeschlossen werden,
während alle übrigen Register mit ihren Ausgängen unmittelbar an ihre jeweiligen Eingänge angeschlossen
bleiben, wird das ausgewählte Register gegenüber den verbleibenden Registern effektiv um eine Ziffernperiode
verlängert Somit wird während jedem Speicherzyklus der inhalt des ausgewählten Registers um eine
Dezimalzifferstelle verschoben, d.h. gegenüber den anderen Registern um eine Ziffernperiode verzögert.
Das Register K kann auf Grund seiner Fähigkeit, als
Verzögerungsleitung zu wirken, gemäß dem auf Seite 198 des Buches »Arithmetic Operations in Digital
Computers« von R. K. Richards, 1955, beschriebenen Verfahren außerdem als Zähler verwendet werden.
Wenn nämlich seine Eingangsleitung 79 und seine Ausgangsleitung 81 an die Ausgangsleitung 41 bzw. die
Eingangsleitung 37 des Addierers 35 angeschlossen
werden, während die Eingangsleitung 39 des Addierers 35 kein Signal erhält, so zählt der Zähler aufeinanderfolgende
Zählimpulse, die durch den Zählsteuerkreis 83 der den Übertrag speichernden bistabilen Schaltung 49, und
zwar pro Ziffernperiode ein Impuls zugeführt werden.
Das Register K wirkt außerdem als Pufferspeicher zum vorübergehenden Speichern einer Dezimalziffer
oder des Adressen- oder Funktionsteiles eines durch das Druckwerk 85 zu druckenden Befehls.
Schließlich arbeitet das Register K bei der Übertragung von Daten oder Befehlen von einem Tastenfeld 87
aus in den Speicher LDR als Parallel-Serien-Wandler, wie es in der GB-PS 11 03 385 vollständiger beschrieben
ist.
das Befehlsregister 89 umfaßt acht Binärstufen /1 bis
/8, die die acht Bits des in Ausführung befindlichen Befehls enthalten. Das Register 89 überträgt seinen
Inhalt in den Decoder 91, der den zwölf adressierbaren Speicherregistern bzw. den vorerwähnten Befehlen
entsprechende Ausgänge Kl bis Y12; F 1.1 bis Fl.14,
F2.1 bis F2.n, F3.1 bis F3.nbesitzt.
Wenn in dem Register 89 ein Befehl des ersten Formats gespeichert wird, so erregen die Eingänge in
den Decoder 91 aus den Stufen /1 bis /4 und der Eingang A 5 einen der Adressenausgänge Kl bis K12.
Dieser Ausgang wählt eines der zwölf Speicherregister aus oder bezeichnet, sofern der Befehl ein Sprungbefehl
ist, einen der Sprungkodes. Die Eingänge /5-/8 bewirken, daß der Decoder 91 einen der Funktionsausgänge
erregt.
Wenn der Befehl zweiten Formats ist, wird nur das erste Zeichen des Befehls in dem Register 89
gespeichert. Sofern ein Befehl, beispielsweise der Befehl F2.1 (Änderung des ersten Befehls des Programms)
gespeichert wird, so ist nur ein Ausgang des Decoders *1 erregt; wenn der Befehl F2.4 (Informationsausgabe)
gespeichert wird, so wird einer der Ausgänge Kl bis K12 durch die Bits öl bis 54 erregt, um das die
auszugebenden Daten enthaltende Speicherregister auszuwählen, während die Bits 55 bis B8 den Ausgang
F2.4des Decoders 91 erregen.
je einem besonderen Befehl entsprechenden Ausgänge F3.1 - F3.ndes Decoders 91 erregt.
Außerdem können die Ausgänge der Stufen /1 bis /4 und die Ausgangsleitungen der Stufen /5 bis /8 über das
•Tor 93 bzw. das Tor 95 an die Eingangsleitungen der Stufen K 5 bis K 8 des Registers K angeschlossen
werden, um die in diesen Stufen gespeicherte Adresse und Funktion auszudrucken.
Eine Steuerschaltung 97 ist vorgesehen, um dem Bedarf entsprechend die sechzehn Speicherregister, den
Addierer 35, das Schieberegister K, das Befehlsregister 89, das Magnetbandkassettenregister 99 und die
Ein-Ausgabe-Vorrichtungen untereinander zu verbinden zwecks Steuerung der Übertragung von Daten und
Befehlen zu und von den verschiedenen Teilen der Rechenmaschine. Die Steuerschaltung 97 kann aus einer
Diodenmatrix oder einer transistorierten NOR-Schaltungsmatrix oder aus entsprechenden, keine Speichereigenschaften
aufweisenden Schaltmitteln bestehen. Die Auswahl des durch den Decoder 91 bestimmten
Speicherregisters erfolgt ebenfalls durch die Steuerschaltung 97.
Das Tastenfeld 87 wird benutzt zum Eingeben von Daten und Befehlen sowie zum Steuern der verschiedenen
Funktionen der Rechenmaschine. Es enthält einen numerischen Teil 101 mit zehn Zifferntasten 0 bis 9 zum
Eingeben von Zahlen in das Speicherregister /V/über das
Pufferregister K; bei einer bevorzugten Ausführungsform ist das Register M das einzige von dem
Zifferntastenfeld her zugängliche Speicherregister. Außerdem enthält das Tastenfeld 87 einen Adressenteil
103, der mit Tasten versehen ist, die je die Auswahl eines Registers des Speichers LDR mit Verzögerungsleitung
steuern. Ein Funktionsteil 105 des Tastenfeldes 87 enthält Tasten, die dem Funktionsteil eines der durch die
ro Rechenanlage ausführbaren Befehle entsprechen.
Bei der dargestellten Ausführungsform der Erfindung steuern die drei Tastenfelder 101,103 und 105 einen aus
Kodeschienen bestehenden mechanischen Decoder, der mit elektrischen Schaltern zusammenwirkt, um an vier
η Leitungen Wl, H 2, H3 und W 4 Binärsignale zu
erzeugen, die entweder die vier Bits einer auf dem Tastenfeld 101 eingestellten Dezimalziffer oder die vier
Bits einer auf dem Tastenfeld 103 eingestellten Adresse öder die vier Bits einer auf dem Tastenfeld 105
eingestellten Funktion darstellen. Der Decoder erregt außerdem eine der Ausgangsleitungen Gl1 C 2 oder
(73, um anzuzeigen, welches der Tastenfelder 101, 103 bzw. 105 betätigt worden ist.
Eine Kommataste 109 und eine Minuszeichen-Taste 107 erzeugen bei ihrer Betätigung auf der Leitung V
bzw. S/Vunmittelbar ein Binärsignal.
Die Rechenmaschine kann nach Bedarf eingestellt werden, um nach drei Arten, und zwar »von Hand«,
»automatisch« und »Programmeingabe«, zu arbeiten, je nachdem, ob ein Dreiwegumschalter 111 ein Signal PM,
PA oder IP erzeugt. Während des Vorgangs der Programmeingabe sind beim Vorhandensein des Signals
/Pdas Adressentastenfeld 103 und das Funktionstastenfeld 105 betätigbar, um die Befehle über das
31) Pufferregister K in die Programmregister einzugeben.
Zu diesem Zweck können die Ausgänge HX bis H 4 des
Tastenfelddecoders über das Tor 113 jeweils an die Eingänge 8 bis 11 des Registers K angeschlossen
werden. Während dieser Zeit ist das Tastenfeld 101 unwirksam.
Während des automatischen Betriebes, oei welchem
■ f% O Γ · wr\r Π t*T" V Π Π ** »Ί ^^ nl·"*» '*» ** T"
ψ 9 f »^ r^ ■ W* r^r^r-r r* ^^ r^ ^^ r*
Programm ausgeführt wird, sind das Adressentastenfeld 103 und das Funktionstastenfeld 105 unwirksam.
Der automatische Betrieb der Maschine setzt sich aus einer Folge von Befehlsentnahmephasen und Befehlsausführungsphasen
zusammen. Während der Entnahmephase wird aus einem Programmregister ein Befehl entnommen und in das Register 89 übertragen; auf diese
Phase folgt automatisch eine Ausführungsphase, im Verlaufe derer die Rechenmaschine den gespeicherten
Befehl ausführt. Auf diese Ausführungsphase folgt automatisch eine Entnahmephase für den nächsten
Befehl, der anstelle des vorhergehenden entnommen und gespeichert wird usw. Solange in dem Register 89
ein Befehl gespeichert ist, bleibt das durch den Adressenteil des Befehls angezeigte Speicherregister
ständig angewählt und erzeugt der Decoder 91 ständig bzw. fortlaufend das dem Funktionsteil des Befehls
entsprechende Funktionssignal.
Während des automatischen Betriebes ist normalerweise auch'das Zifferntastenfeld 101 unwirksam, da die
Rechenmaschine nach den vorher in den Speicher eingegebenen Daten arbeitet Dieses Tastenfeld ist zum
*5 Eingeben von Daten in das Register M nur dann
betätigbar, wenn der Stop-Befehl in dem Befehlsregister
89 gespeichert ist Es ist klar, daß die Verwendung des Stop-Befehls das Verarbeiten von viel mehr Daten
zuläßt als der Speicher der Rechenmaschine enthalten kann.
Während des Handbetriebs sind das Zifferntastenfeld
101, das Adressentastenfeld 103 und das Funktionstastenfeld 105 sämtlichst wirksam. Bei dieser Betriebsart
können das Adressentastenfeld 103 und das Funktionstastenfeld 105 durch den Bedienenden benutzt werden,
um zu bewirken, daß die Rechenmaschine eine Öperationsfolge ausführt, die gleich einer beliebigen
während des automatischen Betriebs ausgeführten Folge ist. Zu diesem Zweck gibt der Bedienende über
das Tastenfeld 87 eine Adresse und eine Funktion ein, die somit über das Tor 115 bzw. 117, genau wie bei einer
Befehlsentna.'imephase des automatischen Betriebes, in dem Register 89 gespeichert werden. Außerdem wird
durch Eingeben eines Befehls (Adresse und Funktion) in das Tastenfeld automatisch eine Befehlsentnahmephase
eingeleitet, um den eingegebenen Befehl in einer der Ausführungsphase des automatischen Betriebes entsprechende*1
Weise auszuführen. Nach Beendigung dieser Befehlsausführungsphase hält die Rechenmaschine
an und wartet sie auf einen durch den Bedienenden über das Tastenfeld 87 eingegebenen neuen Befehl.
Wie vorstehend erwähnt, wird, sofern keine Adressentaste betätigt wird, auotmalisch das Register M
adressiert. Beim Eingeben einer der vier Grundrechenoperationen über das Tastenfeld braucht der Bedienende
das Adressentastenfeld nicht zu betätigen, sondern kann er stattdessen über das Ziherntastenfeld eine Zahl
'eingeben. In diesem Falle wird die ausgewählte Operation auf die eingegebene Zahl angewendet. Somit
kann während des Handbetrl· bs jede Rechenoperation entweder auf eine vorher über das Zifferntastenfeld 101
in das Register M eingegebene Zahl oder auf eine in
einem mit Hilfe des Adressentastenfeldes 103 ausgewählten Speicherregister gespeicherte Zahl angewendet
werden.
Während des automatischen Betriebes werden die in den Befehlen bestimmten Funktionen auf vorher in den
Speicher eingegebene Daten angewendet. Vor dem Anlaufen der automatischen Programmausführung
kann dci Bcuiciiciiüc die Anfangsdaten eingeben, indem
er sie zunächst über das Zifferntastenfeld 101 in das Register M eingibt und sie dann in das gewünschte
Register überträgt.
Die Zustandsregister 119 enthalten eine Vielzahl bistabiler Schaltungen, die jederzeit Angaben über den
momentanen Zustand der Maschine enthalten, die in der gesamten Rechenmaschine zur Steuerung ihres Betriebs
verwendet werden. Die Ausgangssignale aus den Zustandsregistern 119 sind in F i g. 1 als Ganzes mit dem
Bezugsbuchstaben A bezeichnet. Der besondere Aufbau und die Betriebsart eines Teils der bistabilen Schaltungen
der dargestellten Ausführungsform der Erfindung können dem bzw. der in der GB-PS 11 03 385
veranschaulichten und beschriebenen entsprechen.
Zur Anpassung an die erweiterten und neu bezeichneten Register der Maschine nach der Erfindung mußten
bei der Bezeichnung einiger der Signale bestimmte geringfügige Änderungen vorgenommen werden, jedoch
liegt dies im Bereich der Fähigkeiten des Durchschnittsfachmannes.
Neben den in der vorerwähnten Patentschrift beschriebenen bistabilen Schaltungen enthalten die
Zustandsregister 119 nach der Erfindung außerdem die in Fig.4 der Zeichnung dargestellten bistabilen
Schaltungen. Die bistabile Schaltung A 5 wird zum Verschieben der dem Adressenteil eines Befehls
gegebenen Bedeutung verwendet, während die bistabile Schaltung A 14 bein indirekten Adressieren von
Speicherregistern verwendet wird. Die bistabile Schaltung A 15 wird während eines Sprungbefehls und die
bistabile Schaltung A 16 zum Ändern der Teilung der Register benutzt. Eine detaillierte Beschreibung der
Arbeitsweise dieser bistabilen Schaltungen erfolgt später.
Zurückkommend auf Fig. 1 der Zeichnung enthält die Folgesteuereinheit 121 eine Gruppe zustandanzeigender
bistabiler Schaltungen PX bis Pn, von welchen zu jeder Zeit nur eine eingeschaltet ist. Die Rechenmaschine
ist während ihres Betriebes in dem der eingestellten bistabilen Schaltung entsprechenden Zustand.
Die Rechenmaschine geht bei ihrem Betfieb durch eine Folge von Zuständen und führt während
jedes dieser Zustände vorbestimmte Grundoperationen aus.
Die Folge dieser Zustände wird im einzelnen durch eine logische Schaltung 123 bestimmt. Auf der
Grundlage des momentanen Zustandes der Rechenmaschine, des momentan in dem Register 89 gespeicherten
und durch den Decoder 91 angezeigten Befehls sowie der momentanen, durch die Zustandsregister 119
angezeigten internen Zustände der Rechenmaschine bestimmt die logische Schallung 123, welcher Zustand
folgen muß, und schaltet den diesem Zustand entsprechenden Ausgang 125 ein. Danach erzeugt der
Zustandwechsel-Steuerkreis 127 einen Zustandswechsel-Steuerimpuls
MC, der die UN D-Tore 129 öffnet und ermöglicht, daß der erregte Ausgang 125 eine der
bistabilen Schaltungen PX bis Pn entsprechend dem nächsten Zustand einstellt.
Wie im Hinblick auf ihren Befehlssatz kurz erörtert worden ist, kann die Maschine in drei Arten von
Sprungbefehlen ausführen. Die erste ist ein einfacher Sprung auf einen genau bezeichneten Bezugsbefehi im
Programm. Dieser Sprung kann auf dem Inhalt des Registers A unbedingt oder bedingt sein. Die Tätigkeit
dieser Art von Sprungbefehl ist in der vorerwähnten GB-PS 11 03 385 beschrieben.
Die zweite Sprungart ist die anhand der Befehle F2.1
und F3.1 erörterte. Beim Ausführen dieser SfuJngart
wird ein erster einfacher Sprungbefehl in die erste Befehlsstelle im Register Pi eingesetzt. Als nächstes
wird ein einfacher Sprung auf ein Unterprogramm ausgeführt, dem ein zweiter Bezugsbefehi vorangeht.
Das Unterprogramm wird mit einem Sprung auf die erste Befehlsstelle im Register Pl beendet Da diese
so Stelle selbst mit einem Sprungbefehl gefüllt worden ist
. wird auch dieser Sprung auf den ersten Bezugsbefehl ausgeführt und das Hauptprogramm wieder aufgenommen.
Der erste Bezugsbefehl muß hinter den Befehl zum Springen auf das Unterprogramm gelegt werden. Eine
vollständigere Erläuterung der maschinellen Ausführung dieser Sprungbefehlsart läßt sich in der GB-PS
11 03 385 finden.
Die vorstehend beschriebenen und bei den Maschinen nach dem genannten Stand der Technik verwendeten
Sprungbefehlsarten lassen zwar eine sehr anpassungsfähige Programmierung zu, jedoch bestanden noch
bestimmte Schwierigkeiten insbesondere bei verschachtelten Unterprogrammen. In einer verschachtelte
Unterprogramme einbeziehenden Situation kann ein Unterprogramm selbst Sprünge auf andere Unterprogramme
und Rücksprünge von ausgewählten dieser anderen Unterprogramme aus einschließen. Dies erhöht
zwar in hohem Maß die ProprammieranncKmiincrcfäiiitT..
ί4
keit bzw. -Vielseitigkeit, jedoch war es bei den
vorstehend beschriebenen Sprungbefehlsarten verhältnismäßig schwer zu erreichen.
Der Rechner nach der vorliegenden Erfindung behebt diese Schwierigkeit dadurch, daß eine Einrichtung zum
Ausführen einer dritten Sprungbefehlsart, und zwar eines Sprungs unter Beibehaltung des Startpunktbefehls,
vorgesehen ist. Bei der dargestellten Ausführungsform der Erfindung muß das Unterprogramm hinter den
Hauptteil des Programms gelegt werden, und es muß, falls »verschachtelte« Unterprogramme vorhanden
sind, ein einen Sprung auf ein zweites Unterprogramm enthaltendes Unterprogramm in den Speicher vor das
zweite Unterprogramm gelegt werden. Der Sprung wird eingeleitet durch einen Befehl der dritten Art, ΐί
F3.14bis F3.n. Es gibt viele dieser Sprungbefehle, die je einem anderen Bezugsbefehl entsprechen. Somit können
in e;nem einzigen Programm mehrere Sprungbefehle dieser Art verwendet werden, ohne daß die Gefahr
besteht, daß sie vom Rechner durcheinandergebracht >o
werden. Die Bezugsbefehle sind mit ihren entsprechenden
SnnjnCTbefeh!erj mit Ausnahme eines einzigen Bits
— des Bits SI — identisch. Wenn B 1 gleich Null ist, ist
der Befehl ein Sprungbefehl: wenn B 1 gleich E.ns ist. ist
der Befehl ein Bezugsbefchl. Wenn sie auf einen >
> Sprungbefehl trifft, sucht die Maschine dei Speicher
nach einer Binärziffer ab. die mit derjenigen des Sprungbefehls, natürlich mit Ausnahme des Bits SI.
identisch ist.
Für die Unterprogrammverbindung wird ein Sprung- in
befehl in die geeignete Stolle im Hauptprogramm und ein entsprechender Bezugsbefchl sowohl an den Beginn
als auch an das Ende des Unterprogramms gesetzt. Wenn der Sprung ausgeführt wird, wird die (einen
Sprung anzeigende) Null des Bits B 1 des Sprungbefehls η
in eine (einen Bezug anzeigende) Eins geändert. Am Fnde des Unterprogramms trifft die Maschine auf den
zweiten Bezugsbefehl, den die Maschine als Sprungbefehl behandelt: dann beginnt die Maschine von Anfang
an mit dem Absuchen des Speichers nach einem 4n Bezugsbefehl, der mit dem das Unterprogramm
beendenden Bezugsbefehl identisch ist. Dies wird der umgewandelte Sprungbefehl sein, der sich an dem Punki
befindet, an dem der ursprüngliche Sprung auf das Unterprogramm staltfand, nämlich an dem Punki der 4Ί
Rückkehr auf das Hauptprogramm. Beim Rückkehren auf das Hauptprogramm wandelt die Maschine den
umgewandelten Sprungbefehl wieder in einen Sprungbefehl um. wobei sich das Programm an diesem Punkt in
seinem ursprünglichen Zustand befindet. ·η
Das Einsetzen eines Sprungbefehls unter Beibehaltung des Startpunktbefehls während der Extraktionsphase in das Befehlsregister 89 bewirkt, daß die
Maschine auf die Phase P29 umschaltet, und setzt die
bistabile Einrichtung A 15 (Fig.4). In der Phase />29 v>
tastet die Maschine, ausgehend vom Anfang des Registers, in welchem der Sprungbefehl gespeichert ist.
die Speicherregister ab und such! nach dem enispre chenden Bezugsbefehl. Das Suchen nach den Bezugsbe
fehlen geschieht in Reihenfolge, so daß es kein Problem w
hinsichtlich eines Durcheinanderbringender Bezugsbefehle
gibt- Das Bit BIS zeigt den gegenwärtig im
Befehlsregister 89 gespeicherten Befehl an lind befindet
sich deshalb an der der Stelle des Sprungbefehls* im
gerade abgesuchten Programmregister entsprechenden Ziffernstelle des Registers Ä Wenn die Suche nach dem
entsprechenden Bezugsbefehl beginnt, Überträgt der Markierungsbit-Steuerkreis 33 ein Bit Bi, das gleich
Eins ist, in die entsprechende Stelle im gerade abgesuchten Programmregister, wodurch der in dieser
Ziffernstelle gespeicherte Sprungbefehl in den entsprechenden Bezugsbefehl umgewandelt wird.
GemäO Fig.4 der Zeichnung wird das Abtasten der
Programmregister beim Suchen des entsprechenden Bezugsbefehls dadurch erreicht, daß in dem Komparator
175 bitweise die Bits BTL bis BS der Ziffernstellen der Programmregister mit den entsprechenden
Bits des im Befehlsregister 89 gespeicherten Sprungbefehls verglichen werden. Das Bit BX der
Befehle wird ebenfalls in den Komparator 175 eingespeist, jedoch wird es eher daraufhin untersucht,
ob es eine binäre »1« ist, also mit dem Bit 51 des Befehlsregister 89 verglichen, da, wie vorstehend
erläutert, das Bit B1 eines Bezugsbefehls eine binäre
»1« sein muß.
Wenn der Komparator 175 eine Koinzidenz erfühlt, d. h. beim Auffinden des entsprechenden Bezugsbefehls,
erzeugt er eine Ausgabe T. die die Maschine auf die Befehlsextraktionsphase P17 einstellt und bewirkt, daß
der "ViHrki^run^sbit-Sieuerkreis 33 ^F i** I^ in Λ^γ
nächsten Ziffernstelle des Registers Sein Markierungsbit SlS aufzeichnet, das gleich Eins ist. Dann beginnt
die Ausführung des Unterprogramms mit der Extraktion des ersten Befehls, der in der dem Bezugsbefehl
folgenden Ziffernstelle gespeichert ist.
Am Ende der Ausführung des Unterprogramms wird der das UnterDrogramm beendende Wiedereintrittssprungbefehl
extrahiert und im Befehlsregister 89 gespeichert. Der Decoder 91 berücksichtigt, wenn er
diese Art von Sprungbefehl oder seinen entsprechenden Bezugsbefehl decodiert. B1 nicht. Auf diese Weise
erregt er einen Ausgang F3.14 bis F3.n, wenn im Befehlsregister 89 sowohl diese Art von Sprungbefehl
als auch der entsprechende Bezugsbefehl gespeichert sind. Die Maschine schaltet auf die Phase P 29 um.
In diesem Fall beginnt jedoch die Suche nach dem entsprechenden Bezugsbefehl vielmehr an der ersten
Ziffernstelle des Speicherregisters Pi als am Anfang des Registers, in dem der den Sprung einleitende
Bezugsbefehl auftrat.
Das Erregen von einem der Ausgänge F3.14 bis Fi.π
setzt ebenfalls die bistabile Einrichtung A 15. die bewirkt, daß der Markierungsbit Steuerkreis 33 die
Regenerierung der Bus S ISblockiert, um das S IS. das
gleich Eins ist. zu loschen, das in der Ziffernstelle
gespeichert ist. welche dem Bezugsbefehl am Ende der Unterroutine entspricht.
Die Suche nach dem Bezugsbefehl wird nochmals in gleicher Weise wie vorher mittels des Komp.iralors 175
durchgeführt. Wenn er den Bezugsbefehl findet, erzeugt er wieder das Ausgangssignal T. das die bislabile
Einrichtung A 15 zurücksetzt und den Markierungsbit Steucrkreis veranlaßt, ein BiI S 1 B. das gleiche Eins ist.
in die nächste Ziffernstelle des Registers B /u schreiben.
Die Suche wird jedoch seriell durchgeführi; deshalb wird, wrnn der Komparator 175 den Bezugsbefehl
findet, dieser Bezugsbefehl durchgelassen und steht demzufolge zum Lesen nicht langer zur Verfugung, so
daß er gelesen werden muß. um ihn wieder in den entsprechenden Sprungbefehl umzuwandeln. Der Komparator 175 erzeugt die Ausgabe Tundj bewirkt, daß der
Addierer 35 in vorstehend beschriebener Weise als' Zähler* mit dem Register K verbunden ist und 31
Ziffer'fistelten zählt* und zwar ausgehend von der auf den
vom Komparator 175 erfühlten ßezugsbefehl folgenden
Ziffernstelle, Wenn der Zähler die Zahl 3i erreicht, wird
der Bezugsbefehl nochmals aus der Verzögerungsleitung LDR gelesen, und der Zähler erzeugt eine
Ausgabe, die bewirkt, daß die Markierungsbit-Steuerung
33 die Regenerierung des Bits B1, das gleich Eins
ist, des Bezugsbefehls blockiert, wodurch dieser wieder in den entsprechenden Sprungbefehl umgewandelt wird.
Jetzt nimmt die Maschine die Ausführung des Hauptprogramms wieder auf und extrahiert den auf den
wiederumgewandelten Sprungbefehl folgenden Befehl.
Diese Sprungbefehlsart kann eindeutig zum Ausführen verschachtelter Unterprogramme verwendet werden.
Der Sprung von einem ersten Unterprogramm auf ein hinter dem ersten Unterprogramm liegendes
zweites Unterprogramm und der Rücksprung auf das erste Unterprogramm können in vorstehend beschriebener
Weise ausgeführt werden, ohne die Fähigkeit der Maschine, auf ein früheres Unterprogramm oder auf das
Hauptprogramm zurückzuspringen, zu beeinträchtigen.
Hierzu 4 Blatt Zeichnungen
030 264/18
Claims (1)
- Patentanspruch:Elektronischer Rechner zum A.usführen eines in einem Speicher gespeicherten, aus einem Hauptprogramm und mindestens einem im Speicher hinter dem Hauptprogramm stehenden Unterprogramm bestehenden Programms, wobei das Hauptprogramm mindestens einen ein vorbestimmtes Etikett enthaltenden Sprungbefehl und jedes Unterprogramm als ersten Befehl einen zugeordneten Bezugsbefehl aufweist, der das vorbestimmte Etikett enthält, und jedes Unterprogramm mit einem das vorbestimmte Etikett ebenfalls enthaltenden Wiedereintrittsbefehl endet, wobei der Rechner ein Suchregister enthält, das jeweils das vorbestimmte Etikett zeitweilig speichert, um eine Befehlsausführungsvorrichtung so zu steuern, daß bei Ausführung des Sprungbefehls der Bezugsbefehl mit demselben Etikett und bei Ausführung des Wiedereintrittsbefehls der Sprungbefehl mit demselben Etikett jeweils in einem am Speicheranfang beginnenden Suchlauf aufgefunden wird, dadurch gekennzeichnet, daß der Sprungbefehl einen zusätzlichen Code mit einem ersten Wert, der Bezugsbefehl und der mit dem Bezugsbefehl im Aufbad gleiche Wiedereintrittsbefehl jeweils einen zusätzlichen Code mit einem zweiten Wert besitzt, daß bei Ausführung des Bezugsbefehis der zusätzliche Code des Sprungbefehls den zweiten Wert erhält und daß nach Ausführung des Wiedereintrittsbefehls und nach Auffindung des mit dun zusä /liehen Code mit dem zweiten Wert versehenen Sprungbefehls dieser zusätzlichen Code des Sprun. l/efehls wieder den ersten Wert erhält, so daß in dem der Bearbeitung des Wiedereintrittsbefehls folgenden Suchlauf vom Anfang des Speichers an der mit dem zusätzlichen Code mit dem zweiten Wert versehene Sprungbefehl aufgefunden wird und durch Umwandlung des zusätzlichen Code in den ersten Wert der Sprungbefehl in seinem ursprünglichen Aufbau wieder hergestellt wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT5383068 | 1968-11-11 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1957600A1 DE1957600A1 (de) | 1970-06-11 |
DE1957600B2 DE1957600B2 (de) | 1980-05-08 |
DE1957600C3 true DE1957600C3 (de) | 1981-01-22 |
Family
ID=11285441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1957600A Granted DE1957600B2 (de) | 1968-11-11 | 1969-11-11 | Elektronischer Rechner |
Country Status (8)
Country | Link |
---|---|
US (1) | US3636523A (de) |
JP (2) | JPS4936143B1 (de) |
BE (1) | BE741352A (de) |
CH (2) | CH501272A (de) |
DE (1) | DE1957600B2 (de) |
ES (1) | ES373426A1 (de) |
FR (2) | FR2023007A1 (de) |
SE (1) | SE357075B (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1000642B (it) * | 1973-12-28 | 1976-04-10 | Olivetti & Co Spa | Calcolatore elettronico con unita di lettura scrittura di un suppor to magnetico |
US4091446A (en) * | 1975-01-24 | 1978-05-23 | Ing. C. Olivetti & C., S.P.A. | Desk top electronic computer with a removably mounted ROM |
DE2617485C3 (de) * | 1976-04-22 | 1980-09-18 | Nixdorf Computer Ag, 4790 Paderborn | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen |
US4074355A (en) * | 1976-08-16 | 1978-02-14 | Texas Instruments Incorporated | Digital microprocessor system with shared decode |
US4064554A (en) * | 1976-08-16 | 1977-12-20 | Texas Instruments Incorporated | Microcomputer with code conversion |
SE413707B (sv) * | 1977-02-28 | 1980-06-16 | Ellemtel Utvecklings Ab | Anordning hos en programminnesstyrd telekommunikationsanleggning |
US4419726A (en) * | 1981-01-16 | 1983-12-06 | Sperry Corporation | Instruction decoding in data processing apparatus |
-
1969
- 1969-11-06 BE BE741352D patent/BE741352A/xx unknown
- 1969-11-07 FR FR6938517A patent/FR2023007A1/fr not_active Withdrawn
- 1969-11-07 US US874898A patent/US3636523A/en not_active Expired - Lifetime
- 1969-11-07 FR FR6938516A patent/FR2023006A1/fr not_active Withdrawn
- 1969-11-10 CH CH1671369A patent/CH501272A/it not_active IP Right Cessation
- 1969-11-10 CH CH1671269A patent/CH501969A/it not_active IP Right Cessation
- 1969-11-10 SE SE15381/69A patent/SE357075B/xx unknown
- 1969-11-11 JP JP44089796A patent/JPS4936143B1/ja active Pending
- 1969-11-11 ES ES373426A patent/ES373426A1/es not_active Expired
- 1969-11-11 DE DE1957600A patent/DE1957600B2/de active Granted
- 1969-11-11 JP JP44089795A patent/JPS4936142B1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE1957600A1 (de) | 1970-06-11 |
FR2023006A1 (de) | 1970-08-07 |
JPS4936142B1 (de) | 1974-09-27 |
CH501272A (it) | 1970-12-31 |
FR2023007A1 (de) | 1970-08-07 |
CH501969A (it) | 1971-01-15 |
US3636523A (en) | 1972-01-18 |
ES373426A1 (es) | 1972-03-16 |
SE357075B (de) | 1973-06-12 |
DE1957600B2 (de) | 1980-05-08 |
JPS4936143B1 (de) | 1974-09-27 |
BE741352A (de) | 1970-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1901343C3 (de) | Datenverarbeitungsanlage zur Ausführung von Mateirenrechnungen | |
DE1524136A1 (de) | Parallel-Serien- bzw. Serien-Parallelwandler | |
DE1282337B (de) | Programmgesteuerte elektronische Rechenanlage | |
DE2519381B2 (de) | Verfahren und Informationsverarbeitungseinrichtung zum Komprimieren von aus mehreren seriell angeordneten Aufzeichnungen bestehender Information | |
DE1474062B2 (de) | Datenverarbeitungsanlage mit einer anzahl von pufferspeichern | |
DE1288144B (de) | ||
DE1449544A1 (de) | Datenverarbeitende Maschine mit ueberlappend abrufbarem Speicherwerk | |
DE1774943B2 (de) | Dateneingabeeinrichtung Ausscheidung aus 1474025 | |
DE1957600C3 (de) | ||
DE2054941C2 (de) | Anordnung zur Auswahl von Datensätzen | |
DE1499191B2 (de) | Elektronische einrichtung fuer eine datenverarbeitungsanlage | |
DE2136210A1 (de) | Zentraleinheit fur eine EDV-Anlage | |
DE1499713A1 (de) | Verfahren und Schaltungsanordnung zum Packen von Informationen in einem zyklisch umlaufenden Speicher mit wahlfreiem Zugriff zu den auf den Spuren befindlichen Speicherzellen | |
DE1119567B (de) | Geraet zur Speicherung von Informationen | |
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE1221037C2 (de) | Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens | |
DE1474376A1 (de) | Verfahren und Anordnung zum schnellen Zugriff bei grossen seriellen Speichern | |
DE1474017C3 (de) | Datenverarbeitungsanlage | |
DE1184122B (de) | Addiervorrichtung | |
DE1276375B (de) | Speichereinrichtung | |
DE1774111C3 (de) | Digitale Datenverarbeitungsanlage mit einem Druckorgan | |
DE2419836B2 (de) | Schaltungsanordnung zur durchfuehrung von unterprogramm-sprungbefehlen in datenverarbeitungsanlagen | |
DE1424746A1 (de) | Datenverarbeitungsanlage | |
DE1449581B2 (de) | Vorrichtung zum auslesen eines rechenmaschinen grosspeichers | |
DE2216533C3 (de) | Anordnung zur Steuerung der Durchführung mehrerer Aufgaben in einer DTENVERARBEITUNGSANLAGE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |