mem-garnet: Separable allocator in Garnet not fair enough.
authorSrikant Bharadwaj <srikant.bharadwaj@amd.com>
Tue, 16 Jul 2019 21:15:57 +0000 (17:15 -0400)
committerSrikant Bharadwaj <srikant.bharadwaj@amd.com>
Fri, 4 Sep 2020 22:17:36 +0000 (22:17 +0000)
commitd690ebed4649b6e5837e9ac0772d8e57b56ba482
tree194622342164ebef3ff24e3540a0908d65376c9e
parent028a1fa87ec8a5c8e1c1bcdca0bb0d72daaefb16
mem-garnet: Separable allocator in Garnet not fair enough.

Currently there are independent round robin arbiter at each
input port and output port. Every time a VC is selected for
output allocation round robin is incremented irrespective of
if it is selected by its output port or not. This leads to
unfair arbitration at input port and is well known[1]. This
patch fixes it to increment only if the output port also
selects it.

[1] D. U. Becker and W. J. Dally, "Allocator implementations
for network-on-chip routers," Proceedings of the Conference
on High Performance Computing Networking, Storage and
Analysis, Portland, OR, 2009, pp. 1-12

Change-Id: I65963fb8082c51c0e3c6e031a8b87b4f5c3626e1
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32601
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
src/mem/ruby/network/garnet2.0/SwitchAllocator.cc