> On 2011-01-12 17:04:00, Nilay Vaish wrote: > > > > Nilay Vaish wrote: > I don't know why the comment went missing. I'll post the question again. > I think the states MT_SB and MT_IB are not required. In fact, I am not > sure why unblock messages have to be sent out. > > Brad Beckmann wrote: > I'm confused. I just asked for the commented out transition to be > deleted. I'm not sure what comment you're referring to. > > When you say the unblock messages, I assume you are referring to the > WB_acks, right? I believe the acks need to be sent out because you want to > block the L1 until it receives the acks. Otherwise, sinking random writeback > acks can be confusing and lead to several bugs, which currently this protocol > definitely has. There may be further optimizations we can make, such as > removing the MT_SM and MT_IB states, as well as possibly combining L1_PUTX > and L1_PUTX_old events. However, I suggest making those optimizations in a > separate patch. In my opinion, right now the number one priority is to fix > this protocol as soon as possible. Otherwise when checked in, my series of > patches will expose several bugs in the protocol and thus break the > regression tester. > > Arkaprava Basu wrote: > I am confused too. I think Nilay is talking about "UNBLOCK" messages that > are sent when there is exclusive owner change for a cache block or a cache > block is doing a M->S transition. In general, directory cache coherence > protocols uses blocking states (in this protocol the states whose name ends > with "B") to constrain amount of races as blocking helps in serializing > requests. In theory you can get rid of UNBLOCKS through more transient states > and/or through NACKs. > For this particular case that Nilay mentioned here, the MT_SB and MT_IB > states are used to make sure modified data is not lost when there is > coherence permission down-gradation at the exclusive owner's cache due to > request from other cores. > I also totally agree with Brad that the purpose of this patch is to fix a > broken protocol not to do optimization. And unlike MOESI_CMP_directory, this > protocol is targeted to work as simple baseline protocol than highly > optimized one. > > Thanks > Arka
Arka's right, I was talking about those very 'UNBLOCK' messages. I agree this discussion is unrelated to the changes necessary for fixing the protocol. When I fixed the protocol, I was trying to reason why those states might have been added. I think the state MT_IIB makes sure that the L2 cache receives the modified data from the L1 cache. Once the data has been received, the L2 cache state should directly move to SS. - Nilay ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.m5sim.org/r/420/#review723 ----------------------------------------------------------- On 2011-01-10 11:48:16, Nilay Vaish wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://reviews.m5sim.org/r/420/ > ----------------------------------------------------------- > > (Updated 2011-01-10 11:48:16) > > > Review request for Default, Ali Saidi, Gabe Black, Steve Reinhardt, and > Nathan Binkert. > > > Summary > ------- > > Ruby: Fixes MESI CMP directory protocol > The current implementation of MESI CMP directory protocol is broken. > This patch, from Arkaprava Basu, fixes the protocol. > > > Diffs > ----- > > src/mem/protocol/MESI_CMP_directory-L1cache.sm c06505ff551e > src/mem/protocol/MESI_CMP_directory-L2cache.sm c06505ff551e > > Diff: http://reviews.m5sim.org/r/420/diff > > > Testing > ------- > > > Thanks, > > Nilay > >
_______________________________________________ m5-dev mailing list m5-dev@m5sim.org http://m5sim.org/mailman/listinfo/m5-dev