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 -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org