IP Library › Granted Patent US 11,099,878
Granted Patent B2
US 11,099,878 · App. 16/456,628 · Granted Aug 24, 2021

Scalable virtual machine operation inside trust domains within the trust domain architecture

Inventors: Ravi L. Sahita (Portland, OR); Tin-Cheung Kung (Folsom, CA); Vedvyas Shanbhogue (Austin, TX); Barry E. Huntley (Hillsboro, OR); Arie Aharon (Haifa, IL)
Assignee: Intel Corporation
G06F9/45558G06F9/455G06F9/45533G06F9/50G06F9/5005G06F9/5011G06F9/5016G06F9/5022G06F9/5061H04L9/06H04L9/0618G06F2009/4557G06F2009/45566G06F2009/45575G06F2009/45579G06F2009/45583G06F2009/45587
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,099,878
App. No.
16/456,628
Granted
Aug 24, 2021
Kind
B2
Abstract

Implementations describe a computing system that implements a plurality of virtual machines inside a trust domain (TD), enabled via a secure arbitration mode (SEAM) of the processor. A processor includes one or more registers to store a SEAM range of memory, a TD key identifier of a TD private encryption key. The processor is capable of initializing a trust domain resource manager (TDRM) to manage the TD, and a virtual machine monitor within the TD to manage the plurality of virtual machines therein. The processor is further capable of exclusively associating a plurality of memory pages with the TD, wherein the plurality of memory pages associated with the TD is encrypted with a TD private encryption key inaccessible to the TDRM. The processor is further capable of using the SEAM range of memory, inaccessible to the TDRM, to provide isolation between the TDRM and the plurality of virtual machines.

Claims (97)

1. A processor comprising:

a processor core to:

initialize a trust domain (TD) and a trust domain resource manager (TDRM) to manage the TD;

initialize a virtual machine monitor within the TD (TD-VMM) to manage a plurality of TD-VMs;

responsive to receiving a first instruction from the TDRM, exclusively associate a plurality of memory pages with the TD, wherein the plurality of memory pages are encrypted with a TD private encryption key inaccessible to the TDRM;

enable a secure arbitration mode (SEAM) of the processor, the SEAM being assigned a SEAM range of memory inaccessible to the TDRM; and

responsive to receiving a second instruction from the TD-VMM, exit the TD-VMM into a SEAM module to manage memory space for one or more of the plurality of TD-VMs; and

one or more registers to store:

an identifier of the SEAM range of memory; and

a TD key identifier (key ID) identifying the TD private encryption key.

2. The processor of claim 1 , wherein the processor core is further to, responsive to a command from the TD-VMM:

assign, to a first TD-VM of the plurality of TD-VMs, a first memory page of the plurality of memory pages associated with the TD;

assign, to a second TD-VM of the plurality of TD-VMs, a second memory page of the plurality of memory pages associated with the TD; and

assign, to the TD-VMM, a third memory page of the plurality of memory pages associated with the TD.

3. The processor of claim 1 , further comprising a physical address metadata table (PAMT) to store attributes of the plurality of memory pages associated with the TD, wherein the attributes of a memory page include at least one of a state, a type, an owner identifier, or a status of the memory page.

4. The processor of claim 1 , wherein the SEAM range of memory comprises one or more memory pages encrypted with a SEAM private encryption key inaccessible to the TDRM.

5. The processor of claim 1 , wherein the SEAM range of memory comprises one or more memory pages to store a secure extended page table (SEPT), wherein the SEPT comprises mappings of guest physical memory addresses (GPAs) to host physical memory addresses (HPAs) for the plurality of memory pages associated with the TD.

6. The processor of claim 5 , wherein the SEPT comprises:

a guest SEPT to store a first GPA to HPA mapping for a first memory page of the plurality of memory pages associated with the TD, wherein the first memory page is assigned, by the TD-VMM, to one or more of the plurality of TD-VMs; and

a host SEPT to store a second GPA to HPA mapping for a second memory page of the plurality of memory pages associated with the TD, wherein the second memory page is assigned, by the TD-VMM, to the TD-VMM.

