DE19602872A1 - Verfahren zum Betreiben einer Adreßumsetzvorrichtung - Google Patents

Verfahren zum Betreiben einer Adreßumsetzvorrichtung

Info

Publication number
DE19602872A1
DE19602872A1 DE19602872A DE19602872A DE19602872A1 DE 19602872 A1 DE19602872 A1 DE 19602872A1 DE 19602872 A DE19602872 A DE 19602872A DE 19602872 A DE19602872 A DE 19602872A DE 19602872 A1 DE19602872 A1 DE 19602872A1
Authority
DE
Germany
Prior art keywords
address
guide number
virtual
virtual address
tlb
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
DE19602872A
Other languages
English (en)
Inventor
Jochen Liedtke
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 DE19602872A priority Critical patent/DE19602872A1/de
Publication of DE19602872A1 publication Critical patent/DE19602872A1/de
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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

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)

Description

Die Erfindung betrifft ein Verfahren zum Betreiben einer Adreßumsetzvorrichtung zum Umsetzen einer vir­ tuellen Adresse in eine Realadresse, wobei die Um­ setzvorrichtung in Form eines (direct-mapped oder n-Wege assoziativen) Translation-Lookaside-Buffers (TLB) ausgebildet ist und das Verfahren es erlaubt, systema­ tisches Clashing zu umgehen.
Moderne Prozessoren benutzen TLBs für die schnelle Um­ setzung virtueller in reale Adressen. Typischerweise befinden sich TLB und Cache auf dem Prozessorchip.
Der TLB ist ein spezieller Cache für die Adreßum­ setzung. Zwar werden auch voll-assoziative TLBs einge­ setzt, in der Regel sind TLBs jedoch n-Wege assoziativ. Fig. 4 zeigt einen direct-mapped TLB, d. h. einen I-Wege assoziativen TLB. Der höherwertige Teil v′ (erster Adreßteil) der virtuellen Adresse v wird benutzt, um eine Zeile des TLBs anzuwählen. Dort finden sich (in einem Markierungsfeld) die zu diesem Eintrag gehörige virtuelle Seitenadresse v′i, in einem dem Markierungs­ feld zugeordneten Datenfeld die reale Seitenadresse r′i sowie in der Abbildung nicht aufgeführte Statusbits, die unten anderem angeben, ob der Eintrag gültig ist. Wenn er gültig ist und v′i mit der aktuellen Seiten­ adresse v′ übereinstimmt, liegt ein TLB-Hit vor und die Realadresse wird aus dem niederwertigen Teil v′′ (zwei­ ter Adreßteil) der virtuellen Adresse und der vom TLB gelieferten realen Seitenadresse r′i zusammengesetzt.
Ein n-Wege assoziativer TLB unterscheidet sich vom direct-mapped TLB dadurch, daß sich in einem Eintrag mehrere Markierungs- und Datenfelder befinden, die gleichzeitig angewählt und parallel gegen v′ geprüft werden. Ein Treffer liegt dann vor, wenn der Inhalt eines Markierungsfeldes des indizierten TLB-Eintrags zutrifft; dessen r′i und Statusbits werden dann zur Bildung der Realadresse r und zur Validierung des Zu­ griffs benutzt.
Für große Adreßräume soll ein direct-mapped oder n-Wege assoziativer TLB konstruiert werden, der für beliebige Working-Sets virtueller Seiten es ermöglicht, Clashing systematisch zu minimieren. Dabei versteht man unter einem Working-Set die Menge sämtlicher aktuell benutz­ ter virtueller Seiten, während "Clashing" einen Kon­ flikt zwischen den im TLB abgelegten virtuellen Seiten meint.
Zur Lösung dieser Aufgabe wird ein Betriebsverfahren für eine TLB-Adreßumsetzungs-Vorrichtung vorgeschlagen, dessen Verfahrensschritte im Anspruch 1 angegeben sind. Die in den Unteransprüchen aufgeführten Verfahrens­ schritte betreffen vorteilhafte Ausgestaltungen der Erfindung.
Das erfindungsgemäße Verfahren dient dem Betrieb einer Adreßumsetzvorrichtung zum Umsetzen einer virtuellen Adresse eines mehrere Seiten umfassenden virtuellen Adreßraumes in eine Realadresse eines mehrere Seiten umfassenden Realadreßraumes mittels eines Translation-Lookaside-Buffers und einer Page-Table. Die virtuelle Adresse läßt sich dabei in einen ersten Adreßteil und einen zweiten Adreßteil aufteilen. Der virtuellen Adresse ist erfindungsgemäß eine Leitzahl zugeordnet. Auch die Realadresse weist einen ersten Adreßteil und einen zwei­ ten Adreßteil auf. Bei den beiden Adreßteilen der vir­ tuellen Adresse und der Realadresse kann es sich insbe­ sondere um den Seitennummern-Adreßteil zum Adressieren einer Seite im virtuellen bzw. realen Adreßraum und um den Offset-Adreßteil zum Adressieren innerhalb einer realen oder virtuellen Seite handeln. Der Translation-Lookaside-Buffer weist eine Vielzahl von Einträgen auf, von denen jeder mindestens ein Markierungsfeld und minde­ stens ein dem Markierungsfeld zugeordnetes Datenfeld auf­ weist (zusätzlich können auch noch weitere Felder für Steuerinformationen oder dgl., insbesondere ein Gültig­ keits-/Ungültigkeitsfeld vorgesehen sein).
Bei der Adreßumsetzung wird nach der Erfindung wie folgt vorgegangen:
  • - zunächst wird der Translation-Lookaside-Buffer mit­ tels der der virtuellen Adresse zugeordneten Leit­ zahl oder mittels einer Abbildung der der virtuel­ len Adresse zugeordneten Leitzahl auf einen Index oder mittels einer Abbildung der der virtuellen Adresse zugeordneten Leitzahl und des ersten Adreß­ teils der virtuellen Adresse auf einen Index indi­ ziert. Im Gegensatz zu herkömmlichen TLBs, bei denen zur Indizierung ein Teil der virtuellen Adresse verwendet wird, erfolgt also nach der Er­ findung die Indizierung des TLBs anhand der Leit­ zahl, d. h. einer Information, die nicht Be­ standteil der eigentlichen virtuellen Adresse ist. Gegebenenfalls wird zusätzlich zur Leitzahl auch noch ein Teil der virtuellen Adresse, nämlich deren erster Adreßteil, verwendet. Zumeist wird man ma­ thematische Abbildungen der Bits der Leitzahl (und ggf. der virtuellen Adresse) verwenden, um den TLB mit einem auf diese Weise erzeugten Index zu indi­ zieren.
  • - Nach der Indizierung wird überprüft, ob der Inhalt eines Markierungsfeldes des indizierten Eintrages des Translation-Lookaside-Buffers mit dem ersten Adreßteil der virtuellen Adresse übereinstimmt. Dies gilt übrigens gleichermaßen für direct-mapped TLBs und n-Wege assoziative TLBs.
  • - Existiert ein Markierungsfeld mit einem mit dem ersten Adreßteil der virtuellen Adresse überein­ stimmenden Inhalt, so liegt ein TLB-Hit vor. In diesem Fall wird die Realadresse aus dem Inhalt des zu diesem Markierungsfeld gehörenden Datenfeldes als erster Adreßteil der Realadresse und aus dem zweiten Adreßteil der virtuellen Adresse zusammen­ gesetzt.
  • - Existiert hingegen kein Markierungsfeld in dem in­ dizierten Eintrag, dessen Inhalt mit dem ersten Adreßteil der virtuellen Adresse übereinstimmt, so liegt ein TLB-Miss vor. In diesem Fall wird die Page-Table parsiert und der erste Adreßteil der Realadresse aus der Page-Table hergeleitet, wobei die Page-Table anhand der virtuellen Adresse par­ siert wird und die Realadresse aus dem sich aus der Page-Table ergebenden ersten Adreßteil und aus dem zweiten Adreßteil der virtuellen Adresse zusammen­ gesetzt wird. Die Page-Table weist sogenannte Ter­ minal-Einträge auf, die direkt auf eine Datenseite des Realadreßraums verweisen, d. h. einen Teil der Realadresse beinhalten. Der erste Adreßteil der virtuellen Adresse sowie der sich aus der Page-Table ergebende erste Adreßteil der Realadresse werden in den TLB übernommen.
