Management of reuse invalidation buffer for computation reuse
AssigneeIntel Corporation
InventorYoufeng Wu
Life of this patent
Estimating the term…
Abstract
A mechanism for maintaining reuse invalidation information includes a reuse buffer and a reuse invalidation buffer. The reuse buffer stores multiple instances of the reuse region. Each instance stored in the reuse buffer is identified by one or more versions. The reuse invalidation buffer contains multiple entries. Each entry in the reuse invalidation buffer includes one or more pairs of pointers pointing to instances and versions of instances held in the reuse buffer.
Claims30
An apparatus comprising:
- a reuse buffer to hold a plurality of instances of a reuse region, each of the plurality of instances being identified by at least one version;
- and
- a reuse invalidation buffer to have a plurality of entries, each of the plurality of entries including at least one pair of pointers to point to a particular version of one of the plurality of instances held in the reuse buffer.
An apparatus comprising:
- a reuse buffer to hold a plurality of instances of a reuse region;
- and
- a reuse invalidation buffer to have a plurality of entries, each of the plurality of entries including a memory address that represents a beginning of a memory area covering multiple aliased memory addresses and a list of pointers to point to corresponding instances within the plurality of reuse instances held in the reuse buffer, such that the corresponding instances can be invalidated responsive to a memory instruction that accesses one of the multiple aliased memory addresses.
A method for maintaining reuse invalidation information pertaining to a memorization phase, the method comprising:
- identifying a new instance of a reuse region;
- encountering an aliased memory operation instruction in the reuse region;
- adding new instance information to a corresponding entry in a reuse invalidation buffer, the new instance information including a reuse instance index pointing to the new instance of the reuse region and a version index pointing to a certain version of the new instance of the reuse region;
- and
- when reaching the end of the reuse region, setting a current version of the new instance in a reuse buffer.
A method for invalidating instances of an aliased reuse region, the method comprising:
- determining that an aliased memory location has been updated;
- finding an entry representing the aliased memory location in a reuse invalidation buffer;
- identifying at least one instance and a corresponding instance version in a reuse buffer, the at least one instance and the corresponding version being referred to by the reuse invalidation buffer entry representing the aliased memory location;
- and
- marking at least one instance as invalid upon determining that the corresponding instance version is current.
A system comprising:
- a memory to store regions of code;
- and
- a processor, coupled to the memory, to identify a reuse region in the regions of code, the processor comprising a reuse buffer holding a plurality of instances of a reuse region, each of the plurality of instances being identified by at least one version, and a reuse invalidation buffer having a plurality of entries, each of the plurality of entries including at least one pair of pointers to point to a particular version of one of the plurality of instances held in the reuse buffer.
A system comprising:
- a memory to store regions of code;
- and
- a processor, coupled to the memory, to identify a reuse region in the regions of code, the processor comprising a reuse buffer holding a plurality of instances of the reuse region and a reuse invalidation buffer having a plurality of entries, each of the plurality of entries including a memory address that represents a beginning of a memory area covering multiple aliased memory addresses and a list of pointers to point to corresponding instances within the plurality of reuse instances held in the reuse buffer, such that the corresponding instances can be invalidated responsive to a memory instruction that accesses one of the multiple aliased memory addresses.
A computer readable medium comprising instructions, which when executed on a processor, perform a method for maintaining reuse invalidation information, the method comprising:
- identifying a new instance of a reuse region;
- encountering an aliased memory operation instruction in the reuse region;
- adding an entry to a reuse invalidation buffer, the entry including a reuse instance index pointing to the new instance of the reuse region and a version index pointing to a certain version of the new instance of the reuse region;
- and
- when reaching the end of the reuse region, setting a current version of the new instance in a reuse buffer.
A computer readable medium comprising instructions, which when executed on a processor, perform a method for invalidating instances of an aliased reuse region, the method comprising:
- determining that an aliased memory location has been updated;
- finding an entry representing the aliased memory location in a reuse invalidation buffer;
- identifying at least one instance and a corresponding instance version in a reuse buffer, the at least one instance and the corresponding version being referred to by the reuse invalidation buffer entry representing the aliased memory location;
- and
- marking at least one instance as invalid upon determining that the corresponding instance version is current.
Dependencies are inferred from the claim text.