DE10002120A1 - Logikstruktur eines Adressumsetzpuffers - Google Patents
Logikstruktur eines AdressumsetzpuffersInfo
- Publication number
- DE10002120A1 DE10002120A1 DE10002120A DE10002120A DE10002120A1 DE 10002120 A1 DE10002120 A1 DE 10002120A1 DE 10002120 A DE10002120 A DE 10002120A DE 10002120 A DE10002120 A DE 10002120A DE 10002120 A1 DE10002120 A1 DE 10002120A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- level
- data
- tlb
- buffer
- 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.)
- Granted
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/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Abstract
Der Grundgedanke der vorliegenden Erfindung besteht in der Bereitstellung einer Adressumsetzpuffer-(TLB)-Anordnung, die auf vorteilhafte Art und Weise zwei Pufferspeicher verwendet, einen kleinen First-Level-TLB1 und einen größeren Second-Level-TLB2. Der Second-Level-TLB stellt dem First-Level-TLB Adressdaten zur Verfügung, wenn die gewünschte virtuelle Adresse nicht in dem First-Level-TLB enthalten ist. Gemäß der Erfindung ist der Second-Level-TLB auf vorteilhafte Art und Weise so strukturiert, dass er zwei satzadressierte n-Wege-Teileinheiten umfasst, von denen eine, eine Einheit der höheren Ebene, bestimmte höhere Ebenen der Adressumsetzung abdeckt, während die andere, eine Einheit der unteren Ebene, bestimmte untere Umsetzebenen abdeckt. Gemäß der vorliegenden Erfindung enthalten bestimmte Adressdaten eine bestimmte Anzahl von virtuellen Adressbits der mittleren Ebene (MLVA-Bits), d. h. 8 Bits, die z. B. als Indexadresse für den Adressbereich der Teileinheit der höheren Ebene dienen können. Auf diese Weise werden die gleichen Daten als Markierungsdaten in der Teileinheit der unteren Ebene verwendet und dienen bei einer Suchoperation als Kurzreferenz, um so die absolute Adresse der betreffenden virtuellen Adresse zu finden. Außerdem werden von beiden TLB-Strukturen die üblichen Statusbits wie beispielsweise Gültigkeitsbits verwendet (Fig. 5).
Description
Die Erfindung bezieht sich im Allgemeinen auf Hardware und
Systemsoftware von Computersystemen und insbesondere auf ein
Verfahren und System für die Verbesserung der Leistung von
Adressumsetzpuffern während der Adressumsetzung.
Virtuelle Speicherverfahren, einschließlich der Bereitstellung
von virtuellen Codeadressen, bedeuten eine grundlegende
Vereinfachung der Arbeit von Anwendungsprogrammierern, da diese
sich so keine Gedanken über die physikalischen Stellen zu machen
brauchen, an denen der Code in den Speicher gestellt werden soll,
wenn das Programm geladen wird, um ausgeführt zu werden.
Auf diese Weise steht für die Programmierung nahezu unbegrenzter
virtueller Adressraum zur Verfügung. In einem als Adressumsetzung
bezeichneten Vorgang werden derartige virtuelle Adressen in
physikalische Adressen umgesetzt, mit denen die physikalischen
Speicherstellen des Hauptspeichers während der Programmausführung
auf eindeutige Art und Weise definiert werden.
Im virtuellen Speicher ist die Adresse in eine virtuelle
Seitenzahl und einen Seitenversatz untergliedert. Bei der
Umsetzung in physikalische Speicheradressen stellt die
physikalische Seitenzahl den höheren Teil der physikalischen
Seitenadresse dar, während der Seitenversatz, der nicht verändert
wird, den Teil der unteren Ebene bildet. Die Anzahl der Bits im
Feld für den Seitenversatz bestimmt die Seitengröße. Alle Seiten
werden in Seitentabellen verwaltet.
Seitentabellen sind so groß, dass sie im Hauptspeicher
gespeichert werden müssen. Das bedeutet, dass jeder
Speicherzugriff mindestens doppelt so lange dauert: ein
Speicherzugriff, um die physikalische Adresse zu erhalten, und
ein zweiter Zugriff, um die Daten zu erhalten. Der Schlüssel für
die Verbesserung der Zugriffsleistung liegt darin, die
Verweisgebundenheit der Seitentabelle auszunutzen: Wenn eine
virtuelle Seitenzahl umgesetzt wird, muss dies vermutlich sehr
bald während der Ausführung des Programms wiederholt werden, da
die Verweise auf die Datenwörter dieser Seite sowohl zeitlich als
auch räumlich gebunden sind. Daher umfassen moderne Maschinen
einen speziellen Cachespeicher, in dem die zuletzt erfolgten
Umsetzungen zwischengespeichert werden. Dieser spezielle
Adressumsetzcache wird im Folgenden als Adressumsetzpuffer oder
TLB bezeichnet.
High-End-Computersysteme wie das IBM ESA390 oder ESAME System
werden mit einem immer größeren Hauptspeicher ausgestattet, um
die Anzahl der Speicherzugriffe auf externe Speichervorrichtungen
zu verringern.
Der zunehmende Hauptspeicher benötigt jedoch größere TLBs, die
die in absolute Adressen umgesetzten virtuellen Adressen
enthalten. Ein größerer TLB hat aber auch eine längere
Zugriffszeit, die zur Zugriffszeit von Befehls- bzw. Datencache
hinzukommt.
So kann es trotz einer Verbesserung der Leistung durch einen
größeren Hauptspeicher und größere Cachespeicher auf Grund der
längeren Zugriffszeit des TLB zu einer Leistungsverschlechterung
kommen.
Bei High-End-Systemen lässt sich dieses Problem lösen, indem ein
Second-Level-TLB verwendet wird, ähnlich wie zur Unterstützung
eines First-Level-Caches ein Second-Level-Cache eingesetzt wird.
In einer derartigen Anordnung ist der First-Level-TLB, im
Folgenden als TLB1 bezeichnet, klein und hat daher eine kurze
Zugriffszeit, während ein Second-Level-TLB, der im Folgenden als
TLB2 bezeichnet wird, circa 10 Mal mehr Einträge aufweist und dem
TLB1 Daten zur Verfügung stellt, wenn eine erforderliche
Umsetzung im TLB2, nicht jedoch im TLB1 vorhanden ist. Wenn ein
TLB2 jedoch die gleiche Struktur wie ein TLB1 hat und dabei ein
10 Mal größeres Datenvolumen enthält, kann ein Zugriff nicht mehr
innerhalb eines Zyklus erfolgen, so dass ein etwaiger
Leistungsgewinn wieder verloren geht.
Es ist daher die Aufgabe der vorliegenden Erfindung, eine TLB-
Struktur oder TLB-Anordnung bereitzustellen, die für einen großen
Adressraum, d. h. größer oder gleich 64-Bit-Adressen, geeignet ist
und gleichzeitig einen Leistungsverlust vermeidet, wie er durch
eine längere Zugriffszeit auf Grund umfangreicherer TLB-
Strukturen verursacht wird, wie sie sich aus der komplexeren
Umsetzung größerer Adressen zwangsläufig ergeben.
Es ist eine weitere Aufgabe der vorliegenden Erfindung, neben der
Speicherung der endgültigen Umsetzwerte auch eine Speicherung der
Zwischenwerte der Adressumsetzung bereitzustellen.
Die Aufgaben der Erfindung werden durch die Merkmale realisiert,
die in den beigefügten Nebenansprüchen genannt sind. Weitere
vorteilhafte Anordnungen und Ausführungsformen der Erfindung
werden in den betreffenden Nebenansprüchen beschrieben.
Der Grundgedanke der vorliegenden Erfindung besteht in der
Bereitstellung einer Anordnung von Adressumsetzspeichern (TLBs),
die auf vorteilhafte Art und Weise zwei Pufferspeicher verwendet,
einen kleinen First-Level-TLB1 und einen größeren Second-Level-
TLB2. Der Second-Level-TLB stellt dem First-Level-TLB Adressdaten
zur Verfügung, wenn die gewünschte virtuelle Adresse nicht in dem
First-Level-TLB enthalten ist. Gemäß der Erfindung ist der
Second-Level-TLB auf vorteilhafte Art und Weise so strukturiert,
dass er zwei satzadressierte n-Wege-Teileinheiten umfasst, von
denen eine, eine Einheit der höheren Ebene, bestimmte höhere
Adressumsetzebenen abdeckt, und die andere, eine Einheit der
unteren Ebene, eine bestimmte untere Umsetzebene abdeckt. Gemäß
der vorliegenden Erfindung enthalten bestimmte Adressdaten eine
bestimmte Anzahl von virtuellen Adressbits der mittleren Ebene
(MLVA-Bits), d. h. 8 Bits beispielsweise bei 64-Bit-Adressen, die
als Indexadresse für den Adressbereich der Teileinheit der
höheren Ebene dienen können. Auf diese Weise werden die gleichen
Daten als Markierungsdaten in der Teileinheit der unteren Ebene
verwendet und dienen darin bei einer Suchoperation als
Kurzreferenz, um so bei der jeweiligen virtuellen Adressumsetzung
die absoluten Adressen zu finden. Außerdem werden von beiden TLB-
Strukturen die üblichen Statusbits, wie beispielsweise
Gültigkeitsbits, verwendet.
Ein Vorteil besteht darin, dass die Ausgabe der Teileinheit der
höheren Ebene eine gültige Anfangsadresse einer Seitentabelle
ist, wenn für die höherwertigen Adressbits eine Übereinstimmung
festgestellt wird und zuvor ein gültiger Eintrag erzeugt wurde.
Auf diese Weise kann die absolute physikalische Adresse sehr
schnell gefunden werden. Da bei bestimmten Prozessorarchitekturen
mehrere Zugriffe auf die Umsetztabelle erforderlich sind, so
erfordert der IBM Mainframerechner ESAME fünf Zugriffe für die
Umsetzung einer 64-Bit-Adresse, und da die Adressumsetzung in der
untersten und zuletzt verwendeten Tabelle, d. h. in der
Seitentabelle, erfolgt, wird ihre Startadresse, d. h. die
Anfangsadresse der Seitentabelle - im Folgenden als PTO
bezeichnet -, gespeichert und kann erneut verwendet werden, wenn
diese Seitentabelle benötigt wird. So werden alle Zugriffe auf
Umsetztabellen der höheren Ebene, z. B. Segment-, Regionstabellen
usw. übergangen, was sich in einem erheblichen Leistungsgewinn
bemerkbar macht. Durch dieses Funktionsmerkmal kann die
Startadresse der Seitentabelle innerhalb eines Zyklus gefunden
und beim letzten Tabellenzugriff zum Erhalt der absoluten Adresse
verwendet werden.
Als weiteres vorteilhaftes Merkmal der vorliegenden Erfindung
kann auf vorteilhafte Art und Weise ein LRU-Mechanismus in der
Teileinheit der höheren Ebene bereitgestellt werden, mit dem die
Speichereinheiten der Teileinheit der höheren Ebene gleichmäßig
gefüllt werden. Dies erhöht die Leistungsfähigkeit der TLB-
Anordnung.
Ein weiterer Vorteil besteht in der Einsparung von Chipplatz, der
für die Realisierung der oben genannten TLB-Anordnung
erforderlich ist: Der PTE-RAM enthält nur die absolute Adresse
und das Gültigkeitsbit, während sich die Adressmarkierungsdaten
und der Tabellenstammzeiger im CRSTE befinden, so dass sie
gemeinsam mehreren PTE-Einträgen bereitgestellt werden.
Die vorliegende Erfindung ist beispielhaft dargestellt und nicht
durch die Gestalt der Figuren in den beigefügten Zeichnungen
beschränkt, bei denen:
Fig. 1 eine schematische Darstellung des Stands der Technik
ist, die bestimmte Prinzipien der.
Adressumsetzverwaltung und die dazugehörigen logischen
und physikalischen Einheiten zeigt,
Fig. 2 eine schematische Darstellung einer Realisierung nach
Stand der Technik ist, die einen satzadressierten 4-
Wege-Cache zeigt, der bei der Adressumsetzung als TLB
verwendet wird,
Fig. 3 ein schematisches Blockschaltbild ist, das den
grundlegenden Datenstrom bei der Adressumsetzung gemäß
der Erfindung zeigt,
Fig. 4 ein schematisches Blockschaltbild der grundlegenden
Struktur des Second-Level-TLBs ist, der in der TLB-
Anordnung gemäß der Erfindung verwendet wird,
Fig. 5 ein schematisches Blockschaltbild einer Speichereinheit
aus Fig. 4 zeigt, das den Steuerungsablauf der
grundlegenden Logikoperationen beschreibt, die für eine
TLB2-Veweisoperation erforderlich sind, und
Fig. 6 ein Flussdiagramm ist, das die grundlegenden Merkmale
des Steuerungsablaufs während einer TLB2-
Verweisoperation gemäß der Erfindung zeigt.
Die Figuren im Allgemeinen und insbesondere Fig. 1 zeigen einen
Adressumsetzpuffer (TLB) 10 nach Stand der Technik, eine
Seitentabelle 20, einen physikalischen Speicher 30 und eine
Speicherplatte 40. Während der Ausführung eines Programms muss
eine virtuelle Adresse in eine physikalische Adresse umgesetzt
werden. In der vereinfachten Darstellung aus der Figur enthält
der TLB 10 eine Teilgruppe der Umsetzungen von virtuellen auf
physikalische Adressen, die von der Seitentabelle 20 verarbeitet
werden. Da der TLB 10 ein Cachespeicher ist, verfügt er über ein
Markierungsfeld 14, das einige der höherwertigen Bits der
virtuellen Seitenadresse als Markierung enthält. In jedem TLB-
Eintrag wird ein weiteres Statusfeld 16 bereitgestellt, das
angibt, ob die physikalische Seitenadresse in Feld 18 noch gültig
ist, da der ältere Eintrag ungültig gesetzt werden muss, wenn ein
neuer Eintrag benötigt wird. Wenn sich z. B. die Task ändert,
werden alle Einträge gelöscht, so dass der TLB für den Empfang
neuer Adressdaten bereit ist, die zu der neuen Task gehören.
Generell ist der TLB ein Cachespeicher, der lediglich
Adressumsetzungen der Umsetztabelle enthält. So beinhaltet jeder
Markierungseintrag des TLB einen Teil der virtuellen Seitenzahl,
während jeder Dateneintrag des TLB eine physikalische Seitenzahl
enthält. Da es nicht sinnvoll ist, bei jedem Verweis auf die
Seitentabelle zuzugreifen, wird möglichst oft auf den TLB 10
zugegriffen. Daher muss er weitere Bits beinhalten, wie
beispielsweise das Referenzbit, einen Speicherschlüssel, das
Änderungsbit für die Steuerung des Schreibzugriffs, ein
Schreibschutzbit usw.
Wenn der TLB 10 keinen übereinstimmenden Eintrag für eine Seite
enthält, muss die Seitentabelle 20 durchsucht werden. Die
Seitentabelle 20 liefert entweder eine physikalische Seitenzahl
für die Seite, aus der ein TLB-Eintrag erzeugt werden kann, oder
sie gibt an, dass sich die Seite auf der Speicherplatte 40
befindet, so dass eine Fehlseitenbedingung auftritt.
Bei jedem Verweis wird die virtuelle Seitenzahl im TLB gesucht.
Wenn eine Übereinstimmung gefunden wird, wird aus der
physikalischen Seitennummer die Adresse gebildet, und das
entsprechende Referenzbit wird aktiviert. Wenn der Prozessor
einen Schreibvorgang ausführt, wird auch das Änderungsbit
aktiviert. Wenn im TLB keine Übereinstimmung festgestellt wird,
muss ermittelt werden, ob es sich um eine Fehlseitenbedingung
oder nur um einen TLB-Fehlgriff handelt. Da der TLB erheblich
weniger Einträge enthält als der physikalische Speicher Seiten
umfasst, treten sehr viel häufiger TLB-Fehlgriffe als echte
Fehlseitenbedingungen auf. Wenn bei einem TLB-Fehlgriff die Seite
im Speicher vorhanden ist, kann die Umsetzung aus der
Seitentabelle in den TLB geladen und ein erneuter Verweisversuch
gestartet werden. Wenn sich die Seite nicht im Speicher befindet,
liegt eine Fehlseitenbedingung vor, und das Betriebssystem muss
eine Ausnahmebedingungsnachricht erhalten.
Fig. 2 ist eine ausführlichere Darstellung der Realisierung eines
satzadressierten 4-Wege-Caches nach Stand der Technik, der bei
der Adressumsetzung als TLB verwendet wird, um so die
Einzelheiten der TLB-Architektur zu erläutern, die zum
Verständnis des Konzepts der vorliegenden Erfindung erforderlich
sind.
Gegenstand der Adressumsetzung ist eine virtuelle 32-Bit-Adresse
42, die im Folgenden als VA bezeichnet wird. Die Bits 12 bis 19
dieser Adresse dienen als Index für die Adressierung einer
spezifischen Zeile in jeder der vier TLB-Gruppen. Die Bits 0 bis
11 werden in den Vergleichern 44 mit dem Markierungsfeld 14 der
zugehörigen Zeile verglichen.
Die Vergleicher 44 ermitteln, welches Element der ausgewählten
Gruppe (wenn überhaupt) mit der Markierung übereinstimmt. Anhand
der Ausgabe der Vergleicher werden die Daten 46 unter Verwendung
eines Multiplexers 48 aus einer der vier indexierten Gruppen
ausgewählt.
Fig. 3 zeigt eine ausführlichere Darstellung des grundlegenden
Datenstroms bei der Adressumsetzung gemäß der Erfindung.
Die von der Erfindung bereitgestellte Einheit für die Verwaltung
der Adressumsetzung (MMU), die im Blockschaltbild der. Architektur
mit der Ziffer 50 gekennzeichnet ist, umfasst mindestens eine
Adressumsetz-ALU 52 und eine Gruppe von Schattenregistern 54
sowie einen Second-Level-Adressumsetzpuffer 56. Die Einheit für
die Verwaltung der Adressumsetzung 50 kooperiert mit einem First-
Level-Befehlscache 62 (TLB1) und einem First-Level-Datencache 64
(TLB1). Der Befehlscache 62 fordert vom Adressumsetzer 50 eine
Adressumsetzung an. Die hierfür benötigten Tabellenzugriffe sind
durch einen separaten Pfeil 63 dargestellt, der die
Zugriffsoperation anzeigt. Die MMU 50 ist auf der linken Seite
der Zeichnung mit einer Ausführungseinheit 70 verbunden, die ihr
die erforderlichen Umsetzparameter wie z. B. 32- oder 64-Bit-
Adressen bereitstellt und die von ihr die
Ausnahmebedingungsnachricht empfängt, wenn z. B. ein ungültiger
Tabelleneintrag vorliegt.
Die Adressdaten werden an beide First-Level-Caches 62, 64
übertragen, wenn eine entsprechende physikalische Adresse nicht
vorhanden ist. In der beispielhaften Architektur aus Fig. 3 sind
beide First-Level-Caches 62, 64 für 512 Einträge konzipiert. Auf
diese Weise bleiben beide First-Level-Caches klein und
ermöglichen so kurze Zugriffszeiten auf die am häufigsten
benötigten Adressdaten.
Der Second-Level-Adressumsetzpuffer (TLB2) 56 ist gemäß einer
bevorzugten Ausführungsform der Erfindung als satzadressierter 4-
Wege-Cache mit 1024, d. h. 1 K, Einträgen in jeder der vier
Gruppen abgebildet, so dass sich eine maximale Eintragszahl von 4
K für die Verwaltung der Adressumsetzung von 64-Bit-Adressen
ergibt.
Wenn im Befehlscache 62 bzw. im Datencache 64 kein gültiger TLB1-
Eintrag vorhanden ist, wird die entsprechende virtuelle Adresse
zusammen mit der Tabellenanfangsadresse der höchsten
Umsetztabelle an den Adressumsetzer 50 übertragen. Der Umsetzer
beginnt sofort mit dem Umsetzvorgang und sucht gleichzeitig im
TLB2 56 nach der erforderlichen physikalischen Adresse.
Bei einem TLB2-Treffer wird die physikalische Adresse an den
Befehlscache 62 bzw. den Datencache 64 übertragen, und die
Umsetzung ist beendet. Bei einem Fehlgriff wird die
Adressumsetzung so lange fortgesetzt, bis die richtige
physikalische Adresse gefunden wird und der Umsetzer die
Operation beendet (siehe auch Fig. 6).
Am Ende des Umsetzvorgangs werden die resultierenden Daten in
TLB1 und TLB2 gespeichert, von denen die Anforderung ausgegeben
wurde.
Fig. 4 ist eine ausführlichere Darstellung der grundlegenden
Struktur des Second-Level-Caches TLB2, der in der TLB-Anordnung
gemäß der Erfindung und in einer Ausführungsform der vorliegenden
Erfindung verwendet wird, die für die IBM ESAME Architektur
geeignet ist. Diese Architektur verwendet kombinierte Regions-
und Segmenttabellen-TLB-Einträge (CRSTE) und mit diesen
verbundene Seitentabellen-TLB-Einträge (PTE), wobei bei der
Adressumsetzung zuerst Regionen, dann Segmente und anschließend
Seiten herangezogen werden.
Eine bevorzugter Organisationstyp ist die 4- oder 8-Wege-
Satzadressierung. In dem Beispiel aus Fig. 4 ist der 4-Wege-Typ
abgebildet.
Jede der vier Zeilen umfasst eine so genannte CRSTE-
Speichereinheit 80, d. h. 80a bis 80d, mit jeweils einem RAM-
Bereich 81a bis 81d und einem CAM-Bereich 82a bis 82d, die je 256
Einträge enthalten, sowie eine PTE-TLB2-Speicheranordnung, die
ebenfalls einen RAM-Bereich 83a bis 83d und einen CAM-Bereich 84a
bis 84d umfasst.
In jeder Speichereinheit 80 ist der CRSTE-TLB2 mit dem PTE-TLB2
verknüpft, der einen ähnlichen satzadressierten 4-Wege-
Organisationstyp für insgesamt 1024 Einträge (4 × 256 = 1024 PTE-
Einträge) aufweist wie der CRSTE-TLB2.
Sowohl der CRSTE-TLB2 als auch der PTE-TLB2 bestehen aus einem
RAM-Bereich und einem CAM-Bereich.
Der Logikinhalt der RAM-Einträge des CRSTE-TLB2 besteht aus der
Tabellenanfangsadresse (TO) der Umsetztabelle der höchsten Ebene,
d. h. dem Stammzeiger, der Anfangsadresse der Seitentabelle (PTO)
sowie den Adressmarkierungsdaten VA. Bestimmte sonstige Bits, die
allen Seiten gemeinsam sind, z. B. Bits geschützter Segmente,
können hier ebenfalls enthalten sein.
Der CRSTE-CAM, d. h. der Assoziativspeicher, beinhaltet mindestens
das Gültigkeitsbit für den Eintrag zusammen mit bestimmtem Hash-
Taskcode, der für die Löschung aller Einträge eines Tasks
verwendet werden kann, wenn sie nicht mehr benötigt werden, d. h.
wenn die Daten im CAM mit den extern bereitgestellten Daten
übereinstimmen, wird das zugehörige Gültigkeitsbit des Eintrags
zurückgesetzt. Selbstverständlich können je nach den
Erfordernissen der jeweiligen MMU-Architektur weitere Einträge
enthalten sein.
Der Logikinhalt des PTE-TLB2-RAM lautet wie folgt:
Die absolute Adresse (ABS_ADR), d. h. die der virtuellen Adresse
entsprechende physikalische Adresse sowie ein Bit für den
Seitenschutz.
Der Logikinhalt des PTE-CAM lautet wie folgt:
Ein Gültigkeitsbit (VALIDB) für den Eintrag und Markierungsdaten
(LINKB) für die Verknüpfung mit CRSTE. Diese Funktion ist
erforderlich, um alle PTE-Einträge, die mit einem spezifischen
CRSTE-Eintrag verknüpft sind, ungültig setzen zu können, wenn der
CRSTE-Eintrag ersetzt wird.
Obwohl dies nicht abgebildet ist, kann jeder PTE-TLB2-Eintrag
optional auch einen Speicherschlüssel enthalten.
Allgemein gilt, dass bei jedem Eintrag in die CRSTE/PTE-Struktur
die acht virtuellen Adressbits VA(34:41), die in Fig. 4 als
Verknüpfungsbits (LINKB) bezeichnet werden und zur Adressierung
der CRSTE-Zeile dienen, direkt im PTE-TLB2 gespeichert werden.
Jeder Eintrag des TLB2-PTE wird einer eindeutigen CRSTE-Zeile
zugeordnet, nämlich derjenigen, die für die Erzeugung des
Eintrags im PTE-TLB2 verwendet wurde. Grundsätzlich kann ein und
dieselbe VA(34:41)-Zahl an jeder Stelle des PTE-TLB2 stehen.
Wenn je nach LRU-Wert ein CRSTE-Eintrag ersetzt werden muss,
müssen alle PTE-Werte mit der gleichen VA(34:41) ungültig gesetzt
werden, dies erfolgt üblicherweise mit einer Assoziativspeicher-
(CAM)-Suchoperation.
Die Reihenfolge der ersten Fülloperation sollte auf eine
bevorzugte Art und Weise ausgeführt werden, z. B. so, dass die
neuen Einträge gleichmäßig auf verschiedene CRSTE-Zeilen verteilt
werden. Fortlaufende Adressen sollten im CRSTE-TLB2 horizontal
und im PTE-TLB2 vertikal verteilt werden. Dies wird durch die
Umkehrung einiger Adressbits des CRSTE erreicht. Gemäß einer
bevorzugten Ausführungsform, wie sie in Fig. 5 abgebildet ist,
verwendet der LRU-Mechanismus zwei Bits, d. h. VA(42:43), der
virtuellen Adresse, um die Speicherstelle einer der vier
speziellen Speichereinheiten einer spezifischen Bitfolge
zuzuordnen. So kann die Speichereinheit 0 mit virtuellen Adressen
mit VA(42:43)-Bits gefüllt werden, wie z. B. 0 0, während in der
Speichereinheit 1 z. B. die Bits 0 1 enthalten sind usw.
Fig. 5 und Fig. 6 zeigen ein schematisches Blockschaltbild einer
Speichereinheit aus Fig. 4, das den Steuerungsablauf der
grundlegenden Logikoperationen für eine TLB2-Suchoperation
beschreibt.
Bei einer TLB2-Suchoperation werden die zu suchenden virtuellen
Adressen zusammen mit dem Tabellenstammzeiger von TLB1 an TLB2
übertragen (Schritt 610). Insbesondere werden bestimmte Bits
hieraus, die oben als MLVA-Bits bezeichnet wurden und hier als
Bits VA(34:41) dargestellt sind und von denen empirisch ermittelt
wurde, dass sie für die herkömmliche TLB-Anordnung der Erfindung
am besten geeignet sind, ausgewählt (Schritt 620) und in Schritt
622 in den CRSTE-TLB2 eingelesen, um in Schritt 624 die
Übereinstimmung mit den höherwertigen Bits der virtuellen Adresse
sicherzustellen, hier als TO(28), VA(36) und MISC(8) abgebildet;
dies erfolgt in den Vergleichern 105, 106 und 107, während
VA(44:51) für die Adressierung der Seitentabellen in Schritt 632
in den PTE-TLB2 eingelesen werden, wo sie parallel zueinander in
Schritt 634 mit allen VA(34:41) verglichen werden, die von dem
Adressteil VA(44:51) aus der PTE-TLB2-Adresse ausgelesen wurden.
Wenn in PTE- und CRSTE-TLB2 eine Übereinstimmung festgestellt
wurde und wenn die beiden Gültigkeitsbits in CRSTE und PTE
aktiviert sind (Verzweigung 636), kann in Schritt 638 eine
gültige absolute Adresse 110 aus dem PTE-TLB2 ausgelesen werden,
und in Schritt 639 wird die Umsetzung beendet.
Wenn im PTE-TLB2 keine Übereinstimmung festgestellt wird oder
PTE-Daten ungültig sind, müssen zwei Fälle unterschieden werden:
Wenn erstens das CRSTE-Suchergebnis mit der eingegebenen
virtuellen Adresse übereinstimmt und der Eintrag gültig ist, kann
mit der PTO aus dem CRSTE-TLB2 ein neuer Eintrag erzeugt werden,
wobei die PTO aus CRSTE verwendet wird (Schritt 640).
Wenn aber im CRSTE keine Übereinstimmung mit der eingegebenen
virtuellen Adresse ermittelt wird (Verzweigung 641), muss in
Schritt 643 sowohl im CRSTE-TLB2 als auch im PTE-TLB2 ein
vollständig neuer Eintrag erzeugt werden. Bevor ein neuer Eintrag
in den CRSTE geschrieben wird, müssen alle PTE-Einträge, die sich
auf den bisherigen Eintrag beziehen, ungültig gesetzt werden.
Hierfür wird die PTE-CAM-Funktionalität verwendet (Schritt 642).
Gemäß der Erfindung können beide Operationsfolgen, die in der
linken und rechten Verzweigung in Fig. 6 dargestellt sind,
unabhängig voneinander und parallel zueinander ausgeführt werden,
was einen Leistungsvorteil bedeutet.
Ein erheblicher Vorteil wird erzielt, wenn ein CRSTE-Treffer
gefunden wird und gleichzeitig ein PTE-Fehlgriff auftritt. In
diesem Fall kann der letzte Umsetzschritt mit der PTO des CRSTE
ausgeführt werden, so dass alle Umsetzschritte auf höherer Ebene
übergangen werden können.
In der obigen Patentbeschreibung wurde die Erfindung mit Bezug
auf eine spezifische, beispielhafte Ausführungsform der Erfindung
erläutert. Es ist jedoch offensichtlich, dass verschiedene
Modifizierungen und Änderungen an ihr vorgenommen werden können,
ohne vom allgemeinen Sinn und Geltungsumfang der Erfindung
abzuweichen, wie er in den beigefügten Ansprüchen dargelegt wird.
Die Patentbeschreibung und die Zeichnungen sind daher in einem
erläuternden, nicht in einem beschränkenden Sinne zu verstehen.
Ein Vorteil lässt sich insbesondere erkennen, wenn das Konzept
der Erfindung auf mehr als zwei unabhängige Operationsfolgen
erweitert wird, z. B. wenn mehr Tabellen für die Adressumsetzung
verwendet werden. Dann können die Zwischenergebnisse, die wie bei
den PTOs im obigen Beispiel aus mehreren höheren Teileinheiten
abgeleitet werden, auf vorteilhafte Art und Weise wiederverwendet
werden, ohne dass die Arbeitsschritte für die Verifizierung der
höheren Adressbereiche jedes Mal erneut ausgeführt werden müssen.
Ein weiterer Vorteil besteht in der Einsparung von Chipplatz für
die Realisierung der oben genannten TLB-Anordnung: Der PTE-RAM
enthält lediglich die absolute Adresse und das Gültigkeitsbit,
während sich die Adressmarkierungsdaten und der
Tabellenstammzeiger im CRSTE befinden und so mehreren PTE-
Einträgen gemeinsam zur Verfügung gestellt werden.
Dasselbe gilt auch für die Logik, mit der die Übereinstimmung der
höheren Adresse ermittelt wird.
Ein weiterer Vorteil besteht in der geringeren Größe der
Anordnung für die Speicherung der Logik für die Ermittlung der
Adressübereinstimmung im Vergleich zur herkömmlichen TLB-
Struktur, die vier Anordnungen mit je 1 K Einträgen umfasst. Der
Zugriff auf die Daten zur Adressübereinstimmung im RAM dauert
sehr viel länger.
10
TLB
14
Markierungsfeld
16
Gültigkeitsbit
18
Feld für die physikalische Adresse
20
Seitentabelle
30
Physikalischer Speicher
40
Speicherplatte
42
Virtuelle Adresse
44
Vergleicher
46
Absolute Adressdaten
48
Multiplexer
50
Einheit für die Verwaltung der Adressumsetzung
(MMU)
56
Second-Level-Umsetzpuffer (TLB2)
62
Befehlscache (Ebene I)
63
Pfeil
64
Datencache (Ebene I)
70
Ausführungseinheit
80
a bis d Speichereinheiten
81
a bis d CRSTE-RAM
82
a bis d CRSTE-CAM
83
a bis d PTE-RAM
84
a bis d PTE-CAM
84
PTE-Speicherorganisation
105
bis
107
Vergleicher
110
Absolute Adresse
610
ff. Schritte bei der TLB-Suche
Claims (8)
1. Adressumsetzpuffer-(TLB)-Anordnung zur Verwendung für die
schnelle Adressumsetzung, der einen Adressumsetzpuffer
umfasst, der als satzadressierter n-Wege-Pufferspeicher (56)
mit n Speichereinheiten (80a, 80b, 80c, 80d) angeordnet ist,
wobei die Pufferspeicheranordnung durch mindestens zwei
Teileinheiten (82, 84) gekennzeichnet ist, von denen eine
erste ein Umsetzpuffer (82) für bestimmte höhere
Adressumsetzebenen und die zweite ein Umsetzpuffer (84) für
bestimmte niedrigere Adressumsetzebenen ist und wobei die
zweite Teileinheit (84) so angeordnet ist, dass sie TLB-
Indexadressdaten der höheren Einheit (82) als
Markierungsdaten in ihrer TLB-Struktur der unteren Ebene
speichert.
2. Anordnung nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass sie mindestens zwei Adressumsetzpuffer
umfasst, von denen ein erster (TLB1) ein First-Level-
Pufferspeicher (62, 64) und ein zweiter (TLB2) ein Second-
Level-Adressumsetzspeicher (56) ist, der so angeordnet ist,
dass er bei einer fehlenden Adresse in dem ersten
Pufferspeicher diesem Adressdaten zur Verfügung stellt,
wobei der zweite TLB2 (56) so angeordnet ist, dass er
mindestens zwei Teileinheiten (81, 82, 83, 84) hat.
3. Anordnung nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass sie einen Assoziativspeicher (CAM)
umfasst.
4. Anordnung nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass in beiden Teilheiten (81, 82, 83, 84)
LRU-Daten bereitgestellt werden.
5. Anordnung nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass mindestens die Teileinheit (83, 84) der
unteren Ebene einen Assoziativspeicher (CAM) umfasst.
6. Anordnung nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass sie eine Speicherstelle in der höheren
Teileinheit (81, 82) für die Speicherung der Seitentabellen-
Anfangsadressen von Seitentabellen umfasst, die in der
Teileinheit der unteren Ebene (83, 84) verwendet werden.
7. Verfahren für den Betrieb einer Adressumsetzpufferanordnung
nach Anspruch 1, dadurch gekennzeichnet, dass sie alle
Daten, die von den Adressumsetztabellen der höheren Ebene
bereitgestellt werden und die für die Verifizierung einer
virtuellen Adresse relevant sind, in mindestens einer
Teileinheit (81, 82) der höheren Ebene enthält, wobei die
Daten im Allgemeinen für eine betreffende Teileinheit (83,
84) der unteren Ebene gültig sind, wenn bestimmte
Verknüpfungsdaten, die in der Teileinheit (83, 84) der
unteren Ebene für die Verknüpfung mit mindestens einer
Teileinheit (81, 82) der höheren Ebene bereitgestellt
werden, mit einem vorgegebenen Teil (MLVA-Bits) der
umzusetzenden virtuellen Adresse übereinstimmen.
8. Verfahren nach dem vorhergehenden Anspruch, dadurch
gekennzeichnet, dass der Schritt der Ausführung eines
virtuellen Adressensuchvorgangs in mindestens zwei
Teiloperationen untergliedert ist, die parallel zueinander
jeweils in einer Teileinheit (83, 84) der unteren Ebene und
mindestens einer Teileinheit (82) der höheren Ebene
ausgeführt werden, wobei während des Suchvorgangs mindestens
eine erste Teiloperation unter Verwendung von mindestens
einer Teileinheit (81, 82) der höheren Ebene eine Suche der
höchstwertigen Bitgruppe der eingegebenen virtuellen Adresse
ausführt und wobei eine zwei Teiloperation eine
Verifizierung der niederwertigeren Adressbits der
eingegebenen virtuellen Adresse mit Adressdaten ausführt,
die in den betreffenden Teileinheiten (83, 84) der unteren
Ebene gespeichert sind.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP99102950.5 | 1999-02-13 | ||
EP99102950 | 1999-02-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10002120A1 true DE10002120A1 (de) | 2000-11-02 |
DE10002120B4 DE10002120B4 (de) | 2006-04-20 |
Family
ID=8237558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10002120A Expired - Lifetime DE10002120B4 (de) | 1999-02-13 | 2000-01-20 | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung |
Country Status (2)
Country | Link |
---|---|
US (1) | US6418522B1 (de) |
DE (1) | DE10002120B4 (de) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI230897B (en) * | 2001-04-20 | 2005-04-11 | Ibm | Method for sharing a translation lookaside buffer between CPUs |
US6772315B1 (en) * | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US7296139B1 (en) | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
US7334108B1 (en) | 2004-01-30 | 2008-02-19 | Nvidia Corporation | Multi-client virtual address translation system with translation units of variable-range size |
US7278008B1 (en) * | 2004-01-30 | 2007-10-02 | Nvidia Corporation | Virtual address translation system with caching of variable-range translation clusters |
US20060224857A1 (en) * | 2005-03-29 | 2006-10-05 | O'connor Dennis M | Locking entries into translation lookaside buffers |
US7395406B2 (en) * | 2005-05-12 | 2008-07-01 | International Business Machines Corporation | System and method of large page handling in a virtual memory system |
JP2007233615A (ja) * | 2006-02-28 | 2007-09-13 | Fujitsu Ltd | アドレス変換装置 |
US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
US8037278B2 (en) * | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
US8082405B2 (en) * | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8417916B2 (en) * | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
US8041922B2 (en) * | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
US8019964B2 (en) | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
US8151083B2 (en) * | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
US8103851B2 (en) | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
US8335906B2 (en) * | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
US8151085B2 (en) * | 2008-01-17 | 2012-04-03 | International Business Machines Corporation | Method for address translation in virtual machines |
US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
GB2496328B (en) | 2010-06-25 | 2015-07-08 | Ibm | Method for address translation, address translation unit, data processing program, and computer program product for address translation |
US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
CN112631962A (zh) * | 2019-09-24 | 2021-04-09 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
CN111241012A (zh) * | 2020-02-25 | 2020-06-05 | 江苏华创微系统有限公司 | 支持多级页表的tlb架构 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US538630A (en) * | 1895-04-30 | thomas | ||
JP3190700B2 (ja) | 1991-05-31 | 2001-07-23 | 日本電気株式会社 | アドレス変換装置 |
US5493660A (en) * | 1992-10-06 | 1996-02-20 | Hewlett-Packard Company | Software assisted hardware TLB miss handler |
US6272597B1 (en) * | 1998-12-31 | 2001-08-07 | Intel Corporation | Dual-ported, pipelined, two level cache system |
-
2000
- 2000-01-20 DE DE10002120A patent/DE10002120B4/de not_active Expired - Lifetime
- 2000-02-11 US US09/501,741 patent/US6418522B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE10002120B4 (de) | 2006-04-20 |
US6418522B1 (en) | 2002-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10002120B4 (de) | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung | |
DE60320026T2 (de) | Verbessertes speichermanagement für echtzeit-anwendungen | |
DE69637294T2 (de) | Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung | |
DE4410060B4 (de) | Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse | |
DE69721590T2 (de) | Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung | |
DE112005003863B3 (de) | Verwalten von Prozessorressourcen während Architekturereignissen | |
DE2455047C2 (de) | Datenverarbeitungssystem mit einem Informationsspeicher | |
DE60003273T2 (de) | Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse | |
DE3151745C2 (de) | ||
DE2227882C2 (de) | Virtuelle Speicheranordnung | |
DE3833933C2 (de) | Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion | |
DE69629140T2 (de) | Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index | |
DE2260353A1 (de) | Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung | |
DE3932675A1 (de) | Virtuelles maschinensystem | |
WO1994027222A1 (de) | Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge | |
DE112018002028T5 (de) | Umsetzungsunterstützung für einen virtuellen cache | |
DE4234695C2 (de) | Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache | |
DE3518818C2 (de) | ||
DE60003426T2 (de) | Statusbits für cachespeicher | |
DE4234194A1 (de) | System und verfahren zur speichersegmentierung fuer einen mikroprozessor | |
EP1449091B1 (de) | Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage | |
DE3832758C2 (de) | Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers | |
WO1995031783A1 (de) | Speichervorrichtung zum speichern von daten | |
EP1675010A2 (de) | Verfahren zur Aktualisierung von Einträgen von Adressumsetzpuffern in einem Mehrprozessor-Computersystem | |
DE4439809C2 (de) | Virtuell indizierbarer Cache-Speicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: DUSCHER, R., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 7 |
|
R071 | Expiry of right |