DE10002120A1 - Logikstruktur eines Adressumsetzpuffers - Google Patents

Logikstruktur eines Adressumsetzpuffers

Info

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
Application number
DE10002120A
Other languages
English (en)
Other versions
DE10002120B4 (de
Inventor
Ute Gaertner
Erwin Pfeffer
Kerstin Schelm
John Macdougall
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE10002120A1 publication Critical patent/DE10002120A1/de
Application granted granted Critical
Publication of DE10002120B4 publication Critical patent/DE10002120B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/681Multi-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

1. HINTERGRUND DER ERFINDUNG 1.1. GEBIET DER ERFINDUNG
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.
1.2. BESCHREIBUNG UND NACHTEILE DES STANDS DER TECHNIK
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.
1.3. AUFGABEN DER ERFINDUNG
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.
2. ZUSAMMENFASSUNG UND VORTEILE DER ERFINDUNG
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.
3. KURZE BESCHREIBUNG DER ZEICHNUNGEN
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.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
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.
LISTE DER REFERENZZIFFERN
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.
DE10002120A 1999-02-13 2000-01-20 Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung Expired - Lifetime DE10002120B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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