Hi everyone,

I have been modifying the MinorCPU to be like an out of order CPU for
certain memory instructions. My modification involved this "instructions"
to not stall the pipeline and allow the cpu to continue processing other
instructions.

Coming to the problem that I am facing is that when i remove this "memory
access instructions" from the inFlightInsts queue,(I remove them from
inFlightInstsqueue after sending them to my custom made LSQ) is that I do
not see a reduce in number of ticks it takes to execute the guest code.
(i.e. it takes the same time similar to the one where i do not remove this
instructions). Which according to my opinion should be faster as the memory
instructions have been removed from the inFlightQueue.

On further investigation, I found out this is because
of thread->getDTBPtr()->translateTiming in the lsq.cc file.  It adds up the
number of ticks of the memory instruction even though the instruction no
longer resides in the inFlightInsts Queue.

My question is why is GEM5 still adding additional ticks when accessing the
translateTiming function though it is working in the background and not
stalling the instruction pipeline. Should it not consider this ticks as
that instruction is no longer in the inFlightInsts queue?

Also, is there a way I can fix this so that it doesn't add upto the final
count of ticks for those instructions?

Any help would be appreciated.

Thanks,
Muhammad Aamir Saeed
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to