Vorzugsweise ist vorgesehen, daß bei einem TLB-Miss der erste Adreßteil der virtuellen Adresse und der sich aus der Page-Table ergebende erste Adreßteil der Realadresse in denjenigen Eintrag des Translation-Lookaside-Buffers geladen werden, der bei dem dem TLB-Miss zugrundeliegen­ den Zugriff auf den Translation-Lookaside-Buffer indi­ ziert worden ist. Der Inhalt des indizierten Eintrages des TLB wird also hierbei aktualisiert, ohne die der virtuellen Adresse zugeordnete Leitzahl zu ändern.
Vorzugsweise liefert die Page-Table zusätzlich zu dem er­ sten Adreßteil einer Realadresse ein Leitzahlfeld mit einer Leitzahl. Der Inhalt des sich bei der Parsierung der Page-Table ergebenden Leitzahlfeldes wird mit der der virtuellen Adresse zugeordneten Leitzahl verglichen. In dem Fall, in dem der Inhalt des Leitzahlfeldes nicht mit der der virtuellen Adresse zugeordneten Leitzahl überein­ stimmt, wird der Translation-Lookaside-Buffer anhand des Inhalts des Leitzahlfeldes oder anhand des Inhalts des Leitzahlfeldes und des ersten Adreßteils der virtuellen Adresse indiziert. Kommt es hierbei zu einem TLB-Hit, so wird das betreffende Datenfeld des Translation-Lookaside-Buffers als ungültig markiert und die der virtuellen Adresse zugeordnete Leitzahl in das Leitzahlfeld des Page-Table-Eintrags abgespeichert. Die zuvor beschriebene Operation wird auch als TLB-Flush bezeichnet. Unabhängig davon, ob es zu einem TLB-Flush kommt, werden dann der erste Adreßteil der virtuellen Adresse und der sich aus der Page-Table ergebende erste Adreßteil der Realadresse in denjenigen Eintrag des Translation-Lookaside-Buffers geladen, der anhand der der virtuellen Adresse zugeord­ neten Leitzahl oder anhand der der virtuellen Adresse zugeordneten Leitzahl und des ersten Adreßteils der vir­ tuellen Adresse indiziert worden ist (zur Indizierung kann hierbei auch wieder eine Abbildungs-(Hash-)Funktion verwendet werden).
Bei Verwendung einer Page-Table, deren Terminal-Einträge auch Leitzahlen beinhalten bzw. zugeordnet sind, kann es vorteilhaft sein, bei einem TLB-Miss die Realadresse nur dann anhand des sich aus der Page-Table ergebenden ersten Adreßteils zusammenzusetzen, wenn die von der Page-Table gelieferte Leitzahl mit der der virtuellen Adresse zuge­ ordneten Leitzahl übereinstimmt. Ist dies nicht der Fall, wird zweckmäßigerweise ein Leitzahl-Fehler signalisiert.
Alternativ kann dann, wenn ein TLB-Miss vorliegt und die von der Page-Table gelieferte Leitzahl nicht mit der der virtuellen Adresse zugeordneten Leitzahl übereinstimmt, der virtuellen Adresse für deren aktuelle Umsetzung und für deren zukünftige Umsetzungen die von der Page-Table gelieferte Leitzahl zugeordnet werden.
In vorteilhafter Weiterbildung der Erfindung ist es mög­ lich, daß die den virtuellen Adressen zugeordneten Leit­ zahlen ein oder mehrere Steuerbits aufweisen, die nicht zur Indizierung des Translation-Lookaside-Buffers, son­ dern zur Verwaltung des Translation-Lookaside-Buffers verwendet werden. Ein Beispiel für ein derartiges Steuer­ bit ist ein sogenanntes Early-Flush-Bit, das in den TLB-Eintrag - einem Paar aus Markierungs- und Datenfeld zuge­ ordnet - abgespeichert wird und, wenn es gesetzt ist, angibt, daß dieses Paar aus Markierungs- und Datenfeld geflusht werden kann, wenn dies erforderlich ist.
Vorzugsweise ist die virtuelle Adresse Teil eines Bit­ strings, der Bits für den ersten Adreßteil der virtuellen Adresse, Bits für den zweiten Adreßteil der virtuellen Adresse und Bits für die der virtuellen Adresse zugeord­ neten Leitzahl aufweist. Vom Anwender oder Benutzer­ programm oder Betriebsprogramm wird als "virtuelle Adres­ se im weiteren Sinne" der obige die eigentliche virtuelle Adresse und die dieser zugeordnete Leitzahl umfassende Bitstring geliefert.
Als Alternative ist ferner vorgesehen, daß jeder Eintrag des TLB mindestens ein einem Markierungsfeld zugeordnetes Leitzahlfeld aufweist, daß die der virtuellen Adresse zugeordnete Leitzahl mit dem Inhalt desjenigen Markie­ rungsfeldes des indizierten Eintrags des Translation-Lookaside-Buffers verglichen wird, dessen Inhalt gleich dem ersten Adreßteil der virtuellen Adresse ist und daß ein TLB-Hit dann vorliegt, wenn die der virtuellen Adresse zugeordnete Leitzahl gleich der Leitzahl des Leitzahlfeldes ist.
Nachfolgend werden anhand der Figuren Ausfüh­ rungsbeispiele der Erfindung näher erläutert. Im einzel­ nen zeigen:
Fig. 1 schematisch den Aufbau eines Bitstrings, der eine virtuelle Adresse repräsentierende Bits und eine dieser virtuellen Adresse zugeordnete Leit­ zahl repräsentierende Bits aufweist,
Fig. 2 schematisch den Indizierungsschritt bei einem direkt mit der Leitzahl indizierten TLB,
Fig. 3 schematisch den Indizierungsschritt bei einem TLB, der mittels einer Abbildungs-(Hash-)Funk­ tion aus der Leitzahl und einem Teil der vir­ tuellen Adresse indiziert wird und
Fig. 4 schematisch den Indizierungsschritt bei einem herkömmlichen direct-mapped TLB.
Im Rahmen dieser Beschreibung wird von großen Adreßräumen und entsprechend breiten Adressen ausgegangen, beispiels­ weise 64-bit breit. Eine Komplettadresse (Bitstring) besteht dann aber nicht mehr aus einer 64-bit breiten virtuellen Adresse, sondern setzt sich aus einer Leitzahl und einer virtuellen Adresse zusammen. Im Beispiel der Fig. 1 belegt die virtuelle Adresse v die niederwertigen 56-bit der Komplettadresse und die Leitzahl z die höchst­ wertigen 8-bit.
Die Memory Management Unit (MMU) benutzt zur eigentlichen Adreßumsetzung (virtuell → real) nur die virtuelle Adres­ se, d. h. der Adreßraum ist 2⁵⁶-byte groß. Die Leitzahl v ist hierfür redundant.
Logisch ist eine Faltung des Adreßraums. Im Beispiel eine 256-fache Faltung bzw. ein 256-faches Aliasing aller 2⁵⁶-byte Regionen. Wie man im folgenden Text sehen wird, ist diese Vorstellung zwar hilfreich, beschreibt Leitzahl-Adressierung aber nur unvollständig.
Es wird unterschieden zwischen der Adreßumsetzung durch den TLB und der Adreßumsetzung durch Tabellenparsierung. Letztere wird immer dann durchgeführt, wenn die Adreßum­ setzung durch den TLB gescheitert ist (TLB-Miss). Für die Adreßumsetzung durch Tabellenparsieren können unter ande­ rem Verfahren eingesetzt werden, die Multi-Level Page-Tables, Inverted (Hashed) Page Tables oder Guarded Page Tables verwenden. Entscheidend ist nur, daß sie eine virtuelle Adresse v bei gelungener Umsetzung auf eine virtuelle Seitennummer v′, einen Offset v′′, eine reale Seitennummer r′ und eventuell eine Seitengröße s abbil­ den. (Natürlich können bei dieser Adreßumsetzung auch noch weitere Ergebnisse, beispielsweise Access- oder Statusbits entstehen.) Die virtuelle Adresse v wird damit auf die Realadresse r = r′ + v′′ abgebildet. Das Paar (v′, r′), im Falle flexibler Seitengröße das Tripel (v′, r′, s), kann dann im TLB für nachfolgende Adreßumsetz­ ungen abgespeichert werden.
Im Gegensatz zur Adreßumsetzung durch Tabellenparsierung wird bei der Umsetzung durch den TLB die Leitzahl als wesentlicher Eingangsparameter verwandt. Beim Leitzahl­ direkt-adressierten TLB (Fig. 2) wird ausschließlich die Leitzahl z zur Indizierung des TLB-Caches benutzt.
Beim Leitzahl-hashed-adressierten TLB (Fig. 3) wird der Index durch eine Hashfunktion aus Leitzahl z und einem Teil v′ der virtuellen Adresse gebildet. v′ kann dabei wie gezeigt die Seitennummer sein, kann aber auch nur ein Teil davon sein. Eine einfache Hashfunktion ist z. B. (z xor v′) mod k, wobei k die Zahl der Sets eines n-Wege assoziativen TLBs bzw. die Zahl der Einträge eines di­ rect-mapped TLBs ist.
Fig. 2 und 3 zeigen jeweils einen direct-mapped TLB, um die Darstellung einfach zu halten. Ein n-Wege TLB kann entsprechend, ohne Änderung des Adressierungsmechanismus, verwandt werden.
Durch geeignete Wahl der Leitzahlen können TLB-Clashes vermieden bzw. ihre Häufigkeit verringert werden.
Nachfolgend soll darauf eingegangen werden, wie ein TLB in Bezug auf die den virtuellen Adressen zugeordneten Leitzahlen aktualisiert werden kann.
Freie Benutzer-definierte Leitzahlen
Bei dieser Methode wird im Falle eines TLB-Miss für den Eintrag in den TLB die Leitzahl z der ursprünglichen Komplettadresse verwandt (natürlich neben v′, r′ usw.).
Somit wird bei einem erneuten Zugriff über dieselbe Leit­ zahl (d. h. insbesondere auch über dieselbe Komplett­ adresse) in der Regel ein TLB-Hit erfolgen.
Zugriffe auf dieselbe Seite über verschiedene Leitzahlen sind möglich, belegen aber in der Regel unterschiedliche TLB-Einträge. Zum Flushen einer Seite muß deshalb die Seite für alle Leitzahlen geflusht werden. Häufig wird dies ein Flushen des gesamten TLBs nahelegen.
Zeiteindeutige Benutzer-definierte Leitzahlen
Jeder Page Table Eintrag der letzten Stufe (d. h. der direkt auf eine Datenseite verweist) enthält ein Leit­ zahlfeld z′. Beim TLB-Miss wird die vom Benutzer vorge­ gebene Leitzahl z nicht nur für den TLB-Eintrag verwandt, sondern auch mit z′ im Leitzahlfeld des Page-Table-Ein­ trags verglichen. Bei Nichtübereinstimmung (z ≠ z′) wird ein TLB-Flush mit (z′, v′) durchgeführt, d. h. ein even­ tuell vorhandener TLB-Eintrag auf derselben Seite wird gelöscht. Dann wird die neue Leitzahl im Leitzahlfeld des Page-Table-Eintrags vermerkt (z′ := z). (Dieser Schreib­ zugriff kann natürlich unterbleiben, wenn die im Page Table Eintrag vermerkte Leitzahl mit der aktuellen über­ einstimmt (z = z′)).
Schließlich wird der TLB mit (z, v′, r′) (und eventuell weiteren Parametern aus der Adreßumsetzung) geladen.
Da sich nun immer höchstens ein Eintrag auf einer Seite mit der Nummer v′ im TLB befindet, ist Flushing einer einzelnen Seite damit einfach möglich:
  • 1. Zuerst wird mittels der Page-Table eine Adreßumset­ zung von v′ durchgeführt. Diese liefert unter ande­ rem die aktuelle für v′ verwandte Leitzahl z′
  • 2. Mit der Komplettadresse a = (z′, v′) wird auf den TLB zugegriffen.
  • 3. Wurde dabei ein Treffer erzielt, wird der ent­ sprechende TLB-Eintrag geflusht.
  • 4. Die neue Leitzahl wird in den Page-Table-Eintrag übernommen.
