1/* 2 * Copyright (c) 2013 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 --- 254 unchanged lines hidden (view full) --- 263 // do the actual memory access which also turns the packet into a 264 // response 265 access(pkt); 266 267 // turn packet around to go back to requester if response expected 268 if (needsResponse) { 269 // access already turned the packet into a response 270 assert(pkt->isResponse()); |
271 // Here we pay for xbar additional delay and to process the payload 272 // of the packet. 273 Tick time = curTick() + pkt->headerDelay + pkt->payloadDelay; 274 // Reset the timings of the packet |
275 pkt->headerDelay = pkt->payloadDelay = 0; 276 277 DPRINTF(DRAMSim2, "Queuing response for address %lld\n", 278 pkt->getAddr()); 279 280 // queue it to be sent back 281 responseQueue.push_back(pkt); 282 283 // if we are not already waiting for a retry, or are scheduled 284 // to send a response, schedule an event 285 if (!retryResp && !sendResponseEvent.scheduled()) |
286 schedule(sendResponseEvent, time); |
287 } else { 288 // @todo the packet is going to be deleted, and the DRAMPacket 289 // is still having a pointer to it 290 pendingDelete.push_back(pkt); 291 } 292} 293 294void DRAMSim2::readComplete(unsigned id, uint64_t addr, uint64_t cycle) --- 122 unchanged lines hidden --- |