PatentDe  


Dokumentenidentifikation DE112005003098T5 25.10.2007
Titel Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
Anmelder Intel Corp., Santa Clara, Calif., US
Erfinder Mondal, Sanjoy, San Marcos, Tex., US;
Patel, Rajesh, Austin, Tex., US;
Smith III, Lawrence, Beaverton, Oreg., US
Vertreter BOEHMERT & BOEHMERT, 28209 Bremen
DE-Aktenzeichen 112005003098
Vertragsstaaten AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BW, BY, BZ, CA, CH, CN, CO, CR, CU, CZ, DE, DK, DM, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, KE, KG, KM, KN, KP, KR, KZ, LC, LK, LR, LS, LT, LU, LV, LY, MA, MD, MG, MK, MN, MW, MX, MZ, NA, NG, NI, NO, NZ, OM, PG, PH, PL, PT, RO, RU, SC, SD, SE, SG, SK, SL, SM, SY, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, YU, ZA, ZM, ZW, EP, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HU, IE, IS, IT, LT, LU, LV, MC, NL, PL, PT, RO, SE, SI, SK, TR, OA, BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, ML, MR, NE, SN, TD, TG, AP, BW, GH, GM, KE, LS, MW, MZ, NA, SD, SL, SZ, TZ, UG, ZM, ZW, EA, AM, AZ, BY, KG, KZ, MD, RU, TJ, TM
WO-Anmeldetag 17.11.2005
PCT-Aktenzeichen PCT/US2005/042154
WO-Veröffentlichungsnummer 2006060220
WO-Veröffentlichungsdatum 08.06.2006
Date of publication of WO application in German translation 25.10.2007
Veröffentlichungstag im Patentblatt 25.10.2007
IPC-Hauptklasse G06F 9/38(2006.01)A, F, I, 20051117, B, H, DE

Beschreibung[de]
GEBIET

Diese Erfindung betrifft das Gebiet der Prozessoren und insbesondere das Zugreifen auf Speicher mit einem Prozessorelement.

HINTERGRUND

Da Verarbeitungsressourcen erhöht worden sind, ist die Nachfrage, mehrere Softwareprogramme und Betriebssysteme auf einem einzelnen Mikroprozessor laufenzulassen, auch größer geworden. Eine Umgebung, als Architektur einer Erweiterung einer virtuellen Maschine (VMX – Virtual Machine Extension) bezeichnet, weist typischerweise die Ressourcen eines einzelnen Prozessors verschiedenen Softwareanwendungen und Betriebssystemen zu. Daher können die Ressourcen eines einzelnen Mikroprozessors oder mehrerer Prozessorelemente zwischen mehreren Betriebssystemen und mehreren Anwendungen aufgeteilt werden, was es einem Benutzer erlaubt, potentiell ihren Einsatz auf einer Rechenplattform zu verstärken.

Typischerweise bildet in einer VMX-Umgebung ein Programm eines Monitors für virtuelle Maschine (VMM – Virtual Machine Monitors) eine Schnittstelle mit einem oder mehreren Softwareprogrammen, so wie einem Programm einer virtuellen Maschine (VM) und einem einzelnen oder mehreren Mikroprozessoren. Eine virtuelle Maschine (VM) kann Gastsoftware umfassen, so wie ein Betriebssystem (OS – Operating System) oder andere Softwareanwendungen. Üblicherweise, um es mehreren VMs zu erlauben, auf einem einzelnen Prozessor zu laufen, wird die Zustandsinformation und Steuerinformation für den VMM und jedes VM-Programm in einem Speicher abgelegt.

Eine Struktur, die üblicherweise zum Speichern solcher Zustands- und Steuerinformation verwendet wird, ist eine Steuerstruktur einer virtuellen Maschine (VMCS – Virtual Machine Control Structure). Das Speichern der VMCS in dem Mikroprozessor kann potentiell das Adressieren der VMCS architekturspezifisch zulassen; daher befindet sich die VMCS typischerweise in einem Teil des Hauptsystemspeichers.

Das Einstellen der VMCS in den Systemspeicher erzeugt üblicherweise Adressierbeschränkungen für Mikroprozessoren, die virtuelle Speicheradressierung verwenden. Typischerweise erzeugt ein Mikroprozessor, der einen virtuellen Speicher benutzt, eine lineare Adresse für einen Speicherort, von dem abgeholt werden soll oder auf den geschrieben werden soll. Diese lineare Adresse wird durch eine Übersetzungseinheit in den Mikroprozessor in eine physikalische Adresse des Speicherortes in einem Systemspeicher übersetzt. Obwohl der VMCS-Teil des Systemspeichers auf diese Weise adressiert werden kann, sind Fehler im Übersetzungsprozeß, so wie ein Seitenfehler, in einer VMX-Umgebung schwierig zu handhaben. Daher adressieren viele Befehle, so wie VMWRITE, VMREAD und andere VMX-Befehle physikalisch einen Speicherort im Systemspeicher, anstatt daß sie eine lineare Adresse zur Verfügung stellen, die übersetzt werden soll.

Bei einem Mikroprozessor, der das Paging eines virtuellen Speichers verwendet, kann es sein, daß ein VMX-Befehl direkt ohne eine Übersetzung einer linearen in eine physikalische Adresse auf physikalische Speicher zugreifen muß. Jedoch erfordern heutige Systeme es üblicherweise, daß das Paging des virtuellen Speichers deaktiviert wird und der Puffer für die Übersetzung der linearen in die physikalische Adresse geleert wird, bevor ein direkter Zugriff mit einer physikalischen Adresse auf den Speicher auftreten kann. Die Menge an Zeit, die benötigt wird, das Paging zu deaktivieren und den Übersetzungspuffer zu leeren, geht typischerweise mit einer Strafe wegen der langen Ausführungszeit einher.

KURZBESCHREIBUNG DER ZEICHNUNGEN

Die vorliegende Erfindung wird beispielhaft veranschaulicht, und es ist nicht beabsichtigt, daß sie durch die Figuren der beigefügten Zeichnungen beschränkt ist.

1 veranschaulicht eine Ausführungsform eines Systems mit zwei virtuellen Maschinen, einem Monitor für virtuelle Maschinen, einem Prozessor und einem Systemspeicher.

2 veranschaulicht ein Teilfunktionsblockschaubild des Prozessors, der in 1 dargestellt ist.

3 veranschaulicht eine Ausführungsform der physikalischen Adresslogik, die in 2 veranschaulicht ist.

