MIPS R4000 Microprocessor User's Manual 279
Cache Organization, Operation, and Coherency
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.
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.
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:
• If the current state of the cache line is clean exclusive or shared,
the external agent changes the state of the cache line to invalid.
• If the current state of the cache line is dirty exclusive, the
external agent indicates takeover but not shared. Having
indicated takeover, the external agent supplies the contents of
the cache line to the read requester, and the processor changes
the state of the cache line to invalid. While the cache line is
supplied to the read requester, it is also written back to
memory.
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.