Question in CHI spec B2.7.7 Mismatched Memory attributes

in CHI spec B2.7.7 

Org:

Must ensure a Clean line, either UC or SC, in a fully coherent cache is:
– Not made visible to a Requester using a transaction with SnpAttr = 0 to access that location, if that
location has been updated by another transaction with SnpAttr = 0 after the cache line was allocated into
the fully coherent cache.

My question is the below sentence make me confusing.

"if that location has been updated by another transaction with SnpAttr = 0 after the cache line was allocated into
the fully coherent cache."

I try to understand the sentence as below.

Step1 . the cache line was allocated into the fully coherent cache 

Step 2. location has been updated by another transaction with SnpAttr = 0

The step 2 is conflict with "Not made visible to a Requester using a transaction with SnpAttr = 0 to access that location"

I think in step 2. the fully coherent cache (SnpAttr=1, I assume it is UC or SC) should not be visible to transaction with SnpAttr = 0 and can't be modified.

does my understanding is correct?

if yes,  my suggestion is I modify as below by remove some words.

Must ensure a Clean line, either UC or SC, in a fully coherent cache is:
– Not made visible to a Requester using a transaction with SnpAttr = 0 to access that location.

Tony

Parents
  • I think in step 2. the fully coherent cache (SnpAttr=1, I assume it is UC or SC) should not be visible to transaction with SnpAttr = 0 and can't be modified.

    does my understanding is correct?

    That isn't quite the right understanding.

    A SnpAttr = 0 request is allowed to snoop the coherent cache, it is just not required to.  SnpAttr = 1 means the request is required to snoop any RN-Fs that could have the cache line.

    If the line has not modified, and is in a Clean state, then it is still the most up to date copy of the data for that location and so can be made visible to a Requester using a transaction with SnpAttr = 0

Reply
  • I think in step 2. the fully coherent cache (SnpAttr=1, I assume it is UC or SC) should not be visible to transaction with SnpAttr = 0 and can't be modified.

    does my understanding is correct?

    That isn't quite the right understanding.

    A SnpAttr = 0 request is allowed to snoop the coherent cache, it is just not required to.  SnpAttr = 1 means the request is required to snoop any RN-Fs that could have the cache line.

    If the line has not modified, and is in a Clean state, then it is still the most up to date copy of the data for that location and so can be made visible to a Requester using a transaction with SnpAttr = 0

Children
No data