
11. Cache Organization, Operation, and Coherency

A processor becomes the owner of a cache line after it writes to that cache line (that is, by entering the dirty exclusive or dirty shared state), and is responsible for providing the contents of that line on a read request. There can only be one owner for each cache line.
The ownership of a cache line is set and maintained through the rules described below.
- A processor assumes ownership of the cache line if the state of the secondary cache line is dirty shared or dirty exclusive.
- A processor that owns a cache line is responsible for writing the cache line back to memory if the line is replaced during the execution of a Write-back or Write-back Invalidate cache instruction. For read responses to a processor coherent read request (both of these terms are defined in Chapter 12) in which the data is returned in the dirty shared or dirty exclusive state, the cache state is set when the last word of read response data is returned. Therefore, the processor assumes ownership of the cache line when the last word of response data is returned.
- For processor coherent write requests, the state of the cache line changes to invalid if the cache line is replaced, or to either clean exclusive or shared if the cache line is retained (provided the cache line was written back to memory). In either case, the cache state transition occurs when the last word of write data is transmitted to the external agent. Therefore, the processor gives up ownership of the cache line when the last word of write data is transmitted to the external agent (Chapter 12 defines external agent).
- Memory always owns clean cache lines.
- The processor gives up ownership of a cache line when the state of the cache line changes to invalid, shared, or clean exclusive.

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




Generated with CERN WebMaker
