3 ms·
> the only reason to make such a requirement is that we want to use main memory as a mechanism to communicate between cores. For a very liberal definition of "
by yuliyp 6y ago
> the only reason to make such a requirement is that we want to use main memory as a mechanism to communicate between cores.
For a very liberal definition of "communicate" that statement is true. The only reason for multiple threads to be sharing an address space is if they mutually depend on how the others are interacting with the data in there.
The reason for cross-core cache invalidation is that otherwise it becomes impossible to reason about behavior of any data structures written and read by different threads. Imagine trying to build multiple consumer queue without any cache coherence protocols.