Predictive early write-back of owned cache blocks in a shared memory computer system
AssigneeIntel Corporation
InventorsGeorge Z. Chrysos, Matthew Mattina
Life of this patent
Estimating the term…
Abstract
A method for predicting early write back of owned cache blocks in a shared memory computer system. This invention enables the system to predict which written blocks may be more likely to be requested by another CPU and the owning CPU will write those blocks back to memory as soon as possible after updating the data in the block. If another processor is requesting the data, this can reduce the latency to get that data, reducing synchronization overhead, and increasing the throughput of parallel programs.
Claims22
A method comprising:
- requesting a block with a first processor;
- determining if a second processor owns the requested block;
- transferring the requested block to the first processor;
- updating the requested block to an updated block after transferring the requested block to the first processor;
- and
- attempting to merge other data associated with the updated block in a merge buffer within the first processor in response to determining the second processor did not own the requested block before transferring the requested block to the first processor;
- and
- immediately writing the updated block to a memory shared by the first and the second processor without attempting to merge other data associated with the updated block after updating the requested block in response to the second processor owning the requested block before transferring the requested block to the first processor.
An apparatus comprising:
- a first processor core including a first buffer to merge writes to a shared cache;
- a second processor core including a second buffer to merge writes to the shared cache;
- the shared cache coupled to the first and the second processor cores;
- wherein the first processor core is to:
- request ownership of a block of data associated with the shared cache, obtain ownership of the block of data, and update the block of data to an updated block, and wherein the first processor core is further to:
- attempt to merge the updated block of data with another block of data in the first buffer to form a merged write in response to the second processor core not owning the block of data;
- and immediately write the updated block of data from the first buffer back to the shared cache without an attempt to merge the updated block of data with another block of data in response to determining the second processor core owning the block of data upon the first processor core requesting ownership of the block of data.
A multiprocessor computer system comprising a plurality of nodes, each node from said plurality of nodes comprising:
- at least first and second processors, wherein the first and second processor include:
- a shared cache coupled to the first and second processors, wherein the shared cache determines ownership of a block of data,
- a first buffer located within the first processor and a second buffer located in the second processor, wherein the first and the second buffer are capable of merging writes to the shared cache, and
- wherein the first processor is to request the block, to obtain the block and to update the block to an updated block, and wherein
- in response to the second processor not owning and not sharing the block before the first processor is to obtain the block, the first processor is to attempt to merge the updated block in the first buffer before writing the updated block to the shared memory, and
- in response to the second processor owning or sharing the block before the first processor is to obtain the block, the first processor is to immediately write the updated block to the shared cache without attempting to merge the block of data in the first buffer to form a merged write, and
- a first interface to communicate with input/output devices.
Dependencies are inferred from the claim text.