mem: Add parameter to reserve MSHR entries for demand access

Adds a new parameter that reserves some number of MSHR entries for demand
accesses.  This helps prevent prefetchers from taking all MSHRs, forcing demand
requests from the CPU to stall.
This commit is contained in:
Mitch Hayenga
2014-12-23 09:31:18 -05:00
parent 4d88978913
commit 6cb58b2bd2
5 changed files with 27 additions and 7 deletions

View File

@@ -52,10 +52,12 @@
using namespace std;
MSHRQueue::MSHRQueue(const std::string &_label,
int num_entries, int reserve, int _index)
int num_entries, int reserve, int demand_reserve,
int _index)
: label(_label), numEntries(num_entries + reserve - 1),
numReserve(reserve), registers(numEntries),
drainManager(NULL), allocated(0), inServiceEntries(0), index(_index)
numReserve(reserve), demandReserve(demand_reserve),
registers(numEntries), drainManager(NULL), allocated(0),
inServiceEntries(0), index(_index)
{
for (int i = 0; i < numEntries; ++i) {
registers[i].queue = this;