4 veranschaulicht eine Ausführungsform eines Systems mit einem Mikroprozessor und einem Speicher mit einer Steuerstruktur für eine virtuelle Maschine.

5 veranschaulicht eine Ausführungsform eines Befehls, der einen Speicherort linear adressiert, und eines Befehls, der einen Speicherort physikalisch adressiert.

GENAUE BESCHREIBUNG

In der folgenden Beschreibung sind zahlreiche bestimmte Einzelheiten dargelegt, so wie eine bestimmte Umgebung einer virtuellen Maschine, bestimmte Komponenten und bestimmte funktionale Blöcke, um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Es wird jedoch dem Fachmann deutlich, daß diese bestimmten Einzelheiten beim Umsetzen der vorliegenden Erfindung in die Praxis nicht benutzt werden müssen. In anderen Fällen sind gut bekannte Komponenten oder Verfahren, so wie wohlbekannte funktionale Blöcke eines Mikroprozessors usw., nicht in Einzelheiten beschrieben worden, um es zu vermeiden, daß die vorliegende Erfindung unnötigerweise verschleiert wird.

1 veranschaulicht die Umgebung einer virtuellen Maschine für das Bilden einer Schnittstelle von Gastsoftware, auch als virtuelle Maschine oder virtuelles Maschinenprogramm bekannt, mit einem Prozessor 120. Genau veranschaulicht 1 eine erste virtuelle Maschine 105 und eine zweite virtuelle Maschine 110. Die virtuellen Maschinen 105 und 110 können irgendwelche oder irgendeine Kombination der folgenden sein: ein Betriebssystem, eine für ein Betriebssystem spezifische Anwendung, eine allgemeine Anwendung, Softwareroutinen oder irgendein anderes Programm, das auf dem Prozessor 120 laufen kann. Bei einer Ausführungsform hat der Prozessor 120 mehrere logische Prozessoren. Bei einer weiteren Ausführungsform ist der Prozessor 120 einer von mehreren physikalischen Prozessoren in einem System.

1 veranschaulicht auch einen Manager für virtuelle Maschinen (VMM) 115, um eine Schnittstelle der virtuellen Maschine 105 und der virtuellen Maschine 110 mit dem Prozessor 120 zu bilden. Bei einer Ausführungsform ist die Zustands- und Steuerinformation für die VM 105, die VM 110 und den VMM 115 in einem Systemspeicher 125 abgelegt. Als Beispiel veranschaulicht 1 die Steuerstruktur einer virtuellen Maschine (VMCS) 130, die sich im Systemspeicher 125 befindet, um die Zustands- und Steuerinformation für die VM 105, die VM 110 und den VMM 115 zu speichern. Obwohl 1 das VMCS 130 so veranschaulicht, daß es sich im Systemspeicher 125 befindet, kann sich das VMCS in irgendeiner Speicherstruktur befinden, die im System vorhanden ist, einschließlich einem Speicher, der sich in dem Prozessor 120 befindet, oder einem Speicher, der lediglich an den Prozessor 120 gekoppelt ist, so wie der Systemspeicher 125. Als ein Vorteil, falls sich das VMCS im Hauptsystemspeicher befindet, kann dann ein Befehl eine bestimmte physikalische Adresse ansprechen, indem er lediglich eine Versetzung liefert, die zu einer bereits bestehenden Basisadresse für den VMCS-Teil addiert werden muß. Dieser Typ des versetzten Adressierens verringert typischerweise die architekturspezifischen Implementierungsprobleme, die mit dem Anordnen eines physikalisch adressierten Speichers in einem Mikroprozessor verbunden sind. Jedoch ist der VMCS-Teil 130, wie oben angesprochen, nicht darauf beschränkt, daß er sich im Systemspeicher 125 befindet.

Bei einer Ausführungsform geben die VM 105 und 110 ebenso wie der VMM 115 Befehle aus, die den Systemspeicher 125 linear adressieren. Der Prozessor 120 übersetzt dann die linearen Adressen in physikalische Adressen im Systemspeicher 125. Bei einer anderen Ausführungsform gibt die VM 105, die VM 110 oder der VMM 115 einen Befehl aus, der den Systemspeicher 125 physikalisch adressiert. Der Prozessor 120 greift dann direkt auf die physikalische Adresse in dem Systemspeicher 125 ohne Adressenübersetzung zu. Der Prozessor 120 und die Adressenübersetzung werden in weiteren Einzelheiten mit Bezug auf 2 diskutiert.

Der Systemspeicher 125 kann irgendein Typ eines Zugriffsspeichers sein, der in einem System verwendet wird. Bei einer Ausführungsform ist der Systemspeicher 125 eine Speichervorrichtung mit wahlfreiem Zugriff (RAM – Random Access Memory), so wie ein statischer Speicher mit wahlfreiem Zugriff (SRAM – Static Random Access Memory), ein dynamischer Speicher mit wahlfreiem Zugriff (DRAM – Dynamic Random Access Memory), ein Einzeldatenraten (SDR – Single Data Rate)-RAM, ein Doppeldatenraten (DDR – Double Data Rate)-RAM, irgendein anderer Mehrfachdatenraten-RAM oder ein anderer Typ eines Zugriffsspeichers. Bei einer weiteren Ausführungsform ist der Systemspeicher 125 irgendeine andere Speichervorrichtung, die dem Prozessor 125 zugewiesen ist, einschließlich eines Festplattenlaufwerks, einer entfernt befindlichen Speichervorrichtung oder irgendeine andere Kurz- oder Langzeit-Speichervorrichtung.

Der 2 zugewandt ist eine beispielhafte Ausführungsform des Prozessors 120 veranschaulicht. Bei einer Ausführungsform ist der Prozessor 120 ein Mikroprozessor, der in der Lage ist, unabhängig von einem weiteren Prozessor zu arbeiten. Bei einer anderen Ausführungsform ist der Prozessor 120 ein Coprozessorelement, das im Zusammenwirken mit anderen Prozessorelementen arbeitet.

Bei einer Ausführungsform umfaßt der Prozessor 120 eine Abholeinheit, so wie eine Befehlsabholeinheit 210, welche Logik zum Abholen und/oder Empfangen von Befehlen aufweist. Als ein Beispiel umfaßt ein Befehl einen einzelnen Arbeitsschritt, um auf einem einzigen oder mehreren Datenoperanden zu arbeiten. Als ein weiteres Beispiel umfaßt ein Befehl mehrere Arbeitsschritte, auch als Mikro-Operationen bezeichnet, die auf einem. einzigen oder mehreren Datenoperanden durchgeführt werden. Ein Befehl, der eine Vielzahl von Arbeitsschritten umfaßt, wird üblicherweise als ein Makrobefehl bezeichnet, während die einzelnen Arbeitsgänge üblicherweise als Mikro-Operationen bezeichnet werden. Als ein Beispiel kann ein Makrobefehl, der auf zwei Datenoperanden arbeitet eine Vielzahl von Mikro-Operationen umfassen, wobei eine erste Mikro-Operation den Prozessor 120 instruiert, einen ersten Datenoperanden zu laden, eine zweite Mikro-Operation den Prozessor 120 instruiert, einen zweiten Datenoperanden zu laden, und eine dritte Mikro-Operation den Prozessor 120 instruiert, auf dem ersten und dem zweiten Datenoperanden zu arbeiten. Bei einer Ausführungsform holt die Befehls-Abholeinheit 210 Befehle fester Länge ab. Bei einer anderen Ausführungsform holt die Befehls-Abholeinheit 210 Befehle variabler Länge ab. Bei noch einer weiteren Ausführungsform holt die Befehls-Abholeinheit 210 x86 Befehle ab.

Der Prozessor 120 kann auch Befehlsdecodierung 215 umfassen. Bei einer Ausführungsform ist die Befehlsdecodierung 215 eine Decodiereinheit oder eine Decodierlogik zum Decodieren von Befehlen, die von der Befehls-Abholeinheit 210 abgeholt worden sind, einschließlich Befehlen fester Länge, variabler Länge und x86-Befehlen. Als ein Beispiel decodiert die Decodierlogik Befehle, die von der Befehlseinheit 210 abgeholt worden sind, in ihre einzelnen Mikro-Operationen. Bei einer Ausführungsform umfaßt die Befehlsdecodierung 215 einen Mikrocode-Nur-Lese-Speicher zum Decodieren komplexer Befehle. Bei einer weiteren Ausführungsform umfaßt die Befehlsdecodierung 215 einen niederpegeligen Cache zum Speichern jüngst abgeholter Befehle oder zum Speichern soeben decodierter Befehle. Bei noch einer weiteren Ausführungsform umfaßt die Befehlsdecodierung 215 die Sprungvorhersage oder Spekulationslogik, um bei der spekulativen Decodierung und Ausführung von Befehlen zu unterstützen.

Der Prozessor 120 veranschaulicht auch einen Mikro-Sequenzierer 220, der mit der Befehlsdecodierung 215 und der Befehls-Abholeinheit 210 gekoppelt ist. Bei einer Ausführungsform ist der Prozessor 120 ein in-order-Ausführungsprozessor, welcher Befehle und Mikro-Arbeitsgänge in der Reihenfolge ausführt, in der sie abgeholt und decodiert werden. Bei einer Ausführungsform eines in-order-Prozessors werden abgeholte Befehle decodiert und direkt von der Decodierlogik oder dem Cache, der decodierte Befehle speichert, ausgeführt. Bei einer alternativen Ausführungsform liegt der Mikro-Sequenzierer 220 in dem in-order-Ausführungsprozessor vor, um decodierte Mikro-Operationen von der Befehlsdecodierung 215 und einem Befehlscache, nicht dargestellt, zu empfangen, weiterzuleiten und zu verfolgen.

Bei einer weiteren Ausführungsform ist der Prozessor 120 ein out-of-order-Ausführungsprozessor, bei dem Befehle und Mikro-Arbeitsgänge nicht spekulativ und/oder spekulativ neu geordnet und ausgeführt werden. Daher kann der Mikro-Sequenzierer 220 out-of-order-Ausführungslogik, um eine Mikro-Operation außerhalb der Reihenfolge auszuführen und den Ausführungsstatus der Mikro-Operationen, Sprungvoraussage und Aktualisierung der Logik zu verfolgen, um spekulative Sprungausführung zu verfolgen und den Status jedes Ausführungsstatus von Mikro-Arbeitsgängen zu aktualisieren, Rückzugslogik, um den Erfolg der spekulativen Sprungausführung zu validieren und andere Logik, um Befehle außerhalb der Reihenfolge auszuführen, umfassen. Die Prozessorgestaltung sowohl für die in-order-Ausführung als auch für die out-of-order-Ausführung ist wohlbekannt.

Bei einer Ausführungsform bezeichnet oder umfaßt ein abgeholter und decodierter Befehl eine Mikro-Operation, die Bezug auf einen virtuellen Speicher/eine lineare Adresse nimmt. Bei einer weiteren Ausführungsform bezeichnet oder umfaßt ein abgeholter und decodierter Befehl eine Mikro-Operation, die auf eine physikalische Adresse hinweist. Bei noch einer anderen Ausführungsform umfaßt ein Makrobefehl mit einer Vielzahl von Mikro-Operationen eine Mikro-Operation, die eine lineare Adresse bezeichnet, und eine Mtikro-Operation, die eine physikalische Adresse bezeichnet.

Bei einer Ausführungsform werden lineare Adressen an einen Übersetzungspuffer 235, der auch typischerweise als ein Übersetzer einer linearen in eine physikalische Adresse bezeichnet wird, eine lineare Übersetzungseinheit und einen Übersetzungs-Look-Aside-Puffer (TLB – Translation Look-Aside Buffer) geleitet. Bei einer Ausführungsform empfängt der Übersetzungspuffer 235 einen Bezug zu einer linearen Adresse und liefert eine Darstellung einer physikalischen Adresse an eine gemeinsame Schnittstelle, so wie die gemeinsame Schnittstelle 290. Die gemeinsame Schnittstelle 290 wird in weiteren Einzelheiten hiernach diskutiert.

Oftmals wird eine lineare Adresse als eine virtuelle Speicheradresse in einem Prozessor bezeichnet, bei dem das Paging des virtuellen Speichers freigegeben ist. Der Bezug auf die lineare Adresse, der an den Übersetzungspuffer 235 geliefert wird, umfaßt bei einer Ausführungsform die lineare Adresse selbst. Bei einer weiteren Ausführungsform umfaßt die Adresse, die an den Übersetzungspuffer 235 geleitet wird, eine codierte Darstellung der linearen Adresse oder einen anderen Bezug auf eine lineare Adresse, die decodiert oder manipuliert wird, um eine Darstellung einer physikalischen Adresse zu erhalten. Es wird deutlich, daß die virtuelle Speicheradresse nicht auf eine lineare Adresse beschränkt ist, sondern in irgendeiner Form einer virtuellen Speicheradresse vorliegt, die in eine physikalische Adresse übersetzt werden kann.

