From: Mark Brehob on
Hello,

Does anyone know the history of cache inclusion on Intel processors?
Last I'd paid attention, Intel had no plans for having strict
inclusion of the cache hierarchy. I know that in the late 90s Intel
used what they called “convenient inclusion,” that is the last level
of cache was neither fully exclusive nor inclusive other than by
random chance. Looking around, it appears as if the modern processors
from Intel have the L3 be inclusive of the lower-level caches though
I'm having a hard time proving that.

#1 Does anyone know of documentation that definitively states the
inclusion properties of (a) modern Intel processor(s)?
#2 Does anyone know when this change first came about?

I realized in a meeting today I said something based on old
information and I’m hoping to clear it up with some definitive
references so any pointers are greatly appreciated!

Thanks!
From: Quadibloc on
On May 5, 8:34 pm, Mark Brehob <bre...(a)gmail.com> wrote:

> #1 Does anyone know of documentation that definitively states the
> inclusion properties of (a) modern Intel processor(s)?
> #2 Does anyone know when this change first came about?
>
> I realized in a meeting today I said something based on old
> information and I’m hoping to clear it up with some definitive
> references so any pointers are greatly appreciated!

Wikipedia, at

http://en.wikipedia.org/wiki/CPU_cache

claims that the Intel Core i7 has a fully inclusive L2 cache.

Since the L2 cache is much larger than the L1 cache, it is to be
expected that it would be inclusive. The other kinds of cache are more
complicated, and thus are usually only resorted to if there is a clear
benefit to avoiding wasting space in the L2 cache duplicating
everything in the L1 cache. This is true if the L2 cache is small, or
if it is direct-mapped (leading to things being needlessly kicked out
of the L1 cache).

John Savard
From: Quadibloc on
On May 6, 1:29 am, Quadibloc <jsav...(a)ecn.ab.ca> wrote:

> Wikipedia, at
>
> http://en.wikipedia.org/wiki/CPU_cache
>
> claims that the Intel Core i7 has a fully inclusive L2 cache.

Sorry, that's the L3 cache which is fully inclusive.

John Savard
From: Mark Brehob on
On May 6, 3:32 am, Quadibloc <jsav...(a)ecn.ab.ca> wrote:
> On May 6, 1:29 am, Quadibloc <jsav...(a)ecn.ab.ca> wrote:
>
> > Wikipedia, at
>
> >http://en.wikipedia.org/wiki/CPU_cache
>
> > claims that the Intel Core i7 has a fully inclusive L2 cache.
>
> Sorry, that's the L3 cache which is fully inclusive.
>
> John Savard

Thanks John,
I'm not seeing the claim that the Intel Core i7 is fully inclusive
there (I may be blind) but that did end up leading me to
http://software.intel.com/en-us/articles/who-moved-the-goal-posts-the-rapidly-changing-world-of-cpus/
where the claim is clearly made for the L3. By the tone of the
presentation I'm guessing that previous processors didn't have an
inclusive L3/L2, but I can't prove it...
From: MitchAlsup on
On May 5, 9:34 pm, Mark Brehob <bre...(a)gmail.com> wrote:
> Hello,
>
> Does anyone know the history of cache inclusion on Intel processors?

I suspect that if the sets of associativity of the interrior caches
are larger than the sets of associativity of the outermost cache, then
it is unwise to try to guarentee inclusion.

This sets up the scenario where the cache hierarchy looks inclusive
when you are runninig on only one of several cores in the part, but
fails to look inclusive when the application is running on all the
cores of the part.

{We also know that the AMD parts are not strictly inclusive.}

Is there a particular reason that inclusion is useful or necessary for
your application?

Mitch

 |  Next  |  Last
Pages: 1 2 3
Prev: Ye Olde Log-Based SpMT Uarch
Next: x86 i/o management