DE19524925A1 - Address conversion system for memory management unit - Google Patents

Address conversion system for memory management unit

Info

Publication number
DE19524925A1
DE19524925A1 DE19524925A DE19524925A DE19524925A1 DE 19524925 A1 DE19524925 A1 DE 19524925A1 DE 19524925 A DE19524925 A DE 19524925A DE 19524925 A DE19524925 A DE 19524925A DE 19524925 A1 DE19524925 A1 DE 19524925A1
Authority
DE
Germany
Prior art keywords
page
address
real
virtual
size
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.)
Withdrawn
Application number
DE19524925A
Other languages
German (de)
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.)
GMD GmbH
Original Assignee
GMD GmbH
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 GMD GmbH filed Critical GMD GmbH
Priority to DE19524925A priority Critical patent/DE19524925A1/en
Publication of DE19524925A1 publication Critical patent/DE19524925A1/en
Withdrawn 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/1009Address translation using page tables, e.g. page table structures
    • G06F12/1018Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control

Abstract

The address conversion system allows a virtual address of a virtual address space, containing at least one page address, to be converted into a corresponding real address of a real address space, containing at least one page address. The virtual and real pages each correspond to a base page or a multiple of a base page and may have different sizes. The virtual address is used to address a memory with a number of entries, each designated by a label entered in a label field and having a data field holding at least one real page address and a page size identification field for the real page. When the label held in the label field corresponds to the virtual address the real page address held in the data field and the real page size read out.

Description

Die Erfindung betrifft ein Verfahren zum Umsetzen einer virtuellen Adresse in eine reale Adresse (auch physi­ sche Adresse). Ein Anwendungsbeispiel der Erfindung ist die Speicherverwaltungseinheit (Hardware) auch MMU (Memory Management Unit) genannt, bei der unter anderem die Adresse im virtuellen Speicher in eine Adresse des physischen oder Realspeichers umgesetzt wird.The invention relates to a method for implementing a virtual address into a real address (also physi address). An application example of the invention is the memory management unit (hardware) also MMU (Memory Management Unit) called, among others the address in virtual memory into an address of the physical or real memory is implemented.

MMUs (Memory Management Units) sind die hardwaremäßige Basis für virtuelle Speicher, Adreßräume, Paging und Schutzmechanismen. Sie sind somit für alle Anwendungen bedeutsam, die mit großen Datenmengen operieren (insbe­ sondere in verteilten Systemen oder Superrechnern) und/oder Sicherheitseigenschaften auf komplex aufgebauten Objekten benötigen.MMUs (Memory Management Units) are the hardware ones Basis for virtual storage, address spaces, paging and Protection mechanisms. They are therefore for all applications significant that operate with large amounts of data (esp especially in distributed systems or supercomputers) and / or Security properties on complex structures Objects.

Konventionelle MMUs teilen virtuelle Adreßräume typi­ scherweise in 4 KB oder 8 KB große Seiten auf. Die Ab­ bildung virtueller auf reale Adressen geschieht ent­ weder mit mehrstufig aufgebauten Page Tables oder einer Inverted Page Table. Üblicherweise wird die Adreßum­ setzung noch durch einen TLB (Translation Lookaside Buffer) oder virtuellen Cache beschleunigt.Conventional MMUs typically share virtual address spaces usually in 4 KB or 8 KB pages. The Ab formation of virtual on real addresses happens  neither with multilevel page tables or one Inverted page table. Usually the address still set by a TLB (Translation Lookaside Buffer) or virtual cache accelerated.

Inverted Page Tables (und auch viele mehrstufige Page Table Verfahren) lassen konventionellerweise nur eine einheitliche Seitengröße zu.Inverted Page Tables (and also many multi-level Page Table procedures) conventionally leave only one uniform page size too.

Bei konventionellen Page Tables wird eine virtuelle Adresse in mehreren Stufen umgesetzt. Jede Stufe arbei­ tet dabei mit einer Page Table, deren Einträge entweder auf Page Tables der nächsten Stufe oder (bei der letz­ ten Stufe) auf Datenseiten verweisen. Dabei haben Page Tables und Datenseiten in der Regel fest vorgegebene Größen 2i.With conventional page tables, a virtual address is implemented in several stages. Each level works with a page table, the entries of which either refer to page tables of the next level or (in the last level) to data pages. Page tables and data pages generally have predefined sizes 2 i .

Im folgenden sei anhand von Fig. 3 eine Umsetzschrift einer virtuellen (Binär-)Adresse v anhand einer Page Table mit der Adresse p betrachtet. Dazu wird v in einen höherwertigen Teil u (bestehend aus einer be­ stimmten Anzahl der höherwertigen Bits) und einen nie­ derwertigen Teil v′ (bestehend aus den niederwertigen Bits) aufgespalten. Vermittels u wird dann ein Eintrag der Page Table ausgewählt, der unter anderem eine neue Adresse p′ beinhaltet. A conversion font of a virtual (binary) address v using a page table with the address p is considered below with reference to FIG. 3. For this purpose, v is split into a higher-order part u (consisting of a certain number of higher-order bits) and a non-significant part v '(consisting of the lower-order bits). An entry in the page table is then selected by means of u, which includes, among other things, a new address p ′.