Bei einer Ausführungsform umfaßt der Übersetzungspuffer 235 eine Nachschlagetabelle zum Übersetzen einer virtuellen Speicheradresse in eine physikalische Adresse. Bei einer anderen Ausführungsform umfaßt der Übersetzungspuffer 235 auch eine Übersetzungslogik, um die eingegebene virtuelle Speicheradresse in eine physikalische Adresse zu decodieren. Bei noch einer weiteren Ausführungsform umfaßt der Übersetzungspuffer 235 ein Register 240 für den Speichertyp oder ist damit verbunden. Bei einer Ausführungsform liest und/oder speichert das Register für den Speichertyp (MTR – Memory Type Register) 240, das auch als ein Leseregister für den Speichertyp (MTRR – Memory Type Read Register) bezeichnet wird, einen Speichertyp für die gemeinsame Schnittstelle 290. Als ein veranschaulichendes Beispiel ist ein Speichertyp, der von dem MTR 240 lesbar oder speicherbar ist, Cache-fähig. Bei einer Ausführungsform, wenn das MTR 240 einen Cache-fähigen Speichertyp speichert, liefert der Übersetzungspuffer 235 eine Darstellung einer physikalischen Adresse an die gemeinsame Schnittstelle 290, die eine Cache-Schnittstelle ist, so wie die Cache-Schnittstelle 260. Bei einer Ausführungsform umfaßt die Darstellung der physikalischen Adresse die tatsächliche physikalische Adresse. Bei einer weiteren Ausführungsform umfaßt die Darstellung der physikalischen Adresse eine Kennzeichnung zum Speichern/Schreiben der physikalischen Adresse in den Cache 265.

Ein weiteres veranschaulichendes Beispiel eines Speichertyps, der in dem MTR 240 gespeichert werden soll, ist ein nicht Cache-fähiger Speichertyp. Bei einer Ausführungsform liefert der Übersetzungspuffer 235 die übersetzte Darstellung einer physikalischen Adresse an die gemeinsame Schnittstelle 290. Bei einer Ausführungsform ist die gemeinsame Schnittstelle 290 eine Datenschnittstelle oder eine Datenabhollogik, so wie eine externe Datenschnittstelle 270.

Als ein veranschaulichendes Beispiel kann die gemeinsame Schnittstelle 290 irgendeine Schnittstellenlogik sein, die so arbeitet, daß sie einen Datenoperanden lädt, der einer physikalischen Adresse im Prozessor 120 zugewiesen ist, um Elemente von der physikalischen Adresse im Prozessor 120 oder einem System in dem Prozessor 120 vorliegt, anzufordern/abzuholen oder Elemente aufzuspüren/abzuholen, die von der physikalischen Adresse in einem Cache, so wie dem Cache 265, bezeichnet worden sind. Bei einer Ausführungsform umfaßt ein Element einen Datenoperanden. Bei einer weiteren Ausführungsform umfaßt ein Element einen Befehl. Bei noch einer weiteren Ausführungsform umfaßt ein Element einen Teil der Status- oder Steuerinformation. Jedoch ist ein Element nicht auf eine Befehl, einen Datenoperanden, Statusinformation oder Steuerinformation beschränkt.

Der Prozessor 120 kann auch physikalische Adreßlogik 245 umfassen, auch als eine physikalische Adressierlogik oder physikalische Adreßeinheit bezeichnet. Bei einer Ausführungsform nimmt die physikalische Adreßlogik 245 einen Bezug auf eine physikalische Adresse und liefert eine Darstellung einer physikalischen Adresse an die gemeinsame Schnittstelle 290. Als ein erstes Beispiel umfaßt eine Bezugnahme auf eine physikalische Adresse die physikalische Adresse selbst. Als ein zweites Beispiel umfaßt ein Bezug auf eine physikalische Adresse eine Versetzung von einer Basisadresse in einen physikalischen Speicher. Als ein drittes Beispiel umfaßt ein Bezug auf eine physikalische Adresse eine codierte Darstellung einer physikalischen Adresse oder Versetzung.

Bei einer Ausführungsform umfaßt die physikalische Adreßlogik, wie in 3 gezeigt, auch eine Decodierlogik 305. Als ein Beispiel ist die Decodierlogik 305 so betreibbar, daß sie eine codierte physikalische Adresse decodiert und/oder eine physikalische Adresse aus einer in dem Befehl oder der Mikro-Operation gelieferten Versetzung erzeugt. Als ein bestimmtes Beispiel liefert eine frühere Mikro-Operation eine Basisadresse für die physikalische Adreßlogik 245 zur Verwendung bei zukünftigen Mikro-Operationen. Eine spätere Mikro-Operation umfaßt eine Darstellung, die eine codierte Darstellung einer Versetzung umfaßt. Die physikalische Adreßlogik 245 decodiert die Versetzung und erzeugt eine physikalische Adresse, indem die Basisadresse und die Versetzung addiert werden. Bei einer weiteren Ausführungsform wird der Bezug zu der physikalischen Adresse durch die physikalische Adreßlogik 245 decodiert, um auch auf die nächste Mikro-Operation zu zeigen, den der Mikro-Sequenzierer 220 liefern soll. Die ebenfalls anhängige Anmeldung mit dem Aktenzeichen 10/876,509 mit dem Titel Virtual Machine Control Structure Identificatin Decoder Serial (Serielle Identifikationsdecodierung bei der Steuerstruktur einer virtuellen Maschine) diskutiert in weiteren Einzelheiten ein Beispiel einer ID-Decodiermaschine, die bei der physikalischen Adreßlogik 245 verwendet werden kann, um einen Bezug auf eine physikalische Adresse zu nehmen und um eine Darstellung der physikalischen Adresse zur Verfügung zu stellen.

Bei noch einer weiteren Ausführungsform umfaßt die physikalische Adreßlogik 245 ein Steuerregister 310, wie in 3 gezeigt, um einen Speichertyp zu speichern, oder ist damit verbunden. Als ein erstes Beispiel ist ein gespeicherter Speichertyp Cache-fähig, auch als Schreibe-zurück (WB – Write Back) bezeichnet. Als ein zweites Beispiel ist ein gespeicherter Speichertyp nicht Cache-fähig (UC – Un-cachable). Bei einer Ausführungsform speichern das Register 240 für den Speichertyp und das Steuerregister 310 denselben Speichertyp. Bei einer alternativen Ausführungsform speichern das Register 240 für den Speichertyp und das Steuerregister 310 einen unterschiedlichen Speichertyp.

Als ein erstes veranschaulichendes Beispiel umfaßt der Prozessor 120 wenigstens die physikalische Adreßlogik 245 mit dem Steuerregister 310, den Übersetzungspuffer 235, der dem MTR 240 zugeordnet ist, um einen Cache-fähigen Speichertyp zu speichern, die Cache-Schnittstelle 260, den Cache 265 und die externe Datenschnittstelle 270. Wenn daher eine virtuelle Speicheradresse von dem Übersetzungspuffer 235 übersetzt wird, überprüft sie den Speichertyp, der in dem MTR 240 abgelegt ist und liefert die übersetzte Darstellung einer physikalischen Adresse an die Cache-Schnittstelle 260. Die Cache-Schnittstelle 260 überprüft den Cache 265, um zu sehen, ob eine gültige Kopie des Elementes, auf die sich die übersetzte physikalische Adresse bezieht, vorliegt. Wenn der Cache 265 eine gültige Kopie des Elementes hat, dann wird das Element aus dem Cache 265 in die Logik innerhalb des Prozessors 120 gelesen, so wie in die Registerdatei 275. Zusätzlich, wenn keine gültige Kopie im Cache 265 vorliegt, liest die externe Datenschnittstelle 270 oder irgendeine andere Datenabhollogik das Element, das durch die physikalische Adresse bezeichnet ist, aus einem Ort in einem Speicher.

Weiter mit dem Beispiel von oben speichert bei einer Ausführungsform das Steuerregister 310 einen nicht Cache-fähigen Speichertyp. Obwohl das Register 240 für den Speichertyp einen Speichertyp speichert, der Cache-fähig ist, ist das Steuerregister 310 nicht auf denselben Speichertyp beschränkt, der von dem MTR 240 gespeichert wird. Wenn das Steuerregister 310 einen Cache-fähigen Speichertyp gespeichert hat, dann liefert die physikalische Adreßlogik 245 die physikalische Adresse an die Cache-Schnittstelle 260, und derselbe Nachschlageprozeß wie oben beschrieben tritt auf. Wenn jedoch die physikalische Adreßlogik 245 das Steuerregister 310 prüft und das Steuerregister 310 einen nicht Cache-fähigen Speichertyp speichert, dann liefert die physikalische Adreßlogik 245 eine Darstellung einer physikalischen Adresse direkt an die Datenabhollogik, so wie die externe Datenschnittstelle 270. Die externe Datenschnittstelle 270 holt dann das Element von einem Speicherort ab, der durch die physikalische Adresse bezeichnet ist.

Obwohl das Steuerregister 310 in dem Beispiel oben einen Speichertyp speichert, der von dem in MTR 240 unterschiedlich ist, liest bei einer weiteren Ausführungsform die physikalische Adreßlogik 245 das MTR 240 und speichert dann denselben Speichertyp im Steuerregister 310. Jedoch ist die physikalische Adreßlogik nicht darauf beschränkt, daß sie in dem Steuerregister 310 enthalten oder damit verbunden ist. Bei noch einer weiteren Ausführungsform liest die physikalische Adreßlogik 245 den Speichertyp aus dem MTR 240.

Die Beispiele oben verwenden Schreiben/Speichern als ein Beispiel; jedoch sind bei anderen Ausführungsformen dieselben Vorrichtungen und Verfahren auf Schreib- und andere Befehle anwendbar, die Bezugnahmen auf entweder virtuelle Speicheradressen oder physikalische Adressen umfassen. Unter Abänderung des veranschaulichten Beispiels von oben wird, wenn ein Schreiben geschieht, dann die physikalische Adresse eines Elementes, das in den Speicher geschrieben werden soll, entweder an die Cache-Schnittstelle 240 und/oder die externe Datenschnittstelle 270 geliefert. Wenn der Speichertyp Cache-fähig ist, wird das Element in den Cache 265 geschrieben und dann von dem Cache 265 oder einer externen Datenschnittstelle 270 in einen Speicherort. Wenn der Speichertyp nicht Cache-fähig ist, wird das Element direkt von der externen Datenschnittstelle 270 in den Speicherort geschrieben.

Der Prozessor 120 kann auch eine Registerdatei 275 und Ausführungseinheit(en) 280 enthalten. Bei einer Ausführungsform ist die Registerdatei 275 so betreibbar, daß sie Datenoperanden lädt und speichert, ebenso, daß sie diese Datenoperanden an Ausführungsressourcen liefert, so wie die Ausführungseinheit(en) 280. Bei einer Ausführugsform ist/sind die Ausführungseinheit(en) 280 in der Lage, seriell und/oder parallel auf einzelnen oder mehreren Datenoperanden zu arbeiten.

Obwohl nicht speziell veranschaulicht, können bei weiteren Ausführungsformen des Prozessors 120 eines, irgendeine Vielzahl oder irgendeine Kombination der folgenden auch in dem Prozessor 120 enthalten sein: ein Datenweg, ein Befehlsweg, eine Arithmetiklogikeinheit (ALU – Arithmetic Logic Unit) eine Fließpunkt-Recheneinheit, die in der Lage ist, einen einzelnen Befehl oder mehrere Befehle auszuführen, um seriell oder parallel auf einem einzigen oder mehreren Datenoperanden zu arbeiten, Architekturzustandsregister, ein Buscontroller, ein Unterbrechungscontroller und ein höher programmierbarer Unterbrechungscontroller (APIC – Advanced Programmable Interrupt Controller), eine Vor-Abholeinheit.

Der 4 zugewandt ist eine Ausführungsform eines Systems veranschaulicht, das die physikalische Adreßlogik 245 und das VMCS 430 umfaßt. Der Mikroprozessor 405 ist über die Verbindung 410 mit dem Speichercontroller 415 gekoppelt gezeigt. Der Speichercontroller 415 ist über die Verbindung 435 mit einer Graphikeinrichtung 440 gekoppelt. Bei einer alternativen Ausführungsform ist die Graphikeinrichtung 440 im Speichercontroller 415 integriert. Der Speichercontroller 415 ist über eine Verbindung 420 mit einem Speicher gekoppelt. Bei einer Ausführungsform ist der Speicher 425 ein Systemspeicher. Bei einer weiteren Ausführungsform ist der Speicher 425 irgendeine Speichereinrichtung, die sich in dem System befindet. Der Speicher 425 ist so dargestellt, daß er den VMCS-Teil 430 umfaßt, um Zustands- und/oder Steuerinformation für einen VMM und/oder Gastsoftware, die auf dem System läuft, zu speichern.

