Virtual-Channel Flow Control

W.J. Dally. "Virtual-Channel Flow Control." IEEE Transactions on Parallel and Distributed Systems (TPDS), 3(2):194–205, March 1992.

This is the classic paper that introduces virtual-channel flow control. Students should have already read the earlier related TOC'87 paper on using virtual channels to avoid deadlock. Essentially, this later TPDS'92 paper goes into more detail on how to implement virtual channels and their impact on performance. Students should be able to follow the entire paper, with the exception of the probabilistic analysis in Section 4. Interested students are encouraged to work through this analysis; Section 23.2 of Dally's text provides useful background information on this type of analysis. Students should pay particular attention to the Section 3.D which discusses implementation issues, and consider Dally's claims concerning the complexity of the three approaches in Figure 9. Students should also carefully read Section 5.C which discusses virtual-channel allocation and suggests applying virtual-channel flow control to provide different classes of service. Can this form of class differentiation be used to make any latency or bandwidth guarantees? How do you predict the general results in Section 5 would change if each packet included fewer than 20 flits? Dally mentions that the latency at medium loads can actually be worse with more virtual channels when assuming a fixed buffering constraint (Figure 16,19). Can you think of any explanations for this effect?