Cache coherence using dynamic coarse-grained tracking
AssigneeMicrosoft Technology Licensing, LLC
InventorsDimitrios KASERIDIS, Mukund RAMAKRISHNA
Life of this patent
Estimating the term…
Abstract
The described technology provides a method including receiving a request for allocating an incoming cacheline to one of a plurality of SFT entries in a snoop filter (SFT), performing a tag lookup function for a tag of the incoming cacheline in the SFT, in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries, finding one or more candidate SFT entries, wherein the candidate SFT entries can be converted to an aggregated entry, selecting one of the candidate SFT entries, and allocating the incoming cacheline to the selected SFT entry.
Claims20
A method, comprising:
- receiving a request for allocating an incoming cacheline to one of a plurality of SFT entries in a snoop filter (SFT);
- performing a tag lookup function for a tag of the incoming cacheline in the SFT,
- in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries, finding one or more candidate SFT entries, wherein the candidate SFT entries can be converted to an aggregated entry;
- selecting one of the candidate SFT entries;
- and
- allocating the incoming cacheline to the selected SFT entry,
- wherein finding one or more candidate SFT entries further comprises finding one or more candidate SFT entries wherein the sector size is less than a predetermined maximum sector size.
(canceled)
One or more physically manufactured computer-readable storage media, encoding computer-executable instructions for executing on a computer system a computer process, the computer process comprising:
- receiving a request for allocating an incoming cacheline to one of a plurality of SFT entries in a snoop filter (SFT);
- performing a tag lookup function for a tag of the incoming cacheline in the SFT,
- in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries, finding one or more candidate SFT entries, wherein the candidate SFT entries can be converted to an aggregated entry;
- selecting one of the candidate SFT entries;
- and
- allocating the incoming cacheline to the selected SFT entry,
- wherein the computer process further comprising increasing value of a sector size in the selected SFT entry to indicate inclusion of the new cacheline in the SFT, wherein the sector size is part of SFT entry metadata.
(canceled)
A system comprising:
- memory;
- one or more processor units;
- and
- a cache coherence system stored in the memory and executable by the one or more processor units, the cache coherence system encoding computer-executable instructions on the memory for executing on the one or more processor units a computer process, the computer process comprising:
- receiving a request for allocating an incoming cacheline to one of a plurality of SFT entries in a snoop filter (SFT);
- performing a tag lookup function for a tag of the incoming cacheline in the SFT,
- in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries, finding one or more candidate SFT entries, wherein the candidate SFT entries can be converted to an aggregated entry;
- selecting one of the candidate SFT entries;
- and
- allocating the incoming cacheline to the selected SFT entry,
- wherein selecting one of the candidate SFT entries further comprises evaluating value of sector size stored in the metadata of the plurality of SFT entries, the sector size value of a given SFT entry indicating a size of a sector being tracked by the given SFT entry.
(canceled)
Dependencies are inferred from the claim text.