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 --- |