IP Library Granted Patent US 7,734,892
Granted Patent B1
US 7,734,892 · App. 11/096,922 · Granted Jun 8, 2010

Memory protection and address translation hardware support for virtual machines

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 7,734,892
App. No.
11/096,922
Granted
Jun 8, 2010
Kind
B1
Abstract

A method for providing hardware support for memory protection and virtual memory address translation for a virtual machine. The method includes executing a host machine application on a host computer system, executing a first virtual machine application within a first virtual machine, and executing a second virtual machine application within a second virtual machine. A plurality of TLB (translation look aside buffer) entries for the first virtual machine application and the second machine application are stored within a TLB of the host computer system. At least one of the plurality of TLB entries is a global TLB entry.

Claims (40)

1. A method, comprising:

executing a first virtual machine application within a first virtual machine;

executing a second virtual machine application within a second virtual machine; and

storing a plurality of TLB (translation look aside buffer) entries for the first virtual machine application and the second virtual machine application within a TLB of the host computer system, wherein at least one of the plurality of TLB entries is a global TLB entry, and wherein ones of the entries have respective context identifiers and have respective machines instantiation fields for nesting virtual machines recursively, and wherein the respective context identifiers are managed via hard partitioning.

2. The method of claim 1 , wherein a global indicator is used to indicate the global TLB entry.

3. The method of claim 1 , wherein the at least one global TLB entry is global across the first virtual machine or the second virtual machine.

4. The method of claim 1 , wherein the at least one global TLB entry is global across the first virtual machine and the second virtual machine.

5. The method of claim 4 , wherein identifying a respective virtual machine application for the global TLB entry is configured to avoid a TLB flush upon a context switch between the first virtual machine application and the second virtual machine application.

6. The method of claim 1 , wherein a context identifier is used to indicate a context for the at least one global TLB entry.

7. The method of claim 1 , further comprising:

identifying a respective virtual machine application for the global TLB entry by using a context identifier for the global TLB entry and a global indicator for the global TLB entry.

8. The method of claim 1 wherein the host machine application is a hypervisor that executes on the host machine.

9. The method of claim 1 wherein the first virtual machine application is a first operating system and the second virtual machine application is a second operating system.

10. The method of claim 9 , wherein the first operating system supports a first plurality of applications having different contexts and the second operating system supports a second plurality of applications having different contexts.

11. The method of claim 10 wherein the TLB entries include respective context identifiers and global indicators enabling an unique identification of the TLB entries to provide physical address translation for virtual addresses from both the first operating system and the second operating system.

12. A system, comprising:

a processor architecture; and

an address translation cache configured to implement a translation look aside buffer, with the address translation cache in conjunction with the processor architecture configured to:

execute a first virtual machine application within a first virtual machine;

execute a second virtual machine application within a second virtual machine; and

store a plurality of TLB (translation look aside buffer) entries for the first virtual machine application and the second virtual machine application within a TLB of the host computer system, wherein at least one of the plurality of TLB entries is a global TLB entry, and wherein each of the TLB entries have respective context identifiers and have respective machines instantiation fields for nesting virtual machines recursively, and wherein the respective context identifiers are managed via dynamic partitioning.

13. The system of claim 12 , wherein a global indicator is used to indicate the global TLB entry.

14. The system of claim 12 , wherein the at least one global TLB entry is global across the first virtual machine or the second virtual machine.

15. The system of claim 12 , wherein the at least one global TLB entry is global across the first virtual machine and the second virtual machine.

16. The system of claim 12 , wherein a context identifier is used to indicate a context for the at least one global TLB entry.

17. The system of claim 12 , further comprising:

identifying a respective virtual machine application for the global TLB entry by using a context identifier for the global TLB entry and a global indicator for the global TLB entry.

18. The system of claim 12 , wherein identifying a respective virtual machine application for the global TLB entry is configured to avoid a TLB flush upon a context switch between the first virtual machine application and the second virtual machine application.

19. The system of claim 12 wherein the first virtual machine application is a first operating system and the second virtual machine application is a second operating system.

20. The system of claim 19 , wherein the first operating system supports a first plurality of applications having different contexts and the second operating system supports a second plurality of applications having different contexts.

21. The system of claim 20 wherein the TLB entries include respective context identifiers and global indicators enabling an unique identification of the TLB entries to provide physical address translation for virtual addresses from both the first operating system and the second operating system.

22. A method, comprising:

executing a first operating system within a first virtual machine, wherein the first operating system supports a first plurality of applications having different contexts;

executing a second operating system within a second virtual machine, wherein the second operating system supports a second plurality of applications having different contexts; and

storing a plurality of TLB (translation look aside buffer) entries for the first virtual machine application and the second virtual machine application within a TLB of the host computer system, wherein the TLB entries include respective context identifiers and global indicators enabling an unique identification of the TLB entries per virtual machine and have respective machines instantiation fields for nesting virtual machines recursively, and and wherein the respective context identifiers are managed via dynamic partitioning.

23. The method of claim 22 , further comprising:

providing physical address translation for virtual addresses from both the first operating system and the second operating system by using the unique identification of the TLB entries.

24. The method of claim 23 , wherein at least one of the plurality of TLB entries is a global TLB entry.

25. The method of claim 24 , wherein the at least one global TLB entry is global across the first virtual machine or the second virtual machine.

26. The method of claim 24 , wherein the at least one global TLB entry is global across the first virtual machine and the second virtual machine.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2024
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES II LLC
Reel/Frame 066139/0987 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR'S NAME PREVIOUSLY RECORDED AT REEL: 036711 FRAME: 0160. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 6, 2015
From: INTELLECTUAL VENTURES FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036797/0356 →
MERGER Recorded Sep 29, 2015
From: INTELLECTUAL VENTURE FUNDING LLC
To: INTELLECTUAL VENTURES HOLDING 81 LLC
Reel/Frame 036711/0160 →