Hi, First, *their is no downstream cache relative to HN* and that’s by definition of HN. The table you linked to is the table for the CHI_Cache SLICC component which is the only component of the CHI model (aside from the CHI SLICC memory interface which merely is an implementation detail). A HN can be thought as the last layer before memory, aka the guy who shall not be snooped, aka the guy who can talk to SN-F. Other than that, the HN is yet another coherent cache.
Now the architecture: a cache (which includes the HN) is in charge of maintaining coherency in the domain composed of “ itself + its upstream caches”. For instance an L2 is in charge of maintaining coherency with its upstream L1s. On the other hand, a downstream cache **D** sees a given upstream cache **C** and the other caches above **C** as a single RN-F (a single cache). As a result, the HN will only snoop the last level of caches which are in turn responsible for snooping their own upstream caches, if need be. Another way of describing it: 1. You are a cache that get a coherent request from an upstream cache. 2. If you have the data cached in the correct state, respond immediately and register the requester in your snoop filter (see the R\* states). 3. If you don’t have the data in the correct state but another upstream cache has that data in the correct state, snoop it and respond to requester. Update your snoop filter accordingly. 4. If the data is nowhere to be seen in the required state, request it to the downstream node… * … *Sending a coherent request to downstream cache if you are not a HN* * … *Or sending a NC request to memory interface (SN-F) if you are a HN* Point 4. really is where HN and non-HN caches differ. --- Having said that, I must admit that I can’ t find that description explicitly in the CHI spec. In the CHI spec, there is only RN-F, ICN and SN involved in the coherent transactions. HN is not even explicitly mentioned on these figures. My interpretation is that, considering the definition of HN (“Home Node. Node located within the interconnect that receives protocol transactions from Request Nodes, completes the required Coherency action, and returns a Response.”), a cache must behave as a RN-F with respect to its downstream caches and as a HN with respect to its upstream caches. As such, HN could be more of a logical agent implemented by the ICN than an actual physical node. If anyone can cast some light on the distinction between ICN and HN that seem to be used interchangeably in many parts of the spec, you are very welcome :) Best, Gabriel
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org