DE19524925A1 - Address conversion system for memory management unit - Google Patents
Address conversion system for memory management unitInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
Abstract
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.
- 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)
- - 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.
- - 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.
- - 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.
- 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.
- - 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.
- - 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.
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)
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)
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)
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 |
-
1995
- 1995-07-08 DE DE19524925A patent/DE19524925A1/en not_active Withdrawn
- 1995-07-08 WO PCT/EP1995/002659 patent/WO1996002035A1/en active Application Filing
Patent Citations (2)
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)
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 |