Abhishek,

You are quite right regarding store-store, but note that the function does not only check store-load ordering.

As far as I understand, the function checks if younger loads to the same address have issued when an older store executes (store-load ordering), as well as if younger loads to the same address that got invalidated in the cache have issued when an older /load/ executes (load-load ordering *to the same address*). The variable needsTSO (true in x86, false otherwise) changes what is considered a violation and what is not. Basically, if needsTSO is set, then enforcing full load-load ordering is required and handled in checkSnoop(). If it is not set, then load-load ordering to the same address only is required, and this is enforced in checkViolations() if a younger inflight load to the same address was touched by a snoop request in checkSnoop().

Best,

Arthur Perais.

Le 29/03/2016 15:41, Abhishek Rajgadia a écrit :
In the checkViolations() function in lsq_unit_impl.hh , it is mentioned in a comment that it checks if load/store incorrectly passed a store. Does it really check if store incorrectly passed a store? Since it checks the LoadQueue, isn't it checking only for loads incorrectly passing a store?

--
Regards,
Abhishek Rajgadia
Electrical Engineering,
IIT Bombay



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


--
Arthur Perais
INRIA Bretagne Atlantique
Bâtiment 12E, Bureau E303, Campus de Beaulieu
35042 Rennes, France

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

Reply via email to