×

Sub-page-granular cache coherency using shared virtual memory mechanism

  • US 7,680,987 B1
  • Filed: 03/29/2006
  • Issued: 03/16/2010
  • Est. Priority Date: 03/29/2006
  • Status: Active Grant
First Claim
Patent Images

1. In a computerized device having (i) local physical memory and (ii) a page table which maps a local virtual memory range and a shared virtual memory range to the local physical memory, a method for accessing data, the method comprising:

  • receiving a request for data and determining whether a page hit or a page fault has occurred based on an examination of virtual memory metadata;

    in response to a determined page hit where the data resides in the physical memory, providing access to the data residing in the physical memory;

    in response to a determined page fault where the data resides in the physical memory, providing access to the data residing in the physical memory; and

    in response to a determined page fault where the data does not reside in the physical memory, moving the data (i) from secondary memory into the physical memory when the virtual address of the request falls within the local virtual memory range and (ii) from another computerized device into the physical memory when the virtual address of the request falls within the shared virtual memory range;

    wherein moving the data includes transferring the data from the other computerized device into a shared portion of the physical memory, and updating the page table to indicate that the data now resides in the shared portion of the physical memory;

    wherein the method further comprises;

    receiving another request for the data and determining whether a page hit or a page fault has occurred based on an examination of virtual memory metadata associated with the virtual address of the other request, andin response to a determined page hit where the data now resides in the shared portion of the physical memory, providing access to the data now residing in the shared portion of the physical memory;

    wherein the shared portion of the physical memory is a set of physical memory pages contiguously divided into equal-sized extents;

    wherein providing access to the data residing in the physical memory includes;

    when the virtual address of the request falls within the local virtual memory range, mapping the virtual address of the request to a page of the physical memory and enabling the data to be accessed from the page, andwhen the virtual address of the request falls within the shared virtual memory range, mapping the virtual address to an extent of the shared portion of the physical memory and enabling the data to be accessed from the extent;

    wherein the secondary memory is magnetic disk drive memory; and

    wherein moving the data in response to the determined page fault includes;

    when the virtual address of the request falls within the local virtual memory range, transferring the data from the magnetic disk drive memory into the page of the physical memory and permitting access to the data from the page, andwhen the virtual address of the request falls within the shared virtual memory range, transferring the data from the other computerized device into the extent of the shared portion of the physical memory and permitting access the data to be accessed from the extent; and

    wherein there are N computerized devices forming a distributed computer system;

    wherein a shared physical memory range is divided into M extents;

    wherein each of the N computerized devices is configured to be the home of a respective subset of the M extents in a predefined manner; and

    wherein transferring the data from the other computerized device into the extent of the shared portion of the physical memory includes;

    performing a set of masked atomic compare and swap operations to acquire, as the data, information which is shared among each of the N computerized devices forming the distributed computer system.

View all claims
  • 9 Assignments
Timeline View
Assignment View
    ×
    ×