IP Library Granted Patent US 8,661,181
Granted Patent B2
US 8,661,181 · App. 12/665,561 · Granted Feb 25, 2014

Memory protection unit in a virtual processing environment

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 8,661,181
App. No.
12/665,561
Granted
Feb 25, 2014
Kind
B2
Abstract

The present invention relates to a memory management system in a virtualized environment. The system comprises a virtual address, a buffer storage such as a translation lookaside buffer provided to store virtual address to physical address translations, a buffer storage such as a page table provided to store virtual address to real address translations and memory protection unit provided to verify whether a physical address obtained from the virtual address is within boundaries of one or more physical system memory regions assigned to a virtual machine.

Claims (78)

1. A method, comprising:

defining a virtual address;

defining a virtual machine to access virtual memory using the virtual address;

assigning a virtual machine identifier to the virtual machine;

determining whether a first buffer store includes a physical address corresponding to the virtual address;

in response to determining that the first buffer store excludes the physical address corresponding to the virtual address, verifying at a protection unit whether the physical address referenced by the virtual address is within boundaries of one or more physical system memory regions assigned to the virtual machine;

in response to determining that the first buffer store is inconsistent with guest software executing in the virtual machine due to a page-fault in the virtual machine, examining a guest page-table associated with the guest software; and

in response to determining that the guest page-table does not include a valid entry based on the examining, determining that the page fault is a true page-fault and injecting the page fault into the virtual machine.

2. The method according to claim 1 , comprising:

translating the virtual address into a real address at a second buffer comprising the guest page table; and

translating the real address into the physical address at the protection unit.

3. The method according to claim 2 , comprising:

maintaining said protection unit by said virtual machine monitor; and

storing said second buffer in a physical host system memory assigned to said virtual machine.

4. The method according to claim 2 , comprising:

maintaining said translations of said second buffer by said virtual machine.

5. The method according to claim 1 , comprising:

storing one or more physical host memory regions assigned to one or more virtual machines in a permission table that is implemented using an associative array, the protection unit including the permission table.

6. The method according to claim 1 , wherein the virtual machine identifier further comprises the physical address.

7. The method according to claim 1 , comprising:

assigning said virtual machine identifiers to each virtual machine by a virtual machine monitor.

8. A method comprising:

under control of one or more processors configured with instructions that are executable by the one or more processors to perform acts comprising:

defining a virtual machine;

defining a virtual address for use by the virtual machine;

designating a first buffer to store virtual address to physical address translations;

determining a physical address corresponding to the virtual address;

assigning a virtual machine identifier to the virtual machine;

determining whether the physical address is included in one or more physical system memory regions assigned to the virtual machine;

in response to determining that the first buffer is inconsistent with guest software executing in the virtual machine due to a page-fault in the virtual machine, examining a guest page-table associated with the guest software; and

in response to determining that the guest page-table does not include a valid entry based on the examining, determining that the page fault is a true page-fault and injecting the page fault into the virtual machine.

9. The method according to claim 8 , further comprising:

storing virtual address to real address translations in a second buffer, the second buffer including the guest page table, the first buffer and the second buffer stored in a management unit; and

translating a real address into the physical address.

10. The method according to claim 9 , wherein:

the first buffer is included in a processor; and

the second buffer is stored in a physical host system memory assigned to the virtual machine.

11. The method according to claim 9 , wherein the virtual machine maintains the virtual address to physical address translations of the second buffer.

12. The method according to claim 8 , wherein:

a permission table adapted for storing one or more physical host memory regions assigned to one or more virtual machines, the permission table implemented using an associative array, the protection unit including the permission table.

13. One or more non-transitory computer readable media storing instructions that are executable by one or more processors to perform acts comprising:

defining a virtual address;

defining a virtual machine;

assigning the virtual address to the virtual machine;

determining whether a first buffer store is capable of translating the virtual address to a physical address;

assigning a virtual machine identifier to the virtual machine;

in response to determining that the first buffer store is incapable of translating the virtual address to the physical address, verifying at a protection unit whether a physical address obtained from the virtual address is within boundaries of one or more physical system memory regions assigned to the virtual machine;

in response to determining that the first buffer store is inconsistent with guest software executing in the virtual machine due to a page-fault in the virtual machine, examining a guest page-table associated with the guest software; and

in response to determining that the guest page-table does not include a valid entry based on the examining, determining that the page fault is a true page-fault and injecting the page fault into the virtual machine.

14. The one or more non-transitory computer readable media according to claim 13 , further comprising:

storing virtual address to real address translations in a second buffer, the second buffer including the guest page table, the first buffer and the second buffer stored in a management unit; and

translating a real address into the physical address.

15. The one or more non-transitory computer readable media according to claim 14 , wherein:

the first buffer is included in a processor; and

the second buffer is stored in a physical host system memory assigned to the virtual machine.

16. The one or more non-transitory computer readable media according to 14 , wherein the virtual machine maintains the virtual address to physical address translations of the second buffer.

17. The one or more non-transitory computer readable media according to claim 13 , wherein:

a permission table adapted for storing one or more physical host memory regions assigned to one or more virtual machines, the permission table implemented using an associative array, the protection unit including the permission table.

18. A computing device, comprising:

one or more processors;

one or more computer readable media storing instructions that are executable by the one or more processors to perform acts comprising:

defining a virtual address;

defining a virtual machine to access virtual memory using the virtual address;

assigning a virtual machine identifier to the virtual machine, the virtual machine identifier comprising the virtual address;

determining whether a first buffer store includes a physical address corresponding to the virtual address;

in response to determining that the first buffer store excludes the physical address corresponding to the virtual address, verifying at a protection unit whether the physical address referenced by the virtual address is within boundaries of one or more physical system memory regions assigned to the virtual machine;

in response to determining that the first buffer store is inconsistent with guest software executing in the virtual machine due to a page-fault in the virtual machine, examining a guest page-table associated with the guest software; and

in response to determining that the guest page-table does not include a valid entry based on the examining, determining that the page fault is a true page-fault and injecting the page fault into the virtual machine.

19. The computing device according to claim 18 , comprising:

translating the virtual address into a real address at a second buffer comprising the guest page table; and

translating the real address into the physical address at the protection unit.

20. The computing device according to claim 19 , comprising:

maintaining the protection unit by the virtual machine monitor; and

storing the second buffer in a physical host system memory assigned to the virtual machine.

21. The computing device according to claim 19 , comprising:

maintaining the translations of the second buffer by the virtual machine.

22. The computing device according to claim 18 , comprising:

storing one or more physical host memory regions assigned to one or more virtual machines in a permission table.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2013
From: NOKIA CORPORATION
To: NOKIA INC.
Reel/Frame 030189/0381 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2013
From: NOKIA INC.
To: MEMORY TECHNOLOGIES LLC
Reel/Frame 030190/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2010
From: LILJEBERG, MIKA PEKKA
To: NOKIA CORPORATION
Reel/Frame 024699/0028 →