base.hh (10679:204a0f53035e) | base.hh (10693:c0979b2ebda5) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2012-2013 ARM Limited | 2 * Copyright (c) 2012-2013, 2015 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 186 unchanged lines hidden (view full) --- 197 protected: 198 199 /** Miss status registers */ 200 MSHRQueue mshrQueue; 201 202 /** Write/writeback buffer */ 203 MSHRQueue writeBuffer; 204 | 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 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 186 unchanged lines hidden (view full) --- 197 protected: 198 199 /** Miss status registers */ 200 MSHRQueue mshrQueue; 201 202 /** Write/writeback buffer */ 203 MSHRQueue writeBuffer; 204 |
205 /** 206 * Allocate a buffer, passing the time indicating when schedule an 207 * event to the queued port to go and ask the MSHR and write queue 208 * if they have packets to send. 209 * 210 * allocateBufferInternal() function is called in: 211 * - MSHR allocateWriteBuffer (unchached write forwarded to WriteBuffer); 212 * - MSHR allocateMissBuffer (cacheable miss in MSHR queue); 213 * - MSHR allocateUncachedReadBuffer (unchached read allocated in MSHR 214 * queue) 215 */ |
|
205 MSHR *allocateBufferInternal(MSHRQueue *mq, Addr addr, int size, 206 PacketPtr pkt, Tick time, bool requestBus) 207 { 208 MSHR *mshr = mq->allocate(addr, size, pkt, time, order++); 209 210 if (mq->isFull()) { 211 setBlocked((BlockedCause)mq->index); 212 } --- 33 unchanged lines hidden (view full) --- 246 * \return true if at least one block is dirty, false otherwise. 247 */ 248 virtual bool isDirty() const = 0; 249 250 /** Block size of this cache */ 251 const unsigned blkSize; 252 253 /** | 216 MSHR *allocateBufferInternal(MSHRQueue *mq, Addr addr, int size, 217 PacketPtr pkt, Tick time, bool requestBus) 218 { 219 MSHR *mshr = mq->allocate(addr, size, pkt, time, order++); 220 221 if (mq->isFull()) { 222 setBlocked((BlockedCause)mq->index); 223 } --- 33 unchanged lines hidden (view full) --- 257 * \return true if at least one block is dirty, false otherwise. 258 */ 259 virtual bool isDirty() const = 0; 260 261 /** Block size of this cache */ 262 const unsigned blkSize; 263 264 /** |
254 * The latency of a hit in this device. | 265 * The latency of tag lookup of a cache. It occurs when there is 266 * an access to the cache. |
255 */ | 267 */ |
256 const Cycles hitLatency; | 268 const Cycles lookupLatency; |
257 258 /** | 269 270 /** |
259 * The latency of sending reponse to its upper level cache/core on a 260 * linefill. In most contemporary processors, the return path on a cache 261 * miss is much quicker that the hit latency. The responseLatency parameter 262 * tries to capture this latency. | 271 * This is the forward latency of the cache. It occurs when there 272 * is a cache miss and a request is forwarded downstream, in 273 * particular an outbound miss. |
263 */ | 274 */ |
275 const Cycles forwardLatency; 276 277 /** The latency to fill a cache block */ 278 const Cycles fillLatency; 279 280 /** 281 * The latency of sending reponse to its upper level cache/core on 282 * a linefill. The responseLatency parameter captures this 283 * latency. 284 */ |
|
264 const Cycles responseLatency; 265 266 /** The number of targets for each MSHR. */ 267 const int numTarget; 268 269 /** Do we forward snoops from mem side port through to cpu side port? */ 270 const bool forwardSnoops; 271 --- 321 unchanged lines hidden --- | 285 const Cycles responseLatency; 286 287 /** The number of targets for each MSHR. */ 288 const int numTarget; 289 290 /** Do we forward snoops from mem side port through to cpu side port? */ 291 const bool forwardSnoops; 292 --- 321 unchanged lines hidden --- |