Der Speichercontroller 415 ist auch als an einen Eingabe/Ausgabe (I/O – Input/Output)-Controller 450 über die Verbindung 445 gekoppelt gezeigt. Der I/O-Controller 450 ist über die Verbindung 455 mit einem Speicher 460, einer Netzwerkschnittstelle 465 und Eingabe/Ausgabeeinrichtungen 470 gekoppelt. Bei einer Ausführungsform ist der Speicher 460 ein Festplattenlaufwerk. Bei einer weiteren Ausführungsform ist der Speicher 460 ein Diskettenlaufwerk. Bei noch einer weiteren Ausführungsform ist der Speicher 460 irgendeine statische Speichereinrichtung in dem System. Bei einer Ausführungsform bildet die Netzwerkschnittstelle 465 die Verbindung zu einem Nahbereichsnetzwerk (LAN – Local Area Netzwork). Bei einer weiteren Ausführungsform bindet die Netzwerkschnittstelle 465 an ein größeres Netzwerk an, so wie das Internet. Die Eingabe/Ausgabeeinrichtungen 470 können jegliche Benutzereingabe- oder systembezogene Ausgabeeinrichtungen umfassen, so wie eine Tastatur, eine Maus, einen Monitor oder einen Drucker.

Mit Bezug auf 5 wird ein Beispiel des Ladens eines Elementes aus dem Speicher und des Speicherns eines Elementes im Speicher veranschaulicht. Ein erster Befehl, so wie Lade 575, vom VMM 510 umfaßt einen Arbeitsgang, ein erstes Element aus einer ersten virtuellen/linearen Speicheradresse zu laden. Bei einer Ausführungsform ist das erste Element ein Befehl. Bei einer weiteren Ausführungsform ist das zweite Element ein Datenoperand. Bei einer dritten Ausführungsform ist das erste Element irgendein anderes Element, das üblicherweise im dem Speicher gespeichert ist. Lade 575 ist so dargestellt, daß es von der VM 505 erzeugt wird. Bei einer anderen Ausführungsform jedoch wird Lade 575 von irgendeinem anderen Gastsoftwareprogramm erzeugt, das auf dem Prozessor 520 läuft. Der Übersetzungspuffer 525 übersetzt die erste virtuelle/lineare Speicheradresse in eine erste physikalische Speicheradresse, die einen ersten Speicherort bezeichnet, so wie den ersten Speicherort 565 in dem Speicher 560. Bei einer Ausführungsform hat der Speicher 560 eine Vielzahl von Speicherzellen, und der erste Speicherort 565 ist wenigstens eine Speicherzelle innerhalb der Vielzahl von Speicherzellen.

Der Übersetzungspuffer 525 liefert auch die erste physikalische Adresse an eine Cache-Schnittstelle 535 oder direkt an die externe Datenschnittstelle 545. Wenn die Cache-Schnittstelle 535 die Anforderung mit der ersten physikalischen Adresse erhält, überprüft die Cache-Schnittstelle 535 den Cache 540, um zu sehen, ob eine gültige Kopie des ersten Elementes, das in dem ersten Speicherort 565 gespeichert ist, vorliegt. Wenn eine gültige Kopie vorliegt, dann wird das erste Element in die Registerdatei 550 geladen oder in eine andere Prozessorlogik 520 geladen. Wenn jedoch der Übersetzungspuffer die erste physikalische Adresse direkt an die externe Datenschnittstelle 545 geliefert hat, oder eine gültige Kopie des ersten Elementes im ersten Speicherort 565 im Cache 540 nicht vorliegt, dann holt die externe Datenschnittstelle 545 das erste Element vom ersten Speicherort 565 ab. Wenn das erste Element einmal abgeholt ist, wird es im Cache 540 gespeichert und/oder in die Registerdatei 550 geladen. Die Registerdatei 550 lädt weiter das erste Element für den Betrieb in die Ausführungseinheit(en) 555.

Zusätzlich holt der Prozessor 520 einen zweiten Befehl ab oder empfängt ihn, so wie Speichere 580. Speichere 580 fordert den Prozessor 520 auf, ein zweites Element an einer zweiten physikalischen Adresse zu speichern, die einen zweiten Speicherort 570 bezeichnet. Bei einer Ausführungsform ist das zweite Element das erste Element, das zuvor durch den Ladebefehl 575 geladen worden ist. Bei einer weiteren Ausführungsform ist das zweite Element ein Ergebnis einer Operation auf dem ersten Element 575, die von der/den Ausführungseinheit(en) 555 ausgeführt und in der Registerdatei 550 und/oder im Cache 540 aktualisiert worden ist. Bei noch einer weiteren Ausführungsform ist das zweite Element ein zusammenhangfreies Element, das im Prozessor 520 gespeichert ist. Wie oben ausgeführt, kann der Speicherbefehl 580 irgendeine Darstellung der zweiten physikalischen Adresse umfassen, einschließlich einer Versetzung, die zu einer Basisadresse addiert wird. Die physikalische Adreßlogik 530 liefert die zweite physikalische Adresse entweder an die Cache-Schnittstelle 535 und/oder die externe Datenschnittstelle 545, basierend auf dem gespeicherten Speichertyp. Die externe Datenschnittstelle 545 schreibt/speichert das Element dann in den zweiten Speicherort 570.

Wie aus dem Obigen ersichtlicht ist, erlaubt die physikalische Adreßlogik in einem Mikroprozessor, wenn ein VMCS-Teil in einem Systemspeicher gehalten wird, daß der Mikroprozessor entweder mehrere Befehle oder einen einzelnen Makrobefehl mit Bezüge auf sowohl lineare/virtuelle Speicheradressen und physikalische Adressen empfängt. Zusätzlich ist der Mikroprozessor in der Lage, die Adressen zu decodieren und physikalische Adressen an Schnittstellenlogik zu liefern, um Elemente aus dem Speicherort wiederzugewinnen/zu laden, auf den die physikalischen Adressen Bezug nehmen, ohne das Paging zu deaktivieren, einen Übersetzungspuffer zu leeren und das Paging erneut zu aktivieren, was typischerweise Strafen der langen Ausführung umfaßt.

