mem: Adjust cache queue reserve to more conservative values

The cache queue reserve is there as an overflow to give us enough
headroom based on when we block the cache, and how many transactions
we may already have accepted before actually blocking. The previous
values were probably chosen to be "big enough", when we actually know
that we check the MSHRs after every single allocation, and for the
write buffers we know that we implicitly may need one entry for every
outstanding MSHR.
* * *
mem: Adjust cache queue reserve to more conservative values

The cache queue reserve is there as an overflow to give us enough
headroom based on when we block the cache, and how many transactions
we may already have accepted before actually blocking. The previous
values were probably chosen to be "big enough", when we actually know
that we check the MSHRs after every single allocation, and for the
write buffers we know that we implicitly may need one entry for every
outstanding MSHR.
This commit is contained in:
Andreas Hansson
2016-03-17 09:51:22 -04:00
parent 7a40e7864a
commit abcbc4e51e
3 changed files with 15 additions and 7 deletions

View File

@@ -141,7 +141,9 @@ class MSHRQueue : public Queue<MSHR>
*/
bool canPrefetch() const
{
return (allocated < numEntries - (numReserve + demandReserve));
// @todo we may want to revisit the +1, currently added to
// keep regressions unchanged
return (allocated < numEntries - (numReserve + 1 + demandReserve));
}
};