Modern multiprocessors have many levels of caching, often specific to a certain core. With data stored in multiple cores’ cache, it is important that they are consistent with each other, i.e., we have cache coherence. It’s the job of a cache coherency protocol to ensure that caches are consistent.