cache.cc (13859:4156ac0c7257) cache.cc (13860:8f8df5b68439)
1/*
2 * Copyright (c) 2010-2019 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

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

378 if (!mshr) {
379 // copy the request and create a new SoftPFReq packet
380 RequestPtr req = std::make_shared<Request>(pkt->req->getPaddr(),
381 pkt->req->getSize(),
382 pkt->req->getFlags(),
383 pkt->req->masterId());
384 pf = new Packet(req, pkt->cmd);
385 pf->allocate();
1/*
2 * Copyright (c) 2010-2019 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

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

378 if (!mshr) {
379 // copy the request and create a new SoftPFReq packet
380 RequestPtr req = std::make_shared<Request>(pkt->req->getPaddr(),
381 pkt->req->getSize(),
382 pkt->req->getFlags(),
383 pkt->req->masterId());
384 pf = new Packet(req, pkt->cmd);
385 pf->allocate();
386 assert(pf->getAddr() == pkt->getAddr());
386 assert(pf->matchAddr(pkt));
387 assert(pf->getSize() == pkt->getSize());
388 }
389
390 pkt->makeTimingResponse();
391
392 // request_time is used here, taking into account lat and the delay
393 // charged if the packet comes from the xbar.
394 cpuSidePort.schedTimingResp(pkt, request_time);

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

776 }
777 // not a cache fill, just forwarding response
778 // responseLatency is the latency of the return path
779 // from lower level cahces/memory to the core.
780 completion_time += clockEdge(responseLatency) +
781 pkt->payloadDelay;
782 if (pkt->isRead() && !is_error) {
783 // sanity check
387 assert(pf->getSize() == pkt->getSize());
388 }
389
390 pkt->makeTimingResponse();
391
392 // request_time is used here, taking into account lat and the delay
393 // charged if the packet comes from the xbar.
394 cpuSidePort.schedTimingResp(pkt, request_time);

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

776 }
777 // not a cache fill, just forwarding response
778 // responseLatency is the latency of the return path
779 // from lower level cahces/memory to the core.
780 completion_time += clockEdge(responseLatency) +
781 pkt->payloadDelay;
782 if (pkt->isRead() && !is_error) {
783 // sanity check
784 assert(pkt->getAddr() == tgt_pkt->getAddr());
784 assert(pkt->matchAddr(tgt_pkt));
785 assert(pkt->getSize() >= tgt_pkt->getSize());
786
787 tgt_pkt->setData(pkt->getConstPtr<uint8_t>());
788 }
789
790 // this response did not allocate here and therefore
791 // it was not consumed, make sure that any flags are
792 // carried over to cache above

--- 602 unchanged lines hidden ---
785 assert(pkt->getSize() >= tgt_pkt->getSize());
786
787 tgt_pkt->setData(pkt->getConstPtr<uint8_t>());
788 }
789
790 // this response did not allocate here and therefore
791 // it was not consumed, make sure that any flags are
792 // carried over to cache above

--- 602 unchanged lines hidden ---