else
NewVol link = Voltage _ table[ Cu v
rLe el lin k ]
NewFreq link = Frequency _ table[ C urLevel lin k ]
end if
end while
6.4.1.2 Hardware Implementation
The above DVS policy relies only on local link and buffer information. This
avoids communication overhead in relaying global information and permits
a simple hardware implementation. Figure 6.15 shows the hardware realization of the history-based DVS policy. To measure link utilization, a counter
at each output port gathers the total number of cycles that are used to relay
flits in each history interval. Another counter captures the ratio between the
router and link clocks. A simple Booth multiplier combines these two counters
to calculate link utilization. For calculating the exponential weighted average, W is set to 3 so that the division can be implemented as a shift and the
numerator as a shift-and-add operation. Two registers store LU past and BU past ,
which feed the circuit module calculating the exponential weighted average.
Finally, some combinational logic performs the threshold comparisons and
outputs signals that control the DVS link.
Link usage
ref clk/
link clk ratio
Link utilization
Input buffer utilization
Weight × x + y
Weight + 1
Weight × x + y
Weight + 1
x
x
y
y
shift
NewFreq link
Comparator
MUX
TH
threshold
threshold
TL
NewVol link
shift
+
178
Network-on-Chip
Figure 6.15
Hardware implementation of the history-based DVS policy. This circuitry sits at each output
port of a router, tracking and controlling the multiple links of that port.
NewVol link = Voltage _ table[ Cu v
rLe el lin k ]
NewFreq link = Frequency _ table[ C urLevel lin k ]
end if
end while
6.4.1.2 Hardware Implementation
The above DVS policy relies only on local link and buffer information. This
avoids communication overhead in relaying global information and permits
a simple hardware implementation. Figure 6.15 shows the hardware realization of the history-based DVS policy. To measure link utilization, a counter
at each output port gathers the total number of cycles that are used to relay
flits in each history interval. Another counter captures the ratio between the
router and link clocks. A simple Booth multiplier combines these two counters
to calculate link utilization. For calculating the exponential weighted average, W is set to 3 so that the division can be implemented as a shift and the
numerator as a shift-and-add operation. Two registers store LU past and BU past ,
which feed the circuit module calculating the exponential weighted average.
Finally, some combinational logic performs the threshold comparisons and
outputs signals that control the DVS link.
Link usage
ref clk/
link clk ratio
Link utilization
Input buffer utilization
Weight × x + y
Weight + 1
Weight × x + y
Weight + 1
x
x
y
y
shift
NewFreq link
Comparator
MUX
TH
threshold
threshold
TL
NewVol link
shift
+
178
Network-on-Chip
Figure 6.15
Hardware implementation of the history-based DVS policy. This circuitry sits at each output
port of a router, tracking and controlling the multiple links of that port.
