What exactly is for CMO and Non-CMO transactions? When CMO will be used and when Non-CMO will be used in CHI?
The comparison between CMOs and non-CMOs is typically considered in the context of Dataless transactions - i.e. transactions that do not transfer any data directly. The difference between them is that they have a different purpose, even if the behaviour may be similar.
CMOs are used to invalidate or clean data from caches.
Non-CMOs serve other functions, such as:
• Obtaining permission to store to a cache.
• Updating the state of a snoop filter.
• Moving data closer to the point of expected future use.
But Non-CMOs are also involved in cleaning/invalidating cachelines.