IP Library Granted Patent US 8,041,876
Granted Patent B1
US 8,041,876 · App. 11/500,575 · Granted Oct 18, 2011

Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine

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,041,876
App. No.
11/500,575
Granted
Oct 18, 2011
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 within a host machine context and executing a virtual machine application within a virtual machine context. A plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context are stored within a TLB. Memory protection bits for the plurality of TLB entries are logically combined to enforce memory protection on the virtual machine application.

Claims (44)

1. A method, comprising:

executing a host machine application within a host machine context;

executing a virtual machine application within a virtual machine context;

storing a plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context within a physical TLB, wherein the TLB entries include a plurality of memory protection bits; and

controlling access from the virtual machine context to a TLB entry of the physical TLB, wherein said controlling access includes:

performing a logical operation with first and second memory protection bits of the TLB entry and a memory protection bit, which is unavailable in the TLB entry, from the virtual machine context to determine a result; and

storing the result in the TLB entry and permitting access to the TLB entry based on the result.

2. The method of claim 1 , wherein at least one of the first and second memory protection bits is a dirty bit.

3. The method of claim 1 , wherein at least one of the first and second memory protection bits is a read/write bit.

4. The method of claim 1 , wherein the logical operation is a logical AND operation.

5. The method of claim 1 , wherein the host machine application is a host machine operating system that executes within the host machine context and the virtual machine application is a virtual machine operating system that executes within the virtual machine context.

6. The method of claim 1 , wherein the TLB entries include respective context identifiers enabling the TLB entries to provide physical address translation for virtual addresses from both the host machine context and the virtual machine context.

7. The method of claim 1 further comprising:

updating the physical TLB with new entries if a virtual machine TLB miss occurs or a host machine TLB miss occurs, wherein the controlling access enforces memory protection on the virtual machine application.

8. A system, comprising:

a processor architecture including micro architecture code configured to execute on a CPU hardware unit of the processor architecture; and

an address translation cache for implementing a physical translation look aside buffer, wherein memory stores instructions of the micro architecture code cause the system to perform operations for memory protection, wherein the memory stores instructions comprise:

instructions to execute a host machine application within a host machine context;

instructions to execute a virtual machine application within a virtual machine context;

instructions to store a plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context within the physical TLB, wherein the TLB entries include a plurality of memory protection bits; and

instructions to control access from the virtual machine context to a TLB entry of the physical TLB, wherein the instructions to control access comprise:

instructions to perform a logical operation with first and second memory protection bits of the TLB entry and a memory protection bit, which is unavailable in the TLB entry, from the virtual machine context to determine a result; and

instructions to store the result in the TLB entry and to permit access to the TLB entry based on the result.

9. The system of claim 8 , wherein at least one of the first and second memory protection bits is a dirty bit.

10. The system of claim 8 , wherein at least one of the first and second memory protection bits is a read/write bit.

11. The system of claim 8 , wherein the logical operation is a logical AND operation.

12. The system of claim 8 , wherein the host machine application is a host machine operating system that executes within the host machine context and the virtual machine application is a virtual machine operating system that executes within the virtual machine context.

13. The system of claim 8 , wherein the TLB entries include respective context identifiers enabling the TLB entries to provide physical address translation for virtual addresses from both the host machine context and the virtual machine context.

14. The system of claim 8 , wherein the memory stores instructions further comprise:

instructions to update the physical TLB with new entries if a virtual machine TLB miss occurs or a host machine TLB miss occurs.

15. A computer readable storage device comprising computer readable code stored therein, the computer readable code comprising:

computer readable code to execute a host machine application within a host machine context;

computer readable code to execute a virtual machine application within a virtual machine context;

computer readable code to store a plurality of TLB (translation look aside buffer) entries for the virtual machine context and the host machine context within a physical TLB, wherein the TLB entries include a plurality of memory protection bits; and

computer readable code to control access from the virtual machine context to a TLB entry of the physical TLB, wherein the computer readable code to control access comprises:

computer readable code to perform a logical operation with first and second memory protection bits of the TLB entry and a memory protection bit, which is unavailable in the TLB entry, from the virtual machine context to determine a result; and

computer readable code to store the result in the TLB entry and to permit access to the TLB entry based on the result.

16. The computer readable storage device of claim 15 , wherein at least one of the first and second memory protection bits is a dirty bit.

17. The computer readable storage device of claim 15 , wherein at least one of the first and second memory protection bits is a read/write bit.

18. The computer readable storage device of claim 15 , wherein the logical operation is a logical AND operation.

19. The computer readable storage device of claim 15 , wherein the host machine application is a host machine operating system that executes within the host machine context and the virtual machine application is a virtual machine operating system that executes within the virtual machine context.

20. The computer readable storage device of claim 15 , wherein the TLB entries include respective context identifiers enabling the TLB entries to provide physical address translation for virtual addresses from both the host machine context and the virtual machine context.

21. The computer readable storage device of claim 15 , wherein the computer readable code further comprises:

computer readable code to update the physical TLB with new entries if a virtual machine TLB miss occurs or a host machine TLB miss occurs.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2024
From: INTELLECTUAL VENTURES ASSETS 194 LLC
To: INTEGRAL WIRELESS TECHNOLOGIES LLC
Reel/Frame 068920/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2024
From: INTELLECTUAL VENTURES HOLDING 81 LLC
To: INTELLECTUAL VENTURES ASSETS 194 LLC
Reel/Frame 068867/0990 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2009
From: TRANSMETA LLC
To: INTELLECTUAL VENTURE FUNDING LLC
Reel/Frame 023268/0771 →
MERGER Recorded Mar 26, 2009
From: TRANSMETA CORPORATION
To: TRANSMETA LLC
Reel/Frame 022454/0522 →