7. The processor of claim 5 , wherein the processor core is further to:

initialize, responsive to an instruction from the TDRM, and store, in the SEAM range of memory, a primary virtual machine control structure (VMCS) to maintain an execution state of the TD-VMM, wherein the primary VMCS comprises a pointer to the SEPT; and

initialize, responsive to a command from the TD-VMM, and store, in the SEAM range of memory, a plurality of secondary VMCSs for maintaining execution states of the plurality of TD-VMs.

8. The processor of claim 5 , wherein the processor core is further to:

receive a command from the TD-VMM to assign to a first TD-VM of the plurality of TD-VMs a first memory page of the plurality of memory pages associated with the TD;

enter the SEAM of the processor; and

update a GPA to HPA mapping for the first memory page in the SEPT.

9. The processor of claim 5 , wherein the processor core is further to:

receive a command from the TD-VMM to assign to a first TD-VM of the plurality of TD-VM, a first memory page;

enter the SEAM of the processor;

verify, by accessing a physical address metadata table (PAMT) storing attributes of the plurality of memory pages associated with the TD that the first memory page belongs to the plurality of memory pages associated with the TD; and

update a GPA to HPA mapping for the first memory page in the SEPT.

10. The processor of claim 5 , wherein the processor core is further to:

receive a command from the TD-VMM to assign, to a first TD-VM of the plurality of TD-VMs, a first memory page;

enter the SEAM of the processor;

verify, by accessing a physical address metadata table (PAMT) storing attributes of the plurality of the memory pages associated with the TD, that the first memory page does not belong to the plurality of memory pages associated with the TD;

responsive to verifying that the first memory page does not belong to the plurality of memory pages associated with the TD, exit the SEAM of the processor;

associate, responsive to receiving a command from the TDRM, the first memory page with the TD;

enter the SEAM of the processor; and

update the SEPT with a GPA to HPA mapping for the first memory page.

11. The processor of claim 5 , wherein the processor core is further to:

receive, while under control of a first TD-VM, a program call from the first TD-VM;

determine that execution of the program call requires support from the TD-VMM;

execute a VM exit to enter the SEAM of the processor;

execute a VM entry from the SEAM of the processor to transfer control of the processor to the TD-VMM; and

receive a command from the TD-VMM to execute the program call.

12. A system comprising:

a memory device;

a processor to:

initialize a trust domain (TD) and a trust domain resource manager (TDRM) to manage the TD;

initialize a virtual machine monitor within the TD (TD-VMM) to manage a plurality of TD-VMs;

responsive to receiving an instruction from the TDRM, exclusively associate a plurality of pages of the memory device with the TD, wherein the plurality of pages of the memory device are encrypted with a TD private encryption key inaccessible to the TDRM;

enable a secure arbitration mode (SEAM) of the processor, the SEAM being assigned a SEAM range of the memory device inaccessible to the TDRM; and

responsive to receiving a second instruction from the TD-VMM, exit the TD-VMM into a SEAM module to manage memory space for one or more of the plurality of TD-VMs; and

one or more hardware registers to store:

an identifier of the SEAM range of memory; and

a TD key identifier (key ID) identifying the TD private encryption key.

13. The system of claim 12 , wherein the SEAM range comprises one or more pages of the memory device to store a secure extended page table (SEPT), wherein the SEPT comprises mappings of guest physical memory addresses (GPAs) to host physical memory addresses (HPAs) for the plurality of the pages of the memory device associated with the TD.

14. A method comprising:

initializing, by a processing device, a trust domain (TD) and a trust domain resource manager (TDRM) to manage the TD;

initializing, a virtual machine monitor within the TD (TD-VMM) to manage a plurality of TD-VMs;

responsive to receiving an instruction from the TDRM, exclusively associating a plurality of memory pages with the TD, wherein the plurality of memory pages are encrypted with a TD private encryption key inaccessible to the TDRM; and

enabling a secure arbitration mode (SEAM) of the processing device, the SEAM being assigned a SEAM range of memory inaccessible to the TDRM;

storing, in one or more registers of the processing device:

