Hi,
I am reading ACE protocol and i am confused about when to use cache maintenance transactions. On what basis should i decide when to use cache maintenance transaction and which transaction to be used?
Can anyone please help?
It's an explicit decision by the programmer to execute an instruction that generates one of these instructions. If your target a cache maintenance instruction at a region of outer shareable memory, then the instructions meaning is applied to all masters in the same domain. This can mean the master is required to broadcast this cache maintenance operation if the domain is shared with other masters.
So for example, if you decide to Clean and Invalidate a VA to the PoC for a region of outer shareable memory, all the masters in the Outer Shareable domain need to clean and invalidate this line if they have it. They know to do this by receiving a CleanInvalid snoop, which was initiated by the master sending the transactions.
Thank you for the reply.
I understood what you told. But i have one more doubt, In data cache, what can be the scenario that a data cache will issue a cache maintenance transaction??