Aggregating Cache Eviction Notifications to a Directory
AssigneeEmpire Technology Development LLC
InventorYan Solihin
Life of this patent
Estimating the term…
Abstract
Technologies are described herein generally relate to aggregation of cache eviction notifications to a directory. Some example technologies may be utilized to update an aggregation table to reflect evictions of a plurality of blocks from a plurality of block addresses of at least one cache memory. An aggregate message can be generated, where the message specifies the evictions of the plurality of blocks as reflected in the aggregation table. The aggregate message can be sent to the directory. The directory can parse the aggregate message and update a plurality of directory entries to reflect the evictions from the cache memory as specified in the aggregate message.
Claims33
A computer-implemented method for aggregating cache eviction notifications to a directory in a multicore chip, the method comprising:
- updating, by a computing device, an aggregation table to reflect evictions of a plurality of blocks from a plurality of block addresses of at least one cache memory;
- generating, by the computing device, an aggregate message configured to specify the evictions of the plurality of blocks as reflected in the aggregation table;
- and
- sending the aggregate message to the directory, wherein the directory is configured to parse the aggregate message and to update a plurality of directory entries to reflect the evictions from the at least one cache memory as specified in the aggregate message.
A multicore chip, comprising:
- a plurality of cores;
- a cache memory coupled to the plurality of cores;
- a directory and a directory controller coupled to the directory;
- an aggregation table comprising a plurality of entries;
- and
- a control logic configured to:
- update the aggregation table to reflect evictions of a plurality of blocks from a plurality of block addresses of the cache memory;
- generate an aggregate message configured to specify the evictions of the plurality of blocks as reflected in the aggregation table;
- and
- send the aggregate message to the directory controller, wherein the directory controller is configured to parse the aggregate message and to update a plurality of directory entries in the directory to reflect the evictions from the cache memory as specified in the aggregate message.
A computer-readable medium having computer-executable instructions stored thereon which, in response to execution by a computer, cause the computer to:
- detect first evictions of a first plurality of clean blocks from a first plurality of sequential block addresses of a cache memory in a multicore chip;
- detect second evictions of a second plurality of clean blocks from a second plurality of sequential block addresses of the cache memory;
- update a first entry in an aggregation table in the multicore chip to reflect the first evictions of the first plurality of clean blocks, wherein the first entry corresponds to the first plurality of sequential block addresses;
- update a second entry in the aggregation table in the multicore chip to reflect the second evictions of the second plurality of clean blocks, wherein the second entry corresponds to the second plurality of sequential block addresses;
- generate a first aggregate message configured to specify the first evictions of the first plurality of clean blocks as reflected in the first entry of the aggregation table;
- generate a second aggregate message configured to specify the second evictions of the second plurality of clean blocks as reflected in the second entry of the aggregation table;
- and
- send the first aggregate message and the second aggregate message to a directory controller coupled to a directory in the multicore chip, wherein the directory controller is configured to parse the first aggregate message and the second aggregate message, to update a first plurality of directory entries in the directory to reflect the first evictions from the cache memory as specified in the first aggregate message, and to update a second plurality of directory entries in the directory to reflect the second evictions from the cache memory as specified in the second aggregate message.
A computer-implemented method to handle cache evictions, the method comprising:
- determining, by the computing device, that a block is to be evicted from a cache memory;
- determining, by the computing device, whether the block is a dirty block;
- responsive to determining that the block is a dirty block, notifying, by the computing device, a cache coherence directory of an eviction of the block as a dirty block;
- responsive to determining that the block is not a dirty block, determining, by the computing device, whether an aggregation table contains an entry corresponding to a block address of the block;
- responsive to determining that the aggregation table does not contain an entry corresponding to the block address of the block, creating, by the computing device, an entry in the aggregation table corresponding to the block address of the block and updating the entry to reflect an eviction of the block from the cache memory as a clean block;
- and
- responsive to determining that the aggregation table does contain an entry corresponding to the block address of the block, updating, by the computing device, the entry to reflect an eviction of the block from the cache memory as a clean block.
Dependencies are inferred from the claim text.