IP Library › Granted Patent US 12,332,794
Granted Patent B2
US 12,332,794 · App. 18/336,637 · Granted Jun 17, 2025

Cache coherence using adaptive coherency tracking based on cacheline size and cacheline sector size

Inventors: Mukund Ramakrishna (Austin, TX); Dimitrios Kaseridis (Austin, TX)
Assignee: Microsoft Technology Licensing, LLC
G06F12/0817G06F2212/62
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,332,794
App. No.
18/336,637
Granted
Jun 17, 2025
Kind
B2
Abstract

The described technology provides a method including determining a cacheline sector associated with a snoop filter (SFT) having a plurality of SFT entries, determining a number of cachelines in the identified cacheline sector that are cached by one or more agents, and determining, based on the number of cachelines in the identified cacheline sector that are cached by one or more agents, a number of bits in a bit vector (BV) of one or more of the plurality of SFT entries, wherein the number of bits is required to track the one or more agents.

Claims (36)

1. A method, comprising:

determining a cacheline sector associated with a snoop filter (SFT) having a plurality of SFT entries;

determining a number of cachelines in the identified cacheline sector that are cached by one or more agents;

determining, based on the number of cachelines in the identified cacheline sector that are cached by one or more agents, a number of bits in a bit vector (BV) of one or more of the plurality of SFT entries, wherein the number of bits is required to track the one or more agents; and

determining a number of total agents N that may be tracked by the SFT based on size of the cacheline sector associated with the SFT.

2. The method of claim 1 , further comprising determining the number of total agents N that may be tracked by the SFT based on: a total number of cores tracked by the SFT, size of cacheline, and the size of the cacheline sector associated with the SFT.

3. The method of claim 2 , further comprising:

comparing the number of total agents N that may be tracked by the SFT to a required number of agents to be tracked by the SFT; and

in response to determining that the number of total agents N that may be tracked by the SFT is at or below the required number of agents to be tracked by the SFT, dynamically reducing the size of the cacheline sector associated with the SFT.

4. The method of claim 3 , further comprising:

in response to determining that the number of total agents N that may be tracked by the SFT is at above the required number of agents to be tracked by the SFT, dynamically increasing the size of the cacheline sector associated with the SFT.

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

determining a cacheline sector associated with a snoop filter (SFT) having a plurality of SFT entries;

determining a number of cachelines in the identified cacheline sector that are cached by one or more agents;

determining, based on the number of cachelines in the identified cacheline sector that are cached by one or more agents, a number of bits in a bit vector (BV) of one or more of the plurality of SFT entries, wherein the number of bits are required to track the one or more agents; and

determining a number of total agents N that may be tracked by the SFT based on size of the cacheline sector associated with the SFT.

6. The one or more physically manufactured tangible computer-readable storage media of manufacture of claim 5 , wherein the computer process further comprising determining a number of total agents N that may be tracked by the SFT based on: a total number of cores tracked by the SFT, size of cacheline, and the size of the cacheline sector associated with the SFT.

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

comparing the number of total agents N that may be tracked by the SFT to a required number of agents to be tracked by the SFT; and

in response to determining that the number of total agents N that may be tracked by the SFT is at or below the required number of agents to be tracked by the SFT, dynamically reducing the size of the cacheline sector associated with the SFT.

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

in response to determining that the number of total agents N that may be tracked by the SFT is at above the required number of agents to be tracked by the SFT, dynamically increasing the size of the cacheline sector associated with the SFT.

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

determining a cacheline sector associated with a snoop filter (SFT) having a plurality of SFT entries;

determining a number of cachelines in the identified cacheline sector that are cached by one or more agents;

determining, based on the number of cachelines in the identified cacheline sector that are cached by one or more agents, a number of bits in a bit vector (BV) of one or more of the plurality of SFT entries, wherein the number of bits is required to track the one or more agents; and

determining a number of total agents N that may be tracked by the SFT based on size of the cacheline sector associated with the SFT.

10. The system of claim 9 , wherein the computer process further comprising determining a number of total agents N that may be tracked by the SFT based on: a total number of cores tracked by the SFT, size of cacheline, and the size of the cacheline sector associated with the SFT.

11. The system of claim 10 , wherein the computer process further comprising:

comparing the number of total agents N that may be tracked by the SFT to a required number of agents to be tracked by the SFT; and

in response to determining that the number of total agents N that may be tracked by the SFT is at or below the required number of agents to be tracked by the SFT, dynamically reducing the size of the cacheline sector associated with the SFT.

12. The system of claim 10 , wherein the computer process further comprising:

in response to determining that the number of total agents N that may be tracked by the SFT is at above the required number of agents to be tracked by the SFT, dynamically increasing the size of the cacheline sector associated with the SFT.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2024
From: RAMAKRISHNA, MUKUND; KASERIDIS, DIMITRIOS
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 067579/0942 →
Continuity (1)
Related Publication 20240419593A1 · Dec 19, 2024
References Cited (53)
US 6631447B1 · Morioka · 2003 [cited by examiner]
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 applicant]
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 examiner]
US 20220164288A1 · Ramagiri · 2022 [cited by applicant]
US 20220308999A1 · Randall · 2022 [cited by applicant]
US 20230100746A1 · Loison · 2023 [cited by applicant]
US 20230139212A1 · Randall · 2023 [cited by applicant]
US 20240403218A1 · Robinson · 2024 [cited by applicant]
US 20240403219A1 · Kaseridis · 2024 [cited by applicant]
US 20240419594A1 · Panavich · 2024 [cited by applicant]
US 20240427703A1 · Robinson · 2024 [cited by applicant]
WO 2017155659A1 · 2017 [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]
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]
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]
Final Office Action mailed on Dec. 11, 2024, in U.S. Appl. No. 18/325,863, 13 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]
Notice of Allowance mailed on Dec. 5, 2024, in U.S. Appl. No. 18/340,359, 2 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]
U.S. Appl. No. 18/325,863, filed May 30, 2023. [cited by applicant]
U.S. Appl. No. 18/340,359, filed Jun. 23, 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]
Notice of Allowance mailed on Feb. 13, 2025, in U.S. Appl. No. 18/340,359, 05 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 Apr. 28, 2025, in U.S. Appl. No. 18/325,863, 8 pages. [cited by applicant]