base.cc (12794:ba78a382b0f6) | base.cc (12820:5d66b60a2c47) |
---|---|
1/* 2 * Copyright (c) 2012-2013, 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 --- 334 unchanged lines hidden (view full) --- 343 bool satisfied = false; 344 { 345 PacketList writebacks; 346 // Note that lat is passed by reference here. The function 347 // access() calls accessBlock() which can modify lat value. 348 satisfied = access(pkt, blk, lat, writebacks); 349 350 // copy writebacks to write buffer here to ensure they logically | 1/* 2 * Copyright (c) 2012-2013, 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 --- 334 unchanged lines hidden (view full) --- 343 bool satisfied = false; 344 { 345 PacketList writebacks; 346 // Note that lat is passed by reference here. The function 347 // access() calls accessBlock() which can modify lat value. 348 satisfied = access(pkt, blk, lat, writebacks); 349 350 // copy writebacks to write buffer here to ensure they logically |
351 // proceed anything happening below | 351 // precede anything happening below |
352 doWritebacks(writebacks, forward_time); 353 } 354 355 // Here we charge the headerDelay that takes into account the latencies 356 // of the bus, if the packet comes from it. 357 // The latency charged it is just lat that is the value of lookupLatency 358 // modified by access() function, or if not just lookupLatency. 359 // In case of a hit we are neglecting response latency. --- 228 unchanged lines hidden (view full) --- 588 DPRINTF(CacheVerbose, "%s: packet %s found block: %s\n", 589 __func__, pkt->print(), blk->print()); 590 PacketPtr wb_pkt = writecleanBlk(blk, pkt->req->getDest(), pkt->id); 591 writebacks.push_back(wb_pkt); 592 pkt->setSatisfied(); 593 } 594 595 // handle writebacks resulting from the access here to ensure they | 352 doWritebacks(writebacks, forward_time); 353 } 354 355 // Here we charge the headerDelay that takes into account the latencies 356 // of the bus, if the packet comes from it. 357 // The latency charged it is just lat that is the value of lookupLatency 358 // modified by access() function, or if not just lookupLatency. 359 // In case of a hit we are neglecting response latency. --- 228 unchanged lines hidden (view full) --- 588 DPRINTF(CacheVerbose, "%s: packet %s found block: %s\n", 589 __func__, pkt->print(), blk->print()); 590 PacketPtr wb_pkt = writecleanBlk(blk, pkt->req->getDest(), pkt->id); 591 writebacks.push_back(wb_pkt); 592 pkt->setSatisfied(); 593 } 594 595 // handle writebacks resulting from the access here to ensure they |
596 // logically proceed anything happening below | 596 // logically precede anything happening below |
597 doWritebacksAtomic(writebacks); 598 assert(writebacks.empty()); 599 600 if (!satisfied) { 601 lat += handleAtomicReqMiss(pkt, blk, writebacks); 602 } 603 604 // Note that we don't invoke the prefetcher at all in atomic mode. --- 1751 unchanged lines hidden --- | 597 doWritebacksAtomic(writebacks); 598 assert(writebacks.empty()); 599 600 if (!satisfied) { 601 lat += handleAtomicReqMiss(pkt, blk, writebacks); 602 } 603 604 // Note that we don't invoke the prefetcher at all in atomic mode. --- 1751 unchanged lines hidden --- |