mem: Add crossbar latencies
authorMarco Balboni <Marco.Balboni@ARM.com>
Mon, 2 Mar 2015 09:00:46 +0000 (04:00 -0500)
committerMarco Balboni <Marco.Balboni@ARM.com>
Mon, 2 Mar 2015 09:00:46 +0000 (04:00 -0500)
commitd35dd71ab4ac44a79ac22dca82277a43cd59f3c6
treeeb42b8079289e3cef8f265556944941dc012e66c
parent7be9d4eb673b9d9b45eabfd40a56718569a2a1be
mem: Add crossbar latencies

This patch introduces latencies in crossbar that were neglected
before. In particular, it adds three parameters in crossbar model:
front_end_latency, forward_latency, and response_latency. Along with
these parameters, three corresponding members are added:
frontEndLatency, forwardLatency, and responseLatency. The coherent
crossbar has an additional snoop_response_latency.

The latency of the request path through the xbar is set as
--> frontEndLatency + forwardLatency

In case the snoop filter is enabled, the request path latency is charged
also by look-up latency of the snoop filter.
--> frontEndLatency + SF(lookupLatency) + forwardLatency.

The latency of the response path through the xbar is set instead as
--> responseLatency.

In case of snoop response, if the response is treated as a normal response
the latency associated is again
--> responseLatency;

If instead it is forwarded as snoop response we add an additional variable
+ snoopResponseLatency
and the latency associated is
--> snoopResponseLatency;

Furthermore, this patch lets the crossbar progress on the next clock
edge after an unused retry, changing the time the crossbar considers
itself busy after sending a retry that was not acted upon.
src/mem/XBar.py
src/mem/coherent_xbar.cc
src/mem/coherent_xbar.hh
src/mem/noncoherent_xbar.cc
src/mem/noncoherent_xbar.hh
src/mem/xbar.cc
src/mem/xbar.hh