1/* 2 * Copyright (c) 2011-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 --- 295 unchanged lines hidden (view full) --- 304 Layer(_port, _xbar, _name) {} 305 306 protected: 307 308 void sendRetry(SlavePort* retry_port) 309 { retry_port->sendRetrySnoopResp(); } 310 }; 311 |
312 /** 313 * Cycles of front-end pipeline including the delay to accept the request 314 * and to decode the address. 315 */ 316 const Cycles frontendLatency; 317 /** Cycles of forward latency */ 318 const Cycles forwardLatency; 319 /** Cycles of response latency */ 320 const Cycles responseLatency; |
321 /** the width of the xbar in bytes */ 322 const uint32_t width; 323 324 AddrRangeMap<PortID> portMap; 325 326 /** 327 * Remember where request packets came from so that we can route 328 * responses to the appropriate port. This relies on the fact that --- 77 unchanged lines hidden (view full) --- 406 */ 407 AddrRangeList getAddrRanges() const; 408 409 /** 410 * Calculate the timing parameters for the packet. Updates the 411 * headerDelay and payloadDelay fields of the packet 412 * object with the relative number of ticks required to transmit 413 * the header and the payload, respectively. |
414 * 415 * @param pkt Packet to populate with timings 416 * @param header_delay Header delay to be added |
417 */ |
418 void calcPacketTiming(PacketPtr pkt, Tick header_delay); |
419 420 /** 421 * Remember for each of the master ports of the crossbar if we got 422 * an address range from the connected slave. For convenience, 423 * also keep track of if we got ranges from all the slave modules 424 * or not. 425 */ 426 std::vector<bool> gotAddrRanges; --- 49 unchanged lines hidden --- |