IP Library › Granted Patent US 12,399,829
Granted Patent B2
US 12,399,829 · App. 18/325,863 · Granted Aug 26, 2025

Dynamic extension of cache coherence snoop filter entry

Inventor: Eric Francis Robinson (Raleigh, NC)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0815G06F12/0831G06F2212/1044
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,399,829
App. No.
18/325,863
Granted
Aug 26, 2025
Kind
B2
Abstract

The described technology provides a method including generating a base snoop filter (SFT) entry for a coherence granule (cogran) in agent cache, the base SFT entry comprising a tracking_information field configured to track a plurality of agent IDs, each agent ID identifying an agent that holds a copy of the cogran, determining a number of agents that hold the copy of the cogran, comparing the and number of agents that store the copy of the cogran with number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry; and in response to determining that the number of agents that hold the copy of the cogran is greater than the number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry, selecting a second SFT entry as an extra SFT entry, wherein the extra SFT entry is configured to store a portion of tracking vector wherein each bit of the tracking vector indicates cache validity state of the cogran for a related agent.

Claims (33)

1. A method, comprising:

generating a base snoop filter (SFT) entry for a coherence granule (cogran) in agent cache, the base SFT entry comprising a tracking_information field configured to track a plurality of agent IDs, each agent ID identifying an agent that stores a copy of the cogran;

determining a number of agents that hold the copy of the cogran;

comparing the number of agents that store the copy of the cogran with number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry; and

in response to determining that the number of agents that store the copy of the cogran is greater than the number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry, selecting a second SFT entry as an extra SFT entry, wherein the extra SFT entry is configured to store a portion of tracking vector wherein each bit of the tracking vector indicates cache validity state of the cogran for a related agent, adding an extra_entry field to the base SFT entry and setting the value of the extra_entry field to the second entry selected as the extra SFT entry, and setting an entry_state field of the base SFT entry to searchable.

2. The method of claim 1 , wherein the extra SFT entry is configured to store a higher portion of tracking vector.

3. The method of claim 2 , further comprising storing a lower portion of the tracking vector in the tracking_information field of the base SFT entry.

4. The method of claim 1 , wherein selecting the second SFT entry as an extra SFT entry further comprising selecting a pre-assigned physical entry as the extra SFT entry for the base SFT entry.

5. The method of claim 1 , further comprising:

in response to generating the extra SFT entry, setting state of a tracking_mode field of the base SFT entry to VECTOR.

6. The method of claim 1 , wherein a tracking_mode field of a logical SFT entry switches between one of AID, IMPRECISE, and VECTOR state, wherein the logical SFT entry comprises the base SFT entry and the extra SFT entry.

7. One or more physically manufactured tangible computer-readable storage media, encoding computer-executable instructions for executing on a computer system a computer process, the computer process comprising:

generating a base snoop filter (SFT) entry for a coherence granule (cogran) in agent cache, the base SFT entry comprising a tracking_information field configured to track a plurality of agent IDs, each agent ID identifying an agent that holds a copy of the cogran;

determining a number of agents that hold the copy of the cogran;

comparing the number of agents that store the copy of the cogran with number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry; and

in response to determining that the number of agents that hold the copy of the cogran is greater than the number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry, selecting a second SFT entry as an extra SFT entry, wherein the extra SFT entry is configured to store a portion of tracking vector wherein each bit of the tracking vector indicates cache validity state of the cogran for a related agent, adding an extra_entry field to the base SFT entry and setting the value of the extra_entry field to the second entry selected as the extra SFT entry, and setting an entry_state field of the base SFT entry to searchable.

8. The one or more physically manufactured tangible computer-readable storage media of manufacture of claim 7 , wherein the extra SFT entry is configured to store a higher portion of tracking vector.

9. The one or more physically manufactured tangible computer-readable storage media of claim 8 , wherein the computer process further comprising storing a lower portion of the tracking vector in the tracking_information field of the base SFT entry.

10. The one or more physically manufactured tangible computer-readable storage media of claim 7 , wherein selecting the second SFT entry as an extra SFT entry further comprising selecting a pre-assigned physical entry as the extra SFT entry for the base SFT entry.

11. The one or more physically manufactured tangible computer-readable storage media of claim 7 , wherein the computer process further comprising in response to generating the extra SFT entry, setting state of a tracking_mode field of the base SFT entry to VECTOR.

12. The one or more physically manufactured tangible computer-readable storage media of claim 8 , wherein a tracking_mode field of a logical SFT entry switches between one of AID, IMPRECISE, and VECTOR state, wherein the logical SFT entry comprises the base SFT entry and the extra SFT entry.

13. 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:

generating a base snoop filter (SFT) entry for a coherence granule (cogran) in agent cache, the base SFT entry comprising a tracking_information field configured to track a plurality of agent IDs, each agent ID identifying an agent that holds a copy of the cogran;

determining a number of agents that hold the copy of the cogran;

comparing the number of agents that store the copy of the cogran with number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry; and

in response to determining that the number of agents that hold the copy of the cogran is greater than the number of the plurality of agent IDs tracked in the tracking_information field of the base SFT entry, selecting a second SFT entry as an extra SFT entry, wherein the extra SFT entry is configured to store a portion of tracking vector wherein each bit of the tracking vector indicates cache validity state of the cogran for a related agent, adding an extra_entry field to the base SFT entry and setting the value of the extra_entry field to the second entry selected as the extra SFT entry, and setting an entry_state field of the base SFT entry to searchable.

14. The system of claim 13 , wherein the extra SFT entry is configured to store a higher portion of tracking vector.

15. The system of claim 13 , wherein the computer process further comprising storing a lower portion of the tracking vector in the tracking_information field of the base SFT entry.

16. The system of claim 14 , wherein selecting the second SFT entry as an extra SFT entry further comprising selecting a pre-assigned physical entry as the extra SFT entry for the base SFT entry.

17. The system of claim 13 , wherein a tracking_mode field of a logical SFT entry switches between one of AID, IMPRECISE, and VECTOR state, wherein the logical SFT entry comprises the base SFT entry and the extra SFT entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: ROBINSON, ERIC FRANCIS
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064228/0434 →
Continuity (1)
Related Publication 20240403218A1 · Dec 5, 2024
References Cited (52)
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 applicant]
US 20170286299A1 · Sury · 2017 [cited by examiner]
US 20190073304A1 · Jiang · 2019 [cited by applicant]
US 20200042446A1 · Mittal · 2020 [cited by applicant]
US 20200218657A1 · Forrest · 2020 [cited by applicant]
US 20200250098A1 · Ma · 2020 [cited by applicant]
US 20210294743A1 · Randall · 2021 [cited by applicant]
US 20220100672A1 · Apte · 2022 [cited by applicant]
US 20220164288A1 · Ramagiri · 2022 [cited by examiner]
US 20220308999A1 · Randall · 2022 [cited by applicant]
US 20230100746A1 · Loison · 2023 [cited by applicant]
US 20230139212A1 · Randall · 2023 [cited by applicant]
US 20240403219A1 · Kaseridis · 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]
U.S. Appl. No. 18/340,359, filed Jun. 23, 2023. [cited by applicant]
U.S. Appl. No. 18/336,637, filed Jun. 16, 2023. [cited by applicant]
U.S. Appl. No. 18/326,147, filed May 31, 2023. [cited by applicant]
U.S. Appl. No. 18/336,694, filed Jun. 16, 2023. [cited by applicant]
A. Moshovos, “RegionScout: Exploiting Coarse Grain Sharing in Snoop-Based Coherence”, 32nd International Symposium on Computer Architecture (ISCA'05)—IEEE, Jun. 4, 2005, pp. 234-245. [cited by applicant]
Ehsan Atoofian, “Adaptive Snoop Granularity and Transactional Snoop Filtering in Hardware Transactional Memory”, Canadian Journal of Electrical and Computer Engineering—IEEE, vol. 37, Issue 2, 2014, pp. 76-85. [cited by applicant]
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]
Moshovos, et al., “JETTY: filtering snoops for reduced energy consumption in SMP servers”, Proceedings HPCA Seventh International Symposium on High-Performance Computer Architecture—IEEE, Jan. 19, 2001, pp. 85-96. [cited by applicant]
Non-Final Office Action mailed on Jul. 8, 2024, in U.S. Appl. No. 18/326,147, 12 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]
Zebchuk, et al., “Multi-grain coherence directories”, MICRO-46: Proceedings of the 46th Annual IEEE/ACM International Symposium on Microarchitecture, Dec. 7, 2013, pp. 359-370. [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]
Notice of Allowance mailed on Oct. 23, 2024, in U.S. Appl. No. 18/326,147, 9 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. 10, 2025, in U.S. Appl. No. 18/326,147, 05 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 Feb. 14, 2025, in U.S. Appl. No. 18/336,637 10 pages. [cited by applicant]
Notice of Allowance mailed on Jun. 10, 2025, in U.S. Appl. No. 18/336,694, 10 pages. [cited by applicant]