片上网络 On Chip Networks VI

6.1 虚拟通道路由器微结构

图示是一个最新的credit-based virtual channel router的微结构。这里假设一个二维mesh结构,因此路由器有5个输入端和5个输出端,对应于4个邻接方向和本地PE端。这个路由器的5个主要组成部分是输入缓冲器(input buffer)、路由计算逻辑(route computation logic)、虚拟通道分配器(virtual channel allocator)、开关分配器(switch allocator)和交叉开关(crossbar switch)。大多数NoC路由器使用输入缓冲,包在输入端被存入缓冲器中,因为输入端缓冲机制下可以使用单端口存储器。这里假设每个输入端有4个VC,每个VC有4个片深度的缓冲队列。

Router Microarchitecture

片自从其进入路由器起,整个在路由器中停留的时间都保存在这些缓冲器中。这与处理器流水线中将指令在流水线级间的缓冲器中进行锁存(latching)是不同的。如果不使用源路由(source routing),则路由计算逻辑将会计算(或者查找)这个包的正确的输出端。VC分配器和开关分配器(virtual channel allocator and switch allocator)选择片来进入下一个阶段:即通过交叉开关。最终,交叉开关物理上将片从输入端转移到输出端。

接下来几节分别讨论各个组成部分。

6.4 分配器和仲裁器

一个分配器将N个请求(request)匹配(match)到M个资源(resource),一个仲裁器将N个请求匹配到1个资源。在一个r路由器中,资源是指VC和交叉开关端口。

在一个没有VC的虫孔路由器中中,在每一个输出端处的开关分配器(switch arbiter,SA)将该输出端匹配和授权给发出请求的输入端,因此,有P个仲裁器,分别位于每个输出端,每一个都可以在竞争条件下将P个输入端的请求匹配到其所在的输出端。

在一个多VC的router中,我们需要一个虚拟通道分配器(virtual channel allocator,VA),用以解析对输出 VC的竞争并且把他们授权(grant)给输入VC,以及一个SA来将交叉开关端口授权给输入VC。一个包中仅有头片需要VA,而所有的片都需要在每个周期中通过SA。

具有较高匹配概率的分配器或仲裁器可以使得更多的包成功获得VC并且通过交叉开关,因此可以提高网络的吞吐率(throughput)。在大多数的NoC中,路由器中的分配逻辑(allocation logic)决定了周期的时长(cycle time)。因此,分配器和仲裁器必须是快速的、可流水的,这样使得他们可以在较高的时钟频率下工作。

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

友情链接更多精彩内容