IP Library Granted Patent US 10,013,360
Granted Patent B2
US 10,013,360 · App. 14/638,194 · Granted Jul 3, 2018

Managing reuse information with multiple translation stages

Inventor: Shubhendu Sekhar Mukherjee (Southborough, MA)
Assignee: Cavium, Inc.
G06F12/1027G06F9/45533G06F9/45545G06F9/45558G06F12/0811G06F12/1009G06F2009/45583G06F2212/283G06F2212/657G06F2212/68
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 10,013,360
App. No.
14/638,194
Granted
Jul 3, 2018
Kind
B2
Abstract

Address translation and caching is managed using a processor that includes at least one CPU configured to run a hypervisor at a first access level and at least one guest operating system at a second access level. The managing includes: at the second access level, translating from virtual addresses to intermediate physical; at the second access level, determining reuse information for ranges of virtual addresses based on estimated reuse of data stored within a virtual address space; at the first access level, translating from the intermediate physical addresses to physical addresses; at the first access level, determining reuse information for ranges of intermediate physical addresses based on estimated reuse of data stored within an intermediate physical address space; and processing reuse information determined at different access levels to store cache lines in selected portions of a first cache.

Claims (37)

1. A method for managing address translation and caching, the 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;

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; and

managing address translation and caching 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;

at the second access level, determining reuse information for ranges of virtual addresses in the virtual address space based on estimated reuse of data stored within the virtual address space;

at the first access level, translating from the intermediate physical addresses to physical addresses in the physical address space of the main memory;

at the first access level, determining reuse information for ranges of intermediate physical addresses in the intermediate physical address space based on estimated reuse of data stored within the intermediate physical address space; and

processing reuse information determined at different access levels to store cache lines in selected portions of the first cache;

wherein processing reuse information determined at different access levels comprises at least one of: (1) selecting between first reuse information determined at the first access level and second reuse information determined at the second access level based on content of one or both of the first reuse information and the second reuse information, or (2) combining first reuse information determined at the first access level and second reuse information determined at the second access level according to a predetermined function.

2. The method of claim 1 , wherein each range of virtual addresses, of the ranges of virtual addresses for which reuse information is determined, consists of virtual addresses having a common virtual page number; and each range of intermediate physical addresses, of the ranges of intermediate physical addresses for which reuse information is determined, consists of intermediate physical addresses having a common intermediate physical page number.

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

4. The method of claim 3 , wherein the central processing unit manages 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.

5. The method of claim 4 , wherein processing reuse information determined at different access levels to store cache lines in selected portions of the first cache includes processing reuse information determined at three or more different access levels.

6. The method of claim 1 , wherein the estimated reuse of data stored within the virtual address space and the estimated reuse of data stored within the intermediate physical address space comprise estimated miss rates for blocks of data that are attempted to be retrieved from corresponding cache lines of the first cache.

7. The method of claim 1 , wherein the reuse information for ranges of virtual addresses is stored independently from: (1) any bits used to indicate virtual addresses, and (2) any bits used to indicate intermediate physical addresses.

8. The method of claim 1 , wherein the reuse information for ranges of intermediate physical addresses is stored independently from: (1) any bits used to indicate intermediate physical addresses, and (2) any bits used to indicate physical addresses.

9. The method of claim 1 , wherein the first cache comprises a last level cache.

10. 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, where the attempt to retrieve the data in the first memory page from the physical address space is issued in response to a cache miss;

an external memory system including: (1) a main memory controller coupled to main memory having the physical address space, and (2) 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; 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;

at the second access level, determine reuse information for ranges of virtual addresses in the virtual address space based on estimated reuse of data stored within the virtual address space;

at the first access level, translate from the intermediate physical addresses to physical addresses in the physical address space of the main memory;

at the first access level, determine reuse information for ranges of intermediate physical addresses in the intermediate physical address space based on estimated reuse of data stored within the intermediate physical address space; and

process reuse information determined at different access levels to store cache lines in selected portions of the first cache;

wherein processing reuse information determined at different access levels comprises at least one of: (1) selecting between first reuse information determined at the first access level and second reuse information determined at the second access level based on content of one or both of the first reuse information and the second reuse information, or (2) combining first reuse information determined at the first access level and second reuse information determined at the second access level according to a predetermined function.

11. The apparatus of claim 10 , wherein each range of virtual addresses, of the ranges of virtual addresses for which reuse information is determined, consists of virtual addresses having a common virtual page number; and each range of intermediate physical addresses, of the ranges of intermediate physical addresses for which reuse information is determined, consists of intermediate physical addresses having a common intermediate physical page number.

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

13. The apparatus of claim 12 , 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.

14. The apparatus of claim 13 , wherein processing reuse information determined at different access levels to store cache lines in selected portions of the first cache includes processing reuse information determined at three or more different access levels.

15. The apparatus of claim 10 , wherein the estimated reuse of data stored within the virtual address space and the estimated reuse of data stored within the intermediate physical address space comprise estimated miss rates for blocks of data that are attempted to be retrieved from corresponding cache lines of the first cache.

16. The apparatus of claim 10 , wherein the reuse information for ranges of virtual addresses is stored independently from: (1) any bits used to indicate virtual addresses, and (2) any bits used to indicate intermediate physical addresses.

17. The apparatus of claim 10 , wherein the reuse information for ranges of intermediate physical addresses is stored independently from: (1) any bits used to indicate intermediate physical addresses, and (2) any bits used to indicate physical addresses.

18. The apparatus of claim 10 , wherein the first cache comprises a last level cache.

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/0892 →
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 Mar 20, 2015
From: MUKHERJEE, SHUBHENDU SEKHAR
To: CAVIUM, INC.
Reel/Frame 035216/0047 →
Continuity (1)
Related Publication 20160259734A1 · Sep 8, 2016