diff options
author | Mitch Hayenga <mitch.hayenga@arm.com> | 2014-12-23 09:31:18 -0500 |
---|---|---|
committer | Mitch Hayenga <mitch.hayenga@arm.com> | 2014-12-23 09:31:18 -0500 |
commit | 6cb58b2bd2ffd19a667e3b9473ff4a0ccfd14c81 (patch) | |
tree | 013ae71318955157fc22fa174655f681383bac92 /src/mem/cache/mshr_queue.cc | |
parent | 4d88978913c57e0cd10751d31d7f5b95c1e00170 (diff) | |
download | gem5-6cb58b2bd2ffd19a667e3b9473ff4a0ccfd14c81.tar.xz |
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.
Diffstat (limited to 'src/mem/cache/mshr_queue.cc')
-rw-r--r-- | src/mem/cache/mshr_queue.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mem/cache/mshr_queue.cc b/src/mem/cache/mshr_queue.cc index 9146cddf7..cdd6da52c 100644 --- a/src/mem/cache/mshr_queue.cc +++ b/src/mem/cache/mshr_queue.cc @@ -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; |