A Problem
Given a multiprocessor with a scalable interconnection network using Write-Invalidate protocol
Given the following sequence (executed in ORDER), P1, P2, P3 all have ‘Shared Clean’ versions of A, B
- P1: …store A,….
- P2: …, load A, store B, ….
- P3: …, load B, load A, ….
When ‘P1: store A’ is executed, invalidation messages are sent. P2 gets the invalidation message, so its ‘Load A’ returns the correct value.
If “P3: load A’ is executed BEFORE it sees the invalidation, then P3 will get wrong value for A!!