noncoherent_xbar.cc (13847:c9b92a513019) | noncoherent_xbar.cc (13856:c4a7f25aacb4) |
---|---|
1/* 2 * Copyright (c) 2011-2015, 2018 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 --- 94 unchanged lines hidden (view full) --- 103{ 104 // determine the source port based on the id 105 SlavePort *src_port = slavePorts[slave_port_id]; 106 107 // we should never see express snoops on a non-coherent crossbar 108 assert(!pkt->isExpressSnoop()); 109 110 // determine the destination based on the address | 1/* 2 * Copyright (c) 2011-2015, 2018 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 --- 94 unchanged lines hidden (view full) --- 103{ 104 // determine the source port based on the id 105 SlavePort *src_port = slavePorts[slave_port_id]; 106 107 // we should never see express snoops on a non-coherent crossbar 108 assert(!pkt->isExpressSnoop()); 109 110 // determine the destination based on the address |
111 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); 112 PortID master_port_id = findPort(addr_range); | 111 PortID master_port_id = findPort(pkt->getAddrRange()); |
113 114 // test if the layer should be considered occupied for the current 115 // port 116 if (!reqLayers[master_port_id]->tryTiming(src_port)) { 117 DPRINTF(NoncoherentXBar, "recvTimingReq: src %s %s 0x%x BUSY\n", 118 src_port->name(), pkt->cmdString(), pkt->getAddr()); 119 return false; 120 } --- 129 unchanged lines hidden (view full) --- 250 DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n", 251 slavePorts[slave_port_id]->name(), pkt->getAddr(), 252 pkt->cmdString()); 253 254 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0; 255 unsigned int pkt_cmd = pkt->cmdToIndex(); 256 257 // determine the destination port | 112 113 // test if the layer should be considered occupied for the current 114 // port 115 if (!reqLayers[master_port_id]->tryTiming(src_port)) { 116 DPRINTF(NoncoherentXBar, "recvTimingReq: src %s %s 0x%x BUSY\n", 117 src_port->name(), pkt->cmdString(), pkt->getAddr()); 118 return false; 119 } --- 129 unchanged lines hidden (view full) --- 249 DPRINTF(NoncoherentXBar, "recvAtomic: packet src %s addr 0x%x cmd %s\n", 250 slavePorts[slave_port_id]->name(), pkt->getAddr(), 251 pkt->cmdString()); 252 253 unsigned int pkt_size = pkt->hasData() ? pkt->getSize() : 0; 254 unsigned int pkt_cmd = pkt->cmdToIndex(); 255 256 // determine the destination port |
258 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); 259 PortID master_port_id = findPort(addr_range); | 257 PortID master_port_id = findPort(pkt->getAddrRange()); |
260 261 // stats updates for the request 262 pktCount[slave_port_id][master_port_id]++; 263 pktSize[slave_port_id][master_port_id] += pkt_size; 264 transDist[pkt_cmd]++; 265 266 // forward the request to the appropriate destination 267 auto master = masterPorts[master_port_id]; --- 35 unchanged lines hidden (view full) --- 303 if (p->trySatisfyFunctional(pkt)) { 304 if (pkt->needsResponse()) 305 pkt->makeResponse(); 306 return; 307 } 308 } 309 310 // determine the destination port | 258 259 // stats updates for the request 260 pktCount[slave_port_id][master_port_id]++; 261 pktSize[slave_port_id][master_port_id] += pkt_size; 262 transDist[pkt_cmd]++; 263 264 // forward the request to the appropriate destination 265 auto master = masterPorts[master_port_id]; --- 35 unchanged lines hidden (view full) --- 301 if (p->trySatisfyFunctional(pkt)) { 302 if (pkt->needsResponse()) 303 pkt->makeResponse(); 304 return; 305 } 306 } 307 308 // determine the destination port |
311 AddrRange addr_range = RangeSize(pkt->getAddr(), pkt->getSize()); 312 PortID dest_id = findPort(addr_range); | 309 PortID dest_id = findPort(pkt->getAddrRange()); |
313 314 // forward the request to the appropriate destination 315 masterPorts[dest_id]->sendFunctional(pkt); 316} 317 318NoncoherentXBar* 319NoncoherentXBarParams::create() 320{ --- 13 unchanged lines hidden --- | 310 311 // forward the request to the appropriate destination 312 masterPorts[dest_id]->sendFunctional(pkt); 313} 314 315NoncoherentXBar* 316NoncoherentXBarParams::create() 317{ --- 13 unchanged lines hidden --- |