1 - Software serializes all shared updates through a mutex.
2 - The serialization provides each process with update integrity.
3 - Current multiprocessor hardware does not serialize the mutex. The mutex is executed in each cache.
4 - The non-serialized implementation of the mutex requires binomial coherence to synchronize caches.
5 - Serializing the mutex synchronizes the processors and enables a parallel multi-core architecture.
The software functions because it expects the mutex to be serialized. The result is Thread Safe Hardware.
Those who study Java concurrency or thread safety will understand 1 & 2.
Those who study computer architecture will understand 3 & 4.
This is an algorithm. With a few other changes, it extends the benefit of the mutex to the hardware.
It modifies memory management but not software, therefore it works for any multitasking system.
This computer design does not need to be modeled to be understood.It requires two things:
1 - The mutex must be atomic and it is currently pseudo-atomic.2 - The hardware must be able to identify shared data.
The result is:
A cache containing private data; does not require coherence.
Shared data that is read-through and write-through; does not require coherence.
The mutex is execute-through, does not require coherence.