1/*
2 * Copyright (c) 2011-2015, 2017 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

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

46/**
47 * @file
48 * Declaration of a coherent crossbar.
49 */
50
51#ifndef __MEM_COHERENT_XBAR_HH__
52#define __MEM_COHERENT_XBAR_HH__
53
54#include <unordered_map>
55#include <unordered_set>
56
57#include "mem/snoop_filter.hh"
58#include "mem/xbar.hh"
59#include "params/CoherentXBar.hh"
60
61/**
62 * A coherent crossbar connects a number of (potentially) snooping

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

259 /**
260 * Store the outstanding requests that we are expecting snoop
261 * responses from so we can determine which snoop responses we
262 * generated and which ones were merely forwarded.
263 */
264 std::unordered_set<RequestPtr> outstandingSnoop;
265
266 /**
267 * Store the outstanding cache maintenance that we are expecting
268 * snoop responses from so we can determine when we received all
269 * snoop responses and if any of the agents satisfied the request.
270 */
271 std::unordered_map<PacketId, PacketPtr> outstandingCMO;
272
273 /**
274 * Keep a pointer to the system to be allow to querying memory system
275 * properties.
276 */
277 System *system;
278
279 /** A snoop filter that tracks cache line residency and can restrict the
280 * broadcast needed for probes. NULL denotes an absent filter. */
281 SnoopFilter *snoopFilter;

--- 166 unchanged lines hidden ---