IP Library › Granted Patent US 10,324,861
Granted Patent B2
US 10,324,861 · App. 15/015,274 · Granted Jun 18, 2019

Systems and methods for coherence in clustered cache hierarchies

Inventors: Alberto Ros (Cartagena, ES); Stefanos Kaxiras (Uppsala, SE)
Assignee: ETA SCALE AB
G06F12/1045G06F12/084G06F12/0808G06F12/0811G06F12/0815G06F12/0891G06F12/0897G06F2212/1021G06F2212/6042G06F2212/684
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 10,324,861
App. No.
15/015,274
Granted
Jun 18, 2019
Kind
B2
Abstract

According to embodiments described herein, the hierarchical complexity for coherence protocols associated with clustered cache architectures can be encapsulated in a simple function, i.e., that of determining when a data block is shared entirely within a cluster (i.e., a sub-tree of the hierarchy) and is private from the outside. This allows embodiments to eliminate complex recursive coherence operations that span the hierarchy and instead employ simple coherence mechanisms such as self-invalidation and write-through but which are restricted to operate where a data block is shared. Thus embodiments recognize that, in the context of clustered cache hierarchies, data can be shared entirely within one cluster but can be private (unshared) to this cluster when viewed from the perspective of other clusters. This characteristic of the data can be determined and then used to locally simplify coherence protocols.

Claims (15)

1. A method for cache coherence in a computer system having a clustered cache hierarchy, the method comprising:

storing a common shared level (CSL) value for a data block stored in the clustered cache hierarchy;

when the data block is written, using a coherence mechanism to update a status of the data block for one or more caches within a cache cluster indicated by the CSL value and treating the data block as private for one or more caches outside of the cache cluster indicated by the CSL value,

detecting a translation look-aside buffer (TLB) miss associated with the data block; and

determining a new CSL value for the data block in response to the detecting step.

2. The method of claim 1 , wherein the clustered cache hierarchy includes at least three levels of cache memories wherein a first level, which is connected to multiple processor cores, includes at least three level one cache memories and wherein in each level with at least two cache memories, at least a pair of the at least two cache memories are connected to, and share, one of the cache memories at a higher level that is closer to main memory.

3. The method of claim 1 , wherein the step of using a cache coherence mechanism further comprises:

self-invalidating the data block in the one or more caches within the cache cluster indicated by the CSL value.

4. The method of claim 3 , wherein the one or more caches within the cache cluster indicated by the CSL value which are self-invalidated include each level one cache and, when at least one intermediate cache is present in the cluster, each intermediate cache in the cluster.

5. The method of claim 1 , wherein the CSL value and an identity of a core which first accessed the data block defines the cluster within the clustered cache hierarchy.

6. The method of claim 5 , wherein the cluster includes one or more level two caches and one or more level 3 caches, wherein when the CSL value is three or higher, the one or more level 2 caches within the cluster are intermediate caches.

7. The method of claim 1 , wherein the step of determining a new CSL value further comprises:

retrieving a stored identity of a core which is a first owner of the data block;

determining an identity of another core which attempted to access the data block causing the TLB miss; and

determining to be said new CSL value, a lowest common cache level of the core which is the first owner of the data block and the another core.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2025
From: ETA SCALE AB
To: ARRAY CACHE TECHNOLOGIES LLC
Reel/Frame 071331/0090 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2016
From: ROS, ALBERTO; KAXIRAS, STEFANOS
To: ETA SCALE AB
Reel/Frame 039131/0420 →
Continuity (2)
Provisional Application 62112347 · Feb 5, 2015
Related Publication 20160232107A1 · Aug 11, 2016