IP Library Granted Patent US 12,705,182
Granted Patent B2
US 12,705,182 · App. 19/059,355 · Granted Aug 11, 2026

Processing cache evictions in a directory snoop filter with ECAM

Inventors: Madhavi Kondapaneni (Cupertino, CA); Rabin Sugumar (Sunnyvale, CA)
Assignee: Akeana, Inc.
G06F12/0891G06F12/0811G06F12/0831
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,705,182
App. No.
19/059,355
Filed
Feb 21, 2025
Granted
Aug 11, 2026
Kind
B2
Examiner
YU, JAE UN
Art Unit
2138
USPC
711/118
Abstract

Techniques for maintaining cache coherency while sharing data among multiple processors are disclosed. Multiple coherent elements are arranged in an M×N mesh topology. An element can include a compute coherency block (CCB), and a coherency ordering agent (COA). The COAs include a directory snoop filter (DSF), an eviction content addressable memory (eCAM), a miss and snoop queue (MSQ), and a pipeline logic. The CCB and COA include functions for interfacing with a hierarchical cache and directory snoop filter (DSF). A CCB from within one of the multiple coherent elements issues a read request. The corresponding directory snoop filter (DSF) is inspected to determine if there is a slot (way) available for storing information pertaining to the read request. In the event that no eligible vacancies are present in the DSF, a multi-pass process for handling a capacity limit in a DSF is performed.

Claims (40)

1 . A processor-implemented method for sharing data comprising:

accessing a system-on-a-chip (SOC), wherein the SOC includes one or more compute coherency blocks (CCBs) and one or more coherency ordering agents (COAs), wherein a first COA within the one or more COAs comprises a directory snoop filter (DSF), an eviction content addressable memory (eCAM), a miss and snoop queue (MSQ), and a pipeline logic, wherein the DSF comprises N ways;

initiating, by a first CCB in the one or more CCBs, a read request to a first address, wherein the first address includes a first index, wherein the read request misses in the DSF, and wherein the DSF is occupied with a valid data at each way of the N ways corresponding to the first index;

selecting, by the DSF, a cache line for eviction, wherein the cache line includes the first index and a selected way within the N ways, wherein the first index and the selected way are stored in an entry within one or more entries of the eCAM;

saving the read request from the first CCB in the MSQ;

arbitrating, by the eCAM, for the pipeline logic within the COA, wherein the arbitrating includes selecting, by the eCAM, the entry to send to the pipeline logic;

sending, by the eCAM, to the pipeline logic, the entry, wherein the sending causes a cache line associated with the first index to be evicted from the DSF, wherein the cache line is associated with a second address, wherein the sending includes writing, to the eCAM, by the DSF, the second address, wherein the second address overwrites the entry in the eCAM, and wherein the sending includes generating, by the pipeline logic, a snoop of the second address;

mediating, by the MSQ, for the pipeline logic within the COA, wherein the mediating includes replaying, to the pipeline logic, by the MSQ, the read request to the first address; and

starting, by the COA, the read request to the first address, wherein the read request to the first address is handled coherently.

2 . The method of claim 1 wherein the replaying includes searching the DSF for the first address, wherein the searching produces a miss, and wherein the DSF saves information corresponding to the first address at a location, in the DSF, previously occupied by the second address.

3 . The method of claim 1 wherein the selecting is accomplished with a pseudorandom algorithm.

4 . The method of claim 1 further comprising holding another request to the first address from the one or more CCBs, wherein the holding is based on the second address that was written into the eCAM.

5 . The method of claim 4 further comprising saving, to an input FIFO within the COA, the another request to the first address.

6 . The method of claim 5 further comprising awakening the another request, wherein the awakening is based on deleting the second address that was written to the eCAM.

7 . The method of claim 1 further comprising receiving, from the one or more CCBs, one or more responses to the snoop of the second address.

8 . The method of claim 7 further comprising allowing another request, from the one or more CCBs, to the first address, wherein the allowing is based on deleting the entry of the eCAM.

9 . The method of claim 7 further comprising writing back, by the one or more CCBs, a dirty cache line corresponding to the second address.

10 . The method of claim 9 further comprising allowing another request, from the one or more CCBs, to the first address, wherein the allowing is based on deleting the second address that was written to the eCAM.

11 . The method of claim 1 wherein the initiating, the selecting, and the saving comprise a first COA pipeline pass.

12 . The method of claim 11 wherein the arbitrating and the sending comprise a second COA pipeline pass.

13 . The method of claim 12 wherein the mediating and the starting comprise a third COA pipeline pass.

14 . The method of claim 1 wherein the arbitrating includes a third address that was previously stored in the eCAM.

15 . The method of claim 1 wherein the snoop causes an owner of a dirty cache line associated with the second address to perform a writeback to memory.

16 . The method of claim 15 wherein the snoop forces one or more sharers of the second address to back invalidate a shared cache line corresponding to the second address.

17 . The method of claim 1 wherein the DSF includes owner and sharer information for each cache line within a hierarchical cache coupled to the first CCB.

18 . The method of claim 1 wherein the N ways in the DSF are not equal to a number of ways, in a last level cache (LLC) within the first CCB.

19 . The method of claim 1 wherein the SOC includes a network-on-a-chip (NOC), wherein the NOC includes an M×N mesh topology, wherein the M×N mesh topology includes a coherent tile at each point of the M×N mesh topology, and wherein a first coherent tile within the M×N mesh topology includes the first CCB and the first COA.

20 . The method of claim 19 wherein the first COA processes one or more incoming requests received on the M×N mesh topology.

21 . The method of claim 19 wherein the DSF includes owner and sharer information for each cache line within each hierarchical cache coupled to every CCB, within the one or more CCBs, that is coupled to the COA.

22 . A computer system for sharing data comprising:

a memory which stores instructions;

one or more processors coupled to the memory wherein the one or more processors, when executing the instructions which are stored, are configured to:

access a system-on-a-chip (SOC), wherein the SOC includes one or more compute coherency blocks (CCBs) and one or more coherency ordering agents (COAs), wherein a first COA within the one or more COAs comprises a directory snoop filter (DSF), an eviction content addressable memory (eCAM), a miss and snoop queue (MSQ), and a pipeline logic, wherein the DSF comprises N ways;

initiate, by a first CCB in the one or more CCBs, a read request to a first address, wherein the first address includes a first index, wherein the read request misses in the DSF, and wherein the DSF is occupied with a valid data at each way of the N ways corresponding to the first index;

select, by the DSF, a cache line for eviction, wherein the cache line includes the first index and a selected way within the N ways, wherein the first index and the selected way are stored in an entry within one or more entries of the eCAM;

save the read request from the first CCB in the MSQ;

arbitrate, by the eCAM, for the pipeline logic within the COA, wherein the arbitrating includes selecting, by the eCAM, the entry to send to the pipeline logic;

send, by the eCAM, to the pipeline logic, the entry, wherein the sending causes a cache line associated with the first index to be evicted from the DSF, wherein the cache line is associated with a second address, wherein the sending includes writing, to the eCAM, by the DSF, the second address, wherein the second address overwrites the entry in the eCAM, and wherein the sending includes generating, by the pipeline logic, a snoop of the second address;

mediate, by the MSQ, for the pipeline logic within the COA, wherein the mediating includes replaying, to the pipeline logic, by the MSQ, the read request to the first address; and

start, by the COA, the read request to the first address, wherein the read request to the first address is handled coherently.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2026
From: KONDAPANENI, MADHAVI; SUGUMAR, RABIN
To: AKEANA, INC.
Reel/Frame 075011/0427 →
Continuity (22)
Provisional Application 63745432 · Jan 15, 2025
Provisional Application 63735937 · Dec 19, 2024
Provisional Application 63730997 · Dec 12, 2024
Provisional Application 63719841 · Nov 13, 2024
Provisional Application 63714529 · Oct 31, 2024
Provisional Application 63702192 · Oct 2, 2024
Provisional Application 63699245 · Sep 26, 2024
Provisional Application 63691351 · Sep 6, 2024
Provisional Application 63690822 · Sep 5, 2024
Provisional Application 63687795 · Aug 28, 2024
Provisional Application 63679685 · Aug 6, 2024
Provisional Application 63679192 · Aug 5, 2024
Provisional Application 63653402 · May 30, 2024
Provisional Application 63641045 · May 1, 2024
Provisional Application 63640921 · May 1, 2024
Provisional Application 63570281 · Mar 27, 2024
Provisional Application 63564529 · Mar 13, 2024
Provisional Application 63563492 · Mar 11, 2024
Provisional Application 63563102 · Mar 8, 2024
Provisional Application 63556951 · Feb 23, 2024
Provisional Application 63556944 · Feb 23, 2024
Related Publication 20250272246A1 · Aug 28, 2025
References Cited (22)
US 6934809B2 · Tremblay et al. · 2005 [cited by applicant]
US 7506105B2 · Al-Sukhni et al. · 2009 [cited by applicant]
US 9672154B1 · Hsu et al. · 2017 [cited by applicant]
US 9830097B2 · Susarla et al. · 2017 [cited by applicant]
US 10013356B2 · Chou · 2018 [cited by applicant]
US 10031851B2 · Sundaram et al. · 2018 [cited by applicant]
US 10671394B2 · Britto et al. · 2020 [cited by applicant]
US 10929948B2 · Benthin et al. · 2021 [cited by applicant]
US 11163684B1 · Gray et al. · 2021 [cited by applicant]
US 11288405B2 · Belgarric et al. · 2022 [cited by applicant]
US 11385896B2 · Shulyak et al. · 2022 [cited by applicant]
US 11403099B2 · Cerny et al. · 2022 [cited by applicant]
US 11403225B2 · Zheng et al. · 2022 [cited by applicant]
US 11429529B2 · Hornung et al. · 2022 [cited by applicant]
US 11442863B2 · Shulyak et al. · 2022 [cited by applicant]
US 11474130B2 · Lentz et al. · 2022 [cited by applicant]
US 11486911B2 · Tuncer et al. · 2022 [cited by applicant]
US 20160062889A1 · Salisbury · 2016 [cited by examiner]
US 20220004639A1 · Yardi et al. · 2022 [cited by applicant]
US 20220029780A1 · Dafali · 2022 [cited by applicant]
US 20220197657A1 · Soundararajan et al. · 2022 [cited by applicant]
WO 2022117687A1 · 2022 [cited by applicant]