DE69724572T2 - Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen - Google Patents

Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen Download PDF

Info

Publication number
DE69724572T2
DE69724572T2 DE69724572T DE69724572T DE69724572T2 DE 69724572 T2 DE69724572 T2 DE 69724572T2 DE 69724572 T DE69724572 T DE 69724572T DE 69724572 T DE69724572 T DE 69724572T DE 69724572 T2 DE69724572 T2 DE 69724572T2
Authority
DE
Germany
Prior art keywords
translation
default
address
attribute
virtual
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.)
Expired - Lifetime
Application number
DE69724572T
Other languages
English (en)
Other versions
DE69724572D1 (de
Inventor
Koichi San Jose Yamada
Gary N. Campbell Hammond
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE69724572D1 publication Critical patent/DE69724572D1/de
Application granted granted Critical
Publication of DE69724572T2 publication Critical patent/DE69724572T2/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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation

Description

  • 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.

Claims (19)

  1. Vorrichtung zur Verwendung in einem Computersystem (500), wobei die Vorrichtung folgendes umfaßt: eine Adreßübersetzungseinheit (230, 555), die zum Speichern mehrerer Übersetzungen zum Übersetzen virtueller Adressen (100, 200) in physikalische Adressen (205) eingerichtet ist, wobei jede der mehreren Übersetzungen ein Attributfeld zum Definieren eines Attributs umfaßt, welches nicht in der virtuellen Adresse (100, 200) enthalten ist; einen Defaultübersetzungsattribut-Speicherbereich (225, 550); wobei der Defaultübersetzungsattribut-Speicherbereich (225, 550) zum Speichern mehrerer Defaultübersetzungsattribute eingerichtet ist; eine Vorlade-Einheit (240, 560), welche einen ersten Eingang aufweist, der zum Empfangen eines Signals geschaltet ist, welches anzeigt, daß eine Übersetzung für eine virtuelle Adresse (100, 200) nicht in der Adreßübersetzungseinheit (230, 555) gespeichert ist; dadurch gekennzeichnet, daß jede der mehreren Defaultübersetzungsattribute für eine unterschiedliche virtuelle Region von virtuellen Adressen (100, 200) gewählt ist; die Vorlade-Einheit (240, 560) mit dem Defaultübersetzungsattribut-Speicherbereich (225, 550) und der Adreßübersetzungseinheit (230, 555) gekoppelt ist, um auf der Grundlage von N Bits, welche die virtuelle Region der virtuellen Adresse (100, 200) identifizieren, aus den mehreren Defaultübersetzungsattributen auszuwählen und das gegenwärtig ausgewählte Defaultübersetzungsattribut in die Adreßübersetzungseinheit (230, 555) vorzuladen, und zwar vor dem Bestimmen der Übersetzung unter Verwendung einer Fehlseiten-Behandlungseinrichtung (250, 535) nach dem Schritt des Vorladens, und in der Adreßübersetzungseinheit (230, 555) jegliche übrigen Daten zu speichern, die zum Fertigstellen der Übersetzung nötig sind.
  2. Vorrichtung nach Anspruch 1, wobei jede der mehreren Defaultübersetzungsattribute wenigstens eine der folgenden Größen identifiziert: Seitengröße: Cache-Speicherungsprotokoll und Schutzschlüssel.
  3. Vorrichtung nach Anspruch 1 oder 2, weiter umfassend: eine Hardware- oder eine Software-Fehlseitenbehandlungseinrichtung (250, 535), die mit der Adreßübersetzungseinheit (230, 555) gekoppelt ist.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, wobei der Defaultübersetzungsattribut-Speicherbereich (225, 550) ein Satz von Registern ist.
  5. Vorrichtung nach Anspruch 4, wobei jedes Register in dem Satz von Registern ein Defaultübersetzungsattribut-Feld umfaßt.
  6. Vorrichtung nach einem der Ansprüche 1 bis 5, weiter umfassend einen Übersetzungseinheitspuffer-Einrichtungsspeicherbereich (245, 565), der ein Feld für die virtuelle Seitennummer, ein Feld für die physikalische Seitennummer und ein Übersetzungsattributfeld umfaßt.
  7. Vorrichtung nach Anspruch 4 bis 6, wobei die N Bits der virtuellen Adresse (100, 200) dazu verwendet werden, ein entsprechendes Register in dem Satz von Registern des Defaultübersetzungsattribut-Speicherbereichs (225, 550) zu identifizieren.
  8. Vorrichtung nach einem der Ansprüche 1, 2, 4 bis 7, wobei die Adreßübersetzungseinheit (230, 555) ein Adreßübersetzungs-Puffer ist.
  9. Vorrichtung nach Anspruch 8, weiter umfassend eine Hardware-Fehlseitenbehandlungseinrichtung (250), die mit dem Adreßübersetzungs-Puffer gekoppelt ist.
  10. Vorrichtung nach einem der Ansprüche 1, 2, 4 bis 8, weiter umfassend eine Ereignisbehandlungseinheit (570) zum Aufrufen einer Software-Fehlseitenbehandlungseinrichtung (535).
  11. Vorrichtung nach einem der Ansprüche 1, 2, 4 bis 8, die weiter folgendes umfaßt: einen Prozessor (505), der die Adreßübersetzungseinheit (230, 555), den Defaultübersetzungsattribut-Speicherbereich (225, 550) und die Vorlade-Einrichtung (240, 560) umfaßt; und eine mit dem Prozessor (505) gekoppelte Speichervorrichtung (510), in der eine Software-Fehlseitenbehandlungseinrichtung (535) zur Ausführung durch den Prozessor (505) in Antwort auf das Signal gespeichert ist, wobei die Ausführung der Software-Fehlseitenbehandlungseinrichtung (535) den Prozessor (505) veranlaßt, einen berichtigten Wert in das Übersetzungsattributfeld zu schreiben, wenn ein unrichtiges Defaultattribut von der Vorlade-Schaltung (240, 560) geladen wird.
  12. Vorrichtung nach Anspruch 10 oder 11, wobei der Prozessor (505) wenigstens einen Teil der virtuellen Adresse (100, 200) in dem Feld für die virtuelle Seitennummer in Antwort auf das Signal speichert.
  13. Vorrichtung nach einem der Ansprüche 1 bis 12, wobei die Vorlade-Einheit (240, 560) eine Vorlade-Schaltung ist.
  14. Vorrichtung nach einem der Ansprüche 1 bis 13, wobei das Attributfeld ein bei der Übersetzung zu verwendendes Attribut definiert.
  15. Verfahren zum Speichern von Übersetzungen in einer Adreßübersetzungseinheit (230, 555), wobei die Adreßübersetzungseinheit (230, 555) zum Übersetzen virtueller Adressen (100, 200) in physikalische Adressen (205) bestimmt ist, wobei das Verfahren folgende computer-implementierte Schritte umfaßt: Detektieren, daß eine Übersetzung für eine virtuelle Adresse (100, 200) nicht in der Adreßübersetzungseinheit (230, 555) gespeichert ist; Speichern mehrerer Defaultübersetzungsattribute in einem Defaultübersetzungsattribut-Speicherbereich (225, 550); dadurch gekennzeichnet, daß jede der mehreren Defaultübersetzungsattribute für einen unterschiedlichen virtuellen Bereich von virtuellen Adressen (100, 200) 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 (100, 200) identifizieren, wobei das Defaultübersetzungsattribut nicht in der virtuellen Adresse (100, 200) enthalten ist; Vorladen des gegenwärtig ausgewählten Defaultübersetzungsattributs in die Adreßübersetzungseinheit (230, 555); Bestimmen der Übersetzung unter Verwendung einer Fehlseitenbehandlungseinrichtung (250, 535) nach dem Schritt des Vorladens; und Speichern jeglicher verbleibender Daten in der Adreßübersetzungseinheit (230, 555), die zum Fertigstellen der Übersetzung nötig sind.
  16. Verfahren nach Anspruch 15, wobei der Schritt des Speicherns jeglicher verbleibender Daten in der Adreßübersetzungseinheit (230, 555), die zum Fertigstellen der Übersetzung nötig sind, folgende Schritte umfaßt: falls die Übersetzung das vorgeladene Defaultübersetzungsattribut enthält, Speichern der Übersetzung in der Adreßübersetzungseinheit (230, 555), ohne das vorgeladene Defaultübersetzungsattribut zu überschreiben; und falls die Übersetzung das vorgeladene Defaultübersetzungsattribut nicht enthält, Überschreiben des vorgeladenen Defaultübersetzungsattributs mit einem richtigen Übersetzungsattribut.
  17. Verfahren nach Anspruch 15 oder 16, weiter umfassend den Schritt eines Speicherns einer virtuellen Seitennummer der Übersetzung in der Adreßübersetzungseinheit (230, 555) vor dem Schritt des Speichers jeglicher verblei bender Daten, die zum Fertigstellen der Übersetzung nötig sind, in der Adreßübersetzungseinheit.
  18. Verfahren nach einem der Ansprüche 15 bis 17, wobei der Schritt des Vorladens den Schritt des Vorladens des gegenwärtig ausgewählten Defaultübersetzungsattributs umfaßt, um wenigstens eine der folgenden Größen zu identifizieren: Seitengröße, Cache-Speicherungsprotokoll und Schutzschlüssel.
  19. Verfahren nach einem der Ansprüche 15 bis 18, wobei der Schritt des Bestimmens den Schritt des Ausführens einer Software-Fehlseitenbehandlungseinrichtung (250, 535) umfaßt.
DE69724572T 1996-12-23 1997-05-23 Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen Expired - Lifetime DE69724572T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/771,845 US5918251A (en) 1996-12-23 1996-12-23 Method and apparatus for preloading different default address translation attributes
US771845 1996-12-23

Publications (2)

Publication Number Publication Date
DE69724572D1 DE69724572D1 (de) 2003-10-09
DE69724572T2 true DE69724572T2 (de) 2004-04-08

Family

ID=25093117

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69724572T Expired - Lifetime DE69724572T2 (de) 1996-12-23 1997-05-23 Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen

Country Status (5)

Country Link
US (1) US5918251A (de)
EP (1) EP0851357B1 (de)
JP (1) JP3998787B2 (de)
CN (1) CN1153145C (de)
DE (1) DE69724572T2 (de)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041366A (en) * 1998-02-02 2000-03-21 International Business Machines Corporation System and method for dynamic specification of input/output attributes
US6205531B1 (en) * 1998-07-02 2001-03-20 Silicon Graphics Incorporated Method and apparatus for virtual address translation
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7275246B1 (en) * 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US6301648B1 (en) * 1999-08-18 2001-10-09 Ati International Srl Method and apparatus for processing memory accesses utilizing a TLB
US6393544B1 (en) * 1999-10-31 2002-05-21 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for calculating a page table index from a virtual address
US6560689B1 (en) * 2000-03-31 2003-05-06 Intel Corporation TLB using region ID prevalidation
US6546453B1 (en) 2000-08-31 2003-04-08 Compaq Information Technologies Group, L.P. Proprammable DRAM address mapping mechanism
US6567900B1 (en) 2000-08-31 2003-05-20 Hewlett-Packard Development Company, L.P. Efficient address interleaving with simultaneous multiple locality options
US6662265B1 (en) 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Mechanism to track all open pages in a DRAM memory system
US6681295B1 (en) 2000-08-31 2004-01-20 Hewlett-Packard Development Company, L.P. Fast lane prefetching
US6754739B1 (en) 2000-08-31 2004-06-22 Hewlett-Packard Development Company Computer resource management and allocation system
US6636955B1 (en) 2000-08-31 2003-10-21 Hewlett-Packard Development Company, L.P. Mechanism for synchronizing multiple skewed source-synchronous data channels with automatic initialization feature
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US6715057B1 (en) 2000-08-31 2004-03-30 Hewlett-Packard Development Company, L.P. Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes
US6738836B1 (en) 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6546465B1 (en) 2000-08-31 2003-04-08 Hewlett-Packard Development Company, L.P. Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
US6662319B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US7213087B1 (en) 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
US6779142B1 (en) 2000-08-31 2004-08-17 Hewlett-Packard Development Company, L.P. Apparatus and method for interfacing a high speed scan-path with slow-speed test equipment
US6622225B1 (en) 2000-08-31 2003-09-16 Hewlett-Packard Development Company, L.P. System for minimizing memory bank conflicts in a computer system
US6654858B1 (en) 2000-08-31 2003-11-25 Hewlett-Packard Development Company, L.P. Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US6678840B1 (en) * 2000-08-31 2004-01-13 Hewlett-Packard Development Company, Lp. Fault containment and error recovery in a scalable multiprocessor
US6671822B1 (en) 2000-08-31 2003-12-30 Hewlett-Packard Development Company, L.P. Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache
US6704817B1 (en) 2000-08-31 2004-03-09 Hewlett-Packard Development Company, L.P. Computer architecture and system for efficient management of bi-directional bus
US6633960B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Scalable directory based cache coherence protocol
US6961781B1 (en) 2000-08-31 2005-11-01 Hewlett-Packard Development Company, L.P. Priority rules for reducing network message routing latency
US6668335B1 (en) 2000-08-31 2003-12-23 Hewlett-Packard Company, L.P. System for recovering data in a multiprocessor system comprising a conduction path for each bit between processors where the paths are grouped into separate bundles and routed along different paths
US7099913B1 (en) 2000-08-31 2006-08-29 Hewlett-Packard Development Company, L.P. Speculative directory writes in a directory based cache coherent nonuniform memory access protocol
DE10131124A1 (de) * 2001-06-28 2003-01-23 Infineon Technologies Ag Konfigurierbare Adressierungsvorrichtung
GB2378779B (en) * 2001-08-14 2005-02-02 Advanced Risc Mach Ltd Accessing memory units in a data processing apparatus
US6782446B2 (en) * 2001-08-22 2004-08-24 Intel Corporation Method to prevent corruption of page tables during flash EEPROM programming
US7124273B2 (en) * 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7581010B2 (en) * 2003-07-14 2009-08-25 Microsoft Corporation Virtual connectivity with local connection translation
US20050160229A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for preloading translation buffers
US7206916B2 (en) * 2004-03-08 2007-04-17 Sun Microsystems, Inc. Partial address compares stored in translation lookaside buffer
JP4233492B2 (ja) * 2004-06-02 2009-03-04 富士通マイクロエレクトロニクス株式会社 アドレス変換装置
US7424584B2 (en) * 2004-08-12 2008-09-09 International Business Machines Corporation Key-controlled object-based memory protection
US7617380B2 (en) * 2005-08-25 2009-11-10 Broadcom Corporation System and method for synchronizing translation lookaside buffer access in a multithread processor
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
CN101627365B (zh) 2006-11-14 2017-03-29 索夫特机械公司 多线程架构
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US9244855B2 (en) * 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
WO2010150451A1 (ja) * 2009-06-24 2010-12-29 パナソニック株式会社 メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置
US8364933B2 (en) * 2009-12-18 2013-01-29 International Business Machines Corporation Software assisted translation lookaside buffer search mechanism
US8694755B1 (en) * 2010-03-17 2014-04-08 Ambarella, Inc. Virtual memory management for real-time embedded devices
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
EP2689326B1 (de) 2011-03-25 2022-11-16 Intel Corporation Speicherfragmente zur unterstützung einer codeblockausführung mittels durch partitionierbare engines realisierter virtueller kerne
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊
CN103649932B (zh) 2011-05-20 2017-09-26 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
CN103649931B (zh) 2011-05-20 2016-10-12 索夫特机械公司 用于支持由多个引擎执行指令序列的互连结构
IN2014CN03678A (de) 2011-11-22 2015-09-25 Soft Machines Inc
EP2783281B1 (de) 2011-11-22 2020-05-13 Intel Corporation Durch einen mikroprozessor beschleunigter code-optimierer
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9430410B2 (en) 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9916253B2 (en) 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
CN103116555B (zh) * 2013-03-05 2014-03-05 中国人民解放军国防科学技术大学 基于多体并行缓存结构的数据访问方法
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
KR101708591B1 (ko) 2013-03-15 2017-02-20 소프트 머신즈, 인크. 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
KR20150130510A (ko) 2013-03-15 2015-11-23 소프트 머신즈, 인크. 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0175398A3 (de) * 1984-08-17 1989-08-30 Koninklijke Philips Electronics N.V. Datenverarbeitungsanordnung mit einem Speicherzugriffssteuergerät welches zur Kombination von Deskriptor-Bits aus verschiedenen mit virtuellen Adressen verbundenen Deskriptoren vorgesehen ist
US5060137A (en) * 1985-06-28 1991-10-22 Hewlett-Packard Company Explicit instructions for control of translation lookaside buffers
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4881075A (en) * 1987-10-15 1989-11-14 Digital Equipment Corporation Method and apparatus for adaptive data compression
US4980816A (en) * 1987-12-18 1990-12-25 Nec Corporation Translation look-aside buffer control system with multiple prioritized buffers
US5179674A (en) * 1988-07-25 1993-01-12 Digital Equipment Corporation Method and apparatus for predicting valid performance of virtual-address to physical-address translations
US5058003A (en) * 1988-12-15 1991-10-15 International Business Machines Corporation Virtual storage dynamic address translation mechanism for multiple-sized pages
JPH02205953A (ja) * 1989-02-03 1990-08-15 Nec Corp アドレス変換装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
EP0506236A1 (de) * 1991-03-13 1992-09-30 International Business Machines Corporation Adressübersetzungseinrichtung
RU1804645C (ru) * 1991-03-27 1993-03-23 Институт Точной Механики И Вычислительной Техники Им.С.А.Лебедева Центральный процессор
US5278963A (en) * 1991-06-21 1994-01-11 International Business Machines Corporation Pretranslation of virtual addresses prior to page crossing
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5493660A (en) * 1992-10-06 1996-02-20 Hewlett-Packard Company Software assisted hardware TLB miss handler
US5442766A (en) * 1992-10-09 1995-08-15 International Business Machines Corporation Method and system for distributed instruction address translation in a multiscalar data processing system
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
US5526504A (en) * 1993-12-15 1996-06-11 Silicon Graphics, Inc. Variable page size translation lookaside buffer
US5561814A (en) * 1993-12-22 1996-10-01 Intel Corporation Methods and apparatus for determining memory operating characteristics for given memory locations via assigned address ranges
US5652872A (en) * 1994-03-08 1997-07-29 Exponential Technology, Inc. Translator having segment bounds encoding for storage in a TLB
JP3740195B2 (ja) * 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit

Also Published As

Publication number Publication date
CN1153145C (zh) 2004-06-09
CN1192009A (zh) 1998-09-02
DE69724572D1 (de) 2003-10-09
JPH10228419A (ja) 1998-08-25
US5918251A (en) 1999-06-29
JP3998787B2 (ja) 2007-10-31
EP0851357A1 (de) 1998-07-01
EP0851357B1 (de) 2003-09-03

Similar Documents

Publication Publication Date Title
DE69724572T2 (de) Verfahren und Vorrichtung zur Vorladung von verschiedenen vorgegebenen Adressenübersetzungsattributen
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE112005003859B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE69738101T2 (de) Verwaltung des Zugangs zu Objekten mit Hilfe von Referenzen mit drei Zuständen
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE60023002T2 (de) Erweiterung und abbildung auf physikalischem speicher von linearen adressen unter verwendung von 4 und 8 byte seitentabelleneinträgen in einem 32-bit mikroprozessor
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE3151745C2 (de)
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE2235841C2 (de) Datenverarbeitungsanlage mit Speichersteuerung für mindestens einen Prozessor und diesen zugeordneten Pufferspeichern
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE4410060B4 (de) Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE2455047A1 (de) Datenverarbeitungssystem
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE2835989A1 (de) Anordnung zum umwandeln einer virtuellen adresse in eine physikalische adresse eines datenwortes
DE69634315T2 (de) Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht
EP0010198A2 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
DE112018002032T5 (de) Gemeinsames nutzen von virtuellen und realen übersetzungen in einem virtuellen cache
DE112018002028T5 (de) Umsetzungsunterstützung für einen virtuellen cache
DE2926351A1 (de) Look-ahead-speicheradressen- steuereinrichtung
DE4234695C2 (de) Computer-Speichersystem und Verfahren zur Aufrechterhaltung der Cache-Kohärenz zwischen einem Daten-Cache und einem Segmentdeskriptor-Cache

Legal Events

Date Code Title Description
8364 No opposition during term of opposition