DE3833933C2 - Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion - Google Patents

Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion

Info

Publication number
DE3833933C2
DE3833933C2 DE3833933A DE3833933A DE3833933C2 DE 3833933 C2 DE3833933 C2 DE 3833933C2 DE 3833933 A DE3833933 A DE 3833933A DE 3833933 A DE3833933 A DE 3833933A DE 3833933 C2 DE3833933 C2 DE 3833933C2
Authority
DE
Germany
Prior art keywords
address
list
area
register
sto
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 - Lifetime
Application number
DE3833933A
Other languages
English (en)
Other versions
DE3833933A1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Description

Die Erfindung betrifft eine Informationsverarbeitungs­ einrichtung mit einer Adressenerweiterungsfunktion nach dem Oberbegriff des Patentanspruchs 1.
In einer gegenwärtigen Universalrechnerachitektur werden im allgemeinen ein Befehlszähler, Universalregister und ähnliches mit jeweils 31 Bits oder 32 Bits verwendet. Software ist ebenfalls auf der Basis von 31-Bit-Adres­ sen entwickelt worden. Eine Universalrechnerachitektur dieses Typs wird beispielsweise in IBM-System 370 "Ex­ tended Architecture Principles of Operation", 5A22-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 Adressenaddie­ rer, erhalten wurde. Eine virtuelle Adresse weist im allgemeinen einen Segmentindex, einen Seitenindex und einen Byte-Index auf. Zu dem Segmentindex wird ein Seg­ mentlistenanfang, der eine den Beginn einer Seg­ mentliste bezeichnende Adresse darstellt, hinzugefügt. Aus dem Ergebnis dieser Addition wird der Seitenlisten­ anfang der Segmentliste, die eine der Adressen­ übersetzungslisten darstellt, gewonnen. Dann wird dieser Seitenlistenanfang, d. h. die Startadresse der Sei­ tenliste, die eine weitere Adressenübersetzungsliste darstellt, zum Seitenindex hinzugefügt, um aus der Sei­ tenliste die reale Adresse des Seitenrasters zu erhal­ ten. 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 Bil­ dung 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 erhal­ ten. Für eine Informationsverarbeitungseinrichtung mit neuer Architektur ist es nämlich notwendig, daß diese Software mit 31-Bit-Adressen ohne Änderung benutzen kann.
Die FR 24 96 315 beschreibt die Verwendung von zwei Ar­ ten von logischen Adressen (LAD1 und LAD2) unterschied­ licher Länge. Die zweite logische Adresse (LAD2) dient zur Ausführung eines speziellen Zugriffs im System. Zwischen den beiden logischen Adressen und der realen Adresse wird mittels einer Adressenformat-Unterschei­ dungsinformation ("T") unterschieden.
Die DE-Firmenschrift: Siemens-System 4004, Zentral­ einheit 4004/151-2, Beschreibung und Befehlsliste, Siemens AG, 1.7.1974, S. 3-1 bis 3-22 und 6-5 bis 6-8, behandelt in Kapitel 3 eine Adressenumsetzung unter Verwendung von drei Listen.
Eine solche Adressenumsetzung unter Verwendung von drei Listen ist auch in "Intel 80386, A collection of Article Reprints", 1986 mit Bezug auf den Intel-Mikroprozessor 80386 beschrieben. Von den drei verwendeten Listen dienen zwei der Überwachung des Seitenwechselns und damit der Ab­ bildung virtueller Adressen auf reale Adressen im Speicher. Die dritte Liste dient zur Segmentierung des Speichers. Durch Segmentierung werden unterschiedlichen Nutzern Teile des vorhandenen Adreßraums so zugeordnet, daß sie diesen unbeeinträchtigt durch andere Nutzer verwenden können, ggf. aber auch am Zugriff auf den Adreßraum der anderen Nutzer gehindert sind.
In "Microprocessor and Peripherals Handbook Vol. 1: Micro­ processor, Intel Corp. 1987, S. 4-29 bis 4-31" ist ein Seg­ mentierungsverfahren beschrieben, bei dem drei, als Global Descriptor Table (GDT), Interrupt Descriptor Table (IDT) und Local Descriptor Table (LDT) bezeichnete Listen verwen­ det werden. [Anfangsadressen und Länge der beiden ersteren sind in jeweils einem zugeordneten Register gespeichert. Ein dem Local Descriptor Table zugeordnetes Register ent­ hält einen Zeiger auf eine Datenstruktur, die Anfangsadres­ se und Länge umfaßt]. Die Einträge von LDT und GDT umfassen jeweils Anfangsadressen und Längen von Speichersegmenten. Die Einträge im GDT können auch LDTs betreffen.
Die Verwendung von Listen für die Umsetzung virtueller in reale Adressen ist zwar für eine effiziente Nutzung des Speichers nützlich. Doch wird die verfügbare Prozessorlei­ stung verringert, da die Zahl der zum Erhalt eines gesuch­ ten Datenwerts erforderlichen Speicherzugriffe mit der Zahl der Listen steigt.
Der Erfindung liegt die Aufgabe zugrunde, eine für einen vorbestimmten Adressenbereich ausgelegte Informationsverar­ beitungseinrichtung (I.V.E.) durch zusätzliche Hardware so zu ergänzen, daß durch dynamische Umschaltung ein größerer Adressenbereich verarbeitet werden kann und die I.V.E. ohne Beeinträchtigung der verfügbaren Prozessorleistung bzw. der Verlängerung der Zugriffszeit mit der für die nicht ergänz­ te I.V.E. geschaffenen Software betrieben werden kann, d. h. kompatibel ist.
Gelöst wird diese Aufgabe durch die im Patentanspruch 1 an­ gegebenen Merkmale.
Zweckmäßige Ausgestaltungen und Weiterbildungen der Erfin­ dung sind in den Unteransprüchen angegeben.
Die Informationsverarbeitungseinrichtung ist mit Bereichs­ registern zur Speicherung von Bereichsindizes von Befehls- oder Operandenadressen versehen. Die Einrichtungen zum Erzeugen einer virtuellen Adresse umfassen Adressenad­ dierer, welche Adressenadditionen für eine Adresse vor der Erweiterung durchführen. Wenn keine Adressener­ weiterung vorgenommen wird, werden die Inhalte der Be­ reichsregister auf "0" gesetzt.
Gemäß der Erfindung wird der Inhalt eines der Bereichs­ register darauf überprüft, ob dieser Inhalt mit "0" übereinstimmt oder nicht.
Wenn der Inhalt des überprüften Bereichsregisters gleich "0" ist, wird an die Adressenüberset­ zungseinrichtung der Inhalt des Segmentlistenanfangsre­ gisters ausgegeben. Daraufhin kann die Übersetzung der vom Ad­ ressenaddierer ausgegebenen virtuellen Adresse unter Verwendung nur zweier Listen, nämlich einer Segmentliste und einer Seitenliste durchgeführt werden. Deswegen dauert diese Adressübersetzung nicht länger als die Adressüber­ setzung in einer nicht ergänzten I.V.E.
Wenn jedoch der Inhalt des überprüften Bereichsregisters von "0" abweicht, wird der Inhalt des Bereichslistenanfangsregisters an die Adressenüberset­ zungseinrichtungen ausgegeben. In diesem Fall kann die vom Adressenaddierer erhaltene Adresse unter Verwendung der Bereichsliste, einer Segmentliste und einer Seiten­ liste übersetzt werden. Hierdurch läßt sich eine Erweiterung des Adressraums erreichen.
Der Inhalt eines Bereichsregisters wird durch den Pro­ zessor gesetzt. In einer vorteilhaften Weiterentwicklung der Erfindung ist die Möglichkeit vorgesehen, im Falle einer Adressenerweiterung in Abhängigkeit vom Ergebnis der Adressenaddition den Inhalt eines Bereichsregisters zu inkrementieren. Für diesen Zweck enthält die I.V.E. Register für Informationen, aufgrund derer unterschieden wird, ob die Adressenerweiterung für Befehle und/oder Operanden vorgenommen wird. Wenn vom Adressenaddierer ein Übertragungsbit ausgegeben wird, so wird dieses Übertragungsbit unbeachtet gelassen, wenn keine Adres­ senerweiterung stattfindet, während im Falle einer Ad­ ressenerweiterung der Inhalt des Bereichsregisters um 1 inkrementiert wird. Hierdurch wird der ohne Zugriff des Prozessors auf ein Bereichsregister zugängliche Adress­ bereich erheblich vergrößert.
Wenn in der erfindungsgemäßen I.V.E ein Adressenüberset­ zungspuffer ("translation look-aside buffer", TLB), des­ sen Eintragung im allgemeinen den Segmentlistenanfang, einen Teil des oder den ganzen Segmentlistenindex und einen Teil des oder den ganzen Seitenindex enthält, und Seitenrasteradressen verwendet werden, dann speichert der TLB ferner die Bereichsindices und, anstatt der Segmentlistenanfänge, die Bereichslistenanfänge. Beim Vergleichen der im TLB gespeicherten Eintragungen 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.
Gemäß der Erfindung können Adressenerweiterungen auf einfache Weise mit nur geringfügig ergänzter Hardware, etwa durch Bereichsregister vorgenommen werden, und zwar bei Aufrechterhaltung der Kompatibilität mit gegenwärtig benutzten Architekturen und Software.
Die Erfindung wird im folgenden anhand eines Ausfüh­ rungsbeispieles unter Bezug auf die Zeichnungen näher erläutert; es zeigen:
Fig. 1 das Format einer erfindungsgemäß erweiterten virtuellen Adresse;
Fig. 2 eine herkömmliche Adressenübersetzung;
Fig. 3 eine Adressenübersetzung mit der erfindungs­ gemäßen Adressenerweiterung;
Fig. 4 ein eine erfindungsgemäße Ausführungsform der Informationsverarbeitungseinrichtung erläutern­ des Blockschaltbild;
Fig. 5 ein Beispiel des Formats einer Segmentlistenein­ tragung;
Fig. 6 ein Beispiel des Formats eines Bereichslistenan­ fangspunktregisters;
Fig. 7 ein Beispiel des Formats einer Bereichslisten­ eintragung; und
Fig. 8 ein Beispiel des Formats einer erweiterten Seitenlisteneintragung.
In der erfindungsgemäßen Ausführungsform besitzen das Befehlsbereichsregister (IDR) und die Operandenbereichs­ register (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üh­ rungsform verwendeten erweiterten virtuellen Adresse ge­ zeigt. Die Adresse besitzt eine 47-Bit-Konfiguration. Die 31 Bits vom 16-ten Bit bis zum 46-ten Bit sind die­ selben wie die einer herkömmlichen virtuellen 31-Bit- Adresse: der Segmentindex (SX) ist aus 11 Bits aufge­ baut, 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-Bereichslistenindex (DX) hinzuge­ fügt. Ein virtueller Adressenraum mit einer Größe von 2 G-Bytes wird hier virtueller Bereich genannt. Somit wer­ den die virtuellen Bereiche der 216 (= 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 zu­ nächst die sich von der herkömmlichen Adressenerweite­ rung unterscheidende erfindungsgemäße Adressenerweite­ rung 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) zusammenge­ setzt. Ein Segmentlistenanfang (STO) bezeichnet die Startadresse einer Segmentliste. Der Segmentlistenanfang (STO) wird zum Segmentindex (SX) hinzugefügt und die sich ergebende Adresse wird dazu verwendet, aus der Seg­ mentliste einen Seitenlistenanfang (PTO) zu erhalten. Der Seitenlistenanfang (PTO) bezeichnet die Startadresse der Seitenliste. Der Seitenlistenanfang (PTO) und der Seitenindex (PX) werden zusammengefügt und die sich ergebende Adresse wird dazu verwendet, aus der Seiten­ liste 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 erfin­ dungsgemäße Adressenerweiterung Anwendung findet. Wie im Zusammenhang mit Fig. 1 beschrieben, weist eine virtu­ elle Adresse einen Bereichslistenindex (DX), einen Seg­ mentindex (SX), einen Seitenindex (PX) und einen Byte- Index (BX) auf. Ein Bereichslistenanfang (DTO) bezeich­ net die Startadresse einer Bereichsliste, die in der Adressenübersetzungsliste vorgesehen ist. Der Bereichs­ listenanfang (DTO) und der Bereichslistenindex (DX) wer­ den zusammengefügt und die sich ergebende Adresse wird dazu verwendet, aus der Bereichsliste einen Segmentli­ stenanfang (STO) zu erhalten. Der Segmentlistenanfang bezeichnet die Startadresse der Segmentliste der Mehr­ zahl der Segmentlisten. Nach Erhalt des Segmentlisten­ anfangs (STO) ist die Adressenübersetzungsoperation dieselbe wie die in Zusammenhang mit Fig. 2 beschrie­ bene, so daß die Beschreibung hiervon weggelassen wird. Wenn die Adresse erweitert wird, so werden Bereichsli­ sten, Segmentlisten und Seitenlisten entsprechend dem erweiterten Raum vorgesehen.
Fig. 4 ist ein Blockschaltbild, das eine Ausführungsform der erfindungsgemäßen Informationsverarbeitungseinrich­ tung zeigt.
Zunächst wird der Speicherzugriff für einen Befehl be­ schrieben. 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 zusammenge­ fügt, um die Adresse des als nächstes auszuführenden Be­ fehls zu erhalten. Das Additionsergebnis wird in einem Ausgaberegister (PCD) 4 und im PC 1 gesetzt. Die Be­ schreibung geht von dem Fall aus, wo bei einer solchen Additionsoperation kein Übertragungsbit erzeugt wird. Der Inhalt des PCD 4 wird an ein virtuelles Adressen­ register (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 und enthält keinen Bereichslistenindex (DX), unabhängig davon, ob eine Adressenerweiterung durchgeführt wird oder nicht. 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 Eintra­ gung im TLB 6 enthält ein V-Feld, das die Gültigkeit der betreffenden Eintragung anzeigt, ein DTO/STO-Feld, in dem bei Übereinstimmung des Bereichsindex DX des virtu­ ellen Bereichs mit dem einen vorbestimmten Wert, der Segmentlistenanfang (STO) und bei Nichtübereinstimmung der Bereichslistenanfang (DTO) gespeichert wird, ein Bereichsindex-(DX)-Feld, ein Seitenlistenindex-(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 Informations­ verarbeitungseinrichtung entsprechend dem Inhalt eines auszuführenden Programmes im IDR 7, im ODR1 8 und im ODR2 9 gespeichert. Von einem Selektor 30 wird in Ab­ hängigkeit von einem Befehlsabruf, einer ersten Operan­ denanforderung oder einer zweiten Operandenanforderung eine der Ausgaben aus diesen drei Bereichsregistern gewählt. Der Inhalt des gewählten Registers wird von einem Modusdetektor 10 daraufhin überprüft, ob er mit "0" übereinstimmt. Wenn ja, wird durch eine Wähl­ einrichtung 31 ein STO Register (STOR) 11 gewählt, wenn nicht, 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) ist. 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 hervor­ gerufenen 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 Befehlsab­ rufes, so daß die Beschreibung hiervon weggelassen wird. Ein sich vom Befehlsabruf unterscheidender Punkt ist je­ doch, 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 Übertra­ gungsbit bei der Adressenadditionsoperation erzeugt wird. Wenn eine Adressenerweiterung des Befehls und/oder des Operanden vorgenommen wird, so wird ein die Be­ triebsart der erweiterten Befehlsadresse anzeigendes Bit (IE) 18 und/oder ein die Betriebsart der erweiterten Operandenadresse anzeigendes Bit (OE) 19 auf "1" ge­ setzt, 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 Programm­ befehl 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 Übertra­ gungsbit 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-Erneu­ erungsmikroprogramm 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 gespei­ chert 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-Addie­ rer 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 Operandenzu­ griff und zum Inhalt des ODR2 9 für den zweiten Operan­ denzugriff 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 ste­ henden) Bit bewirkt, dann wird das Programm unterbro­ chen.
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 Wer­ tes in diesen Registern ausgestattet, so daß das Lesen der Inhalte dieser Register und das Setzen eines belie­ bigen 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übersetzungs­ paar im TLB 6 gespeichert ist.
Wenn in bezug auf den TLB 6 kein "HIT" gefunden wird, so wird durch eine Adressenübersetzungssteuerung (ATC) 21 ein Adressenübersetzungsaddierer (AT-Addierer) 23 akti­ viert. Ein Signal vom Modusdetektor 10, das anzeigt, ob der Inhalt des Bereichsregisters IDR 7, ODR1 8 oder ODR2 9 "0" ist oder nicht, wird in die ATC 21 eingege­ ben. 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 be­ schrieben. Eine zu übersetzende virtuelle Adresse wird aus dem VAR 5 in ein Übersetzungsadressenregister (TAR) 22 gebracht. Über Wählvorrichtungen 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 wer­ den; das Additionsergebnis wird im RAR 16 gesetzt, um unter Verwendung des Inhaltes des RAR 16 den MS 28 zu adressieren und um eine Segmentlisteneintragung aus dem MS 28 abzurufen. Die ST-Eintragung aus der Segmentliste (ST) wird in einem Listenregister (TBR) 24 gesetzt. Das Format der ST-Eintragung ist in Fig. 5 gezeigt. Zusätz­ lich zum PTO enthält die ST-Eintragung ein einen ungül­ tigen Zustand darstellendes I-Bit und ein die Segmentli­ stenlänge anzeigendes Feld STL. Der PTO der im TBR 24 gesetzten ST-Eintragung und der im TAR 22 gesetzte PX werden durch den AT-Addierer 23 addiert; das Ergebnis wird im RAR 16 gesetzt, um unter Verwendung des Inhaltes des RAR 16 den MS 28 zu adressieren und aus dem MS 28 eine Seitenlisteneintragung abzurufen. Die PFRA in der PT-Eintragung wird über eine Wähleinrichtung 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 sowie 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ömm­ liches Adressenübersetzungsprogramm ohne irgendeine Än­ derung benutzt werden kann.
Als nächstes wird eine erweiterte Adressenübersetzung beschrieben, wenn der Inhalt des Bereichsregisters nicht "0" ist. In diesem Fall wird nicht STOR 11, sondern DTOR 12 gewählt. Das Format des DTOR 12 ist in Fig. 6 ge­ zeigt. Der DTO des DTOR 12 und ein Bereichsindex aus dem IDR 7, dem ODR1 8 oder dem ODR2 9 werden über die Selek­ toren 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 Bereichslisteneintragung zu erhal­ ten. Die DT-Eintragung wird im TBR 24 gesetzt. Das For­ mat der DT-Eintragung ist in Fig. 7 gezeigt, wobei die­ ses Format so ausgebildet ist, daß es ein Ungültigkeits­ bit I enthält, welches zum Format der Segmentlisten- (ST)-Kennzeichnung einer herkömmlichen Architektur hin­ zugefügt wird. Der STO in der DT-Eintragung wird anstatt des in einer herkömmlichen Adressenübersetzung benutzten STO im STOR 11 benutzt, um dadurch eine der oben be­ schriebenen Operation ähnliche Adressenübersetzungsope­ ration durchzuführen. In diesem Fall bezieht sich jedoch die herkömmliche Adressenübersetzung auf die zwei Listen ST und PT, während sich die erweiterte Adressenüberset­ zung, wie in Fig. 3 gezeigt ist, auf die drei Listen DT, ST und PT bezieht. Falls die reale Adresse ebenfalls er­ weitert wird, so sollte ferner die PT auf 8 Bytes erwei­ tert werden; das entsprechende Format ist in Fig. 8 ge­ zeigt. In diesem Fall hat die PFRA 35 Bits. Das in Fig. 8 gezeigte Format enthält ein 0-Bit, ein Ungültigkeits­ bit und ein Seitenschutzbit P, das zur Sperrung der Speicherung in einem durch die PFRA bezeichneten Ab­ schnitt verwendet wird, falls das Bit auf "1" gesetzt ist. Im TLB 6 wird anstatt des STO aus dem STOR 11 das DTO aus dem DTOR 12 eingetragen.
In der obigen Ausführungsform ist die erweiterte Adres­ senübersetzung mit einer Dreilisten-Anordnung durchge­ führt worden. Es kann jedoch auch eine Zweilisten-Anord­ nung angewendet werden. Außerdem wurde für den Bereich, dessen Inhalt nicht "0" ist, die gleiche Größe des Seg­ mentes und der Seite wie im herkömmlichen Fall verwen­ det. Im erweiterten Adressenraum mit maximal 2 G-Bytes kann jedoch die Größe des Segmentes und der Seite ver­ schieden vom herkömmlichen Fall gewählt werden. Außerdem braucht das Seitenkonzept nicht verwendet zu 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 Verwen­ dung.
Wie in Fig. 6 gezeigt ist, ist der DTO aus 19 Bits zu­ sammengesetzt, so daß die DT in einem Realadressenraum ohne Realadressenerweiterung zugeordnet werden kann. Ferner können die ST und PT für den erweiterten Adres­ senabschnitt in einem Realadressenraum ohne Realadres­ senerweiterung 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 Programmsta­ tuswort (PSW) momentan nicht verwendete Bits verwendet werden, so kann das IE 18 und das OE 19 durch einen Be­ fehl 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 be­ schrieben, 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ätz­ lich 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-Addie­ rer 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 (4)

1. Informationsverarbeitungseinrichtung, mit
  • - Einrichtungen (1 bis 5, 17) zum Erzeugen einer virtu­ ellen Adresse,
  • - einem Hauptspeicher (28) zur Speicherung einer Be­ reichsliste (DT), deren Einträge jeweils einen Seg­ mentlistenanfang (STO) enthalten, und zur Speicherung einer Segmentliste (ST),
  • - einer Adressenumsetzeinrichtung (16, 21-24, 32-34) zur Umsetzung der virtuellen Adresse in eine reale Adresse unter Verwendung der Segmentliste (ST) und der Bereichsliste (DT);
  • - einem DTO-Register (12) zur Speicherung eines Be­ reichslistenanfangs (DTO); und
  • - einem STO-Register (11) zur Speicherung eines Seg­ mentlistenanfangs (STO);
gekennzeichnet durch
  • - mehrere Bereichsregister (7, 8, 9) zur Speicherung eines Bereichslistenindex (DX), mit denen auf die Eintragungen in der Bereichsliste (DT) zugegriffen werden kann, und
  • - einen Modusdetektor (10, 31), der den Inhalt eines der Bereichsregister (7, 8, 9) auf Übereinstimmung mit Null überprüft und bei Nichtübereinstimmung eine Kombina­ tion des Bereichslistenanfangs aus dem DTO-Register (12) und des jeweiligen Bereichslistenindex (DX) aus einem der Bereichsregister (7, 8, 9) an die Adressen­ umsetzeinrichtung (16, 21-24, 32-34) ausgibt, um ei­ nen Segmentlistenanfang (STO) zu erhalten, sowie bei Übereinstimmung den Segmentlistenanfang (STO) aus dem STO-Register (11) an die Adressenumsetzeinrichtung (16, 21-24, 32-34) ausgibt.
2. Informationsverarbeitungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß eine Steuereinrichtung (20) im Falle eines erwei­ terten Adressierungsmodus wenigstens ein 1-Bit-Register (18, 19) setzt und in Abhängigkeit von einem Übertrags- Bit eines Adressenaddierers (17, 3) und dem Inhalt ei­ nes zugehörigen 1-Bit-Registers (19, 18) den Be­ reichslistenindex (DX) in eines der Bereichsregister (7, 8, 9) einspeichert.
3. Informationsverarbeitungseinrichtung nach einem der An­ sprüche 1 oder 2, gekennzeichnet durch einen Adressenübersetzungspuffer (6), bei dem jede Ein­ tragung eine entweder dem Bereichslistenanfang (DTO) oder dem Segmentlistenanfang (STO) entsprechende In­ formation, eine dem Bereichslistenindex (DX) entspre­ chende Information und eine reale Adresse (PFRA) ent­ hält.
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 DE3833933A1 (de) 1989-04-20
DE3833933C2 true 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)

Families Citing this family (32)

* 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
DE69111778T2 (de) * 1990-12-21 1996-05-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.
US5381537A (en) * 1991-12-06 1995-01-10 International Business Machines Corporation Large logical addressing method and means
US5426748A (en) * 1992-01-03 1995-06-20 International Business Machines Corporation Guest/host extended addressing method and means with contiguous access list entries
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
JPH06231047A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd アドレス変換方法および装置
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
DE10058457A1 (de) * 2000-11-24 2002-06-13 Marconi Comm Gmbh Verfahren und Vorrichtung zum Multiplexen von Datenpaketen
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 成都市华为赛门铁克科技有限公司 一种服务器及其访问卷的方法

Family Cites Families (24)

* 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
US4482952A (en) * 1980-12-15 1984-11-13 Nippon Electric Co., Ltd. Virtual addressing system using page field comparisons to selectively validate cache buffer data on read main memory data
EP0085048B1 (de) * 1981-08-12 1988-12-07 International Business Machines Corporation Vorrichtung und verfahren zur ausgedehnten adressierung für direktspeicherungsanordnungen
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 株式会社日立製作所 情報処理装置のアドレス変換方式
EP0220327B1 (de) * 1985-04-30 1991-12-27 Fujitsu Limited 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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE3151745C2 (de)
DE2645537C2 (de)
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69831708T2 (de) Effiziente Erkennung von Computerviren und andere Dateneigenschaften
DE68916853T2 (de) Unabhängige Programmlader für virtuelle Maschinenarchitektur.
DE2725718A1 (de) Verarbeitungssystem mit mehreren virtuellen adressenraeumen
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE2726488A1 (de) Adressenuebersetzungseinrichtung
DE3131341A1 (de) "pufferspeicherorganisation"
DE3805107A1 (de) Verfahren und vorrichtung zur steuerung virtueller adressraeume eines virtuellen speichers
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2630323A1 (de) Datenspeichereinrichtung
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
WO1994027222A1 (de) Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge
DE2737353A1 (de) Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens
DE3718750C2 (de)
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache
DE3689217T2 (de) Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher.
WO1996023260A1 (de) Verfahren zum betreiben einer adressumsetzvorrichtung

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