What is a snoop filter?
In a cache‑coherent network‑on‑chip (NoC) system, snoop filters track the locations of cached data across multiple coherent processing elements (PEs). Instead of broadcasting a snoop request to every cache in an SoC, the snoop filter directs coherence actions only to caches that may actually contain the relevant cache line. This helps reduce coherence traffic, improve scalability, and decreases power usage in multi‑core architectures.Different types of snoop filter
Various snoop filter architectures are used in coherent systems, each offering different trade‑offs in accuracy, area, complexity, and scalability:Bloom filter‑based snoop filters
Bloom‑filter snoop filters use probabilistic data structures to determine whether a cache line may be present in a cache. They are extremely area efficient and reduce broadcast snoops. However, they can produce false positives, which may still trigger unnecessary snoop operations.Tagged snoop filters
Tagged snoop filters maintain a tag directory of all cache lines stored in each PE’s local cache. They provide high accuracy because they explicitly track presence and coherence state. Their simpler structure limits scalability in very large multi‑core systems.Selective snoop filters
Selective snoop filters dynamically decide whether to broadcast or target snoops based on heuristics, access history or predicted data locality. While powerful, they can be complex and costly to implement due to their adaptive nature.Directory‑based snoop filters
Directory‑based snoop filters maintain a directory that records which caches hold specific lines and their coherence states. When a PE accesses a memory location, the directory identifies the exact caches that must be updated or invalidated. This approach scales efficiently in large, coherent multiprocessor systems and helps reduce snoop traffic significantly.Hybrid snoop filters
Hybrid snoop filters combine multiple filtering strategies to balance accuracy, traffic reduction, and area cost. They are typically used in domain‑specific architectures where workload characteristics are well understood.Arteris Ncore coherent NoC
Arteris Ncore uses scalable directory‑based snoop filters designed to minimize snoop traffic in large, heterogeneous systems. The architecture allows multiple directory instances, each assignable to a group of processing elements with similar behaviors. This partitioned approach helps improve efficiency, reduce area compared to a monolithic directory structure, and supports high‑performance cache‑coherent designs.In summary
Snoop filters are essential for maintaining efficient cache coherence in multi‑core SoCs. Whether bloom‑based, tagged, selective, directory‑driven, or hybrid, each type offers unique trade‑offs. Arteris Ncore maximizes scalability and coherence performance through advanced directory‑based snoop filtering tailored to modern heterogeneous processing clusters.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