Inverted Page Tables bestehen aus einem Eintrag pro Kachel des Realspeichers, der jeweils die virtuelle Adresse der zugeordneten Seite des virtuellen Adreß­ raums enthält. Zugegriffen wird mit Hilfe einer Hash­ funktion (siehe Fig. 4).Inverted page tables consist of one entry per tile of real memory, each of which contains the virtual address of the assigned page of the virtual address space. Is accessed using a hash function (see Fig. 4).

Bei der Umsetzung der virtuellen Adresse v in die Real­ adresse r wird der niederwertige Teil w direkt übernom­ men. Der höherwertige Teil u wird durch die Hashfunk­ tion auf einen Wert p abgebildet, der sowohl die ver­ mutliche Kachel im Realspeicher identifiziert als auch zur Indizierung der invertierten Page Table benutzt wird. Wenn der entsprechende Eintrag die richtige vir­ tuelle Adresse u enthält, liegt ein Treffer vor. Andernfalls (in Fig. 4 nicht aufgeführt) müssen vermit­ tels Rehash oder Weiterkettung weitere Kacheln unter­ sucht werden, bis ein Treffer vorliegt oder auf Page Fault entschieden wird.When the virtual address v is converted into the real address r, the low-order part w is taken over directly. The higher-value part u is mapped to a value p by the hash function, which both identifies the presumed tile in the real memory and is used for indexing the inverted page table. If the corresponding entry contains the correct virtual address u, there is a hit. Otherwise (not shown in FIG. 4), further tiles must be examined by means of rehash or chaining, until a hit is obtained or a decision is made on page fault.

Hashed Page Tables (siehe Fig. 5) sind eine Variante des IPTs, wobei allerdings nicht mehr jeder Eintrag fest einer physischen Seite zugeordnet ist, sondern jeder Eintrag die physische Adresse der entsprechenden Seite enthält.Hashed page tables (see FIG. 5) are a variant of the IPT, although not every entry is permanently assigned to a physical page, but each entry contains the physical address of the corresponding page.

Aus Kostengründen kann nicht bei jedem Speicherzugriff eines Programms die MPT bzw. IPT oder HPT parsiert wer­ den. Dieser Overhead wird mit Hilfe eines speziellen Caches für die Adreßumsetzung vermieden, eines Transla­ tion Lookaside Buffers (TLB) . Normalerweise werden mehr als 90% aller Adreßumsetzungen zu Nullkosten durch TLB-Treffer erledigt. Nur bei einem TLB-Miss werden die Page Tables parsiert. For cost reasons, not every memory access of a program that parses the MPT or IPT or HPT the. This overhead is done with the help of a special Avails address translation caches, a transla tion Lookaside Buffers (TLB). Usually there will be more than 90% of all address conversions at zero cost TLB hit done. Only with a TLB miss will they Parsed page tables.  

Konventionelle TLBs weisen typischerweise 32 bis 256 Einträge auf, von denen jeder die Adreßumsetzung einer Seite beschreibt, d. h. eine Seitenadresse des Real­ speichers aufweist. Sie sind teilweise voll assoziativ, häufig aber nur 2- oder 4-Wege-assoziativ aufgebaut.Conventional TLBs typically range from 32 to 256 Entries, each of which is the address translation of a Page describes d. H. a page address of the real has memory. They are partially fully associative, but often only 2 or 4-way associative.

Konventionelle n-Wege assoziative TLBs operieren üb­ licherweise nur mit einer einheitlichen Seitengröße.Conventional n-way associative TLBs operate via only with a uniform page size.

Der Erfindung liegt die Aufgabe zugrunde, ein Adressen­ umsetzverfahren zu schaffen, das multiple Seitengrößen im virtuellen und realen Adreßraum unterstützt.The invention has for its object an address implementation process to create multiple page sizes supported in the virtual and real address space.

Insbesondere soll auf der Grundlage von Hashed Page Tables (HPTs) oder Inverted Page Tables (IPT) eine MMU konstruiert werden, die multiple Seitengrößen unter­ stützt. Varianten sollen möglichst auch bei anderen Page Tables eingesetzt werden können.In particular, on the basis of Hashed Page Tables (HPTs) or Inverted Page Tables (IPT) an MMU constructed using multiple page sizes supports. Variants should also be possible for others Page tables can be used.

Zur Lösung dieser Aufgabe wird ein Verfahren mit den Merkmalen von Anspruch 1 bzw. Anspruch 4 vorgeschlagen. Vorteilhafte Ausgestaltungen dieser Verfahrensvarianten sind jeweils in den Unteransprüchen angegeben.To solve this problem, a method with the Features of claim 1 and claim 4 proposed. Advantageous embodiments of these process variants are specified in the subclaims.

