Managing reuse information for memory pages

US2016259732A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016259732-A1
Application numberUS-201514637579-A
CountryUS
Kind codeA1
Filing dateMar 4, 2015
Priority dateMar 4, 2015
Publication dateSep 8, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Address translation and caching is managed using a processor that includes at least one CPU configured to run a hypervisor and at least one guest operating system. The managing includes: translating from virtual addresses to intermediate physical addresses using mappings in a first page table accessed by the guest operating system; translating from the intermediate physical addresses to physical addresses using mappings in a second page table accessed by the hypervisor; determining reuse information for a second memory page mapped by both the first page table and the second page table based on estimated reuse of data stored within the second memory page; storing the determined reuse information in both the first page table and the second page table; and using the stored reuse information to store cache lines in selected portions of a first cache.

First claim

Opening claim text (preview).

What is claimed is: 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 and at least one guest operating system, the managing including: 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; 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; determining reuse information for a second memory page mapped by both the first page table and the second page table based on estimated reuse of data stored within the second memory page; storing the determined reuse information in both the first page table and the second page table; and using the stored reuse information to store cache lines in selected portions of the first cache. 2 . The method of claim 1 , wherein the estimated reuse of data stored within the second memory page comprises an estimated miss rate for blocks of data within the second memory page that are attempted to be retrieved from corresponding cache lines of the first cache. 3 . The method of claim 2 , wherein the estimated miss rate for blocks of data within the second memory page comprises an average miss rate of multiple blocks of data within the second memory page accessed during previous execution of the guest operating system. 4 . The method of claim 1 , wherein storing the determined reuse information in both the first page table and the second page table includes: (1) storing first reuse information determined by the guest operating system in the first page table, and (2) storing second reuse information determined by the hypervisor in the second page table. 5 . The method of claim 4 , wherein determining reuse information for the second memory page mapped by both the first page table and the second page table based on estimated reuse of data stored within the second memory page includes: (1) determining the first reuse information based on miss rates associated with virtual addresses, and (2) determining the second reuse information based on miss rates associated with intermediate physical addresses. 6 . The method of claim 4 , wherein using the stored reuse information to store cache lines in selected portions of the first cache includes processing the first reuse information and the second reuse information and using a result of the processing to store cache lines in selected portions of the first cache. 7 . The method of claim 6 , wherein the first reuse information 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 6 , wherein the second reuse information 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 managing further includes updating at least one of: (1) reuse information stored in an entry of the first page table, or (2) reuse information stored in an entry of the second page table. 10 . The method of claim 9 , wherein the updating is performed while preserving all bits of mapped addresses within the entry of the first or second page table. 11 . The method of claim 1 , wherein the first cache comprises a last level cache. 12 . 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 and at least one guest operating system; wherein the processor is configured to: 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; 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; determine reuse information for a second memory page mapped by both the first page table and the second page table based on estimated reuse of data stored within the second memory page; store the determined reuse information in both the first page table and the second page table; and use the stored reuse information to store cache lines in selected portions of the first cache. 13 . The apparatus of claim 12 , wherein the estimated reuse of data stored within the second memory page comprises an estimated miss rate for blocks of data within the second memory page that are attempted to be retrieved from corresponding cache lines of the first cache. 14 . The apparatus of claim 13 , wherein the estimated miss rate for blocks of data within the second memory page comprises an average miss rate of multiple blocks of data within the second memory page accessed during previous execution of the guest operating system. 15 . The apparatus of claim 12 , wherein storing the determined reuse information in both the first page table and the second page table includes: (1) storing first reuse information determined by the guest operating system in the first page table, and (2) storing second reuse information determined by the hypervisor in the second page table. 16 . The apparatus of claim 15 , wherein determining reuse information for the second memory page mapped by both the first page table and the second page table based on estimated reuse of data stored within the second memory page includes: (1) determining the first reuse information based on miss rates associated with virtual addresses, and (2) determining the second reuse information based on miss rates associated with intermediate physical addresses. 17 . The apparatus of claim 15 , wherein using the stored reuse information to store cache lines in selected portions of the first cache includes processing the first reuse information and the second reuse information and using a result of the processing to store cache lines in se

Assignees

Inventors

Classifications

  • with multilevel cache hierarchies · CPC title

  • Plural cache memories · CPC title

  • using page tables, e.g. page table structures · CPC title

  • Details of translation look-aside buffer [TLB] · CPC title

  • using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016259732A1 cover?
Address translation and caching is managed using a processor that includes at least one CPU configured to run a hypervisor and at least one guest operating system. The managing includes: translating from virtual addresses to intermediate physical addresses using mappings in a first page table accessed by the guest operating system; translating from the intermediate physical addresses to physica…
Who is the assignee on this patent?
Cavium Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/1009. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Sep 08 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).