diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2013-02-19 05:56:06 -0500 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2013-02-19 05:56:06 -0500 |
commit | b3fc8839c4727da575ed916cbd6a76d8ad5fc644 (patch) | |
tree | 4a200b41d9d2c2222ca88d85af82dd17c330ea7f /src/mem/bus.hh | |
parent | 362160c8aeeb5b655158061ad57404124b4618f3 (diff) | |
download | gem5-b3fc8839c4727da575ed916cbd6a76d8ad5fc644.tar.xz |
mem: Make packet bus-related time accounting relative
This patch changes the bus-related time accounting done in the packet
to be relative. Besides making it easier to align the cache timing to
cache clock cycles, it also makes it possible to create a Last-Level
Cache (LLC) directly to a memory controller without a bus inbetween.
The bus is unique in that it does not ever make the packets wait to
reflect the time spent forwarding them. Instead, the cache is
currently responsible for making the packets wait. Thus, the bus
annotates the packets with the time needed for the first word to
appear, and also the last word. The cache then delays the packets in
its queues before passing them on. It is worth noting that every
object attached to a bus (devices, memories, bridges, etc) should be
doing this if we opt for keeping this way of accounting for the bus
timing.
Diffstat (limited to 'src/mem/bus.hh')
-rw-r--r-- | src/mem/bus.hh | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mem/bus.hh b/src/mem/bus.hh index 015bb51a0..35c206fa9 100644 --- a/src/mem/bus.hh +++ b/src/mem/bus.hh @@ -302,12 +302,13 @@ class BaseBus : public MemObject */ AddrRangeList getAddrRanges() const; - /** Calculate the timing parameters for the packet. Updates the - * firstWordTime and finishTime fields of the packet object. - * Returns the tick at which the packet header is completed (which - * will be all that is sent if the target rejects the packet). + /** + * Calculate the timing parameters for the packet. Updates the + * busFirstWordDelay and busLastWordDelay fields of the packet + * object with the relative number of ticks required to transmit + * the header and the first word, and the last word, respectively. */ - Tick calcPacketTiming(PacketPtr pkt); + void calcPacketTiming(PacketPtr pkt); /** * Ask everyone on the bus what their size is and determine the |