coherent_xbar.hh (10405:7a618c07e663) | coherent_xbar.hh (10656:bd376adfb7d4) |
---|---|
1/* 2 * Copyright (c) 2011-2014 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 | 1/* 2 * Copyright (c) 2011-2014 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 "base/hashmap.hh" | |
55#include "mem/snoop_filter.hh" 56#include "mem/xbar.hh" 57#include "params/CoherentXBar.hh" 58 59/** 60 * A coherent crossbar connects a number of (potentially) snooping 61 * masters and slaves, and routes the request and response packets 62 * based on the address, and also forwards all requests to the --- 191 unchanged lines hidden (view full) --- 254 255 }; 256 257 std::vector<SnoopRespPort*> snoopRespPorts; 258 259 std::vector<SlavePort*> snoopPorts; 260 261 /** | 54#include "mem/snoop_filter.hh" 55#include "mem/xbar.hh" 56#include "params/CoherentXBar.hh" 57 58/** 59 * A coherent crossbar connects a number of (potentially) snooping 60 * masters and slaves, and routes the request and response packets 61 * based on the address, and also forwards all requests to the --- 191 unchanged lines hidden (view full) --- 253 254 }; 255 256 std::vector<SnoopRespPort*> snoopRespPorts; 257 258 std::vector<SlavePort*> snoopPorts; 259 260 /** |
262 * Store the outstanding requests so we can determine which ones 263 * we generated and which ones were merely forwarded. This is used 264 * in the coherent crossbar when coherency responses come back. | 261 * Store the outstanding requests that we are expecting snoop 262 * responses from so we can determine which snoop responses we 263 * generated and which ones were merely forwarded. |
265 */ | 264 */ |
266 m5::hash_set<RequestPtr> outstandingReq; | 265 m5::hash_set<RequestPtr> outstandingSnoop; |
267 268 /** 269 * Keep a pointer to the system to be allow to querying memory system 270 * properties. 271 */ 272 System *system; 273 274 /** A snoop filter that tracks cache line residency and can restrict the --- 123 unchanged lines hidden --- | 266 267 /** 268 * Keep a pointer to the system to be allow to querying memory system 269 * properties. 270 */ 271 System *system; 272 273 /** A snoop filter that tracks cache line residency and can restrict the --- 123 unchanged lines hidden --- |