DE2217565A1 - Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet - Google Patents

Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet

Info

Publication number
DE2217565A1
DE2217565A1 DE19722217565 DE2217565A DE2217565A1 DE 2217565 A1 DE2217565 A1 DE 2217565A1 DE 19722217565 DE19722217565 DE 19722217565 DE 2217565 A DE2217565 A DE 2217565A DE 2217565 A1 DE2217565 A1 DE 2217565A1
Authority
DE
Germany
Prior art keywords
address
register
base
relative
command
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.)
Ceased
Application number
DE19722217565
Other languages
English (en)
Inventor
Lewis R. Minneapolis; Hervig Eugene E. South St Paul; Oehlers Kenneth J. Burnsville; Minn. Carlson (V.StA.). M G06f 15-20
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.)
Sperry Corp
Original Assignee
Sperry Rand Corp
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 Sperry Rand Corp filed Critical Sperry Rand Corp
Publication of DE2217565A1 publication Critical patent/DE2217565A1/de
Ceased 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing

Description

PATENTANWALT
H. F. E L L M E R
6271 D STEIN
FRIEDhNSSTRASSE 29/31
TELhFON: IDSTEIN 8237
ERA-2031 2277565
P 133024
SPERRY RAND CORPORATION, New York, N. Y./USA Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet
Die Erfindung betrifft den Steuerteil eines digitalen Rechenautomaten zur relativen Adressierung von Befehlen in unabhängig arbeitenden Programmen,
Bei den heutigen Rechenautomaten, die mit außergewöhnlich hohen Rechengeschwindigkeiten arbeiten, möchte man mehrere unabhängig arbeitende Programme, die als "Arbeitsprogramme11 bezeichnet seien, im Hauptspeicher unterbringen und ein ausführendes Programm aur Verfugung haben, das die Reihenfolge festlegt, in der die verschiedenen, in den Arbeitsprogrammen enthaltenen Befehle ausgeführt werden. Die auvor genannte Arbeitsweise, bei der mehrere unabhängige Arbeitsprogramme unter der Steuerung eines ausführenden Programms ausgeführt werden, wird im englischen Sprachgebrauch als "time-sharing1* bezeichnet. In derartigen Systemen möchte man häufig von einem äußeren Speicher neue Arbeitsprogramme in den Hauptspeicher des Rechenautomaten übertragen, sowie am Schluß eines gegebenen Arbeitsprogrammes derartige Programme aus dem Hauptspeicher herausnehmen. Ferner kann bei Direktübertragungen das ausführende Programm festlegen, daß eine vorgegebene Aufgabe eine höhere Priorität besitsen soll, damit die Steuerung von dem gerade ausgeführten Arbeitsprogramm auf ein anderes Arbeitsprograma umgeschaltet wird, das eine Aufgab· mit einer höheren Priorität enthält. Hierbei ist normalerweise eine Umbesetsung der Arbeitsprograaee innerhalb des Hauptspeichers des Rechenautomaten notwendig.
In komplisierten Direktübertragungssystemen a. B. bei der Sitaplatareservierung in Flugseugen oder bei Inventarkontrollen usw. würde es für den Programmierer praktisch unmöglich sein, für feste Spelcherbesirke xu sorgen, in denen die Arbeitsprogramme vorübergehend an einer absoluten Basisadresse gespeichert werden könnten. Daher sind Verfahren entwickelt worden, um die Arbeitsprogramme ru einer relati-
209851/1011
ven Basisadresse eines Hauptspeichers zu übertragen. In der USA-Patentschrift Nr. 3.389.360 ist beispielsweise ein System beschrieben, in dem ein spezieller Befehl zu einer Ausgangsbasisadresse und die Adresse eines zu verarbeitenden Operanden au einer Ausgangsbasisadresse, bei der die Operanden im Hauptspeicher untergebracht werden, in Beziehung gesetzt wird. Ein gesonderter Satz Register ist dann zum Speichern der Basisadresse der Befehle vorgesehen, und eine Schaltung addiert den Inhalt eines gewählten Basisadressen-Registers mit der relativen Adresse des Befehls oder Operanden, um die absolute Adresse zu bilden, die für einen Zugriff zum Hauptspeicher benötigt wird. Solange wie die Befehle und Operanden eines vorgegebenen Arbeitsprogramms bezüglich eines bekannten Demarkationspunktes gespeichert werden, ist es einfach, die Arbeitsprogramme dadurch umzuordnen, daß bloß der Inhalt des Basisadressen-Registers geändert wird, das dem Arbeitsprogramm zugeordnet ist·
Wie beim Gegenstand der USA-Patentschrift Nr. 3.389.380 geht die Erfindung von einem System für das Arbeiten mit einer relativen Basisadresse aus, um die Verlegung des Programme innerhalb des Hauptspeichers su erleichtern.
Die Verbesserung besteht darin, daß ein beträchtlich geringerer Aufwand an Schaltungen erforderlich ist, um das Merkmal der relativen Basisadressierung zu realisieren.
Der Erfindung liegt die Aufgabe zugrunde, ein relatives Basisadressiersystem für einen Rechenautomaten anzugeben, um die Ausführung der hinsichtlich der Zeit eingeteilten Programme und die erneute Anordnung von Arbeitsprogrammen innerhalb des Hauptspeichers eines Rechenautomaten zu erleichtern.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden ausführlich erläutert. Es stellen dar:
Figur 1 ein Blockschaltbild einer datenverarbeitenden Anlage, in der die Erfindung zur Anwendung kommt,
209851/1011
"Figur 2 den Aufbau eines Befehlswortes für den Rechenautomaten der Figur 1,
Figur 3 den Aufbau eines Wortes, das im P-Register (Programmsteuer-Rogister) gespeichert wird,
Figur 4 eine Schaltung in Blöcken, von der Befehlsadressen erzeugt werden, und
Figur 5 die Zuweisung der Speicheradressen für die Programme im Hauptspeicher des Rechenautomaten.
Im Blockschaltbild der Figur 1 ist ein Abschnitt einer zentralen,, datenverarbeitenden Anlage eines Rechenautomaten wiedergegeben, in der die relative Adressierung gemäß dar Erfindung angewendet wird. Diese Anlage weist sämtliche Steuer-,Rechen- und Zeifcgeberschaltungen zur Bearbeitung der Daten auf. Der gesamte Rechenautomat kann fernerhin zusätzliche, zentrale, datenverarfeei tuende Anlagen, Ein«-/Ausgabe-Steuerschaltungen und periphere Geräte enthalten» die der Informationsein- und -ausgabe dienen*. Da die Schalfciang zur Ausftilmmg der Erfindung prinzipiell im Steuerteil dieser Anlage untergebracht ist, sind dae Rechenwerk und der Hauptspeicher i;j,r als Blecke dargestellt. Die mit einer eingekreisten Zahl verselianea Vcrbindungsleitung^n geben die Anzahl der zu einem Kabel zusararaeßgsfaSten Leiter an, über die die Daten zwischen den Registern des Rechenautomaten parallel übertragen werden.
Alle zentralen, datenverarbeitenden Anlagen des Systems verfugen über eine Befehlsschiene 10 und eine Operandenschiene 12, die je aus mehreren Daten- und Befehlsleitungen bestehen können« Diese beiden Schienen ermöglichen eine Übertragung zwischen der zentralen, datenverarbeitenden Anlage und den Hauptspeicher 14«
Innerhalb des Steuerteils ist ein Steuerspeicher 16 mit zufallsverteiltem Zugriff als gestricheltes Rechteck angegeben. Dieser enthält mehrere adressierbare Flipflop-Register, die Akkumulatordaten und solche Daten aufnehmen, die zur Abänderung des Operanden-Adreßteiles des Befehlswortes verwendet werden. Innerhalb des Steuerspeichers 16
209851/1011
sind eine Bank Indexregister 18 und eine Bank Basisregiater 20 vorgeüdhe-i. Der Zugriff su dem mit hoher Geschwindigkeit ansprechenden Steuerspeicher 16 benötigt eine weit kürzere Zeit als der zum Hauptspeicher 3 4; daher bildet der Zugriff zum Steuerspeicher einen Teil dor Steuerfolge, Ehrend der die Zeit festsetzende Hauptoszillator gerade !Stift* Dar Inhalt eines speziellen Indexregisters 18 oder Basisreg::5 rit.^rs ;ί': >*nn von einer logischen B- bzw. 5-Adressenwahlschaltun.t 22 b ?·>;.. .; ■·,. auBgewählt herden, Insbesondere wird mit Hilfe der Ic:*is■■■--':■.■ ■■■.: 'Λ - ; ^P'-^-enwaM schau twig 22 ein Indexregister 18 innerhalb Ι-.:r :---.r-k }:ei'irh':. c-; das durch eiüe '■"•!Ordnung einer Kombination der !■:' r.;v i€3 %e~::i->V .in des Fefshl-?wrr-:.es festgelegt wird, wie anschließen,: in Ve:"bi;u;n:ig alt deüt lii^au -les Befehlswortes beschrieben ist. Die Art u:i.;i Weise, wie die verschiedenen Bits eines Befehlswortes decodiert, und zur Auswahl eines Registers Terwendet werden, ist an sich bekannt*
In derselben Weise, wie die logische B-Adressenwahlschaltung 22 das betreffende Indexregister 18 auswählt, wählt auch die S-Adressenwahl-3chaltung 24 ein Basisregister 20 in der entsprechenden Bank des Steuerspeichers 16 aus. Auch hler weist das (noch su erläuternde) Befehlswort eine Anzahl Bits im Kennteil auf, der nach seiner Aktivierung durch die S-Adressenwahlschaltung 24 das eine Basisregister 20 auswählt .
Im Steuerteil befindet sich ferner ein P-Register 26 (Prograaasteuer-Register), das gemäß Figur 3 20 Bits aufnehmen kann, von denen die drei bedeutsamsten als binäre Signale das eine Basisregister 20 identifizieren; die unteren 16 Stufen (d-Feld) können Signale von zweitrangiger Bedeutung enthalten, die die relative Adresse dee nächsten Befehles angeben· Dieses d-Feld wird normalerweise jedesmal um Eins vergrößert, venn ein laufender Befehl ausgeführt wird, um das Abrufen des nächsten Befehls vorzubereiten. Im Falle eines sog. Sprungbefehles kann aus der normalen Folge heraus eine neue Adresse· in das P-Register 26 eingeführt werden. Wenn ein übergang su einer anderen Routine stattfindet, kann entweder ein P8- oder P^-FeId geändert werden,
2 0 9 8 51/1011
Der Steuerteil der zentralen, datenverarbeitenden Anlage enthält auch zwei Addierschaltungen 28 und 30, die an den zur Befehlsausführung gehörenden Operationen teilnehmen. Verschiedene Felder aus dem Befehlsregister und anderen adressierbaren Registern müssen ausgewertet und ihre funktionellen Grenzen müssen kombiniert werden, um die Adressen und Rechenoperanden zu bilden· Die Addierschaltung 28 ist ein Indexaddierer unter Verwendung dee Einser-Komplementes und dient mehreren Zwecken· Während eines P-Vorschubs addiert sie eine Eins zur Befehlsadresse aus dem P-Register 26, um die Adrasse des nächsten Befehles zu bilden« Dann addiert sie während der Indisisrung den Inhalt des gewählten Indexregisters 18 zum Operanden-Adreßteil des Befehlswortes«
Die Addierechaltung 30 ist ein Basisregister-Addierer unter Benutzung eines Zweier-Komplementes, von dem der Inhalt des Basisregisters 20 zu den aus der Addierschaltung 23 empfangenen Daten hinzugezählt wird. Die Arbeitsweise dieser beiden Addierer ist in Verbindung mit der Figur 4 näher beschrieben, wenn die Indizierung und die relative Adressierung erklärt werden«
Ein !-Register 32 dient hauptsächlich als. Halteregister für Befehlsund Operanden-Zwischenstop-Vergleiche· In dieser Funktion empfängt es die abgeänderte Befehls- oder Operandenadresse aus der Addierschaltung 30« Ein H-Register 33 dient als Übertragungs-Register, das die Befehlsadresse, die beim P-Vorschub abgeändert wurde, zu einem C-Register 34 und zu» P-Register 26 zurücklenkt·
Das C-Register 34 dient als Steuerregister zwischen den verschiedenen Abschnitten der zentralen, datenverarbeitenden Anlage, insbesondere als Zwischenstufe zwischen dem Rechenwerk und dem Steuerteil, dem Steuerspeicher und dem Steuerteil und zwischen den Registern des Steuerteils selbst. Das C-Register 34 kann 32 Bits der einzugebenden Daten aus den verschiedenen Registern aufnehmen und 32 Bits der auszugebenden Daten zu diesen Registern übertragen, wie an den Ein- und Ausgabeleitungen gezeigt ist«
209851/1011
Der Aufbau des in Rechenautomaten verwendeten Befehlswortes 1st In Figur 2 wiedergegeben. Das gesamte Befehlswort enthalt mehrere Kennteile f, a, k, bt i, s und y. Der f-Kennteil ist ein Funktionscode und legt die ausauführende Operation fest. Der b-Kenntell, der die Bits 17 bis 19 umfaßt, gibt die einaelnen Indexregister 18 in der betreffenden Bank an. Der die Bits 13 bis 15 einnehmende a-Kennteil des Befehlswortes dient der Auswahl eines Basisregleters 20, Das aus 13 Bits bestehende y-Feld kann als Operanden-Kennteil betrachtet werden» liefert die Basis für die Erzeugung der Operandenadresse und definiert in Kombination mit dem Inhalt des s-Feldes eine Konstante, die aur Bildung des tataächlichen Operanden, einer Sprungadresse, einer indirekten Adresse oder einer Reihe von Identifiaierbits abgeändert werden kann· Da die a-, k- und i-Kennteile nioht für die Besonderheiten der relatxven Adressierung benötigt werden, seien sie nicht weiter behandelt·
Ein Befehlsregister 36 (Figur 1) ist aus swei Abschnitten, nämlich einem unteren U-Register 38 und einem oberen U-Regiater 40 aufgebaut und hält den ausauführenden Befehl fest, damit die Zuordnung der verschiedenen Kennteile des in ihm enthaltenen Befehlswortes stattfinden kann· Die ΰ-Register 38 und 40 können je 16 Bits aufnehmen. Im allgemeinen werden der Funktionscode und die verschiedenen Kennteile im oberen U-Register 40 untergebracht, und die Hauptspeioheradresse des zu bearbeitenden Operanden wird in der relativen Form im unteren U-Register 38 beibehalten. Während des normalen Programmablaufes treten die Befehle vom Hauptspeicher 14 über die Befehlsschiene 10 in das Befehlsregister 36 ein. Insbesondere werden die im Hauptspeicher 14 untergebrachten Befehlsworte vom Inhalt eines P^-Registers 41 (Hilfs-Programmregister) adressiert, das die Adresse des im Programm folgenden Befehls festhält. Die Adresse wird über die Befehlsschiene 10 mit Hilfe von I-Treibern 42 eingegeben. Die Befehlsschiene 10 be- , steht aus swei Gruppen von Bitleitungen, die je 16 Bits übertragen. Die erste Gruppe übertragt in beiden Richtungen, also die Befehlsadresse aus 16 Bits vom P*-Reglster 41 sum Hauptspeicher 14 und außerdem die unteren 16 Bits des Befehles selbst vom Hauptspeicher 14 zum unteren U-Register 38. Die »weite Gruppe Leitungen überträgt nur in einer Richtung, nämlich nur die oberen l6 Bits des Befehlswortes aus dem Hauptspeicher 14 «um oberen U-Register 40.
209851/1011
7*> *> ·*ί *Ίι
Sobald ein Befehl in das BefeiaisregisteÄ3 3<δ ©ing® speist IBt0 & einem fo-Zuordner 44 and einer- logiseh©a 1» ©des1 P^tssesahlschaltmng 46 für die nachfolgende Zuordnung des fwük"&±®n&©od® iaad £U.f die Op deiiaclressierung aur Verfügung,
Ein M~Register 48 dient als OperaadeE-lmseliea^egisfeeF ®tiLBGb&n sentralen, datenverarbeitenden Anlage wcid d@n HaMptspsieSaer 14σ bei überträgt" es -eine %eras(ie!!aete,oess© odes3 eixson öporaadea aus dem Steuerteil oder dem !©©fesiMssFk od©s° MnMt diesen sm£υ w& ilaa auszuwerten, zu lesen .oder sm spsielies^o ®e@ M-Rogigjfe©^1 4-β dieses? !be vorzugten Ausfühningsforia hat eine JJäMge t?ob 32 Bits0 laad.Jeä© Sfem1© liefert bzw* empfängt über O-freib©^ fO C ßpe^aadesa-Tr^il^QE3! Βα·δ@ϊΐ aa die bzw« aus der Datenscliieia© 12 o WäliF©^ des» Ope^aad^Bgua^^s^femag nimmt das Register 4δ eise ©pe^aMesadre©©® wom 18 Bifes aus dtes? schaltung 30 auf und uberSaragfc sie über die Operandenseliiesie 12 Hauptspeicher 14· Während lies Leseirorganges wird der bei der Operandenadresse abgerufene Operand Yom Hauptspeicher 14 über die Operandenschiene 12 zum H-Register 48 und weiter zum Rechenwerk der seatra len, datenverarbeitenden Anlage ütoertrageE«, Während der Operandenspeicherung werden die Daten aus dem Rechenwerk zum M-Eegister 43 und anschließend zur Unterbringung in den Hauptspeicher 14 geleitet·
Ein U-Zuordner 52 ändert den y-Operanden (y-Kemteil des Befehlswortes) unter der Programmsteuerung ab. Normalerweise wählen die Bits 19, 18 und 17 des Befehlsregisters 36, also die des b-Kennteiles hierzu das Indexregister iA Steuerspeicher 16 aus·
Nachden die verschiedenen, in der zentralen, datenverarbeitenden Anlage benutzten Register bezüglich ihrer Funktion erläutert sind, sei nun im einzelnen betrachtet, wie das y-Feld eines Befehles unter der Programmsteuerung nach Figur 4 abgeändert werden kann.
Wie bereits angegeben, nieat das y-Feld eines Befehlswortes die Bits 0 bis 12 im unteren U-Register 38 ein. Bei der Indizierung wird der Kennteil des Operanden dadurch verändert, daß zu ihm der Inhalt eines Indexregisters 13 und/oder Basisregisters 20 addiert wird, das
209851/1011
im Steuerspeicher 16 untergebracht ist. Die Auswahl des speziellen Index- oder Basisregisters wird durch den b- bzw. s-Kennteil des Befehlswortes bestiemt. Ein spezielles Indexregister wird durch die Zuordnung einer Kombination von 4 Bits ausgewählt. Die logische B-Auswahlschaltung 22 schleust die Daten aus dem gewählten Indexregi- / ster des Steuerspeichers in die Addierschaltung 28 ein. Die Daten werden aus dem gewählten Indexregister unter Mitwirkung eines Schaltsignals SEL B hindurchgelassen, das von (nicht gezeigten} Zeitgeberund Steuerschaltungen entwickelt wird. Der Kennteil des .Operanden aus dem unteren U-Register 38 wird über die logische U- oder P-Auewahlschaltung 46 zum zweiten Eingang der Addierschaltung 2Θ hindurchgeleitet. Wenn ein Schaltsignal an einer Leitung U-SEL erscheint, wird die um Null erweiterte y-Adresse in der Addierschaltung 26 zum Inhalt des gewählten Indexregisters hinzugefügt« Die um Null erweiterten, von der Addierschaltung 28 abgegebenen Daten und der Inhalt eines gewählten Basisregisters werden zur Addierschaltung 30 übertragen, und die sich ergebende Summe wird in das M-Register 48 eingebracht, wo sie zur Auswahl eines speziellen Registers im Hauptspeicher zur Verfügung steht. Die Abänderung der Operandenadresse durch die Hinzufügung des Inhaltes eines gewählten Indexregisters wird als B-Indizierung bezeichnet und ist dem Fachmann geläufig·
Die /-Operandenadresse kann auch dadurch abgeändert werden, daß ihr der Inhalt eines Basisregisters, sowie der Inhalt eines Indexregisters hinzugefügt wird. Zu diesem Zweck wird der Inhalt der Addierschaltung 28 gemeinsam mit da» von der S-Adressenwahlschaltung 24 abgegebenen Signalen als Eingang der Addierschaltung 30 zugeführt· Die Summe Ϊ - y + B^ + Ss wird zum Y-Register 32 und zum M-Register 48 übertragen. Wenn das Operandenadressenfeld in der unveränderten Fora verwendet wird, brauchen nur ein spezielles Index- und Basisregister gewählt zu werden, in dem nur Nullen enthalten sind.
Das P-Register 26 enthalt in zwei unterschiedlichen Feldern die Befehleadresseninforaation. Eine relative Adresse, die jedesmal, wenn ein Befehl ausgeführt wird, erhöht wird, wird im d-Feld (Figur 3Ϊ festgehalten. Durch das s-Feld wird eins von den acht Basisregisteria angegeben, von de« die relative Adresse d abgeändert wird, um die IF-
209851/1011
fektive Adresse au erzeugen. Dieselbe Schaltung, die den Kennteil der Operandenadresse abändert, ermöglicht auch die Veränderung des d-Kennteiles des P-Registers. Im einzelnen werden die Bits O bis 15 des P-Registers 26 einem weiteren Eingang der U- oder P-Auswahlschaltung 46 zugeleitet, die ihrerseits einen Eingang zur Addierschaltung 28 darstellt. Bei der Abänderung der Befehlsadresse wird aus der logischen B-Adressenwahlschaltung 22 da3 Signal +1 der Addierschaltung 28 zugeführt, damit der geänderte Inhalt des d-Iennteiles als Eingangssignal an der Addierschaltung 30 erscheint. Gleichseitig wird der Inhalt eines Basisregisters 20 über die logische S-Adressenwahlsehaltung 24 als «weites Eingangssignal auf die Addierschaltung 30 gegeben. Das spezielle Basisregister 20 wird durch die Permutation des s-Kennteiles im P-Register bestlernt. Von der Addierschaltung 30 wird daher der Inhalt des gewählten Basisregisters sum abgeänderten d-Kennteil des P-Registers addiert und das Ergebnis ins I-Regieter 32 gebracht.
Nach der vorangehenden Beschreibung der verschiedenen, in der zentralen, datenverarbeitenden Anlage verwendeten Register sei nunmehr betrachtet, wie die im Hauptspeicher untergebrachten Programme effektiv verschoben werden können, wobei von der Tatsache erfolgreich Gebrauch gemacht wird, daß der Inhalt des P-Register3, also .die Adresse des nächsten Befehls in der relativen Form beibehalten wird.
Der Hauptspeieher 14 des Rechenautomaten speichert die Arbeitsprogramme und Daten, aufgrund deren der Rechenautomat die Berechnungen vornehmen soll. Figur 5 leigt schematisch einen Teil des Hauptspeichers und die Speicheradressen-Zuweisungen für ein besonderes Programm· Um anschaulich su machen, wie die Programme erneut innerhalb des Hauptspeichers angeordnet werden können, sei angenommen, daß ein vom Rechenautomaten aussuführendes Programm im Hauptspeicher, ausgehend von einer Adresse A, gespeichert sei, und daß nach der Ausführung mehrerer aufeinanderfolgender Befehle ein Übergang su einer Subroutine stattfindet, deren erster Befehl bei einer Adresse untergebracht 1st, die um einen Betrag b gegenüber einer anderen, willkürlichen Adresse B versetst 1st· Bevor die Subroutine beendet werden kann, lenkt die ausführende Routine das anfängliche Program in einen neuen Bereich, ausgehend von einer Adresse C. Am Schluß der Subroutine ist es erwünscht
209851/1011
zu dem Punkt Ια Hauptprogramm zurückzukehren, an dem die Befehlsaus» führung aufhörte.
Die untenstehende Tabelle zeigt den Inhalt des ?-Registers 26 und den Inhalt zweier Basi3register 20 an den kritischen Punkten bei der Aus«· führung der zuTor angenommenen Programmoperationen· Die großen Buchstaben bedeuten in der Tabelle die Werte des Basisregisters, während die kleinen die Verschiebungen angeben,
TABELLE
P-Register Indexregister 3 Basisregister 1 Basisregister 2
sd sd
1
I
1
O
»
I
O O
1
I
1
ft
I
a
2 b 1 a
A B
G B,
a la G B
Beim Ablauf des Programs muß die Adresse des ersten Befehls in daa P.Register 26 eingebracht werden« Gemäß der Erfindung wird die Befehlsadresse in der Fora der relativen Adresse beibehalten, damit bet der Bildung der absoluten Adresse der Inhalt eines Basisregisters, . der rom a-Iennteil des P-Registers festgestellt wird, zu dem d-Kennteil (der Verschiebung) addiert werden kann· In der Tabelle wird der erste Befehl des Programms bei der Adresse A gefunden, da die Adree* se A in Basisregister 1 gespeichert ist, das rom e-Kennteil des P-Registers festgelegt wird. Da die Terschiebungsgröße (d-Kennteil) null ist, wird der anfängliche Befehl der Adresse A entnommen· Nach dem Abruf eines Befehls wird die Yerschiebungsgröße (d-Iennteil) i* P-Register 26 selbsttätig ua Ein» rergrößert, damit weitere nachfol-
209851/1011
~n~ 2277565
gende Befehle erhalten und ausgeführt wer&ea«, l&ehdem mehrere aufeinanderfolgende Befehle ausgeführt sind, wie :1s eier Tabelle dra-ch eine, vertikale Reihe Ton Punkten angegeben lst0 ist die Zahl bis siur Ver- , schiebungsgröße^orgerücfct. An diesem Vwusb mlrde die Befehlsadresse die Summe de3 Wertes im Basisregister jUfwiti d&sreh den s-Ienateil bezeichnet) und der VerschiebuiigsgröE© a bilden« tot©?, den obigen Voraussetzungen geht das Programm an uXemw. FwMkt, sm einer Subroutine über, deren anfängliche- Adresse ras b S^fehl^ gegenüber der Adresse E verschoben ist.
Gemäß der Tabelle bewirkt der Spiimg jsur S^äb^OKfeinej, daß der Xsihalt de3 P-Registers in dem Indexregister 3 gespeichert idjrde Dies 1st jedoch eine völlig willkürliche Euor-isinag,, da. amch ein beliebiges^ anderes Indexregister 18 der betreffend©*! B&ak gebraucht werden könnte» Gleichzeitig bringt der Sprurigbefelil swauggläiafig eine a©nse relative Adresse ins P-Register 26· Sfadb, άΦΤ Te,b©ll@ ifipd die absolute Adresse des ersten Befehls der Sabroiifcia© dadtm&t gsfuxiden,' dai der Inhalt des Basisregisters 2, also die Adresse B sur ferscMsbiangsgröße b addiert wird. Bei jeder nadifolgs-nfea lafeiiieamsfuliFiLmg in der Sabromtine wird der Verschiebungs-ieiiafe©!! ^'©Fgrd
Bei der Erläuterung der erneuten P^ö^jse
dung war angenommen, daß das Hasp^p^gi^na Am gehend von der Adresse G, tsmtergeferasat tfsr4@m sollte 9 ehe diese Subroutine beendet werden konnte« Di©©© erneute AßoreLffiang des Programms im Hauptspeicher kann leicht dadurch ©ryeiehfe werden9 daß der Inhalt des Basisregisters 1 bloß von des· «Jresse I aus 'war Adres©e C abgeändert zu werden braucht» Somit ist es nicht erforderlich, daa gesamte Programm nochmals ¥ollBtIndig zn. codieren, einfach weil es gerade innerhalb des Hauptspeichers umgeordnet wurde·
Am Ende der Subroutine wird durch die Hückübertragmng des Inhaltes des Indexregisters 3 «wffl P-Register 26 ein Rückspnmg ausgeführt. ϊί&ηη die absolute Adresse für den nächsten Befehl dadurch berechnet Vfird, daß der Inhalt des betreffeaaen Basiaregisters rait der ?erschiebungsgröße addiert wird, wird das Hauptprograism wieder bei des Befehl aufgenonaen, der bei einer gegenüber der Adresse C um die Zahl
2 0 9 8 51/1011
a verschobenen Adresse angeordnet ist. Wie aus der Tabelle und der Figur 5 erkennbar 1st, ist dies genau der Punkt, an den der Austritt aus dem Hauptprogranm in dem Zeitpunkt stattfindet, an dem zur Subroutine übergegangen wurde·
Aus dem rorangehenden Beispiel, das mit Hilfe der Figur 5 und der Tabelle erklärt ist, ist erkennbar, daß sich mehrere Vorteile aus der Beibehaltung des relativen Adressenformates im P-Register ergeben· Erst einmal ist es nicht nötig, das Programm nochmals su codieren, um seine erneute Anordnung su bewerkstelligen« Außerdem braucht beim Codieren des Hauptprogramms nicht der Ort der ersten Adresse der Subroutine genau festgelegt zu werden· Die Subroutine wird dadurch eingeführt, daß bloß ihre rleative Adresse festgelegt wird (Basisregister 2 und die Verschiebung b in diesem Beispiel). Wenn das Hauptprogranmi erneut angeordnet wird, braucht die Adresse, bei der der Übergang von der Subroutine aus vorgenommen werden soll, nicht herausgesucht und abgeändert au werden· Diese Aufgabe wird dadurch gelöst, daß der Inhalt des Basisregisters 1 abgeändert wird·
Zusammenfassend betrachtet, 1st ein Ablauf einer relativen Adressierung für einen digitalen Rechenautomaten erläutert, die es ermöglicht, daß die Programme aus Befehlen im Hauptspeicher an Plätsen untergebracht werden, die relativ su vorgegebenen Basiswerten, also nicht an absolut vorgeschriebenen Adressen adressiert sind, um eine erneute Anordnung des Programs innerhalb des Speichers su erleichtern· Das P-Register (Programmadressen-Register) ist in swei Abschnitte unterteilt, nämlich in einen Teil aur Wahl des Basisregisters und in einen Verschiebungsteil· Bei der Ermittlung der Befehle wird der Teil sur Wahl des Basisregisters entschlüsselt, um den Inhalt eines gewählten Basisregisters auszulesen, und dieser Inhalt wird sum Versghlebungsteil des P-Registers addiert, um die Adresse des abzufragenden/bu definieren.
209851/101 1

