IP Library Granted Patent US 9,471,509
Granted Patent B2
US 9,471,509 · App. 14/662,405 · Granted Oct 18, 2016

Managing address-independent page attributes

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,471,509
App. No.
14/662,405
Granted
Oct 18, 2016
Kind
B2
Abstract

At least one CPU is configured to run a hypervisor at a first access level and at least one guest operating system at a second access level. At the second access level, translating uses mappings in a first page table; and, at the second access level, class information is determined for a memory page mapped by the first page table based on a classification of virtual addresses. At the first access level, translating uses mappings in a second page table; and, at the first access level, class information is determined for the memory page mapped by the second page table based on a classification of intermediate physical addresses. The class information determined at either access level is independent from certain bits used to indicate addresses. Class information determined at different access levels is processed to determine processed class information for the memory page using a dynamic processing rule.

Claims (44)

1. An apparatus comprising:

a storage device configured to store memory pages including a first memory page retrieved from the storage device in response to a page fault issued after an attempt to retrieve data in the first memory page from a physical address space;

an external memory system including a main memory controller coupled to main memory having the physical address space; and

a processor that includes (1) at least one memory management unit coupled to the external memory system, and (2) at least one central processing unit configured to run a hypervisor at a first access level and at least one guest operating system at a second access level;

wherein the processor is configured to:

at the second access level, translate from virtual addresses in a virtual address space to intermediate physical addresses in an intermediate physical address space using mappings in a first page table accessed by the guest operating system;

at the second access level, determine class information for a second memory page mapped by the first page table based on a classification of virtual addresses within the virtual address space, wherein the class information determined at the second access level is independent from: (1) any bits used to indicate virtual addresses, and (2) any bits used to indicate intermediate physical addresses;

at the first access level, translate from the intermediate physical addresses to physical addresses in the physical address space of the main memory using mappings in a second page table accessed by the hypervisor;

at the first access level, determine class information for the second memory page mapped by the second page table based on a classification of intermediate physical addresses within the intermediate physical address space, wherein the class information determined at the first access level is independent from: (1) any bits used to indicate intermediate physical addresses, and (2) any bits used to indicate physical addresses; and

process class information for the second memory page determined at different access levels to determine processed class information for the second memory page using a dynamic processing rule.

2. The apparatus of claim 1 , wherein the attempt to retrieve the data in the first memory page from the physical address space is issued in response to a cache miss, and the external memory system further includes a first cache configured to store a plurality of cache lines and to issue the cache miss after an attempt to retrieve the data in the first memory page from at least one of the cache lines.

3. The apparatus of claim 2 , wherein the processor is further configured to use the processed class information to store cache lines in selected portions of the first cache.

4. The apparatus of claim 1 , wherein the first access level has a higher privilege than the second access level.

5. The apparatus of claim 4 , wherein the central processing unit is configured to manage security for physical addresses in the physical address space of the main memory at a third security level that has a higher privilege than the first access level.

6. The apparatus of claim 5 , wherein processing class information for the second memory page determined at different access levels includes processing class information determined at three or more different access levels.

7. The apparatus of claim 1 , wherein at least one of the class information determined at the first access level or the class information determined at the second access level is determined based on classification of addresses according to attributes of blocks of data within the second memory page.

8. The apparatus of claim 7 , wherein the attributes of blocks of data within the second memory page comprise estimated reuse of the blocks of data within the second memory page.

9. The apparatus of claim 8 , wherein the estimated reuse of the blocks of data within the second memory page comprises an estimated miss rate for the blocks of data within the second memory page.

10. The apparatus of claim 1 , wherein the dynamic processing rule comprises selecting between the class information determined at the first access level and the class information determined at the second access level based on content of one or both of the class information determined at the first access level and the class information determined at the second access level.

11. The apparatus of claim 1 , wherein the dynamic processing rule comprises combining the class information determined at the first access level and the class information determined at the second access level according to a predetermined function.

12. The apparatus of claim 1 , wherein the dynamic processing rule is changed at runtime by the guest operating system or the hypervisor.

13. The apparatus of claim 1 , wherein the first cache comprises a last level cache.

14. The apparatus of claim 1 , wherein at least one of the class information determined at the first access level or the class information determined at the second access level comprises one or more bits stored within a page table entry cached in a translation lookaside buffer.

15. A method comprising:

retrieving a first memory page from a storage device in response to a page fault issued after an attempt to retrieve data in the first memory page from a physical address space of a main memory of an external memory system; and

managing memory pages from a processor that includes (1) at least one memory management unit coupled to the external memory system, and (2) at least one central processing unit configured to run a hypervisor at a first access level and at least one guest operating system at a second access level, the managing including:

at the second access level, translating from virtual addresses in a virtual address space to intermediate physical addresses in an intermediate physical address space using mappings in a first page table accessed by the guest operating system;

at the second access level, determining class information for a second memory page mapped by the first page table based on a classification of virtual addresses within the virtual address space, wherein the class information determined at the second access level is independent from: (1) any bits used to indicate virtual addresses, and (2) any bits used to indicate intermediate physical addresses;

at the first access level, translating from the intermediate physical addresses to physical addresses in the physical address space of the main memory using mappings in a second page table accessed by the hypervisor;

at the first access level, determining class information for the second memory page mapped by the second page table based on a classification of intermediate physical addresses within the intermediate physical address space, wherein the class information determined at the first access level is independent from: (1) any bits used to indicate intermediate physical addresses, and (2) any bits used to indicate physical addresses; and

processing class information for the second memory page determined at different access levels to determine processed class information for the second memory page using a dynamic processing rule.

16. The method of claim 15 , further comprising issuing the attempt to retrieve the data in the first memory page in response to a cache miss issued after an attempt to retrieve the data in the first memory page from a first cache line of a first cache of the external memory system.

17. The method of claim 16 , wherein the managing further includes using the processed class information to store cache lines in selected portions of the first cache.

18. The method of claim 15 , wherein the first access level has a higher privilege than the second access level.

19. The method of claim 18 , wherein the central processing unit is configured to manage security for physical addresses in the physical address space of the main memory at a third security level that has a higher privilege than the first access level.

20. The method of claim 19 , wherein processing class information for the second memory page determined at different access levels includes processing class information determined at three or more different access levels.

21. The method of claim 15 , wherein at least one of the class information determined at the first access level or the class information determined at the second access level is determined based on classification of addresses according to attributes of blocks of data within the second memory page.

22. The method of claim 21 , wherein the attributes of blocks of data within the second memory page comprise estimated reuse of the blocks of data within the second memory page.

23. The method of claim 22 , wherein the estimated reuse of the blocks of data within the second memory page comprises an estimated miss rate for the blocks of data within the second memory page.

24. The method of claim 15 , wherein the dynamic processing rule comprises selecting between the class information determined at the first access level and the class information determined at the second access level based on content of one or both of the class information determined at the first access level and the class information determined at the second access level.

25. The method of claim 15 , wherein the dynamic processing rule comprises combining the class information determined at the first access level and the class information determined at the second access level according to a predetermined function.

26. The method of claim 1 , wherein the dynamic processing rule is changed at runtime by the guest operating system or the hypervisor.

27. The method of claim 15 , wherein the first cache comprises a last level cache.

28. The method of claim 15 , wherein at least one of the class information determined at the first access level or the class information determined at the second access level comprises one or more bits stored within a page table entry cached in a translation lookaside buffer.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Sep 27, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047156/0906 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: MUKHERJEE, SHUBHENDU SEKHAR
To: CAVIUM, INC.
Reel/Frame 035381/0955 →