IP Library Granted Patent US 9,317,441
Granted Patent B2
US 9,317,441 · App. 13/995,126 · Granted Apr 19, 2016

Indexed page address translation to reduce memory footprint in virtualized environments

Inventor: Sebastian Schoenberg (Hillsboro, OR)
Assignee: Intel Cororation
G06F12/1009G06F9/45558G06F12/1027G06F2009/45583G06F2212/681
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 9,317,441
App. No.
13/995,126
Granted
Apr 19, 2016
Kind
B2
Abstract

Embodiments of systems, apparatuses, and methods for performing guest logical memory address to host physical memory address translation are described. In some embodiments, a system receives the guest logical memory address and determines an index page reference from the guest logical memory address. The system further retrieves a page index corresponding to the virtual machine. In addition, the system retrieves a first part of the host physical memory address from index page using the page index and a second part of the host physical memory address from the guest logical memory address. The system generates the host physical memory address from the first and second parts of the host physical memory address.

Claims (38)

1. A method of converting a memory address, comprising:

receiving a guest logical memory address for a virtual machine;

determining an index page reference from the guest logical memory address, wherein an index page allows a plurality of virtual machines to share an extended page table;

retrieving a page index corresponding to the virtual machine from a virtual machine control structure of the virtual machine;

retrieving a first part of the host physical memory address from an index page identified by the index page reference using the page index;

retrieving a second part of the host physical memory address from the guest logical memory address; and

generating the host physical memory address from the first and second parts of the host physical memory address.

2. The method of claim 1 , wherein the page index is constant for the virtual machine.

3. The method of claim 1 , wherein the determining the index page reference comprises:

walking a set of one or more page tables to arrive at an entry of one of the set of one or more page tables that includes the page index reference.

4. The method of claim 3 , wherein the walking is based on one or more offsets that are part of the guest logical memory address.

5. The method of claim 3 , wherein the page table is a table that is used to translate the guest logical memory address to a guest physical memory address.

6. The method of claim 1 , wherein the guest logical memory address and host physical memory address are 64-bit addresses.

7. The method of claim 6 , wherein the guest logical memory address includes four 9-bit memory address segments which are used in the determining of the a index page reference and the remaining 12-bit memory address segment is the second part of the host physical memory address.

8. The method of claim 1 , wherein the virtual machine is a virtual system that is running on a host.

9. The method of claim 1 , wherein the generating comprises:

combining the first and second parts of the host physical memory address to form the host physical memory address.

10. A device, comprising:

a receive guest logical memory address module configured to receive the guest logical memory address;

a determine index page entry module adapted to determine an index page reference from the guest logical memory address, wherein an index page allows a plurality of virtual machines to share an extended page table;

a retrieve index page module adapted to retrieve a page index corresponding to the virtual machine from a virtual machine control structure of the virtual machine;

a retrieve first part of the host physical memory address module adapted to retrieve a first part of the host physical memory address from an index page using the page index identified by the index page reference;

a retrieve second part of the host physical memory address module adapted to retrieve a second part of the host physical memory address from the guest logical memory address; and

a generate host physical memory address module adapted to generate the host physical memory address from the first and second parts of the host physical memory address.

11. The device of claim 10 , wherein the page index is constant for the virtual machine.

12. The device of claim 10 , wherein the determine index page entry module is further configured to walk a set of one or more page tables to arrive at an entry of one of the set of one or more page tables that includes the page index reference.

13. The device of claim 12 , wherein the walk is based on one or more offsets that are part of the guest logical memory address.

14. The device of claim 12 , wherein the page table is a table that is used by the virtual machine monitor to translate the guest logical memory address to a guest physical memory address.

15. The device of claim 10 , wherein the guest logical memory address and host physical memory address are 64-bit addresses.

16. The device of claim 15 , wherein the guest logical memory address includes four 9-bit memory address segments which are used in the determining the a index page reference and the remaining 12-bit memory address segment is the second part of the host physical memory address.

17. The device of claim 10 , wherein the virtual machine is a virtual system that is running on the host.

18. A non-transitory machine-readable medium having executable instructions to perform a method to convert a memory address, the method comprising:

receiving a guest logical memory address for a virtual machine;

determining an index page reference from the guest logical memory address, wherein an index page allows a plurality of virtual machines to share an extended page table;

retrieving a page index corresponding to the virtual machine from a virtual machine control structure of the virtual machine;

retrieving a first part of the host physical memory address from an index page identified by the index page reference using the page index;

retrieving a second part of the host physical memory address from the guest logical memory address; and

generating the host physical memory address from the first and second parts of the host physical memory address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2013
From: SCHOENBERG, SEBASTIAN
To: INTEL CORPORATION
Reel/Frame 030973/0507 →
Continuity (1)
Related Publication 20140201421A1 · Jul 17, 2014