Per-link bandwidth can be changed by changing the latency of the link
whose bandwidth is to be changed. For e.g., if you want a link with
half the bandwidth, you should increase the latency to two cycles
assuming all other links are one cycle. Now, one thing is to be added
to NetworkLink_d.C; If nothing is added, every flit will take two
cycles but flits will travel in a pipelined manner. So, the bandwidth
is not reduced. What needs to be done is: in the wakeup function, a
flit should be picked up from the source queue only if either the
following is true:
1. The linkBuffer is empty
2. The flit in linkBuffer is about to be picked up by Input of Router
this cycle. This can be checked by comparing the current time with the
timestamp in the flit present at linkBuffer.
Adding these should solve your problem.
Cheers,
Niket
----- Original Message -----
From: kanchan damle <kanchan.damle@xxxxxxxxx>
Date: Monday, April 27, 2009 2:53 pm
Subject: [Gems-users] GARNET: Bandwidth
To: Gems Users <gems-users@xxxxxxxxxxx>
Dear Gems Users,
I was working on a fat tree topology and wanted to vary the
bandwidth to
account for congestion control for upper levels of the tree.
I do understand that in Garnet, bandwidth = flit size.
I was wondering, whether it is feasible to vary the link width and how
complex would that be?
Thanks a lot in advance.
---
Kanchan
|