This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ACE protocol cache state

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.