Claims (1)

PATENTANSPRÜCHE
1. Steiierteil eines Rechenautomaten, von des die Befehle in den Arbeitsprogra««en relativ adressierbar sind, dadurch g β -kennseichnet, daß in eines Bit hoher Geschwindigkeit arbeitenden Steuerspeieher (16) mehrere Basisregister (20) diejenigen Basiswerte speichern, die Abschnitten des Arbeitsprograams entsprechen, dsJ ein Progrsjssadressen-Register (26) die relative Adresse des als nächsten ausiuflihrenden Befehls geneinsam alt der Adresse festhält, die sieh in de« den relativen Basiswert aufbewahrenden Basisregister (20) des Steuerspeiehers (16) befindet, und daß eine Addierschaltung (30) für die Basisadresse sur Bildung der effektiven Befehlsadresse den Inhalt des Basisregisters (20) sur relativen Adresse iot Prograaaadressen-Regleter (26) addiert.
2· Steuerteil nach den Anspruch 1, dadurch gekennzeichnet, daß sit Hilfe von (U- oder P-) Auswahlschaltungen (46) der relative Adreßteil eines Befehlswortes sur Bildung der effektiven Adresse eines Operanden auch der Addierschaltung (30) für die Basisadresse sufUhrbar ist«
3« Steuerteil nach de« Anspruch 2, dadurch gekennzeichnet, daft der Steuerspeicher (16) Mehrere Indexregister (18) aufweist, die über eine B-Auswahlsohaltung (22) an eine* Indexaddierer (28) angeschlossen sind, von de« rar Bildung einer abgeänderten, relativen Advmam der Inhalt eines gewählten Indexregisters (18) sur relativen Operandenadresse eines Befehlswortes addierbar ist.
4· Steuerteil nach des Anspruch 3» dadurch g · -kennseiehnet, dafl vo* Indexaddierer (28) der relative AdreAteil der Befehlsadresse, die i* Prograamadressen-Register (26) festgehalten 1st,tür Bildung der Adresse des in dmr Folge nächsten Befehl· in Abwesenheit eines Sprungbefehles ua eine Kinhelt in jede« Zyklus vergrößerbar ist·
209851/1011
5· Steuerteil nach dem Anspruch 3, dadurch gekennzeichnet» daß beim Auftreten eines Sprungbefehles die im Programaadressen-Register (26) festgehaltene Adresse au einen Indexregister (18) übertragbar und durch die relatire Adresse ersetabar ist, die durch den Sprungbefehl bezeichnet ist.
209851/1011
Leerseite
DE19722217565 1971-04-13 1972-04-12 Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet Ceased DE2217565A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13365471A 1971-04-13 1971-04-13

