Hello,
I have been studying the protocol MOESI_CMP_directory recently. I hope
you can give me some help on the following questions:
1. It's said that this protocol is a "two-level directory protocol",
so what does the "two-level" refer to? I found that any entry of L1
cache, L2 cache or memory has certain fields (e.g. CacheState,
Sharers, Owner, etc) to record the coherence information of each cache
line, then there are 3 levels. But there is only one localDirectory in
the L2 cache, so I got confused with the "two-level directory".
2. Some previous posts mentioned that the localDirectory in the L2
cache approximates L1 shadow tags. Could you explain more about this?
Why do we need such a directory in the L2 cache considering that all
the coherence information has been recorded in the entries of
CacheMemory?
3. I suppose that MOESI_CMP_directory-dir.sm refers to the memory
although it was named "directory". If so, is it reasonable to maintain
a coherence entry for each memory block? Because the memories are
quite large in current machine, the cost would be very high to do so.
Did I miss something here?
Moreover, I classified the msgs traversing the network during the
simulation with this protocol. All the data msgs were found in VN2
(Virtual Network) only, and the control msgs traversed through VN0 to
VN2, mainly in VN0 and VN2. VN3 has never been used. Is there any
specific reason to place those msgs on different virtual networks? or
what are the rules to do so?
Thank you very much. Regards,
Lide
|