双向片上网络(BiNoC)路由器架构及通道控制机制解析
1. 通道控制模块
通道控制模块主要有两个功能:
1. 在运行时确定通道方向。
2. 向路由器中的交换分配器输出仲裁请求(arb_req)信号,以处理通道分配。
该模块通过一个由三个状态组成的有限状态机(FSM)实现。与传统路由器设计类似,基于虚拟通道流量控制的双向片上网络(BiNoC)采用了4级流水线架构,以提高时钟和吞吐量。
每个通道连接两个FSM:高优先级FSM和低优先级FSM,分别对应每个路由器的高优先级和低优先级端口。这两个FSM通过一对信号线(input_req和output_req)交换信息。
为了在路由器之间提供清晰的信号,所有相邻路由器之间的互连(包括数据和控制信号)都进行了双重注册。虽然这种设计有助于满足时序收敛要求,但会使路由器之间通信的往返延迟增加到4个周期。因此,每个缓冲区的深度至少应为4个片(flits),以确保不发生数据溢出。不过,这种设计在通道方向控制过程中会引入额外的延迟。如果移除这些寄存器,通道方向反转过程仅会产生一个死周期。
2. 虚拟通道分配器
虚拟通道分配器(VA)模块将输入虚拟通道的资源请求与下游路由器的可用虚拟通道进行匹配。其硬件开销会随着每个方向使用的虚拟通道数量增加而增加,复杂度和延迟取决于路由选择范围。
根据设计,路由电路会返回单个物理通道中的候选输出虚拟通道,供输入虚拟通道选择。输入仲裁的请求大小等于共享一个物理通道的虚拟通道数量v。考虑到电路面积和关键路径延迟,选择了一种基本的可分离分配器进行虚拟通道分配。
VA需要每个输入虚拟通道的第一级仲裁器选