Seiten können nach dieser Methode nur geflusht werden, solange sie über die Page Tables erreichbar sind.
Feste systemdefinierte Leitzahlen
Die Page Table Einträge der letzten Stufe enthalten ein Leitzahlfeld z′, das vom Systemkern gesetzt wird. Beim TLB-Miss wird überprüft, ob z = z′ gilt, d. h. ob die richtige Leitzahl in der Komplettadresse enthalten ist. Bei Ungleichheit wird ein Leitzahlfehler bzw. eine Excep­ tion signalisiert.
Systemdefinierte Leitzahlen mit Update
Die Page Table Einträge der letzten Stufe enthalten ein Leitzahlfeld z′, das vom Systemkern gesetzt wird. Beim TLB-Miss wird überprüft, ob z = z′ gilt, d. h. ob die richtige Leitzahl in der Komplettadresse enthalten ist. Bei Ungleichheit wird die Leitzahl aus dem Page-Table Eintrag übernommen: z := z′. Befindet sich die ur­ sprüngliche Adresse (z, v′) in einem Register r, so wird die neue Leitzahl z′ auch in dieses Register übernommen, d. h. es gilt dann r = (z′, v′). Ein erneuter Zugriff er­ folgt dann automatisch mit der "richtigen" Leitzahl.
ldz-Instruktion
Bei allen zuvor genannten Varianten (mit Ausnahme der ersten) kann eine neue Maschineninstruktion
ldz r, v
implementiert werden, die die aktuelle Leitzahl der durch die virtuelle Adresse v bestimmten Seite in das Register r lädt. Wenn das Leitzahl-Laden so implementiert ist, daß nur die Leitzahlbits des Registers verändert werden, kann man mit ldz r, [r] eine Komplettadresse mit "richtiger" Leitzahl bilden.
Leitzahlgesteuertes Ersetzen von TLB-Einträgen
Man kann die Leitzahlen um ein oder mehrere Steuerbits erweitern, die nicht direkt zur Indizierung des TLBs verwendet werden, sondern der TLB-Verwaltung dienen, beispielsweise festlegen, daß die entsprechenden Einträge im TLB besonders früh oder besonders spät verdrängt wer­ den sollen. Beispielsweise wird Bit 7 der Leitzahl als early flush bit verwendet. Zur Adressierung des TLBs werden nur die Bits 0 . . . 6 der Leitzahl verwandt. Bit 7, das early flush bit, wird in den TLB-Eintrag als Steuer­ bit übernommen. Soll dann ein TLB-Eintrag des entspre­ chenden TLB-Sets verdrängt werden, wird vorrangig ein Eintrag mit gesetztem early flush bit ausgewählt.

