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