I am looking for practical applications of various transaction types in real-world ARM-based systems. For example, READONCE is commonly used in a display controller when reading a cached frame buffer. Similarly, how are other transaction types like ReadNoSnoop, WriteNoSnoop, ReadOnce, ReadClean, ReadNotSharedDirty, ReadShared, ReadUnique, CleanUnique, MakeUnique, CleanShared, CleanInvalid, MakeInvalid, WriteUnique, and WriteLineUnique used in actual hardware implementations?
Can anyone share insights or examples of how these are applied in systems like GPUs, memory controllers, or multi-core processors?