Hello,
I think I have found a bug in the MOESI_CMP_directory (GEMS 1.4).
The problem is a missing ILOX/L1_PUTX transition in the L2. It has been
reported before [1], but I am not sure that I understand it after
reading that message. After some thinking and after reading [2] (which I
think is a similar problem) I think that the correct fix is to add the
following transition:
transition(ILOX, L1_PUTX) {
ll_writebackNack;
o_popL1RequestQueue;
}
I am almost sure that the above transition is the correct one, however I
wonder whether I should change the following transition (around line
1519 of the same file) to respond with a NAck too:
// happened if we forwarded GETS to exclusive who tried to do writeback
// ?? should we just Nack these instead? Could be a bugs here
transition(ILO, L1_PUTX, ILOW) {
l_writebackAckNeedData;
o_popL1RequestQueue;
}
What do you think?
I have put a tester trace at [3] which shows the problem, just in case
you are interested.
Thanks,
Ricardo.
[1]
https://lists.cs.wisc.edu/archive/gems-users/2006-April/msg00010.shtml
[2]
https://lists.cs.wisc.edu/archive/gems-users/2005-July/msg00072.shtml
[3] http://ditec.um.es/~rfernandez/debug.39.10.gz