The effect a snoop transaction has on an allocated cache line varies with the type of snoop as well as the state of the line. The effect can also be controlled for a particular snoop type within the allowed responses. These settings are intended for advanced users.
For each type of snoop transaction it is possible to select whether to keep the line allocated or not, if the transaction allows it. If the line is kept it is also possible to select how to treat Dirty data in some cases, if write responsibility is passed on or if it remains.
These configurations are used to define desired behavior, but it is not always guaranteed that it can be honored.
Parameter | CCIX | CHI | ACE |
---|---|---|---|
C_SNOOP_KEEP_READ_ONCE
|
SnpToAny | SnpOnce/SnpOnceFwd | ReadOnce |
C_SNOOP_PASS_READ_ONCE
|
SnpToAny | SnpOnce/SnpOnceFwd | ReadOnce |
C_SNOOP_KEEP_READ_SHARED
|
SnpToS | SnpShared/SnpSharedFwd | ReadShared |
C_SNOOP_PASS_READ_SHARED
|
SnpToS | SnpShared/SnpSharedFwd | ReadShared |
C_SNOOP_KEEP_READ_CLEAN
|
N/A | SnpClean/SnpCleanFwd | ReadClean |
C_SNOOP_PASS_READ_CLEAN
|
N/A | SnpClean/SnpCleanFwd | ReadClean |
C_SNOOP_KEEP_READ_NSD
|
N/A | SnpNotSharedDirty/SnpNotSharedDirtyFwd | ReadNotSharedDirty |
C_SNOOP_PASS_READ_NSD
|
N/A | SnpNotSharedDirty/SnpNotSharedDirtyFwd | ReadNotSharedDirty |
C_SNOOP_KEEP_CLEAN_SHARED
|
SnpToC | SnpCleanShared | CleanShared |
C_SNOOP_KEEP_SNPTOSC
|
SnpToSC | N/A | N/A |