In der voranstehenden Beschreibung ist die Erfindung mit Bezug auf ihre bestimmten beispielhaften Ausführungsformen beschrieben worden. Es wird jedoch offensichtlich sein, daß verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne daß man sich von dem breiteten Gedanken und Umfang der Erfindung entfernt, wie er in den angefügten Ansprüchen ausgeführt ist. Die Beschreibung und die Zeichnungen sollen demgemäß in einem veranschaulichenden Sinne anstatt in einem einschränkenden Sinne betrachtet werden.

Zusammenfassung

Ein Verfahren und eine Vorrichtung werden hierin beschrieben, um auf einen physikalischen Speicherort zuzugreifen, der durch eine physikalische Adresse mit einem Prozessor bezeichnet ist. Der Prozessor holt/empfängt Befehle mit Bezug auf virtuelle Speicheradressen und/oder Bezug auf physikalische Adressen. Übersetzungslogik übersetzt die virtuellen Speicheradressen in physikalische Adressen und liefert die physikalischen Adressen an eine gemeinsame Schnittstelle. Eine physikalische Adressierlogik decodiert Bezüge auf physikalische Adressen und liefert die physikalischen Adressen an eine gemeinsame Schnittstelle basierend auf einem Speichertyp, der in der physikalischen Adressierlogik gespeichert ist.


Anspruch[de]
Mikroprozessor, mit:

einer Decodierlogik, um einen ersten und einen zweiten Befehl zu decodieren, wobei der erste Befehl einen Bezug zu einer linearen Adresse hat und der zweite Befehl einen Bezug zu einer ersten physikalischen Adresse hat;

einen Übersetzer einer linearen Adresse in eine physikalische Adresse, um die lineare Adresse in eine zweite physikalische Adresse zu übersetzen und um eine Darstellung der zweiten physikalischen Adresse an eine Schnittstellenlogik zu liefern; und

physikalische Adressierlogik, um einen ersten Speichertyp zu speichern und um eine Darstellung der ersten physikalischen Adresse an die Schnittstellenlogik zu liefern.
Mikroprozessor nach Anspruch 1, bei dem der erste Befehl von einer ersten virtuellen Maschine erzeugt wird und der zweite Befehl von einer zweiten virtuellen Maschine erzeugt wird. Mikroprozessor nach Anspruch 1, bei dem sowohl der erste Befehl als auch der zweite Befehl eine Vielzahl von Mikro-Operationen aufweist und bei dem eine aus der Vielzahl der Mikro-Operationen innerhalb des ersten Befehls einen Bezug zu der linearen Adresse hat und eine aus der Vielzahl der Mikro-Operationen innerhalb des zweiten Befehls einen Bezug auf die erste physikalische Adresse hat. Mikroprozessor nach Anspruch 3, bei dem die Schnittstellenlogik eine Cache-Schnittstellenlogik ist, die sowohl zu dem Übersetzer einer linearen Adresse in eine physikalische Adresse als auch mit der physikalischen Adressierlogik gekoppelt ist. Mikroprozessor nach Anspruch 3, bei dem die Schnittstellenlogik eine Datenabhollogik ist, die sowohl mit dem Übersetzer für die lineare Adresse in eine physikalische Adresse und der physikalischen Adressierlogik gekoppelt ist. Mikroprozessor nach Anspruch 4, bei dem der erste Speichertyp Cache-fähig ist. Mikroprozessor nach Anspruch 5, bei dem der erste Speichertyp nicht Cache-fähig ist. Mikroprozessor nach Anspruch 4, weiter mit einem Register für den Speichertyp, der mit dem Übersetzer für eine lineare Adresse in eine physikalische Adresse verbunden ist, um einen zweiten Speichertyp zu speichern. Mikroprozessor nach Anspruch 8, bei dem der erste Speichertyp derselbe ist wie der zweite Speichertyp. Mikroprozessor nach Anspruch 1, bei dem die lineare Adresse einen Ort in einem virtuellen Speicher bezeichnet und die erste physikalische Adresse einen Ort in einem Systemspeicher bezeichnet. Integrierte Schaltung, mit:

einer Abholeinheit zum Abholen eines Makrobefehls;

einer Decodiereinheit, die mit der Abholeinheit gekoppelt ist, um den Makrobefehl zu decodieren, wobei der Makrobefehl eine erste Mikro-Operation, die eine erste lineare Adresse bezeichnet, und eine zweite Mikro-Operation, die eine erste physikalische Adresse bezeichnet, aufweist;

einem Übersetzungspuffer, der mit der Decodiereinheit gekoppelt ist, um die erste lineare Adresse in eine zweite physikalische Adresse zu übersetzen und um eine Darstellung der zweiten physikalischen Adresse an einen gemeinsame Schnittstelle zu liefern; und

physikalische Adressierlogik, die mit der Decodiereinheit gekoppelt ist, um eine Darstellung der ersten physikalischen Adresse an die gemeinsame Schnittstelle zu liefern, wobei die gemeinsame Schnittstelle so betreibbar ist, daß sie Elemente von der ersten und der zweiten physikalischen Adresse anfordert.
Integrierte Schaltung nach Anspruch 11, bei der die physikalische Adressierlogik ein Steuerregister aufweist, um einen ersten Speichertyp zu speichern. Integrierte Schaltung nach Anspruch 12, bei der der erste Speichertyp ein Cache-fähiger Speichertyp ist und die gemeinsame Schnittstelle eine Cache-Schnittstelle ist. Integrierte Schaltung nach Anspruch 12, bei der der erste Speichertyp ein nicht Cache-fähiger (UC) Speichertyp ist und die gemeinsame Schnittstelle eine externe Datenschnittstelle ist. Integrierte Schaltung nach Anspruch 13, bei der die Elemente, die von der Cache-Schnittstelle angefordert werden, Datenoperanden sind, und wobei die integrierte Schaltung weiter aufweist: eine Registerdatei, die mit der Cache-Schnittstelle gekoppelt ist, um Datenoperanden zu speichern; und wenigstens eine Ausführungseinheit, um auf den Datenoperanden zu arbeiten. Integrierte Schaltung nach Anspruch 15, bei der die Makrobefehle Befehle variabler Länge sind. Integrierte Schaltung nach Anspruch 12, weiter mit einem Register für den Speichertyp, der dem Übersetzungspuffer zugeordnet ist, um einen zweiten Speichertyp zu speichern. Integrierte Schaltung nach Anspruch 17, bei der die physikalische Adressierlogik betreibbar ist, den zweiten Speichertyp zu lesen und den zweiten Speichertyp in dem Steuerregister als den ersten Speichertyp zu speichern. Integrierte Schaltung nach Anspruch 17, bei der der erste und der zweite Speichertyp unterschiedliche Speichertypen sind. System, das aufweist:

