mem: Make packet bus-related time accounting relative
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 19 Feb 2013 10:56:06 +0000 (05:56 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 19 Feb 2013 10:56:06 +0000 (05:56 -0500)
commitb3fc8839c4727da575ed916cbd6a76d8ad5fc644
tree4a200b41d9d2c2222ca88d85af82dd17c330ea7f
parent362160c8aeeb5b655158061ad57404124b4618f3
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.
src/mem/bus.cc
src/mem/bus.hh
src/mem/cache/cache_impl.hh
src/mem/coherent_bus.cc
src/mem/noncoherent_bus.cc
src/mem/packet.hh