片上网络 On Chip Networks V

5.5 虚拟通道

虚拟通道(Virtual channel,VC)被称为互联网络中的瑞士军刀,最初作为避免死锁(deadlock)的解决方案被提出,同样在流控制中被用来避免队首阻塞(head-of-line blocking)。队首阻塞在所有上述提及的在每一个输入仅有一个队列的流控制技术都会发生,当队首的包被阻塞,将会使得所有后续的包在其后排队,即使已经有可用的资源。

本质上,一个虚拟通道是路由器中一个独立的队列,多个虚拟通道共享两个路由器之间的物理连线。通过将输入端和多个独立的队列相连,队首阻塞将会减少。当某个虚拟通道被阻塞,其他包仍然可以通过其他虚拟通道来穿过其他物理连接。因此虚拟通道可以提高物理连接的利用率并且提升整个网络的吞吐率。

技术上,尽管Dally最初提出虚拟通道是用于虫孔流控制,虚拟通道可以被应用在所有的上述提及的流控制技术中来减少队首阻塞,例如电路交换(circuit switching)、存储转发(store-and-forward)、虚拟直通(virtual cut-through)。然而,随着片上网络设计大量采用虫孔流控制,我们在这里假定是在虫孔流控制下,缓存器(buffer)和连接(link)在片(flit)粒度上进行管理和复用。一个例子如图所示。

VC例

从例子中可以看出,如果是单通道实现,则B包将会始终被A包在路由器1处阻塞,尽管资源已经允许其到达路由器2。虚拟通道的加入使得包B可以无视包A的阻塞到达路由器2。在每一个路由器上,虚拟通道被分配给头片(head flit)一次,之后其余的片继承并使用这个虚拟通道。使用虚拟通道流控制,来自不同包的片可以在相同的物理通道上交叉通过,从上例中时刻0和时刻2中可以观察到。

虚拟通道也被广泛应用于避免死锁,既包括在网络内部的死锁,也包括处理系统(system)级和协议(protocol)级的deadlock。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ping error: Destination off-link but no route作者 codercjg ...
    codercjg阅读 4,785评论 0 1
  • 文/驭风者 八百年衣衫褴褛与虎狼博 头顶的伤疤长成王冠 眼角万分之三的余光 扬起眉毛问一声 周天子的九个尿壶有多重...
    驭风者hou阅读 5,780评论 22 21
  • 小隐于城,大隐一世 有些人注定求而不得,该学会适时的舍弃;人世间大千万物变换无常,正如那七色云彩,或闲静、或迁徙、...
    赵凡一阅读 1,837评论 1 3
  • 一个身影从我面前经过耳畔响起被秋风吹落的古曲破碎的旋律是烟、是雾、是一段段忧郁的往事 往日的痕迹尽失留下的只有歌声...
    Jack老钱阅读 2,415评论 0 3

友情链接更多精彩内容