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 ---