Hi all,
  we have been hitting a few cases (atomic systems vs LL / SC, snoop
filter related things) where I end up needing to change a check for
isInvalidate to isInvalidate || cmd = Write.

For example, a cache does not invalidate a line if it is hit by a write
snoop (cmd = write) from below, because the check in Cache::handleSnoop
only checks for isInvalidate.  I am not sure about either the historic
reason, nor the high-level intuitive reasoning here, but:

(1) would it make sense to have write request to be IsInvalidate too?
(2) would it make sense to drop either of IsInvalidate / NeedsExclusive?

It seems that these two express similar things and the different
behaviour is only ever exposed in cases with different commands /
different layers / call streams (snoops vs req / responses).

Any comments?

--
Thanks,
  Stephan

Stephan Diestelhorst
Staff Engineer
ARM Research - Systems
+44 (0)1223 405662


-- IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium.  Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered 
in England & Wales, Company No:  2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, 
Registered in England & Wales, Company No:  2548782

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to