cache.cc (11190:0964165d1857) cache.cc (11194:c3ba89c653a9)
1/*
2 * Copyright (c) 2010-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

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

661 // @todo: Make someone pay for this
662 pkt->headerDelay = pkt->payloadDelay = 0;
663
664 // In this case we are considering request_time that takes
665 // into account the delay of the xbar, if any, and just
666 // lat, neglecting responseLatency, modelling hit latency
667 // just as lookupLatency or or the value of lat overriden
668 // by access(), that calls accessBlock() function.
1/*
2 * Copyright (c) 2010-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

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

661 // @todo: Make someone pay for this
662 pkt->headerDelay = pkt->payloadDelay = 0;
663
664 // In this case we are considering request_time that takes
665 // into account the delay of the xbar, if any, and just
666 // lat, neglecting responseLatency, modelling hit latency
667 // just as lookupLatency or or the value of lat overriden
668 // by access(), that calls accessBlock() function.
669 cpuSidePort->schedTimingResp(pkt, request_time);
669 cpuSidePort->schedTimingResp(pkt, request_time, true);
670 } else {
671 // queue the packet for deletion, as the sending cache is
672 // still relying on it; if the block is found in access(),
673 // CleanEvict and Writeback messages will be deleted
674 // here as well
675 pendingDelete.reset(pkt);
676 }
677 } else {

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

718
719 pkt->makeTimingResponse();
720 // for debugging, set all the bits in the response data
721 // (also keeps valgrind from complaining when debugging settings
722 // print out instruction results)
723 std::memset(pkt->getPtr<uint8_t>(), 0xFF, pkt->getSize());
724 // request_time is used here, taking into account lat and the delay
725 // charged if the packet comes from the xbar.
670 } else {
671 // queue the packet for deletion, as the sending cache is
672 // still relying on it; if the block is found in access(),
673 // CleanEvict and Writeback messages will be deleted
674 // here as well
675 pendingDelete.reset(pkt);
676 }
677 } else {

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

718
719 pkt->makeTimingResponse();
720 // for debugging, set all the bits in the response data
721 // (also keeps valgrind from complaining when debugging settings
722 // print out instruction results)
723 std::memset(pkt->getPtr<uint8_t>(), 0xFF, pkt->getSize());
724 // request_time is used here, taking into account lat and the delay
725 // charged if the packet comes from the xbar.
726 cpuSidePort->schedTimingResp(pkt, request_time);
726 cpuSidePort->schedTimingResp(pkt, request_time, true);
727
728 // If an outstanding request is in progress (we found an
729 // MSHR) this is set to null
730 pkt = pf;
731 }
732
733 if (mshr) {
734 /// MSHR hit

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

1325 // propagate that. Response should not have
1326 // isInvalidate() set otherwise.
1327 tgt_pkt->cmd = MemCmd::ReadRespWithInvalidate;
1328 DPRINTF(Cache, "%s updated cmd to %s for addr %#llx\n",
1329 __func__, tgt_pkt->cmdString(), tgt_pkt->getAddr());
1330 }
1331 // Reset the bus additional time as it is now accounted for
1332 tgt_pkt->headerDelay = tgt_pkt->payloadDelay = 0;
727
728 // If an outstanding request is in progress (we found an
729 // MSHR) this is set to null
730 pkt = pf;
731 }
732
733 if (mshr) {
734 /// MSHR hit

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

1325 // propagate that. Response should not have
1326 // isInvalidate() set otherwise.
1327 tgt_pkt->cmd = MemCmd::ReadRespWithInvalidate;
1328 DPRINTF(Cache, "%s updated cmd to %s for addr %#llx\n",
1329 __func__, tgt_pkt->cmdString(), tgt_pkt->getAddr());
1330 }
1331 // Reset the bus additional time as it is now accounted for
1332 tgt_pkt->headerDelay = tgt_pkt->payloadDelay = 0;
1333 cpuSidePort->schedTimingResp(tgt_pkt, completion_time);
1333 cpuSidePort->schedTimingResp(tgt_pkt, completion_time, true);
1334 break;
1335
1336 case MSHR::Target::FromPrefetcher:
1337 assert(tgt_pkt->cmd == MemCmd::HardPFReq);
1338 if (blk)
1339 blk->status |= BlkHWPrefetched;
1340 delete tgt_pkt->req;
1341 delete tgt_pkt;

--- 1196 unchanged lines hidden ---
1334 break;
1335
1336 case MSHR::Target::FromPrefetcher:
1337 assert(tgt_pkt->cmd == MemCmd::HardPFReq);
1338 if (blk)
1339 blk->status |= BlkHWPrefetched;
1340 delete tgt_pkt->req;
1341 delete tgt_pkt;

--- 1196 unchanged lines hidden ---