summaryrefslogtreecommitdiff
path: root/src/mem/cache
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2012-08-22 11:39:56 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2012-08-22 11:39:56 -0400
commite317d8b9ff611f16e116946054ac9a90cb453300 (patch)
treea4c98536b209cedbacfe5d3e8f9f5d3b46d49885 /src/mem/cache
parent70e99e0b915fa7ed9ac682af6f68f077799ddea7 (diff)
downloadgem5-e317d8b9ff611f16e116946054ac9a90cb453300.tar.xz
Port: Extend the QueuedPort interface and use where appropriate
This patch extends the queued port interfaces with methods for scheduling the transmission of a timing request/response. The methods are named similar to the corresponding sendTiming(Snoop)Req/Resp, replacing the "send" with "sched". As the queues are currently unbounded, the methods always succeed and hence do not return a value. This functionality was previously provided in the subclasses by calling PacketQueue::schedSendTiming with the appropriate parameters. With this change, there is no need to introduce these extra methods in the subclasses, and the use of the queued interface is more uniform and explicit.
Diffstat (limited to 'src/mem/cache')
-rw-r--r--src/mem/cache/base.hh22
-rw-r--r--src/mem/cache/cache_impl.hh8
2 files changed, 4 insertions, 26 deletions
diff --git a/src/mem/cache/base.hh b/src/mem/cache/base.hh
index 79280f377..795347a0d 100644
--- a/src/mem/cache/base.hh
+++ b/src/mem/cache/base.hh
@@ -134,17 +134,6 @@ class BaseCache : public MemObject
queue.schedSendEvent(time);
}
- /**
- * Schedule the transmissions of a response packet at a given
- * point in time.
- *
- * @param pkt response packet
- * @param when time to send the response
- */
- void respond(PacketPtr pkt, Tick time) {
- queue.schedSendTiming(pkt, time, true);
- }
-
protected:
CacheMasterPort(const std::string &_name, BaseCache *_cache,
@@ -179,17 +168,6 @@ class BaseCache : public MemObject
/** Return to normal operation and accept new requests. */
void clearBlocked();
- /**
- * Schedule the transmissions of a response packet at a given
- * point in time.
- *
- * @param pkt response packet
- * @param when time to send the response
- */
- void respond(PacketPtr pkt, Tick time) {
- queue.schedSendTiming(pkt, time);
- }
-
protected:
CacheSlavePort(const std::string &_name, BaseCache *_cache,
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index 8e6c39644..4d8adbd90 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -407,7 +407,7 @@ Cache<TagStore>::timingAccess(PacketPtr pkt)
rec->restore(pkt, this);
delete rec;
- memSidePort->respond(pkt, time);
+ memSidePort->schedTimingSnoopResp(pkt, time);
return true;
}
@@ -500,7 +500,7 @@ Cache<TagStore>::timingAccess(PacketPtr pkt)
if (needsResponse) {
pkt->makeTimingResponse();
- cpuSidePort->respond(pkt, curTick()+lat);
+ cpuSidePort->schedTimingResp(pkt, curTick()+lat);
} else {
/// @todo nominally we should just delete the packet here,
/// however, until 4-phase stuff we can't because sending
@@ -933,7 +933,7 @@ Cache<TagStore>::handleResponse(PacketPtr pkt)
// isInvalidate() set otherwise.
target->pkt->cmd = MemCmd::ReadRespWithInvalidate;
}
- cpuSidePort->respond(target->pkt, completion_time);
+ cpuSidePort->schedTimingResp(target->pkt, completion_time);
break;
case MSHR::Target::FromPrefetcher:
@@ -1166,7 +1166,7 @@ doTimingSupplyResponse(PacketPtr req_pkt, uint8_t *blk_data,
// invalidate it.
pkt->cmd = MemCmd::ReadRespWithInvalidate;
}
- memSidePort->respond(pkt, curTick() + hitLatency);
+ memSidePort->schedTimingSnoopResp(pkt, curTick() + hitLatency);
}
template<class TagStore>