Claims (8)

1. Verfahren zum Betreiben einer Adreßumsetzvorrichtung zum Umsetzen einer virtuellen Adresse eines mehrere Seiten umfassenden virtuellen Adreßraumes in eine Realadresse eines mehrere Seiten umfassenden Real­ adreßraumes mittels eines Translation-Lookaside-Buf­ fers und einer Page-Table, wobei
  • - die virtuelle Adresse einen ersten Adreßteil und einen zweiten Adreßteil aufweist und der virtuel­ len Adresse eine Leitzahl zugeordnet ist,
  • - die Realadresse einen ersten Adreßteil und einen zweiten Adreßteil aufweist und
  • - der Translation-Lookaside-Buffer eine Vielzahl von Einträgen aufweist, von denen jeder mindestens ein Markierungsfeld und mindestens ein dem Markie­ rungsfeld zugeordnetes Datenfeld aufweist, wobei zur Adreßumsetzung wie folgt vorgegangen wird:
  • - der Translation-Lookaside-Buffer wird mittels der der virtuellen Adresse zugeordneten Leitzahl oder mittels einer Abbildung der der virtuellen Adresse zugeordneten Leitzahl auf einen Index oder mittels einer Abbildung der der virtuellen Adresse zuge­ ordneten Leitzahl und des ersten Adreßteils der virtuellen Adresse auf einen Index indiziert;
  • - es wird überprüft, ob der Inhalt eines Markie­ rungsfeldes des indizierten Eintrages des Trans­ lation-Lookaside-Buffers mit dem ersten Adreßteil der virtuellen Adresse übereinstimmt;
  • - existiert ein Markierungsfeld mit einem mit dem ersten Adreßteil der virtuellen Adresse überein­ stimmenden Inhalt, so liegt ein TLB-Hit vor und es wird die Realadresse aus dem Inhalt des zu diesem Markierungsfeld gehörenden Datenfeldes als erster Adreßteil der Realadresse und aus dem zweiten Adreßteil der virtuellen Adresse zusammengesetzt;
  • - existiert kein Markierungsfeld in dem indizierten Eintrag, dessen Inhalt mit dem ersten Adreßteil der virtuellen Adresse übereinstimmt, so liegt ein TLB-Miss vor und es wird der erste Adreßteil der Realadresse aus der Page-Table hergeleitet, wobei die Page-Table anhand der virtuellen Adresse par­ siert wird und die Realadresse aus dem sich aus der Page-Table ergebenden ersten Adreßteil und aus dem zweiten Adreßteil der virtuellen Adresse zu­ sammengesetzt wird und wobei der erste Adreßteil der virtuellen Adresse sowie der sich aus der Pa­ ge-Table ergebende erste Adreßteil der Realadresse in den TLB übernommen werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß bei einem TLB-Miss der erste Adreßteil der virtu­ ellen Adresse und der sich aus der Page-Table erge­ bende erste Adreßteil der Realadresse in denjenigen Eintrag des Translation-Lookaside-Buffers geladen werden, der bei dem dem TLB-Miss zugrundeliegenden Zugriff auf den Translation-Lookaside-Buffer indi­ ziert worden ist.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet,
  • - daß die Page-Table zusätzlich zu dem ersten Adreß­ teil einer Realadresse ein Leitzahlfeld mit einer Leitzahl liefert,
  • - daß der Inhalt des sich bei der Parsierung der Page-Table ergebenden Leitzahlfeldes mit der der virtuellen Adresse zugeordneten Leitzahl vergli­ chen wird,
  • - daß in dem Fall, in dem der Inhalt des Leitzahl­ feldes nicht mit der der virtuellen Adresse zuge­ ordneten Leitzahl übereinstimmt,
  • - der Translation-Lookaside-Buffer anhand des Inhalts des Leitzahlfeldes oder anhand des In­ halts des Leitzahlfeldes und des ersten Adreß­ teils der virtuellen Adresse indiziert wird,
  • - beim Vorliegen eines TLB-Hits das betreffende Datenfeld des Translation-Lookaside-Buffers als ungültig markiert wird und
  • - die der virtuellen Adresse zugeordnete Leitzahl in das Leitzahlfeld des Page-Table-Eintrags abgespeichert wird, und
  • - daß der erste Adreßteil der virtuellen Adresse und der sich aus der Page-Table ergebende erste Adreß­ teil der Realadresse in denjenigen Eintrag des Translation-Lookaside-Buffers geladen werden, der anhand der der virtuellen Adresse zugeordneten Leitzahl oder anhand der der virtuellen Adresse zugeordneten Leitzahl und des ersten Adreßteils der virtuellen Adresse indiziert worden ist.
4. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet,
  • - daß die Page-Table zusätzlich zu dem ersten Adreß­ teil einer Realadresse eine Leitzahl liefert, und
  • - daß bei einem TLB-Miss die Realadresse nur dann anhand des sich aus der Page-Table ergebenden er­ sten Adreßteils zusammengesetzt wird, wenn die ebenfalls von der Page-Table gelieferte Leitzahl mit der der virtuellen Adresse zugeordneten Leit­ zahl übereinstimmt, und andernfalls ein Leitzahl-Fehler signalisiert wird.
5. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet,
  • - daß die Page-Table zusätzlich zu dem ersten Adreß­ teil einer Realadresse eine Leitzahl liefert, und
  • - daß in dem Fall, in dem ein TLB-Miss vorliegt und die von der Page-Table gelieferte Leitzahl nicht mit der der virtuellen Adresse zugeordneten Leit­ zahl übereinstimmt, der virtuellen Adresse für deren aktuelle Umsetzung und für deren zukünftige Umsetzungen die von der Page-Table gelieferte Leitzahl zugeordnet wird.
6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die den virtuellen Adressen zuge­ ordneten Leitzahlen ein oder mehrere Steuerbits auf­ weisen, die nicht zur Indizierung des Translation-Lookaside-Buffers, sondern zur Verwaltung des Trans­ lation-Lookaside-Buffers verwendet werden.
7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die virtuelle Adresse Teil eines Bitstrings ist, der Bits für den ersten Adreßteil der virtuellen Adresse, Bits für den zweiten Adreßteil der virtuellen Adresse und Bits für die der virtuel­ len Adresse zugeordneten Leitzahl aufweist.
8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß jeder Eintrag des TLB mindestens ein einem Markierungsfeld zugeordnetes Leitzahlfeld aufweist, daß die der virtuellen Adresse zugeordnete Leitzahl mit dem Inhalt desjenigen Markierungsfeldes des indizierten Eintrags des Translation-Lookaside-Buffers verglichen wird, dessen Inhalt gleich dem ersten Adreßteil der virtuellen Adresse ist und daß ein TLB-Hit dann vorliegt, wenn die der virtuellen Adresse zugeordnete Leitzahl gleich der Leitzahl des Leitzahlfeldes ist.
DE19602872A 1995-01-27 1996-01-29 Verfahren zum Betreiben einer Adreßumsetzvorrichtung Withdrawn DE19602872A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19602872A DE19602872A1 (de) 1995-01-27 1996-01-29 Verfahren zum Betreiben einer Adreßumsetzvorrichtung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19502473 1995-01-27
DE19602872A DE19602872A1 (de) 1995-01-27 1996-01-29 Verfahren zum Betreiben einer Adreßumsetzvorrichtung

