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

some question about ACE

Hi all:

I'm reading ACE protocol. I have some questions about such scenario:

two cache masters (master 0/1) and main meomry are connected by Coherent interconnect.

master 0 and master 1 are both SharedClean.

cacheline size : 64bytes.

Q1: if master 1 writes to portion of the shareable cacheline(update the 1st byte of cacheline),

result 1: master 1 will issue CleanUnique and ,  master 1 cache state become UniqueDirty.

result 2 :master 1 cache state become SharedDirty, master 0 cache state will still be SharedClean.

which result will be right?

Q2: if result 2 in Q1 is right and then master 0 updates the 3rd byte of cacheline,  how the 2 masters and interconnect act?

 

Thanks.

Parents Reply Children
  • An example scenario could be: master 0 has a dirty line, master 1 does not have the line and issues a ReadShared transaction, the interconnect will snoop master 0, master 0 will transfer data to master 1.

    M0: UD -> SD

    M1: I -> SC

    Master 0 could also pass dirty to master 1:

    M0: UD -> SC

    M1: I -> SD

    See the AMBA AXI and ACE Protocol Specification for all the state transitions.

    Note that not all implementations are able to handle SharedDirty. This is the reason why there is a ReadNotSharedDirty transaction to avoid the second scenario for example.