DE2403039A1 - Verfahren zur adressenerweiterung einer elektronischen digitalrechenanlage - Google Patents

Verfahren zur adressenerweiterung einer elektronischen digitalrechenanlage

Info

Publication number
DE2403039A1
DE2403039A1 DE19742403039 DE2403039A DE2403039A1 DE 2403039 A1 DE2403039 A1 DE 2403039A1 DE 19742403039 DE19742403039 DE 19742403039 DE 2403039 A DE2403039 A DE 2403039A DE 2403039 A1 DE2403039 A1 DE 2403039A1
Authority
DE
Germany
Prior art keywords
register
address
command
content
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19742403039
Other languages
English (en)
Other versions
DE2403039C2 (de
Inventor
Michel 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

Böblingen, den 21. Januar 19 74 jo-sn _
Anmelderin: International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: FR 972 021
Verfahren zur Adressenerweiterung einer elektronischen Digitalrechenanlage
Die Erfindung betrifft ein Verfahren zur Adressenerweiterung in einer elektronischen Digitalrechenanlage nach dem Oberbegriff des Anspruchs 1.
Speicherprogrammierte Rechenanlagen sind im allgemeinen mit einem Hauptspeicher ausgestattet, in den adressierbare Wörter fester Länge 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 "Operationscode", 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
409832/0766
der Adresse (direkte oder indirekte Adressierung) oder auch auf die Länge des Befehls beziehen, wenn Befehle unterschiedlicher Länge in einer solchen Anlage zugelassen sind.
Die Länge der 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) für den Empfang von Adresseninformation einer bestimmten Länge vorgesehen sind und sie somit nicht in der Lage sind, Adresseninformation mit größerer Länge zu verarbeiten.
Es wurde deshalb schon vorgeschlagen (vgl. US-PS 3 230 513), den Hauptspeicher in Blöcke zu unterteilen und ein besonderes Register (Adressenerweiterungsregister) vorzusehen, das den adressierten
fr 972 021 4C9332/0766
-3" 2403Q39
Block angibt. Die gesamte Adresse besteht daher aus 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 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 Adressenfeldes 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 besteht darin, daß der Inhalt des Adressenerweiterungsregisters nur mit Hilfe eines besonderen Befehls modifiziert werden kann. Wenn häufige Sprünge zwischen verschiedenen Blöcken erforderlich sind, dann muß der genannte Befehl oft wiederholt werden. Wenn während eines Programmschrittes, für den ein bestimmter Speicherblock benützt 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, diesen Nachteil zu vermeiden und insbesondere eine Erweiterung der Speicherkapazität einer Datenverarbeitungsanlage ohne einerseits größere Änderungen und andererseits ohne großen Geschwindigkeitsverlust zu ermöglichen .
Die Erfindung löst diese Aufgabe durch die in den Patentansprüchen angegebenen Merkmale.
Der Vorteil einer relativ einfachen Speichererweiterung resultiert also daraus, daß mit Hilfe eines einzigen Befehls eine Veränderung
FR972 021 AG3332/0766
der Blockadresse, der Ausführung einer Operation und für einige Operationen die Rückkehr zu dem ursprünglichen Block bewirkt werden kann.
Dieses ist auch deshalb möglich, weil nicht alle Bitkombinationen, 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 steuern.
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, alle oder einen Teil dieser Kombinationen neuen Befehle beizugeben, die die Operationen der erwähnten Adressenmodifikationen steuern. Ebenso genügt es, wenn eine bestimmte Anzahl von Stellen des Ergänzungsfeldes, die gleich ist oder größer als die Zahl der Bits im Adressenerweiterungsregister, niemals von den Befehlen verwendet wird, die Operationen steuern, die in der Lage sind, Modifizierungen des Adressenblocks vorauszusehen oder nachzufolgen, die erwähnten Positionen Bits 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 Blockadresse zu erhalten.
Die erwähnten Vorteile ergeben sich danach, weil:
1. in den Hauptspeicher eine Tabelle von Operationen untergebracht wird, die in der Lage sind, mit den Veränderungen der Blockadresse aufzutreten, 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 sich in dem Zusatzfeld des Befehls befinden, weil
4C9832/0766
FR 972 021
2. ein spezieller Befehl erzeugt wird (XIC), dessen Operationscode angibt, daß der Befehl Modifizierungen der Blockadresse anschließt und bei dem bestimmte Bits des Zusatzfeldes einerseits den neuen Wert 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 Befehlsdecodierers vervollständigt sind, so daß diese nach der Feststellung des Operationscode "XIC" die Modifizierung der Blockadresse, des Auslösens 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, wenn sie direkt von dem Befehl definiert wird.
Im folgenden wird die Erfindung anhand eines Ausführungsbeispieles näher beschrieben. Es zeigen:
Fig. 1 eine schematische Darstellung des Formats der
in einem digitalen Elektronenrechner verwendeten Befehle,
Fig. 2 das Blockschaltbild dieses Digitalrechners mit
den Übertragungswegen für die Information, die während der ersten Zyklen der Bearbeitungsoperation bezüglich eines Befehls, einschließlich der Speicherzugriffe gewonnen wird,
Fig. 3 ein Blockschaltbild des im Rahmen der Erfindung
modifizierten Digitalrechners nach Fig. 1 und die Übertragungswege der Information, die während der Ausführung eines speziellen Befehles erzeugt werden, und
4 0 9832/0766
FR 972 021
Fig. 4 eine Darstellung des Befehlsformats des Befehls
XIC.
In dem dargestellten 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 O bis durchnumeriert. Die Gruppierung der Bits des Befehls in Felder zeigt ebenfalls die Fig. 1 sehr deutlich:
1. das Feld des "Operationscodes" (Bits O bis 5)
2. sogenannte Ergänzungsfeider, bestehend aus:
dem "Indexfeld" (Bits 6 und 7) für die Bezeichnung eines Indexregisters für den Fall der indizierten Adressierung,
dem "indirekte Adresse"-Feld (Bit 8); das Bit dieses Feldes enthält den Binärwert 1, wenn die indirekte Adressierung verwendet wird und den Binärwert O, wenn dieses nicht der Fall ist,
dem "Bestimmungs"-Feld (Bits 9 bis 15), welches eine Information enthä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 Direktoperanden enthalten,
3. das "Adressen"-FeId (Bits 16 bis 31), das zur Bestimmung eines Wortes im Speicher dient und für die Ausführung des Befehls benötigt wird. Der Wert des Inhalts des Adressenfeldes ist nicht obligatorisch, der Wert der effektiven Adresse, wobei aber die effektive Adresse das Ergebnis einer Transformation dieses Inhaltes sehr gut sein kann.
Zusätzlich zu den Instruktionen, die einen Speicherzugriff 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 aus einem einzigen Wort
A G9832/0766
FR 972 021
bestehen. Die Verarbeitung dieser Befehle liegt nicht im Bereich dieser Erfindung und sie wird daher in der Beschreibung nicht weiter berücksichtigt.
Fig. 2 zeigt ein Blockschaltbild des als Beispiel gewählten elektronischen Digitalrechners und die Übertragungswege der Information, die während der ersten Verarbeitungszyklen eines Befehls gewonnen werden, der einen Speicherzugriff beinhaltet. Dieser Digitalrechner besteht aus:
- einem adressierbaren Speicher M, von dem drei, je 16 Bit breite Wörter in seinem Inneren dargestellt sind:
die Wörter Wl und W2 sind aufeinanderfolgende Wörter die einen Befehl enthalten und W3, das an einer anderen Stelle liegen kann und Daten enthält, die verarbeitet werden sollen,
- einem Verbindungsregister RL, das Wörter aufnimmt, die aus dem Speicher ausgelesen oder in den Speicher wieder 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, das den Inhalt des Adressenregisters decodiert und das Wort adressiert, das durch seinen Inhalt definiert ist,
- einem Befehlsregister INS, das die Adresse des nächsten, aus dem Speicher auszulesenden Befehls enthält,
- einem Faktorregister FR 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 Ergebnises der Operation,
- einem Register SAC für die Rettung des Akkumulatorinhalts,
- einem Indexregister; es wird hierbei angenommen, daß der Digitalrechner mit drei Indexregistern Xl, X2 und X3 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, das die Indexinformation (Bits 6 und 7 des ersten Wortes des
fr 972 021 40 933 2/0766
Befehls), mit X bezeichnet, 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 A und der Inkrementierer I, welch letzterer vorgesehen ist, um den Wert des zu ihm übertragenen Wortes um 1 zu erhöhen und
- Steuerschaltungen zur Steuerung der Operation des digitalen Rechners; diese Schaltungen bestehen aus den Zeittaktschaltungen, welche 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, sowie logische und arithmetische Operationen.
Die Steuerschaltungen sind nicht dargestellt, da ihr Aufbau an
sich aus dem Stand der Technik bekannt ist.
Im allgemeinen erfordert die Verarbeitung eines Befehls mehrere Zyklen, während 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 Ausführungszyklus durchgeführt werden, sind in Fig. 2 dargestellt. Die Informationsübertragungen mit oder ohne Modifizierungen sind mit voll ausgezogenen
fr 972 021 4 0 9 3 3 2/0768
Linien dargestellt, während die Steuemaß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
1. Der Inhalt des Akkumulators AC wird zum Rettungsregister SAC übertragen.
2. Der Inhalt des Befehlsregisters INS wird in das Adressenregister RA übertragen.
3. Der Inhalt des Befehlsregisters INS wird um den Wert 1 erhöht.
4. Das Adressenregister RA (über den Decodierer DEC) adressiert das erste Wort des Befehls.
5. Das erste Wort des Befehls wird in das Verbindungsregister RL übertragen.
6. 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
7. Der Inhalt des Befehlsregisters INS wird zu dem Adressenregister RA übertragen.
8. Der Inhalt des Befehlsregisters INS wird um den Wert 1 erhöht.
9. Das Adressenregister RA adressiert das zweite Wort des Befehls.
10. Das zweite Wort des Befehls wird in das Verbindungsregister RL übertragen.
11. Der Inhalt des Verbindungsregisters RL wird zu dem Faktorregister RF übertragen.
fr 972 021 409832/0786
12. Sollte der im Register X enthaltene Wert gleich 1, 2 oder 3 sein, dann wird der Inhalt der Register Xl, X2 oder X3 zu dem Akkumulator AC ü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 durchgeführt.
13. Die Operation hängt also von dem in X gespeicherten Wert ab.
13a. Sollte dieser Wert O sein, dann wird der Inhalt des Faktorregisters RF zu dem Akkumulator AC übertragen.
13b. Sollte dieser Wert nicht O sein, wird der Inhalt von RF zu dem Inhalt des Akkumulators hinzuaddiert (Berechnung der indizierten Adresse).
Ausführungszyklen
14. Der Inhalt des Akkumulators AC wird zu dem Adressenregister RA übertragen.
15. Der Inhalt des Akkumulator-Rettungsregisters SAC wird zu dem Akkumulator AC übertragen (Rückstellung des ursprünglichen Inhalts).
Von diesem Zeitpunkt an enthält nun das Adressenregister 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 (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
fr 972 021 409832/0766
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,
zu adressieren.
16 zu verarbeiten. Es ist daher möglich, 2 = 65 536 Speicherplätze
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 den vergrößerten SSpeicher adressieren können bezüglich der Funktion des Inhalts der Gesamtanordnung von Adressenregister und Adressenerweiterungsregister. 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.
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.
Fig. 3 zeigt einen Digitalrechner, der zur Erreichung dieses Ziels verändert ist. Er besteht aus den gleichen Systemelementen, die bereits in Fig. 2 dargestellt sind und zusätzlich noch aus folgenden Elementen:
- einem Adressenerweiterungsregister RA,
- zusätzlichen Registers R2, R3, R4 und
- einem Speicherelement B, das beispielsweise eine einfache Verriegelungsschaltung sein kann.
FR 972 °21 409832/0766
Es wird angenommen, daß jedes Register Rl bis R4 zwei Bits umfaßt.
Die Adressierung der Speicher wird über die Register RA und Rl vorgenommen. Der Inhalt von Rl kann ein Speicherfeld (Speicherzone) und der Inhalt von RA die Adresse eines Wortes innerhalb des genannten Feldes (Zone) bestimmen. Bekannten Einrichtungen entsprechend ist es möglich, den Speicher aus einem allgemeinen Feld aufzubauen, das durch bestimmte Werte des Inhalts des Adressenregisters RA adressierbar ist, was immer auch der Inhalt von Rl sein mag und weiter aus bestimmten Feldern, die durch die anderen Werte des Adressenregisters adressierbar und vom Inhalt von Rl her bestimmt sind. Wenn daher beispielsweise RA 16 Bits und Rl zwei Bits enthält, dann ist es möglich, die Adressierungsschaltungen so aufzubauen, daß das allgemeine Feld stets adressiert wird, wenn das höchststellige Bit in RA gleich O wird, so daß die besonderen Felder adressiert werden, wenn dieses Bit 1 ist. Es sind dann 5 Felder mit 32 768 Wörtern verfügbar, nämlich: ein generelles Feld, adressiert durch die Werte O bis 32 767 des RA und 4 besondere Felder, adressiert durch die Werte 32 768 bis 65 535 des RA. Dieses System gestattet daher die Speicherung einer Information oder von Befehlen für eine allgemeine Verwendung, die adressiert werden können, unabhängig vom Momentanwert des Inhaltes des Adressenerweiterungsregisters Rl.
Die Funktion des Registers R2 besteht darin, den ursprünglichen Wert des Inhaltes von Rl aufzubewahren, wodurch sein Inhalt auf seinen ursprünglichen Wert zurückgebracht werden kann, wenn die Ausführung eines Befehls vollendet ist. Diese Rückstellung von Rl ist zur Sicherstellung des sequentiellen Auslesens des Befehls erforderlich.
Die Änderung eines Feldes kann auch permanent sein. Besonders dann, wenn die durchzuführende Operation eine Programmverzweigung in ein anderes Feld, d.h. ein Feld, das sich von dem gerade tatsächlich in Arbeit befindlichen unterscheidet, ist. In diesem Falle wird der Inhalt von Rl nicht auf seinen ursprünglichen Wert
fr 972 021 AO 98 32/0768
24G3039
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 R3.
Darüberhinaus kann es während der Durchführung normaler Befehlsfolgen ohne Feldänderungen notwendig sein, sich auf ein anderes Feld zu beziehen und diesen Bezug aufzubewahren. So ist es beispielsweise möglich, ein Indexregister mit einer Information zu laden, die aus einem bestimmten Feld 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 Feld zu operieren haben wird. Das Register R4 gestattet die Aufbewahrung der Kennzeichenangabe dieses Feldes.
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 dargestellt 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 5 liefern Zusatzinformation.
Bei dem oben beschriebenen System wird angenommen, daß die Tabelle 64 Wörter enthält, die mit TO bis T63 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:
fr 972 021 403832/0766
- Bits O 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 O ist und die Nichtverwendung der Indizierung angeben, wenn dieser Wert O ist,
- Bits 8 und 9 sind ein "Adressenerweiterungs"-Feld, das angibt, daß ein Wert in das Register Rl eingeführt werden soll,
- Bits 10 bis 15 zeigen ein "Tabellen"-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 Fig. 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:
E rs te r Vorberei tungs zyk1us
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 Rl adressiert wird. Am Ende des Zyklus enthält das Register OP den Code XIC. Das Register X enthält die Angabe des Indexregisters, das für Adressierungszwecke während der Ausführungszyklen verwendet werden soll (oder den Wert 0, wenn keine Indizierung 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.
Zweiter Vorbereitungszyklus
Die Schritte 7 bis 10 sind mit den entsprechenden Schritten der Verarbeitungsoperation eines gewöhnlichen Befehls identisch. Es
fr 972 021 40 9832/0766
soll angemerkt werden, daß im Schritt 9 das zweite Wort des Befehls durch die Andordnung der Register RA und Rl 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.
Dann steuern die logischen Schaltungen, die von den Zeitgeberschaltungen und dem Register OP konditioniert werden, eine Operationmodifizierung der Zeitgabeschaltungen, so daß diese erwähnten Schaltungen statt dem Zustand, der dem Schritt 11 entspricht, nun den Zustand einnehmen, der dem ersten Schritt einer Reihe zusätzlicher Schritte entspricht. Dieser Schritt ist in der Fig. 3 mit 50 bezeichnet.
Die zusätzlichen Schritte verlaufen folgendermaßen:
50. Die Verriegelungsschaltung B wird in den Zustand "EIN" gebracht, der angibt, daß die in Bearbeitung befindliche Operation eine Operation der Type XIC ist.
51. Der Inhalt von Rl wird nach R2 und R3 übertragen.
52. Der Inhalt der ersten beiden Bitstellen von CO (Bits 8 und 9 des ersten Befehlswortes, das die neue Feldadresse angibt) wird nach Rl und R4 übertragen.
53. Der Inhalt der anderen Bitstellen von CO wird in die niedrigsten Stellen des Akkumulators übertragen und die anderen Stellen auf 0 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 RF eingegeben.
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 .
fr 972 021 409832/0766
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.
60. Register RA adressiert das Wort Tn der Tabelle (es sei angenommen, daß für das Speicherfeld, welches die Tabelle enthält, die Adressierung von dem Inhalt von Rl 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 Rl enthält die neue Feldadresse,
Register R2 enthält die frühere Feldadresse.
fr 972 021 403832/0766
Ausführungszyklen
Nach Schritt 62 kehren die Zeittaktschaltungen auf einen Zustand zurück, der dem Schritt 14 entspricht und die Ausführungszyklen verlaufen weiterhin wie für andere Befehle (andere Befehle als XIC). Während dieses Zyklus, bzw. dieser Zyklen werden die Zugriffe zum Speicher mit Hilfe der Registeranordnung RA und Rl (das letztere enthält die neue Feldadresse) 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 Schaltungen, die von den genannten Zuständen und Vondem "EIN"-Zustand der Verriegelungszustand 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 R2 nach Rl übertragen, so daß Rl seinen ursprünglichen Zustand wieder einnimmt, der der früheren Feldadresse entspricht. Dieser Schritt wird nicht durchgeführt, wenn der Inhalt des Registers OP angibt, daß die Feldänderung permanent sein sollte, was der Fall ist, wenn beispielsweise die Operation eine Programmverzweigung ist.
Während des Schrittes 71 wird die Verriegelungsschaltung B zurückges te11t.
Am Ende der Ausführung des Befehls enthält R3 in allen Fällen den ursprünglichen Wert von Rl, und das Register R4 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 daß, 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, vor. denen jeder mit Hilfe eines bestimmten Operationscode verwendet wird.
fr 972 021 409832/0766
Der erste Befehl steuert die übertragung des Inhalts von R3 in die Bitstellen 8 und 9 des adressierten Wortes, und der zweite Befehl steuert die übertragung des Inhaltes von R4 in die Bitstellen 8 und 9 des adressierten Wortes. In beiden Fällen werden die Bitstellen des adressierten Wortes nicht modifiziert. Das Wort, in welches der Inhalt des Registers R3 oder R4 ü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 das Feld zu bestimmen, dessen Kennzeichenangabe 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 Rl während der Verarbeitung des Befehls zu vermeiden und daher die Modifizierung der Reihenfolge der Schritte zu ermöglichen, in dem mehr einfache Steuerschaltungen verwendet werden, um den Inhalt der Bitstellen 8 und 9 des Befehls (neue Feldadresse) in das Register Rl zu übertragen, wie oben angedeutet wurde (Schritt 52), anstelle einer Übertragung in das Register R2, das als Adressenergänzungsregister verwendet wird.
In diesem Falle ist es dann notwendig, den Adressendecodierer zu modifizieren, so daß er während der Durchführung der Ausführungszyklen von Signalen gesteuert werden kann, die von den Registers RA und R2 übertragen werden, anstelle von Signalen, die von den Registern RA und Rl hergeleitet werden. Dieses kann mit Hilfe von
fr 972 021 40 9832/0766
Torschaltungen geschehen, die von einer Verriegelungschaltung konditioniert werden, der während der Verarbeitungszyklen in den "EIN"-Zustand gebracht wird. Am Ende der Ausführung des Befehls wird diese Verriegelungsschaltung in den Ausgangszustand zurückgestellt und wenn die Feldänderung permanent sein soll, der Inhalt von R2 zu Rl übertragen.
fr 972 021 AO 3 8 32/0766

Claims (7)

  1. PATENTANSPRÜCHE
    ni. Verfahren zur Adressenerweiterung einer elektronischen Datenverarbeitungsanlage, bestehend aus einem Speicher zur Speicherung von Daten und Befehlen, mit einem Adressen- und Adressenerweiterungsregister und aus Schaltung zur Steuerung cles Speicherzugriffs und der Verarbeitung der Befehle, gekennzeichnet durch Ausführung der nachstehenden Operationsschritte, wenn das OperationscodefeId eines Befehls einen bestimmten Wert (XIC) enthält:
    a. übertragen des Inhaltes eines Teils eines Ergänzungsfeldes (Bits 9 bis 15; Fig. 1) eines Befehlswortes in ein Ergänzungsadressenregister (Rl),
    b. Auslesen mindestens eines der Wörter eines Befehls aus dem Speicher (ti; Fig. 1) , das sich in einer Tabelle befindet, die in bestimmten Speicherplätzen steht, wobei die Adresse dieses Wortes durch einen anderen Teil des Ergängzungsfeldes angegeben wird,
    c. Speichern dieses Wortes in mindestens einem der für die Befehlsspeicherung vorgesehenen Registern, und
    d. Ausführen der Operationen, die durch den Befehl definiert sind, der durch den neuen, in Schritt c. gebildeten Inhalt der Register gegeben ist, wobei der Speicher während der Ausführung dieses Befehls von dem Inhalt des Adressenregisters (RA), ergänzt durch den Inhalt des Ergänzungsadressenregisters (Rl), adressiert wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß ein zusätzliches Register (R2; Fig. 3) vorgeshen ist und daß der vor der Ausführung des Operationsschrittes a. mit Hilfe der Schaltungen zur Steuerung des Speicherzugriffs der Inhalt des Ergänzungsadressenregisters (Rl) in das zusätzliche Register (R2) übertragen wird.
  3. 3. Verfahren nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß ein Speicherelement (B) gesetzt wird, wenn
    fr 972 021 4C9832/0766
    k n ι π 3 9
    ein Befehl einen bestimmten Operationscode (XIC) enthält, daß die Schaltungen zur Steuerung des Speicherzugriffs vor der Ausführung des Schrittes d. dieses Setzen vornehmen, daß die nach dem Schritt c. die übertragung des Inhaltes des zusätzlichen Registers (R2) in das Erganzungsadressenregister (Rl) steuern, mindestens dann, wenn die aus der Tabelle ausgelesene Information bestimmte Konfigurationen aufweist.
  4. 4. Verfahren nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Schaltungen zur Steuerung des Speicherzugriffs vor der Ausführung des Schrittes a. den Inhalt des Ergänzungsadressenregisters (Rl) zu einem anderen Register (R3) übertragen und ihn während der Befehlsausführung nicht mehr verändern.
  5. 5. Verfahren nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die Schaltungen zur Steuerung des Speicherzugriffs den Inhalt des Ergänzungsadressenregisters während des Schrittes a. in ein zusätzliches Register (R4) übertragen und ihn während der Befehlsausführung nicht mehr verändern.
  6. 6. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß die Schaltungen zur Steuerung des Speicherzugriffs, dann, wenn der Operationscode einen bestimmten Wert (XIC) darstellt, die Übertragung des Inhalts des anderen Registers (R3) in bestimmte Plätze des Speicherwortes steuert, das durch die Verarbeitung des Inhalts des Adressenfeldes des Befehls adressiert wurde, wobei die genannten Plätze den gleichen Rang belegen,wie die Bits des bestimmten Befehls (XIC), die zu dem Ergänzungsadressenregister (Rl) während des Schrittes a. der Ausführung dieses Befehls übertragen wurden.
    403832/0766
    FR 972 021
  7. 7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Inhalt des zusätzlichen Registers (R4) in Abänderung des Anspruchs 6 in bestimmte Plätze des Speicherwortes übertragen werden.
    fr 972 021 4 C 3832 /0766
    Leeseite
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 true DE2403039A1 (de) 1974-08-08
DE2403039C2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2647241A1 (de) * 1975-10-30 1977-05-12 Motorola Inc Anordnung fuer eine digitale datenuebertragung
DE2926589A1 (de) * 1978-07-06 1980-01-24 Philips Nv Anordnung zur verlaengerung einer logischen computeradresse
EP0040703A1 (de) * 1980-05-23 1981-12-02 International Business Machines Corporation Verbesserung eines Datenverarbeitungsapparates vom Typ System/370

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Citations (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

Patent Citations (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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2647241A1 (de) * 1975-10-30 1977-05-12 Motorola Inc Anordnung fuer eine digitale datenuebertragung
DE2926589A1 (de) * 1978-07-06 1980-01-24 Philips Nv Anordnung zur verlaengerung einer logischen computeradresse
EP0040703A1 (de) * 1980-05-23 1981-12-02 International Business Machines Corporation Verbesserung eines Datenverarbeitungsapparates vom Typ System/370

Also Published As

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

Similar Documents

Publication Publication Date Title
DE2230102C2 (de) Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung
DE1499193C3 (de) Speicher-Adressierschaltung
DE2540975C2 (de) Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE2536622C2 (de) Verzweigungssteuerung mit flexibler Auswahl von Steuerworten
DE1901228A1 (de) Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers
DE2212873A1 (de) Aus Schieberegistern aufgebaute Speichereinrichtung
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
DE2718110A1 (de) Datenverarbeitungseinheit
DE1774870C3 (de) Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage
DE2403039A1 (de) Verfahren zur adressenerweiterung einer elektronischen digitalrechenanlage
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter
DE1115488B (de) Datenverarbeitungssystem
DE2900586C2 (de) Anordnung zum Decodieren von Codewörtern variabler Länge
DE2117581B2 (de) Einrichtung zur Adressenprüfung
DE2235883C3 (de) Datenverarbeitungseinrichtung
DE2556357A1 (de) Adressiereinrichtung
DE2057587A1 (de) Inhaltsadressierter Speicher
DE1296429B (de) Datenbearbeitungsanlage
DE3535518A1 (de) Bitoperations-verarbeitungsverfahren
DE3341339C2 (de) Befehlsfolgegenerator
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE1474090B2 (de) Datenverarbeitungsanlage

Legal Events

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