Hi George,

You are mostly right.

Eviction (clean) can come from the L1d as well. It implies that the block was unmodified in the L1d but the L1d did not have write permissions. This will occur for blocks that are shared between multiple L1 caches.

Otherwise you are correct.


Jason



On 02/05/2011 11:28 AM, George Ioannidis wrote:
Thank you, Jason, for your answer. So, the "clean evictions" setting just reports L1 evictions of clean blocks to the L2 cache.

What is more, I have seen these in eviction messages:
MemoryMessage[Eviction (clean)]
MemoryMessage[Eviction (dirty)]
MemoryMessage[Eviction (writable)]

I presume that:
"clean" blocks are blocks in the L1i
"dirty" blocks are modified blocks in the L1d -- eviction causes writing back to the L2
"writable" blocks are unmodified blocks on the L1d

Is that right?


-George


On Mon, 02 May 2011 08:55:42 -0400, Jason Zebchuk wrote:
Hi George,

The eviction policy for L1 caches is an important part of the
coherence protocol. The default protocol for CMPs uses a directory
that tracks the precise list of sharers of every block. This requires
that the L2 cache be notified when an L1 evicts any cache line, even
those which don't need to be written back to the L2 cache.

When simulating a single CMP system, there is no need for the L2
cache to send notifications on clean evictions because there is only
one CMP there is no inter-chip coherence protocol.

I believe there is support in Flexus for a coherence protocol that
does NOT require using clean evictions from the L1 cache, but I'd have
to double check what other changes that might require, I believe that
would require a configuration setting to use a slightly different
coherence protocol.


The messages you are seeing when the L1 performs an evict represent
the message being sent by the L1 and then received by the L2. This is
the same eviction, but the communication from L1 to L2 is reported at
both ends. This can be useful if debug messages are turned off for one
of the components. But you shouldn't be worried, the L2 isn't
generating a message here.

Note that in the timing model, evictions from the L1 are acknowledged
by the L2 to avoid race conditions. In this case, an EvictClean from
an L1 would generate an EvictAck reply from the L2.


Jason

Reply via email to