-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die Erfindung bezieht sich auf das
Gebiet der Computersysteme. Insbesondere bezieht sich die Erfindung
auf das Gebiet des Speicher-Managements.
-
Stand der Technik
-
Speicheradreßschemata verwenden häufig eine
als ,Paging' bezeichnete
Technik zum Implementieren virtuellen Speichers. Bei der Verwendung des
Paging wird die virtuelle Adresse (z. B. der Adreßraum, der
entweder durch die Ausführungs-Einheit
eines Prozessors oder durch die Ausführungs-Einheit in Verbindung
mit einer Segmentierungs-Einheit eines Prozessors erzeugt wurde)
in als Seiten bezeichnete Blöcke
fester Größe aufgeteilt, von
denen jeder auf eine beliebige physikalische Adresse (z. B. die
Adressen, die mit der Hardware-Speicherstelle
korrespondieren), die auf dem System verfügbar ist, abgebildet werden
kann. In einem typischen Computersystem legt eine Speichermanagement-Einheit
gemäß Paging-Algorithmen und
unter Verwendung einer oder mehrerer Seitentabellen die aktuellen
Figuren einer virtuellen auf eine physikalische Adresse fest und
behält
diese bei.
-
Beim Empfangen einer virtuellen Adresse von
der Ausführungs-Einheit
eines Prozessors übersetzen
typische Speichermanagement-Einheiten unter Verwendung der Seitentabelle(n)
zunächst
die virtuelle Adresse in die korrespondierende physikalische Adresse.
Da die Seitentabelle(n) häufig
im Hauptspeicher gespeichert ist/sind, ist das Aufrufen der Seitentabellen
zeitaufwendig. Um die Seitenübersetzung
zu beschleunigen, speichern bestimmte Computersysteme die unmittelbar
zuvor verwendeten Übersetzungen
in einem Übersetzungspufferspeicher
(Translation Look-aside Buffer) oder TLB (einem schnelleren Speicher,
der sich häufig
auf dem Prozessor befindet). Bei der Erzeugung einer Nachfrage nach
einer Übersetzung
einer virtuellen Adresse sucht die Speichermanagement-Einheit, bevor sie auf
die Seitentabellen zugreift, zuerst im TLB nach der Überset zung.
Falls die Übersetzung
im TLB gespeichert ist, spricht man von einem ,TLB-Treffer', und der TLB stellt
die Übersetzung
bereit. Falls die Übersetzung
jedoch nicht im TLB gespeichert ist, spricht man von einem ,TLB-Fehler', und eine Fehlseiten-Behandlungseinrichtung
wird aufgerufen, um auf die Seitentabellen zuzugreifen und die Übersetzung
bereitzustellen.
-
Zur Implementierung von Fehlseiten-Behandlungseinrichtungen
werden eine Vielzahl verschiedener Techniken verwendet, einschließlich: T. Hardware
auf dem Prozessor, um auf die Seitentabellen zugreifen zu können (bezeichnet
als Hardware-Fehlseitenbehandlungseinrichtung); 2. Betriebssystem-Routine(n),
dessen/deren Ausführung den
Zugriff auf die Seitentabellen steuert (bezeichnet als ,Software-Fehlseitenbehandlungseinrichtung') etc. Bestimmte
Systeme verwenden mehrere Techniken für die Behandlung von TLB-Fehlern.
Zum Beispiel verwendet ein System eine Hardware-Fehlseiten-Behandlungseinrichtung,
um auf eine Hash-Seitentabelle zuzugreifen, und eine Software-Fehlseitenbehandlungseinrichtung,
um den Zugriff auf andere Seitentabelle(n) zu steuern. Daher wird
die Bezeichnung Fehlseiten-Behandlungseinrichtung hier für jede mögliche Technik
verwendet, die eine Übersetzung
liefert, wenn eine andere Adreßübersetzungs-Einheit
die Übersetzung
nicht bereitstellen kann.
-
Wenn eine Software-Fehlseiten-Behandlungseinrichtung
verwendet wird, veranlaßt
ein TLB-Fehler den Prozessor dazu, den aktuellen Prozeß zu unterbrechen,
die Ausführungsumgebung
des unterbrochenen Prozesses zu speichern (zum Beispiel die Informationen,
die nötig
sind, um den unterbrochenen Prozeß fortzusetzen) und die Software-Fehlseiten-Behandlungseinrichtung
zur Bestimmung der Seitenübersetzung
auszuführen.
Die Ausführung
der Software-Fehlseiten-Behandlungseinrichtung
führt zur
Erzeugung der Übersetzung,
und typischerweise zur Eintragung dieser Übersetzung in den TLB. Nach
dem Beenden der Software-Fehlseiten-Behandlungseinrichtung setzt
der Prozessor die Ausführung
des unterbrochenen Prozesses fort.
-
Bestimmte Computersysteme teilen
den virtuellen Adreßraum
unter Verwendung von Adreßerweiterungen
nun weiter auf in Regionen virtuellen Adreßraums, wobei jede Region eine
oder mehrere Seiten beinhalten kann. Jede Region wird durch einen
Regionsbezeichner identifiziert (auch ,Adreßraumbezeichner' ge nannt). In bestimmten
Computer-Systemen werden N Bits der virtuellen Adresse verwendet,
um 2'' verschiedene Regionen
virtuellen Adreßraums
zu identifizieren. Jede der 2'' Regionen kann zu
einer Vielzahl unterschiedlicher Verwendungen eingesetzt werden.
Weiterhin kann jede der verschiedenen Verwendungen für verschiedene
Regionen des virtuellen Speichers unterschiedliche Speicherzugriffsmerkmale
haben (z. B. lokal, global etc.).
-
Die Eintragung von Übersetzungen
in den TLB wird typischerweise mittels eines oder mehrerer Eintragsverzeichnisse
durchgeführt
(z. B. speichert eine Fehlseiten-Behandlungseinrichtung die Übersetzung
in dem oder den TLB-Einrichtungs-Verzeichnissen)
und instruiert den Prozessor, die Übersetzung in den TLB einzutragen).
Das oder die TLB-Eintragsverzeichnis(se) enthalten häufig ein
Regionsbezeichnerfeld, ein Übersetzungsattributfeld,
ein Nummernfeld der virtuellen Seiten und ein Nummernfeld der physikalischen
Seiten. Das Übersetzungsattributfeld
wird zum Speichern von Daten verwendet, welche verschiedene Eigenschaften
der aufgerufenen Seite identifizieren (z. B. Zugriffsschutz etc.).
-
Bei der Erkennung eines Seitenfehlers
verfahren typische Computersysteme wie folgt: 1. Laden der Nummer
der virtuellen Seite und des Regionsbezeichners in das/die TLB-Eintragsverzeichnis(se).
2. Aufruf der Fehlseiten-Behandlungseinrichtung zum Laden der Nummer
der physikalischen Seite und der Seitenattribute in das TLB-Eintragsverzeichnis.
Obwohl die Attribute für
Seiten einer Region variieren können,
hat die Mehrzahl der Seiten in einer Region häufig dieselben Attribute. Dennoch
muß die
Fehlseiten-Behandlungseinrichtung jedes Mal, wenn eine Übersetzung
eingetragen werden muß,
die Attribute für
jede Seite in einer Region laden. Da TLB-Eintragungen weitaus öfter vorkommen
als andere Ereignisse (z. B. Ausnahmen, Unterbrechungen, Betriebssystem-Aufrufe
etc.), ist es wünschenswert,
daß die Fehlseiten-Behandlungseinrichtung
so reibungslos wie möglich
ausgeführt
wird.
-
US-A-5,561,814, nach der der Oberbegriff der
unabhängigen
Ansprüche
formuliert wurde, offenbart Verfahren und Vorrichtungen zur Bestimmung
von Eigenschaften des Speicherbetriebs zeitgleich zur Bestimmung
der physikalischen Adresse aus der virtuellen Adresse.
-
EP-A-0 381 245 offenbart ein Adreßübersetzungssystem,
in welchem die Übersetzung
auf mehrstufigen Seitentabellen basiert. Ein Weg zur Behandlung
von Übersetzungsattributen
ist in diesem Dokument nicht erwähnt.
-
KURZFASSUNG
-
Es wird ein Verfahren und eine Vorrichtung zur
Beschleunigung der Eintragung von Übersetzungen virtueller in
physikalische Adressen in eine Übersetzungs-Einheit
beschrieben. Gemäß einem
Aspekt der Erfindung wird eine Vorrichtung zur Verwendung in einem
Computersystem bereitgestellt, die folgendes umfaßt: eine
Adreßübersetzungseinheit,
die zum Speichern mehrerer Übersetzungen
zum Übersetzen virtueller
Adressen in physikalische Adressen eingerichtet ist, wobei jede
der mehreren Übersetzungen ein
Attributfeld zum Definieren eines Attributs umfaßt, welches nicht in der virtuellen
Adresse enthalten ist; ein Defaultübersetzungsattribut-Speicherbereich, eingerichtet
zum Speichern mehrerer Defaultübersetzungsattribute,
wobei der Defaultübersetzungsattribut-Speicherbereich
zum Speichern mehrerer Defaultübersetzungsattribute
eingerichtet ist; eine Vorlade-Einheit, welche einen ersten Eingang
aufweist, der zum Empfangen eines Signals geschaltet ist, welches
anzeigt, daß eine Übersetzung
für eine virtuelle
Adresse nicht in der Adreßübersetzungseinheit
gespeichert ist, wobei jede der mehreren Defaultübersetzungsattribute für eine unterschiedliche virtuelle
Region von virtuellen Adressen gewählt ist; wobei die Vorlade-Einheit
mit dem Defaultübersetzungsattribut-Speicherbereich
und der Adreßübersetzungseinheit
gekoppelt ist, um auf der Grundlage von N Bits, welche die virtuelle
Region der virtuellen Adresse identifizieren, aus den mehreren Defaultübersetzungsattributen
auszuwählen,
und zwar vor dem Bestimmen der Übersetzung
unter Verwendung einer Fehlseiten-Behandlungseinrichtung nach dem Schritt
des Vorladens, und in der Adreßübersetzungseinheit
jegliche übrigen
Daten zu speichern, die zum Fertigstellen der Übersetzung nötig sind.
-
Gemäß einem anderen Aspekt wird
ein Verfahren zum Speichern von Übersetzungen
in einer Adreßübersetzungseinheit
bereitgestellt, wobei die Adreßübersetzungseinheit
zum Übersetzen
virtueller Adressen in physikalische Adressen bestimmt ist, wobei
das Verfahren folgende computerimplementierte Schritte umfaßt: Detektieren,
daß eine Übersetzung
für eine
virtuelle Adresse nicht in der Adreßübersetzungseinheit gespeichert
ist; Speichern mehrerer Defaultübersetzungsattribute
in einem Defaultübersetzungsattribut-Speicherbereich,
wobei jede der mehreren Defaultübersetzungsattribute
für einen
unterschiedlichen virtuellen Bereich von virtuellen Adressen ausgewählt wird;
Auswählen
eines von mehreren Defaultübersetzungsattributen
als ein gegenwärtig
ausgewähltes
Defaultübersetzungsattribut
auf der Grundlage von N Bits, welche den virtuellen Bereich von
virtuellen Adressen identifizieren, wobei das Defaultübersetzungsattribut
nicht in der virtuellen Adresse enthalten ist; Vorladen des gegenwärtig ausgewählten Defaultübersetzungsattributs
in die Adreßübersetzungseinheit;
Bestimmen der Übersetzung
unter Verwendung einer Fehlseitenbehandlungseinrichtung nach dem
Schritt des Vorladens; und Speichern jeglicher verbleibender Daten
in der Adreßübersetzungseinheit,
die zum Fertigstellen der Übersetzung
nötig sind.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Die Erfindung wird am besten verständlich durch
Verweis auf die folgenden Beschreibungen und zugehörigen Figuren,
welche die Erfindung veranschaulichen. In den Zeichnungen ist:
-
1 ein
Blockdiagramm, welches die verschiedenen virtuellen Bereiche darstellt,
die, gemäß einer
Ausführungsform
der Erfindung von bestimmten Bits einer virtuellen Adresse adressiert
werden können.
-
2 ist
ein Blockdiagramm, welches eine beispielhafte Implementierung einer
Ausführungsform
der Erfindung veranschaulicht.
-
3 ist
ein Flußdiagramm,
welches gemäß einer
Ausführungsform
der Erfindung die Schritte veranschaulicht, die in Reaktion auf
Anforderung der Übersetzung
einer virtuellen Adresse in die korrespondierende physikalische
Adresse ausgeführt
werden.
-
4 ist
ein Flußdiagramm,
welches gemäß einer
Ausführungsform
der Erfindung eine detailliertere Beschreibung der Schritte, die
in Schritt 360 in 3 ausgeführt werden,
darstellt.
-
5 ist
ein Blockdiagramm eines exemplarischen Computersystems gemäß einer
Ausführungsform
der Erfindung.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung sind
zahlreiche besondere Details dargelegt, um ein vollständiges Verständnis der
Erfindung zu ermöglichen.
Es versteht sich jedoch von selbst, daß die Erfindung ohne diese
besonderen Details ausgeführt
werden kann. in anderen Fällen
wurden bekannte Schaltungen, Strukturen und Techniken nicht im Detail
erläutert,
um die Erfindung nicht unnötig
zu verdecken.
-
Überblick
-
Es wird ein Verfahren und eine Vorrichtung für reibungslose
TLB-Einträge
beschrieben. In einer Ausführungsform
umfaßt
der Prozessor einen Speicherbereich, um Defaultübersetzungsattribute für jede einer
Mehrzahl von verschiedenen Gruppen von virtuellen Adressen zu speichern.
In Erwiderung auf einen TLB-Fehler
lädt der
Prozessor im voraus die passenden Defaultübersetzungsattribute für die virtuelle
Adresse in das/die TLB-Eintragsverzeichnis(se). Falls die vorgeladenen
Defaultübersetzungsattribute
korrekt sind, wird das Attribut-Feld des/der TLB-Eintragsverzeichnisse(s)
nicht durch die Fehlseiten-Behandlungseinrichtung geladen und die Leistung
des TLB-Eintrags wird erhöht.
Falls die Defaultübersetzungsattribute
jedoch nicht korrekt sind, überschreibt
die Fehlseiten-Behandlungseinrichtung die
vorgeladenen Defaultattribute mit den korrekten Attributen. In einer
anderen Ausführungsform
werden die Defaultübersetzungsattribute
direkt in einen Eintrag des TLB vorgeladen, und die TLB-Eintragsverzeichnisse
können
verwendet werden bzw. vorhanden sein oder nicht.
-
Eine Ausführungsform
der Erfindung
-
1 ist
ein Blockdiagramm, welches die verschiedenen virtuellen Regionen
veranschaulicht, die von bestimmten Bits einer virtuellen Adresse adressiert
werden können. 1 zeigt eine virtuelle Adresse 100,
welche über
64, von 0 bis 63 nummerierte Bits verfügt. In einer Ausführungsform
der dieser Erfindung werden N höhere
Bits der virtuellen Adresse 100 zum Identifizieren von
2" ver schiedenen virtuellen
Regionen 105 verwendet. Wie in dem in 1 veranschaulichten Beispiel gezeigt
wird, weist jede der verschiedenen virtuellen Regionen deshalb 264-N Bytes addressierbaren Raum auf. Während diese
Ausführungsform
in Bezug auf ein 64-Bit-Computersystem beschrieben ist, ist die
Erfindung nicht auf ein 64-Bit-Computersystem beschränkt.
-
Verschiedene Ausführungsformen können den
Regionen und Seiten auf jede mögliche
Art und Weise jede mögliche
Anzahl verschiedener Attribute zuweisen. Zum Beispiel können verschiedene
Ausführungsformen
die virtuellen Regionen auf viele verschiedene Arten in Seiten aufteilen
(z. B. kann jede virtuelle Region eine oder mehrere Seiten beinhalten, verschiedene
Regionen können
Seiten unterschiedliche Größe beinhalten,
dieselbe Region kann Seiten verschiedener Größe beinhalten etc.). Zusätzlich können verschiedene
Ausführungsformen
in einer Vielzahl von verschiedenen Möglichkeiten Zugriffsschutzkriterien
zuweisen (z. B. kann derselbe Schutzschlüssel für jede Seite in einer Region
verwendet werden, jede Seite kann ihren eigenen Schutzschlüssel besitzen
etc.). Weiterhin können verschiedene
Ausführungsformen
die Zwischenspeicherung auf verschiedene Art und Weise handhaben (z.
B. kann dasselbe Zwischenspeicher-Protokoll für jede Seite in einer Region
verwendet werden, jede Seite kann ihr eigenes Zwischenspeicher-Protokoll aufweisen
etc.).
-
2 ist
ein Blockdiagramm, welches eine exemplarische Implementierung einer
Ausführungsform
der Erfindung veranschaulicht. 2 zeigt
eine virtuelle Adresse 200, welche K Bits enthält und eine Übersetzung
in eine physikalische Adresse 205 verlangt. Die virtuelle
Adresse 200 enthält
ein Bezeichnerteld 210 für den virtuellen Bereich, ein
Nummernfeld 220 der virtuellen Seite und ein Versatzfeld
(Offset-Feld) 215. Das Versatzfeld ist so dargestellt,
daß es
m Bits enthält.
In einer Ausführungsform,
in der mehrere Seitengrößen unterstützt werden
(z. B. 4K, 16K, 4M etc.), hängt
die Anzahl der Bits im Versatzfeld 215 und im Nummernfeld 220 der
virtuellen Seite von der Größe der Seite
ab, zu der die virtuelle Adresse gehört. Die variable Größe des Versatzes
ist in 2 durch eine
gestrichelte Linie zwischen dem Versatzfeld 215 und dem
Nummernfeld 220 der virtuellen Seite dargestellt.
-
In einer Ausführungsform werden die N Bits im
Bezeichnerfeld 210 der virtuellen Region zum Identifizieren
eines Regionsverzeichnisses in einer Gruppe von Regionsverzeichnissen 225 verwendet. Die
Gruppe von Regionsverzeichnissen 225 enthält 2'' Verzeichnisse zum Speichern der Regionsbezeichner
und Defaultübersetzungsattribute
für jede Region,
die dem aktuell ausgeführten
Prozeß zugeordnet
ist. In dieser Ausführungsform
speichert die Gruppe von Regionsverzeichnissen 225 nicht
notwendig die Defaultübersetzungsattribute
für jeden zeitgleich
durch einen Prozessor ausgeführten
Prozeß.
Die Defaultübersetzungsattribute
für Regionen können von
einem Prozeß zum
anderen unterschiedlich gewählt
werden. Die Defaultübersetzungsattribute
der aktuell ausgeführten
Prozesse werden durch das Betriebssystem zwischen Hauptspeicher
und Regionsverzeichnissen ausgetauscht. Natürlich können andere Ausführungsformen
mehr oder weniger Regionsverzeichnisse enthalten.
-
Während
eine Ausführungsform
beschrieben wird, in dem eine Gruppe von Regionsverzeichnissen zum
Speichern der Defaultübersetzungsattribute
verwendet wird, können
andere Ausführungsformen
die Defaultübersetzungsattribute
mit Hilfe jeder möglichen
Anzahl anderer Techniken speichern. Zum Beispiel können die
Defaultübersetzungsattribute
gespeichert werden durch 1 unveränderliche
Speicherung der Defaultübersetzungsattribute
für eine
bestimmte oder für
alle Regionen oder 2 durch Speicherung in einem Speicherbereich,
der sich außerhalb des
Prozessors befindet und/oder auf den durch eine Softwareroutine
zugriffen wird. Die Bezeichnung ,Speicherbereich für Defaultübersetzungsattribute' wird im folgenden
mit Bezug auf jeden Mechanismus zur Speicherung der Defaultübersetzungsattribute verwendet.
-
Jede Anzahl von Attributen kann als
Teil der Defaultübersetzungsattribute
gespeichert werden, inklusive einer Default-Seitengröße für die Region,
einem Default-Zwischenspeicher-Protokoll für die Region, einem Default-Schutzschlüssel für die Region etc.
Zum Beispiel würde
die Default-Seitengröße einer
Region so gewählt
werden, daß sie
die Seitengröße der Region
repräsentiert,
auf die am häufigsten
zugegriffen wird und/oder die am häufigsten vorhanden ist. Durch
Auswählen
der Seitengröße, auf die
am häufigsten
zugegriffen wird und/oder die am häufigsten vorhanden ist, wird
die vorgeladene Default- Seitengröße häufiger die
korrekte Seitengröße für eine virtuelle,
zu der Region gehörigen
Adresse sein. Während
Schutzschlüssel
für jeden
Zweck benutzt werden können,
werden sie in einer Ausführungsform
der Erfindung verwendet, um domänenbasierende
Schutzformen zu unterstützen
und Einzeladreßraum-Betriebssystem-Formen
die Zuordnung verschiedener Schlüsselbezeichner
zu den Schutzbereichen zu erlauben. In einer Ausführungsform, das
Schutzschlüssel
als Teil der Defaultübersetzungsattribute
verwendet, ist der Regionsbezeichner der Default-Schutzschlüssel einer
Region.
-
Zusammen mit der Seitennummer der
virtuellen Adresse 200 wird der Regionsbezeichner des identifizierten
der Verzeichnisse 225 zu einem TLB 230 gesendet.
Der TLB 230 kann in jeder Art und Weise (z. B. als ein
oder mehrere vollständig
zugeordnete Zwischenspeicher, ein oder mehrere direkt abgebildete
Zwischenspeicher, eine Kombination aus vollständig zugeordnetem/n Zwischenspeicher(n)
und direkt abgebildetem/n Zwischenspeicher(n) etc.) implementiert
sein. Falls der TLB 230 die Übersetzung für die virtuelle
Adresse 200 enthält, wird
die Nummer der physikalischen Seite aus dem TLB 230 abgerufen
und mit den m Bits aus dem Versatzfeld 215 verknüpft, um
die physikalische Adresse 205 zu erzeugen.
-
Falls jedoch der TLB die Übersetzung
für die virtuelle
Adresse 200 nicht enthält,
wird ein TLB-Fehler erzeugt. In Erwiderung auf den TLB-Fehler lädt eine
Vorlade-Einheit 240 eine Gruppe von TLB-Eintragsverzeichnissen 245 mit
den Default-Übersetzungsattributen
aus der identifizierten Region. Zusätzlich wird eine Gruppe von
Fehlseiten-Behandlungseinrichtungen 250 zum Bestimmen der Übersetzung
für die
virtuelle Adresse aufgerufen. Die Gruppe der Fehlseiten-Behandlungseinrichtungen 250 repräsentiert
eine beliebige Anzahl Fehlseiten-Behandlungseinrichtungen
verschiedener Art (z. B. eine Hardware- oder Software-Fehlseitenbehandlungseinrichtung)
und verwendet verschiedene Techniken (z. B. Hash-Seitentabellen,
verschiedene Hash-Funktionen, lineare Seitentabellen etc.). Falls mehrere
Fehlseiten-Behandlungseinrichtungen vorhanden sind, kann eine beliebige
Anzahl von Techniken verwendet werden, um eine Auswahl unter den Fehlseiten-Behandlungseinrichtungen
zu treffen, einschließlich
einer Hierarchie, in welcher ein Seiten-Fehler innerhalb einer Fehlseiten- Behandlungseinrichtung
den Aufruf einer neuen Fehlseiten-Behandlungseinrichtung bewirkt. Daher
ist die Erfindung nicht durch die Anzahl oder die Art der Fehlseiten-Behandlungseinrichtungen
oder die Technik, welche die Fehlseiten-Behandlungseinrichtungen
verwenden, begrenzt.
-
Falls die in das/die TLB-Eintragsverzeichnis(se)
245 vorgeladenen Default-Übersetzungsattribute
für die Übersetzung
korrekt sind, lädt
die Fehlseiten-Behandlungseinrichtung
die Nummer der physikalischen Seite zur Übersetzung in die TLB-Eintragsverzeichnisse,
jedoch nicht die Übersetzungsattribute.
Auf diese Weise wird die Leistung der Fehlseiten-Behandlungseinrichtung
gesteigert, weil die Übersetzungsattribute
nicht geladen werden.
-
Falls jedoch die vorgeladenen Defaultübersetzungsattribute
nicht korrekt sind, muß die
Fehlseiten-Behandlungseinrichtung sowohl die korrekten Übersetzungsattribute
als auch die Nummer der physikalischen Seite in das/die TLB-Eintragsverzeichnis(se)
245 laden. Sobald die korrekte Übersetzung in
dem/den TLB-Eintragsverzeichnis(sen) gespeichert ist, wird die Übersetzung
im TLB 230 eingetragen.
-
Das Vorladen der Defaultübersetzungsattribute
kann ebenso verwendet werden, um den Umfang der Seitentabelle(n)
zu verringern, falls alle oder mehrere Seiten einer virtuellen Region
dieselben Übersetzungsattribute
teilen. Falls zum Beispiel alle Seiten einer virtuellen Region dieselben Übersetzungsattribute
teilen, brauchen diese gemeinsamen Übersetzungsattribute nicht
in jedem Eintrag der Seitentabelle(n) gespeichert zu werden, weil
die gemeinsamen Übersetzungsattribute
aus dem identifizierten Bereich innerhalb der Gruppe von Bereichen 225 vorgeladen
werden.
-
Während
eine Ausführungsform
beschrieben wird, in dem die Erfindung die Übersetzung der virtuellen Adresse
in die physikalische Adresse unterstützt, kann die Erfindung in
anderen Ausführungsformen
zur Unterstützung
der Übersetzung
von virtuellen Adressen in übersetzte
Adressen, welche nachfolgend in physikalische Adressen konvertiert
werden, verwendet werden. Zusätzlich
können,
während eine
Ausführungsform
mit Bezug auf besondere Felder beschrieben ist (z. B. enthält das Nummernfeld 220 der
virtuellen Seite das Feld der virtuellen Regionsbezeichner 210),
können
andere Ausführungsformen
andere Felder zum Im plementieren der Erfindung verwenden (z. B.
könnte
in einer anderen Ausführungsform
das Nummernfeld der virtuellen Seite nicht im Nummernfeld der virtuellen
Region enthalten sein oder es teilweise überlappen).
-
Der/die TLB-Eintragsverzeichnis(se)
repräsentieren
jede mögliche
Anzahl von Verzeichnissen und müssen
nicht auf den Speicherplatz von Übersetzungsdaten
zum Eintrag im TLB 230 begrenzt sein. Zum Beispiel können die
in dem/den TLB-Eintragsverzeichnis(sen) repräsentierten Felder in diversen
verschiedenen Systemverzeichnissen verbleiben, welche Informationen
zusätzlich
zu Übersetzungen
enthalten. Nach Fertigstellung einer Übersetzung wird diese von den
verschiedenen Verzeichnissen zur Speicherung in einem Eintrag des
TLB 230 an diesen gesendet.
-
Wie bereits erläutert, lädt eine Ausführungsform
der Erfindung die Defaultübersetzungsattribute im
voraus direkt in einen TLB-Eintrag anstatt in das/die TLB-Eintragsverzeichnis(se).
Solch eine Ausführungsform
kann TLB-Eintragsverzeichnisse enthalten
oder nicht. Die Bezeichnung ,TLB-Einheit' wird im folgenden für einen TLB oder ähnliche
Eintragsverzeichnisse, falls vorhanden, verwendet. Daher bezieht
sich das Vorladen von Defaultübersetzungsattributen
in eine TLB-Einheit entweder auf das Vorladen eines oder mehrerer
Eintragsverzeichnisse(s) oder das Vorladen eines Eintrags in den
TLB.
-
Die Bezeichnung "Adreßübersetzungs-Einheit" wird im folgenden
für einen
beliebigen Mechanismus zur Übersetzung
virtueller Adressen in einem Computersystem verwendet, welcher 1
eine TLB-Einheit und 2 eine Software- oder Hardware-Fehlseitenbehandlungseinrichtung
etc. beinhaltet. Die Erfindung ist nicht auf das Vorladen der Defaultübersetzungsattribute
zum Eintrag in eine TLB-Einheit
beschränkt,
kann aber für
das Vorladen der Defaultübersetzungsattribute
zum Eintrag in eine beliebige Adreßübersetzungs-Einheit (z. B.
Vorladen der Defaultübersetzungsattribute
in eine Art Hauptspeicher-basierte, Übersetzungen speichernde- Tabelle)
verwendet werden. Während
eine Ausführungsform
beschrieben wird, in dem das Vorladen durch eine Vorlade-Schaltung
ausgeführt
wird, können
andere Ausführungsformen
das Vorladen unter Verwendung einer Software ausführen. Die
Bezeichnung „Vorlade-Einheit" wird im folgenden
für jedweden
Mechanismus zum Vorladen von Default-Übersetzungsattributen zur Eintragung
in eine Adreßübersetzungs-Einheit
verwendet.
-
3 ist
ein Flußdiagramm,
welches bezugnehmend auf eine Ausführungsform der Erfindung die
Schritte veranschaulicht, die in Folge einer Anforderung der Übersetzung
einer virtuellen Adresse in die entsprechende physikalische Adresse
ausgeführt werden.
Das Flussdiagramm beginnt mit dem Schritt 300, von dem aus die Schaltung
zu Schritt 310 übergeht.
-
Wie in Schritt 310 gezeigt ist, wird
bestimmt, ob der TLB die Übersetzung
für die
virtuelle Adresse enthält.
Falls ein passender Eintrag gefunden wurde, erfolgt der Übergang
zu Schritt 320, wo unter Verwendung der passenden Übersetzung
die mit der virtuellen Adresse korrespondierende physikalische Adresse
bestimmt wird, und das Flußdiagramm
endet. Andernfalls folgt Schritt 330.
-
Wie in Schritt 330 gezeigt ist, wird
die Seitennummer der virtuellen Adresse in dem/den TLB-Eintragsverzeichnis(sen)
gespeichert. Es erfolgt der Übergang
von Schritt 330 zu Schritt 340.
-
Wie in Schritt 340 gezeigt ist, werden
die Defaultübersetzungsattribute
für die
virtuellen Adresse in das/die TLB-Eintragsverzeichnis(se) vorgeladen. Falls
Regionsbezeichner verwendet werden, kann auch der Regionsbezeichner
der Region in das/die TLB-Eintragsverzeichnis(se) geladen werden.
Es erfolgt der Übergang
von Schritt 340 zu Schritt 350.
-
In Schritt 350 wird ein TLB-Fehler
erzeugt, und es erfolgt der Übergang
zu Schritt 360. Die Erzeugung und Behandlung von Fehlermeldungen
ist im Stand der Technik beschrieben. Es erfolgt der Übergang
von Schritt 350 zu Schritt 360.
-
Wie in Schritt 360 gezeigt ist, reagiert
die Fehlseiten-Behandlungseinrichtung
auf den TLB-Fehler. Im Falle einer Software-Fehlseiten-Behandlungseinrichtung
unterbricht der Prozessor die Ausführung des aktuellen Prozesses,
speichert die Ausführungsumgebung
des unterbrochenen Prozesses (z. B., die Information, die notwendig
ist, um den Prozeß fortzusetzen),
und ruft die Software-Fehlseiten-Behandlungseinrichtung zur Bereitstellung
der Übersetzung
auf. Die Fehlseiten-Behandlungsvorrichtung instruiert den Prozessor,
die Übersetzung
in dem/den TLB-Eintragsverzeichnis(sen) zu speichern, die Übersetzung
in den TLB einzutragen und den zuvor unterbrochenen Prozeß fortzuset zen.
Im Fall einer Hardware-Fehlseiten-Behandlungsvorrichtung stellt
diese die Übersetzung
(z. B. durch einen Zugriff auf Seitentabellen unter Verwendung einer physikalischen
Verbindung etc.) und/oder trägt
die Übersetzung
in den TLB ein. Schritt 360 wird im folgenden mit Bezug auf 4 beschrieben. Es erfolgt der Übergang
von Schritt 360 zu Schritt 370.
-
Wie in Schritt 370 gezeigt ist, setzt
der Prozessor den unterbrochenen Prozeß fort. Im Falle einer Software-Fehlseiten-Behandlungseinrichtung setzt
der Prozessor den unterbrochenen Prozeß bei der Instruktion fort,
die den TLB-Fehler bewirkt hat (z. B. die Instruktion, welche die
virtuelle Adresse erzeugt hat, die in Schritt 300 beschrieben wird).
Auf diese Weise wird dieselbe virtuelle Adresse erneut erzeugt.
Diesmal aber ist die Übersetzung
im TLB gespeichert. Aus diesem Grund wird das Flußdiagramm bis
zum Schritt 320 durchlaufen, wo die entsprechende physikalische
Adresse bestimmt wird.
-
4 ist
ein Flußdiagramm,
welches eine detailliertere Beschreibung der in Schritt 360 in 3 ausgeführten Schritte gemäß einer
Ausführungsform der
Erfindung veranschaulicht. In den Fällen, in denen eine Software-Fehlseiten-Behandlungseinrichtung
verwendet wird, werden die in 4 gezeigten Schritte
in Reaktion auf die Ausführung
der Software-Fehlseiten-Behandlungseinrichtung durchgeführt. Von
Schritt 350, in dem ein TLB-Fehler erzeugt wird, erfolgt der Übergang
zu Schritt 400.
-
Wie in Schritt 400 gezeigt ist, wird
die Übersetzung
der virtuellen Adresse bestimmt, und es erfolgt der Übergang
zu Schritt 410. Zur Ausführung von
Schritt 400 kann eine Vielzahl von Techniken verwendet werden.
-
In Schritt 410 wird bestimmt, ob
die vorgeladenen Defaultübersetzungsattribute
für die
bestimmte Übersetzung
korrekt sind. Falls ja, erfolgt der Übergang zu Schritt 430. Andernfalls
erfolgt der Übergang zu
Schritt 420. Auf diese Weise wird, falls die vorgeladenen Defaultübersetzungsattribute
(welches die meistbenutzten Attribute sein sollten) korrekt sind, die
TLB-Eintragung beschleunigt, weil der Attributteil der Übersetzung
nicht mehr geladen werden muß. Schritt
410 kann unter Verwendung einer Vielzahl von Techniken durchgeführt werden,
einschließlich
1 dem Speichern der Daten, welche die korrekten Übersetzungsattribute in den
Einträgen
der Seitentabelle(n) indiziert (oder ob die Übersetzungsattribute für eine gegebene
Seite sich von den voreingestellten Übersetzungsattributen unterscheiden)
sowie 2 dem Einrichten des Betriebssystems zum Testen auf bestimmte
Adreßlisten,
welche Übersetzungsattribute
aufweisen, die sich von den voreingestellten Übersetzungsattributen unterscheiden,
etc.
-
Wie in Schritt 420 gezeigt ist, werden
die in dem/den TLB-Eintragsverzeichnis
gespeicherten, vorgeladenen Defaultübersetzungsattribute mit den korrekten
Attributen überschrieben.
Falls mehrere Defaultübersetzungsattribute
geladen wurden, überschreiben
einige Ausführungsformen
selektiv nur die Attribute, die inkorrekt sind. Von Schritt 420
erfolgt der Übergang
zu Schritt 430.
-
In Schritt 430 wird die Nummer der
physikalischen Seite der bestimmten Übersetzung in das/die TLB-Eintragsverzeichnis(se)
geladen. Es erfolgt der Übergang
von Schritt 430 zu Schritt 440.
-
Wie in Schritt 440 gezeigt ist, wird
die Übersetzung
in den TLB eingetragen und der Übergang zu
Schritt 370 vollzogen. Im Falle einer Software-Fehlseiten-Behandlungseinrichtung
beinhaltet diese eine oder mehrere Instruktionen, deren Ausführung die
Eintragung der Übersetzung
und die Fortsetzung des unterbrochenen Prozesses bewirkt.
-
Ein exemplarisches Computersystem
-
5 ist
ein Blockdiagramm eines exemplarischen Computersystems 500,
welches, bezugnehmend auf eine Ausführungsform der Erfindung, eine Software-Fehlseiten-Behandlungseinrichtung
enthält.
Das exemplarische Computersystem 500 enthält einen
Prozessor 505, verbunden mit einer Speicher-Einheit 510 durch
einen Bus 515. Zusätzlich können eine
Mehrzahl von Benutzer-Eingabe-Ausgabe-Einheiten,
wie eine Tastatur 520 und ein Monitor 525, an
den Bus 515 angeschlossen sein, obwohl sie keine notwendigen
Teile der Erfindung darstellen. Ein Netzwerk 530 kann ebenso
an den Bus 515 angeschlossen sein. Der Prozessor 505 repräsentiert
eine zentrale Prozessor-Einheit von beliebiger Architektur, wie
zum Beispiel ein CISC, RISC, VLIW oder eine Mischform. Auch kann
der Prozessor 505 auf einem oder mehreren Chips implementiert
sein. Die Speicher-Einheit 510 repräsentiert einen oder mehrere Mechanismen
zum Spei chern von Daten. Zum Beispiel kann die Speicher-Einheit 510 Nur-Lese-Speicher
(ROM = Read-Only-Memory), Direktzugriffsspeicher (RAM = Random Access
Memory), magnetische Speichermedien, optische Speichermedien, Flash-Speicher-Einheiten
und/oder andere maschinenlesbare Medien enthalten. Der Bus 515 repräsentiert
einen oder mehrere Busse (z. B. PCI, ISA, X-Bus, EISA, VESA etc.)
und Brücken
(auch bezeichnet als Bus-Controller). Während diese Ausführungsform
im Hinblick auf ein Einzelprozessor-Computersystem beschrieben wird,
kann die Erfindung auch in einem Multiprozessor-Computersystem implementiert
werden.
-
5 zeigt
außerdem,
daß auf
der Speicher-Einheit 510 eine Software-Fehlseiten-Behandlungseinrichtung 535 und
eine Gruppe von Seitentabellen 540 zum Bestimmung von Übersetzungen
gespeichert ist. Natürlich
enthält
die Speicher-Einheit 510 vorzugsweise zusätzliche
Software wie ein Betriebssystem und verschiedene Anwendungen (nicht gezeigt),
welche für
das Verständnis
der Erfindung nicht notwendig sind.
-
5 zeigt
zusätzlich,
daß der
Prozessor 505 eine Ausführungs-Einheit 545,
eine Gruppe von Verzeichnissen 550, einen TLB 555,
eine Vorlade-Schaltung 560,
eine Gruppe von TLB-Eintragsverzeichnissen 565 und eine
Ereignisbehandfungs-Einheit 570 umfaßt. Die Ausführungs-Einheit 545 ist
zur Übertragung
eines oder mehrerer Felder virtueller Adressen an die Gruppe von
Verzeichnissen 550 und den TLB 555 angeschlossen,
zwecks der Übersetzung
in virtuelle Adressen. Die Verzeichnisse 550 und der TLB 555 arbeiten
in Verbindung mit der Vorlade-Schaltung 560 und dem/den TLB-Eintragsverzeichnis(sen)
565 ähnlich
wie in 2 beschrieben.
-
In Folge eines TLB-Fehlers bewirkt
die Ereignisbehandlungs-Einheit 570 die Ausführung der
Software-Fehlseiten-Behandlungseinrichtung 535. Die Ausführung der
Software-Fehlseiten-Behandlungseinrichtung 535 veranlaßt den Prozessor 505, Übersetzungen
von der Gruppe von Seitentabellen abzurufen und diese im TLB 555 einzutragen,
wie oben beschrieben. Die Software-Fehlseiten-Behandlungseinrichtung 535 ist
so implementiert, daß sie
vom Vorladen der Default-Übersetzungsattribute
profitiert, falls diese korrekt sind.
-
Wie bereits erläutert ist die Erfindung weder durch
die Anzahl oder die Art von Fehlseiten-Behandlungseinrichtungen
noch durch die von ihnen verwendeten Techniken beschränkt. Daher
können, obwohl
das gezeigte Computersystem nur eine einzige Software-Fehlseiten-Behandlungseinrichtung
aufweist, andere Ausführungsformen
eine beliebige Vielzahl von Software- und/oder Hardware-Fehlseiten-Behandlungseinrichtungen
umfassen, welche wiederum eine beliebige Vielzahl von Techniken
verwenden. Insbesondere können
andere Ausführungsformen
eine Hardware-Fehlseiten-Behandlungseinrichtung aufweisen, welche
in den Prozessor integriert ist, entweder zusätzlich oder anstelle einer Software-Fehlseiten-Behandlungseinrichtung 535.
-
Während 5 einen Prozessor mit einem einzelnen
TLB zeigt, können
andere Ausführungsformen
des Prozessors mehrere TLBs enthalten (z. B. einen Daten-TLB und
einen Befehls-TLB), welche die TLB-Eintragsverzeichnisse teilen
oder eigene TLB-Eintragsverzeichnisse aufweisen können. Die Bezeichnung
,Speicherplatz' wird
für jedweden
Mechanismus zur Speicherung von Daten verwendet, einschließlich Stellen
innerhalb einer Speicher-Einheit wie der Speicher-Einheit 510,
einem oder mehreren Verzeichnissen in einem Prozessor etc.