snoop_filter.hh (11544:2383451ff6a5) snoop_filter.hh (11605:65ae342b627b)
1/*
1/*
2 * Copyright (c) 2013-2015 ARM Limited
2 * Copyright (c) 2013-2016 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

--- 127 unchanged lines hidden (view full) ---

138 * For an un-successful request, revert the change to the snoop
139 * filter. Also take care of erasing any null entries. This method
140 * relies on the result from lookupRequest being stored in
141 * reqLookupResult.
142 *
143 * @param will_retry This request will retry on this bus / snoop filter
144 * @param addr Packet address, merely for sanity checking
145 */
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

--- 127 unchanged lines hidden (view full) ---

138 * For an un-successful request, revert the change to the snoop
139 * filter. Also take care of erasing any null entries. This method
140 * relies on the result from lookupRequest being stored in
141 * reqLookupResult.
142 *
143 * @param will_retry This request will retry on this bus / snoop filter
144 * @param addr Packet address, merely for sanity checking
145 */
146 void finishRequest(bool will_retry, const Addr addr);
146 void finishRequest(bool will_retry, Addr addr, bool is_secure);
147
148 /**
149 * Handle an incoming snoop from below (the master port). These
150 * can upgrade the tracking logic and may also benefit from
151 * additional steering thanks to the snoop filter.
152 *
153 * @param cpkt Pointer to const Packet containing the snoop.
154 * @return Pair with a vector of SlavePorts that need snooping and a lookup

--- 122 unchanged lines hidden (view full) ---

277 std::vector<PortID> localSlavePortIds;
278 /** Cache line size. */
279 const unsigned linesize;
280 /** Latency for doing a lookup in the filter */
281 const Cycles lookupLatency;
282 /** Max capacity in terms of cache blocks tracked, for sanity checking */
283 const unsigned maxEntryCount;
284
147
148 /**
149 * Handle an incoming snoop from below (the master port). These
150 * can upgrade the tracking logic and may also benefit from
151 * additional steering thanks to the snoop filter.
152 *
153 * @param cpkt Pointer to const Packet containing the snoop.
154 * @return Pair with a vector of SlavePorts that need snooping and a lookup

--- 122 unchanged lines hidden (view full) ---

277 std::vector<PortID> localSlavePortIds;
278 /** Cache line size. */
279 const unsigned linesize;
280 /** Latency for doing a lookup in the filter */
281 const Cycles lookupLatency;
282 /** Max capacity in terms of cache blocks tracked, for sanity checking */
283 const unsigned maxEntryCount;
284
285 /**
286 * Use the lower bits of the address to keep track of the line status
287 */
288 enum LineStatus {
289 /** block holds data from the secure memory space */
290 LineSecure = 0x01,
291 };
292
285 /** Statistics */
286 Stats::Scalar totRequests;
287 Stats::Scalar hitSingleRequests;
288 Stats::Scalar hitMultiRequests;
289
290 Stats::Scalar totSnoops;
291 Stats::Scalar hitSingleSnoops;
292 Stats::Scalar hitMultiSnoops;

--- 22 unchanged lines hidden ---
293 /** Statistics */
294 Stats::Scalar totRequests;
295 Stats::Scalar hitSingleRequests;
296 Stats::Scalar hitMultiRequests;
297
298 Stats::Scalar totSnoops;
299 Stats::Scalar hitSingleSnoops;
300 Stats::Scalar hitMultiSnoops;

--- 22 unchanged lines hidden ---