Publications (1)

Publication Number Publication Date
DE19602872A1 true DE19602872A1 (de) 1996-08-08

Family

ID=7752416

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19602872A Withdrawn DE19602872A1 (de) 1995-01-27 1996-01-29 Verfahren zum Betreiben einer Adreßumsetzvorrichtung

Country Status (3)

Country Link
US (1) US6079004A (de)
DE (1) DE19602872A1 (de)
WO (1) WO1996023260A1 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6625715B1 (en) * 1999-12-30 2003-09-23 Intel Corporation System and method for translation buffer accommodating multiple page sizes
US6598050B1 (en) * 2000-02-11 2003-07-22 Integrated Device Technology, Inc. Apparatus and method for limited data sharing in a multi-tasking system
US7133951B1 (en) 2000-02-29 2006-11-07 Bourekas Philip A Alternate set of registers to service critical interrupts and operating system traps
US6567907B1 (en) * 2000-10-19 2003-05-20 Hewlett-Packard Development Company L.P. Avoiding mapping conflicts in a translation look-aside buffer
KR100450675B1 (ko) * 2002-03-19 2004-10-01 삼성전자주식회사 성능향상 및 전력소모를 감소시킬 수 있는 tlb
US20030225992A1 (en) * 2002-05-29 2003-12-04 Balakrishna Venkatrao Method and system for compression of address tags in memory structures
US8924686B2 (en) * 2009-10-08 2014-12-30 Arm Limited Memory management unit
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8635430B2 (en) * 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US9588902B2 (en) * 2012-12-04 2017-03-07 Advanced Micro Devices, Inc. Flexible page sizes for virtual memory
US10185731B2 (en) * 2016-03-31 2019-01-22 Arm Limited Indexing entries of a storage structure shared between multiple threads
US11126714B2 (en) 2017-11-29 2021-09-21 Arm Limited Encoding of input to storage circuitry
US10819736B2 (en) 2017-11-29 2020-10-27 Arm Limited Encoding of input to branch prediction circuitry
KR20200013897A (ko) * 2018-07-31 2020-02-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US20230058863A1 (en) * 2021-08-10 2023-02-23 Baidu Usa Llc Countermeasures against side-channel attacks on secure encrypted virtualization (sev)-secure nested paging (sev-snp) processors

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0528584A1 (de) * 1991-08-12 1993-02-24 International Business Machines Corporation Adressenübersetzungspufferspeicher für ein virtuelles Datenspeichersystem

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR10582E (fr) * 1970-06-29 1909-07-30 Paul Alexis Victor Lerolle Jeu de serrures avec passe-partout
US4376297A (en) * 1978-04-10 1983-03-08 Signetics Corporation Virtual memory addressing device
US4215402A (en) * 1978-10-23 1980-07-29 International Business Machines Corporation Hash index table hash generator apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0528584A1 (de) * 1991-08-12 1993-02-24 International Business Machines Corporation Adressenübersetzungspufferspeicher für ein virtuelles Datenspeichersystem

