Storing data in memory
AssigneeHewlett-Packard Development Company, L.P.
InventorsPaul Keltcher, Stephen Richardson
Life of this patent
Estimating the term…
Abstract
In response to determining a requested line of data is not stored within a local memory, the requested line of data is written to the local memory from a remote memory. Additionally, a victim page is selected in the local memory in response to the requested line of data not being in the local memory and it is determined whether one or more lines of the victim page are dirty. Furthermore, the one or more dirty lines are written to the remote memory in response to determining that the one or more lines are dirty and the requested line of data is fetched from the remote memory. Moreover, the requested line of data is stored within the page of data at a location previously occupied by the victim page.
Claims28
A method of writing back a dirty page from a local memory to a remote memory, the method comprising the steps of:
- storing a plurality of memory pages in the local memory, each page containing a plurality of memory lines;
- determining whether one or more lines of a page of the plurality of pages in the local memory are dirty;
- and
- writing back only the one or more dirty lines of the page to the remote memory.
A method of writing data to a local memory from a remote memory, the method comprising the steps of:
- receiving a request for a line of data, the line of data being associated with a page of data;
- determining whether the page of data is in the local memory;
- selecting a victim page in the local memory in response to the page of data not being in the local memory;
- determining whether one or more lines of the victim page are dirty;
- writing only the one or more dirty lines of the victim page to the remote memory in response to determining that one or more lines of the victim page are dirty;
- fetching the requested line of data from the remote memory;
- and
- storing the requested line of data in the local memory within a location previously occupied by the victim page.
A computer readable medium on which is embedded computer software, the software comprising executable code for performing a method of writing back a dirty page from a local memory to a remote memory, the method comprising the steps of:
- storing a plurality of memory pages in the local memory, each page containing a plurality of memory lines;
- determining whether one or more lines of a page of the plurality of pages in the local memory are dirty;
- and
- writing back only the one or more dirty lines of the page to the remote memory.
A computer readable medium on which is embedded computer software, the software comprising executable code for performing a method of writing data to a local memory from a remote memory, the method comprising the steps of:
- receiving a request for a line of data, the line of data being associated with a page of data;
- determining whether the page of data is in the local memory;
- selecting a victim page in the local memory in response to the page of data not being in the local memory;
- determining whether one or more lines of the victim page are dirty;
- writing only the one or more dirty lines of the victim page to the remote memory in response to determining that one or more lines of the victim page are dirty;
- fetching the requested line of data from the remote memory;
- and
- storing the requested line of data in the local memory within a location previously occupied by the victim page.
An apparatus comprising:
- a processor;
- a remote memory;
- a local memory configured to store a page of data comprising a plurality of lines of data, each line of data having a respective valid bit and dirty bit, wherein the respective valid bit is utilized to indicate data stored by the corresponding line of data has been fetched from the remote memory and wherein the respective dirty bit is utilized to indicate data stored in the corresponding line of data has been modified by the processor;
- and
- a bus configured to interconnect the processor, the remote memory and the local memory.
A method of writing data to a local memory from a remote memory, the method comprising the steps of:
- receiving a request for a line of data, the line of data being associated with a page of data;
- determining whether the page of data is in the local memory;
- determining whether the requested line of data is in the local memory in response to the page of data being in the local memory;
- fetching only the requested line of data from the remote memory in response to the requested line of data not being in the local memory;
- storing only the requested line of data within the page of data;
- and
- setting a valid bit for the requested line of data stored within the page of data.
A method comprising the steps of:
- receiving a request for a line of data, the line of data being associated with a page of data;
- determining whether the page of data is in a local memory;
- selecting a victim page in the local memory in response to the page of data not being in the local memory;
- determining whether one or more lines of the victim page are dirty;
- writing only the one or more dirty lines of the victim page to a remote memory in response to determining that one or more lines of the victim page are dirty;
- determining whether one or more lines of the victim page are valid in response to selecting the victim page;
- clearing the one or more valid bits associated with the victim page in response to determining one or more lines of the victim page are valid;
- fetching the requested line of data from the remote memory;
- storing the requested line of data within the page of data at a location previously occupied by the victim page;
- setting a valid bit associated with the requested line;
- updating a page table with data associated with storing the requested line of data within the page of data at a location previously occupied by the victim page;
- and
- updating a translation lookaside buffer with data associated with storing the requested line of data within the page of data at a location previously occupied by the victim page.
An apparatus for writing back a dirty page from a local memory to a remote memory, the apparatus comprising:
- a means for storing a plurality of memory pages in the local memory, each page containing a plurality of memory lines;
- a means for determining whether one or more lines of a page of the plurality of pages in the local memory are dirty;
- and
- a means for writing back only the one or more dirty lines of the page to the remote memory.
An apparatus for writing data to a local memory from a remote memory, the apparatus comprising:
- a means for receiving a request for a line of data, the line of data being associated with a page of data;
- a means for determining whether the page of data is in the local memory;
- a means for selecting a victim page in the local memory in response to the page of data not being in the local memory;
- a means for determining whether one or more lines of the victim page are dirty;
- a means for writing only the one or more dirty lines of the victim page to the remote memory in response to determining that one or more lines of the victim page are dirty;
- a means for fetching the requested line of data from the remote memory;
- and
- a means for storing the requested line of data in the local memory within a location previously occupied by the victim page.
An apparatus for writing data to a local memory from a remote memory, the apparatus comprising:
- a means for receiving a request for a line of data, the line of data being associated with a page of data;
- a means for determining whether the page of data is in the local memory;
- a means for determining whether the requested line of data is in the local memory in response to the page of data being in the local memory;
- a means for fetching only the requested line of data from the remote memory in response to the requested line of data not being in the local memory;
- a means for storing only the requested line of data within the page of data;
- and
- a means for setting a valid bit for the requested line of data stored within the page of data.
An apparatus comprising:
- a means for receiving a request for a line of data, the line of data being associated with a page of data;
- a means for determining whether the page of data is in a local memory;
- a means for selecting a victim page in the local memory in response to the page of data not being in the local memory;
- a means for determining whether one or more lines of the victim page are dirty;
- a means for writing only the one or more dirty lines of the victim page to a remote memory in response to determining that one or more lines of the victim page are dirty;
- a means for determining whether one or more lines of the victim page are valid in response to selecting the victim page;
- a means for clearing the one or more valid bits associated with the victim page in response to determining one or more lines of the victim page are valid;
- a means for fetching the requested line of data from the remote memory;
- a means for storing the requested line of data within the page of data at a location previously occupied by the victim page;
- a means for setting a valid bit associated with the requested line;
- a means for updating a page table with data associated with storing the requested line of data within the page of data at a location previously occupied by the victim page;
- and
- a means for updating a translation lookaside buffer with data associated with storing the requested line of data within the page of data at a location previously occupied by the victim page.
Dependencies are inferred from the claim text.