einen Systemspeicher mit einer Vielzahl von Speicherzellen, wobei eine erste Speicherzelle mit einer ersten physikalischen Adresse in der Lage ist, einen ersten Befehl zu speichern, eine zweite Speicherzelle mit einer zweiten physikalischen Adresse in der Lage ist, einen ersten Datenoperanden zu speichern, und eine dritte Speicherzelle mit einer dritten physikalischen Adresse in der Lage ist, einen zweiten Datenoperanden zu speichern;

einen Mikroprozessor, der an den Systemspeicher gekoppelt ist, wobei der Mikroprozessor eine Abholeinheit, die so betreibbar ist, daß sie den ersten Befehl aus der ersten Speicherzelle abholt, eine Decodiereinheit, die so betreibbar ist, daß sie den ersten Befehl in wenigstens eine erste Mikro-Operation, die eine erste lineare Adresse bezeichnet, und in wenigstens eine zweite Mikro-Operation, die die zweite physikalische Adresse bezeichnet, decodiert, eine Übersetzungseinheit für eine lineare Adresse, um die erste lineare Adresse in die dritte physikalische Adresse zu übersetzen und um eine Darstellung der dritten physikalischen Adresse an eine gemeinsame Schnittstelle zu liefern, und eine Zugriffseinheit für eine physikalische Adresse, um eine Darstellung der zweiten physikalischen Adresse an die gemeinsame Schnittstelle zu liefern, aufweist, wobei die gemeinsame Schnittstelle so betreibbar ist, daß sie den ersten und den zweiten Datenoperanden aus der zweiten und der dritten Speicherzelle abholt.
System nach Anspruch 20, bei dem die Abholeinheit und die Decodiereinheit so betreibbar ist, daß sie Befehle variabler Länge abholen und decodieren. System nach Anspruch 21, bei dem die gemeinsame Schnittstelle eine Cache-Schnittstelle ist und bei dem der Mikroprozessor weiter einen Cache aufweist, der so betreibbar ist, daß er den ersten und den zweiten Datenoperanden speichert, nachdem sie abgeholt worden sind. System nach Anspruch 22, weiter mit einer Registerdatei und einer Ausführungseinheit, wobei die Registerdatei so betreibbar ist, daß sie den ersten und den zweiten Datenoperanden aus dem Cache lädt und den ersten und den zweiten Datenoperanden an eine Ausführungseinheit liefert. System nach Anspruch 20, bei dem die Zugriffseinheit für eine physikalische Adresse einen Decodierer, um die zweite physikalische Adresse zu decodieren, und ein Steuerregister, um einen ersten Speichertyp zu speichern, aufweist. System nach Anspruch 24, bei dem der Mikroprozessor weiter ein Register für einen Speichertyp aufweist, der der Übersetzungseinheit für die lineare Adresse zugewiesen ist, um einen zweiten Speichertyp zu speichern. System nach Anspruch 25, bei dem der erste Speichertyp aus einer Gruppe bestehend aus Cache-fähig und nicht Cache-fähig ausgewählt ist. System nach Anspruch 26, bei dem der erste und der zweite Speichertyp unterschiedliche Speichertypen sind. Verfahren, das aufweist:

Empfangen eines ersten Befehls mit einem Mikroprozessor, um ein erstes Element aus einer ersten virtuellen Speicheradresse zu lesen, wobei der erste Befehl von einer ersten virtuellen Maschine erzeugt wird;

Übersetzen der ersten virtuellen Speicheradresse in eine erste physikalische Adresse;

Abholen des ersten Elementes von einem ersten Speicherort, der durch die erste physikalische Adresse bezeichnet wird;

Empfangen eines zweiten Befehls mit dem Mikroprozessor, um ein zweites Element an einer zweiten physikalischen Adresse zu speichern, wobei der zweite Befehl von einer zweiten virtuellen Maschine erzeugt wird; und

Speichern des zweiten Elementes an einem zweiten Ort, der durch die zweite physikalische Adresse bezeichnet wird.
Verfahren nach Anspruch 28, bei dem das erste Element ein Datenoperand ist. Verfahren nach Anspruch 28, bei dem das zweite Element das erste Element ist. Verfahren nach Anspruch 29, das weiter aufweist: Arbeiten auf dem ersten Element mit dem Mikroprozessor, um ein erstes Ergebnis zu erhalten, wobei das zweite Element auf dem ersten Ergebnis basiert. Verfahren nach Anspruch 29, bei dem das Übersetzen der ersten virtuellen Speicheradresse in eine erste physikalische Adresse mit einem Übersetzung-Look-Aside-Puffer (TLB) geschieht. Verfahren nach Anspruch 32, bei dem der erste und der zweite Ort in einem Systemspeicher sind. Verfahren nach Anspruch 28, bei dem die erste und die zweite virtuelle Maschine dieselbe virtuelle Maschine sind. Verfahren nach Anspruch 33, bei dem das Lesen des Datenoperanden aus einem ersten Ort, der durch die erste physikalische Adresse bezeichnet wird, aufweist:

Überprüfen, ob eine gültige Kopie des Datenoperanden innerhalb eines Cache vorliegt, der dem Mikroprozessor zugewiesen ist;

Lesen der gültigen Kopie des Datenoperanden aus dem Cache, wenn die gültige Kopie vorliegt; und

Lesen des Datenoperanden aus dem ersten Ort im Systemspeicher, wenn die gültige Kopie nicht vorliegt.
Verfahren nach Anspruch 33, bei dem das Schreiben des zweiten Elementes in den zweiten Ort, der durch die zweite physikalische Adresse bezeichnet ist, aufweist:

Bestimmen eines Speichertyps aus einem Steuerregister in dem Mikroprozessor;

Schreiben des zweiten Elementes in einen Cache, der dem Mikroprozessor zugewiesen ist, wenn der Speichertyp Cache-fähig ist;

Schreiben des Datenoperanden in den zweiten Ort in den Systemspeicher, wenn der Speichertyp nicht Cache-fähig ist.






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com