PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Re: [Cs323] conflict miss follow-up
Date: Sunday, 11 Oct 2020, 13:03:41


    > Message Posted By: Unknown
    >
    > In the example you gave with A[4] and B[4], how do you know that B was
    > never in the cache when you read B[0], as opposed to B[1]? Also, is the
    > 1-4 supposed to be the offset, or four separate blocks that map into the
    > same line?

The example was:

  Consider a direct-mapped cache where the int arrays A[4]
  and B[4] are in blocks that map to the same line.  When
  the code sequence
   
    t = A[0]+B[0]; t += A[1]+B[1]; t += A[2]+B[2]; t += A[3]+B[3];
   
  is executed,
   
    * fetching A[0] is a compulsory miss
    * fetching B[0] is a compulsory miss
    * fetching A[1] is a conflict miss (the A block replaces the B block)
    * fetching B[1] is a conflict miss (the B block 1eplaces the A block)
    ...
   
  Thus there are  8 misses, 6 of which are conflict misses.

If block A were in the cache when A[0] was fetched, then
there would not have been a miss.  If block B were, then
fetching A[0] would have replaced it by block A and the
fetch of B[0] would have been a conflict miss.

--Stan-
PREV INDEX NEXT