Das erfindungsgemäße Verfahren dient der Umsetzung einer einen Seitenadreßteil aufweisenden virtuellen Adresse eines virtuellen Adreßraums, der in mehrere virtuelle Seiten mit virtuellen Seitenadressen unter­ teilt ist, wobei die virtuellen Seiten Ein- oder Viel­ fache einer Basisseite vorgegebener Größe sind und unterschiedlich groß sein können, in eine einen Seiten­ adreßteil aufweisende reale Adresse eines realen Adreß­ raums, der in mehrere reale Seiten mit realen Seiten­ adressen unterteilt ist, wobei die realen Seiten Ein- oder Vielfache der Basisseite sind und unterschiedlich groß sein können. Hierbei gilt, daß die Größe einer virtuellen Seite gleich der Größe der zugehörigen rea­ len Seite ist. Unterschiedliche virtuelle Seiten können unterschiedlich groß sein; selbiges gilt für die realen Seiten. Für sämtliche Seiten (reale und virtuelle) gilt, daß sie ein Ein- oder Vielfaches einer Basisseite sind.The method according to the invention is used for implementation a virtual one having a page address part Address of a virtual address space that is divided into several virtual pages with virtual page addresses under is divided, the virtual pages one or many times a base page of a given size and can be of different sizes in one side real address of a real address Raums, which consists of several real pages with real pages addresses is divided, with the real pages or multiples of the base page are different  can be great. It applies that the size of a virtual page equal to the size of the associated rea len side. Different virtual pages can be of different sizes; the same applies to the real ones Pages. For all sides (real and virtual) applies that it is a single or multiple of a base page are.

Mittels der virtuellen Adresse wird ein Speicher mit mehreren Speichereinträgen adressiert. Dabei weist jeder Speichereintrag ein Markierungsfeld für eine Markierung und ein Datenfeld für mindestens einen Seitenadreßteil einer realen Seitenadresse und ein Seitenkennungsfeld für die Größe der realen Seite mit der im Datenfeld gespeicherten realen Seitenadresse auf.A memory is created using the virtual address addressed several memory entries. It points each memory entry is a checkbox for one Tag and a data field for at least one Page address part of a real page address and a Page identification field for the size of the real page with the real page address stored in the data field on.

Bei Übereinstimmung der Markierung des Markierungsfel­ des eines adressierten Speichereintrags wird mit dem virtuellen Seitenadreßteil der virtuellen Adresse die reale Seitenadresse auf der Grundlage des Inhalts des Datenfeldes und des Seitenkennungsfeldes ermittelt.If the marking of the marking field matches of an addressed memory entry is replaced with the virtual page address part of the virtual address real page address based on the content of the Data field and the page identifier field determined.

Bei der Untersuchung der virtuellen Adresse auf Über­ einstimmung mit der Markierung des Markierungsfeldes jedes adressierten Speichereintrages werden insbeson­ dere die relevante Zahl der höchstwertigen Bits von Markierung und virtueller Adresse verglichen. Bei der "relevanten Zahl" handelt es sich um die Differenz der Bitlänge der virtuellen Adresse und dem 2er-Logarithmus der durch das Seitenkennungsfeld des jeweiligen Speichereintrages spezifizierten Seitengröße.When examining the virtual address for About in line with the marking of the marking field each addressed memory entry will in particular the relevant number of the most significant bits of Marking and virtual address compared. In the "relevant number" is the difference of the Bit length of the virtual address and the 2 logarithm by the page identification field of the respective Memory entry specified page size.

Vorzugsweise wird in dem Fall, daß keine der Markierun­ gen der Markierungsfelder der adressierten Speicherein­ träge mit dem virtuellen Seitenadreßteil der virtuellen Adresse übereinstimmt, mittels des virtuellen Basis­ seitenadreßteils der virtuellen Adresse eine Page Table parsiert. Im Falle eines Treffers liefert die Page Table den realen Seitenadreßteil der realen Adresse und einen Wert für die Größe der realen Seite. Der vir­ tuelle Seitenadreßteil der virtuellen Adresse, der reale Seitenadreßteil der realen Adresse sowie der Wert für die Größe der realen Seite werden in das Markie­ rungsfeld, das Datenfeld bzw. das Seitenkennungsfeld eines Eintrages des Speichers (TLB) eingeschrieben.It is preferred in the event that none of the markers against the checkboxes of the addressed memories  sluggish with the virtual page address part of the virtual Address matches using the virtual base page address part of the virtual address a page table parsed. In the event of a hit, the page delivers Table the real page address part of the real address and a value for the size of the real page. The vir current page address part of the virtual address, the real page address part of the real address as well as the value for the size of the real page are in the markie field, the data field or the page identifier field an entry of the memory (TLB) registered.