Also Published As

Publication number Publication date
US6079004A (en) 2000-06-20
WO1996023260A1 (de) 1996-08-01

Similar Documents

Publication Publication Date Title
DE19602872A1 (de) Verfahren zum Betreiben einer Adreßumsetzvorrichtung
DE2260353C2 (de) Schaltungsanordnung für die Adressenumsetzung in einer Datenverarbeitungsanlage
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE2807476C2 (de) Speichereinrichtung mit mehreren virtuellen Adreßräumen
DE2227882C2 (de) Virtuelle Speicheranordnung
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE68924833T2 (de) Verfahren und Anordnung zur Datenabbildung in einem Datenverarbeitungssystem mit virtuellem Speicher.
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE4410060A1 (de) Rechenvorrichtung
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE2455047A1 (de) Datenverarbeitungssystem
DE69522426T2 (de) Wort-Wiederauffindungsapparat für ein Wörterbuch
EP0755541A1 (de) Cache-speichervorrichtung zum speichern von daten
DE3689276T2 (de) Verfahren zur Aktualisierung der Informationen in einem Adressenübersetzungspufferspeicher.
EP0760134A1 (de) Speichervorrichtung zum speichern von daten
DE69229491T2 (de) Verfahren und Gerät um die lexikalen Eigenschaften von zusammengesetzten Wörtern zu bestimmen
DE3832758A1 (de) Computerisierte arbeitsstation
DE68924557T2 (de) Seitentabellen in einem virtuellen Speicher.
DE3216238C1 (de) Datenverarbeitungsanlage mit virtueller Teiladressierung des Pufferspeichers
DE2613703C2 (de) Schaltungsanordnung zum Übersetzen von Programmtexten
DE19538961C2 (de) Speichervorrichtung zum Speichern von Daten
DE3633227A1 (de) Anordnung zur umwandlung einer virtuellen adresse in eine physikalische adresse fuer einen in seiten organisierten arbeitsspeicher einer datenverarbeitungsanlage
DE10260606B4 (de) Vorrichtung zur Übersetzung mehrerer virtueller Adressen auf eine einzige physikalische Adresse

Legal Events

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