In ACE protocol how does other masters get to know that a master's cache line is in Unique state?
ACE managers do not directly need to know whether another manager is holding the cache line in a Unique state - what they need to know is when they complete a transaction, whether that cache line should be marked as being in a Unique or Shared state.
For AR requests, this is indicated using RRESP[3]. The value of RRESP[3] is determined by the interconnect, based on how the data was obtained.
- If none of the ACE managers indicated that they had a copy of the cache line after being snooped (CRRESP.IsShared == 0), then the line can be allocated by the ACE manager as Unique
- If any ACE managers respond to the snoop with CRRESP.IsShared == 1, then the line must be marked as being in Shared state by the manager that caused the snoop.
The cache line state can also change if the ACE manager receives a snoop for a cache line. For all snoops other than ReadOnce and CleanShared, the cache line state after snoop must be Shared or Invalid. See Table D5-3 in the ACE Spec Issue H for further details.