Abstract:
PROBLEM TO BE SOLVED: To determine whether entries in a guest translation data structure have been modified by a virtual machine. SOLUTION: The determination is made based on metadata extracted from a shadow translation data structure maintained by a virtual machine monitor and attributes associated with entries in the shadow translation data structure. The method includes: synchronizing entries in the shadow translation data structure that correspond to the modified entries in the guest translation data structure with the modified entries in the guest translation data structure; and determining which entries to keep in the active entry list, based at least in part on attributes associated with corresponding entries in the shadow translation data structure identifying which of the plurality of processors owns each entry in the active entry list. COPYRIGHT: (C)2011,JPO&INPIT
Abstract:
Befehle und Logik zur Bereitstellung verbesserter Paging-Fähigkeiten für Secure Enclave-Seitencaches. Ausführungsformen beinhalten mehrere Hardware-Threads oder Prozessorkerne, einen Cache zum Speichern sicherer Daten für gemeinsame Seitenadressen, die einer Secure Enclave zugeordnet sind, und für die Hardware-Threads zugänglich sind. Eine Decode-Stufe dekodiert einen ersten Befehl, der besagte gemeinsame Seitenadresse als einen Operand festlegt, und Ausführungseinheiten markieren einen Eintrag entsprechend einer Enclave-Seitencache-Zuordnung für die gemeinsame Seitenadresse, um die Erstellung einer neuen Übersetzung für entweder besagten ersten oder zweiten Hardware-Thread für den Zugriff auf die gemeinsame Seite zu blockieren. Ein zweiter Befehl wird zur Ausführung dekodiert, wobei der zweite Befehl besagte Secure Enclave als einen Operand festlegt, und Ausführungseinheiten Hardware-Threads aufzeichnet, die gerade auf sichere Daten im Enclave-Seitencache entsprechend der Secure Enclave zugreifen, und die aufgezeichnete Anzahl an Hardware-Threads dekrementiert, wenn einer der Hardware-Threads die Secure Enclave verlässt.
Abstract:
An embodiment of the present invention is a technique to process an input/output (I/O) transaction. An emulated device driver in a guest partition interacts with a virtual machine (VM) manager in processing an input/output (I/O) transaction on behalf of an application via an operating system (OS). The I/O transaction is between the application and a device. A device emulator in a service partition communicatively coupled to the emulated device driver interacts with the VM manager in processing the I/O transaction on behalf of a device specific driver via the OS. The device specific driver interfaces to the device.
Abstract:
An embodiment of the present invention is a technique to process an input/output (I/O) transaction. An emulated device driver in a guest partition interacts with a virtual machine (VM) manager in processing an input/output (I/O) transaction on behalf of an application via an operating system (OS). The I/O transaction is between the application and a device. A device emulator in a service partition communicatively coupled to the emulated device driver interacts with the VM manager in processing the I/O transaction on behalf of a device specific driver via the OS. The device specific driver interfaces to the device.
Abstract:
A processor has multiple hardware threads and an enclave page cache. The processor has a first instruction to prevent new address translations being created. This instruction takes the address of a page in a secure enclave as a as a parameter. It prevents new entries being made in a translation look-aside buffer for that page. The processor has a second instruction to record the threads accessing an enclave. This instruction specifies the enclave identifier as a parameter and records the number of hardware threads accessing the enclave. The number is decremented whenever a thread exits the enclave. The processor has a third instruction to evict a page from an enclave page cache. The instruction takes the page address to evict as a parameter. It writes the page back to memory if the number of threads accessing the enclave is zero.
Abstract:
A heterogeneous processor comprises a first physical core having a first instruction set and a first power consumption level, to execute a thread at a first performance level, and a second physical core having a second instruction set and a second power consumption level, to execute a thread at a second performance level. A virtual-to-physical mapping circuit is coupled to the first and second physical cores. The first physical core is mapped to a system firmware interface via a virtual core, and the second physical core is hidden from the system firmware interface. A single physical core may act as a bootstrap processor. The first physical core may act as the bootstrap processor and this may initialize the second physical core. In another embodiment there is a set of one or more small physical cores and at least one large processor core. Two or more small physical cores are exposed to a system firmware interface and the large physical core is hidden from the system firmware interface.
Abstract:
A processor has an enclave page cache to cache data from a secure enclave. An instruction (ETRACK) causes it to record the number of hardware threads accessing the data in the cache corresponding to the secure enclave. This may be the threads, which are executing code in the secure enclave. When any of the threads exits the secure enclave, the number is decremented. A second instruction (EWB) may cause the data in the cache to be evicted and written back to main memory when the number reaches zero. A third instruction (EBLOCK) may prevent the creation of new address translation entries for the pages in the cache. The data may be encrypted, when written to main memory, and decrypted, when read from main memory.