mshr.hh (11177:524c44cf8278) | mshr.hh (11197:f8fdd931e674) |
---|---|
1/* 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 --- 147 unchanged lines hidden (view full) --- 156 bool isSecure; 157 158 /** True if the request has been sent to the bus. */ 159 bool inService; 160 161 /** True if the request is just a simple forward from an upper level */ 162 bool isForward; 163 | 1/* 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 --- 147 unchanged lines hidden (view full) --- 156 bool isSecure; 157 158 /** True if the request has been sent to the bus. */ 159 bool inService; 160 161 /** True if the request is just a simple forward from an upper level */ 162 bool isForward; 163 |
164 /** Keep track of whether we should allocate on fill or not */ 165 bool allocOnFill; 166 |
|
164 /** The pending* and post* flags are only valid if inService is 165 * true. Using the accessor functions lets us detect if these 166 * flags are accessed improperly. 167 */ 168 169 /** True if we need to get an exclusive copy of the block. */ 170 bool needsExclusive() const { return targets.needsExclusive; } 171 --- 41 unchanged lines hidden (view full) --- 213 214 /** 215 * Allocate a miss to this MSHR. 216 * @param blk_addr The address of the block. 217 * @param blk_size The number of bytes to request. 218 * @param pkt The original miss. 219 * @param when_ready When should the MSHR be ready to act upon. 220 * @param _order The logical order of this MSHR | 167 /** The pending* and post* flags are only valid if inService is 168 * true. Using the accessor functions lets us detect if these 169 * flags are accessed improperly. 170 */ 171 172 /** True if we need to get an exclusive copy of the block. */ 173 bool needsExclusive() const { return targets.needsExclusive; } 174 --- 41 unchanged lines hidden (view full) --- 216 217 /** 218 * Allocate a miss to this MSHR. 219 * @param blk_addr The address of the block. 220 * @param blk_size The number of bytes to request. 221 * @param pkt The original miss. 222 * @param when_ready When should the MSHR be ready to act upon. 223 * @param _order The logical order of this MSHR |
224 * @param alloc_on_fill Should the cache allocate a block on fill |
|
221 */ 222 void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, | 225 */ 226 void allocate(Addr blk_addr, unsigned blk_size, PacketPtr pkt, |
223 Tick when_ready, Counter _order); | 227 Tick when_ready, Counter _order, bool alloc_on_fill); |
224 225 bool markInService(bool pending_dirty_resp); 226 227 void clearDownstreamPending(); 228 229 /** 230 * Mark this MSHR as free. 231 */ 232 void deallocate(); 233 234 /** 235 * Add a request to the list of targets. 236 * @param target The target. 237 */ | 228 229 bool markInService(bool pending_dirty_resp); 230 231 void clearDownstreamPending(); 232 233 /** 234 * Mark this MSHR as free. 235 */ 236 void deallocate(); 237 238 /** 239 * Add a request to the list of targets. 240 * @param target The target. 241 */ |
238 void allocateTarget(PacketPtr target, Tick when, Counter order); | 242 void allocateTarget(PacketPtr target, Tick when, Counter order, 243 bool alloc_on_fill); |
239 bool handleSnoop(PacketPtr target, Counter order); 240 241 /** A simple constructor. */ 242 MSHR(); 243 244 /** 245 * Returns the current number of allocated targets. 246 * @return The current number of allocated targets. --- 58 unchanged lines hidden --- | 244 bool handleSnoop(PacketPtr target, Counter order); 245 246 /** A simple constructor. */ 247 MSHR(); 248 249 /** 250 * Returns the current number of allocated targets. 251 * @return The current number of allocated targets. --- 58 unchanged lines hidden --- |