Publications (1)

Publication Number Publication Date
DE2217565A1 true DE2217565A1 (de) 1972-12-14

Family

ID=22459697

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19722217565 Ceased DE2217565A1 (de) 1971-04-13 1972-04-12 Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet

Country Status (6)

Country Link
US (1) US3731283A (de)
AU (1) AU459811B2 (de)
DE (1) DE2217565A1 (de)
FR (1) FR2136373A5 (de)
GB (1) GB1391701A (de)
IT (1) IT957182B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2410491A1 (de) 1973-03-08 1974-09-26 Control Data Corp Datenverarbeitungsanlage
DE2459006A1 (de) * 1973-12-17 1975-07-03 Honeywell Inf Systems Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3815101A (en) * 1972-11-08 1974-06-04 Sperry Rand Corp Processor state and storage limits register auto-switch
US3828316A (en) * 1973-05-30 1974-08-06 Sperry Rand Corp Character addressing in a word oriented computer system
US4251860A (en) * 1978-10-23 1981-02-17 International Business Machines Corporation Virtual addressing apparatus employing separate data paths for segment and offset portions of a virtual address and utilizing only the offset portion to calculate virtual address
CA1223079A (en) * 1984-06-27 1987-06-16 William C. Moyer Data processor having selective breakpoint capability with minimal overhead
US5611065A (en) * 1994-09-14 1997-03-11 Unisys Corporation Address prediction for relative-to-absolute addressing
US5819056A (en) * 1995-10-06 1998-10-06 Advanced Micro Devices, Inc. Instruction buffer organization method and system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
US3470537A (en) * 1966-11-25 1969-09-30 Gen Electric Information processing system using relative addressing
US3461433A (en) * 1967-01-27 1969-08-12 Sperry Rand Corp Relative addressing system for memories
US3510847A (en) * 1967-09-25 1970-05-05 Burroughs Corp Address manipulation circuitry for a digital computer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2410491A1 (de) 1973-03-08 1974-09-26 Control Data Corp Datenverarbeitungsanlage
DE2463200C2 (de) * 1973-03-08 1990-01-18 Control Data Corp., Minneapolis, Minn., Us
DE2459006A1 (de) * 1973-12-17 1975-07-03 Honeywell Inf Systems Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung

