DE2403039C2 - Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage - Google Patents

Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage

Info

Publication number
DE2403039C2
DE2403039C2 DE19742403039 DE2403039A DE2403039C2 DE 2403039 C2 DE2403039 C2 DE 2403039C2 DE 19742403039 DE19742403039 DE 19742403039 DE 2403039 A DE2403039 A DE 2403039A DE 2403039 C2 DE2403039 C2 DE 2403039C2
Authority
DE
Germany
Prior art keywords
register
address
content
command
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE19742403039
Other languages
English (en)
Other versions
DE2403039A1 (de
Inventor
Michel Tourettes sur Loup Bouillot
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2403039A1 publication Critical patent/DE2403039A1/de
Application granted granted Critical
Publication of DE2403039C2 publication Critical patent/DE2403039C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules

Description

Die Erfindung be'rifft eine Einrichtung /ur Befchlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs I.
Speicherprogrammierte Rechenanlagen sind im allgemeinen mit einem Hauptspeicher- ausgestattet, in den adressierbare Wörter fester Lange und Befehle eingegeben werden können, die aus einem oder mehreren solcher Wörter bestehen. Diese aus Wörtern bestehende Information kann bekanntlich in den Hauptspeicher eingeschrieben und aus diesem wieder ausgelesen werden.
Die Befehlswörter selbst bestehen im allgemeinen aus mehreren Wortfeldern von meist unterschiedlicher Länge, Eines dieser Felder eines Befehls enthält den »Öperalionscode«, der die Art der durchzuführenden Operation definiert. Ein oder mehrere weitere Felder definieren die Adresse der Wörter im Hauptspeicher, die den oder die Operanden enthalten oder Wörter, in denen die Ergebnisse der Operation gespeichert werden
sollen. Der Befehl kann schließlich eine oder mehrere weitere Felder aufweisen, die zusätzliche Information enthalten, beispielsweise zusätzliche Information über die Art der Operation, Modifizierungen, die sich auf die Adresse (Indizierung) oder die Interpretation der Adresse (direkte oder indirekte Adressierung) oder auch auf die Länge des Befehis beziehen, wenn Befehle unterschiedlicher Länge in einer solchen Anlage zugelassen sind.
Die Länge du· Felder, die für die Adresseninformation reserviert ist, wird durch die Kapazität des Speichers bestimmt, und es sollte dabei so verfahren werden, daß es möglich ist, alle Wörter des Speichers zu adressieren, auch wenn der Speicher seine maximale Kapazität erreicht hat Manchmal ist es jedoch auch möglich, daß die technische Entwicklung oder kommerzielle Anforderungen eine Erweiterung der Speicherkapazität über ihren ursprünglich festgesetzten maximalen Bereich hinaus erforderlich machen. Dieses ist oft dadurch möglich, daß neue Speicherblöcke hinzugefügt werden und die Adressierungsschaltkreise ohne größere Komplikationen erweitert werden können. Aber diese Erweiterungsmöglichkeit ist dann auf den leeren Raum begrenzt, der in den Befehlen für die Angabe der Adresse verfügbar ist. Im allgemeinen ist dieses Problem nicht durch eine Längenvergrößerung der Befehle zu lösen, da einerseits diese Erweiterung nicht auf viele Einheiten ausgedehnt werden kann, wenn nicht die Schaltungen fundamental modifiziert werden und darüber hinaus, wenn die Art der Einheit eine leichte Erweiterung gestattet, diese Erweiterung nur über ganze Wörter möglich ist. was jedoch den Speicherplatzbedarf in unnötiger Weise anwachsen läßt und weil andererseits die Schaltkreise für die Verarbeitung der Adresseninformation (beispielsweise der Addierer, der den Inhalt eines Indexregisters zu der Adresse hinzu addiert, die von dem Befehl selbst geliefert wird) fur den Kmpfang von Adresseninformation einer bestimmten Länge vorgesehen sind und sie somit nicht in der Lage sind. Adresseninformation mit größerer Länge /u verarbeiten.
Ls ist schon bekannt (vgl. US-PS 32 30 515). den Hauptspeicher in Blöcke zu unterteilen und ein besonderes Register (Adressenerweiterungsregister) vorzusehen, das den adressierten Block angibt. Die gesamte Adresse besteht daher au"· zwei Teilen: der erste Teil (Blockadresse) wird von dem Inhalt des Adressenerweiterungsregisters bestimmt, und der zweite Teil, der ein Wort innerhalb des angegebenen Blockes definiert, wird von dem Inhalt des Adressenfeldes des 5» Befehls abgeleitet, wobei sein Inhalt entweder selbst den zweiten Teil der Adresse angibt oder zur Errechnung des zweiten Teils der Adresse dient (beispielsweise durch die Indizierung) oder schließlich definiert der Inhalt des Adresserfcides nur einen Speicherplatz, dem der zweite Teil der Adresse entnommen werden kann (und zwar aus dem Block, der mit Hilfe des Adressenerweiterungsregisters angegeben wurde oder aus einem festen Block).
Der Nachteil dieser Technik besieht dann, daß der «1 Inhalt des Adressenerweiterungsregisters nur mit Hilfe fines besonderen Befehls modifiziert werden kann. Wenn häufige Sprünge zwischen verschiedenen Blökken erforderlich sind, dann muß der genannte Befehl oft wiederholt v/erden. Wenn während eines Programm- »chrittes, für den ein bestimmter Speicherblock benutzt werden muß, ein Operand ausnahmsweise in einem anderen Block aufgesucht werden muß, dann muß dem Befehl, der den anderen Block benutzt, ein Befehl vorausgehen und nachfolgen, der den Inhalt des Befehlsadressenregisters verändert. Hieraus ergibt sich ein übermäßiger Speicherverkehr mit starkem Zeitverlust.
Es ist daher die Aufgabe der Erfindung, eine Einrichtung anzugeben, die eine Erweiterung der Speicherkapazität einer Datenverarbeitungsanlage und damit eine Erweiterung des Adressenraumes einer solchen Anlage ohne größere Änderungen der Adressen- und Befehlssteuerung ermöglicht, wobei auch der hierdurch bedingte Geschwindigkeitsverlust möglichst gering sein soll.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale. Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Der Vorteil einer relativ einfachen Speichererweiterung resultiert also daraus, daß mit Hilfe eines einzigen Befehls eine Veränderung der wockadresse, der Ausführung einer Operation und für eiiiife Operationen die Rückkehr zu dem ursprünglichen Block bewirkt werden kann.
Dieses ist auch deshalb möglich, weil nicht alle Bitkom; inationen, die das Operationscodefeld und die Zusatzfelder zulassen würden, verwendet werden. Es ist deshalb möglich. Befehle aufzubauen, die zusätzlich zur Ausführung einer Operation bezüglich der Daten Veränderungen der Blockadresse steuei n.
Wenn aber die Zahl der möglichen Bitkombinationen des Operationscodefeldes, die nicht zur Definition einer Operation verwendet werden, gleich ist oder die Zahl der Operationen übersteigt, die der Modifikation einer Blockadresse vorausgehen oder nachfolgen, dann genügt es. allen oder einem Teil dieser Kombina'.ionen neue Befehle beizugeben, die die Operationen der erwähnten Adressenmodifikationen steuern, f.benso genügt es. wenn eine bestimmte Anzahl von Stel.cn des Ergänzungsfeldes, die gleich ist oder größer als die Zahl der Bits im Adressenerweiterungsregister, niemals von der. Befehlen verwendet wird, die Operationen steuern, die in der Lage sind. Modifizierungen des Adressenblocks vorauszusehen oder nachzufolgen, den erwähnten Positionen Bus zuzuordnen, die die Ausführung dieser Veränderungen steuern. In der Praxis aber laufen diese Vorgänge nicht so ab. weshalb es notwendig ist. alle Bits des Operationscodefeldes und des Zusatzfeldes zu verarbeiten, um die Kombination einer Operation mit einer (oder zwei) Modifizierungen der Blockadrcsse /u erhalten.
Die erwähnten Vorteile ergeben sich danach, weil:
1 '·■. c'em Hauptspeicher eine Tabelle von Operationen untergebracht wird, die in der Lage sind, mit den Veränderungen der Blockadresse a ifzutrettn. wobei jeder Zugriff zu dieser Tabelle eine Information über die durchzuführende Operation liefert, und. wenn notwendig, über die Ausführungsverfahren, die normalerweise durch Bits definiert werden, die sieh in dem Zusaufeld des Befehls befinden, weil
2. ein spezieller Befehl erzeugt wird (XlC), dessen Operationscode angibt, daß der Befehl Modifizierungen der Blockadresse anschließt und bei dem bestimmte Bits des 2,\isatzfeldes einerseits den neuen Wen definieren, der durch den Inhalt dieses Registers gegeben werden soll und andererseits
den Zugriff zur Tabelle ermöglicht, deren Inhalt die durchzuführende Operation definiert und weil
3. die Schaltkreise des Befehlscodierers vervollständigt sind, so daß diese nach der Feststellung des Operationscode »XIC« die Modifizierung der Blockadresse, dies Auslesens der Tabelle, die Ausführung der Operation, die durch die aus der Tabelle ausgelesene Information bestimmt ist, und wenn nötig, die Rückeinstellung der Blockadresse auf ihren ursprünglichen Wert steuern. Die Ausführung der Operation wird von den gleichen Schaltungen gesteuert, die auch diese Operation dann steuern, venn sie direkt von dem Befehl definiert wird.
Im folgenden wkd die Erfindung anhand eines Ausführungsbeispieles näher beschrieben. Es zeigt
Fig. 1 eine scherratische Darstellung des Formats der in einem digitale r Elektronenrechner verwendeten Befehle.
F i g. 2 das Blockschaltbild dieses Digitalrechners mit den Übertragungswegen für die Information, die während der ersten Xyklen der Bearbeitungsoperation bezüglich eines Befeils. einschließlich der Speicherzugriffe gewonnen wird.
Fig. 3 ein Blockschaltbild des im Rahmen der Erfindung modifizierten Digitalrechners nach Fig. 1 und die Übertragtngswege der Information, die während der Ausführung eines speziellen Befehles erzeugt werden, und
Fig.4 eine Darstellung des Befehlsformats des Befehls XIC.
In dem dargestellen Ausführungsbeispiel wird die Information im Hauptspeicher als adressierbare Wörter von 16 Bits gespeichert, wobei ein Befehl, der einen Speicherzugriff benötigt, aus zwei Wörtern zusammengesetzt ist. Fig. 1 zeigt die allgemeine Struktur eines solchen Befehls. Die Bits des Befehls sind von 0 bis 31 durchnumeriert. Die Gruppierung der Bits des Befehls in Felder zeigt ebenfalls die Fig. 1 sehrdeutlich:
1. das Feld des »Operationscodes« (Bits 0 bis 5) —
2. sogenannte Ergänzungsfelder.bestehend aus:
dem »Indexfeld« (Bit 6 und 7) für die Bezeichnung eines Indexregisters für den Fall der indizierten Adressierung.
dem »Indirekte Adresse«-FeId(Bit8):das Bit dieses Feldes enthält den Btnärwert 1. wenn die indirekte Adressierung ve "wendet wird "nd den Binärwert 0. wenn dieses nicht der Fall sein soll. so —
das »Bedinj,ung?«-Feld(Bits9bis 15). welches eine Information entiält. die Bedingungen angibt, die zur Ausführung eines Befehls erfüllt sein sollen und/oder die Verfahren der Befehlsausführung angeben: dieses Feld kann auch einen Direktope- ss randen enthalter. —
3. das »Adressen«-Feld (Bits 16 bis 31). das zur Angabe der Acresse eines Wortes im Speicher dient und das für die Ausführung des Befehls benötrgt wird. Der Wert des Inhalts des Adressen- &o feldes ist nicht zwangsläufig, der Wert der effektiven Adre;se. diese kann aber das Ergebnis einer Trasforma ion dieses inhaltes sein.
Außer zu den Befehlen, die einen Speicherzugriff 6"> benötigen, gibt es auch Befehle, die eine Speicheradressierung nicht beinhalten (wie beispielsweise Befehle für die Verschiebung von Bits in einem Register) und die auch nur aus einem einzigen Wort bestellen. Die Verarbeitung dieser Befehle liegt nicht im Bereich dieser Erfindung, sie wird daher in der Beschreibung nicht weiter berücksichtigt.
Fig.2 zeigt ein Blockschallbild des als Beispiel gewählten elektronischen Digitalrechners und die Übertragungen von Information, die während der ersten Verarbeitungszyklen eines Befehls stattfinden, der einen Speicherzugriff beinhaltet. Dieser Digitalrechher besieht aus:
— einem adressierbaren Speicher M. von dem drei, je 16 Bit breite Wörter in seinem Inneren dargestellt sind:
die Wörter W\ und W2!sind aufeinanderfolgende Wörter, die einen Befehl enthalten und W3 ein Wort, das an einer anderen Stelle liegen kann und Daten enthält, die verarbeitet werden sollen,
— chichi Vci uindüfigSrcgiäicr "L, u5S Vr'öriGF 3üf-
nimmt, die aus dem Speicher ausgelesen oder in den Speicher eingeschrieben werden,
— einem Adressenregister RA für die Aufnahme der Adresse, an der ein Wort im Speicher gespeichert oder aus der ein Wort aus dem Speicher ausgelesen werden soll.
— einem Adressendecoder DEC, der den Inhalt des Adressenregisters decodiert und das Wort adresiiirt. das durch Inhalt von RA definiert ist,
— einem Befehlsregister INS, das die Adresse des nächsten, aus dem Speicher auszulesenden Befehls enthält,
— einem Faktorregister RF für die Aufnahme eines Faktors, der in einer Operation benötigt wird,
— einem Akkumulator AC für die Aufnahme des zweiten Faktors und für die Speicherung des Ergebnisses der Operation,
— einem Register SACfür die Rettung des Akkumulalorinhalts.
— einem Indexregister: es wird hierbei angenommen, ■to daß der Digitalrechner mit drei Indexregistern X 1.
X 2 und X 3 ausgerüstet ist.
— einem Steuerregister zur Aufbewahrung der Bits des Befehls, die die durchzuführenden Operationen bestimmen, also das Register OP, das den Operationscode aufnimmt, das Register X, das die Indexinformation (Bits 6 und 7 des ersten Wortes des Befehls) aufnimmt und die Registeranordnung CO. die die übrigen Bits der eingangs genannten Felder speichert.
Verarbeitungsschaltungen für die Durchführungen der Rechnungen oder logischen Operationen, von denen nur zwei dargestellt sind, nämlich der Addierer AD und der Inkremenlierer /. welch letzterer vorgesehen ist, um den zu ihm übertragenen Wert um 1 zu erhöhen und
Steuerschaltungen zur Steuerung der Operation des digitalen Rechners: diese Schaltungen bestehen aus den Zeittaktschaltungen, weiche die Taktsignale für die Durchführung der aufeinanderfolgenden Elementaroperationen liefern und aus den Logikschaltungen, die, entsprechend dem Zustand verschiedener Register, und insbesondere des Steuerregisters, das von den Zeittaktsignalen gesteuert wird, die verschiedenen Elementaroperationen steuern, wie beispielsweise die Übertragungen zwischen den Registern. Übertragungen zwischen dem Verbindungsregister RL und dem Speicher M, sowie logische und arithmetische Operationen.
Die Steuerschailungen sind nicht dargestellt, da ihr Aufbau an sieh aus dem Stand der Technik bekannt ist.
Im allgemeinen erfordert die Verarbeitung eines Befehls mehrere Zyklen, wahrend deren Ablauf ein oder mehrere Wörter vom Speicher abgerufen oder in den Speicher eingeschrieben werden. Diese sind folgende Zyklen:
— Vorbereitungszyklen, während deren Verlauf der Befehl aus dem Speicher ausgelesen und decodiert wird und
— Ausführungszyklen, während denen Operationen durchgeführt werden, die von der bereits genannten Decodierung definiert werden.
Die Übertragungen und übrigen Operationen, die während der Vorbereitungszyklen und am Beginn eines Ausfiihrungszyklus durchgeführt werden, sind in Fi g. 2 HaropcipjU Γ)»ρ !nfnrmatinncHhprlrnannaen tnit nHpr ohne Modifizierungen sind mit voll ausgezogenen Linien dargestellt, während die Steuermaßnahmen (wie beispielsweise die Adressierung) mit gestrichelten Linien gezeigt sind. Die Zahl der zur Ausführung erforderlichen Schritte wird von einem Zähler geliefert, der von den Zeittaktschaltungen gesteuert wird. Die Operationen sind in der nachstehenden Liste aufgeführt:
Erster Vorbereitungszyklus
Der Inhalt des Akkumulators AC wird zum Rettungsregisler 5/lCübertragen.
Der Inhalt des Befehlsregisters INS wird in das Adressenregister RA übertragen.
Der Inhalt des Befehlsregisters INS wird um den Wert I erhöht.
Das Adressenregister RA (über den Decodierer DEOadressiert das erste Wort des Befehls.
Das erste Wort des Befehls wird in das Verbindungsregister RL übertragen.
Der Inhalt des Verbindungsregisters RL wird auf die Steuerregister OP. X und CO verteilt, die vorgesehen sind, um diejenige Information aufzubewahren, die die Operation bestimmt, die ausgeführt werden soll (Operationscode. Indexregister, direkte oder indirekte Adressierung oder dergleichen).
Zweiter Vorbereitungszyklus
Der Inhalt des Befehlsregisters INS wird zu dem Adressenregister RA übertragen.
Der Inhalt des Befehlsregisters INS wird um den Wert 1 erhöht.
Das Adressenregister RA adressiert das zweite Wort des Befehls.
Das zweite Wort des Befehls wird in das Verbindungsregister RLübertragen.
Der inhalt des Verbindungsregisters RL wird zu dem Faktorregister RFübertragen.
Sollte der im Register X enthaltene Wert gleich 1.2 oder 3 sein, dann wird der Inhalt der Register X1, X 2 oder X 3 zu dem Akkumulator Λ C übertragen (in der Figur wurde angenommen, daß der Inhalt von X gleich 2 ist). Wenn der Wert des Inhaltes von X Null wäre, dann würde diese Operation nicht HiirfhcrpfnhrT — c
Die Operation hängt also von dem in X gespeicherten Wert ab.
14
15
13,7 Sollte dieser Wert 0 sein, dann wird der Inhalt des Faktorregisters RF zu dem Akkumulator /iCüberiragen.
13b Sollte dieser Wert nicht 0 sein, wird der Inhalt von RF zu dem Inhalt des Akkumulators hinzuaddiert (Berechnung der indizierten Adresse).
Ausführungszyklen
Der Inhalt des Akkumulators AC wird zu dem Adressenregister RA übertragen.
Der Inhalt des Akkumulator-Rettungsregisters SAC wird zu dem Akkumulator AC übertragen (Rückstellung des ursprünglichen Inhalts) (vgl. Schritt 1).
Von diesem Zeitpunkt an enthält nun das Adrp<;<;pr>rp.
gister RA die effektive Adresse, die sich aus der Decodierung des Befehls ergibt. Diese Adresse kann entweder die Adresse eines Operanden sein, der vom Speicher ausgelesen werden soll oder eine Speicherstelle, die zur Aufnahme des Resultats vorgesehen ist (Fall der direkten Adressierung), oder sie kann die Adresse des Wortes sein, das die wahre Adresse enthält (Fall der indirekten Adressierung).
Die nun folgenden Operationen hängen von dem Inhalt des Operationsregisters OP ab (das den Operationscode definiert) und von dem Wert in der ersten Bitstelle des Registers CO (Bit 8 das angibt, ob eine direkte oder indirekte Adressierung durchzuführen ist). Die Operationen der Ausführungszyklen sind in den Figuren nicht dargestellt. Wenn die Zustände der Zeittaktschaltungen und des Operationsregisters OP angeben, daß die Ausführung des Befehls vollendet ist, dann schalten die Zeittaktschaltungen auf denjenigen Zustand zurück, der dem Schritt 1 entspricht, so daß ein anderer Befehl verarbeitet werden kann.
Bei der vorstehenden Beschreibung wurde angenommen, daß das Adressenfeld des Befehls 16 Bits umfaßt und daß die Schaltungen, die die genannte Adresse verarbeiten (Register. Addierer und dergleichen) in der Lage sind, ein Wort mit der Bitbreite von 16 zu verarbeiten. Es ist daher möglich. 2lf> = 65 536 Speicherplätze zu adressieren.
Wenn es wegen bestimmter Operationserfordernisse notwendig ist. diese Kapazität zu vergrößern, dann muß es möglich sein, dem Adressenregister RA ein Adressenerweiterungsregister anzufügen, und die Adressierungsschaltungen so zu modifizieren, daß sie dt η vergrößerten Speicher mittels des Inhalts der Gesamtanordnung von Adressenregister und Adressenerweiterungsregister adressieren können. Diese Modifizierungen sind relativ leicht durchzuführen. Aber, wie bereits ausgeführt wurde, kann der Inhalt des Befehlsadressenregisters in den bekannten Datenverarbeitungsanlagen nur mit Hilfe eines besonderen Befehls modifiziert werden.
eo Die vorliegende Erfindung ermöglicht es nun. den Inhalt des Befehlsadressenregisters für die Dauer der Ausführung eines Befehles oder permanent im Verlaufe der Instruktion zu modifizieren, für die diese Modifizierung erforderlich ist
F i g. 3 zeigt einen Digitalrechner, der zur Erreichung dieses Ziels verändert ist Er besteht aus den gleichen Systemelementen, die bereits in F i g. 2 dargestellt sind und zusätzlich noch aus folgenden Elementen:
einem Adressenerweiterungsregisler R 1,
— zusätzlichen Registern R 2, R 3, R 4 und
— einem Speicherelement B, das beispielsweise eine einfache Verriegelungsschaltung sein kann.
Es wird angenommen, daß jedes Register R I bis /f 4 zwei Bits umfaßt.
Die Adressierung des Speichers wird über die Register RA und R 1 vorgenommen. Der Inhalt von R 1 kann ein Speicherfeld (Speicherblock) und der Inhalt von RA die Adresse eines Wortes innerhalb des genannten Feldes (Blocks) bestimmen. Bekannten Einrichtungen entsprechend ist es möglich, dem Speicher aus einem allgemeinen Block aufzubauen, der durch bestimmte Werte des Inhalts des Adressenregisters RA adressierbar ist, was immer auch der Inhalt von R 1 sein mag und weiter aus besonderen Blöcken, die durch die anderen Werte des Adressenregisters RA »dressierbar und vom Inahlt von R 1 her bestimmt sind.
Wenn däl'icr beispielsweise RA IG Bits und R i zwei Bits enthält, dann ist es möglich, die Adressierungsschaltungen so aufzubauen, daß der allgemeine Block stets •dressiert wird, wenn das höchststellige Bit in RA gleich O wird, so daß die besonderen Blöcke adressiert werden, wenn dieses Bit 1 ist. Es sind dann 5 Blöcke mit 32 768 Wörtern verfügbar, nämlich: ein genereller Block, •dressiert durch die Werte 0 bis 32 767 des RA und 4 besondere Blöcke, adressiert durch die Werte 32 768 bis 131072 des RX. Dieses System gestattet daher die Speicherung von Daten oder Befehlen für eine •!!gemeine Verwendung, die adressiert werden können, »inabhängig vom Momentanwert des Inhaltes des Adressenerweiterungsregisters R 1.
Die Funktion des Registers R2 besteht darin, den ursprünglichen Wert des Inhaltes von R 1 aufzubewahren, wodurch sein Inhalt auf seinen ursprünglichen Wert zurückgebracht werden kann, wenn die Ausführung eines Befehls vollendet ist. Diese Rückübertragung des •Ilen Werts in R1 ist zur Sicherstellung des sequentiellen Auslesens des Befehls erforderlich.
Die Änderung eines Blockes kann auch permanent »ein. Besonders dann, wenn die durchzuführende Operation eine Programv.Werzweigung in einen anderen Block ist, d. h. in einen Block, der sich von dem ferade tatsächlich in Arbeit befindlichen unterscheidet. In diesem Falle wird der Inhalt von R 1 nicht auf seinen ursprünglichen Wert zurückgebracht. Es kann aber notwendig sein, diesen Ursprungswert am Ende der Ausführung der durch die Verzweigungsoperation initialisierten Routine wiederzugewinnen und zu der früheren Befehlsfolge zurückzukehren. Dieses ist die Funktion des Registers R 3.
Darüber hinaus kann es während der Durchführung normaler Befehlsfolgen ohne Blockänderungen notwendig sein, sich auf einen anderen Block zu beziehen und diesen Bezug aufzubewahren. So ist es beispielsweise möglich, ein Indexregister mit einer Information zu laden, die aus einem bestimmten Block des Speichers entnommen wurde, und es ist ferner möglich, zur gleichen Zeit zu spezifizieren, daß ein zukünftiger Befehl, der dieses Indexregister verwendet, in dem gleichen Block zu operieren haben wird. Das Register R 4 gestattet die Aufbewahrung der Angabe dieses Blockes.
Bei der Benutzung der in Fig.3 dargestellten Anordnung wird eine Reihe von Wörtern, die eine Tabelle bilden, vorher in bestimmte Speicherstellen geladen. Jedes Wort hat eine Struktur ähnlich
derjenigen des ersten Wortes eines Befehls, wie er in Fig. 1 dargesteli'ist, mit Ausnahme der Bits 6 und 7, die jeden beliebigen Wert enthalten können, aber nicht benutzt werden. Die Bitfelder bedeuten:
— Bits 0 bis 5 stellen den Operationscode dar,
— Bit 8 dient zur Angabe, ob direkte oder indirekte Adressierung vorgenommen wird und
— Bits 9 bis 15 liefern Zusatzinformation.
Bei dem oben beschriebenen System wird angenommen, daß die Tabelle 64 Wörter enthält, die mit 7"0 bis Γ63 bezeichnet sind.
Ein Befehl, der eine Anordnung nach Fig. 3 verwendet, hat den in Fig.4 dargestellten Aufbau. Die Felder dieses Befehls haben folgende Bedeutung:
— Bits 0 bis 5 stellen den Operationscode dar, der eine bestimmte Konfiguration aufweist. Dieser Code wird »Code XiC« genannt,
— Bits 6 und 7 stellen die »Index«-Zone dar, die ein Indexregister angeben, wenn sein Inhalt nicht 0 ist und die NichtVerwendung der Indizierung angeben, wenn dieser Wert 0 ist,
— Bits 8 und 9 sind ein »Adressenerweiterungs«-Feld, das angibt, daß ein Wert in das Register R 1 eingeführt werden soll,
— Bits 10 bis 15 zeigen ein »Tabellenw-Feld, das eins der Tabellenwörter angibt und
Bits 16 bis 31 stellen das »Adressen«-Feld dar.
Die Übertragungen und anderen Operationen, die während bestimmter Verarbeitungszyklen einer Instruktion XIC durchgeführt werden, sind in Fig.3 mit den gleichen Bezugszeichen versehen, wie in F i g. 2. Für ein besseres Verständnis jedoch sind in Fig.3 nur die modifizierten und zusätzlichen Operationen dargestellt.
Die verschiedenen Operationszyklen sind wie folgt:
Erster Vorbereitungszyklus
Dieser Zyklus ist identisch mit dem ersten Vorbereitungszyklus eines gewöhnlichen Befehls. Es sollte jedoch berücksichtigt werden, daß im Schritt 4 das erste Wort des Befehls von der Registeranordnung RA und R 1 adressiert wird. Am Ende des Zyklus enthält das Register OPden Code XIC. Das Register X enthält die Angabe des Indexregisters, das für Adressierungszwekke während der Ausführungszyklen verwendet werden soll (oder den Wert 0. wenn keine Indizierung
so gewünscht wird), und das Register CO enthält die Bits 8 bis 15 des ersten Befehlswortes, d.h. (wie in Fig.4 dargestellt) die Blockadresse und die Eintrittsnummer in die Tabelle, die verwendet werden sollen.
5- Zweiter Vorbereitungszyklus
Die Schritte 7 bis 10 sind mit den entsprechenden Schritten der Verarbeitungsoperation eines gewöhnlichen Befehls identisch. Es soll angemerkt werden, daß im Schritt 9 das zweite Wort des Befehls durch die
fco Anordnung der Register RA und R 1 adressiert wird. Am Ende des Schrittes 10 enthält das Register RL das zweite Befehlswort und die Register OP. X und CO die gleiche Information, wie am Ende des ersten Vorbereitungszyklus; insbesondere enthält das Register OP den Code XIC.
Dr.nn steuern die logischen Schaltungen, die von den Zeitgeberschaltungen und dem Register OP konditioniert werden, eine Operationsmodifizierung der Zeitga-
besclidkungen, so daß diese erwähnten Schallungen statt dem Zustand, der dem Sehrfit 11 entspricht, nun den Zustand einnehmen, der dem ersten Schritt einer Reihe zusätzlicher Schritte entspricht. Dieser Schritt ist in Fig.3 mit50bezeichnet. s
Die zusätzlichen Schritte verlaufen folgendermaßen:
50 Die Verriegelungssehaltung D wird in den Zustand »EIN« gebracht, der angibt, daß die in Bearbeitung befindliche Operation eine Operation der Type in XIC ist.
51 Der Inhalt von R1 wird nach R 2 und RZ übertragen.
52 Der Inhalt der ersten beiden Bilstellen von CO(BUs
8 und 9 des ersten Befehlswortes, das die neue ii Blockadresse angibt) wird nach R\ und R 4 übertragen.
53 Der Inhalt der anderen Bitstellen von CO wird in die niedrigsten Stellen des Akkumulators übertragen und die anderen Steilen auf U eingestellt.
54 Ein fester Wert, der die Adresse des ersten Tabelleneintrittes (Eingang in die Tabelle; Adresse des Wortes TO) repräsentiert, wird in das Register /?Feingegeben.
55 Der Inhalt von RF wird zu dem Inhalt des Akkumulators hinzuaddiert (Bildung der Adresse des in der Tabelle zu suchenden Wortes).
56 Das Ergebnis der Addition wird in das Register RA eingegeben.
10
Nach dem Schritt 56 kehren die Zeittaktschaltungen zu dem Schritt 11 zurück, und der zweite Vorbereitungszyklus ist, wie für einen gewöhnlichen Befehl, beendet. Am Ende des Zyklus enthält der Akkumulator die indizierte Adresse, die im ersten Ausführungszyklus verwendet wird. Register RA enthält die Adresse des Wortes der Tabelle, die benutzt werden wird, um mit Hilfe des dritten Vorbereitungszyklus den Befehl, der ausgeführt werden soll und die Prozedur hierfür zu bestimmen.
Dritter Vorbereitungszyklus
Nach dem Schritt 13 steuern die logischen Schaltungen, die von dem Zustand der Zeittaktschaltungen und dem »EIN«-Zustand der Verriegelungsschaltung B konditioniert werden, die Ausführung eines dritten Vorbereitungszyklus. Der erste Schritt dieses Zyklus trägt die Bezugszahl 60.
eo Register RA adressiert das Wort Tn der Tabelle (es sei angenommen, daß für den Speicherblock, welcher die Tabelle enthält, die Adressierung von dem Inhalt von R 1 unabhängig ist.
61 Das Wort Tn wird vom Speicher zu dem Register RL übertragen.
62 Der Inhalt von RL mit Ausnahme der Bitstellen 6 und 7, wird auf die Register OP(Bits 0 bis 5) und CO (Bits 8 bis 15) aufgeteilt
Am Ende des Zyklus ergeben sich folgende Zustände:
Register OP enthält den Code, der die durchzuführende Operation definiert.
Register CO enthält die zusätzliche Information, die sich auf die Ausführung dieser Operation bezieht.
Register R 1 enthält die neue Blockadresse,
Register R 2 enthält die frühere Blockadresse.
Ausführungszyklen
Nach Schritt 62 kehren die Zeittaktschaltungen auf einen Zustand zurück, der dem Schritt 14 entspricht, und die Ausführtingszyklen verlaufen weiterhin wie für andere Befehle (andere Befehle als XIC). V/änrend dieses Zyklus bzw. dieser Zyklen werden die Zugriffe zum Speicher mit Hilfe der Registeranordnung RA und R1 (das letztere enthält die neue Blockadresse) durchgeführt.
Wenn der Zustand der Zeittaktschaltungen und des Registers OP angeben, daß die Ausführung des Befehls vollständig durchgeführt ist, steuern die logischen Schallungen, die von den genannten Zuständen und von dem »EIN«-Zustand der Verriegelungsschaltung B konditioniert werden, einen oder zwei zusätzliche Schritte, die die Bezugszahl 70 und 71 tragen.
Während des Schrittes 70 wird der Inhalt von R 2 nach R 1 übertragen, so daß R 1 seinen ursprünglichen Zustand wieder einnimmt, der der früheren Blockadresse entspricht. Dieser Schritt wird nicht durchgeführt, wenn der Inhalt des Registers OP angibt, daß die Blockänderup.g permanent sein sollte, was der Fall ist, wenn beispielsweise die auszuführende Operation eine Programmverzweigung ist.
Während des Schrittes 71 wird die Verriegelungsschaltung B wieder zurückgestellt.
An Ende der Ausführung eines Befehls enthält /?3 in allen Fällen den ursprünglichen Wert von R 1, und das Register R 4 enthält in allen Fällen den Wert, der während der Ausführung der Operation benutzt wurde. Diese Register sollten auch für zukünftige Befehle verfügbar sein, so daii, wenn es notwendig ist. diese Werte aufzubewahren, Befehle vorzusehen sind, um diese Werte in die Wortpositionen des Speichers einzugeben.
Zu diesem Zweck sind zwei neue Befehle vorgesehen, von denen jeder mit Hilfe eines bestimmten Operationscode verwendet wird. Der erste Befehl steuert die Übertragung des Inhalts voii R 3 in die Bitstellen 8 und 9 des adressierten Wortes, und der zweite Befehl steuert die Übertragung des Inhaltes von /?4 in die Bitstellen 8 und 9 des adressierten Wortes. In beiden Fällen werden die anderen Bitstellen des adressierten Wort .·· nicht modifiziert. Das Wort, in welches der Inhalt des Registers R 3 oder R 4 übertragen wird, ist normalerweise das erste Wort eines XIC-Befehls. so daß wenn die Verarbeitung des Programms und seiner Unterprogramme die Ausführung dieses Befehls betrifft, die übertragenen Werte verwendet werden, um den Block zu bestimmen, dessen Angabe gespeichert war.
Diese beiden neuen Befehle können direkt in dem Programm niedergeschrieben werden, wobei ihr Code im Operationscodefeld eingetragen wird. Ferner können sie auch mit Hilfe des Befehls XIC in die Tabelle eingeschrieben und aus dieser abgerufen werden.
Es ist ferner möglich, viele Modifizierungen der vorstehend beschriebenen Operationen vorzunehmen und insbesondere die oben erläuterten Merkmale auf Digitalrechner anzuwenden, die mit Multiadressenbefehlen arbeiten.
Ferner ist es möglich, Veränderungen des Inhalts von R1 während der Verarbeitung des Befehls zu vermeiden und daher die Modifizierung der Reihenfolge der Schritte zu ermöglichen, indem mehr einfache Steuerschaitungen verwendet werden, urn den inhalt der Bitstellen 8 und 9 des Befehls (neue Blockadresse) in das Register Λ 1 zu übertreffen, wie oben
wurde (Schritt 52), anstelle einer Übertragung in das Register ÄZ das als Adressenergänzungsregister verwendet wird.
In diesem Falle ist es dann notwendig, den Adressendecodie.' er zu modifizieren, so daß er während der Durchführung der Ausführungszyklen von Signalen gesteuert werden kann, die von den Registern RA und R 2 übertragen werden, anstelle von Signalen, die von den Registern RA und R 1 hergeleitet werden. Dieses 14
kann mit Hilfe von Torschaltu einer Verriegelungsschaltung I während der Verarbeitungszj stand gebracht wird. Am En Befehls wird diese Verriegi Ausgangszustand zurückgestel derung permanent ssin soll, de übertragen.
Hierzu 2 Blatt Zeichnungen

Claims (6)

  1. Patentansprüche:
    t. Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage mit einem aus Blöcken bestehenden Speicher (M) zur Speicherung von Daten und Befehlen, welch letztere ein Operationscodefeld zur Bestimmung des auszuführenden Befehls, ein Adreßfeld, das gegebenenfalls in Kombination mit anderer Information eine Speicherstelle angibt und ein Erweiterungsfeld aufweist, dessen Inhalt zur Angabe einer Adresse oder einer Befehlsausführungsprozedur dient, mit einer Adreßregisteranordnung, bestehend aus einem Adreßregister (RA) und einem Adreßerweiterungsregister (R 1), sowie einer Ausführungssteuerung zum Abrufen eines Befehls aus dem Speicher und Eingeben desselben in eine Steuerregisteranordnung und zur Steuerung der Befehlsausführung gemäß dem Operationscode des Befehls und für bestimmte dieser Operationscodes gemäß dem jeweiligen Operationscode gemeinsam mit dem Inhalt des Erweiterungsfeldes, wobei die einzelnen Operationen des Befehls den Abruf von Information vom Speicher und die Einspeicherung von Information betreffen und die Adressen, die sich bei diesen Operationen auf de ι Speicher beziehen, aus dem Inhalt des Adreßregisters und für bestimmte Operationscodes aus dem Inhalt des Adreßregisters, gemeinsam mit dem Inhalt des Adreßerweiierungsregisters gebildet werden, dadurch gekennzeichnet, daß die Ausführungssteuerung beim Vorliege"* bestimmter Operalionscories (z.B. X!C) em Zusatzregister (R2) mit dem Adreßerweiterungsregister 'R 1) koppelt, in das der Inhalt des Adreßerweiterungsregister übertragen wird, daß die Ausführungssteuerung danach eine Verbindung zur Übertragung des Inhalts eines Teils des F.rweiterungsfeldes des Befehls in das Adressenerweiterungsregister herstellt, daß sie mindestens ein Speicherwort, das in einer im Speicher (M) befindlichen Tabelle (TO bis Γ63) gespeichert ist, abruft, wobei die Adresse des abgerufenen Worte aus einem anderen Teil des Erweiterungsfeldes des Befehls besteht, sie ferner eine Einspeicherung des abgerufenen Tabellenwortes in Steuerregister (RL. OP. X. CO). die für die Speicherung von Befehlen vorgesehen sind, vornimmt und dann die Ausführung von Operationen steuert, die durch denjenigen Befehl definiert sind, der aus dem nun neuen Inhalt dieser Register gebildet wird, wobei der Speicher (M) während der Ausführung dieses Befehls von dem Inhalt des Adreßregisters (RA) und Adreßerweite rungsregister (R 1) adressiert wird.
  2. 2. Einrichtung nach Anspruch 1. dadurch gekennzeichnet, daß ein Speicherelement (B) vorgesehen ist. welches beim Vorliegen eines der genannten bestimmten Operationscodes (z. B. XIC) noch vor der Einspeicherung des abgerufenen Tabellenwortes in die Steuerregister (RL. OP. X. CO) in einen bestimmten Zustand (ι. B, binär 1) eingestellt wird, um nach der vollständigen Ausführung eines Befehls den Inhalt des Zusalzfegisters ^T? 2) in das Adreßerweiterungsregister (R 1) zurückzuübeflra* gen, wenn eine zuvor durchgeführte Spsicherfeldänderung für den nachfolgenden Befehl nicht mehr wirksam bleiben soll.
  3. 3. Einrichtung nach Anspruch I und 2, dadurch
    gekennzeichnet, daß ein weiteres Zusatzregister (R 3) vorgesehen ist, in welches der Inhalt des Adreßerweiterungsregisters (R 1) noch vor Übertragung des Inhalts eines Teils des Erweiterungsfeldes des Befehls in das Adreßerweiterungsregister übertragen wird, wobei während der Ausführung des Befehls der Inhalt dieses weiteren Zusalzregisters nicht mehr verändert wird.
  4. 4. Einrichtung nach Anspruch 1 bis 3, dadurch gekennzeichnet, daß ein Hilfsregister (R 4) vorgesehen ist, in das parallel zum Adreßerweitenjngsregister (R 1) der Inhalt eines Teils des Erweiterungsfeldes des Befehls übertragen wird, wobei ebenfalls während der Ausführung des Befehls der Inhalt dieses Hilfsregisters nicht mehr verändert wird.
  5. 5. Einrichtung nach Anspruch 1 bis 3, dadurch gekennzeichnet, daß die Ausführungssteuerung, v/enn ein bestimmter Operationscode (z. B. XIC) festgestellt wird, die Übertragung des Inhalts des weiteren Zusatzregisters (R 3) in bestimmte Positionen des Speicherwortes steuert, welches durch den verarbeiteten inhalt des Adressenfeldes des Befehls adressiert wird, wobei die genannten bestimmten Positionen im Speicherwort den gleichen Stellenrang einnehmen, wie die Bits der besonderen Befehle, die durch den besonderen Operationscode (z. B. X IC) gekennzeichnet sind und die während der Übertragung des Inhalts eines Teils des Erweiterungsfeldes dieses besonderen Befehls in das Adreßerweiterungsregister übertragen wurden.
  6. 6. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Ausführungssteuerung, wenn der bestimmte Operationscode (z. B. XIC) festgestellt wird, die Übertragung des Inhalts des Hilfsregisters (R 4) in bestimmte Positionen des .Speicherwortes steuert, das von dem verarbeiteten Inhalt des Adressenreldes des Befehls adressiert wird, wobei die genannten bestimmten Positionen den gleichen Ste'lenrang einnehmen, wie die Bits der besonderen Befehle, die bei der Ubeiiragutig des Inhalts eines Teils des Adressenerweiterungsfeldes des jeweiligen Befehls in das Adreßerweiterungsregister (R 1) übertragen wurden.
DE19742403039 1973-02-06 1974-01-23 Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage Expired DE2403039C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7305429A FR2329170A5 (fr) 1973-02-06 1973-02-06 Calculateur muni de facilites d'extension d'adresse

Publications (2)

Publication Number Publication Date
DE2403039A1 DE2403039A1 (de) 1974-08-08
DE2403039C2 true DE2403039C2 (de) 1982-02-25

Family

ID=9114901

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742403039 Expired DE2403039C2 (de) 1973-02-06 1974-01-23 Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage

Country Status (5)

Country Link
JP (1) JPS5334943B2 (de)
DE (1) DE2403039C2 (de)
FR (1) FR2329170A5 (de)
GB (1) GB1416002A (de)
IT (1) IT1014535B (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4071887A (en) * 1975-10-30 1978-01-31 Motorola, Inc. Synchronous serial data adaptor
JPS5821304B2 (ja) * 1975-12-27 1983-04-28 横河電機株式会社 デ−タシヨリソウチ
JPS5844263B2 (ja) * 1976-09-10 1983-10-01 株式会社東芝 記憶制御回路
JPS5444451A (en) * 1977-09-14 1979-04-07 Fujitsu Ltd Address extension system
JPS5480631A (en) * 1977-12-09 1979-06-27 Hitachi Ltd Memory unit
US4223381A (en) * 1978-06-30 1980-09-16 Harris Corporation Lookahead memory address control system
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
JPS5552163A (en) * 1978-10-06 1980-04-16 Casio Comput Co Ltd Memory extension system
JPS5595160A (en) * 1979-01-10 1980-07-19 Hitachi Ltd Memory control system
DE3174927D1 (en) * 1980-05-23 1986-08-21 Ibm Enhancements in system/370 type of data processing apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3230513A (en) * 1960-12-30 1966-01-18 Ibm Memory addressing system

Also Published As

Publication number Publication date
JPS5334943B2 (de) 1978-09-25
JPS49112547A (de) 1974-10-26
IT1014535B (it) 1977-04-30
DE2403039A1 (de) 1974-08-08
FR2329170A5 (fr) 1977-05-20
GB1416002A (en) 1975-12-03

Similar Documents

Publication Publication Date Title
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE1499193C3 (de) Speicher-Adressierschaltung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE1901228A1 (de) Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2926589A1 (de) Anordnung zur verlaengerung einer logischen computeradresse
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
CH657218A5 (de) Mehrbenuetzer-datenverarbeitungsmaschine mit virtuellem speicher.
DE2714805A1 (de) Datenverarbeitungssystem
DE2212873A1 (de) Aus Schieberegistern aufgebaute Speichereinrichtung
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE2403039C2 (de) Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE1524898B2 (de) Datenspeicher mit direktem mehrdimensionalen Zugriffzur gleichzeitigen Entnahme mehrerer Wörter
DE2235883C3 (de) Datenverarbeitungseinrichtung
EP0655688A2 (de) Programmspeichererweiterung für einen Mikroprozessor
DE2057587A1 (de) Inhaltsadressierter Speicher
DE1549446A1 (de) Digitalrechner
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE4342521C1 (de) Verfahren und Anordnung zur Expansion komprimierter Daten
DE2954533C2 (de)

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8339 Ceased/non-payment of the annual fee