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:
8
src/mem/cache/mshr_queue.cc
vendored
8
src/mem/cache/mshr_queue.cc
vendored
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user