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 MakeUnique Transaction

In spec D4.7.1 It was given incase of MakeUnique Transaction the expected start state is invalid but expected endstate is UniqueDirty.

Can anyone explain how?

Thanks.

Parents
  • MakeUnique can only be used when a full cache line store is being performed, as otherwise there's a risk of data being lost.  When the MakeUnique is completed, it is guaranteed that no other master has the cache line, although the master that initiated the MakeUnique does not have any data. The end state is after the cache line store has been performed, as that must happen atomically with respect to the MakeUnique completing.  The full sequence is effectively:

    - Master issues MakeUnique - line is Invalid

    - Master completes MakeUnique - line is temporarily Unique Clean, but the master does not have the data.

    - Master writes to the entire cache line with new data - Unique Dirty

Reply
  • MakeUnique can only be used when a full cache line store is being performed, as otherwise there's a risk of data being lost.  When the MakeUnique is completed, it is guaranteed that no other master has the cache line, although the master that initiated the MakeUnique does not have any data. The end state is after the cache line store has been performed, as that must happen atomically with respect to the MakeUnique completing.  The full sequence is effectively:

    - Master issues MakeUnique - line is Invalid

    - Master completes MakeUnique - line is temporarily Unique Clean, but the master does not have the data.

    - Master writes to the entire cache line with new data - Unique Dirty

Children