Tony,

I noticed the same thing as well and as you mentioned the perf penalty
could be really high.
http://www.mail-archive.com/gem5-users@gem5.org/msg05894.html
I don't know what the reason could be, but I was able to fix this. If I
remember right, to prevent squashing, you need to mark those loads with a
flag or something and try to add them to instruction queue again.

Thanks,
Amin


On Thu, Sep 26, 2013 at 6:21 PM, Tony Nowatzki <t...@cs.wisc.edu> wrote:

> Hi All,
>
> Apologies in advance if this is a silly question, or a repeat.
>
> I recently noticed that the OoO core squashes itself and all younger
> instructions when a load is issued to the memory system, but the cache is
> blocked (say the MSHRs are full, or there are no targets left). Contrarily,
> when a write is issued to the memory system, the store will simply retry
> until the cache can handle the request.
>
> There is potentially some performance penalty in squashing these loads,
> and a large energy penalty as well (can be up to 2x for the core in some
> contrived cases, according to mcpat).  Given that these squashes can occur
> frequently in memory-bound programs, is there a reason this was chosen as
> the implementation?  Is there a reason why loads can't be stalled and
> retried on a cache block?
>
> Thanks!
> Tony
> ______________________________**_________________
> gem5-users mailing list
> gem5-users@gem5.org
> http://m5sim.org/cgi-bin/**mailman/listinfo/gem5-users<http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users>
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to