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