DE3751540T2 - Verfahren und Vorrichtung zur Datenverarbeitung. - Google Patents
Verfahren und Vorrichtung zur Datenverarbeitung.Info
- Publication number
- DE3751540T2 DE3751540T2 DE3751540T DE3751540T DE3751540T2 DE 3751540 T2 DE3751540 T2 DE 3751540T2 DE 3751540 T DE3751540 T DE 3751540T DE 3751540 T DE3751540 T DE 3751540T DE 3751540 T2 DE3751540 T2 DE 3751540T2
- Authority
- DE
- Germany
- Prior art keywords
- bits
- bit length
- length
- bit
- address
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/342—Extension of operand address space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Description
- Die Erfindung betrifft allgemein Datenverarbeitung, wie sie unter Verwendung einer Hauptspeichervorrichtung mit großer Speicherkapazität ausgeführt wird, und spezieller betrifft sie ein Verfahren und eine Vorrichtung zum Ausführen einer Datenverarbeitung, die dazu geeignet sind, die Länge einer Speicheradresse zu erweitern, wobei Kompatibilität mit einem Datenprozessor herkömmlichen Typs gewahrt ist.
- Eine typische Technik zum Erweitern der Länge von Hauptspeicheradressen, wie in einem Datenprozessor verwendet, ist in einem von IBM gelieferten Handbuch "IBM System/370, Extended Architecture Principles of Operation (1983), Seiten 5-4 bis 5-10 und Seiten 7-1 bis 7-8" erörtert. Dieser bekannte Stand der Technik verwendet ein sogenanntes virtuelles Speichersystem, das zwei Arten von Adreßlängenmodi beinhaltet, nämlich einen 24-Bit- und einen 31-Bit-Modus, und bei dem Festkommadaten und logische Daten eine Datenlänge von 32 Bits aufweisen. Jedes der verwendeten Universalregister verfügt über eine Länge von 32 Bits, und Datenarithmetik- oder Logikan- weisungen, wie für Additionen und Subtraktionen, werden für die gesamten 32 Bits jedes der Universalregister bereitgestellt. Da jedoch keine Arithmetikanweisung bereitgestellt ist, die für das Handhaben von Adressen vorgesehen ist, werden Arithmetikoperationen an Adressen mittels der Datenarithmetik- oder Logikanweisungen ausgeführt. Während der Ausführung der Datenarithmetik- oder Logikanweisungen werden die gesamten 32 Bits jedes der Universalregister ausgelesen und Arithmetik- oder Logikoperationen werden an 32-Bit-Daten ausgeführt. Das 32-Bit-Ergebnis der Arithmetikoperationen wird in die Universalregister eingeschrieben. Eine Anweisung zum Zugreifen auf einen einen Operanden enthaltenden Hauptspeicher spezifiziert zwei Universalregister, die als Basisregister bzw. Indexregister dienen und die beide dazu verwendet werden, die Adresse eines Operanden abhängig von einem entsprechenden Anweisungscode zu erzeugen. Eine virtuelle Adresse für den Zugriff auf den Hauptspeicher wird dadurch erzeugt, daß die Inhalte des Basisregisters und des Indexregisters zum Versatz im betroffenen Anweisungscode addiert werden. Wenn in diesem Fall die Länge des Additionsergebnisses die Länge der virtuellen Adresse überschreitet, wird der überlaufende Bereich höherer Ordnung des Ergebnisses nicht berücksichtigt. Daher wird eine solche Addition im allgemeinen dadurch ausgeführt, daß nur die Anzahl von Bits, die der Länge der virtuellen Adresse entspricht, aus dem Basis- und Indexregister abhängig vom Modus der Länge der virtuellen Adresse ausgelesen wird. Genauer gesagt, werden in einem 24-Bit-Modus die 24 Bits höherer Ordnung nach oben ausgehend vom geringstsignifikanten Bit aus dem Universalregister ausgelesen, und in einem 31-Bit-Modus erfolgt das Auslesen der 31 Bits höherer Ordnung aufwärts ab dem geringstsignifikanten Bit. Eine Ladeanweisung, die als eine der Anweisungen zum Zugriff auf den Hauptspeicher dient, spezifiziert den Vorgang des Auslesens eines 32-Bit-Datenwerts aus dem Hauptspeicher, wie durch die so erzeugte Adresse spezifiziert, unabhängig vom Modus der Länge der virtuellen Adresse, wobei die so ausgelesenen Daten in das gesamte 32 -Bit-Universalregister eingeschrieben werden.
- Der Längenmodus für die virtuelle Adresse wird durch einen 1-Bit-Modus in einem Register spezifiziert, das ein Programmstatuswort enthält, das den Status verschiedener Bedingungen im Prozessor anzeigt. Das Modusbit kann durch eine Modus-Änderung/Verzweigung-Anweisung geändert werden. Der Längenmodus für die virtuelle Adresse wird durch Ändern des Modusbits geändert.
- Wie vorstehend beschrieben, berücksichtigtder Stand der Technik jedoch nicht den Fall, daß die Länge einer Adresse so stark erweitert ist, daß die erweiterteLänge der Adresse die Länge nichterweiterter Daten überschreitet, d.h. die Anzahl von Bits oder die Länge einer Bitkettefür das Universalregister. Wenn in einem solchen Fallder Stand der Technik verwendet wird, ist es erforderlich,die Datenlänge auf eine Größe zu erweitern, die dererweiterten Länge der Adresse entspricht oder größer ist, um die Datenarithmetikoder Logikanweisungen zum Zweck desausführens arithmetischer oder logischer Operationen an den Daten mit erweiterter Länge zu verwenden.
- Jedoch erschwert es die Erweiterung der Datenlänge, die Datenübertragung zwischen einem alten Programm, wie es vor der Datenerweiterung formuliert wurde, und einem neuen Programm, wie es danach formuliert wurde, auszuführen. Wenn z.B. die nichterweiterte Datenlänge 32 Bits im alten Programm ist und die erweiterte Datenlänge im neuen Programm 64 Bits ist, müssen die 32-Bit-Daten in 64-Bit-Daten umgesetzt werden, damit Datenübertragung vom alten Programm zum neuen Programm möglich ist. Dies führt zur Schwierigkeit, daß es die Erweiterung der Datenlänge erschwert, Kompatibilität zwischen verschiedenen Datenprozessoren sicherzustellen.
- Eine andere Technik zum Erweitern der Länge von Hauptspeicheradressen ist in der Offenlegung (Kokai tokkyo koho) 54-95129 zu einer Japanischen Patentanmeldung aufgezeichnet, gemäß der ein Datenprozessor eine Schaltung zum Erzeugen einer Adresse mit erweiterter Länge mit 32 Bits unter Verwendung von Universalregistern von 32 Bits beinhaltet, um eine Ausführung von Anweisungen zu ermöglichen, die für einen Hauptspeicher erstellt wurden, auf den mit 32-Bit-Adressen zugegriffen wird.
- Bei diesem Stand der Technik erfolgt die Steuerung dergestalt, daß eine Adresse mit ereiterter Länge 24 signifikante Bits in ihrem unteren Bitbereich sowie 8 Bits, die alle den Wert Null haben, in ihrem oberen Bitbereich enthält, wenn eine Adresse mit erweiterter Länge dazu verwendet wird, eine Anweisung aus einem Hauptspeicher abzurufen. So ermöglicht es dieser bekannte Stand der Technik dem Datenprozessor, bereits erstellte Steuerprogramme (Betriebssystemprogramm) mit weniger Änderungen zu verwenden.
- Bei diesem Stand der Technik ist jedoch angenommen, daß die Länge von Daten, die aus dem Hauptspeicher abgerufen oder in diesen eingespeichert werden, 32 Bits ist. D.h., daß eine erweiterte Adresse immer noch die Datenlänge überschreitet.
- Daher hat dieser Stand der Technik dieselbe Schwierigkeit, wie sie oben hinsichtlich des bereits genannten Stands der Technik angegeben wurde.
- Ein Datenprozessor mit den Merkmalen im Oberbegriff von Anspruch 1 ist aus "Introduction To The 80386", INTEL, April 1986, Seiten 4-1, 4-2, 7, 8, 14, 15, 17 bis 19, 31, 32 und 55 bekannt. Der bekannte Prozessor kann mit verschiedenen Bitlängen in verschiedenen Betriebsmodi arbeiten.
- Es ist eine Aufgabe der Erfindung, einen Datenprozessor und ein Datenverarbeitungsverfahren zu schaffen, die eine wirkungsvolle Erweiterung von Hauptspeicheradressen ermöglichen, während Kompatibilität mit herkömmlichen Datenprozessortypen sichergestellt ist.
- Diese Aufgabe wird durch den im Anspruch 1 definierten Prozessor und das im Anspruch 14 definierte Verarbeitungsverfahren gelöst.
- Der vorliegende Prozessor umfaßt eine Einrichtung zum Spezifizieren entweder einer vorgegebenen maximalen Adreßlänge (a Bits) oder einer Adreßlänge, die kleiner ist als das Maximum, und mindestens ein Register mit der maximalen Adreßlänge (r Bits) wobei die d Bits geringerer Ordnung im mindestens einen Register, wie durch eine erste Anweisung spezifiziert, ausgelesen werden, um Arithmetik- oder Logikanweisungen auszuführen, wobei das Ergebnis derartiger Arithmetik- oder Logikanweisungen in ein Registerelement eingeschrieben wird, das im mindestens einen Register enthalten ist, und wobei diejenige Anzahl von Bits, die einer spezifizierten effektiven Länge entspricht, aus einem Registerelement im mindestens einen Register ausgelesen wird, wie durch eine zweite Anweisung spezifiziert, um eine a-Bit- Adresse zu erzeugen, wobei auf diese Weise d Bits auf die so erzeugte Adresse hin ausgelesen werden, um sowohl in ein im mindestens einen, so spezifizierten Register enthaltenes Registerelement als auch die Speichervorrichtung eingeschrieben zu werden.
- Bei dieser Anordnung werden Daten mittels einer d-Bit-Zugriffseinrichtung geladen und abgespeichert, und dies ermdglicht eine direkte Datenübertragung zwischen mehreren Programmen, die jeweils eine andere effektive Länge der Adresse eines Operands aufweisen. Daher ist es einfach, Rompatibilität zu herkömmlichen Datenprozessortypen zu gewährleisten. Auch wird diejenige Anzahl oder Länge von Bits, die der effektiven Länge einer Adresse entspricht, aus dem r- Bit-Universalregister entsprechend der effektiven Adreßlänge ausgelesen, wodurch eine Erweiterung der Adreßlänge des Hauptspeichers über die d Bits hinaus ermöglicht ist.
- Fig. 1 ist ein Blockdiagramm, das den Aufbau eines bevorzugten Ausführungsbeispiels der Erfindung zeigt;
- Fig. 2 ist ein Blockdiagramm, das den Aufbau einer im Ausführungsbeispiel enthaltenen 64 -Bit-Adressen-Arithmetikschaltung zeigt;
- Fig. 3 ist ein Blockdiagramm, das den Aufbau einer im Ausführungsbeispiel enthaltenen 32-Bit-Adressen-Arithmetikschaltung zeigt;
- Fig. 4 ist ein Blockdiagramm, das den Aufbau einer im Ausführungsbeispiel enthaltenen Adressenerzeugungsschaltung zeigt;
- Fig. 5 ist eine Veranschaulichung der Anordnung eines beim Ausführungsbeispiel verwendeten Formats für eine Anweisung RX;
- Fig. 6 ist eine Veranschaulichung der Anordnung eines beim Ausführungsbeispiel verwendeten Formats für eine Anweisung R;
- Fig. 7 ist eine Tabelle, die die Funktionen einer Auswahleinrichtung zeigt, wie sie einer Adressenerzeugungsschaltung zugeordnet ist;
- Fig. 8 ist eine Tabelle, die die Funktionen einer Auswahleinrichtung zeigt, wie sie dem Ergebnis von Arithmetik- oder Logikoperationen zugeordnet sind; und
- Fig. 9 veranschaulicht einen virtuellen Speicherbereich, der im Adreßmodus des Ausführungsbeispiels verwendet wird.
- Nachfolgend wird unter Bezugnahme auf die Fig. 1 bis 9 ein bevorzugtes Ausführungsbeispiel der Erfindung sowie dessen modifizierte Formen beschrieben. Das derzeit bevorzugte Ausführungsbeispiel verwendet ein virtuelles Speichersystem, und es verfügt über drei Modusarten, wie einen 24-Bit-, einen 31-Bit- und einen 48-Bit-Modus als Modi für die Länge einer virtuellen Adresse (nachfolgend als "Adreßmodus" bezeichnet). Daher werden die effektiven Längen einer Operandenadresse abhängig von den jeweiligen Modi auf 24 Bits, 31 Bits oder 48 Bits geändert.
- Fig. 9 zeigt Bereiche virtueller Adressen, auf die in den jeweiligen Modi zugegriffen werden kann. Wenn der 24-Bit- Modus ausgewählt ist, kann auf einen Bereich 201 zugegriffen werden, der virtuellen Adressen 0 bis 2²&sup4;-1 entspricht. Auf ähnliche Weise ermöglicht der 31-Bit-Modus den Zugriff auf einen Bereich 202 entsprechend den virtuellen Adressen 0 bis 2³¹-1, und der 48-Bit-Modus ermöglicht den Zugriff auf einen Bereich 203, entsprechend den virtuellen Adressen 0 bis 2&sup4;&sup8;-1. Die Datenlänge ist dauernd 32 Bits, unabhängig von einem der Adreßmodi.
- Fig. 1 zeigt den Aufbau des bevorzugten Ausführungsbeispiels in Blockform. Das veranschaulichte Ausführungsbeispiel ist so ausgebildet, daß es folgendes enthält: ein Anweisungsregister 1 zum Einspeichern eines auszuführenden Anweisungscodes, einen Anweisungsdecodierer 2, ein Programmstatuswort (PSW) 3, ein Flipflop V18 zum Steuern der Anzahl oder der Länge von Bits, wie sie auf eine Adresse hin durch Arithmetikoperationen zu handhaben sind, eine Adressenerzeugungsschaltung 4 zum Erzeugen der Absolutadresse eines Operands auf einen Anweisungscode hin, eine Hauptspeichervorrichtung 5, ein Abrufdatenregister 6, sechzehn 64-Bit-Universalregister 7, eine 64-Bit-Adressen-Arithmetikschaltung 8, eine 32- Bit-Daten-Arithmetikschaltung 9, ein Register 10, Auswahleinrichtungen 10, 20, 21, ein UND-Gatter 14 und ein ODER- Gatter 13.
- Fig. 2 ist ein Blockdiagramm für den Aufbau der 64-Bit- Adressen-Arithmetikschaltung 8. Die 64-Bit-Adressen-Arithmetikschaltung 8 beinhaltet eine binäre 64-Bit-Festkomma-Binärarithmetikschaltung 51, eine 64-Bit-Logik-Arithmetik- Schaltung 52 sowie Auswahleinrichtungen 53, 54.
- Fig. 3 ist ein Blockdiagramm des Aufbaus der 32-Bit-Daten- Arithmetikschaltung 9. Die 32-Bit-Daten-Arithmetikschaltung 9 beinhaltet eine binäre 32-Bit-Festkomma-Binärarithmetikschaltung 61, eine 32-Bit-Logik-Arithmetik-Schaltung 62, eine 32-Bit-Dezimalarithmetikschaltung 63 sowie Auswahleinrichtungen 64, 65.
- Fig. 4 ist ein Blockdiagramm des Aufbaus der Adressenerzeugungsschaltung 4. Die Adressenerzeugungsschaltung 4 beinhaltet einen 48-Bit-Addierer 71 mit drei Eingängen, einen 31- Bit-Addierer 72 mit drei Eingängen, einen 24-Bit-Addierer 73 mit drei Eingängen, Register 74, 75 und 76 zum Einspeichern der Additionsergebnisse, eine Auswahleinrichtung 77, eine Adressenumsetzschaltung 78 zum Umsetzen einer virtuellen Adresse in eine Absolutadresse, und ein Absolutadresseregister 79 zum Einspeichern der so erhaltenen Absolutadresse.
- Fig. 5 zeigt das Format 96 einer Anweisung RX, bei dem es sich um das Format für eine Hauptspeicherzugriff-Anweisung handelt, wie beim Datenprozessor verwendet, der das bevorzugte Ausführungsbeispiel bildet. Das Format 96 der Anweisung RX besteht aus einem Operationscode (OP) 97, einem Feld R 98 für die Registernummer eines ersten Operands, einem Feld X 99 für die Indexregisternummer eines zweiten Operanden, einem Feld B 100 für die Basisregisternummer des zweiten Operanden, und einem Feld D 101 für den Versatz des zweiten Operands.
- Fig. 6 zeigt ein Format 102 für eine Anweisung RR, das das Format für Arithmetik- oder Logikanweisungen ist. Das Format 102 der Anweisung RR besteht aus einem Operationscode (OP) 103, einem Feld R1 104 für die Registernummer des ersten Operanden, und einem Feld R2 105 für die Registernummer des zweiten Operanden.
- Das Programmstatuswort 3 beinhaltet Bits A1 16 und A2 17, die der Steuerung der Adreßmodi zugeordnet sind. Wenn die Bits A1 16 und A2 17 auf "0,0" gesetzt sind, ist der 24-Bit- Modus ausgewählt. Auf ähnliche Weise entspricht "1,0" dem 31-Bit-Modus und "0,1" oder "1,1" entspricht dem 48-Bit-Modus.
- Wenn das Flipflop V18 auf "0" gesetzt ist, ist die Anzahl der Bits der Adressenarithmetikanweisung und der Hauptspeicherzugriff-Anweisung, deren Zugriffsziel eine Adresse ist, konstant 64 Bits, unabhängig vom Adreßmodus. Wenn das Flipflop V18 auf "1" gesetzt ist, beträgt die Länge eines Zielbits sowohl im 64-Bit-Modus als auch im 31-Bit-Modus 32 Bits, und 64 Bits im 48-Bit-Modus.
- Nachfolgend wird der Betrieb des bevorzugten Ausführungsbeispiels beschrieben. Zunächst wird auf verschiedene Anweisungen Bezug genommen, wie sie in dem das bevorzugte Ausführungsbeispiel bildenden Datenprozessor verwendet werden.
- Das aktuell bevorzugte Ausführungsbeispiel verwendet Adreßarithmetikanweisungen, die dazu verwendet werden, arithmetische oder logische Operationen wie solche zwischen den Universalregistern auszuführen, Datenarithmetikanweisungen, die zum Ausführen arithmetischer oder logischer Operationen wie solchen zwischen den Universalregistern verwendet werden, und Hauptspeicherzugriff-Anweisungen, die beim Ausführen einer Datenübertragung zwischen der Hauptspeichervorrichtung und den Universalregistern verwendet werden. Die Adreßarithmetikanweisungen haben das Format 102 der Anweisung RR, und ein Beispiel einer solchen Anweisung ist eine vorzeichenfreie Festpunkt-Binäradditionsanweisung (Anweisung ADDA). Die Datenarithmetikanweisungen haben das Format 102 der Anweisung RR, und ein Beispiel für derartige Anweisungen ist eine Festkomma-Binäradditionsanweisung mit Vorzeichen (Anweisung ADD). Die Hauptspeicherzugriff-Anweisungen haben das Format 96 der Anweisung RX, und Beispiele für derartige Anweisungen sind eine Datenladeanweisung (Anweisung L), deren Zugriffsziel Daten sind, eine Datenspeicherungsanweisung (Anweisung ST), eine Adreßladeanweisung (Anweisung LA), deren Zugriffsziel eine Adresse ist, und eine Adreßspeicherungsanweisung (Anweisung STA).
- Die folgende Beschreibung nimmt auf den Betrieb des Ausführungsbeispiels während der Ausführung von Hauptspeicherzugriff-Anweisungen Bezug. Wenn die Ausführung von Hauptspeicherzugriff-Anweisungen gestartet wird, werden in das Anweisungsregister 1 entsprechende Anweisungscodes eingespeichert. Der Anweisungsdecodierer 2 decodiert den Operationscode 97 der Hauptspeicherzugriff-Anweisung mit dem Format 96 der Anweisung RX aus dem Anweisungsregister 1, und er gibt den decodierten Operationscode 97 auf eine Signalleitung OC 36. Gleichzeitig wird eine Signalleitung MA 45 zum Anzeigen der Hauptspeicherzugriff-Anweisungen auf "1" gesetzt, und im Fall von Anweisungen wie der Anweisung L und der Anweisung ST, deren Zugriffsziel Daten sind, wird eine Signalleitung AI 39 auf "0" gesetzt, während im Fall von Anweisungen wie der Anweisung LA und der Anweisung STA, deren Zugriffsziel eine Adresse ist, die Signalleitung AI 39 auf "1" gesetzt wird. Die Adressenerzeugungsschaltung 4 addiert den Wert des Felds D 101 zu zwei Registerelementen (nachfolgend als "Indexregister" bzw. "Basisregister" bezeichnet, wie sie durch das Feld X 99 und das Feld B 100 spezifiziert werden, und zwar auf Grundlage des Formats 96 einer Anweisung RX im Anweisungsregister 1, um dadurch die Adresse eines Operands zu erzeugen. Bei einer solchen Addition wird jedes der Ergebnisse der in den Addierern 71, 72 und 73, die jeweils unterschiedliche Bitanzahlen aufweisen, ausgeführten Addition über eine Signalleitung AM 37 ausgewählt, wie in Fig. 7 dargestellt. Genauer gesagt, werden, wenn die Signalleitung AM 37 auf "0,0" steht, um den 24-Bit-Modus anzuzeigen, die 24 Bits niedrigerer Ordnung aus den zwei Registern 7 ausgelesen, die dem Index und dem Basisregister zugeordnet sind, und diese 24 Bits werden durch den 24-Bit-Addierer 73 zum Wert des 12-Bit-Felds D 101 addiert. Das Ergebnis dieser Addition wird durch Werte "0" höherer Ordnung ergänzt, in das 48-Bit-Register 76 eingespeichert, von der Auswahleinrichtung 77 ausgewählt und dann der Adreßumsetzschaltung 78 zugeführt. Wenn die Signalleitung AM 37 auf "1, 0" steht, um den 31-Bit-Modus anzuzeigen, werden 31 Bits niedrigerer Ordnung aus dem Universalregister 7 ausgelesen und dann durch den 31-Bit-Addierer 72 einer ähnlichen Addition unterzogen. Das Ergebnis einer solchen Addition wird auf entsprechende Weise durch die Auswahleinrichtung 77 ausgewählt. Wenn die Signalleitung AM 37 auf "0, 1" oder "1,1" steht, um den 48- Bit-Modus anzuzeigen, werden die 48 Bits unterer Ordnung aus dem Universalregister 7 ausgelesen und dann einer ähnlichen Addition durch den 48-Bit-Addierer 71 unterzogen. Das Ergebnis einer solchen Addition wird auf ähnliche Weise von der Auswahleinrichtung 77 ausgewählt. Das durch die Auswahlein-richtung 77 ausgewählte Ergebnis einer solchen Addition, d.h. die Operandenadresse, bei der es sich um eine virtuelle Adresse handelt, wird durch die Adreßumsetzschaltung 78 in eine Absolutadresse umgesetzt, wobei diese Schaltung die Absolutadresse an das Absolutadreßregister 79 liefert. Anschließend liefert die Hauptspeichereinrichtung im Fall von Ladeanweisungen wie einer Anweisung L und einer Anweisung LA denjenigen Inhalt des Hauptspeichers an das Abrufdatenregister 6, der der Absolutadresse im Absolutadreßregister 79 entspricht. Wenn die Signalleitung LS 46 auf "1" steht, beträgt die Länge der Abrufdaten 64 Bits, und die oberen 32 Bits und die unteren 32 Bits der Abrufdaten werden von der Auswahleinrichtung 21 ausgewählt und über die Leitungen 83 bzw. 84 in das Abrufdatenregister 6 geschrieben, und wenn sie auf "0" steht, beträgt die Länge 32 Bits, und 32-Bit- Abrufdaten werden durch die Auswahleinrichtung 21 ausgewählt und über die Leitung 84 in das Abrufdatenregister 6 eingeschrieben. Der Inhalt des Abrufdatenregisters 6 wird entweder über die 64-Bit-Adressen-Arithmetikschaltung 8 oder die 32-Bit-Daten-Arithmetikschaltung 9 geführt und in das Universalregister 7 eingeschrieben, wie es durch das Feld R 98 auf Grundlage des Formats 96 für eine Anweisung RX spezifiziert wird. In diesem Fall wird der 32-Bit-Datenwert im Register 10 mit Werten "0" entsprechend den 32 Bits höherer Ordnung kombiniert, und der so erhaltene 64-Bit-Datenwert wird in das Universalregister 7 eingeschrieben. Auf ähnliche Weise werden im Fall von Anweisungen ST und STA Daten und Adressen über die Auswahleinrichtungen 11 und 21 vom Universalregister 7 in die Hauptspeichervorrichtung 5 eingeschrieben. Die Auswahleinrichtung 21 wählt sowohl die oberen 32 Bits als auch die unteren 32 Bits eines Datenwerts auf der Leitung 80, wenn das Signal LS "1" ist, aber sie wählt nur die unteren 32 Bits auf der Datenleitung 80, wenn das Signal LS "0" ist, und sie liefert die ausgewählten Daten an die Hauptspeichervorrichtung 5. Die Hauptspeichervorrichtung 5 ist so aufgebaut, daß sie einen Lese- oder Schreibvorgang für einen 64-Bit-Datenwert ausführt, wenn das Signal LS "1" ist, jedoch für einen 32-Bit-Datenwert, wenn das Signal LS "0" ist. Die Signalleitung LS 46 ist eine Leitung, die anzeigt, ob ein zu handhabendes Ziel ein 32-Bit-Datenwert oder eine 64-Bit-Adresse ist. Wie in Fig. 8 dargestellt, wird der Wert auf der Signalleitung LS 46 über Gatter 13 und 14 abhängig vom Zustand der Bits des Programmstatusworts 3 bestimmt.
- Die folgende Beschreibung betrifft den Betrieb des derzeit bevorzugten Ausführungsbeispiels unter Verwendung von Datenarithmetikanweisungen und Adressenarithmetikanweisungen. Wenn die Ausführung einer dieser Anweisungen bgonnen wird, werden entsprechende Anweisungscodes in das Anweisungsregister 1 eingelesen. Der Anweisungsdecodierer 2 decodiert den Operationscode 103 auf Grundlage des Formats 102 für eine Anweisung RR, wobei dieser Code vom Anweisungsregister 1 geliefert wird, und er gibt den so decodierten Operationscode 103 auf die Signalleitung OC 36. Auch wird die Signalleitung MA 45 zum Anzeigen, daß derartige Anweisungen keine Hauptspeicherzugriff-Anweisungen sind, auf "0" gesetzt, und die Signalleitung AI wird im Fall von Adressenarithmetikanweisungen auf "1" gesetzt, dagegen auf "0" im Fall von Datenarithmetikanweisungen. Die 32-Bit-Daten-Arithmetikschaltung 9 liest die 32 Bits niedriger Ordnung aus den zwei Universalregistern 7 aus, wie sie durch das Feld R1 104 bzw. das Feld R2 105 spezifiziert werden, und sie führt Arithmetikoperationen aus, wie über die Signalleitung OC 36 spezifiziert. Das Ergebnis derartiger Arithmetikoperationen wird durch das Register 10 mit Werten "0" für die 32 Bits höherer Ordnung kombiniert. Die 64-Bit-Adressen-Arithmetikschaltung 8 liest die gesamten 64 Bits der zwei Register, wie sie durch das Feld R1 104 und das Feld R2 105, wobei beide auf dem Format 102 für eine Anweisung RR beruhen, aus, und führt Arithmetikoperationen aus, wie über die Signalleitung OC 36 spezifiziert. Wenn die Signalleitung LS 46 auf "1" steht, schreibt die Auswahleinrichtung 11 den Ausgangswert der 64- Bit-Adressen-Arithmetikschaltung 8 in die Universalregister 7 ein. Wenn die Signalleitung LS 46 auf "0" steht, schreibt die Auswahleinrichtung 11 das Ausgangssignal des Registers in die Universalregister 7 ein.
- Der Status der Modusbits 16 und 17 im Programmstatuswort 3 wird durch das Ausführen von Verzweigungsanweisungen geändert, die beim Aufrechterhalten eines alten Modusbits und beim Setzen eines neuen Modusbits verwendet werden. Auch wird der Zustand des Flipflops V18 unter Verwendung einer speziellen Ausleseanweisung und eines Schreibvorgangs geändert. Diese Anweisungen sind für die Erfindung nicht wesentlich, weswegen eine detaillierte Beschreibung weggelassen wird.
- Beim oben beschriebenen Ausführungsbeispiel werden dann, wenn Daten in die Universalregister einzuschreiben sind, die Bits höherer Ordnung in den Universalregistern aufwärts ab der Datenlänge auf "0" gesetzt. Daher kann dann, wenn zwischen einem alten Programm, in dem die Adreßlänge nicht erweitert ist, und einem neuen Programm, in dem die Adreßlänge erweitert ist, eine Datenübertragung erforderlich ist, das Ergebnis von Datenarithmetikoperationen, wie sie im alten Programm ausgeführt werden, als Adresse im neuen Programm verwendet werden. Dies erleichtert die Sicherstellung von Kompatibilität zu einem Datenprozessor von herkömmlichem Typ. Außerdem können Arithmetikoperationen an einer Adresse ausgeführt werden, die eine Anzahl oder Länge von Bits aufweist, die die Datenlänge überschreitet. Dies ermöglicht Arithmetikoperationen an einer Adresse mit hoher Geschwindigkeit auszuführen, im Vergleich zum Fall bei einem herkömmlichen Verfahren, bei dem eine Adresse in Bereiche hoher und niedriger Ordnung unterteilt wird, um zweimalig Datenarithmetikoperationen auszuführen. Darüber hinaus kann eine Bitkette aus den Universalregistern mit einer Länge, die größer als die Datenlänge ist, im Austausch zwischen der Hauptspeichervorrichtung und den Universalregistern geladen und gespeichert werden. Dies ermöglicht das Laden und Speichern von Adreßdaten mit hoher Geschwindigkeit, im Vergleich zum Fall bei einem herkömmlichen Verfahren, bei dem Adreßdaten in Bereiche hoher und niedriger Ordnung unterteilt werden, um zweimalig das Laden und Speichern von Daten auszuführen. Ferner ist es möglich, wenn die Länge einer Adresse, an der Arithmetikoperationen ausgeführt werden sollen, und die Länge von Adreßdaten, die geladen und gespeichert werden sollen, unabhängig von den Adreßmodi festliegen, Arithmetikoperationen beim Laden und Speichern einer Adresse mit einer Länge über der Datenlänge in einem Programm auszuführen, das in einem Adreßmodus läuft, der Adressen handhabt, deren Länge kleiner als die Datenlänge ist. Dies ermöglicht die Übertragung einer Adresse mit einer Länge, die größer ist als die Datenlänge zwischen verschiedenen Adreßmodi, von denen der eine eine Adreßlänge handhabt, die der Datenlänge entspricht oder kleiner ist, und der andere eine Adreßlänge handhabt, die kleiner als die Datenlänge ist. Daher wird Kompatibilität zwischen verschiedenen Modi leicht sichergestellt. Außerdem ist es dann, wenn die Länge einer Adresse, an der Arithmetikoperationen ausgeführt werden sollten, und die Länge einer Adresse, die geladen und gespeichert werden sollte, abhängig vom Adreßmodus verändert werden, nicht erforderlich, Arithmetikoperationen hinsichtlich einer Adresse mit einer Länge unter der Datenlänge mittels einer Adreßarithmetikeinrichtung auszuführen, deren Bitanzahl die Datenlänge übersteigt. Es ist nicht erforderlich, derartige Adressen durch eine Hauptspeicher-Zugriffseinrichtung, deren Bitanzahl die Datenlänge übersteigt, zu speichern oder zu laden. Dies ermöglicht Arithmetikoperationen mit hoher Geschwindigkeit an einer Adresse sowie das Laden und Speichern derselben mit hoher Geschwindigkeit.
- Bei einer anderen Form des Ausführungsbeispiels der Erfindung kann die Adressenerzeugungsschaltung 4 beim oben beschriebenen Ausführungsbeispiel durch einen einzelnen 48- Bit-Addierer gebildet sein, und die 24 oder 32 Bits niedriger Ordnung als Additionsergebnis können im 24- bzw. 31- Bit-Modus verwendet werden. Auch kann eine 64-Bit-Daten- Arithmetikschaltung anstelle der 64-Bit-Adressen-Arithmetikschaltung 8 und der 32-Bit-Arithmetikschaltung 9 vorhanden sein, und die unteren 32 Bits des Ergebnisses der 64-Bit- Arithmetikoperationen könnten dazu verwendet werden, Operationen an 32-Bit-Daten auszuführen. Beim vorstehend beschriebenen Ausführungsbeispiel werden beispielsweise mehrere Addierer gesondert bereitgestellt, um hohe Geschwindigkeit von Arithmetikoperationen an 32-Bit-Daten zu erzielen.
- Bei einer zweiten modifizierten Form des oben beschriebenen Ausführungsbeispiels kann die 64-Bit-Adressen-Arithmetikschaltung 8 in 48-Bit-Form ausgebildet sein, und so könnten Arithmetikoperationen an Adressen auf Grundlage einer Länge von 48 Bits ausgeführt werden. Jedoch ist beim oben beschriebenen Ausführungsbeispiel die Länge von 64 Bits veranschaulichend verwendet, um gleichzeitige Arithmetikoperationen an Daten auszuführen, die keine Adresse darstellen, jedoch in den oberen 16 Bits abgespeichert sind, hinausgehend über das höchstsignifikante Bit der 48 Bits des Universalregisters.
- Bei einer dritten modifizierten Form der Erfindung geht es, mit Ausnahme des Flipflops V18, um Arithmetikoperationen an einer Adresse und Hauptspeicherzugriff-Anweisungen, deren Zugriffsziel konstant eine Adressenarithmetikoperation ist. In diesem Fall übt dies keinen Einfluß auf die Hauptwirkungen der Erfindung aus, jedoch kann die Geschwindigkeit der Adressenarithmetikoperationen im 24-Bit- und im 32-Bit-Modus verringert sein.
- Es wurden das bevorzugte Ausführungsbeispiel und dessen modifizierte Formen im einzelnen beschrieben. Wie oben beschrieben, werden das Ausführungsbeispiel und seine modifizierten Formen alle mittels eines Steuermechanismus zum Steuern der Universalregister realisiert. Jedoch ist die Erfindung nicht ausschließlich auf das vorstehende Beispiel beschränkt. Eine solche Steuerung kann durch eine solche erzielt werden, wie sie durch Mikroprogrammierung in einem Betriebssystem (O5) eines Computers ausgeführt wird.
- Die obige Beschreibung betrifft die Verwendung der Universalregister. Indessen kann eine Adressenverarbeitung ähnlich zu derjenigen mit solchen Registern durch ein spezielles Adreßregister oder spezielle Adreßregister ausgeführt werden.
- Gemäß der Erfindung ist es, da die Länge einer Adresse so erweitert werden kann, daß sie mit der Datenlänge übereinstimmt, einfach, Daten zwischen einem Programm, in dem die Adreßlänge nicht erweitert ist, und einem Programm, in dem die Adreßlänge erweitert ist, zu übertragen. Dies gewährleistet Kompatibilität zu herkömmlichen Datenprozessortypen.
Claims (20)
1. Datenprozessor, umfassend
einen Hauptspeicher (5),
eine Einrichtung (3) zum Spezifizieren einer virtuellen
Adressenlänge, ausgewählt aus einer ersten Bitlänge (a Bits),
die größer ist als die Länge eines Datenwortes, und
mindestens einer zweiten Bitlänge, die kleiner ist als die erste
Bitlänge (a Bits),
mehrere Register (7), die jeweils eine dritte Bitlänge
(r Bits), die nicht kleiner ist als die erste Bitlänge (a
Bits), aufweisen und jeweils zur Handhabung eines eine
virtuelle Adresse oder Daten angebenden Signals dienen,
eine mit den Registern (7) und dem Hauptspeicher (5)
verbundene Operationseinrichtung (0, 9) zur Ausführung einer
durch einen Befehl bezeichneten Arithmetik- oder
Logik-Operation, wobei die bezeichnete Operation an einem Teil eines
ersten Signals, das in einem von dem Befehl bezeichneten ersten
der Register (7) steht, ausgeführt wird, um einem von dem
Befehl bezeichneten zweiten der Register (7) ein dem Ergebnis
der bezeichneten Operation entsprechendes zweites Signal
zuzuführen, wobei sowohl der Bitteil innerhalb des ersten
Signals, an dem die bezeichnete Operation ausgeführt wird, als
auch die Bitlänge des zweiten Signals in einem ersten
Betriebsmodus der Operationseinrichtung nicht kleiner sind als
die erste Bitlänge (a Bits) und in einem zweiten
Betriebsmodus der Operationseinrichtung gleich einer vierten Bitlänge
(d Bits) sind, die kleiner ist als die erste Bitlänge (a
Bits), und
eine mit dem Hauptspeicher (5), den Registern (7) und
der Spezifiziereinrichtung (3) verbundenen
Zugriffseinrichtung (4), die eine virtuelle Adresse mit der ersten Bitlänge
(a Bits) entsprechend einem Bitteil innerhalb eines durch
einen Befehl bezeichneten dritten der Register (7) mit der von
der Spezifiziereinrichtung spezifizierten Adressenlänge
erzeugt und unter der erzeugten Adresse (AD 43) zum
Hauptspeicher
(5) Zugriff nimmt, wobei die Zugriffseinrichtung (4)
eine Einrichtung für den Zugriff zum Hauptspeicher (5) für ein
Signal aufweist, das in dem ersten Betriebsmodus mindestens
die erste Bitlänge (a Bits) und in dem zweiten Betriebsmodus
die vierte Bitlänge (d Bits) aufweist, so daß zwischen dem
Hauptspeicher (5) und den Registern (7) Signale mit
signifikanten Bitteilen unterschiedlicher Längen übertragen werden,
dadurch gekennzeichnet, daß mit der
Operationseinrichtung (8, 9) und der Zugriffseinrichtung (4) eine
Steuereinrichtung verbunden ist, die bewirkt, daß die
Operationseinrichtung bei Auftreten eines Befehls, der Zugriff zu dem
Hauptspeicher (5) über die Zugriffseinrichtung (4) verlangt,
den ersten Betriebsnodus annimmt, in dem die Bitlänge der für
die Adressierung erforderlichen Bitlänge entspricht, und bei
Auftreten eines Befehls, der die Ausführung einer von einem
Zugriff zum Hauptspeicher verschiedenen Operation durch die
Operationseinrichtung verlangt, den zweiten Betriebsmodus
annimmt, bei dem die Bitlänge gleich der vierten Bitlänge und
damit unabhängig von der im ersten Betriebsmodus angenommenen
Bitlänge ist.
2. Datenprozessor nach Anspruch 1, wobei die
Steuereinrichtung eine Einrichtung umfaßt, die auf einen die Ausführung
einer Operation durch die Operationseinrichtung (8, 9)
verlangenden Befehl anspricht, um die Operationseinrichtung
derart zu steuern, daß sie mindestens dann, wenn die von der
Spezifiziereinrichtung (3) spezifizierte Adressenlänge die
erste Bitlänge (a Bits) ist, im ersten oder im zweiten
Betriebsmodus in Abhängigkeit davon arbeitet, ob der Befehl zu
einer ersten oder einer zweiten Gruppe von Befehlen gehört,
und die Operationseinrichtung (8, 9) derart zu steuern, daß
sie mindestens dann, wenn die spezifizierte Adressenlänge die
zweite Bitlänge ist und gleichzeitig der Befehl zu der
zweiten Gruppe von Befehlen gehört, im zweiten Betriebsmodus
arbeitet, und die ferner bei Auftreten eines Zugriff zu dem
Hauptspeicher (5) durch die Speichereinrichtung (4)
verlangenden
Befehls mindestens dann, wenn die spezifizierte
Adressenlänge die erste Bitlänge (a Bits) ist, die
Zugriffseinrichtung derart steuert, daß diese in Abhängigkeit davon, ob
der Befehl zu der ersten oder der zweiten Gruppe von Befehlen
gehört, im ersten oder im zweiten Betriebsmodus arbeitet, und
mindestens dann, wenn die spezifizierte Adresse die zweite
Bitlänge ist und gleichzeitig der Befehl zu der zweiten
Gruppe von Befehlen gehört, die Zugriffseinrichtung (4) so
steuert, daß diese im zweiten Betriebsmodus arbeitet.
3. Datenprozessor nach Anspruch 2, wobei die in der
Steuereinrichtung enthaltene Einrichtung eine Einrichtung aufweist,
die bei Auftreten eines die Ausführung einer Operation durch
die Operationseinrichtung (8, 9) verlangenden Befehls (102)
in Abhängigkeit davon, ob der Befehl zur ersten oder zur
zweiten Gruppe von Befehlen gehört, unabhängig von der
spezifizierten Adressenlänge die Operationseinrichtung derart
steuert, daß diese im ersten bzw. im zweiten Betriebsmodus
arbeitet, und bei Auftreten eines Zugriff zum Hauptspeicher
(5) durch die Zugriffseinrichtung (4) verlangenden Befehls
(96) in Abhängigkeit davon, ob der Befehl zu der ersten oder
der zweiten Gruppe von Befehlen gehört, unabhängig von der
spezifizierten Adressenlänge die Zugriffseinrichtung derart
steuert, daß diese im ersten bzw. im zweiten Betriebsmodus
arbeitet.
4. Datenprozessor nach Anspruch 2, wobei die in der
Steuereinrichtung enthaltene Einrichtung eine mit der
Spezifiziereinrichtung (3) verbundene Einrichtung aufweist, die bei
Auftreten eines die Ausführung einer Operation durch die
Operationseinrichtung (8, 9) verlangenden Befehls (102) dann, wenn
die spezifizierte Adressenlänge die erste Bitlänge (a Bits)
ist und der Befehl zu der ersten Gruppe von Befehlen gehört,
oder wenn die spezifizierte Adressenlänge die zweite Bitlänge
ist oder der Befehl zu der zweiten Gruppe von Befehlen
gehört, die Operationseinrichtung derart steuert, dar diese im
ersten oder im zweiten Betriebsmodus arbeitet, und bei
Auftreten eines Zugriff zum Hauptspeicher (5) verlangenden
Befehls (96) dann, wenn die spezifizierte Adressenlänge die
erste Bitlänge (a Bits) ist, oder wenn die spezifizierte
Adressenlänge die zweite Bitlänge ist oder der Befehl zu der
zweiten Gruppe von Befehlen gehört, die Zugriffseinrichtung (4)
derart steuert, daß diese im ersten oder im zweiten
Betriebsmodus arbeitet.
5. Datenprozessor nach Anspruch 1, wobei die
Operationseinrichtung aufweist:
eine erste Operationseinrichtung (8) zur Ausführung
einer ersten Gruppe von Arithmetik- oder Logik-Operationen an
einem Bitteil (r Bits), der nicht kleiner ist als die erste
Bitlänge (a Bits) innerhalb eines in einem der Register (7)
stehenden Signals, um ein Signal zu erzeugen, das dem
Ergebnis der einen Operation entspricht und nicht kürzer ist als
die erste Bitlänge (a Bits), und
eine zweite Operationseinrichtung (9) zur Ausführung
einer Operation aus einer zweiten Gruppe von Arithmetik- oder
Logik-Operationen an einem Bitteil mit der vierten Bitlänge
(d Bits) innerhalb eines in einem der Register (7) stehenden
Signals, um ein Signal zu erzeugen, das dem Ergebnis der
einen Operation entspricht und die zweite Bitlänge aufweist.
6. Datenprozessor nach Anspruch 5, wobei die
Operationseinrichtung (8, 9) eine mit der zweiten Operationseinrichtung
(9) verbundene Einrichtung (10) zur Erzeugung eines Signals
mit einer Bitlänge aufweist, die nicht kleiner ist als die
erste Bitlänge (a Bits) und das von der zweiten
Operationseinrichtung (9) gebildete Signal in einem unteren Bitteil und
Nullen in einem oberen Bitteil enthält, um das erzeugte
Signal in einem der Register (7) zu speichern.
7. Datenprozessor nach Anspruch 6, wobei die
Operationseinrichtung (8, 9) eine mit der ersten Operationseinrichtung (8)
und der Erzeugungseinrichtung (10) verbundene
Auswahleinrichtung (11) zum selektiven Übertragen eines der von der ersten
Operationseinrichtung (8) und der Erzeugungseinrichtung (10)
erzeugten Signale enthält.
8. Datenprozessor nach Anspruch 6,
wobei die dritte Bitlänge (r Bits) größer ist als die
erste Bitlänge (a Bits),
wobei die Bitlänge eines von der ersten
Operationseinrichtung (8) bearbeiteten Signals gleich der dritten Bitlänge
(r Bits), die Bitlänge eines von der ersten
Operationseinrichtung (8) erzeugten Signals gleich der dritten Bitlänge (r
Bits) und die Bitlänge eines von der Erzeugungseinrichtung
(10) erzeugten Signals gleich der dritten Bitlänge (r Bits)
ist.
9. Datenprozessor nach Anspruch 5, wobei die Gesamtzahl der
Arithmetik- oder Logik-Operationen der ersten Gruppe kleiner
ist als die Gesamtzahl derjenigen der zweiten Gruppe.
10. Datenprozessor nach Anspruch 1, wobei die
Operationseinrichtung (8, 9) eine Einrichtung aufweist, die als das dem
Ergebnis der Operation durch die Operationseinrichtung
entsprechendes zweites Signal ein Datensignal mit einer
vorgegebenen Bitlänge erzeugt, die unabhängig davon, ob der
Betriebsmodus der Operationseinrichtung der erste oder der
zweite Betriebsmodus ist, nicht kleiner ist als die erste
Bitlänge (a Bits).
11. Datenprozessor nach Anspruch 10, wobei die Bitlänge
eines von der ersten Operationseinrichtung (8, 9) in dem ersten
Betriebsmodus bearbeiteten Bitteils und die vorgegebene
Bitlänge gleich der dritten Bitlänge (r Bits) sind.
12. Datenprozessor nach Anspruch 11, wobei die dritte
Bitlänge (r Bits) größer als die erste Bitlänge (a Bits) ist.
13. Datenprozessor nach Anspruch 11,
wobei der Hauptspeicher (5) eine Einrichtung umfaßt, die
einen Schreib- oder einen Lesevorgang in dem ersten
Betriebsmodus an einem Signal der dritten Bitlänge (r Bits) und in
dem zweiten Betriebsmodus an einem Signal der vierten
Bitlänge (d Bits) ausführt,
wobei die Operationseinrichtung (8, 9) eine Einrichtung
enthält, die von dem Hauptspeicher (5) ein einem der Register
zuzuführendes Signal der vierten Bitlänge (d Bits) empfängt
und ein Signal der dritten Bitlänge (r Bits) erzeugt, das das
empfangene Signal als signifikanten Bitteil enthält, so daß
das erzeugte Signal in dem zweiten Betriebsmodus der
Operationseinrichtung (8, 9) dem einen Register zugeführt wird, und
wobei die Zugriffseinrichtung (4) eine Einrichtung
umfaßt, die von der Operationseinrichtung (8, 9) ein Signal der
dritten Bitlänge (r Bits) empfängt und in dem zweiten
Betriebsmodus ein Signal, das einen signifikanten Bitteil der
vierten Bitlänge (d Bits) enthält, dem Hauptspeicher (5) zur
Speicherung zuführt
14. Datenverarbeitungsverfahren unter Verwendung eines
Prozessors, der einen Hauptspeicher (5), eine
Speicherzugriffseinrichtung (1, 2) für den Zugriff zu dem Hauptspeicher
unter einem virtuellen Speichersystem, Register (7) sowie mit
dem Hauptspeicher und den Registern verbundene Daten- und
Aressen-Arithmetik- und Logik-Operationseinrichtungen (8, 9)
aufweist, umfassend:
einen Schritt, in dem entweder eine vorgegebene maximale
Länge einer Adresse (a Bits) oder die Länge einer Adresse,
die kürzer ist als die vorgegebene Maximallänge, spezifiziert
wird,
einen ersten Arithmetikschritt, in dem die niedrigeren d
Bits aus einem von einem ersten Befehl spezifizierten ersten
der Register (7) ausgelesen werden, um an den d Bits
Arithmetik-Operationen durchzuführen und das Ergebnis der
Arithmetik-Operationen
in ein zweites der Register einzuschreiben,
wobei es sich bei dem Befehl um einen aus einer ersten Gruppe
von Befehlen handelt,
einen Adressenerzeugungsschritt, in dem aus einem von
einem zweiten Befehl spezifizierten dritten der Register (7)
eine Bitfolge spezifischer effektiver Länge ausgelesen wird,
um eine a-Bit-Adresse zu erzeugen, wobei es sich bei dem
zweiten Befehl um einen solchen aus einer zweiten Gruppe von
Befehlen handelt, und
einen Schritt, in dem entsprechend der in dem
Adressenerzeugungsschritt erzeugten Adresse d Bits aus dem
Hauptspeicher (5) ausgelesen und diese entweder in den Hauptspeicher
(5) oder ein spezielles der Register (7) eingeschrieben
werden,
gekennzeichnet durch einen Steuerschritt, in den bei
Auftreten eines Befehls der zweiten Gruppe von Befehlen der
Adressenerzeugungsschritt in einem ersten Betriebsmodus
ausgeführt wird, in dem die Bitlänge der für die Adressierung
erforderlichen Bitlänge entspricht, und bei Auftreten eines
Befehls der ersten Gruppe von Befehlen der Arithmetikschritt
in einem zweiten Betriebsmodus ausgeführt wird, in dem die
Bitlänge gleich der vierten Bitlänge und damit unabhängig von
der in dem ersten Betriebsmodus gewählten Bitlänge ist.
15. Verfahren nach Anspruch 14, wobei die erste Gruppe von
Befehlen eine erste Gruppe von Arithmetik- und Logik-Befehlen
und eine erste Gruppe von Speicherzugriffsbefehlen umfaßt,
wobei der Arithmetikschritt entsprechend der ersten Gruppe
von Speicherzugriffsbefehlen aktiviert wird.
16. Verfahren nach Anspruch 14, wobei der erste
Arithmetikschritt enthält:
einen Schritt, in dem in die niedrigeren d Bits eines
der Register (7) das d-Bit-Ergebnis der
Arithmetik-Operationen und in alle übrigen Bits Nullen eingeschrieben werden,
und
einen Schritt, in dem in die niedrigeren d Bits eines
der Register (7) die aus dem Hauptspeicher (5) ausgelesenen
Daten und in alle übrigen Bits Nullen eingeschrieben werden.
17. Verfahren nach Anspruch 14, wobei die Register nur
Generalregisterelemente enthalten, und wobei das Verfahren ferner
umfaßt:
einen zweiten Arithmetikschritt, in dem die niedrigeren
n Bits oberhalb von a Bits eines oder mehrerer von einem
Arithmetikbefehl spezifizierter erster
Generalregisterelemente gelesen und das Ergebnis der an den n Bits ausgeführten
Arithmetik-Operationen in die niedrigeren n Bits eines von
dem Arithmetikbefehl spezifizierten zweiten Registerelements
geschrieben wird, und
einen in dem Steuerschritt enthaltenen Schritt, in dem
der Arithmetikschritt entsprechend dem zweiten
Arithmetikbefehl ausgeführt wird.
18. Verfahren nach Anspruch 17, wobei dann, wenn
entsprechend der zweiten Gruppe von Arithmetikbefehlen für einen
Operanden eine effektive Länge gleich oder kleiner den d Bits
der Adresse spezifiziert wird, der Steuerschritt den ersten
Arithmetikschritt ausführt, während er dann, wenn die
spezifizierte effektive Länge d Bits überschreitet, den zweiten
Arithmetikschritt ausführt.
19. Verfahren nach Anspruch 18, ferner umfassend einen
zweiten Speicherzugriffsschritt, in dem entweder r Bits aus dem
Hauptspeicher (5) entsprechend einer von dem
Adressenerzeugungsschritt erzeugten Adresse ausgelesen und diese r Bits in
das von einem Speicherzugriffsbefehl spezifizierte erste
Generalregisterelement eingeschrieben werden, oder r Bits aus
dem ersten Registerelement ausgelesen und diese r Bits in den
Speicher (5) eingeschrieben werden, wobei der
Speicherzugriffs-Steuerschritt einen Schritt umfaßt, in dem der zweite
Hauptspeicherzugriffsschritt entsprechend einer einen
Adressentransfer
bezeichnenden zweiten Gruppe von Hauptspeicher-
Zugriffsbefehlen zugeführt wird.
20. Verfahren nach Anspruch 19, wobei dann, wenn
entsprechend der zweiten Gruppe von Arithmetikbefehlen für einen
Operanden eine effektive Länge gleich oder kleiner als d Bits
der Adresse spezifiziert wird, der
Speicherzugriffs-Steuerschritt den ersten Speicherzugriffsschritt ausführt, während
er dann, wenn die spezifizierte effektive Länge d Bits
überschreitet, den zweiten Speicherzugriffsschritt aktiviert.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12791886 | 1986-06-04 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3751540D1 DE3751540D1 (de) | 1995-11-02 |
| DE3751540T2 true DE3751540T2 (de) | 1996-05-15 |
Family
ID=14971857
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3751540T Expired - Fee Related DE3751540T2 (de) | 1986-06-04 | 1987-06-04 | Verfahren und Vorrichtung zur Datenverarbeitung. |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4868740A (de) |
| EP (1) | EP0248436B1 (de) |
| DE (1) | DE3751540T2 (de) |
Families Citing this family (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
| JPH01269131A (ja) * | 1988-04-20 | 1989-10-26 | Hitachi Ltd | 命令先行制御方式 |
| US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
| US5442769A (en) * | 1990-03-13 | 1995-08-15 | At&T Corp. | Processor having general registers with subdivisions addressable in instructions by register number and subdivision type |
| CA2045798A1 (en) * | 1990-06-29 | 1991-12-30 | Rebecca L. Stamm | Conversion of internal processor register commands to i/o space addresses |
| EP0492971A3 (en) * | 1990-12-21 | 1993-08-18 | Sun Microsystems, Inc. | Mask register for computer processor |
| EP0492970B1 (de) * | 1990-12-21 | 1995-08-02 | Sun Microsystems, Inc. | Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits |
| EP0871108B1 (de) * | 1991-03-11 | 2000-09-13 | MIPS Technologies, Inc. | Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum |
| US5341500A (en) * | 1991-04-02 | 1994-08-23 | Motorola, Inc. | Data processor with combined static and dynamic masking of operand for breakpoint operation |
| JP3181307B2 (ja) * | 1991-04-25 | 2001-07-03 | 株式会社東芝 | 命令処理装置 |
| US5423013A (en) * | 1991-09-04 | 1995-06-06 | International Business Machines Corporation | System for addressing a very large memory with real or virtual addresses using address mode registers |
| US5381537A (en) * | 1991-12-06 | 1995-01-10 | International Business Machines Corporation | Large logical addressing method and means |
| WO1993017384A1 (en) * | 1992-02-27 | 1993-09-02 | Wang Laboratories, Inc. | Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability |
| GB9226463D0 (en) * | 1992-12-18 | 1993-02-10 | Univ London | Integrated circuits |
| JP3451595B2 (ja) * | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
| US5860076A (en) * | 1996-01-11 | 1999-01-12 | Alliance Semiconductor Corporation | 48-bit wide memory architecture addressing scheme reconfigurable for 8-bit, 16-bit and 32-bit data accesses |
| US6182202B1 (en) * | 1997-10-31 | 2001-01-30 | Oracle Corporation | Generating computer instructions having operand offset length fields for defining the length of variable length operand offsets |
| JP2000010863A (ja) * | 1998-06-24 | 2000-01-14 | Sony Computer Entertainment Inc | 情報処理装置および方法、並びに提供媒体 |
| US6973562B1 (en) | 2000-01-14 | 2005-12-06 | Advanced Micro Devices, Inc. | Establishing an operating mode in a processor |
| US7124286B2 (en) * | 2000-01-14 | 2006-10-17 | Advanced Micro Devices, Inc. | Establishing an operating mode in a processor |
| US7100028B2 (en) * | 2000-08-09 | 2006-08-29 | Advanced Micro Devices, Inc. | Multiple entry points for system call instructions |
| US7058791B1 (en) | 2000-08-09 | 2006-06-06 | Advanced Micro Devices, Inc. | Establishing a mode indication responsive to two or more indications |
| US7149878B1 (en) * | 2000-10-30 | 2006-12-12 | Mips Technologies, Inc. | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values |
| US6889312B1 (en) | 2001-04-02 | 2005-05-03 | Advanced Micro Devices, Inc. | Selective zero extension based on operand size |
| US7107439B2 (en) * | 2001-08-10 | 2006-09-12 | Mips Technologies, Inc. | System and method of controlling software decompression through exceptions |
| US7707389B2 (en) * | 2003-10-31 | 2010-04-27 | Mips Technologies, Inc. | Multi-ISA instruction fetch unit for a processor, and applications thereof |
| CN116701260A (zh) * | 2023-03-01 | 2023-09-05 | 上海励驰半导体有限公司 | 一种访问方法、装置、电子设备及可读存储介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS54100634A (en) * | 1978-01-26 | 1979-08-08 | Toshiba Corp | Computer |
| JPS58189738A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
| JPS58189739A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
| JPS6097435A (ja) * | 1983-11-02 | 1985-05-31 | Hitachi Ltd | 演算処理装置 |
| DE3479356D1 (en) * | 1983-12-23 | 1989-09-14 | Hitachi Ltd | A data processor with control of the significant bit lenghts of general purpose registers |
| US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
| EP0175997B1 (de) * | 1984-09-13 | 1989-08-23 | Siemens Aktiengesellschaft | Schaltungsanordnung zur befehlstypabhängigen Berechnung von Operandenadressen und zur Prüfung der Seitengrenzenüberschreitung bei Operanden für logische oder dezimale Speicher-Speicherbefehle |
-
1987
- 1987-06-03 US US07/056,885 patent/US4868740A/en not_active Expired - Lifetime
- 1987-06-04 DE DE3751540T patent/DE3751540T2/de not_active Expired - Fee Related
- 1987-06-04 EP EP87108129A patent/EP0248436B1/de not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| EP0248436B1 (de) | 1995-09-27 |
| DE3751540D1 (de) | 1995-11-02 |
| EP0248436A2 (de) | 1987-12-09 |
| US4868740A (en) | 1989-09-19 |
| EP0248436A3 (de) | 1991-09-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3751540T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung. | |
| DE2230102C2 (de) | Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung | |
| DE3338345C2 (de) | ||
| DE3687724T2 (de) | Digitalprozessorsteuerung. | |
| DE2350884C2 (de) | Adreßumsetzungseinheit | |
| DE3586260T2 (de) | Mikroprozessorsystem. | |
| DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
| EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
| DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
| DE3741953A1 (de) | Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen | |
| DE3131204A1 (de) | Adressumrechnungs- und generatoranordnung | |
| DE69229771T2 (de) | Datenverarbeitungsverfahren und -vorrichtung | |
| DE2458096C2 (de) | Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage | |
| DE1197650B (de) | Parallel-Addierer | |
| DE3854853T2 (de) | Datenprozessor mit erweiterten Operationsfunktionen | |
| DE3856139T2 (de) | Mikroprozessor | |
| DE69231237T2 (de) | Datenverarbeitungsvorrichtung | |
| DE3043653A1 (de) | Datenverarbeitungsanlage | |
| DE3900246C2 (de) | ||
| DE3338329C2 (de) | ||
| DE3685844T2 (de) | Elektronische schaltung zur verbindung eines prozessors mit einem leistungsfaehigen speicher. | |
| DE69429492T2 (de) | Mikroprozessor mit Registerbankarchitektur | |
| DE68925376T2 (de) | In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas | |
| DE69229424T2 (de) | Adressengeneration in einer Datenverarbeitungseinheit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |