Due to the increasing demand for high-performance and energy-efficient computation in devices like smartphones, automotive control systems, and IoT devices, many embedded systems today feature multiprocessor architectures, also known as MultiProcessor System-on-Chips (MPSoCs). In this context, we can see how Snooping Cache Coherence protocol works.

Why use it?
The need for such a protocol arises when multiple processors have cached copies of the same memory location.
Shared Data Consistency: The need for such a protocol arises when multiple processors have cached copies of the same memory location.
Real-time Systems: For systems with real-time constraints, it’s imperative to have a consistent and up-to-date view of data. Inconsistent data could lead to missed deadlines or incorrect system responses. Snooping ensures that all processors work with the most recent data.
Snooping cache coherence protocols are employed in multiprocessor systems to maintain coherence among caches. The primary idea is that every cache “snoops” or monitors the shared communication medium (usually the bus) to check for transactions that might affect the state of its locally cached data. Based on the observed transactions, each cache takes appropriate action to ensure coherence.
How does it work?
* When a processor issues a read or write operation, this transaction is broadcasted over the bus.
* All other caches snoop the bus to see if they have a copy of the data being read or written.
* If they do, they take the necessary action to ensure data consistency, like updating or invalidating their local copy.
A cache line in snooping protocols can be in one of several states, the most common ones being:
Invalid (I): The data is not reliable (i.e., it doesn’t match main memory).
Shared (S): The data matches main memory and may be stored in other caches too.
Modified (M): The data has been modified and is different from the data in main memory.
There are two primary snooping protocols:
πΎππππ-π°ππππππ
πππ: When a processor writes to a location, all other caches that have this location invalidate their copies. This ensures only one valid copy exists when the location is being modified.
πΎππππ-πΌππ
πππ (or Write-Broadcast): When a processor writes to a location, it broadcasts the data, and all other caches that have this location update their copies.
This approach is straightforward and effective for smaller systems but can face scalability challenges as system size grows.
Learn more about Snoop Based Cache Coherence Protocol here:
https://ntnuopen.ntnu.no/ntnu-xmlui/handle/11250/2370790
https://ieeexplore.ieee.org/abstract/document/1690023/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
An Article by: Yashwanth Naidu Tikkisetty
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
