Different Types of Snoop Filter
In the context of Cache coherent interconnects, snoop filters keep track of cached data locations across multiple coherent processing elements (PEs), allowing a Coherent Network on Chip (NoC) interconnect to directly target the necessary caches for coherency management operations vs broadcasting to all caches on the system on chip (SoC).
Each type of snoop filter has its own set of advantages and trade-offs including complexity and hence area overhead and scalability:
- Bloom Filter-Based Snoop Filters: These are generally very area-efficient and are implemented around a probabilistic data structure that tests whether an element is a member of a set. They can very quickly check if a cache line might be present in a particular cache, reducing the need for snoop broadcasts. However, a disadvantage of this type of filter is that it may return false positives so strike a balance between efficiency and the risk of degraded system performance through unnecessary snoops.
- Tagged Snoop Filters: Keep a tag directory of all cache lines stored in the local caches of each PE, and can directly identify whether a specific cache line is present in a cache and its coherence state. However, the scalability of this type of snoop filter is limited due to its simpler design.
- Selective Snoop Filters: Can be complex and costly to implement but apply selective strategies to reduce snoop traffic, deciding on a per-access basis whether to broadcast a snoop based on historical access patterns, the likelihood of data being in certain caches, or other heuristics. Selective snoop filters can adapt dynamically to changing workload patterns.
- Directory-Based Snoop Filters: Maintain a directory that lists the cache lines stored in each PEs cache and their corresponding states. When a PE needs to read or write a memory location, the directory is consulted to determine which caches, if any, hold copies of that line and its state.
- Hybrid Snoop Filters: These are the most complex snoop filter implementations but can be used to balance accuracy and the amount of snoop traffic generated if enough is known about the target application and its workloads.
Arteris Ncore Coherent NoC
Arteris Ncore uses directory-based snoop filters, which are designed to be highly scalable and significantly reduce snoop traffic in larger systems. Ncore implements a snoop-filter that offers multiple directory-based snoop filters, each assignable to specific PEs that may have common characteristics, maximizing efficiency and area compared to a monolithic directory-based snoop filter.
We chose the Arteris Ncore cache coherent interconnect because of its unique proxy caches and their ability to underpin high-performance, low power, cache coherent clusters of our unique AI accelerators. And with our prior experience using FlexNoC and the FlexNoC FuSa Option for functional safety, we trust Arteris to be the highest performing and safest choice for ISO 26262-compliant NoC IP.
Elchanan Rushinek, Vice President of Engineering, Mobileye