Bei einer Variante des obigen Verfahrens weisen die realen und virtuellen Seiten maximal eine vorgegebene Größe auf (Maximalgröße). Die Seiten können gleich der oder kleiner als die Maximalgröße sein. Bei diesem Ver­ fahren wird mittels der virtuellen Adresse eine mehrere Einträge aufweisende Inverted oder Hashed Page Table parsiert. Jeder Eintrag der Page Table weist eine Mar­ kierung für einen virtuellen Seitenadreßteil, ein Datenfeld für eine reale Seitenadresse der realen Adresse sowie ein Seitenkennungsfeld für eine die Größe der realen Seite mit dem realen Seitenadreßteil reprä­ sentierenden Wert auf. Mittels des der Maximalseiten­ größe entsprechenden Maximalseitenadreßteils der vir­ tuellen Adresse oder einer Abbildung desselben wird eine Gruppe von Einträgen der Page Table, insbesondere ein Cluster von Einträgen ausgewählt. Bei Übereinstim­ mung einer der Markierungen der Markierungsfelder der Einträge der indizierten Gruppe der Page Table mit dem durch die Seitengröße des Seitenkennungsfeldes des je­ weiligen Eintrages bestimmten Seitenadreßteil der virtuellen Adresse wird anhand der in dem Datenfeld des betreffenden Eintrages der Page Table gespeicherten realen Seitenadreßteils, der Größe der Maximalseite und dem in dem Seitenkennungsfeld dieses Eintrages ge­ speicherten Wert die reale Adresse ermittelt.In a variant of the above method, the real and virtual pages a maximum of one Size on (maximum size). The pages can be the same or smaller than the maximum size. With this ver one will drive using the virtual address Inverted or hashed page table with entries parsed. Each entry in the page table has a mar for a virtual page address part Data field for a real page address of the real one Address as well as a page identifier field for a the size represent the real page with the real page address part sending value. By means of the maximum pages size of the corresponding maximum page address part of the vir current address or an image of the same a group of page table entries, in particular selected a cluster of entries. If they match one of the markings in the checkboxes of the Entries of the indexed group of the page table with the by the page size of the page identifier field of each certain entry certain page address of the virtual address is based on the in the data field of the relevant entry of the Page Table saved real page address part, the size of the maximum page and  in the page identifier field of this entry stored value the real address is determined.

Anstelle einer Inverted oder Hashed Page Table kann auch ein Translation Lookaside Buffer mit einer der Anzahl von Einträgen einer Gruppe gleichenden Assozia­ tivität verwendet werden.Instead of an inverted or hashed page table also a translation lookaside buffer with one of the Number of entries of a group of the same association activity can be used.

Nachfolgend werden anhand der Figuren Ausführungs­ beispiele der Erfindung erläutert. Im einzelnen zeigen:Below are execution with reference to the figures examples of the invention explained. In detail show:

Fig. 1 eine bildliche Darstellung eines Zugriffs auf eine einfache Hashed Page Table mittels einer virtuellen Adresse nach einem ersten Ausfüh­ rungsbeispiel,An access to a simple Hashed Page Table approximately example by means of a virtual address according to a first exporting Fig. 1 is a pictorial representation,

Fig. 2 eine bildliche Darstellung eines Zugriffs auf eine k-assoziative Hashed Page Table mittels einer virtuellen Adresse nach einem ersten Aus­ führungsbeispiel, Fig. 2 is a pictorial representation of associative k hashed page table management, for example by means of a virtual address to a first one of an access to a,

Fig. 3 eine Darstellung des Zugriffs auf eine mehr­ stufige Page Table, FIG. 3 is an illustration of access to a more stage page table,

Fig. 4 eine Darstellung des Zugriffs auf eine Inverted Page Table und Fig. 4 is an illustration of accessing an inverted page table and

Fig. 5 eine Darstellung des Zugriffs auf eine Hashed Page Table. Fig. 5 is an illustration of access to a hashed page table.

Bei einem mixed-page-size TLB für eine fixed-page-size Page Table sei ein Page Table Mechanismus mit fester Seitengröße 2s, beispielsweise IPT oder HPT, vorge­ geben. Diese Seiten werden im folgenden Basisseiten genannt. In the case of a mixed-page-size TLB for a fixed-page-size page table, a page table mechanism with a fixed page size of 2 s , for example IPT or HPT, should be specified. These pages are called basic pages in the following.

Desweiteren wird ein TLB vorausgesetzt, der unter­ schiedlich große Seiten erlaubt. Zulässige TLB-Seiten­ größen seien dabei die Größe der Basisseite und Viel­ fache von 2s+x, wobei x = 0, 1, . . . X sein kann. Diese Seiten werden zusammengesetzte Seiten genannt.Furthermore, a TLB is required, which allows different sized pages. Permissible TLB page sizes are the size of the base page and a multiple of 2 s + x , where x = 0, 1,. . . X can be. These pages are called compound pages.

Jeder Page Table Eintrag wird um ein (Daten-)Feld t erweitert, das die TLB-Seitenkennung definiert. Dabei gilt, daß die Basisseite Teil einer 2s+t großen zusammengesetzten Seite ist.Each page table entry is expanded by a (data) field t, which defines the TLB page identifier. The base page is part of a 2 s + t composite page.

Angenommen, bei einem Zugriff über die virtuelle Adres­ se v tritt ein TLB-Miss auf. Dann wird die Page Table mit v-v mod 2s als virtueller Seitenadresse parsiert. Bei einem Treffer wird die physische Adresse p der Basisseite und die TLB-Seitenkennung t geliefert.Assume that a TLB miss occurs when accessing via the virtual address se v. Then the page table is parsed with vv mod 2 s as a virtual page address. In the event of a hit, the physical address p of the base page and the TLB page identifier t are provided.

Bei einem konventionellen TLB würde jetzt einer der TLB-Einträge mitA conventional TLB would now be one of the TLB entries with

geladen, d. h. genau die Basisseite beschrieben.loaded, d. H. exactly described the base page.

Statt dessen wird erfindungsgemäß einer der TLB-Einträge mitInstead, according to the invention, one of the TLB entries becomes With

geladen. (Dabei ist mit "mod" die mathematische Modulo-Funktion bezeichnet, die den ganzzahligen Rest c einer Division a/b beschreibt: a mod b = c.) Damit belegen (größere) zusammengesetzte Seiten im TLB auch nur einen Eintrag pro zusammengesetzter Seite und nicht mehr pro Basisseite, d. h. nicht mehr bis zu 2t Einträge. (Die aktuelle Seitengröße kann im TLB nicht nur durch Speicherung von t, sondern auch durch daraus abgeleite­ te Werte geschehen, z. B. durch eine Bitmaske 2s+t - 1.) Dagegen finden sich in der Page Table so viele Einträge für die zusammengesetzte Seite, wie diese Basisseiten aufweist.loaded. ("Mod" is the mathematical modulo function that describes the integer remainder c of a division a / b: a mod b = c.) This means that (larger) compound pages in the TLB also only show one entry per compound page and no longer per base page, ie no longer up to 2 t entries. (The current page size can not only happen in the TLB by storing t, but also by derived values, e.g. by a bit mask 2 s + t - 1.) In contrast, there are so many entries for the in the page table composite page as it has base pages.

Bei einer Variante des obigen Verfahrens bezeichnet p nicht die physische Adresse der Basisseite, sondern diejenige der zusammengesetzten Seite:In a variant of the above method, p denotes not the physical address of the base page, but that of the compound side:

Damit brauchen zusammengesetzte Seiten im Realspeicher nicht mehr 2s+t ausgerichtet zu sein.Compound pages in real memory no longer need to be aligned for 2 s + t .

Bei einer zweiten Variante wird der Größenfaktor einer zusammengesetzten Seite nicht mehr als 2er-Logarithmus sondern direkt angegeben. Eine zusammengesetzte Seite hat dann die Größe 2st. Jeder Page Table Eintrag ent­ hält außerdem ein Feld u, das die relative Distanz der Basisseite innerhalb der Seite angibt. u kann die Werte 0, 1, . . . t - 1 annehmen. Der TLB-Eintrag sieht dann folgendermaßen aus: In a second variant, the size factor of a composite page is no longer specified as a two-logarithm, but directly. A composite page then has the size 2 s t. Each page table entry also contains a field u, which indicates the relative distance of the base page within the page. u can have the values 0, 1,. . . assume t - 1. The TLB entry then looks like this:

(Statt p - 2su kann, wie in bei der ersten Varianten vorgesehen, p die physische Adresse der Seite bezeich­ nen.)(Instead of p - 2 s u, as provided in the first variant, p can denote the physical address of the page.)

Hiermit können physisch und virtuell zusammenhängende Basisseiten zusammengefaßt werden, ohne daß die ent­ stehende zusammengesetzte Seite eine 2er-Potenz als Größenfaktor einer Basisseite aufweist und ohne daß sie ausgerichtet sein muß.This can be physically and virtually related Base pages are summarized without the ent standing compound side is a power of 2 as Size factor of a base page and without it must be aligned.

Jeder der oben beschriebenen mixed-page TLBs läßt sich auch bei Page Tables anwenden, die selbst schon unter­ schiedlich große Seiten zulassen (dritte Variante). Das kann beispielsweise sinnvoll sein, wenn die Bandbreite der möglichen Seitengrößen im TLB größer ist als bei den Page Tables.Each of the mixed-page TLBs described above can be also apply to page tables that are already under Allow pages of different sizes (third variant). The can be useful, for example, if the bandwidth the possible page sizes in the TLB is larger than for the page tables.

RealisierungsmöglichkeitenRealization options

  • a) Beim Pariseren der Page Table wird jetzt auch die (variable) Größe s und damit die gerade aktuelle Basisseitengröße geliefert.a) The Paris table page is now also the (variable) size s and thus the current one Base page size supplied.
  • b) t definiert alleine die Seitengröße: b) t alone defines the page size:
  • c) Zusammengesetzte Seiten lassen sich nur für eine bestimmte Basisseitengröße bilden, beispielsweise nur für die größte Seitengröße, die der Page Table Mechanismus zuläßt.c) Compound pages can only be used for one form certain base page size, for example only for the largest page size that the page table Mechanism allows.

Nachfolgend soll eine k-assoziative mixed-page HPT er­ läutert werden, wobei des besseren Verständnisses wegen zuerst eine einfache HPT beschrieben wird. Die größt­ mögliche Seitengröße sei dabei 2S, wobei S die Bitlänge des Feldes w der S niederwertigsten Bits von v ist (s. Fig. 1). Dabei soll -2s einen Bitstring mit führenden EINSEN und den letzten s Bits jeweils als NULL, d. h. einen Bitstring beschreiben, dessen s niedrigstwertige Bits NULL und dessen übrige (höherwertige) Bits EINS sind. Umgekehrt soll (2s-1) einen Bitstring mit führen­ den NULLEN und den letzten s Bits jeweils als EINS, d. h. einen Bitstring beschreiben, dessen höherwertige Bits jeweils NULL und dessen s niedrigstwertige Bits jeweils EINS sind. AND beschreibt die bitweise logische UND-Verknüpfung.In the following, a k-associative mixed-page HPT will be explained, whereby a simple HPT is first described for better understanding. The largest possible page size is 2 S , where S is the bit length of the field w of the S least significant bits of v (see FIG. 1). In this case, -2 s is to describe a bit string with leading ONE and the last s bits as ZERO, ie a bit string whose s least significant bits are ZERO and whose remaining (more significant) bits are ONE. Conversely, (2 s -1) is to describe a bit string with the ZERO and the last s bits as ONE, ie a bit string whose higher-order bits are each ZERO and whose s least significant bits are ONE. AND describes the bitwise logical AND operation.

Falls v′ = v AND (-2s) gilt, so ergibt sich die reale Adresse r als p + (w AND (2s-1)).If v ′ = v AND (-2 s ), then the real address r is p + (w AND (2 s -1)).

Wichtig ist hierbei, daß mit u nur solche Bits der vir­ tuellen Adresse v zur Adressierung der HPT verwandt werden, die bei keiner zulässigen Seitengröße zum Sei­ tenoffset gehören.It is important here that with u only such bits of the vir current address v used to address the HPT that are not allowed with a permitted page size belong to tenoffset.

Bei der k-assoziativen HPT hingegen wird durch die Hash-Funktion nicht nur ein Eintrag, sondern ein Cluster von k Einträgen ausgewählt (s. Fig. 2, in der für die k Einträge die Indizierung 0, 1, 2, . . . , k-1 gewählt ist). In the k-associative HPT, on the other hand, the hash function not only selects one entry, but a cluster of k entries (see FIG. 2, in which the indexing 0, 1, 2,..., k-1 is selected).

Die k Einträge des Clusters werden, wie in Fig. 2 ge­ zeigt, überprüft. Ergibt sich beim Clustereintrag i ein Treffer, d. h. liefert die Abfrage vi′ = v AND (-2si) den Wert "wahr", werden pi und si dieses Eintrags zur Bildung der Realadresse verwandt. Ergibt sich kein Treffer, scheitert die Adreßumsetzung.The k entries of the cluster are checked, as shown in FIG. 2. If the cluster entry i results in a hit, ie if the query v i ′ = v AND (-2 si ) returns the value “true”, p i and s i of this entry are used to form the real address. If there is no hit, the address conversion fails.

Mit diesem Verfahren sind z. B. die 2er-Potenzen von 2s bis hinunter nach 2s/k als Größen einer zusammengesetz­ ten Seite möglich, wobei die Trefferraten nie schlech­ ter sind als bei einfachen HPTs.With this method z. B. the powers of 2 from 2 s down to 2 s / k as sizes of a composite page possible, the hit rates are never worse than with simple HPTs.

Kleinere Seitengrößen als 2s/k sind ebenfalls möglich, führen aber bei dichter Nutzung zu Clashes, da die k-assoziative HPT nur maximal k Seiten aus einem 2s-großen Bereich gleichzeitig aufnehmen kann.Smaller page sizes than 2 s / k are also possible, but lead to clashes when used heavily, since the k-associative HPT can only accept a maximum of k pages from a 2 s- sized area at the same time.

Das Verfahren kann mit den bei Hashed Page Tables üb­ lichen Rehash- und Link-Methoden kombiniert werden.The procedure can be carried out using the methods used at Hashed Page Tables rehash and link methods can be combined.

Die Assoziativität kann durch vollständig parallele Verarbeitung eines Clusters erfolgen. Sequentielle oder teilweise parallele Abarbeitung ist aber auch möglich.The associativity can be achieved by completely parallel A cluster is processed. Sequential or partially parallel processing is also possible.

Die Assoziativität kann über Rehash/Link auf weitere Cluster ausgedehnt werden.The associativity can be accessed via Rehash / Link Clusters to be expanded.

Das oben anhand einer mixed-page HPT beschriebene Ver­ fahren wird auf einen k-Wege assoziativen TLB ange­ wandt .The Ver. Described above using a mixed-page HPT driving is on a k-way associative TLB turns.

Die Beschreibung geht aus dem obigen Sachverhalt hervor, wenn man die k-assoziative HPT durch den k-Wege asso­ ziativen TLB ersetzt. Die Rolle des Clusters wird dann durch den ausgewählten aus k Einträgen bestehenden Set (Satz, Zeile) des TLB übernommen.The description follows from the above facts, if you associate the k-associative HPT with the k-way selective TLB replaced. The role of the cluster is then  through the selected set consisting of k entries (Sentence, line) of the TLB.

Claims (5)

1. Verfahren zum Umsetzen einer einen Seitenadreßteil aufweisenden virtuellen Adresse eines virtuellen Adreßraums, der in mehrere virtuelle Seiten mit virtuellen Seitenadressen unterteilt ist, wobei die virtuellen Seiten Ein- oder Vielfache einer Basisseite vorgegebener Größe sind und unter­ schiedlich groß sein können, in eine einen Seiten­ adreßteil aufweisende reale Adresse eines realen Adreßraums, der in mehrere reale Seiten mit realen Seitenadressen unterteilt ist, wobei die realen Seiten Ein- oder Vielfache der Basisseite sind und unterschiedlich groß sein können, bei dem
  • - mittels der virtuellen Adresse ein Speicher mit mehreren Speichereinträgen adressiert wird, wobei jeder Speichereintrag ein Markierungsfeld für eine Markierung und ein Datenfeld für min­ destens einen Seitenadreßteil einer realen Sei­ tenadresse und ein Seitenkennungsfeld für die Größe der realen Seite mit der im Datenfeld gespeicherten realen Seitenadresse aufweist, und
  • - bei Übereinstimmung der Markierung des Markie­ rungsfeldes eines Speichereintrags mit dem vir­ tuellen Seitenadreßteil der virtuellen Adresse die reale Seitenadresse auf der Grundlage des Inhalts des Datenfeldes und des Seitenkennungs­ feldes ermittelt wird.
1. A method for converting a virtual address having a page address part of a virtual address space, which is divided into several virtual pages with virtual page addresses, the virtual pages being multiples or multiples of a base page of a predetermined size and can be of different sizes, into one page Address part real address of a real address space, which is divided into several real pages with real page addresses, the real pages are single or multiples of the base page and can be of different sizes, in which
  • - A memory with several memory entries is addressed by means of the virtual address, each memory entry having a marking field for a marking and a data field for at least one page address part of a real page address and a page identification field for the size of the real page with the real page address stored in the data field , and
  • - If the marking of the marking field of a memory entry matches the virtual page address part of the virtual address, the real page address is determined on the basis of the content of the data field and the page identification field.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei der Untersuchung der virtuellen Adresse auf Übereinstimmung mit der Markierung des Markie­ rungsfeldes jedes adressierten Speichereintrages die relevante Zahl der höchstwertigen Bits von Markierung und virtueller Adresse verglichen wer­ den, wobei die relevante Zahl sich aus der Diffe­ renz der Bitlänge der virtuellen Adresse und dem 2er-Logarithmus der durch das Seitenkennungsfeld des jeweiligen Speichereintrages spezifizierten Seitengröße ergibt.2. The method according to claim 1, characterized in that that when examining the virtual address in accordance with the mark of the markie field of each addressed memory entry the relevant number of most significant bits of  Marking and virtual address compared the, the relevant number resulting from the diffe limit of the bit length of the virtual address and the Log of two by the page identifier field of the respective memory entry Results in page size. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet,
  • - daß in dem Fall, daß keine der Markierungen der Markierungsfelder der adressierten Speicherein­ träge mit dem virtuellen Seitenadreßteil der virtuellen Adresse übereinstimmt, mittels des virtuellen Basisseitenadreßteils der virtuellen Adresse eine Page Table parsiert wird,
  • - daß die Page Table im Falle eines Treffers den realen Seitenadreßteil der realen Adresse und einen Wert für die Größe der realen Seite lie­ fert und
  • - daß der virtuelle Seitenadreßteil der virtuel­ len Adresse, der reale Seitenadreßteil der rea­ len Adresse sowie der Wert für die Größe der realen Seite in das Markierungsfeld, das Daten­ feld bzw. das Seitenkennungsfeld eines Eintra­ ges des Speichers eingeschrieben werden.
3. The method according to claim 1 or 2, characterized in that
  • in the event that none of the markings of the marking fields of the addressed memory entries matches the virtual page address part of the virtual address, a page table is parsed by means of the virtual base page address part of the virtual address,
  • - That the page table delivers the real page address part of the real address and a value for the size of the real page in the event of a hit and
  • - That the virtual Seitenadreßteil the virtual len address, the real Seitenadreßteil the real len address and the value for the size of the real page in the marker field, the data field or the page ID field of an entry of the memory are written.
4. Verfahren zum Umsetzen einer einen Seitenadreßteil aufweisenden virtuellen Adresse eines virtuellen Adreßraums, der in mehrere virtuelle Seiten mit virtuellen Seitenadressen unterteilt ist, wobei die virtuellen Seiten Ein- oder Vielfache einer Basisseite vorgegebener Größe sind, eine vorge­ gebene Maximalgröße nicht überschreiten und unter­ schiedlich groß sein können, in eine einen Seiten­ adreßteil aufweisende reale Adresse eines realen Adreßraums, der in mehrere reale Seiten mit realen Seitenadressen unterteilt ist, wobei die realen Seiten Ein- oder Vielfache der Basisseite sind, die Maximalgröße nicht überschreiten und unter­ schiedlich groß sein können, bei dem
  • - mittels der virtuellen Adresse eine mehrere Einträge aufweisende Inverted oder Hashed Page Table parsiert wird,
  • - wobei jeder Eintrag eine Markierung für einen virtuellen Seitenadreßteil, ein Datenfeld für eine reale Seitenadresse der realen Adresse sowie ein Seitenkennungsfeld für eine die Größe der realen Seite mit dem realen Seitenadreßteil repräsentierenden Wert aufweist und
  • - wobei mittels des der Maximalseitengröße entsprechenden Maximalseitenadreßteils der virtuellen Adresse oder einer Abbildung der­ selben eine Gruppe von Einträgen der Page Table ausgewählt wird, und
  • - bei Übereinstimmung einer der Markierungen der Markierungsfelder der indizierten Einträge der Page Table mit dem durch die Seitengröße des Seitenkennungsfeldes des jeweiligen Eintrages bestimmten Seitenadreßteil der virtuellen Adresse anhand der in dem Datenfeld des betref­ fenden Eintrages der Page Table gespeicherten realen Seitenadreßteils, der Größe der Maximal­ seite und dem in dem Seitenkennungsfeld dieses Eintrages gespeicherten Wert die reale Adresse ermittelt wird.
4. Method for converting a virtual address space having a page address part of a virtual address space, which is subdivided into several virtual pages with virtual page addresses, the virtual pages being multiples or multiples of a base page of a predetermined size, not exceeding a predetermined maximum size and of different sizes can be, in a real address having a page address part of a real address space, which is divided into several real pages with real page addresses, the real pages being multiples or multiples of the base page, not exceeding the maximum size and can be of different sizes the
  • - an inverted or hashed page table with multiple entries is parsed using the virtual address,
  • - wherein each entry has a marking for a virtual page address part, a data field for a real page address of the real address and a page identification field for a value representing the size of the real page with the real page address part and
  • a group of entries of the page table is selected by means of the maximum page address part of the virtual address corresponding to the maximum page size or an image thereof, and
  • - If one of the markings of the marking fields of the indexed entries of the page table matches the page address part of the virtual address determined by the page size of the page identifier field of the respective entry, based on the real page address part stored in the data field of the relevant entry of the page table, the size of the maximum page and the real address is determined from the value stored in the page identifier field of this entry.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß anstelle einer Inverted oder Hashed Page Table ein Translation Lookaside Buffer mit einer der Anzahl von Einträgen einer Gruppe gleichenden As­ soziativität verwendet wird.5. The method according to claim 4, characterized in that instead of an inverted or hashed page table a translation lookaside buffer with one of the  Number of entries of a group of identical aces sociativity is used.
DE19524925A 1994-07-09 1995-07-08 Address conversion system for memory management unit Withdrawn DE19524925A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19524925A DE19524925A1 (en) 1994-07-09 1995-07-08 Address conversion system for memory management unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4424269 1994-07-09
DE19524925A DE19524925A1 (en) 1994-07-09 1995-07-08 Address conversion system for memory management unit

Publications (1)

Publication Number Publication Date
DE19524925A1 true DE19524925A1 (en) 1996-02-01

Family

ID=6522763

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19524925A Withdrawn DE19524925A1 (en) 1994-07-09 1995-07-08 Address conversion system for memory management unit

Country Status (2)

Country Link
DE (1) DE19524925A1 (en)
WO (1) WO1996002035A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19526960A1 (en) * 1994-09-27 1996-03-28 Hewlett Packard Co A translation cross-allocation buffer organization with variable page size mapping and victim cache

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP0463978A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Granularity hint for translation buffer in high performance processor

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR10582E (en) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Lock set with master key
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP0463978A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Granularity hint for translation buffer in high performance processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19526960A1 (en) * 1994-09-27 1996-03-28 Hewlett Packard Co A translation cross-allocation buffer organization with variable page size mapping and victim cache

Also Published As

Publication number Publication date
WO1996002035A1 (en) 1996-01-25

Similar Documents

Publication Publication Date Title
DE2227882C2 (en) Virtual storage arrangement
DE4410060B4 (en) Translating device for converting a virtual memory address into a physical memory address
EP0010195B1 (en) Device for address translation in a computer
DE2131066C3 (en) Arrangement for addressing a table memory
DE19743266C1 (en) Address management method in binary search tree
DE2235841C2 (en) Data processing system with memory control for at least one processor and buffer memories assigned to it
DE19743267C1 (en) Address localization in partially occupied, unbalanced binary tree
EP0619667A1 (en) Access method to the address characteristics of communicating partners with a first address field while sending a data packet
DE3805107A1 (en) METHOD AND DEVICE FOR CONTROLLING VIRTUAL ADDRESS SPACES OF A VIRTUAL STORAGE
DE2260353A1 (en) METHOD AND DEVICE FOR MEMORY CONTROL AND ADDRESS CONVERSION
DE10012123A1 (en) Memory access in Ethernet involves searching address filter table by forming hash key for MAC address in buffer, reading address filter table entries using multiple data read access mode
DE112013002938T5 (en) Translate the base table of stores
DE2640357A1 (en) WORD GROUP PRIORITY ORDER
DE2939411A1 (en) DATA PROCESSING SYSTEM WITH VIRTUAL STORAGE ADDRESSING
WO1996023260A1 (en) Process for operating an address conversion device
EP0755541A1 (en) Cache memory device for data storage
DE60114299T2 (en) A method and apparatus for translating IP telecommunications network addresses with a controlled leaky memory
DE19524925A1 (en) Address conversion system for memory management unit
DE2516050A1 (en) METHOD AND DEVICE FOR STORAGE OF INFORMATION IN A DATA PROCESSING SYSTEM
DE60024611T2 (en) LENGTH TEST COMPARISON IN PREFIX TUNING TABLE
DE3216238C1 (en) Dataprocessing system with virtual subaddressing of the buffer memory
DE2532945C3 (en) RAM arrangement
DE10260606B4 (en) Device for translating multiple virtual addresses to a single physical address
EP1675010A2 (en) Method for updating translation look-aside buffer entries in a multiprocessor computer system
DE19538961C2 (en) Storage device for storing data

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal