DE69323863T2 - Verfahren und Vorrichtung zur Adressübersetzung - Google Patents

Verfahren und Vorrichtung zur Adressübersetzung

Info

Publication number
DE69323863T2
DE69323863T2 DE69323863T DE69323863T DE69323863T2 DE 69323863 T2 DE69323863 T2 DE 69323863T2 DE 69323863 T DE69323863 T DE 69323863T DE 69323863 T DE69323863 T DE 69323863T DE 69323863 T2 DE69323863 T2 DE 69323863T2
Authority
DE
Germany
Prior art keywords
address
page
virtual address
virtual
bits
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
DE69323863T
Other languages
English (en)
Other versions
DE69323863D1 (de
Inventor
Hitoshi C/O Fujitsu Limited Kawasaki-Shi Kanagawa 211 Miyaoku
Hiromasa C/O Fujitsu Limited Kawasaki-Shi Kanagawa 211 Takahashi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE69323863D1 publication Critical patent/DE69323863D1/de
Publication of DE69323863T2 publication Critical patent/DE69323863T2/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/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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und Gerät für eine Adreßumsetzung oder Adreßübersetzung zum Übersetzen einer virtuellen Adresse in einem virtuellen Speichersystem in eine reale Adresse. Genauer gesagt bezieht sich die vorliegende Erfindung auf ein Verfahren und Gerät zum Übersetzen einer 64-Bit-Virtuelle-Adresse in eine reale Adresse.
  • Mit dem Bedarf an höheren Betriebsgeschwindigkeiten von Computersystemen wurde kürzlich eine 64-Bit-Konfiguration von Daten und Adressen gefordert. Um diesem Bedarf zu genügen, wurden mehrere Verfahren zum Übersetzen von 64-Bit-Virtuelle- Adressen in reale Adressen vorgeschlagen, aber ein Adreßübersetzungsverfahren, das imstande ist, Kompatibilität mit einer 32-Bit-Virtuelle-Adresse einfach aufrechtzuerhalten, und auch zu einer schnellen Übersetzung imstande ist, wurde noch nicht realisiert. Dementsprechend wurde ein Adreßübersetzungsverfahren einer 64-Bit-Virtuelle-Adresse gefordert, das sowohl Kompatibilität mit der 32-Bit-Virtuelle-Adresse als auch eine Hochgeschwindigkeitsadreßübersetzung erfüllen kann.
  • Zu Beginn wird ein virtuelles Speichersystem erläutert, das eine herkömmliche virtuelle Adresse mit bis zu 32 Bits verwendet. Im Fall eines virtuellen Speichersystems, das z. B. eine 32-Bit-Virtuelle-Adresse verwendet, weist die virtuelle Adresse eine Segmentnummer 104, einen Seitenindex 62 und einen Seitenversatz oder Seiten-Offset 64 auf, wie in Fig. 1 gezeigt ist.
  • Die Segmentnummer 104 repräsentiert hier die Position, wo der virtuelle Raum, der als ein Bestandteilelement eines Programms ein Block mit variabler Länge ist, in Segmenteinheiten geteilt ist, und der Seitenindex 62 repräsentiert die Position, wo das Segmentgebiet in Seiteneinheiten geteilt ist. Der Seiten-Offset 64 repräsentiert ferner die Position innerhalb des Seitengebiets entsprechend dem realen Raum.
  • Um eine virtuelle Adresse in eine reale Adresse zu übersetzen, wurde normalerweise ein Zweistufen-Übersetzungsverfahren verwendet, das die reale Adresse durch Wiedergewinnen einer Segmenttabelle 108 und einer Seitentabelle 112 erhält, wie in Fig. 2 gezeigt ist.
  • Mit anderen Worten wird eine Basisadresse der Segmenttabelle 108 von einem Segmenttabellenbasisregister 106 erhal ten, und eine Wiedergewinnung wird dann durch Addieren einer Segmentnummer 104 der virtuellen Adresse als ein Versatz oder Offset zu dieser Basisadresse ausgeführt, um eine Basisadresse (PTB) 110 der Seitentabelle 112 zu erhalten. Als nächstes wird ein Seitenindex 62 innerhalb der virtuellen Adresse als der Offset zu der Basisadresse 110 addiert, die von der Segmenttabelle 108 erhalten wurde, um die Seitentabelle 112 wiederzugewinnen, um eine Seitenrahmennummer (PFN) 114 zu erhalten. Schließlich kann die reale Adresse durch Kombinieren der von der Seitentabelle 112 erhaltenen Seitenrahmennummer 114 mit dem Seiten-Offset 64 in der virtuellen Adresse erhalten werden.
  • Fig. 3 zeigt die Beziehung zwischen dem virtuellen Raum und dem realen Raum gemäß dem in Fig. 2 gezeigten Adreßübersetzungsverfahren. Der virtuelle Raum 115 wird zuerst in Segmente 116-1, 116-2, ... geteilt, und jedes Segment wird in Seiten 118-1 bis 118-4 mit einer Größe entsprechend dem realen Raum 122 geteilt, wie durch das Segment 116-2 versinnbildlicht ist.
  • Eine willkürliche Adresse innerhalb des virtuellen Raums 115, die durch in Fig. 1 gezeigte 32 Bits bestimmt ist, wird durch die Zweistufen-Übersetzung unter Verwendung der Segmenttabelle 108 und der Seitentabelle 112 in die reale Adresse übersetzt und repräsentiert eine absolute oder physikalische Adresse im realen Raum 122, der in einer Hauptspeichereinheit (MSU) gesichert ist.
  • Hierdurch annehmend, daß das Bitfeld der virtuellen Adresse durch 10 Bits für die Segmentnummer 104, 10 Bits für den Seitenindex 62 und 12 Bits für den Seiten-Offset 64 gebildet wird, wird die Größe der Seite 4 KB, die durch die 12 Bits des Seiten-Offsets 64 bestimmt ist, und die Segmenttabelle 108 und die Seitentabelle 112 werden jeweils durch Eingabe- bzw. Eintragblöcke von 1K gebildet, bestimmt durch die 10 Bits (2¹&sup0; 1 K) von jeder der Segmentnummer 104 und des Seitenindex 62 (siehe Fig. 2, Eintrag #0 bis Eintrag #1 K).
  • Wenn ein solches Adreßübersetzungsverfahren auf ein virtuelles Speichersystem angewandt wird, das eine 32 Bits überschreitende virtuelle Adresse verwendet, wie z. B. eine 64- Bit-Virtuelle-Adresse, wird die Bit-Konstruktion wie die in Fig. 4 gezeigte. Mit anderen Worten weist sie, wie in Fig. 4 gezeigt ist, 26 Bits für die Segmentnummer 104, 26 Bits für den Seitenindex 62 und 12 Bits für den Seiten-Offset 64 auf.
  • Die Größe der Seite wird hier 4KB, bestimmt durch den 12- Bit-Seiten-Offset 64, und die Segmenttabelle 108 und die Seitentabelle 112 werden jeweils durch Eintragblöcke von 64 M gebildet, bestimmt durch 26 Bits (2²&sup6; 64 M) von jeder der Segmentnummer 104 und des Segmentindex 62. Dementsprechend werden die Segmenttabelle und die Seitentabelle sehr groß, und der Bereich, den sie in dem in der Hauptspeichereinheit gesicherten realen Adreßraum einnehmen, wird groß. Mit anderen Worten wird der reale Adreßraum klein, der praktisch als das Speichersystem verwendet werden kann.
  • In Fig. 5 ist ein 64-Bit-Adreßübersetzungsverfahren zum Bewältigen eines solchen Problems dargestellt. Gemäß dem in Fig. 5 gezeigten Adreßübersetzungsverfahren wird die virtuelle Adresse in Virtuelle-Adresse-Bits 124 und Seiten-Offset- Bits 126 geteilt. Die Virtuelle-Adresse-Bits 124 werden durch eine Hash-Erzeugungsschaltung (Hash-Gen.) 128 in eine Hash- Adresse übersetzt, und eine Hash-Ankertabelle 132 wird durch diese Hash-Adresse 130 wiedergewonnen.
  • Ein Seitenrahmentabellenzeiger (PFT) 134 wird von der Hash-Ankertabelle 132 erhalten, und, wenn die Seitenrahmentabelle 135 durch diesen Zeiger 134 wiedergewonnen wird, kann ein Seitenrahmentabelleneintrag 136 erhalten werden. Dieser Rahmentabelleneintrag (PFTE) 136 enthält die virtuelle Adresse, eine Seitenrahmennummer und eine Verbindungsadresse (engl. link address).
  • Als nächstes werden die Virtuelle-Adresse-Bits 124 in der virtuellen Adresse mit der virtuellen Adresse innerhalb des Seitenrahmentabelleneintrags (PFTE) 136 verglichen, und, wenn sie miteinander übereinstimmen, kann die reale Adresse 26 als die Kombination der Seitenrahmennummer 142 mit den Seiten- Offset-Bits 126 in der virtuellen Adresse erhalten werden. Falls sie nicht übereinstimmen, wird unter Verwendung der Verbindungsadresse der nächste Seitenrahmentabelleneintrag (PFTE) erhalten, und eine ähnliche Prozedur wird wiederholt, bis die übereinstimmende Adresse gefunden werden kann.
  • Die Virtuelle-Adresse-Bits 124 entsprechen nicht den Virtuelle-Adresse-Bits innerhalb des Seitenrahmentabelleneintrags (PFTE) 136, wenn die gleichen Hash-Adressen erzeugt werden, sogar in dem Fall, in dem die Virtuelle-Adresse-Bits in der Hash-Erzeugungsschaltung 128 voneinander verschieden sind. In diesem Fall werden die Virtuelle-Adresse-Bits 124 in dem Seitenrahmentabelleneintrag (PFTE) entsprechend der gemäß einer vorbestimmten Regel erzeugten Verbindungsadresse gespeichert.
  • Fig. 6 ist eine erläuternde Darstellung, die die Beziehung zwischen dem virtuellen Raum und dem realen Raum in dem in Fig. 5 gezeigten Adreßübersetzungsverfahren darstellt. In diesem Fall ist der virtuelle Raum 146 in Seiten 148-1, 148- 2, ... mit einer dem realen Raum 152 entsprechenden Größe geteilt.
  • Eine willkürliche virtuelle Adresse innerhalb dieses virtuellen Raums 146 wird unter Verwendung der Hash-Erzeugungsschaltung 128, der Hash-Ankertabelle 132 und der Seitenrahmentabelle 135 in die reale Adresse übersetzt und repräsentiert eine physikalische Adresse in dem realen Raum 152, der in der Hauptspeichereinheit (MSU) gesichert ist.
  • Das in Fig. 5 gezeigte Adreßübersetzungsverfahren ist frei vom Konzept eines "Segments", das um eine Stufe höher als die Seite ist, wie in dem virtuellen Raum 146 in Fig. 6 gezeigt ist, und ist von dem virtuellen Raum 114 der herkömmlichen 32-Bit-Virtuelle Adresse mit dem Konzept eines Segments zum Ausführen einer in Fig. 4 gezeigten Zweistufen- Tabellenübersetzung sehr verschieden. Hier ergibt sich das Problem, wie man Kompatibilität aufrechterhält.
  • Ferner werden zwei Tabellen, d. h. die Hash-Ankertabelle und die Seitenrahmentabelle in der Hauptspeichereinheit, vor dem Vergleich der virtuellen Adressen wiedergewonnen. Dies bedeutet, daß ein Zugriff auf die Hauptspeichereinheit zweimal vorgenommen werden muß, und ein weiteres Problem tritt insofern auf, als eine lange Zeit notwendig ist, um zu bestätigen, ob die Adreßübersetzung korrekt ist oder nicht.
  • DE-A-38 33 933 beschreibt ein Reale-Adresse-Erzeugungssystem für Systeme mit mindestens 31 Bits. Sie beschreibt, wie wichtig es ist, Kompatibilität zwischen dem erweiterten Adreßsystem und den früheren Adreßsystemen aufrechtzuerhalten und beschreibt eine Hierarchie mit drei Ebenen, um die damit verbundenen Probleme zu lösen.
  • EP-A-0251861 beschreibt ein Reale-Adresse-Erzeugungssystem, das einen schnellen Speicher enthält. Eine Hash- Tabelle wird verwendet, um auf einen schnellen Speicher zuzugreifen: wenn die erforderliche Seiteninformation in dem schnellen Speicher nicht gefunden wird, wird in dem Hauptspeicher nach der Seiteninformation gesucht.
  • Im Hinblick auf die oben beschriebenen Probleme ist es wünschenswert, ein Verfahren und Gerät zur Adreßübersetzung zur Verwendung in einem virtuellen Speichersystem zu schaffen, das eine virtuelle Adresse von mindestens 32 Bits verwendet, wie z. B. eine 64-Bit-Virtuelle-Adresse, die eine Adreßübersetzung bei einer höheren Geschwindigkeit ausführen können, während Kompatibilität mit einer virtuellen Adresse unterhalb 32 Bits aufrechterhalten wird, indem das Konzept von Segmenten in einen virtuellen Raum eingeführt wird.
  • Gemäß einem ersten Gesichtspunkt der vorliegenden Erfindung wird ein Adreßübersetzungsverfahren zum Übersetzen einer virtuellen Adresse in eine reale Adresse geschaffen, enthaltend einen Virtuelle-Adresse-Halteschritt zum Halten, als ein Übersetzungsobjekt, einer virtuellen Adresse mit einer Segmentnummer, einem Seitenindex und einem Seiten-Offset und mit 32 Bits überschreitenden Bits auf eine solche Weise, um einer Struktur zu entsprechen, worin ein virtueller Raum in Segmenteinheiten geteilt ist und jede Segmenteinheit in Seiteneinheiten entsprechend einem realen Raum geteilt ist und Kompatibilität mit einem virtuellen Speichersystem, das eine virtuelle Adresse mit 32 Bits oder weniger verwendet, aufrechterhalten wird, indem der Seitenindex und der Seiten- Offset der virtuellen Adresse mit dem gleichen Aufbau wie diejenigen der virtuellen Adresse mit 32 Bits oder weniger gebildet werden; einen Hash-Verarbeitungsschritt zum Eingeben einer vorbestimmten Zahl der Bits höherer Ordnung der Segmentnummer in eine Hash-Erzeugungsschaltung und Erzeugen einer Hash-Adresse, um als eine Basisadresse einer Verbindungs- Tabelle zu dienen; einen Verbindungstabelle-Wiedergewinnungsschritt zum Wiedergewinnen der Verbindungstabelle, indem eine vorbestimmte Anzahl Bits von Bits niedrigerer Ordnung der Segmentnummer als ein Offset zu der Hash-Adresse addiert wird, um dadurch eine Etikettinformation der virtuellen Adresse, eine Basisadresse der Seitentabelle und einen Ver bindungszeiger zu erhalten, der zum Wiedergewinnen einer Hilfsverbindungstabelle verwendet wird, Vergleichen der Etikettinformation der virtuellen Adresse mit einer vorbestimmten Anzahl Bits hoher Ordnung der Segmentnummer und Ausgeben der Basisadresse der Seitentabelle als eine korrekte Basisadresse, falls das Ergebnis eines Vergleichs Übereinstimmung erweist; einen Hilfsverbindungstabelle-Wiedergewinnungsschritt zum Wiedergewinnen der Hilfsverbindungstabelle durch den Verbindungszeiger, falls die Etikettinformation der virtuellen Adresse, die in dem Verbindungstabelle-Wiedergewinnungsschritt erhalten wird, nicht mit der vorbestimmten Anzahl Bits hoher Ordnung der Segmentnummer übereinstimmt, um dadurch eine Etikettinformation einer virtuellen Adresse, eine Basisadresse einer Seitentabelle und einen Verbindungszeiger zu erhalten, und Fortsetzen einer Wiedergewinnung der Hilfsverbindungstabelle auf der Basis des Verbindungszeigers, bis die Basisadresse der Seitentabelle entsprechend der Segmentnummer erhalten werden kann; einen Seitentabelle-Wiedergewinnungsschritt zum Addieren, als einen Offset, eines Teils der virtuellen Adresse zu der Basisadresse der Seitentabelle, die in dem Verbindungstabelle-Wiedergewinnungsschritt oder in dem Hilfsverbindungstabelle-Wiedergewinnungsschritt erhalten wurde, um die Seitentabelle wiederzugewinnen, und Erhalten einer Seitenrahmennummer; und einen Reale-Adresse-Erzeugungsschritt zum Kombinieren eines Teils der virtuellen Adresse als einen Offset mit der Seitenrahmennummer, die in dem Seitentabelle-Wiedergewinnungsschritt erhalten wurde, und Erzeugen einer realen Adresse.
  • In dem oben beschriebenen Adreßübersetzungsverfahren gemäß dem ersten Gesichtspunkt der vorliegenden Erfindung ist die virtuelle Adresse vorzugsweise eine 64-Bit-Virtuelle- Adresse.
  • Gemäß einem zweiten Gesichtspunkt der vorliegenden Erfindung wird ein Adreßübersetzungsgerät zum Übersetzen einer virtuellen Adresse in eine reale Adresse geschaffen, mit einem Virtuelle-Adresse-Haltemittel zum Halten, als ein Übersetzungsobjekt, einer virtuellen Adresse mit einer Segmentnummer, einem Seitenindex und einem Seiten-Offset und mit 32 Bits überschreitenden Bits auf eine solche Weise, um einer Struktur zu entsprechen, worin ein virtueller Raum in Seg menteinheiten geteilt ist und jedes Segmentgebiet in Seiteneinheiten entsprechend einem realen Raum geteilt ist und Kompatibilität mit einem virtuellen Speichersystem, das eine 32- Bit-Virtuelle-Adresse verwendet, durch Bilden des Seitenindex und des Seiten-Offsets der 64-Bit-Virtuelle-Adresse mit dem gleichen Aufbau wie diejenigen der 32-Bit-Virtuelle-Adresse aufrechterhalten wird; einem Hash-Erzeugungsmittel zum Eingeben einer vorbestimmten Zahl der Bits höherer Ordnung der Segmentnummer in eine Hash-Erzeugungsschaltung und Erzeugen einer Hash-Adresse, um als Basisadresse einer Verbindungstabelle zu dienen; einem Verbindungstabelle- Wiedergewinnungsmittel zum Wiedergewinnen der Verbindungstabelle durch Addieren einer vorbestimmten Anzahl Bits von Bits niedrigerer Ordnung der Segmentnummer als ein Offset zu der Hash-Adresse, Wiedergewinnen der Verbindungstabelle, um dadurch eine Etikettinformation der virtuellen Adresse, eine Basisadresse der Seitentabelle und einen Verbindungszeiger zu erhalten, der zum Wiedergewinnen einer Hilfsverbindungstabelle verwendet wird, Vergleichen der Etikettinformation der virtuellen Adresse mit der vorbestimmten Zahl von Bits hoher Ordnung der Segmentnummer und Ausgeben der Basisadresse der Seitentabelle als eine korrekte Basisadresse, falls das Ergebnis eines Vergleichs Übereinstimmung erweist; einem Hilfsverbindungstabelle-Wiedergewinnungsmittel zum Wiedergewinnen der Hilfsverbindungstabelle durch den Verbindungszeiger, falls die Etikettinformation der durch das Verbindungstabelle-Wiedergewinnungsmittel erhaltenen virtuellen Adresse nicht mit der vorbestimmten Zahl von Bits hoher Ordnung der Segmentnummer übereinstimmt, um dadurch eine Etikettinformation einer virtuellen Adresse, eine Basisadresse einer Seitentabelle und einen Verbindungszeiger zu erhalten, und Fortsetzen einer Wiedergewinnung der Hilfsverbindungstabelle auf der Basis des Verbindungszeigers, bis die Basisadresse der Seitentabelle entsprechend der Segmentnummer erhalten werden kann; einem Seitentabelle-Wiedergewinnungsmittel zum Addieren, als einen Offset, eines Teils der virtuellen Adresse zu der Basisadresse der Seitentabelle, die durch das Verbindungstabelle-Wiedergewinnungsmittel oder durch das Hilfverbindungstabelle-Wiedergewinnungsmittel erhalten wurde, um die Seitentabelle wiederzugewinnen, und Erhalten einer Seitenrahmennum mer; und einem Reale-Adresse-Erzeugungsmittel zum Kombinieren eines Teils der virtuellen Adresse als einen Offset mit der Seitenrahmennummer, die durch das Seitentabelle-Wiedergewinnungsmittel erhalten wurde, und Erzeugen einer realen Adresse.
  • In dem Adreßübersetzungsgerät gemäß dem zweiten Gesichtspunkt der vorliegenden Erfindung ist die virtuelle Adresse vorzugsweise eine 64-Bit-Virtuelle-Adresse.
  • Da ein Adreßübersetzungsverfahren und -gerät, die die vorliegende Erfindung verkörpern, mit dem oben beschriebenen Aufbau eine 32 Bits überschreitende virtuelle Adresse unter Verwendung der gleichen Bit-Konstruktion wie die herkömmlicher virtueller Adressen unterhalb 32 Bits verwenden, kann sie das Konzept des Segments einführen. Ferner kann Kompatibilität mit dem virtuellen Speichersystem, das die herkömmliche 32-Bit-Virtuelle-Adresse verwendet, leicht aufrechterhalten werden.
  • Ferner wird eine Tabelle auf der Basis der Hash-Adresse wiedergewonnen, und unmittelbar danach wird ein Adreßvergleich ausgeführt, um zu beurteilen, ob die von der Tabelle erhaltene Basisadresse korrekt ist oder nicht. Daher kann eine Adreßübersetzung bei einer höheren Geschwindigkeit als eine Adreßübersetzung unter Verwendung der Hash-Adresse vorgenommen werden, wo ein Adreßvergleich ausgeführt wird, nachdem zwei Tabellen wiedergewonnen sind.
  • Nun wird beispielhaft auf die beiliegenden Zeichnungen Bezug genommen, worin:
  • Fig. 1 ein abstraktes oder konzeptionelles erläuterndes Diagramm ist, das zum Erklären eines Bitformats einer herkömmlichen 32-Bit-Virtuelle-Adresse nützlich ist, das das Konzept von Segmenten verwendet;
  • Fig. 2 ein Blockdiagramm ist, das die Übersetzungsfunktion eines früher vorgeschlagenen Adreßübersetzungsmechanismus zeigt;
  • Fig. 3 ein Blockdiagramm ist, das die Beziehung zwischen einem virtuellen Raum und einem realen Raum in einer in Fig. 2 gezeigten Adreßübersetzung darstellt;
  • Fig. 4 eine konzeptionelle erklärende Darstellung ist, die zum Erläutern des Bitformats nützlich ist, wenn die in Fig. 1 gezeigte 32-Bit-Virtuelle-Adresse auf 64 Bits erweitert wird;
  • Fig. 5 ein Blockdiagramm ist, das einen früher vorgeschlagenen Adreßübersetzungsmechanismus einer 64-Bit-Virtuelle-Adresse zeigt, der das Konzept von Segmenten nicht aufweist;
  • Fig. 6 ein Blockdiagramm ist, das die Beziehung zwischen dem virtuellen Raum und dem realen Raum in einer Adreßübersetzung in Fig. 5 zeigt;
  • Fig. 7A und 7B Blockdiagramme sind, die eine Ausführungsform auf der Basis des Prinzips der vorliegenden Erfindung zeigen;
  • Fig. 8 ein Blockdiagramm ist, das eine Hardwarekonfiguration eines Computers zeigt, für den die vorliegende Erfindung verwendet wird;
  • Fig. 9A und 9B Blockdiagramme sind, die die Hardwarekonfiguration des Adreßübersetzungsmechanismus gemäß der ersten bevorzugten Ausführungsform der vorliegenden Erfindung zeigen;
  • Fig. 10 eine konzeptionelle erklärende Darstellung ist, die zum Erklären des Bitformats einer 64-Bit-Virtuelle- Adresse gemäß der vorliegenden Erfindung nützlich ist;
  • Fig. 11 eine konzeptionelle erklärende Darstellung ist, die zum Erklären des Inhalts eines in Fig. 13A und 13B gezeigten Verbindungstabelleneintrags (LTE) nützlich ist;
  • Fig. 12 eine konzeptionelle erklärende Darstellung ist, die zum Erklären des Inhalts eines Seitentabelleneintrags (PTE) nützlich ist;
  • Fig. 13A und 13B Blockdiagramme sind, die die Adreßübersetzungsfunktion gemäß der ersten Ausführungsform zeigen, die in Fig. 9A und 9B dargestellt ist;
  • Fig. 14A und 14B Blockdiagramme sind, die die Hardwarekonfiguration des Adreßübersetzungsmechanismus gemäß der zweiten bevorzugten Ausführungsform der vorliegenden Erfindung zeigen;
  • Fig. 15 ein Blockdiagramm ist, das die Beziehung zwischen dem virtuellen Raum und dem realen Raum für jede Prozeß-ID in der zweiten Ausführungsform zeigt, die in Fig. 14A und 14B dargestellt ist;
  • Fig. 16 ein Blockdiagramm ist, das die Hardwarekonfiguration eines Computers darstellt, der mit dem in Fig. 14A und 14B gezeigten Adreßübersetzungsmechanismus ausgestattet ist; und
  • Fig. 17A und 17B Blockdiagramme sind, die die Adreßübersetzungsfunktion gemäß der zweiten Ausführungsform zeigen, die in Fig. 14A und 14B dargestellt ist.
  • Fig. 7A und 7B sind Blockdiagramme, die zum Erklären einer Ausführungsform auf der Basis des Prinzips der vorliegenden Erfindung nützlich sind. In diesem Fall ist die Ausführungsform der vorliegenden Erfindung in zwei Zeichnungen der Fig. 7A und 7B veranschaulicht.
  • Eine 32 Bits überschreitende virtuelle Adresse als das Übersetzungsobjekt der vorliegenden Erfindung, wie z. B. eine 64-Bit-Virtuelle-Adresse, weist auf:
  • Segmentnummer 60
  • Seitenindex 62
  • Seiten-Offset 64.
  • Die Adreßübersetzungsprozeduren sind wie folgt. Zuerst werden Bits hoher Ordnung der Segmentnummer (SN) 60 als ein Teil der virtuellen Adresse in eine Hash-Erzeugungsschaltung 34 eingegeben, um eine Hash-Adresse als die Basisadresse einer Verbindungstabelle 22 zu erhalten. Die Verbindungstabelle 22 wird durch die Tabellenadresse wiedergewonnen, die durch Addieren, als ein Offset, der Bits niedrigerer Ordnung der Segmentnummer zu dieser Hash-Adresse erhalten wird, um einen Verbindungstabelleneintrag zu erhalten, der eine Etikettinformation der virtuellen Adresse, die Basisadresse einer Seitentabelle 26 und einen Zeiger einer Hilfsverbindungstabelle 24 enthält.
  • Als nächstes wird die Etikettinformation der virtuellen Adresse (die Bits hoher Ordnung der Segmentnummer) innerhalb des Verbindungstabelleneintrags (LTE), der von der Verbindungstabelle 22 erhalten wurde, mit einem Teil (Bits hoher Ordnung) der ursprünglichen Segmentnummer 60 verglichen, und die Basisadresse der Seitentabelle 26 innerhalb des Verbindungstabelleneintrags wird als korrekt festgestellt, falls sie miteinander übereinstimmen.
  • Falls sie nicht übereinstimmen, wird hier die Hilfsverbindungstabelle 24 durch einen Verbindungszeiger innerhalb des Verbindungstabelleneintrags wiedergewonnen, um einen Hilfsverbindungstabelleneintrag zu erhalten, der die Etikettinformation der virtuellen Adresse, die Basisadresse der Seitentabelle 26 und den Zeiger der Hilfsverbindungstabelle 24 enthält. Dieser Hilfsverbindungstabelleneintrag (ALTE) hat exakt den gleichen Aufbau wie der von der Verbindungstabelle 22 erhaltene Verbindungstabelleneintrag (LTE), und die Hilfsverbindungstabelle 24 wird wiedergewonnen, bis die Etikettinformation der virtuellen Adresse, die mit der ursprünglichen Segmentnummer 60 übereinstimmt, gefunden ist und die korrekte Basisadresse der Seitentabelle 26 erhalten werden kann.
  • Wenn die Basisadresse der Seitentabelle 26 von der Verbindungstabelle 22 oder von der Hilfsverbindungstabelle 24 erhalten werden kann, wird die Seitentabelle 26 durch die Tabellenadresse wiedergewonnen, die durch Addieren des Seitenindex 62 der virtuellen Adresse zu der Basisadresse als Offset erhalten wird, um einen Seitentabelleneintrag zu erhalten. Dieser Seitentabelleneintrag (PTE) enthält eine Seitenrahmennummer, und die Summe des Seiten-Offsets 64 der virtuellen Adresse und dieser Seitenrahmennummer (PFN) wird schließlich eine reale Adresse.
  • In einem Adreßübersetzungsverfahren und -gerät, die die vorliegende Erfindung verkörpern, die auf ein virtuelles Speichersystem mit einem virtuellen Raum für jeden Prozeß gerichtet ist, werden eine Prozeß-ID und ein Teil (Bits hoher Ordnung) der Segmentnummer 60 durch die Hash-Erzeugungsschaltung 34 eingegeben, um eine Hash-Adresse als die Basisadresse der Verbindungstabelle 22 zu erhalten.
  • Der Verbindungstabelleneintrag (LTE), der von der Verbindungstabelle 22 erhalten wird, enthält die Prozeß-ID, und die Basisadresse der Seitentabelle 26 des Verbindungstabelleneintrags (LTE) kann als korrekt festgestellt werden, wenn zusätzlich zur Übereinstimmung zwischen der Etikettinformation der virtuellen Adresse und der ursprünglichen Segmentinformation diese Prozeß-ID mit der ursprünglichen Prozeß-ID übereinstimmt. Dies gilt ebenfalls für die Wiedergewinnung der Hilfsverbindungstabelle 24.
  • Die virtuelle Adresse ist hier eine 64-Bit-Virtuelle- Adresse, und ihre Kompatibilität mit der bestehenden 32-Bit- Virtuelle-Adresse kann durch Bilden des Seitenindex 62 und des Seiten-Offsets 64 dieser 64-Bit-Virtuelle-Adresse in der gleichen Weise wie diejenigen der 32-Bit-Virtuelle-Adresse eingerichtet werden.
  • Ferner wird eine Verarbeitung unter Verwendung der Hilfsverbindungstabelle durch Software ausgeführt, und auf diese Weise kann die Hardware des Adreßübersetzungsmechanismus reduziert werden.
  • Das Adreßübersetzungsverfahren und -gerät dieser Ausführungsform mit der oben beschriebenen Konstruktion verwenden die 32 Bits überschreitende virtuelle Adresse durch die Bit- Konfiguration in der gleichen Weise wie die herkömmlichen Adressen unterhalb 32 Bits. Das Konzept von Segmenten kann dementsprechend eingeführt werden. In der oben beschriebenen Ausführungsform kann ferner Kompatibilität mit dem herkömmlichen virtuellen Speichersystem leicht eingerichtet werden, das die 32-Bit-Virtuelle-Adresse verwendet.
  • Ein Adreßvergleich wird vorgenommen, sofort nachdem eine Tabelle wiedergewonnen ist, und ein Eintragblock in der Tabelle wird auf der Basis der Hash-Adresse ausgewählt, um zu beurteilen, ob die Basisadresse der Tabelle niedrigerer Ordnung korrekt ist oder nicht, die von der Tabelle erhalten wurde. Dementsprechend kann im Vergleich zu einer Adreßübersetzung gemäß dem Stand der Technik, worin ein Adreßvergleich nach einer Wiedergewinnung der beiden Tabellen vorgenommen wird, eine Adreßübersetzung bei einer höheren Geschwindigkeit ausgeführt werden.
  • Fig. 8 ist eine erläuternde Darstellung, die die Hardwarekonfiguration eines Computers zeigt, für den eine Adreßübersetzung gemäß einer Ausführungsform der vorliegenden Erfindung verwendet wird.
  • In Fig. 8 bezeichnet Bezugsziffer 10 eine zentrale Verarbeitungseinheit (CPU), die eine Speicherverwaltungseinheit (MMU) 16 enthält. Eine Adreßübersetzungseinheit 18 zum Ausführen einer Adreßübersetzung gemäß der vorliegenden Erfindung und ein Übersetzungsindexpuffer (TLB) 20 sind innerhalb der Speicherverwaltungseinheit 16 vorgesehen.
  • Bezugsziffer 12 bezeichnet eine Hauptspeichereinheit (MSU), die durch einen internen Bus 14 mit der zentralen Verarbeitungseinheit 10 verbunden ist. Die Hauptspeichereinheit 12 speichert darin eine Verbindungstabelle 22, eine Hilfsver bindungstabelle 24 und eine Seitentabelle 26, die für die Adreßübersetzungseinheit 18 verwendet werden. Selbstverständlich ist ein als ein realer Speicherraum verwendetes Speichergebiet innerhalb der Hauptspeichereinheit 12 vorgesehen, und ein entsprechendes Speichergebiet wird, wann immer notwendig, von einer externen Speichereinheit, wie z. B. einer Magnetplatte, entsprechend einem virtuellen Raum umgespeichert oder umgelagert.
  • Fig. 9A und 9B sind strukturelle Blockdiagramme, die die erste bevorzugte Ausführungsform der Hardwarekonfiguration des Adreßübersetzungsmechanismus zeigen, der in der in Fig. 8 gezeigten zentralen Verarbeitungseinheit 10 angeordnet ist. In dieser Ausführungsform wird als ein Beispiel eine Adreßübersetzung einer 64-Bit-Virtuelle-Adresse genommen. In diesem Fall ist die erste bevorzugte Ausführungsform in zwei Zeichnungen der Fig. 9A und 9B veranschaulicht.
  • In Fig. 9A wird die 64-Bit-Virtuelle-Adresse als das Übersetzungsobjekt durch ein Segmentnummer-Halteregister 28, ein Seitenindex-Halteregister 30 und ein Seiten-Offset-Halteregister 32 gehalten. Mit anderen Worten weist die virtuelle Adresse als das Übersetzungsobjekt in der in Fig. 9A gezeigten Ausführungsform eine 42-Bit-Segmentnummer 60, einen 10- Bit-Seitenindex 62 und einen 12-Bit-Seiten-Offset 64 auf, wie in einem Bitformat von Fig. 10 gezeigt ist.
  • Der Seitenindex 62 und der Seiten-Offset 64 haben hier das gleiche Bitformat wie das der in Fig. 1 gezeigten herkömmlichen 32-Bit-Virtuelle-Adresse, und nur die Segmentnummer 60 ist auf 42 Bits erweitert.
  • Nun wieder auf Fig. 9A verweisend, ist eine Hash-Erzeugungsschaltung 34 nach dem Segmentnummer-Halteregister 28 angeordnet. Die Hash-Erzeugungsschaltung 34 gibt einen Teil der Segmentnummer der virtuellen Adresse, d. h. 28 Bits hoher Ordnung in dieser Ausführungsform, in der 42-Bit-Segmentnummer 60 als einen Hash-Parameter ein und erzeugt eine Hash-Adresse. Eine Addierschaltung 36 ist nach der Hash-Erzeugungsschaltung 34 angeordnet und addiert die von der Hash-Erzeugungsschaltung 34 erhaltene Hash-Adresse zu den 14 Bits niedrigerer Ordnung des Segmentnummer-Halteregisters 28.
  • Die durch die Hash-Erzeugungsschaltung 34 erzeugte Hash- Adresse wird eine Basisadresse der Verbindungstabelle 22, die mit Verweis auf die in Fig. 8 dargestellte Hauptspeichereinheit 12 dargestellt ist, welche durch eine nächste Verbindungstabelle-Wiedergewinnungsschaltung 38 wiedergewonnen werden soll. Die 14 Bits niedrigerer Ordnung der Segmentnummer 60, die durch die Addierschaltung 36 zu der Hash-Adresse addiert werden sollen, werden ein Offset der Verbindungstabelle 22 für die Basisadresse.
  • In Fig. 9B gewinnt die Verbindungstabelle-Wiedergewinnungsschaltung 38 die in der Hauptspeichereinheit 12 gespeicherte Verbindungstabelle 22 durch die von der Additionsschaltung 36 erhaltene Tabellenadresse wieder und erhält den Verbindungstabelleneintrag. Der durch das Wiedergewinnen der Verbindungstabelle 22 durch die Verbindungstabelle-Wiedergewinnungsschaltung 38 erhaltene Verbindungstabelleneintrag enthält die in Fig. 11 dargestellte Information, die unten beschrieben wird.
  • In Fig. 11 weist der von der Verbindungstabelle 22 erhaltene Verbindungstabelleneintrag ein Bitformat von 128 Bits auf. Mit anderen Worten weist er eine Segmentnummer 67-1 hoher Ordnung mit 28 Bits, eine 36-Bit-Seitentabellebasis 68, eine 16-Bit-Prozeß-ID, ein 12-Bit-Flag 72 und einen 36-Bit- Verbindungszeiger 74 auf.
  • Die Segmentnummer 67-1 hoher Ordnung repräsentiert hier die Etikettinformation der zu übersetzenden virtuellen Adresse und speichert eine Information entsprechend der Segmentnummer mit 28 Bits hoher Ordnung in der 42-Bit-Segmentnummer der virtuellen Adresse. Das 12-Bit-Flag wird in einem Gebiet eines geeigneten Steuerflags verwendet. Ferner wird der Verbindungszeiger 74 zum Wiedergewinnen der Hilfsverbindungstabelle 24 verwendet. Übrigens wird die Prozeß-ID 70 in der in Fig. 9A und 9B gezeigten ersten Ausführungsform nicht verwendet und ist ein leeres Gebiet.
  • Wieder auf Fig. 9A und 9B verweisend, wird die Segmentnummer 67-1 hoher Ordnung in dem Verbindungstabelleneintrag, der von der von der Verbindungstabelle-Wiedergewinnungsschaltung 38 erhaltenen Verbindungstabelle 22 erhalten wird und in Fig. 11 gezeigt ist, auf den Komparator 40 angewandt und wird mit der Segmentnummer mit 28 Bits hoher Ordnung in dem Segmentnummer-Halteregister 28 verglichen. Wenn durch den Komparator 40 die Koinzidenz- oder Übereinstimmungsausgabe erhal ten wird, wird ein Steuersignal an eine Auswahlschaltung 42 ausgegeben, und zur gleichen Zeit wird eine Seitentabellenbasis 68 in dem Verbindungstabelleneintrag zu dieser Zeit, der von der Verbindungstabelle-Wiedergewinnungsschaltung 38 erhalten wird und in Fig. 11 gezeigt ist, als eine korrekte Adresse an die Addierschaltung 50 ausgegeben.
  • Die Addierschaltung 50 addiert den durch das Seitenindex- Halteregister 30 gehaltenen 10-Bit-Seitenindex zu der durch die Auswahlschaltung 42 erhaltenen Seitentabellenadresse, um eine Tabellenadresse zu erzeugen, und gewinnt die Seitentabelle 26 der in Fig. 8 gezeigten Hauptspeichereinheit 12 durch die Seitentabelle-Wiedergewinnungsschaltung 52 wieder. Wenn die Seitentabelle 26 wiedergewonnen ist, kann der in Fig. 12 gezeigte Seitentabelleneintrag erhalten werden.
  • Der in Fig. 12 gezeigte Seitentabelleneintrag weist ein Bitformat mit 64 Bits auf, und eine Seitenrahmennummer 84 ist in den 36 Bits hoher Ordnung gespeichert, und ein Flag 85 ist in den 28 Bits niedrigerer Ordnung gespeichert.
  • Wieder auf Fig. 9A und 9B verweisend, wird die Seitenrahmennummer 84, die durch Wiedergewinnen der Seitentabelle 26 durch die Seitentabelle-Wiedergewinnungsschaltung 52 erhalten wird und in Fig. 12 dargestellt ist, durch das Seitenrahmennummer-Halteregister 54 gehalten. Zur gleichen Zeit wird ein Seiten-Offset von dem Seiten-Offset-Halteregister 32 durch das Seiten-Offset-Halteregister 56 gehalten, und eine reale Adresse wird durch die Inhalte erzeugt, die durch das Seitenrahmennummer-Halteregister 54 und das Seiten-Offset-Halteregister 56 gehalten werden.
  • Wenn das Vergleichsergebnis zwischen der Segmentnummer hoher Ordnung, die von dem Verbindungstabelleneintrag der Verbindungstabelle 22 erhalten wird, und der Segmentnummer hoher Ordnung von dem Segmentnummer-Halteregister 28 durch den Komparator 40 nicht Übereinstimmung ist, wird die Tabellenwiedergewinnung der Hilfsverbindungstabelle 24, die in der in Fig. 8 gezeigten Hauptspeichereinheit 12 angeordnet ist, durch die Auswahlschaltung 44, die Hilfsverbindungstabelle- Wiedergewinnungsschaltung 46 und den Komparator 48 ausgeführt.
  • Mit anderen Worten wird, wenn das einer Ungleichheit entsprechende Steuersignal durch den Komparator 40 durch die Auswahlschaltung 42 an die Auswahlschaltung 44 gegeben wird, der Verbindungszeiger 74 in dem zu dieser Zeit durch die Verbindungstabelle-Wiedergewinnungsschaltung 38 erhaltenen und in Fig. 11 gezeigten Verbindungstabelleneintrag ausgewählt, und der Hilfsverbindungstabelleneintrag wird durch Wiedergewinnen der Hilfsverbindungstabelle 24 der Hauptspeichereinheit 12 durch die Hilfsverbindungstabelle-Wiedergewinnungsschaltung 46 wiedergewonnen.
  • Der von der Hilfsverbindungstabelle 24 erhaltene Hilfsverbindungstabelleneintrag hat exakt den gleichen Aufbau wie derjenige des Verbindungstabelleneintrags der Verbindungstabelle 22, die in Fig. 11 gezeigt ist. Deshalb vergleicht der Komparator 48 die Segmentnummer hoher Ordnung als die Etikettinformation der virtuellen Adresse in dem Hilfsverbindungstabelleneintrag, der durch die Hilfsverbindungstabelle- Wiedergewinnungsschaltung 46 von der Hilfsverbindungstabelle 24 wiedergewonnen wurde, mit der Segmentnummer hoher Ordnung des Segmentnummer-Halteregisters 28, und, falls sie miteinander übereinstimmen, wird die Seitentabellenbasis als korrekt beurteilt und durch die Auswahlschaltung 42 an die Addierschaltung 50 ausgegeben.
  • Die Wiedergewinnungsverarbeitung der Hilfsverbindungstabelle 24 durch die Hilfsverbindungstabelle-Wiedergewinnungsschaltung 46 und den Komparator 48 wird wiederholt ausgeführt, bis die korrekte Seitentabellenadresse erhalten wird. Wenn übrigens durch die Wiedergewinnungsoperation der Hilfsverbindungstabelle 24 "ungültig" detektiert wird, bedeutet dies, daß in der Adreßübersetzung ein Fehler aufgetreten ist. Daher wird die Adreßübersetzung eingestellt. Die Addierschaltungen 36 und 50, die in Fig. 9A und 9B gezeigt sind, können durch ODER-Schaltungen ersetzt werden.
  • Fig. 13A und 13B sind erklärende Darstellungen, die die Übersetzungsfunktion von der virtuellen Adresse in die reale Adresse durch die in Fig. 9A und 9B gezeigte Ausführungsform darstellen.
  • In Fig. 13A und 13B wird zuerst die 64-Bit-Virtuelle- Adresse 200 als das Übersetzungsobjekt gehalten, und diese virtuelle Adresse 200 weist die Segmentnummer 60, den Seitenindex 62 und den Seiten-Offset 64 auf.
  • In einer Adreßübersetzung wird zuerst die Segmentnummer hoher Ordnung 60-1 der 28 Bits hoher Ordnung in der Segmentnummer 60 der virtuellen Adresse 200 als ein Hash-Parameter in die Hash-Erzeugungsschaltung 34 eingegeben, um die Hash- Adresse 65 zu erzeugen. Diese Hash-Adresse 65 liefert die Basisadresse der Verbindungstabelle 22. Als nächstes addiert die Addierschaltung 36 die Segmentnummer niedrigerer Ordnung 60-2 als die 14 Bits niedrigerer Ordnung der Segmentnummer 60, um die Tabellenadresse entsprechend der Verbindungstabelle 22 zu erzeugen. Die Segmentnummer niedrigerer Ordnung 60-2, die durch die Addierschaltung 36 addiert werden soll, ist der Offset zu der Basisadresse der Verbindungstabelle 22, die durch die Hash-Adresse 65 bestimmt ist. Da die Verbindungstabelle 22 hierdurch den Zugriff durch die 14-Bit- Offset-Adresse akzeptiert, beträgt die Zahl von Einträgen 16K, und die Bitgröße jedes Eintrags beträgt 128 Bits.
  • Der Verbindungstabelleneintrag (LTE) 66 kann durch Wiedergewinnen der Verbindungstabelle 22 durch die Tabellenadresse erhalten werden, die durch die Addierschaltung 36 erhalten wird. Wie in Fig. 11 gezeigt ist, enthält der Verbindungstabelleneintrag 66 die Segmentnummer hoher Ordnung 67-1 als die Etikettinformation der virtuellen Adresse, die Seitentabellenbasis 68 und den Verbindungszeiger 74.
  • Die Segmentnummer hoher Ordnung 67-1 in dem Verbindungstabelleneintrag 66 der Verbindungstabelle 22 wird an den Komparator 40 gegeben und mit der Segmentnummer hoher Ordnung 60-1 in der virtuellen Adresse 20 verglichen. Wenn durch den Komparator 48 Übereinstimmung erhalten wird, wird die Seitentabellenbasis 68 in dem Verbindungstabelleneintrag 66 als korrekt beurteilt und mittels einer Schaltoperation der Auswahlschaltung 42 an die Addierschaltung 50 ausgegeben.
  • Wenn das Ergebnis eines Vergleichs durch den Komparator 40 in dem Komparator 48 ungleich ist, wird die Hilfsverbindungstabelle 24 durch den Verbindungszeiger 74 in dem Verbindungstabelleneintrag 66 wiedergewonnen, um den Hilfsverbindungstabelleneintrag 76 zu bestimmen, indem die Hilfsverbindungstabelle 24 durch den Verbindungszeiger 74 in dem Verbindungstabelleneintrag 66 durch eine Schaltoperation der Auswahlschaltung 42 wiedergewonnen wird. Dieser Hilfsverbindungstabelleneintrag 76 hat den gleichen Aufbau wie derjenige des Verbindungstabelleneintrags 66 der in Fig. 11 gezeigten Verbindungstabelle 22, und die Segmentnummer hoher Ordnung 78-1 in ihm wird durch den Komparator 48 mit der Segmentnummer hoher Ordnung 60-1 in der virtuellen Adresse 200 verglichen.
  • Wenn in dem Komparator 48 als Ergebnis dieses Vergleichs Übereinstimmung erhalten wird, wird die Seitentabellenbasisadresse 80 in dem Hilfsverbindungstabelleneintrag 76 als korrekt beurteilt und durch eine Schaltoperation der Auswahlschaltung 44 an die Addierschaltung 50 ausgegeben. Wenn das Ergebnis eines Vergleichs durch den Komparator 48 nicht Übereinstimmung ist, wird die Hilfsverbindungstabelle 24 wieder durch Verwenden des Verbindungszeigers in dem Hilfsverbindungstabelleneintrag 76 wiedergewonnen, um den nächsten Hilfsverbindungstabelleneintrag zu bestimmen. Eine Wiedergewinnung der Hilfsverbindungstabelle 24 wird somit wiederholt, bis das Ergebnis eines Vergleichs in dem Komparator 48 Übereinstimmung erweist und die korrekte Seitentabellenbasisadresse 80 erhalten wird.
  • Die Addierschaltung 50 addiert den Seitenindex 62 in der virtuellen Adresse 200 zu der korrekten Seitentabellenbasis 68, die von dem Verbindungstabelleneintrag der Verbindungstabelle 22 erhalten wird, oder zu der korrekten Seitentabellenbasisadresse 80, die von dem Hilfsverbindungstabelleneintrag 76 erhalten wird, und die Tabellenadresse der Seitentabelle 26 wird erzeugt. Obwohl in der Praxis die Addierschaltung 50 eine Schaltung ist, ist sie übrigens zur einfachen Erklärung in zwei Teile geteilt.
  • Die Seitentabelle 26 wird durch die durch die Addierschaltung 50 erhaltene Tabellenadresse wiedergewonnen und liefert den Seitentabelleneintrag 82. Dieser Seitentabelleneintrag 82 enthält die Seitenrahmennummer 84, wie in Fig. 12 gezeigt ist. Diese Seitenrahmennummer 84 wird bei dem Teil hoher Ordnung der 48-Bit-Reale-Adresse 300 gehalten, und zur gleichen Zeit wird der Seiten-Offset 64 in der virtuellen Adresse 200 durch den Teil niedrigerer Ordnung der realen Adresse 300 gehalten, wodurch die reale Adresse 300 erzeugt wird.
  • Die Tabellenadresse von der Addierschaltung 50 weist hier 10 Bits in der gleichen Weise wie der Seitenindex 62 auf. Da her beträgt die Zahl von Einträgen der Seitentabelle 26 1.024, und die Bitgröße für jeden Eintrag beträgt 64 Bits, wie in Fig. 12 gezeigt ist.
  • Fig. 14A und 14B sind strukturelle Blockdiagramme, die eine Ausführungsform der Hardwarekonfiguration der Adreßübersetzungseinheit gemäß der zweiten bevorzugten Ausführungsform der vorliegenden Erfindung zeigen. In dieser Ausführungsform werden der virtuelle Raum und der reale Raum für jeden Prozeß gebildet. In diesem Fall ist ferner die zweite bevorzugte Ausführungsform in zwei Zeichnungen der Fig. 14A und Fig. 14B veranschaulicht.
  • In Fig. 14A und 14B besteht der Unterschied dieser Ausführungsform von der ersten Ausführungsform darin, daß ein Prozeß-ID-Halteregister 90 zum Spezifizieren eines Prozesses von neuem oder neu angeordnet ist. Neben der Segmentnummer hoher Ordnung (28 Bits) von dem Segmentnummer-Halteregister 28 als dem Hash-Parameter gibt die Hash-Erzeugungsschaltung 34 die 26-Bit-Prozeß-ID von dem Prozeß-ID-Halteregister 90 ein und erzeugt die Hash-Adresse.
  • Die in Fig. 11 gezeigte Prozeß-ID 70 ist als die effektiven Daten in dem Verbindungstabelleneintrag gespeichert, der von der in der Hauptspeichereinheit angeordneten Verbindungstabelle erhalten wird, um durch die Verbindungstabelle- Wiedergewinnungsschaltung 38 wiedergewonnen zu werden. Der Komparator 40 vergleicht deshalb die Segmentnummer hoher Ordnung in dem durch die Wiedergewinnung der Verbindungstabelle durch die Verbindungstabelle-Wiedergewinnungsschaltung 38 erhaltenen Verbindungstabelleneintrag mit der Segmentnummer hoher Ordnung des Segmentnummer-Halteregisters 28, um zu beurteilen, ob sie miteinander übereinstimmen oder nicht. Zur gleichen Zeit vergleicht der Komparator 40 die von dem Verbindungstabelleneintrag erhaltene Prozeß-ID mit der Prozeß-ID von dem Prozeß-ID-Halteregister 90, um ihre Übereinstimmung zu untersuchen. Wenn Übereinstimmung von sowohl den Prozeß- IDs als auch den Segmentnummern hoher Ordnung erhalten wird, beurteilt der Komparator 48, daß die Seitentabellenbasisadresse in dem zu dieser Zeit von der Verbindungstabelle- Wiedergewinnungsschaltung 38 erhaltenen Verbindungstabelleneintrag korrekt ist, und gibt sie durch eine Schaltoperation der Auswahlschaltung 42 an die Addierschaltung 50 aus.
  • Was die Wiedergewinnung der Hilfsverbindungstabelle 24 der Hauptspeichereinheit mit der Auswahlschaltung 44, der Hilfsverbindungstabelle-Wiedergewinnungsschaltung 46 und dem Komparator 48 anbetrifft, wird die Prozeß-ID als die effektiven Daten in dem Hilfsverbindungstabelleneintrag in der gleichen Weise wie in dem Fall der Verbindungstabelle 22 gespeichert, und der Komparator 48 gibt die Seitentabellenbasisadresse in dem Hilfsverbindungstabelleneintrag an die Addierschaltung 50 als korrekt aus, wenn das Übereinstimmungsergebnis zwischen der Segmentnummer hoher Ordnung und der Prozeß- ID erhalten werden kann. Der Rest ist der gleiche wie in der in Fig. 9A und 9B gezeigten ersten Ausführungsform.
  • Fig. 15 ist eine erklärende Darstellung, die die Beziehung zwischen dem virtuellen Speicherraum und dem realen Speicherraum zeigt, die für jeden Prozeß in der in Fig. 14A und 14B gezeigten zweiten Ausführungsform eingerichtet werden.
  • In der in Fig. 15 gezeigten Ausführungsform sind drei Prozesse, d. h. Prozesse ID1 bis ID3, beispielhaft angeordnet dargestellt, und virtuelle Speicherräume 92-1 bis 92-3 sind für jeden Prozeß eingerichtet. Die Adreßübersetzungseinheit 18 übersetzt die virtuelle Adresse in die reale Adresse durch die Funktionen der jeweiligen Adreßübersetzungsprozeßabschnitte 94-1 bis 94-3, die durch die Prozeß-ID bezeichnet sind. Der auf der Hauptspeichereinheit 12 gesicherte reale Raum wird als unabhängige reale Speicherräume 96-1 bis 96-3 für jeden Prozeß gebildet.
  • Fig. 16 ist eine erklärende Darstellung, die die Hardwarekonfiguration des Computers entsprechend der in Fig. 14A und 14B gezeigten zweiten Ausführungsform darstellt. Die in der Speicherverwaltungseinheit 16 der zentralen Verarbeitungseinheit 10 angeordnete Adreßübersetzungseinheit 18 führt die Funktionen des Adreßübersetzungsprozeßabschnitts für jeden der drei Prozesse aus, wie in Fig. 15 gezeigt ist. Die Verbindungstabellen 22-1 bis 22-3, die Hilfsverbindungstabellen 24-1 bis 24-3 und die Seitentabellen 26-1 bis 26-3 sind auf der durch den internen Bus 14 mit der zentralen Verarbeitungseinheit 10 verbundenen Hauptspeichereinheit 12 so angeordnet, daß sie in dieser Reihenfolge den drei Prozessen entsprechen.
  • Dementsprechend kann die CPU 10 eine Parallelverarbeitung ohne Erzeugen eines Wettbewerbs zwischen den drei Prozessen während ihrer Adreßübersetzung ausführen. In der in Fig. 16 dargestellten Ausführungsform ist nur eine zentrale Verarbeitungseinheit 10 angeordnet dargestellt, aber eine Mehr-CPU- Konfiguration unter Verwendung einer Vielzahl von CPUs kann ebenfalls verwendet werden.
  • Fig. 17A und 17B sind erklärende Darstellungen, die die Adreßübersetzungsfunktion von der 64-Bit-Virtuelle-Adresse in die reale Adresse in der in Fig. 14A und 14B gezeigten zweiten Ausführungsform darstellen. In diesem Fall ist die Adreßübersetzungsfunktion in zwei Zeichnungen der Fig. 17A und 17B veranschaulicht.
  • In Fig. 17A und 17B wird die Prozeß-ID 90 zusätzlich zu der 64-Bit-Virtuelle-Adresse 20 als das Übersetzungsobjekt gehalten, und die Prozeß-ID 90 und die Segmentnummer 60-1 hoher Ordnung in der virtuellen Adresse 20 werden als die Hash- Parameter in die Hash-Erzeugungsschalter 34 eingegeben. Die Hash-Erzeugungsschaltung 34 erzeugt die Hash-Adresse 65 als die Basisadresse der Verbindungstabelle 22.
  • Anschließend addiert die Addierschaltung 36 die Segmentnummer niedrigerer Ordnung 60-2 als den Offset zu der Basisadresse 65 der Verbindungstabelle 22 und erzeugt die Tabellenadresse, und der Verbindungstabelleneintrag 66 wird durch Wiedergewinnen der Verbindungstabelle 22 erhalten. Dieser Verbindungstabelleneintrag 66 enthält die Segmentnummer hoher Ordnung 67-1 und die Prozeß-ID 70, wie in Fig. 11 dargestellt ist. Der Komparator 40 vergleicht daher die Nummer 60-1 hoher Ordnung der zu übersetzenden virtuellen Adresse 200 mit der Prozeß-ID 90, und die Seitentabellenbasisadresse 68 in dem Verbindungstabelleneintrag 66 wird als korrekt beurteilt und an die Addierschaltung 50 ausgegeben, wenn sie miteinander übereinstimmen.
  • Wenn zumindest eine der Prozeß-ID und der Segmentnummer hoher Ordnung in der Verarbeitung durch den Komparator 40 ungleich ist, wird die Hilfsverbindungstabelle 24 durch den Verbindungszeiger 47 in dem Verbindungstabelleneintrag 66 wiedergewonnen und der Hilfsverbindungstabelleneintrag 76 erhalten. Die Segmentnummer hoher Ordnung 78-1 in dem Hilfsverbindungstabelleneintrag 76 und die Prozeß-ID 98 werden mit der Segmentnummer hoher Ordnung 60-1 der virtuellen Adresse 200 und der ID 90 verglichen, und die Tabelle wird wiederholt wiedergewonnen, bis diese beiden miteinander übereinstimmen und die korrekte Seitentabellenbasis 80 erhalten werden kann.
  • Die von der Verbindungstabelle 22 erhaltene korrekte Seitentabellenbasis 68 oder die durch die Verbindungstabelle 24 erhaltene korrekte Seitentabellenbasis 80 wird durch die Addierschaltung 50 unter Verwendung des Seitenindex in der virtuellen Adresse 200 als der Offset addiert, um die Tabellenadresse zu erzeugen, und die Seitentabelle 26 wird wiedergewonnen.
  • Der Seitentabelleneintrag 82 kann von der Seitentabelle 26 erhalten werden, und der Seitentabelleneintrag 82 enthält die Seitenrahmennummer 84, wie in Fig. 12 gezeigt ist. Diese Rahmennummer 84 wird deshalb in der hohen Ordnung der realen Adresse 300 gespeichert, und zur gleichen Zeit wird der Seiten-Offset 64 in der virtuellen Adresse 200 in der niedrigeren Ordnung der realen Adresse 300 gespeichert. Auf diese Weise wird schließlich die 48-Bit-Reale-Adresse 300 erzeugt.
  • In der in Fig. 9A und 9B gezeigten ersten Ausführungsform und in der in Fig. 14A und 14B gezeigten zweiten Ausführungsform sind hier die Auswahlschaltung 44, die Hilfsverbindungstabelle-Wiedergewinnungsschaltung 46 zum Wiedergewinnen der Hilfsverbindungstabelle und der Komparator 48 durch Hardware gebildet. Als noch eine weitere Ausführungsform der vorliegenden Erfindung können jedoch diese Schaltungsteile durch Software ausgeführt sein, und die Hardwarelast auf der Adreßübersetzungseinheit 18 kann reduziert werden.
  • Die oben angegebenen Ausführungsformen behandeln den Fall, in dem die 32 Bits überschreitende 64-Bit-Virtuelle- Adresse als ein Beispiel genommen ist. Die virtuelle Adresse kann jedoch natürlich eine virtuelle Adresse mit 36 Bits, 48 Bits oder 128 Bits sein. Obgleich die oben angegebenen Ausführungsformen den Fall behandeln, in dem das Bitformat der virtuellen Adresse beispielhaft an das Bitformat der herkömmlichen 32-Bit-Virtuelle-Adresse angepaßt ist, um Kompatibilität einzurichten, kann es ebenfalls an das Bitformat einer virtuellen Adresse unterhalb 32 Bits, wie z. B. eine virtuelle Adresse mit 24 Bits oder 16 Bits, angepaßt sein.
  • Was die Erzeugung der Hash-Adresse anbetrifft, werden die 28 Bits hoher Ordnung der Segmentnummer als der Hash-Parameter eingegeben, um die Hash-Adresse zu erhalten, die die Basisadresse der Verbindungstabelle 22 repräsentiert, und die verbleibenden 14 Bits niedrigerer Ordnung der Segmentnummer werden als der Offset zu der Tabellenbasisadresse addiert, um die Verbindungstabelle 22 wiederzugewinnen. Die Zahl der Bits hoher Ordnung, die als der Hash-Parameter einzugeben sind, und die Zahl der Bits niedrigerer Ordnung, die als der Offset zu verwenden sind, können geeignet ausgewählt werden.
  • Gemäß den mehreren bevorzugten Ausführungsformen der vorliegenden Erfindung, die oben angegeben sind, kann eine virtuelle Adresse analog zum virtuellen Speichersystem der herkömmlichen 32-Bit-Virtuelle-Adresse in einem virtuellen Speichersystem verwendet werden, das eine virtuelle Adresse mit mehr als 32 Bits verwendet, wie z. B. eine 64-Bit-Virtuelle- Adresse. Selbst wenn der Adreßraum auf 64 Bits erweitert ist, ist es dementsprechend möglich, das Konzept des Segments in der gleichen Weise wie in dem System nach dem Stand der Technik einzuführen und Kompatibilität mit dem virtuellen Speichersystem einfach aufrechtzuerhalten, das die virtuelle Adresse unterhalb 32 Bits verwendet.
  • Sobald die Tabelle durch die Hash-Adresse in der Adreßübersetzung wiedergewonnen ist, wird sofort ein Adreßvergleich ausgeführt, um zu bestätigen, ob der Wert des Tabellenbasisadreßwertes niedrigerer Ordnung korrekt ist. Im Vergleich zu einer Adreßübersetzung, die die Hash-Adresse verwendet, in der ein Adreßvergleich ausgeführt wird, nachdem die Tabelle zweimal wiedergewonnen ist, kann dementsprechend die Adreßübersetzung bei einer höheren Rate ausgeführt werden.

Claims (11)

1. Adreßübersetzungsverfahren zum Übersetzen einer virtuellen Adresse in eine reale Adresse, enthaltend:
einen Virtuelle-Adresse-Halteschritt zum Halten, als ein Übersetzungsobjekt, einer virtuellen Adresse mit einer Segmentnummer (60), einem Seitenindex (62) und einem Seiten- Offset (64) und mit 32 Bits überschreitenden Bits auf eine solche Weise, um einer Struktur zu entsprechen, worin ein virtueller Raum in Segmenteinheiten geteilt ist und jede Segmenteinheit in Seiteneinheiten entsprechend einem realen Raum geteilt ist und Kompatibilität mit einem virtuellen Speichersystem, das eine virtuelle Adresse mit 32 Bits oder weniger verwendet, aufrechterhalten wird, indem der Seitenindex (62) und der Seiten-Offset (64) der virtuellen Adresse mit dem gleichen Aufbau wie diejenigen der virtuellen Adresse mit 32 Bits oder weniger gebildet werden;
einen Hash-Verarbeitungsschritt zum Eingeben einer vorbestimmten Anzahl der Bits höherer Ordnung der Segmentnummer in eine Hash-Erzeugungsschaltung (34) und Erzeugen einer Hash- Adresse, um als eine Basisadresse einer Verbindungstabelle (22) zu dienen;
einen Verbindungstabelle-Wiedergewinnungsschritt zum Wiedergewinnen der Verbindungstabelle (22) durch Addieren einer vorbestimmten Anzahl Bits von Bits niedrigerer Ordnung der Segmentnummer (60) als ein Offset zu der Hash-Adresse, um dadurch eine Etikettinformation der virtuellen Adresse, eine Basisadresse einer Seitentabelle (26) und einen Verbindungszeiger zu erhalten, der zum Wiedergewinnen einer Hilfsverbindungstabelle (24) verwendet wird, Vergleichen der Etikettinformation der virtuellen Adresse mit einer vorbestimmten Anzahl Bits hoher Ordnung der Segmentnummer und Ausgeben der Basisadresse der Seitentabelle (26) als eine korrekte Basisadresse, falls das Ergebnis eines Vergleichs Übereinstimmung erweist;
einen Hilfsverbindungstabelle-Wiedergewinnungsschritt zum Wiedergewinnen der Hilfsverbindungstabelle (24) durch den Verbindungszeiger, falls die Etikettinformation der virtuellen Adresse, die durch den Verbindungstabelle-Wiedergewin nungsschritt erhalten wird, nicht mit der vorbestimmten Zahl von Bits hoher Ordnung der Segmentnummer übereinstimmt, um dadurch eine Etikettinformation einer virtuellen Adresse, eine Basisadresse einer Seitentabelle und einen Verbindungszeiger zu erhalten, und Fortsetzen einer Wiedergewinnung der Hilfsverbindungstabelle (24) auf der Basis des Verbindungszeigers, bis die Basisadresse der Seitentabelle (26) entsprechend der Segmentnummer erhalten werden kann;
einen Seitentabelle-Wiedergewinnungsschritt zum Addieren, als ein Offset, eines Teils der virtuellen Adresse zu der Basisadresse der Seitentabelle (26), die in dem Verbindungstabelle-Wiedergewinnungsschritt oder in dem Hilfsverbindungstabelle-Wiedergewinnungsschritt erhalten wurde, um die Seitentabelle (26) wiederzugewinnen, und Erhalten einer Seitenrahmennummer; und
einen Reale-Adresse-Erzeugungsschritt zum Kombinieren eines Teils der virtuellen Adresse als ein Offset mit der in dem Seitentabelle-Wiedergewinnungsschritt erhaltenen Seitenrahmennummer und Erzeugen einer realen Adresse.
2. Adreßübersetzungsverfahren nach Anspruch 1, worin die virtuelle Adresse eine 64-Bit-Virtuelle-Adresse ist.
3. Adreßübersetzungsverfahren nach Anspruch 1, worin der Seitentabelle-Wiedergewinnungsschritt durch Addieren des Seitenindex (62) der durch den Virtuelle-Adresse-Halteschritt gehaltenen virtuellen Adresse als ein Offset zu der Basisadresse der Seitentabelle (26), die in dem Verbindungstabelle-Wiedergewinnungsschritt oder in dem Hilfsverbindungstabelle-Wiedergewinnungsschritt erhalten wurde, die Seitentabelle (26) wiedergewinnt.
4. Adreßübersetzungsverfahren nach Anspruch 1, worin der Reale-Adresse-Erzeugungsschritt die reale Adresse durch Kombinieren des Seiten-Offsets (64) der durch den Virtuelle- Adresse-Halteschritt gehaltenen virtuellen Adresse mit der durch den Seitentabelle-Wiedergewinnungsschritt erhaltenen Seitenrahmennummer erzeugt.
5. Adreßübersetzungsverfahren nach einem der vorhergehenden Ansprüche, ferner enthaltend einen Prozeß-ID-Halteschritt zum Halten einer ID-Nummer eines Prozesses für eine Adreßübersetzung, worin der Verbindungstabelle-Wiedergewinnungsschritt ferner die Prozeß-ID von der Verbindungstabelle wiedergewinnt, die Prozeß-ID mit der Prozeß-ID vergleicht, die durch den Prozeß-ID- Halteschritt gehalten wird, und die Basisadresse der Seitentabelle (26) als eine korrekte Basisadresse nur ausgibt, wenn sowohl der Etikettinformationsvergleich als auch der Prozeß- ID-Vergleich übereinstimmend sind.
6. Adreßübersetzungsgerät zum Übersetzen einer virtuellen Adresse in eine reale Adresse mit:
einem Virtuelle-Adresse-Haltemittel zum Halten, als ein Übersetzungsobjekt, einer virtuellen Adresse mit einer Segmentnummer (60), einem Seitenindex (62) und einem Seiten- Offset (64) und mit 32 Bit überschreitenden Bits auf eine solche Weise, um einer Struktur zu entsprechen, worin ein virtueller Raum in Segmenteinheiten geteilt ist und jedes Segmentgebiet in Seiteneinheiten entsprechend einem realen Raum geteilt ist und Kompatibilität mit einem eine 32-Bit- Virtuelle-Adresse verwendenden virtuellen Speichersystem aufrechterhalten wird, indem der Seitenindex (62) und der Seiten-Offset (64) der 64-Bit-Virtuelle-Adresse mit dem gleichen Aufbau wie diejenigen der 32-Bit-Virtuelle-Adresse gebildet werden;
einem Hash-Erzeugungsmittel zum Eingeben einer vorbestimmten Zahl der Bits höherer Ordnung der Segmentnummer in eine Hash-Erzeugungsschaltung (34) und Erzeugen einer Hash- Adresse, um als eine Basisadresse einer Verbindungstabelle (22) zu dienen;
einem Verbindungstabelle-Wiedergewinnungsmittel zum Wiedergewinnen der Verbindungstabelle (22) durch Addieren einer vorbestimmten Anzahl Bits von Bits niedrigerer Ordnung der Segmentnummer (60) als ein Offset zu der Hash-Adresse, um dadurch eine Etikettinformation der virtuellen Adresse, eine Basisadresse einer Seitentabelle (26) und einen Verbindungszeiger zu erhalten, der zum Wiedergewinnen einer Hilfsverbindungstabelle (24) verwendet wird, Vergleichen der Etikettinformation der virtuellen Adresse mit einer vorbestimmten Zahl von Bits hoher Ordnung der Segmentnummer und Ausgeben der Basisadresse der Seitentabelle (26) als eine korrekte Basisadresse, falls das Vergleichsergebnis Übereinstimmung erweist;
einem Hilfsverbindungstabelle-Wiedergewinnungsmittel zum Wiedergewinnen der Hilfsverbindungstabelle (24) durch den Verbindungszeiger, falls die Etikettinformation der durch das Verbindungstabelle-Wiedergewinnungsmittel erhaltenen virtuellen Adresse nicht mit der vorbestimmten Zahl von Bits hoher Ordnung der Segmentnummer übereinstimmt, um dadurch eine Etikettinformation einer virtuellen Adresse, eine Basisadresse einer Seitentabelle und einen Verbindungszeiger zu erhalten, und Fortsetzen einer Wiedergewinnung der Hilfsverbindungstabelle (24) auf der Basis des Verbindungszeigers, bis die Basisadresse der Seitentabelle (26) entsprechend der Segmentnummer erhalten werden kann;
einem Seitentabelle-Wiedergewinnungsmittel zum Addieren, als ein Offset, eines Teils der virtuellen Adresse zu der Basisadresse der Seitentabelle (26), die durch das Verbindungstabelle-Wiedergewinnungsmittel oder durch das Hilfsverbindungstabelle-Wiedergewinnungsmittel erhalten wurde, um die Seitentabelle (26) wiederzugewinnen, und Erhalten einer Seitenrahmennummer; und
einem Reale-Adresse-Erzeugungsmittel zum Kombinieren eines Teils der virtuellen Adresse als ein Offset mit der Seitenrahmennummer, die durch das Seitentabelle-Wiedergewinnungsmittel erhalten wurde, und Erzeugen einer realen Adresse.
7. Adreßübersetzungsgerät nach Anspruch 6, worin die virtuelle Adresse eine 64-Bit-Virtuelle-Adresse ist.
8. Adreßübersetzungsgerät nach Anspruch 6, worin das Seitentabelle-Wiedergewinnungsmittel die Seitentabelle (26) durch Addieren des Seitenindex (62) der durch das Virtuelle- Adresse-Haltemittel gehaltenen virtuellen Adresse als ein Offset zu der Basisadresse der Seitentabelle (26) wiedergewinnt, die durch das Verbindungstabelle-Wiedergewinnungsmittel oder durch das Hilfsverbindungstabelle-Wiedergewinnungsmittel erhalten wurde.
9. Adreßübersetzungsgerät nach Anspruch 6, worin das Reale-Adresse-Haltemittel die reale Adresse durch Kombinieren des Seiten-Offsets (64) der durch das Virtuelle-Adresse- Haltemittel gehaltenen virtuellen Adresse mit der durch das Seitentabelle-Wiedergewinnungsmittel erhaltenen Seitenrahmennummer erzeugt.
10. Adreßübersetzungsgerät nach Anspruch 6, worin das Hilfsverbindungstabelle-Wiedergewinnungsmittel Software aufweist.
11. Gerät nach einem der Ansprüche 6 bis 10, ferner enthaltend ein Prozeß-ID-Haltemittel zum Halten einer ID-Nummer eines Prozesses für eine Adreßübersetzung, worin das Verbindungtabelle-Wiedergewinnungsmittel ferner die Prozeß-ID von der Verbindungstabelle wiedergewinnt und sie mit der durch das Prozeß-ID-Haltemittel gehaltenen Prozeß-ID vergleicht und die Basisadresse der Seitentabelle (26) als eine korrekte Basisadresse nur ausgibt, wenn sowohl der Etikettinformationsvergleich als auch der Prozeß-ID-Vergleich übereinstimmend sind.
DE69323863T 1993-02-05 1993-09-20 Verfahren und Vorrichtung zur Adressübersetzung Expired - Lifetime DE69323863T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5018335A JPH06231047A (ja) 1993-02-05 1993-02-05 アドレス変換方法および装置

Publications (2)

Publication Number Publication Date
DE69323863D1 DE69323863D1 (de) 1999-04-15
DE69323863T2 true DE69323863T2 (de) 1999-07-01

Family

ID=11968782

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69323863T Expired - Lifetime DE69323863T2 (de) 1993-02-05 1993-09-20 Verfahren und Vorrichtung zur Adressübersetzung

Country Status (4)

Country Link
US (1) US5584005A (de)
EP (1) EP0610618B1 (de)
JP (1) JPH06231047A (de)
DE (1) DE69323863T2 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820048B2 (ja) * 1995-01-18 1998-11-05 日本電気株式会社 画像処理システムとその記憶装置およびそのアクセス方法
JP2947111B2 (ja) * 1995-02-17 1999-09-13 日本電気株式会社 交換機のデータ引き継ぎ方法およびシステム
US5873123A (en) * 1996-06-25 1999-02-16 International Business Machines Corporation Processor and method for translating a nonphysical address into a physical address utilizing a selectively nonsequential search of page table entries
US5857080A (en) * 1996-09-10 1999-01-05 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
US6047365A (en) * 1996-09-17 2000-04-04 Vlsi Technology, Inc. Multiple entry wavetable address cache to reduce accesses over a PCI bus
US6014730A (en) * 1996-12-26 2000-01-11 Nec Corporation Dynamic adding system for memory files shared among hosts, dynamic adding method for memory files shared among hosts, and computer-readable medium recording dynamic adding program for memory files shared among hosts
US6014733A (en) * 1997-06-05 2000-01-11 Microsoft Corporation Method and system for creating a perfect hash using an offset table
US6049667A (en) * 1997-08-15 2000-04-11 International Business Machines Corporation Computer system, method of compiling and method of accessing address space with pointer of different width therefrom
US6785278B1 (en) * 1998-12-10 2004-08-31 International Business Machines Corporation Methods, systems and computer program products for hashing address values
US6463517B1 (en) * 2000-06-15 2002-10-08 Advanced Micro Devices, Inc. Apparatus and method for generating virtual addresses for different memory models
US6988263B1 (en) 2000-07-10 2006-01-17 International Business Machines Corporation Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
US6658416B1 (en) * 2000-07-10 2003-12-02 International Business Machines Corporation Apparatus and method for creating an indexed database of symbolic data for use with trace data of a computer program
US20020087824A1 (en) * 2000-12-29 2002-07-04 Hum Herbert H.J. System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US6938144B2 (en) * 2001-03-22 2005-08-30 Matsushita Electric Industrial Co., Ltd. Address conversion unit for memory device
US6671791B1 (en) * 2001-06-15 2003-12-30 Advanced Micro Devices, Inc. Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms
US6807616B1 (en) * 2001-08-09 2004-10-19 Advanced Micro Devices, Inc. Memory address checking in a proccesor that support both a segmented and a unsegmented address space
US7509473B2 (en) * 2003-08-27 2009-03-24 Adaptec, Inc. Segmented storage system mapping
JP2005242757A (ja) * 2004-02-27 2005-09-08 Hitachi Ltd ストレージシステム
US7707385B2 (en) * 2004-12-14 2010-04-27 Sony Computer Entertainment Inc. Methods and apparatus for address translation from an external device to a memory of a processor
US7852850B2 (en) * 2006-04-26 2010-12-14 Marvell Israel (M.I.S.L.) Ltd. Double-hash lookup mechanism for searching addresses in a network device
US8209488B2 (en) * 2008-02-01 2012-06-26 International Business Machines Corporation Techniques for prediction-based indirect data prefetching
US8166277B2 (en) * 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
US8161265B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for multi-level indirect data prefetching
US8161263B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for indirect data prefetching
US8161264B2 (en) * 2008-02-01 2012-04-17 International Business Machines Corporation Techniques for data prefetching using indirect addressing with offset
US8353018B2 (en) * 2008-11-13 2013-01-08 Yahoo! Inc. Automatic local listing owner authentication system
US9032181B2 (en) * 2009-05-19 2015-05-12 Vmware, Inc. Shortcut input/output in virtual machine systems
US10216642B2 (en) * 2013-03-15 2019-02-26 International Business Machines Corporation Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size
GB2547893B (en) * 2016-02-25 2018-06-06 Advanced Risc Mach Ltd Combining part of an offset with a corresponding part of a base address and comparing with a reference address
US10324838B2 (en) 2017-10-12 2019-06-18 International Business Machines Corporation Virtually addressable hardware global kernel segment table
CN109992529B (zh) * 2018-01-03 2021-07-16 华为技术有限公司 虚拟地址确定方法及装置、处理器、存储介质
US10877788B2 (en) * 2019-03-12 2020-12-29 Intel Corporation Processing vectorized guest physical address translation instructions
CN111367831B (zh) * 2020-03-26 2022-11-11 超睿科技(长沙)有限公司 翻译页表的深度预取方法、部件、微处理器及计算机设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4218743A (en) * 1978-07-17 1980-08-19 International Business Machines Corporation Address translation apparatus
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus
US4356549A (en) * 1980-04-02 1982-10-26 Control Data Corporation System page table apparatus
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
FR2600441B1 (fr) * 1986-06-18 1990-09-21 France Etat Unite de gestion de memoire
JP2507756B2 (ja) * 1987-10-05 1996-06-19 株式会社日立製作所 情報処理装置
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.

Also Published As

Publication number Publication date
US5584005A (en) 1996-12-10
JPH06231047A (ja) 1994-08-19
EP0610618B1 (de) 1999-03-10
DE69323863D1 (de) 1999-04-15
EP0610618A1 (de) 1994-08-17

Similar Documents

Publication Publication Date Title
DE69323863T2 (de) Verfahren und Vorrichtung zur Adressübersetzung
DE2227882C2 (de) Virtuelle Speicheranordnung
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE69132356T2 (de) Verfahren und Gerät zur Zeigerkompression in strukturierten Datenbanken
DE69427625T2 (de) Adressübersetzungsmechanismus für Rechnersystem mit virtuellen Speicher, der eine Vielzahl von Seitengrössen unterstützt
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE3805107C2 (de)
DE2131066C3 (de) Anordnung zum Adressieren eines Tabellenspeichers
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE69221356T2 (de) Flexible N-fach-Speicherverschachtelung
DE68928727T2 (de) Cachespeicheranlage zum Versorgen eines Festworts eines Befehlscodes mit variabler Länge und Befehlsabrufanlage
DE2346525A1 (de) Virtuelle speichereinrichtung
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2726488A1 (de) Adressenuebersetzungseinrichtung
DE2835989A1 (de) Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes
DE112013002938T5 (de) Übersetzen der Basistabelle von Speichern
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE3833933A1 (de) Informationsverarbeitungseinrichtung mit einer adressenerweiterungsfunktion
DE2758829C2 (de) Datenverarbeitungsanlage mit mehreren Prozessoren
DE69010739T2 (de) Verfahren und Vorrichtung zur Speicherzugriffsbeschleunigung unter Verwendung eines modifizierten LRU-Algorithmus.
DE69410660T2 (de) Instruktionsspeichersystem für RISC-Mikroprozessor, fähig zu relativen Progammzahleradressierung
DE112020000748T5 (de) Adresserzeugung zur hochleistungsverarbeitung von vektoren
DE112018003032T5 (de) Cachestruktur, die ein logisches verzeichnis verwendet

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE