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
Application number
DE1957600A
Other languages
English (en)
Other versions
DE1957600A1 (de
DE1957600B2 (de
Inventor
Giovanni De Dr.-Ing. Mailand Sandre
Angelo Dr.-Ing. Ivrea Turin Subrizi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telecom Italia SpA
Original Assignee
Ing C Olivetti and C SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ing C Olivetti and C SpA filed Critical Ing C Olivetti and C SpA
Publication of DE1957600A1 publication Critical patent/DE1957600A1/de
Publication of DE1957600B2 publication Critical patent/DE1957600B2/de
Application granted granted Critical
Publication of DE1957600C3 publication Critical patent/DE1957600C3/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/04Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

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.3 ein Diagramm der durch die Zeitsteuerschaltung nach F i g. 2 erzeugten Taktimpulse,
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
Hoc ProrpKnic in Hnc RpcriQtf»r 4 rl h in
symbolischer Form:
F 1.2) Subtraktion:
Entsprechend Y *-M,(A -M) *-A\
F13) Multiplikation:
Entsprechend Y-+M,(A ■ M)^A-.
F1.4) Teilung:
Entsprechend Y-* M. (A :M)-*A;
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:
Übertrage den Inhalt des Registers Y in das
Register Λ, d. h. in symbolischer Form Y-* A;
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:
Springe auf den mit Hilfe des Kode Y Etikettes
erkennbaren Befehl;
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
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.
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
R 1 HpCCPI* RpHplttllniT rtir*Kl ιιηΚβΛΐηίτ! rriil Af^r in Hipcpr
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
Rpaictprc IC hlpiht vnn Hpm ImnuU A4Δ. ipHpr RitnppinHp
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.
Im PaIIp pinpc RaTaMc HrittAn F^TTHiiS wir« einer der
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)

  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.
DE1957600A 1968-11-11 1969-11-11 Elektronischer Rechner Granted DE1957600B2 (de)

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)

* Cited by examiner, † Cited by third party
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

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