Store operations where the cache line is already cached (ACE protocol)

In Section C1.3 Channel Overview of the AMBA_AXI_and_ACE protocol specifications, It is mentioned under "Store operations where the cache line is already cached" as :


The initiating master component requests a unique copy of the cache line by issuing a CleanUnique
transaction on the read address channel. This removes all other copies of the cache line and writes any dirty
copy to main memory.


Consider that our initiating master has a clean, shared copy. There is another master having a dirty, shared copy.

Now the initiating master issues a CleanUnique transaction on the Read Address Channel. Since the snooped master has had a dirty copy, the interconnect constructs a transaction to write the cacheline to the main memory, and provides a response to the initiating master.

Now at this point in time, the initiating master has a copy that is no more clean, since the copy it has with itself is modified relative to the main memory; and the previously dirty cacheline was not provided to the initiating master.

The next step mentioned is that the master performs a store and uses the RACK signal to indicate that the transaction has been completed.

This seems ambiguous since the initiating master performed a store even when it's copy of the cacheline, though unique ; wasn't clean.

Am I missing something?

Parents Reply Children