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

Reply via email to