an identifier of the SEAM range of memory; and

a TD key identifier (key ID) identifying the TD private encryption key; and

responsive to receiving a second instruction from the TD-VMM, exiting the TD-VMM into a SEAM module to manage memory space for one or more of the plurality of TD-VMs.

15. The method of claim 14 , further comprising, responsive to a command from the TD-VMM:

assigning to a first TD-VM of the plurality of TD-VMs, a first memory page of the plurality of memory pages associated with the TD;

assigning to a second TD-VM of the plurality of TD-VMs, a second memory page of the plurality of memory pages associated with the TD; and

assigning to the TD-VMM, a third memory page of the plurality of memory pages associated with the TD.

16. The method of claim 14 , further comprising storing a physical address metadata table (PAMT), wherein the PAMT is to store attributes of the plurality of memory pages associated with the TD-VMM, wherein the attributes of a memory page include at least one of a state, a type, an owner identifier, or a status of the memory page.

17. The method of claim 14 , further comprising encrypting one or more memory pages in the SEAM range of memory with a SEAM private encryption key inaccessible to the TDRM.

18. The method of claim 14 , further comprising storing, in one or more memory pages of the SEAM range of memory, a secure extended page table (SEPT), wherein the SEPT comprises mappings of guest physical memory addresses (GPAs) to host physical memory addresses (HPAs) for the plurality of memory pages associated with the TD.

19. The method of claim 18 , wherein the SEPT comprises:

a guest SEPT to store a first GPA to HPA mapping for a first memory page of the plurality of memory pages associated with the TD, wherein the first memory page is assigned, by the TD-VMM, to one or more of the plurality of TD-VMs; and

a host SEPT to store a second GPA to HPA mapping for a second memory page of the plurality of memory pages associated with the TD, wherein the second memory page is assigned, by the TD-VMM, to the TD-VMM.

20. The method of claim 18 , further comprising:

initializing, responsive to an instruction from the TDRM, and storing in the SEAM range of memory, a primary virtual machine control structure (VMCS) to maintain an execution state of the TD-VMM, wherein the primary VMCS comprises a pointer to the SEPT; and

initializing, responsive to a command from the TD-VMM, and storing in the SEAM range of memory, a plurality of secondary VMCSs for maintaining execution states of the plurality of TD-VMs.

21. The method of claim 18 , further comprising:

receiving a command from the TD-VMM to assign to a first TD-VM of the plurality of TD-VMs a first memory page of the plurality of memory pages associated with the TD;

causing the processing device to enter the SEAM; and

updating the SEPT with a GPA to HPA mapping for the first memory page.

22. The method of claim 18 , further comprising:

receiving a command from the TD-VMM to assign to a first TD-VM of the plurality of TD-VM, a first memory page;

causing the processing device to enter the SEAM;

verifying, by the processing device accessing a physical address metadata table (PAMT), which stores attributes of the plurality of memory pages associated with the TD, that the first memory page belongs to the plurality of memory pages associated with the TD; and

updating a GPA to HPA mapping for the first memory page in the SEPT.

23. The method of claim 18 , further comprising:

receiving a command from the TD-VMM to assign, to a first TD-VM of the plurality of TD-VMs, a first memory page;

causing the processing device to enter the SEAM;

verifying, by the processing device accessing a physical address metadata table (PAMT), which stores attributes of the plurality of the memory pages associated with the TD-VMM, that the first memory page does not belong to the plurality of memory pages associated with the TD;

responsive to verifying that the first memory page does not belong to the plurality of memory pages associated with the TD, causing the processing device to exit the SEAM;

associating, responsive to receiving a command from the TDRM, the first memory page with the TD;

causing the processing device to enter the SEAM; and

updating a GPA to HPA mapping for the first memory page in the SEPT.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: SAHITA, RAVI L.; KUNG, TIN-CHEUNG; SHANBHOGUE, VEDVYAS; HUNTLEY, BARRY E.; AHARON, ARIE
To: INTEL CORPORATION
Reel/Frame 053196/0907 →
Continuity (1)
Related Publication 20200409734A1 · Dec 31, 2020