Hi All,
I am a newbie in CHI. I have two problems.
spec say that ,Fully Coherent Request Nodes (RN-Fs), contain coherent caches and will accept and respond to snoops.
I checked the spec, snoops are Transaction. So, what is the meaning of will accept and respond to snoops.? Who send the snoops transaction?
In the spec 1-26, it says the coherence protocol ensures that all Requesters observe the correct data value at any given address location by enforcing that no more than one copy exists whenever a store occurs to the location. After each store to a location, other Requesters can obtain a new copy of the data for their own local cache, to permit multiple cached copies to exist.
What is the meaning of enforcing that no more than one copy exists ?
Would you explain to me in detail?
Thanks a lot!!
tom said:I checked the spec, snoops are Transaction. So, what is the meaning of will accept and respond to snoops.? Who send the snoops transaction?
The interconnect will send snoop messages to the RN-Fs (and SnpDVMOps to the RN-D). This is how the interconnect makes requests to the RNs - for example, if the RN-F is required to return data to fulfill another RN-Fs read request, then the interconnect will send a snoop to the RN-F to request that data.
Only RN-Fs can have hardware coherent caches, and so only RN-Fs should receive snoops relating to data from the interconnect. Other RN types should not be sent these snoops.
RN-Ds are an exception in that they do not have hardware coherent caches, but can receive DVMs which are used to maintain non-data related caches - specifically TLBs, instruction caches and branch predictors.
tom said:In the spec 1-26, it says the coherence protocol ensures that all Requesters observe the correct data value at any given address location by enforcing that no more than one copy exists whenever a store occurs to the location. After each store to a location, other Requesters can obtain a new copy of the data for their own local cache, to permit multiple cached copies to exist. What is the meaning of enforcing that no more than one copy exists ?
In order to perform a store, the RN-F is required to have the cache line in a Unique state. This means that before performing the store, the RN-F is required to issue a transaction type that will result in the cache line being stored in a Unique state (if it is not already in a Unique state). For example, a ReadUnique would guarantee that any read data returned is in a Unique state.
The effect of this request is that before the transaction is completed, the interconnect must invalidate (using snoops) any RN-Fs that potentially have this line cached.