IP Library › Granted Patent US 12,360,903
Granted Patent B2
US 12,360,903 · App. 18/326,147 · Granted Jul 15, 2025

Cache coherence using dynamic coarse-grained tracking

Inventors: Dimitrios Kaseridis (Austin, TX); Mukund Ramakrishna (Austin, TX)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0828G06F12/0831G06F2212/621
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,360,903
App. No.
18/326,147
Granted
Jul 15, 2025
Kind
B2
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.

Claims (44)

1. 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 a sector size is less than a predetermined maximum sector size.

2. The method of claim 1 , 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.

3. The method of claim 2 , wherein in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries and determining that none of the plurality of SFT entries can be converted to an aggregated entry:

allocating a new SFT entry to the incoming cacheline; and

setting the value of the sector size of the new SFT entry to minimum_entry_size.

4. The method of claim 1 , wherein the value of the predetermined maximum sector size is programmable by setting one or more registers.

5. The method of claim 1 , 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.

6. The method of claim 5 , wherein selecting one of the candidate SFT entries further comprises selecting one of the candidate SFT entries with the smallest value of the sector size.

7. The method of claim 1 , further comprising:

in response to determining that the incoming cacheline is part of an existing sector of given one of the plurality of SFT entries, allocating the incoming cacheline to the given one of the plurality of SFT entries and increasing value of a tracking counter for the given one of the plurality of SFT entries.

8. 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.

9. The one or more physically manufactured computer-readable storage media of claim 8 , 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.

10. The one or more physically manufactured computer-readable storage media of claim 8 , 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.

11. The one or more physically manufactured computer-readable storage media of claim 8 , wherein selecting one of the candidate SFT entries further comprises selecting one of the candidate SFT entries with the smallest value of the sector size.

12. The one or more physically manufactured computer-readable storage media of claim 8 , wherein the computer process further comprising:

in response to determining that the incoming cacheline is part of an existing sector of given one of the plurality of SFT entries, allocating the incoming cacheline to the given one of the plurality of SFT entries and increasing value of a tracking counter for the given one of the plurality of SFT entries.

13. The one or more physically manufactured computer-readable storage media of claim 8 , wherein in response to determining that the incoming cacheline is not part of an existing sector of any of the plurality of SFT entries and determining that none of the plurality of SFT entries can be converted to an aggregated entry:

allocating a new SFT entry to the incoming cacheline; and

setting the value of the sector size of the new SFT entry to minimum_entry_size.

14. 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.

15. The system of claim 14 , 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.

16. The system of claim 14 , 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.

17. The system of claim 14 , wherein selecting one of the candidate SFT entries further comprises selecting one of the candidate SFT entries with the smallest value of the sector size.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2023
From: KASERIDIS, DIMITRIOS; RAMAKRISHNA, MUKUND
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063805/0868 →
Continuity (1)
Related Publication 20240403219A1 · Dec 5, 2024
References Cited (47)
US 6631447B1 · Morioka · 2003 [cited by applicant]
US 9223711B2 · Philip · 2015 [cited by applicant]
US 10592424B2 · Beard · 2020 [cited by applicant]
US 10657055B1 · Jalal · 2020 [cited by applicant]
US 11550720B2 · Ramagiri · 2023 [cited by applicant]
US 20020124144A1 · Gharachorloo · 2002 [cited by applicant]
US 20080147988A1 · Heller et al. · 2008 [cited by applicant]
US 20080209133A1 · Ozer · 2008 [cited by applicant]
US 20140052905A1 · Lih · 2014 [cited by applicant]
US 20150012719A1 · Tune · 2015 [cited by applicant]
US 20160062890A1 · Salisbury · 2016 [cited by applicant]
US 20160062893A1 · Tune · 2016 [cited by applicant]
US 20160117249A1 · Lin · 2016 [cited by applicant]
US 20170255557A1 · Robinson · 2017 [cited by examiner]
US 20170286299A1 · Sury · 2017 [cited by applicant]
US 20190073304A1 · Jiang · 2019 [cited by applicant]
US 20200042446A1 · Mittal · 2020 [cited by examiner]
US 20200218657A1 · Forrest · 2020 [cited by applicant]
US 20200250098A1 · Ma · 2020 [cited by examiner]
US 20210294743A1 · Randall · 2021 [cited by examiner]
US 20220100672A1 · Apte · 2022 [cited by applicant]
US 20220164288A1 · Ramagiri · 2022 [cited by applicant]
US 20220308999A1 · Randall · 2022 [cited by applicant]
US 20230100746A1 · Loison · 2023 [cited by examiner]
US 20230139212A1 · Randall · 2023 [cited by applicant]
US 20240403218A1 · Robinson · 2024 [cited by applicant]
US 20240419593A1 · Ramakrishna · 2024 [cited by applicant]
US 20240419594A1 · Panavich · 2024 [cited by applicant]
US 20240427703A1 · Robinson · 2024 [cited by applicant]
WO 2017155659A1 · 2017 [cited by applicant]
Moshovos et al. “JETTY: Filtering Snoops for Reduced Energy Consumption in SMP Servers.” Jan. 2001. IEEE. HPCA 2001. pp. 85-96. [cited by examiner]
Andreas Moshovos. “RegionScout: Exploiting Coarse Grain Sharing in Snoop-Based Coherence.” Jun. 2005. IEEE. ISCA 2005. [cited by examiner]
Zebchuk et al. “Multi-Grain Coherence Directories.” Dec. 2013. ACM. MICRO'46. pp. 359-370. [cited by examiner]
Ehsan Atoofian. “Adaptive Snoop Granularity and Transactional Snoop Filtering in Hardware Transactional Memory.” Jul. 2014. IEEE. Canadian Journal of Electrical and Computer Engineering. vol. 37. pp. 76-85. [cited by examiner]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/029558, Aug. 30, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/030161, Jul. 24, 2024, 12 pages. [cited by applicant]
Non-Final Office Action mailed on Jun. 10, 2024, in U.S. Appl. No. 18/325,863, 13 pages. [cited by applicant]
Notice of Allowance mailed on Aug. 27, 2024, in U.S. Appl. No. 18/340,359, 08 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/033323, Oct. 11, 2024, 11 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/033480, Sep. 10, 2024, 15 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/034880, Oct. 14, 2024, 14 pages. [cited by applicant]
Non Final Office Action mailed on Sep. 26, 2024, in U.S. Appl. No. 18/336,637, 09 pages. [cited by applicant]
Final Office Action mailed on Dec. 11, 2024, in U.S. Appl. No. 18/325,863, 13 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 14, 2025, in U.S. Appl. No. 18/336,637 10 pages. [cited by applicant]
Non-Final Office Action mailed on Feb. 13, 2025, in U.S. Appl. No. 18/336,694, 27 pages. [cited by applicant]
Notice of Allowance mailed on Feb. 13, 2025, in U.S. Appl. No. 18/340,359, 05 pages. [cited by applicant]
Notice of Allowance mailed on Apr. 28, 2025, in U.S. Appl. No. 18/325,863, 8 pages. [cited by applicant]