
Image source: https://hazelcast.com/glossary/memory-caching
UPDATED 14 OCT. 2020
Cache Coherence:
This is a means of ensuring consistency in Caching. This is a big concern in a multicore environment due to the presence of distributed L1 and L2 caches. The problem here is that each core maintains its own cache, and the copy of data in a given core's cache may sometimes not be the latest version, and this poses the problem of data inconsistency.
There are essentially two mechanisms for ensuring Cache coherence. These mechanisms are what is known as Cache Coherence Schemes.
Software Cache Coherent Scheme
Software cache coherence schemes attempt to avoid the need for additional hardware circuitry and logic by relying on the compiler and operating system to deal with the problem. All the rules for ensuring cache coherence is embedded in a software code.
Hardware Cache Coherence Scheme
In hardware schemes, the cache coherence logic is implemented in hardware. The hardware has encoded in it all the needed data localities and caching strategies. There is minimal need for additional software code or instructions as the embedded system logic controller handles that already.
If you found this answer helpful, please upvote and share with other students in your network.