As far as I understand, gem5 simulates functionality of clflush instruction for classic cache. Can anyone explain how it do that ?
I traced Clflushopt::initiateAcc() function call which eventually calls LSQ::pushRequest() function in lsq.cc. But after completion of translation, it checks request->isMemAccessRequired() and isLoad both of which returns falls. As a result it does not call write() function which should put the instruction in store queue, instead just return inst->getFault(). Without placing this request in the store queue, how does this request reach the cache to invalid the block ? Where gem5 get's timing for this clflush instruction ? Best Shaikhul
_______________________________________________ gem5-users mailing list -- [email protected] To unsubscribe send an email to [email protected]
