The cache consistency protocol is a natural need to keep cache consistency. The cache is inconsistent because the same data has multiple copies in multiple caches, and if the data is written in one cache and another cache is not known, there will be inconsistencies. The most basic method for multi-core shared caches is write invalidation and write update. Each kernel of the proprietary cache to listen to the bus at all times the write cache request, once you hear the bus to write the cache block own belly also has, the cache block in their own belly is invalidated (write invalidation), until the next time the block cache miss again load the latest data. Or in the bus to update a piece of time, just own belly also has a copy of the block, by the way the internal cache block also updated (write update), you can ensure that they have been the latest data.
In terms of hardware theory, the main thing is to do the writing operation instantly and instantly pass to all nuclear/cache. Write operations must be broadcast out, as long as the notification in place, there is a way.
Can a process run on multiple cores?