mshr_queue.cc (10192:5c2c4195b839) | mshr_queue.cc (10509:d5554f97c451) |
---|---|
1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 31 unchanged lines hidden (view full) --- 40 * Authors: Erik Hallnor 41 * Andreas Sandberg 42 */ 43 44/** @file 45 * Definition of MSHRQueue class functions. 46 */ 47 | 1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 31 unchanged lines hidden (view full) --- 40 * Authors: Erik Hallnor 41 * Andreas Sandberg 42 */ 43 44/** @file 45 * Definition of MSHRQueue class functions. 46 */ 47 |
48#include "base/trace.hh" |
|
48#include "mem/cache/mshr_queue.hh" | 49#include "mem/cache/mshr_queue.hh" |
50#include "debug/Drain.hh" |
|
49 50using namespace std; 51 52MSHRQueue::MSHRQueue(const std::string &_label, 53 int num_entries, int reserve, int _index) 54 : label(_label), numEntries(num_entries + reserve - 1), 55 numReserve(reserve), registers(numEntries), 56 drainManager(NULL), allocated(0), inServiceEntries(0), index(_index) --- 129 unchanged lines hidden (view full) --- 186 inServiceEntries--; 187 } else { 188 readyList.erase(mshr->readyIter); 189 } 190 mshr->deallocate(); 191 if (drainManager && allocated == 0) { 192 // Notify the drain manager that we have completed draining if 193 // there are no other outstanding requests in this MSHR queue. | 51 52using namespace std; 53 54MSHRQueue::MSHRQueue(const std::string &_label, 55 int num_entries, int reserve, int _index) 56 : label(_label), numEntries(num_entries + reserve - 1), 57 numReserve(reserve), registers(numEntries), 58 drainManager(NULL), allocated(0), inServiceEntries(0), index(_index) --- 129 unchanged lines hidden (view full) --- 188 inServiceEntries--; 189 } else { 190 readyList.erase(mshr->readyIter); 191 } 192 mshr->deallocate(); 193 if (drainManager && allocated == 0) { 194 // Notify the drain manager that we have completed draining if 195 // there are no other outstanding requests in this MSHR queue. |
196 DPRINTF(Drain, "MSHRQueue now empty, signalling drained\n"); |
|
194 drainManager->signalDrainDone(); 195 drainManager = NULL; 196 setDrainState(Drainable::Drained); 197 } 198 return retval; 199} 200 201void --- 87 unchanged lines hidden --- | 197 drainManager->signalDrainDone(); 198 drainManager = NULL; 199 setDrainState(Drainable::Drained); 200 } 201 return retval; 202} 203 204void --- 87 unchanged lines hidden --- |