Hardware Reference
In-Depth Information
If we try to minimize further the overall buffer space it means that we need to
minimize private buffering too; the shared buffer remains the same holding L f C
L b 1 flits. If the private buffer space per VC drops below L f C L b 1 slots, say k,it
means that safety per VC cannot be guaranteed by the private buffer only. The L f C
L b 1 slots needed per VC for safety should be covered by using both the k private
buffers of each VC and some positions of the shared buffer. This configuration, and
using an independent ready/valid handshake for each VC, may create dependencies
across VCs that can possibly lead to a deadlock. Assume, for example, that the i th
VC uses its all of its private buffer, e.g., k slots with k<L f C L b 1 and the
rest needed to cover L f C L b 1 buffers in total from the shared buffer; it leaves
less than L f C L b 1 free slots in the shared buffer. Then, every other VC must
de-assert its ready signal, even if its private buffer is empty, since the available free
slots for each VC are less than L f C L b 1, which are needed to guarantee safe
operation per VC. Under this scenario, the traffic on one VC is allowed to block
the traffic on another VC, which removes the needed isolation property across VCs.
Such dependencies are removed if the shared buffer has more buffers to share across
VCs and each VC limits the maximum number of slots it can use from the shared
buffer (Becker 2012a ).
6.4.2
Pipelined Links with VCs Using Credit-Based
Flow Control
Using credits, safe operation is guaranteed even if there is only 1 empty slot per VC
of private space, but with very limited throughput due to the increased round-trip
time; no flit can be in flight if it has not consumed a credit beforehand thus there is
no minimum requirement for safe transmission. With credits, once a credit update
is sent backwards for a VC it means that a new flit will arrive for this VC after
L f C L b 1 cycles. Therefore, offering to a single VC L f C L b 1 buffers, means
that at the time the last flit is drained from the VC the first new one will arrive thus
leaving no gaps in the transmission and offering full throughput. A single active
VC can utilize both its private space and all the positions of the shared buffer and
achieve 100 % throughput, by effectively allowing this VC to use L f C L b buffers
in total, as needed by credit-based flow control.
The L f C L b buffers needed for one VC to achieve 100 % throughput in a
pipelined link with credit-based flow control can be achieved in many configurations
between the private and the shared buffer space. For example, the VC buffer can
allocate 1 buffer of private space per VC and have a shared buffer that can hold
L f C L b 1 flits. Equivalently, in another organization, each VC can have a 2-slots
of private buffering and the shared buffer can be sized to host a total of L f C L b 2
flits.
Search WWH ::




Custom Search