
11.11 Coherency Conflicts

The system model used in this example has the following components:
System Model
To describe the implications of a coherency conflict, this section uses a system model that is snooping, split-read, and bus-based; I/O is not considered in this model.
![]()
Figure 11-12 4-Processor System Illustrating Coherency Transactions
Given this system model, the following operations are described:
When a processor hits in the cache on a store to shared data, it issues an invalidate request that must be forwarded to the system bus. Before the store can be completed and the state changed to dirty exclusive, the invalidate request must be acknowledged.
At the end of the read response, each of the external agents in the system model indicate whether it was able to obtain the state of the cache line that is the target of the intervention; if successful, the external agent indicates either sharing or takeover. Takeover occurs when an external agent discovers that its processor has a dirty exclusive copy of the cache line that is the target of the read.
The read response is extended until all external agents have obtained the state of the cache line from their processors.
In this system model, the response from an external agent at the end of a read response depends on whether the read request was an ordinary read request or a read exclusive request. These are described in the following sections.
An external agent indicates both shared and takeover at the end of a read response if it finds that its processor has a copy of the requested cache line in the dirty exclusive state. Having indicated takeover, the external agent supplies the contents of the cache line (returned by the processor in response to the intervention request) over the bus to the read requester, and causes the processor to change the state of the cache line to shared. At the same time the cache line is supplied to the read requester, it is also written back to memory.
Generated with CERN WebMaker
Store
In this system model, when a processor misses in the primary and secondary caches on a store, it issues a read request with exclusivity; this is translated to a read exclusive on the bus and data is loaded in the dirty exclusive state.Processor Coherent Read Request and Read Response
In this system model, when one of the external agents observes a coherent read request on the system bus, it does not take immediate action. Instead, the external agent issues an intervention request to its processor during the read response. This is referred to as a response complete read protocol; that is, the read is complete after the read response has occurred. Ordinary Read Request
For an ordinary read request, an external agent indicates shared at the end of the read response if it finds that its processor has a copy of the requested cache line in the clean exclusive or shared state. Read Exclusive Request
For a read exclusive request, an external agent never indicates shared at the end of the read response, regardless of the state the cache line is in. Instead, the cache line must be in one of the following states:
Processor Invalidate
In this system model, an invalidate request is considered complete as soon as it appears on the system bus. When an external agent observes an invalidate request on the system bus, it reacts as if the invalidate has changed the state of all caches at that instant.Processor Write
In this system model, an external agent takes no action in response to a write request on the bus.

Copyright 1996, MIPS Technologies, Inc. -- 21 MAR 96




![]()