Also Published As

Publication number Publication date
US3731283A (en) 1973-05-01
AU459811B2 (en) 1975-03-19
GB1391701A (en) 1975-04-23
FR2136373A5 (de) 1972-12-22
IT957182B (it) 1973-10-10
AU4090672A (en) 1973-10-11

Similar Documents

Publication Publication Date Title
DE1952374C3 (de) Informationsverarbeitendes System mit einer Adressiervorrichtung
DE2912287C3 (de) Datenverarbeitungsanlage
DE1178623C2 (de) Programmgesteuerte datenverarbeitende Maschine
DE1524102C3 (de) Elektronische, aus Baueinheiten aufgebaute Datenverarbeitungsmaschine
DE2130299A1 (de) Eingabe/Ausgabe-Kanal fuer Datenverarbeitungsanlagen
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE1499182A1 (de) Elektrische Datenverarbeitungsanlage
DE2364408A1 (de) System zur erstellung von schaltungsanordnungen aus hochintegrierten chips
DE2646296A1 (de) Assoziative elektronische schaltungsanordnung aus digitalen prozessoren
DE1269393B (de) Mikroprogramm-Steuerwerk
DE1774908B2 (de) Datenverarbeitungsanlage
DE3802706A1 (de) Drucksteuervorrichtung zum steuern des benutzungszustandes von mehrfachen formatbloecken
DE2054830A1 (de) Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher
DE2363846A1 (de) Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE2217565A1 (de) Steuerteil eines Rechenautomaten, der die relative Basisadresse von Befehlen bildet
DE3506592C2 (de) Aufzeichnungsgerät
DE2221926C3 (de) Datenverarbeitungsanlage mit wenigstens einem in Verbindung mit mehreren Peripheriegeräten stehenden Prozessor
DE2558417A1 (de) Datenverarbeitungssystem
DE2425574A1 (de) Adressierung von zeichen in einem wortorientierten system eines rechenautomaten
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
CH495584A (de) Datenverarbeitungsanlage
DE2235883C3 (de) Datenverarbeitungseinrichtung
DE1956460A1 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE1474376A1 (de) Verfahren und Anordnung zum schnellen Zugriff bei grossen seriellen Speichern

Legal Events

Date Code Title Description
OGA New person/name/address of the applicant
8131 Rejection