DE3833933A1 - Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion - Google Patents

Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion

Info

Publication number
DE3833933A1
DE3833933A1 DE3833933A DE3833933A DE3833933A1 DE 3833933 A1 DE3833933 A1 DE 3833933A1 DE 3833933 A DE3833933 A DE 3833933A DE 3833933 A DE3833933 A DE 3833933A DE 3833933 A1 DE3833933 A1 DE 3833933A1
Authority
DE
Germany
Prior art keywords
address
registers
information processing
list
content
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
DE3833933A
Other languages
English (en)
Other versions
DE3833933C2 (de
Inventor
Hideo Sawamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3833933A1 publication Critical patent/DE3833933A1/de
Application granted granted Critical
Publication of DE3833933C2 publication Critical patent/DE3833933C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Description

Die Erfindung betrifft eine Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion, insbesondere eine Informationsverarbeitungseinrichtung, die bei Erhaltung der Kompatibilität mit bereits entwickelten Softwares den Adressenraum zu erweitern in der Lage ist.
In einer gegenwärtigen Universalrechnerachitektur werden im allgemeinen ein Befehlszähler, Universalregister und ähnliches mit jeweils 31 Bits oder 32 Bits verwendet. Softwares sind ebenfalls auf der Basis von 31-Bit-Adressen entwickelt worden. Eine Universalrechnerachitektur dieses Typs wird beispielsweise in IBM-System 370 "Extended Architecture Principles of Operation", SA22-7085-1, 1987, S. 3-21 bis 3-38, besprochen.
In einer Informationsverarbeitungseinrichtung werden ein Befehl oder Daten unter Benutzung einer realen Adresse gelesen, wobei diese reale Adresse aus einer virtuellen Adresse übersetzt worden ist und diese virtuelle Adresse von einem Adressengenerator, d. h. einem Adressenaddierer, erhalten wurde. Eine virtuelle Adresse weist im allgemeinen einen Segmentindex, einen Seitenindex und einen Byte-Index auf. Zu dem Segmentindex wird ein Segmentlistenanfangspunkt, der eine den Beginn einer Segmentliste bezeichnende Adresse darstellt, hinzugefügt. Aus dem Ergebnis dieser Addition wird der Seitenlistenanfangspunkt der Segmentliste, die eine der Adressenübersetzungslisten darstellt, gewonnen. Dann wird dieser Seitenlistenanfangspunkt, d. h. die Startadresse der Seitenliste, die eine weitere Adressenübersetzungsliste darstellt, zum Seitenindex hinzugefügt, um aus der Seitenliste die reale Adresse des Seitenrasters zu erhalten. Um eine reale Adresse zu erhalten, wird die reale Adresse des Seitenrasters mit dem Byte-Index verknüpft.
Aufgrund des Anstiegs der zu verarbeitenden Datenmengen sind heutzutage sowohl virtuelle als auch reale Adressen mit 31 Bits oder mehr notwendig geworden. Bei der Bildung neuer Architekturen mit Adressen von 31 oder mehr Bits ist es wichtig, die Kompatibilität mit den bereits entwickelten Architekturen mit 31-Bit-Adressen zu erhalten. Für eine Informationsverarbeitungseinrichtung mit neuer Architektur ist es nämlich notwendig, daß diese Softwares mit 31-Bit-Adressen ohne Änderung benutzen kann.
Aufgabe der Erfindung ist es daher, eine Informationsverarbeitungseinheit mit einer erweiterte Adressen aufweisenden Architektur und Funktion zu schaffen, die vor der Adressenerweiterung entwickelte Software zu benutzen in der Lage ist.
Diese Aufgabe wird erfindungsgemäß gelöst durch eine Informationsverarbeitungseinrichtung, in der zur Erweiterung des Adressenraumes ein Bereichsindex geschaffen wird, der einen Index höherer Ordnung gegenüber dem Segmentindex der Adresse vor der Erweiterung darstellt, wobei diese Adresse durch den Segmentindex, den Seitenindex und den Byte-Index ausgedrückt wird. Der Bereich ist ein Raum, der durch die Adresse vor der Erweiterung adressiert wird, der erweiterte Adressenraum wiederum besteht aus mehreren Bereichen. Ferner sind in der Adressenübersetzungsliste eine Bereichsliste und ein Bereichslistenbezeichnungsregister, das den Bereichslistenanfangspunkt enthält, vorgesehen. Die Bereichslisteneintragung enthält den Segmentlistenanfangspunkt. Bei der Übersetzung einer virtuellen Adresse in eine reale Adresse wird ein die Startadresse einer Bereichsliste darstellender Bereichslistenanfangspunkt zum Bereichsindex hinzugefügt, um eine Bereichslisteneintragungsadresse zu erhalten. Die aus der Bereichsliste geholte Eintragung enthält den Segmentlistenanfangspunkt der Bereichsliste. Danach wird die virtuelle Adresse auf die gleiche Weise übersetzt wie in einem nicht erweiterten Adressenraum.
Die Informationsverarbeitungseinrichtung ist mit Bereichsregistern zur Speicherung von Bereichsindizes von Befehls- oder Operandenadressen versehen. Adressenaddierer führen die Adressenaddition für eine Adresse vor der Erweiterung durch. Wenn keine Adressenerweiterung vorgenommen wird, so werden die Inhalte der Bereichsregister auf "0" gesetzt. Wenn der Inhalt eines Bereichsregisters "0" ist, so wird eine vom Adressenaddierer ausgegebene virtuelle Adresse auf herkömmliche Weise in eine reale Adresse übersetzt. Wenn der Inhalt des Bereichsregisters nicht "0" ist, so wird die vom Adressenaddierer erhaltene virtuelle Adresse unter Verwendung des Segmentlistenanfangspunktes, der aus der Bereichsliste erhalten wird, in eine reale Adresse übersetzt.
Der Inhalt eines Bereichsregisters wird durch die Informationsverarbeitungseinrichtung gesetzt; im Falle einer Adressenerweiterung wird der Inhalt manchmal auch in Übereinstimmung mit dem Ergebnis der Adressenaddition inkrementiert. Die Informationsverarbeitungseinrichtung ist mit einer Einrichtung zum Speichern der Information ausgerüstet, aufgrund der die Adressenerweiterung hinsichtlich Befehl und/oder Operand unterschieden wird. Wenn vom Adressenaddierer ein Übertragungsbit ausgegeben wird, so wird dieses Übertragungsbit unbeachtet gelassen, während im Falle einer Adressenerweiterung der Inhalt des Bereichsregisters um 1 inkrementiert wird.
Wenn in der erfindungsgemäßen Informationsverarbeitungseinrichtung ein Übersetzungsrückhaltpuffer ("translation look-aside buffer", TLB), dessen Eintragung im allgemeinen den Segmentlistenanfangspunkt, einen Teil des oder den ganzen Segmentindex und einen Teil des oder den ganzen Seitenindex enthält, und Seitenrasteradressen verwendet werden, dann speichert der TLB ferner die Bereichsindizes und, anstatt der Segmentlistenanfangspunkte, die Bereichslistenanfangspunkte. Beim Vergleichen der im TLB gespeicherten Inhalte mit einer zu übersetzenden virtuellen Adresse werden der Inhalt eines Bereichsregisters und das Bereichsindexfeld der TLB-Eintragung auch dann miteinander verglichen, wenn keine Adressenerweiterung vorgenommen worden ist.
Erfindungsgemäß ist es möglich, die Adressenerweiterung leicht zu steuern, obwohl die Menge zusätzlicher Hardware, etwa zusätzliche Bereichsregister, klein ist, während die Kompatibilität mit gegenwärtig benutzten Architekturen und Softwares erhalten bleibt.
Die Erfindung wird im folgenden anhand eines Auführungsbeispieles unter Bezug auf die Zeichnungen näher erläutert; es zeigt
Fig. 1 das Format einer erfindungsgemäß erweiterten virtuellen Adresse;
Fig. 2 eine herkömmliche Adressenübersetzung;
Fig. 3 eine Adressenübersetzung mit der erfindungsgemäßen Adressenerweiterung;
Fig. 4 ein eine erfindungsgemäße Ausführungsform der Informationsverarbeitungseinrichtung erläuterndes Blockschaltbild;
Fig. 5 ein Beispiel des Formats einer Segmentlisteneintragung;
Fig. 6 ein Beispiel des Formats eines Bereichslistenanfangspunktregisters;
Fig. 7 ein Beispiel des Formats einer Bereichslisteneintragung; und
Fig. 8 ein Beispiel des Formats einer erweiterten Seitenlisteneintragung.
In der erfindungsgemäßen Ausführungsform besitzen das Befehlsbereichsregister (IDR) und die Operandenbereichsregister (ODRj) alle eine 16-Bit-Konfiguration. Die ODRs enthalten einen ersten Operanden (ODR1) (j = 1) und einen zweiten Operanden ODR2 (j = 2).
In der Fig. 1 ist das Format einer in dieser Ausführungsform verwendeten erweiterten virtuellen Adresse gezeigt. Die Adresse besitzt eine 47-Bit-Konfiguration. Die 31 Bits vom 16-ten Bit bis zum 46-ten Bit sind dieselben wie die einer herkömmlichen virtuellen 31-Bit-Adresse: der Segmentindex (SX) ist aus 11 Bits aufgebaut, der Seitenindex (PX) aus 8 Bits und der Byte-Index (BX) aus 12 Bits. Die Segmentgröße beträgt 1 M-Byte, die Seitengröße beträgt 4 K-Bytes. Erfindungsgemäß wird ein zusätzlicher 16-Bit-Bereichsindex (DX) hinzugefügt. Ein virtueller Adressenraum mit einer Größe von 2 G-Bytes wird hier virtueller Bereich genannt. Somit werden die virtuellen Bereiche der 2¹⁶ (= 64 K) virtuellen Bereiche in dem durch 47 Bits dargestellten virtuellen Adressenraum zugeordnet. Ein durch DX = d dargestelltes Gebiet wird hier mit "virtueller Bereich d" bezeichnet.
Vor der Beschreibung des Ausführungsbeispieles wird zunächst die sich von der herkömmlichen Adressenerweiterung unterscheidende erfindungsgemäße Adressenerweiterung beschrieben.
Fig. 2 erläutert die herkömmliche Adressenübersetzung, bei der keine Adressenerweiterung vorgenommen wird. Eine virtuelle Adresse ist aus einem Segmentindex (SX), einem Seitenindex (PX) und einem Byte-Index (BX) zusammengesetzt. Ein Segmentlistenanfangspunkt (STO) bezeichnet die Startadresse einer Segmentliste. Der Segmentlistenanfangspunkt (STO) wird zum Segmentindex (SX) hinzugefügt und die sich ergebende Adresse wird dazu verwendet, aus der Segmentliste einen Seitenlistenanfangspunkt (PTO) zu erhalten. Der Seitenlistenanfangspunkt (PTO) bezeichnet die Startadresse der Seitenliste. Der Seitenlistenanfangspunkt (PTO) und der Seitenindex (PX) werden zusammengefügt und die sich ergebende Adresse wird dazu verwendet, aus der Seitenliste eine reale Adresse des Seitenrasters (PFRA) zu erhalten. Aus der realen Adresse des Seitenrasters und dem Byte-Index (BX) wird eine reale Adresse erhalten.
Fig. 3 zeigt die Adressenübersetzung, bei der die erfindungsgemäße Adressenerweiterung Anwendung findet. Wie im Zusammenhang mit Fig. 1 beschrieben, weist eine virtuelle Adresse einen Bereichsindex (DX), einen Segmentindex (SX), einen Seitenindex (PX) und einen Byte-Index (BX) auf. Ein Bereichslistenanfangspunkt (DTO) bezeichnet die Startadresse einer Bereichsliste, die in der Adressenübersetzungsliste vorgesehen ist. Der Bereichslistenanfangspunkt (DTO) und der Bereichsindex (DX) werden zusammengefügt und die sich ergebende Adresse wird dazu verwendet, aus der Bereichsliste einen Segmentlistenanfangspunkt (STO) zu erhalten. Der Segmentlistenanfangspunkt bezeichnet die Startadresse der Segmentliste der Mehrzahl der Segmentlisten. Nach Erhalt des Segmentlistenanfangspunktes (STO) ist die Adressenübersetzungsoperation dieselbe wie die in Zusammenhang mit Fig. 2 beschriebene, so daß die Beschreibung hiervon weggelassen wird. Wenn die Adresse erweitert wird, so werden Bereichslisten, Segmentlisten und Seitenlisten entsprechend dem erweiterten Raum vorgesehen.
Fig. 4 ist ein Blockschaltbild, das eine Ausführungsform der erfindungsgemäßen Informationsverarbeitungseinrichtung zeigt.
Zunächst wird der Speicherzugriff für einen Befehl beschrieben. In einem Programmzähler (PC) 1 wird eine Befehlsadresse (31 Bits) gespeichert, während die Länge des ausgeführten Befehles in einem Befehlslängencode- Register (ILC) 2 gespeichert wird. Die Inhalte des PC 1 und des ILC 2 werden mit einem PC-Addierer 3 zusammengefügt, um die Adresse des als nächstes auszuführenden Befehls zu erhalten. Das Additionsergebnis wird in einem Ausgaberegister (PCD) 4 und im PC 1 gesetzt. Die Beschreibung geht von dem Fall aus, wo bei einer solchen Additionsoperation kein Übertragungsbit erzeugt wird. Der Inhalt des PCD 4 wird an ein virtuelles Adressenregister (VAR) 5 geschickt, um einen Befehl aus dem Speicher zu holen. Der Satz von virtuellen Adressen im VAR 5 ist aus dem Segmentindex (SX), dem Seitenindex (PX) und dem Byte-Index (BX) zusammengesetzt; unabhängig von der Durchführung einer Adressenerweiterung enthält er keinen Bereichsindex (DX). Der Satz virtueller Adressen wird dazu benutzt, bei der Übersetzung der virtuellen Adresse in eine reale Adresse auf einen Adressenübersetzungspuffer (TLB) 6 Bezug zu nehmen. In dieser Ausführungsform wird SX der virtuellen Adresse als Adresse für den TLB 6 benutzt. Jede Eintragung im TLB 6 enthält ein V-Feld, das die Gültigkeit der betreffenden Eintragung anzeigt, ein DTO/STO-Feld, in dem im Falle, wo der virtuelle Bereich "0" ist, der Segmentlistenanfangspunkt (STO) und im Falle, wo der virtuelle Bereich nicht "0" ist, der Bereichslistenanfangspunkt (DTO) gespeichert wird, ein Bereichsindex-(DX)-Feld, ein Seitenindex- (PX)-Feld und ein Feld für die realen Adressen des Seitenrasters (PFRA). Die Werte eines Befehlsbereiches und erster und zweiter Operandenbereiche werden von der Informationsverarbeitungseinrichtung entsprechend dem Inhalt eines auszuführenden Programmes im IDR7, im ODR1 8 und im ODR2 9 gespeichert. Von einem Selektor 30 wird in Abhängigkeit von einem Befehlsabruf, einer ersten Operandenanforderung oder einer zweiten Operandenanforderung eine der Ausgaben aus diesen drei Bereichsregistern gewählt. Die Zahl oder der Inhalt des gewählten Bereiches werden von einem Durchgehend-"0"-Detektor 10 daraufhin überprüft, ob sie "0" sind oder nicht. Wenn sie "0" sind, so wird durch einen Selektor 31 ein STO- Register (STOR) 11 gewählt, falls nicht, so wird ein DTO-Register (DTOR) 12 gewählt.
Im Falle eines Befehlsabrufes wird das IDR 7 gewählt. Komparatoren 13, 14 und 15 stellen die Übereinstimmungen zwischen dem IDR 7 und dem DX-Feld des TLB 6, zwischen dem STOR 11 oder dem DTOR 12 und dem DTO/STO-Feld des TLB 6 und zwischen dem PX des VAR 5 und dem PX-Feld des TLB 6 fest. Wenn überall Übereinstimmung festgestellt wird und das V-Feld des TLB 6 "1" ist, dann wird die Ausgabe HIT eines UND-Gatters 25 "1". In diesem Fall wird geurteilt, daß im TLB 6 ein objektives Adressenübersetzungspaar gespeichert (hit) wird. Deswegen wird der Inhalt des PFRA-Feldes des TLB 6 auf einen höheren Abschnitt eines Realadressenregisters (RAR) 16 gesetzt, während der niedrigere Byte-Index des VAR 5 auf einen niedrigeren Abschnitt gesetzt wird. Die reale Adresse im RAR 16 wird an den Hauptspeicher (MS) 28 geschickt, um einen Befehl abzurufen.
Wenn keine Adressenerweiterung vorgenommen wird, so wird ein Programm so geordnet, daß im VAR 5 eine virtuelle Adresse herkömmlichen Formates gesetzt wird, um auf den TLB 6 Bezug zu nehmen. Daher kann eine herkömmliche Adressenübersetzungs-Hardware ohne Änderungen benutzt werden.
Als nächstes wird eine Operandenanforderung an einen Speicher beschrieben. Eine Operandenadresse (31 Bits) wird durch die Zusammenfügung der Inhalte eines Basisregisters (BR), eines Indexregisters (XR) und der durch einen Adressenaddierer (ADR-Addierer) 17 hervorgerufenen Verschiebung erhalten. Das Additionsergebnis wird im VAR 5 gesetzt. Das Verfahren zum Erhalt einer realen Adresse unter Bezugnahme auf den TLB 6 ist das gleiche wie dasjenige des oben beschriebenen Befehlsabrufes, so daß die Beschreibung hiervon weggelassen wird. Ein sich vom Befehlsabruf unterscheidender Punkt ist jedoch, daß anstelle des IDR 7 das ODR1 8 (Zugriff zum ersten Operanden) oder das ODR2 9 (Zugriff zum zweiten Operanden) gewählt wird.
Als nächstes wird der Fall beschrieben, wo ein Übertragungsbit bei der Adressenadditionsoperation erzeugt wird. Wenn eine Adressenerweiterung des Befehls und/oder des Operanden vorgenommen wird, so wird ein die Betriebsart der erweiterten Befehlsadresse anzeigendes Bit (IE) 18 und/oder ein die Betriebsart der erweiterten Operandenadresse anzeigendes Bit (OE) 19 auf "1" gesetzt, während diese Bits auf "0" zurückgesetzt werden, wenn keine Adressenerweiterung vorgenommen wird, weshalb diese Bits als Unterscheidungsbits dienen. Sie können durch eine Mikrosteuerung (MPC) 20 auf einen Programmbefehl hin gesetzt oder zurückgesetzt werden. Wenn IE 18 "0" ist und aus dem PC-Addierer 3 ein Übertragungsbit ausgegeben wird, so wird dieses Übertragungsbit nicht beachtet. Ist OE "0" und wird aus dem ADR-Addierer 17 ein Übertragungsbit ausgegeben, so wird das Übertragungsbit ebenfalls nicht beachtet. Ist andererseits IE 18 "1" und wird aus dem höchsten (ganz links stehenden) Bit im PC-Addierer 3 ein Übertragungsbit erzeugt (wenn ein Überlauf stattfindet), so wird über das UND-Gatter 26 ein Signal an die MPC 20 geschickt, um ein IDR-Erneuerungsmikroprogramm in Gang zu setzen und zum Inhalt des IDR 7 "1" zu addieren. Daher wird der Inhalt des IDR 7 um "1" inkrementiert, wobei das Ergebnis in ihm gespeichert wird. Bei der Adressenübersetzung wird der neu gespeicherte Wert im IDR 7 benutzt. Wenn entsprechend das OE 19 "1" ist und aus dem höchsten Bit im ADR-Addierer 17 ein Übertragungsbit erzeugt wird, so wird über ein UND-Gatter 27 an die MPC 20 ein Signal geschickt, um ein ODR-Erneuerungsmikroprogramm in Gang zu setzen und um "1" zum Inhalt des ODR1 8 für den ersten Operandenzugriff und zum Inhalt des ODR2 9 für den zweiten Operandenzugriff zu addieren. Das Additionsergebnis im ODR1 8 oder im ODR2 9 wird zur Adressenübersetzung benutzt. Eine solche Addition wird durch eine bereits eingebaute MPC 20 durchgeführt. Wenn eine solche Addition von "1" zum IDR 7, zum ODR1 8 oder zum ODR2 9 die Erzeugung eines Übertragungsbits aus dem höchsten (ganz links stehenden) Bit bewirkt, dann wird das Programm unterbrochen.
Die Informationsverarbeitungseinrichtung ist mit einem Befehl zum Lesen der Inhalte der IDR 7, ODR1 8 und ODR2 9 und mit einem Befehl zum Setzen eines beliebigen Wertes in diesen Registern ausgestattet, so daß das Lesen der Inhalte dieser Register und das Setzen eines beliebigen Wertes in diesen Registern durch ein Programm durchgeführt werden kann.
Als nächstes wird die Adressenübersetzung beschrieben für den Fall, daß kein objektives Adressenübersetzungspaar im TLB 6 gespeichert ist.
Wenn in bezug auf den TLB 6 kein "HIT" aufgenommen wird, so wird durch eine Adressenübersetzungssteuerung (ATC) 21 ein Adressenübersetzungsaddierer (AT-Addierer) 23 aktiviert. Ein Signal vom Durchgehend-"0"-Detektor 10, das anzeigt, ob der Inhalt des Bereichsregisters IDR 7, ODR1 8 oder ODR2 9 "0" ist oder nicht, wird in die ATC 21 eingegeben. Wenn der Inhalt des Bereichsregisters "0" ist, so wird die Adressenübersetzung mit einer herkömmlichen 31-Bit-Architektur durchgeführt, während eine erweiterte Adressenübersetzung durchgeführt wird, wenn der Inhalt nicht "0" ist.
Zunächst wird eine herkömmliche Adressenübersetzung beschrieben. Eine zu übersetzende virtuelle Adresse wird aus dem VAR 5 in ein Übersetzungsadressenregister (TAR) 22 gebracht. Über Selektoren 32 und 33 werden der im STOR 11 sich befindende STO und der im TAR 22 sich befindende SX an einen Adressenübersetzungsaddierer (AT-Addierer) 23 geliefert, wo sie zusammengefügt werden; das Additionsergebnis wird im RAR 16 gesetzt, um unter Verwendung des Inhaltes des RAR 16 den MS 28 zu adressieren und um eine Segmentliste aus dem MS 28 abzurufen. In einem Listenregister (TBR) 24 wird in einer Segmentliste (ST) eine STO-Eintragung gesetzt. Das Format der ST-Eintragung ist in Fig. 5 gezeigt. Zusätzlich zum STO enthält die STO-Eintragung ein einen ungültigen Zustand darstellendes I-Bit und ein die Segmentlistenlänge anzeigendes STL. Der PTO der im TBR 24 gesetzten ST-Eintragung und der im TAR 22 gesetzte PX werden durch den AT-Addierer 23 zusammengefügt; das Additionsergebnis wird im RAR 16 gesetzt, um unter Verwendung des Inhaltes des RAR 16 den MS 28 zu adressieren und aus dem MS 28 eine Seitenliste (PT) abzurufen. Die PFRA in der PT-Eintragung wird über einen Selektor 34 im RAR 16 gespeichert; das im TAR 22 gesetzte BX wird ebenfalls im RAR 16 gespeichert, um sie zu kombinieren und dadurch eine reale Adresse zu erhalten. Die PFRA im RAR 16, die Inhalte des STOR 11, des ODR1 8 oder des ODR2 9 und der PX im TAR 22 werden in den TLB 6 eingetragen. Zu diesem Zeitpunkt wird das V-Feld der Eintragung im TLB 6 auf "1" gesetzt.
Falls der Inhalt des Bereichsregisters "0" ist, so wird wie oben eine herkömmliche Adressenübersetzung, wie sie in Fig. 2 gezeigt ist, durchgeführt, so daß ein herkömmliches Adressenübersetzungsprogramm ohne irgendeine Änderung benutzt werden kann.
Als nächstes wird eine erweiterte Adressenübersetzung beschrieben, wenn der Inhalt des Bereichsregisters nicht "0" ist. Wenn der Inhalt des Bereichsregisters nicht "0" ist, so wird nicht STOR 11, sondern DTOR 12 gewählt. Das Format des DTOR 12 ist in Fig. 6 gezeigt. Der DTO des DTOR 12 und ein Bereichsindex aus dem IDR 7, dem ODR1 8 oder dem ODR2 9 werden über die Selektoren 31 und 32 und über die Selektoren 30 und 33 an den AT-Addierer 23 geschickt, wo sie zusammengefügt werden, um die Adresse einer Bereichsliste (DT) zu erhalten. Die DT-Eintragung wird im TBR 24 gesetzt. Das Format der DT-Eintragung ist in Fig. 7 gezeigt, wobei dieses Format so ausgebildet ist, daß es ein Ungültigkeitsbit I enthält, welches zum Format der Segmentlisten-(ST)-Kennzeichnung einer herkömmlichen Architektur hinzugefügt wird. Der STO in der DT-Eintragung wird anstatt des in einer herkömmlichen Adressenübersetzung benutzten STOR 11 benutzt, um dadurch eine der oben beschriebenen Operation ähnliche Adressenübersetzungsoperation durchzuführen. In diesem Fall bezieht sich jedoch die herkömmliche Adressenübersetzung auf die zwei Listen STO und PT, während sich die erweiterte Adressenübersetzung, wie in Fig. 3 gezeigt ist, auf die drei Listen DT, ST und PT bezieht. Falls die reale Adresse ebenfalls erweitert wird, so sollte ferner die PT auf 8 Bytes erweitert werden; das entsprechende Format ist in Fig. 8 gezeigt. In diesem Fall hat die PFRA 35 Bits. Das in Fig. 8 gezeigte Format enthält ein O-Bit, ein Ungültigkeitsbit und ein Seitenschutzbit P, das zur Sperrung der Speicherung in einem durch die PFRA bezeichneten Abschnitt verwendet wird, falls das Bit auf "1" gesetzt ist. Im TLB 6 ist anstatt des STOR 11 das DTOR 12 eingetragen.
In der obigen Ausführungsform ist die erweiterte Adressenübersetzung mit einer Dreilisten-Anordnung durchgeführt worden. Es kann jedoch auch eine Zweilisten-Anordnung angewendet werden. Außerdem wurde für den Bereich, dessen Inhalt nicht "0" ist, die gleiche Größe des Segmentes und der Seite wie im herkömmlichen Fall verwendet. Im erweiterten Adressenraum mit maximal 2 G-Bytes kann jedoch die Größe des Segmentes und der Seite verschieden vom herkömmlichen Fall gewählt werden. Außerdem braucht das Seitenkonzept nicht verwendet werden, um dadurch das Segment als die kleinste Einheit bei der Seiten/ Adressen-Übersetzung zu machen. In diesem Fall findet die Zweilisten-Anordnung mit DT und ST Verwendung.
Wie in Fig. 6 gezeigt ist, ist der DTO aus 19 Bits zusammengesetzt, so daß die DT in einem Realadressenraum ohne Realadressenerweiterung zugeordnet werden kann. Ferner können die ST und PT für den erweiterten Adressenabschnitt in einem Realadressenraum ohne Realadressenerweiterung zugeordnet werden.
Ein Ladebefehl stellt einen zusätzlichen Befehl dar, um einen beliebigen Wert wenigstens in das IDR 7, das ODR1 8 und das ODR2 9 zu laden. Falls in einem Programmstatuswort (PSW) momentan nicht verwendete Bits verwendet werden, so kann das IE 18 und das OE 19 durch einen Befehl zum Laden des PSW (LPSW) gesetzt oder zurückgesetzt werden.
Die obige Ausführungsform erlaubt die Verwendung eines virtuellen/realen Adressenraumes von maximal 31 Bits und eine Erweiterung der Befehls/Daten-Adressen mit wenig zusätzlicher Hardware. Wenn beispielsweise, wie beschrieben, eine virtuelle/reale Adresse auf 47 Bits erweitert wird, so erfordern lediglich das RAR 16 und das TBR 24 der Hardware eine 47-Bit-Adresse, die zusätzlich geforderten Register sind DTOR 12, IDR 7, ODR1 8 und ODR2 9, jeweils mit einer 16-Bit-Struktur, und ein IE 18 und ein OE 19 mit jeweils 1 Bit. Der PC-Addierer 3 und der ADR-Addierer 17 weisen beide wie im herkömmlichen Fall eine 31-Bit-Struktur auf. Ferner kann der AT-Addierer wie im herkömmlichen Fall eine 31-Bit-Struktur haben, falls die Adressenübersetzungsliste, etwa eine Bereichsliste, im Fall, daß der Bereichsinhalt "0" ist, innerhalb des Realadressenraumes zugeordnet wird.

Claims (6)

1. Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion,
gekennzeichnet durch
Adressenaddierer (3, 17) zur Durchführung einer Adressenaddition in bezug auf einen ersten Anteil einer Befehls- und/oder einer Datenadresse, der dem nicht erweiterten Bitbereich der Adresse entspricht,
ein virtuelles Adressenregister (5) zum Speichern einer durch die Adressenaddition erhaltenen virtuellen Adresse,
einen Satz von Registern (7, 8, 9), von denen jedes einen zweiten Anteil der Befehls- und/oder Datenadresse, der dem erweiterten Bitbereich der Adresse entspricht, speichert,
einen Hauptspeicher (28) zum Speichern eines Satzes von Adressenübersetzungslisten, die verwendet werden, wenn keine Adressenerweiterung vorgenommen wird, und einer zusätzlichen Adressenübersetzungsliste, die hinzugenommen wird, wenn eine Adressenerweiterung vorgenommen wird,
wobei in dem Fall, daß keine Adressenerweiterung vorgenommen wird, die Adressenübersetzung unter Verwendung des Satzes von Adressenübersetzungslisten durchgeführt wird und wobei in dem Fall, daß eine Adressenerweiterung vorgenommen wird, darüber hinaus auf der Grundlage des Inhaltes des virtuellen Adressenregisters (5) und des Inhaltes des Satzes von Registern (7, 8, 9) die zusätzliche Adressenübersetzungsliste für die Adressenübersetzung verwendet wird.
2. Informationsverarbeitungseinrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung ferner einen Satz von zweiten Registern (12, 18, 19), in denen jeweils ein vorbestimmter Wert gesetzt wird, falls eine Adressenerweiterung für einen Befehl und/oder Daten vorgenommen wird, und Einrichtungen (26, 27, 20), die, falls in einem der Register des Satzes von zweiten Registern (12, 18, 19) ein eine Adressenerweiterung anzeigendes Bit gesetzt wird und falls aus dem diesem Register entsprechenden Addierer ein Übertragungsbit ausgegeben wird, eine "1" zum Inhalt des diesem Register entsprechenden Addierers addieren, aufweist.
3. Informationsverarbeitungseinrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß bei der Übersetzung einer Befehls- und/oder Datenadresse entschieden wird, daß die Adressenerweiterung nicht vorgenommen wird, falls der dem zu übersetzenden Adressenanteil entsprechende Inhalt eines Registers des Satzes von ersten Registern (7, 8, 9) zum Speichern des zweiten Anteils der Adresse null ist, und daß entschieden wird, daß eine Adressenerweiterung vorgenommen wird, falls der Inhalt nicht null ist.
4. Informationsverarbeitungseinrichtung gemäß Anspruch 1, dadurch gekennzeichnet, daß die Einrichtung mit einem Befehl zum Lesen der Inhalte des Satzes von ersten Registern (7, 8, 9) und mit einem Befehl zum Setzen eines beliebigen Wertes in dem Satz von ersten Registern (7, 8, 9) ausgebildet ist.
5. Informationsverarbeitungseinrichtung gemäß Anspruch 2, dadurch gekennzeichnet, daß die Adressenübersetzungsliste sogar dann im Realadressenraum mit nicht erweiterten Adressen zugeordnet wird, falls der Inhalt des Satzes von ersten Registern (7, 8, 9) nicht null ist.
6. Informationsverarbeitungseinrichtung gemäß Anspruch 1, gekennzeichnet durch eine Adressenübersetzungsliste (6), die unabhängig davon, ob eine Adressenerweiterung vorgenommen wird oder nicht, den Anteil einer virtuellen Adresse, der dem erweiterten Bitbereich entspricht, enthält, wobei dieser erweiterte Bitbereich den Wert null annimmt, falls keine Adressenerweiterung vorgenommen wird.
DE3833933A 1987-10-05 1988-10-05 Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion Expired - Lifetime DE3833933C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62250913A JP2507756B2 (ja) 1987-10-05 1987-10-05 情報処理装置

Publications (2)

Publication Number Publication Date
DE3833933A1 true DE3833933A1 (de) 1989-04-20
DE3833933C2 DE3833933C2 (de) 1996-06-27

Family

ID=17214885

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3833933A Expired - Lifetime DE3833933C2 (de) 1987-10-05 1988-10-05 Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion

Country Status (3)

Country Link
US (3) US5023777A (de)
JP (1) JP2507756B2 (de)
DE (1) DE3833933C2 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0545076A1 (de) * 1991-12-06 1993-06-09 International Business Machines Corporation Verfahren und Vorrichtung zu grosser logischer Adressierung
EP0549931A1 (de) * 1992-01-03 1993-07-07 International Business Machines Corporation Verfahren und Vorrichtung zur Gas/Wirt-erweiterten Adressierung
EP0610618A1 (de) * 1993-02-05 1994-08-17 Fujitsu Limited Verfahren und Vorrichtung zur Adressübersetzung
DE10058457A1 (de) * 2000-11-24 2002-06-13 Marconi Comm Gmbh Verfahren und Vorrichtung zum Multiplexen von Datenpaketen

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2629930B1 (fr) * 1988-04-12 1991-03-15 Labo Electronique Physique Procede et unite de gestion de mots d'adresse
JPH0290349A (ja) * 1988-09-28 1990-03-29 Hitachi Ltd 仮想記憶システムのアドレス空間制御装置
US5226132A (en) * 1988-09-30 1993-07-06 Hitachi, Ltd. Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
JPH02202652A (ja) * 1989-02-01 1990-08-10 Hitachi Ltd 多重仮想記憶管理方式
JP2858795B2 (ja) * 1989-07-14 1999-02-17 株式会社日立製作所 実記憶割り当て方法
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
US5175835A (en) * 1990-01-10 1992-12-29 Unisys Corporation Multi-mode DRAM controller
EP0492970B1 (de) * 1990-12-21 1995-08-02 Sun Microsystems, Inc. Verfahren und Gerät zur Erweiterung einer Rechnerarchitektur von zweiunddreissig auf vierundsechzig Bits
ES2132073T3 (es) * 1991-01-10 1999-08-16 Siemens Ag Disposicion de circuito para la reproduccion del espacio de direccionamiento logico de una unidad de procesador sobre el espacio de direccionamiento fisico de una memoria.
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5479628A (en) * 1993-10-12 1995-12-26 Wang Laboratories, Inc. Virtual address translation hardware assist circuit and method
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
US5649125A (en) * 1995-10-30 1997-07-15 Motorola, Inc. Method and apparatus for address extension across a multiplexed communication bus
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
EP0992897B1 (de) * 1998-10-06 2006-07-26 Texas Instruments Inc. Kellerzeigerverwaltung
KR100285122B1 (ko) * 1999-01-13 2001-03-15 이수복 인터넷 전자우편 부가 서비스 시스템
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US20020073295A1 (en) * 2000-12-13 2002-06-13 Bowers Thomas Earl Enhanced memory addressing capability
US6920460B1 (en) * 2002-05-29 2005-07-19 Oracle International Corporation Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
US7594094B2 (en) * 2006-05-19 2009-09-22 International Business Machines Corporation Move data facility with optional specifications
US7581074B2 (en) * 2006-05-19 2009-08-25 International Business Machines Corporation Facilitating use of storage access keys to access storage
US7464230B2 (en) * 2006-09-08 2008-12-09 Jiun-In Guo Memory controlling method
CN101216778B (zh) * 2008-01-21 2011-04-13 中国科学院计算技术研究所 一种risc处理器装置及其指令地址转换查找方法
CN101763313B (zh) * 2009-12-17 2011-09-07 成都市华为赛门铁克科技有限公司 一种服务器及其访问卷的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2496315A1 (fr) * 1980-12-15 1982-06-18 Nippon Electric Co Systeme de memoire tampon

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735355A (en) * 1971-05-12 1973-05-22 Burroughs Corp Digital processor having variable length addressing
US3761881A (en) * 1971-06-30 1973-09-25 Ibm Translation storage scheme for virtual memory system
US3854126A (en) * 1972-10-10 1974-12-10 Digital Equipment Corp Circuit for converting virtual addresses into physical addresses
US3976976A (en) * 1975-04-04 1976-08-24 The United States Of America As Represented By The Secretary Of The Navy Method and means to access and extended memory unit
US4092715A (en) * 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US4340932A (en) * 1978-05-17 1982-07-20 Harris Corporation Dual mapping memory expansion unit
FR2428871A1 (fr) * 1978-06-15 1980-01-11 Philips Data Syst Extension de l'espace d'adressage direct dans un systeme d'ordinateur
NL7807314A (nl) * 1978-07-06 1980-01-08 Philips Nv Inrichting voor het vergroten van de lengte van een logisch computeradres.
US4388685A (en) * 1978-08-04 1983-06-14 Digital Equipment Corporation Central processor with apparatus for extended virtual addressing
DE2846054C2 (de) * 1978-10-23 1985-08-14 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zur Erweiterung des Adressierungsvolumens einer Zentraleinheit, insbesondere eines Mikroprozessors
US4658350A (en) * 1981-08-12 1987-04-14 International Business Machines Corp. Extended addressing apparatus and method for direct storage access devices
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
JPS6184754A (ja) * 1984-10-03 1986-04-30 Hitachi Ltd 拡張アドレス変換装置
JPH0652511B2 (ja) * 1984-12-14 1994-07-06 株式会社日立製作所 情報処理装置のアドレス変換方式
DE3683123D1 (de) * 1985-04-30 1992-02-06 Fujitsu Ltd Adressenerweiterungssystem.
US4777589A (en) * 1985-06-28 1988-10-11 Hewlett-Packard Company Direct input/output in a virtual memory system
JPH087680B2 (ja) * 1985-09-19 1996-01-29 日本電気株式会社 命令カウンタのロード装置
JPH0658650B2 (ja) * 1986-03-14 1994-08-03 株式会社日立製作所 仮想計算機システム
US4849875A (en) * 1987-03-03 1989-07-18 Tandon Corporation Computer address modification system with optional DMA paging
US4843541A (en) * 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4926322A (en) * 1987-08-03 1990-05-15 Compag Computer Corporation Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management
JPS6467680A (en) * 1987-09-09 1989-03-14 Hitachi Ltd Vector processor
US5127094A (en) * 1987-11-09 1992-06-30 Hitachi, Ltd. Virtual storage type computer system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2496315A1 (fr) * 1980-12-15 1982-06-18 Nippon Electric Co Systeme de memoire tampon

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DE-Firmenschrift: Siemens-System 4004, Zentraleinheit 4004/151-2, Beschreibung und Befehlsliste, Siemens-AG, 1. Juli 1974, S. 3-1 bis 3-22,6-5 bis 6-8 *
IBM-System 370, "Extended Architecture Principles of Operation, S. A22-7085-1, 1987,S.3-21 bis 3-38 *
Intel, 80386 A Collection of Article Reprints, S. 27, 1986 *
Intel, Microprocessor and Peripheral Handbook, Vol. I, S. 3-18, S. 4-29 bis 4-31, 9.6.87 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0545076A1 (de) * 1991-12-06 1993-06-09 International Business Machines Corporation Verfahren und Vorrichtung zu grosser logischer Adressierung
EP0549931A1 (de) * 1992-01-03 1993-07-07 International Business Machines Corporation Verfahren und Vorrichtung zur Gas/Wirt-erweiterten Adressierung
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
EP0610618A1 (de) * 1993-02-05 1994-08-17 Fujitsu Limited Verfahren und Vorrichtung zur Adressübersetzung
US5584005A (en) * 1993-02-05 1996-12-10 Fujitsu Limited Virtual memory address translation apparatus and method using link, auxiliary link and page tables
DE10058457A1 (de) * 2000-11-24 2002-06-13 Marconi Comm Gmbh Verfahren und Vorrichtung zum Multiplexen von Datenpaketen

Also Published As

Publication number Publication date
US5426751A (en) 1995-06-20
JPH0193847A (ja) 1989-04-12
DE3833933C2 (de) 1996-06-27
US5023777A (en) 1991-06-11
US5287475A (en) 1994-02-15
JP2507756B2 (ja) 1996-06-19

Similar Documents

Publication Publication Date Title
DE3833933A1 (de) Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE3151745C2 (de)
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2241257C3 (de) Datenverarbeitende Anlage
DE2645537C2 (de)
DE2227882C2 (de) Virtuelle Speicheranordnung
DE3805107C2 (de)
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE2948285C2 (de) Adressensteuereinrichtung für einen Datenprozessor
DE602004011018T2 (de) Ungültigkeitserklärung eines speichers und löschen von puffereinträgen
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE2417795C2 (de) Datenverarbeitungsanlage
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE2630323A1 (de) Datenspeichereinrichtung
DE2556661A1 (de) Steuerschaltung mit adressenerweiterung
DE2339741A1 (de) Anordnung zur bildung einer relativen adresse fuer einen speicher
DE2726488A1 (de) Adressenuebersetzungseinrichtung
DE2737353A1 (de) Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens
DE3518818C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition