Each core has its own L1 and L2 caches, and makes accesses from them. So in the case you discuss some line will be evicted from the local cache to make room for the newly required data.
Similarly, if another core later requires the same line it will also make space for it in its local cache, and then bring a copy to there (from one of the other L2s if it's already present on chip). So the same, unmodified, data can be present in each of the L2 caches on the chip.
The way to think of the machine is that each core has its own cache, and that all those caches are maintained coherent, not that there is one, large, shared L2 cache. (People familiar with Xeon, which does have a large, shared, L3 cache sometimes say that the Intel(r) Xeon Phi(tm) coprocessor "doesn't have a last-level cache", which is clearly wrong by definition :-), but they are right that there is no shared last level cache).





questions about L2 wirte policy
Hi all,
I notice that Xeon Phi has large coherent L2 cache. I'd like to figure out more details. My question is about where to apply the replacement policy.
Suppose thread0 in core0, want to read a data, suppose the data is neither in the local L2 or in other cores' L2, then it will access the main memory and bring the data to the L2 cache. My question is, if the local L2 is full, Xeon Phi will apply the cache replacement policy to the local L2, or possibly to other core's L2? (for example, if other cores' L2 is not full, then it can directly use that L2 cache lines?)
I cannot figure out this detail from documents, help you guys can help, thanks very much