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
  
 |