[PTLsim-devel] file stq bug

Matt T. Yourst
Tue Oct 23 19:44:33 EDT 2007


On Tuesday 23 October 2007 18:41, Krist Sun wrote:
> Hi Matt,
>
> I found that no matter how small is the STQ_SIZE set (ooocore.h), store
> queue never gets full (in statistics, stq_full = 0). I print out
> stores_in_flight, it is negative value, because it is never increased when
> a store queue entry is allocated. So actually, the program is using
> unlimited store/load queue.
>
> I try to fix it by increasing stores_in_flight by one once a store queue
> entry is allocated. But the store queue still can't get full.
> stores_in_flight is positive value.
>

The total number of loads and stores in flight is always limited by the size 
of the combined load-store queue (LSQ), so it matches what real processors do 
(they typically use a unified load/store queue).

You are correct that stores_in_flight is not being updated correctly - we 
missed this. To fix this, in the rename() function, add this:

  if unlikely (ld|st) {
    rob.lsq = &lsq;
    ...
    loads_in_flight += (lsq->store == 0);       << Add this
    stores_in_flight += (lsq->store == 1);      << Add this
  }

Thanks for pointing this out.

- Matt

-------------------------------------------------------
 Matt T. Yourst                    yourst at peptidal.com
 Peptidal Research Inc., Co-Founder and Lead Architect
-------------------------------------------------------


More information about the PTLsim-devel mailing list