面向片上网络的低延迟路由器结构.pdf

上传人:r7 文档编号:1498559 上传时间:2018-06-18 格式:PDF 页数:17 大小:1.15MB
返回 下载 相关 举报
摘要
申请专利号:

CN201010180057.6

申请日:

2010.05.24

公开号:

CN101841420A

公开日:

2010.09.22

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):H04L 12/02申请日:20100524授权公告日:20111123终止日期:20120524|||授权|||实质审查的生效IPC(主分类):H04L 12/02申请日:20100524|||公开

IPC分类号:

H04L12/02; H04L12/56; H04L29/06

主分类号:

H04L12/02

申请人:

中国人民解放军国防科学技术大学

发明人:

李晋文; 齐树波; 张民选; 邢座程; 曹跃胜; 胡军; 冯超超; 赵天磊; 乐大珩; 贾小敏; 陈延仓

地址:

410073 湖南省长沙市开福区德雅路109号

优先权:

专利代理机构:

国防科技大学专利服务中心 43202

代理人:

郭敏

PDF下载: PDF下载
内容摘要

本发明公开了一种面向片上网络的低延迟路由器结构,目的是解决现有路由器结构转发报片延迟较大和不能够充分的利用物理链路中的存储资源的问题。本发明由P个输入单元,P个输出单元和P个通道双缓冲组成;每个输入单元由一个缓冲分配器,一个输入缓冲器和P个虚拟输出地址队列组成;每个输出单元由一个P:1仲裁器和一个P:1选择器组成;通道双缓冲由控制器和双缓冲器组成,控制器由一个读指针、一个写指针和一个状态机组成,双缓冲器由两个寄存器组和一个选择器组成。路由器之间的报片传输采用准备好-有效的同步握手协议。采用本发明既降低转发报片延迟,又降低设计复杂度,且充分利用了物理链路中的存储资源,提高了输入单元缓冲器的利用率。

权利要求书

1: 一种面向片上网络的低延迟路由器结构, 其特征在于它由 P 个输入单元, P 个输出 单元和 P 个通道双缓冲组成 ; 每个输入单元接收来自上游路由器的报片和有效信号, 并向 上游路由器返回准备好信号 ; 输入单元向每个输出单元发送申请使用该输出端口的请求信 号, 并向每个输出单元发送将要传输的报片 ; 每个输出单元接收 P 个输入单元的使用该端 口的请求信号和报片, 同时接收通道双缓冲的缓冲准备好信号 ; 缓冲准备好信号有效时, 输 出单元中的仲裁器完成仲裁操作, 并向获得仲裁的输入单元发送应答信号 ; 每个通道双缓 冲与一个输出单元相连, 接收输出单元的报片和报片有效信号, 向输出单元发送缓冲准备 好信号 ; 当报片有效信号有效且通道双缓冲中有剩余空间的时候, 将报片写入到通道双缓 冲中 ; 每个通道双缓冲与下游路由器相连, 向下一个路由器发送报片和有效信号, 同时接收 来自下游路由器的输入准备好信号 ; 路由器之间的报片传输采用准备好 - 有效的同步握手 协议 : 通道双缓冲中存在等待转发的报片时, 向下游路由器发送输出有效信号, 下游路由器 的输入单元的输入缓冲器不为满的时候, 向上游路由器发送输出准备好信号 ; 下游路由器 的输入单元的输入缓冲器为满的时候, 通道双缓冲缓冲报片 ; P 为正整数 ; 每个输入单元由一个缓冲分配器, 一个输入缓冲器和 P 个虚拟输出地址队列组成 : 缓 冲分配器一方面向上游的路由器发送准备好信号, 为接收到的报片在输入缓冲器中分配存 储空间, 生成输入缓冲器的写地址和写使能信号 ; 一方面根据接收到的报片的虚拟输出地 址队列标识符, 向该标识符标识的虚拟输出地址队列发送写使能信号, 并将报片在输入缓 冲器中分配的地址和报片类型发送到虚拟输出地址队列 ; 缓冲分配器由缓冲状态向量, 准 备好产生逻辑和优先级编码器组成 : 缓冲状态向量记录缓冲器每项的状态, 缓冲状态向量 宽度与缓冲器深度相同, 均为 D, D 是 2 的整数次幂 ; 准备好生成逻辑是一个 D 输入的与非 门, 根据缓冲状态向量生成发送到上游路由器的输出准备好信号, 缓冲状态向量只要有一 位以上为 “0” , 准备好信号有效 ; 优先级编码器是一个组合逻辑, 采用标准的优先级编码算 法, 对缓冲状态向量进行优先级编码, 生成输入缓冲器的写地址 ; 输入缓冲器是一个深度为 D 的寄存器文件, 包含一个写端口和 P 个读端口, 根据缓冲分 配器发来的写地址和写使能信号将报片的数据体写入, 根据虚拟输出地址队列发送的读地 址, 将报片的数据体发送到相应的输出端口 ; 虚拟输出地址队列由地址队列、 提前路由计算单元组成, 它根据来自缓冲分配器的写 使能信号, 将从上游路由器中获得的报片在输入缓冲器中的地址添加到地址队列中, 且将 位于队列头的报片在输入缓冲器中的地址发送到输入缓冲器 ; 输出到同一个输出端口的报 片在输入缓冲器中的地址均存储在同一个虚拟输出地址队列中, 即同一个虚拟输出地址队 列中的地址所指向的输入缓冲器中的报片均发送到同一个输出端口 ; 提前路由计算单元对 报片进行提前路由计算, 计算报片在下一个路由器中的输出端口 ; 地址队列由队列移位控制器和先进先出队列组成, 队列移位控制器接收缓冲分配器的 写使能信号和输出单元的应答信号, 控制先进先出队列的移位, 向先进先出队列发送移位 控制信号 ; 每个输出单元由一个 P:1 仲裁器和一个 P:1 选择器组成, 每个仲裁器接收 P 个输入单 元的申请使用该输出端口的请求, 并且接收与该输出单元相连的通道双缓冲的缓冲准备好 信号 ; 仲裁器接收到的 P 个输入请求有一个请求有效时, 向通道双缓冲发送报片有效信号 ; 仲裁器接收到的缓冲准备好信号有效时, 对 P 个输入请求进行仲裁, 向获得仲裁的输入单 2 元发送应答信号 ; P:1 选择器根据仲裁器的仲裁结果从 P 个输入单元中选择获得仲裁的输 入单元的输入报片, 将该报片输出到通道双缓冲 ; 通道双缓冲由控制器和双缓冲器组成, 控制器与输出单元的仲裁器和下一个路由器的 输入单元相连接 ; 它接收来自下一个路由器的准备好信号, 向下一个路由器发送有效信号 ; 控制器接收输出单元的仲裁器的报片有效信号, 并向仲裁器发送缓冲准备好信号 ; 控制器 同时向双缓冲发送写使能信号和选择信号 ; 控制器由一个读指针、 一个写指针和一个状态 机组成 ; 写指针的位宽是一位, 当报片有效信号和缓冲准备好信号同时有效时, 写指针取 反; 写指针为 “0” , 发送到双缓冲的第一写使能信号有效, 写指针为 “1” , 发送到双缓冲器的 第二写使能信号有效 ; 读指针的位宽是一位, 当有效信号和准备好信号同时有效时, 读指针 取反, 读指针作为选择信号发送到双缓冲器 ; 状态机总共有四个状态, “00” 状态表示双缓冲 器中的两组寄存器中数据均无效 ; “01” 状态表示双缓冲器中第一组寄存器中数据有效, 第 二组寄存器中的数据无效 ; “10” 状态表示双缓冲器中第一组寄存器中数据无效, 第二组寄 存器中的数据有效 ; “11” 状态表示双缓冲器中的两组寄存器中的数据均有效 ; 双缓冲器与输出单元的选择器和下一个路由器的输入缓冲器相连, 由两个寄存器组和 一个 2 ∶ 1 选择器组成 ; 当第一写使能信号有效时, 将来自输出单元的选择器的报片写到第 一寄存器组中 ; 当第二写使能信号有效时, 将来自输出单元的选择器的报片写入到第二寄 存器组中 ; 当选择信号为 “0” 时, 选择第一寄存器组中的报片输出, 当选择信号为 “1” 时, 选 择第二寄存器组中的报片输出。
2: 如权利要求 1 所述的面向片上网络的低延迟路由器结构, 其特征在于一个报文由一 个报文头报片, 多个报文体报片和一个报文尾报片组成, 报片由三个域组成 : 报片类型, 虚 拟输出地址队列标识符和数据体 ; 报片类型域标识报片属于三种报片类型中的哪一种, 宽 度为 T, T 为正整数 ; 虚拟输出地址队列标识符域的宽度为 P, 用于标识该报片在输入单元的 输入缓冲器中的地址加入到哪个虚拟输出地址队列中 ; 数据体域的宽度为 U 位, 表示该报 片携带的数据部分, U 为正整数。
3: 如权利要求 1 所述的面向片上网络的低延迟路由器结构, 其特征在于所述缓冲状态 向量的每位记录相应的缓冲器项的状态, “1” 表示该项缓冲器中的报片有效, 不能够将该项 缓冲器分配给新的报片 ; “0” 表示该项为空, 可以分配给新来的报片。
4: 如权利要求 1 所述的面向片上网络的低延迟路由器结构, 其特征在于所述队列移位 控制器包含一个队列尾向量, 长度是 D+1 ; 队列尾向量中有且仅有一位为 “1” , “1” 的位置标 明该位置是先进先出队列的队列尾 ; 队列尾向量的第一位为 “1” 时, 表示先进先出队列为 空, 最后一位为 “1” 时, 表示先进先出队列为满 ; 队列移位控制器接收到的写使能信号有效 时, 先进先出队列将输入数据写入到队列尾向量指定的位置后, 队列尾向量向队列尾移动 一位 ; 队列移位控制器接收到应答信号时, 先进先出队列向队列头移动一个位置, 队列头离 开队列, 队列尾向量向队列头移动一位 ; 队列移位控制器接收到的写使能信号和应答信号 同时有效时, 先进先出队列首先将输入数据写到由队列尾向量指定的位置, 然后队列头离 队, 且队列中所有的有效项均向队列头移动一个位置, 队列尾向量保持不变。
5: 如权利要求 1 所述的面向片上网络的低延迟路由器结构, 其特征在于所述状态机的 状态转换关系是上电复位时, 状态机处于状态 “00” , 向仲裁器发送缓冲准备好信号, 若报片 有效信号和缓冲准备好信号同时有效, 且写指针为 “0” , 转移到 “01” 状态 ; 若报片有效信号 3 和缓冲准备好信号同时有效, 且写指针为 “1” , 转移到 “10” 状态 ; 状态机处于 “01” 状态时, 向仲裁器发送缓冲准备好信号并向下一个路由器发送有效信号, 当报片有效信号和缓冲准 备好信号同时有效, 且写指针为 “1” 时, 转移到 “11” 状态 ; 当有效信号和准备好信号同时有 效, 且读指针为 “0” 时, 转移到 “00” 状态 ; 若报片有效信号和缓冲准备好信号同时有效, 且 有效信号和准备好信号同时有效时, 转移到 “10” 状态 ; 状态机处于 “11” 状态时, 向下一个 路由器发送有效信号, 当有效信号和准备好信号同时有效, 且读指针为 “0” 时, 转移到 “10” 状态 ; 当有效信号和准备好信号同时有效, 且读指针为 “1” 时, 转移到 “01” 状态 ; 状态机处 于 “10” 状态时, 向仲裁器发送缓冲准备好信号并向下一个路由器发送有效信号, 报片有效 信号和缓冲准备好信号同时有效, 且写指针为 “0” 时, 转移到 “11” 状态 ; 当有效信号和准备 好信号同时有效, 且读指针为 “1” 时, 转移到 “00” 状态 ; 若报片有效信号和缓冲准备好信号 同时有效, 且有效信号和准备好信号同时有效时, 转移到 “01” 状态。
6: 如权利要求 2 所述的面向片上网络的低延迟路由器结构, 其特征在于所述 T 为 3 位, U 为 64 位到 256 位。

说明书


面向片上网络的低延迟路由器结构

    【技术领域】
     本 发 明 涉 及 微 处 理 器 领 域 中 的 一 种 片 上 路 由 器 结 构, 尤其是片上多处理器 (ChipMulitProcessor) 中处理器核和高速缓冲体之间的互连结构。背景技术
     随着 CMOS 集成电路工艺尺寸的等比例缩小, 单芯片上集成的处理器核的数量迅 速增加, 当今商用处理器中处理器核已经达到 16 个, 处理器核数量比较少的时候, 可以采 用交叉开关等集中式的互连结构。交叉开关的可扩展性比较差, 当处理器核的数量达到数 十个甚至上百个的时候, 由于设计复杂度和面积开销, 已经不再适合。同时, 互连线延迟相 对于逻辑门延迟增加, 增加了多核处理器的设计复杂性。片上网络 NoC(Network-on-Chip) 具有可预测的互连线延迟, 良好的可扩展性和规整的结构等特点, 能够降低多核处理器的 设计复杂度, 成为未来处理器核以及存储体之间的一种非常有前景的互连结构。处理器连 接在路由器上, 路由器之间相互连接, 从而组成一个网络, 处理器之间的通信通过多个路由 器节点后才能到达目的节点。
     面向片上多处理器的应用程序的性能对单个路由器的延迟更加敏感, 路由器的延 迟从 1 个时钟周期增加到 5 个时钟周期时, 整个程序执行时间增加了 10%。片上网络中物 理链路的负载很低, 链路竞争很小。网络的平均延迟除了与路由器的延迟和网络的跳步有 关之外, 还与报文的串行延迟有关。 而在面向片上多处理器的片上网络中, 通信报文可以分 为两种类型即读写请求报文和数据传输报文。每个报文由多个报片组成, 报片分为三种类 型: 报文头报片、 报文体报片和报文尾报片。一个报文由一个报文头报片, 多个报文体报片 和一个报文尾报片组成。片上网络中具有丰富的互连线资源, 物理链路宽度可以达到 64 到 128 位。 在物理链路的宽度为 128 位, 处理器中的高速缓冲行为 64 字节的时候, 读写请求报 文和数据传输报文的长度分别是 1 个报片和 5 个报片, 报文长度相对较短, 报文的串行延迟 比较小。因此设计低延迟的路由器对高性能的多核处理器具有非常重要的意义。
     传统的虚通道路由器主要由 P 个输入单元、 一个虚通道分配器、 一个交叉开关分 配器、 一个交叉开关和 P 个输出控制器组成。每个输入单元从上游路由器接收报片和虚通 道标识, 并向上游路由器返回信用点。每个输入单元将接收到的报片写入到由虚通道标识 指定的虚通道中。每个输入单元的虚通道向虚通道分配器发送申请输出虚通道的请求信 号, 也向交叉开关分配器发送申请输出端口的请求信号。 输入单元也向交叉开关发送报片。 虚通道分配器接收输入单元中的虚通道的请求, 输出控制器中的输出虚通道的状态, 完成 虚通道分配操作, 向输入单元的虚通道返回为其分配的输出虚通道号, 同时也向输出控制 器发送更新输出虚通道状态信号。 交叉开关分配器接收输入单元中的虚通道申请输出端口 的请求信号, 和输出控制器的输出虚通道的缓冲状态, 完成交叉开关分配, 向输入单元的虚 通道发送应答信号, 同时也向输出控制器发送更新输出虚通道缓冲状态信号。交叉开关的 输入端口和输入端口的数量均为 P, 接受 P 个输入单元发送的报片, 将报片转发到 P 个输出 端口。输出控制器主要包含一个信用点计数器和一个输出虚通道状态向量。输出控制器向下游路由器发送虚通道标识, 并接收下游路由器返回的信用点。 P 的取值与网络拓扑结构相 关。虚通道数量 V 小于 8 时, 增加虚通道数量 V, 能够显著的增加网络吞吐率, 但当 V 的取值 大于 8 时, 再增大 V, 网络的吞吐率增加不明显。输入单元的每个虚通道包含一个虚通道缓 冲器和一个路由计算单元。 虚通道缓冲器缓存网络报文, 路由计算单元负责解析报文头, 计 算该报文使用的输出端口。
     虚通道分配器由两级仲裁器构成, 每级仲裁器均包含 P*V 个 P*V:1 仲裁器。第一 级仲裁器中的每个仲裁器隶属于每个输入虚通道 ; 第二级仲裁器中的每个仲裁器隶属于每 个输出虚通道。第一级仲裁器的每个仲裁器接收 P*V 个输出虚通道的状态。根据路由计算 单元的计算结果, 每个仲裁器从 P*V 个输出虚通道中选择一个作为该输入虚通道的请求的 输出虚通道。多个输入虚通道可能同时请求同一个输出虚通道。所以, 第二级仲裁器的每 个仲裁器根据第一级仲裁器的结果, 选择一个输入虚通道使用该输出虚通道, 向输入虚通 道发送应答信号。
     交叉开关分配器由两级交叉开关仲裁器构成, 第一级仲裁器包含 P 个 V:1 仲裁器, 第二级仲裁器包含 P 个 P:1 仲裁器。第一级仲裁器中的每个仲裁器隶属于每个输入端口, 第二级仲裁器中的每个仲裁器隶属于每个输出端口。 第一级仲裁器中的每个仲裁器接收该 输入单元中的 V 个虚通道的请求, 从 V 个虚通道中选择一个虚通道使用交叉开关的输入端 口。第二级仲裁器中的每个仲裁器根据第一级的仲裁结果, 负责从请求同一个输出端口的 多个请求中选择一个使用输出端口, 向输入端口发送应答信号。 路由器之间的数据传输采用基于信用点的流控策略, 每个输出控制器包含 V 个信 用点计数器。每个信用点计数器记录输出虚通道的缓冲器中剩余的空间。每次向该输出虚 通道发送一个报片时, 计数器减 1。输出控制器接收到返回的信用点之后, 计数器加 1。计 数器为零时, 禁止发送报片。 当路由器之间的物理链路的延迟大于一个时钟周期的时候, 需 要在物理链路中插入寄存器。而基于信用点的流控策略在链路发生阻塞的时候, 物理链路 中的寄存器无法缓冲报片, 不能够利用链路中已经存在的存储资源。
     报文经过路由器时需要四个时钟周期。 第一个时钟周期路由计算单元对接收到的 报文进行路由计算, 生成该报文使用的输出端口。 第二个时钟周期, 虚通道分配器为该报文 分配一个输出虚通道。第三个时钟周期, 交叉开关分配器为该报文分配输出端口。第四个 时钟周期交叉开关将报文转发到输出端口。
     路由器中的每个虚通道独占一个虚通道缓冲器, 即使在该缓冲器没有被占用时, 该缓冲器也不能被其他虚通道使用, 这种结构不能够高效的利用输入单元的存储资源。路 由器中的虚通道分配器和交叉开关分配器均为两级仲裁器, 既增加了硬件设计的复杂度, 又不能够实现理想的分配效果, 从而影响了网络的吞吐率。
     因此, 如何减小报片经过单个路由器的延迟, 提高网络的吞吐率和充分利用物理 链路中的存储资源是本领域技术人员极为关注的技术问题。
     发明内容 本发明要解决的技术问题在于 : 针对现有路由器结构转发报片延迟较大和不能够 充分的利用物理链路中的存储资源的问题, 提供一种面向片上网络的双时钟周期的路由器 结构, 既降低转发报片延迟, 又降低设计复杂度, 且充分的利用物理链路中的存储资源。
     本发明由 P 个输入单元, P 个输出单元和 P 个通道双缓冲组成。 每个输入单元接收 来自上游路由器的报片和有效信号, 并向上游路由器返回准备好信号。输入单元向每个输 出单元发送申请使用该输出端口的请求信号, 并向每个输出单元发送将要传输的报片。每 个输出单元接收 P 个输入单元的使用该端口的请求信号和报片, 同时接收通道双缓冲的缓 冲准备好信号。 当缓冲准备好信号有效时, 输出单元中的仲裁器完成仲裁操作, 并向获得仲 裁的输入单元发送应答信号。每个通道双缓冲与一个输出单元相连接, 接收输出单元的报 片和报片有效信号, 向输出单元发送缓冲准备好信号。当报片有效信号有效且通道双缓冲 中有剩余空间的时候, 将报片写入到通道双缓冲中。 每个通道双缓冲与下游路由器相连, 向 下一个路由器发送报片和有效信号, 同时接收来自下游路由器的准备好信号。路由器之间 的报片传输采用准备好 - 有效的同步握手协议。通道双缓冲中存在等待转发的报片时, 向 下游路由器发送有效信号, 下游路由器的输入单元的输入缓冲器不为满的时候, 能够接收 新的报片, 并向上游路由器发送准备好信号。 有效信号和准备好信号同时有效的时候, 表明 该时钟周期完成一次报片传输, 报片成功地从通道双缓冲传输到下游路由器中。下游路由 器的输入单元的输入缓冲器为满的时, 不能够接收报片, 通道双缓冲缓冲报片, 这样, 利用 物理链路中的存储资源等效地增加了输入缓冲器的容量。 网络中的每个报文由多个报片组成, 报片分为三种类型 : 报文头报片、 报文体报片 和报文尾报片。一个报文由一个报文头报片, 多个报文体报片和一个报文尾报片组成。在 本发明所述路由器中传输的报片由三个域组成 : 报片类型, 虚拟输出地址队列标识符和数 据体。报片类型域标识报片属于三种报片类型中的哪一种, 宽度为 T。T 为正整数, 一般为 3 位。虚拟输出地址队列标识符域的宽度为 P, 与路由器的端口数量相同, 用于标识该报片 在输入单元的输入缓冲器中的地址加入到哪个虚拟输出地址队列中。数据体域的宽度为 U 位, 表示该报片携带的数据部分, 面向片上网络, U 为正整数, 一般为 64 位到 256 位。本发 明中的报片与传统的报片相比较, 增加了虚拟输出地址队列标识符域。
     每个输入单元由一个缓冲分配器, 一个输入缓冲器和 P 个虚拟输出地址队列组 成。缓冲分配器一方面向上游的路由器发送准备好信号, 为接收到的报片在输入缓冲器中 分配存储空间, 生成输入缓冲器的写地址和写使能信号, 一方面根据接收到的报片的虚拟 输出地址队列标识符, 向该标识符标识的虚拟输出地址队列发送写使能信号, 并将报片在 输入缓冲器中分配的地址和报片类型发送到虚拟输出地址队列。 缓冲分配器由缓冲状态向 量, 准备好产生逻辑和优先级编码器组成。 缓冲状态向量记录缓冲器每项的状态, 缓冲状态 向量宽度与缓冲器深度相同, 均为 D, D 是 2 的整数次幂。缓冲状态向量的每位记录相应的 缓冲器项的状态。 “1” 表示该缓冲器项中的报片有效, 不能够将该项缓冲器分配给新的报 片; “0” 表示该项为空, 可以分配给新来的报片。准备好生成逻辑是一个 D 输入的与非门, 根据缓冲状态向量生成发送到上游路由器的准备好信号。 缓冲状态向量只要有一位以上为 “0” , 准备好信号有效。 优先级编码器是一个组合逻辑, 采用标准的优先级编码算法, 对缓冲 状态向量进行优先级编码, 生成输入缓冲器的写地址。
     输入缓冲器是一个深度为 D 的寄存器文件, 包含一个写端口和 P 个读端口, 根据缓 冲分配器发来的写地址和写使能信号将报片的数据体写入, 根据虚拟输出地址队列发送的 读地址, 将报片的数据体发送到相应的输出端口。
     虚拟输出地址队列由地址队列、 提前路由计算单元组成。它根据来自缓冲分配器
     的写使能信号, 将从上游路由器中获得的报片在输入缓冲器中的地址添加到地址队列中 ; 且将位于队列头的报片在输入缓冲器中的地址发送到输入缓冲器。 输出到同一个输出端口 的报片在输入缓冲器中的地址均存储在同一个虚拟输出地址队列中, 即同一个虚拟输出地 址队列中的地址所指向的输入缓冲器中的报片均发送到同一个输出端口, 因此发送到不同 的输出端口的报片共享一个输入缓冲器, 提高了输入缓冲器的利用率。提前路由计算单元 对报片进行提前路由计算, 计算报片在下一个路由器中的输出端口。路由算法采用常见的 维序路由、 最小路径路由算法等。
     地址队列由队列移位控制器和先进先出队列组成。 队列移位控制器接收缓冲分配 器的写使能信号和输出单元的应答信号, 控制先进先出队列的移位, 向先进先出队列发送 移位控制信号。 队列移位控制器包含一个队列尾向量, 长度是 D+1。 队列尾向量中有且仅有 一位为 “1” , “1” 的位置标明该位置是先进先出队列的队列尾。队列尾向量的第一位为 “1” 时, 表示先进先出队列为空, 最后一位为 “1” 时, 表示先进先出队列为满。队列移位控制器 接收到的写使能信号有效时, 先进先出队列将输入数据写入到队列尾向量指定的位置后, 队列尾向量向队列尾移动一位。队列移位控制器接收到应答信号时, 先进先出队列向队列 头移动一个位置, 队列头离开队列, 队列尾向量向队列头移动一位。 队列移位控制器接收到 的写使能信号和应答信号同时有效时, 先进先出队列首先将输入数据写到由队列尾向量指 定的位置, 然后队列头离队, 且队列中所有的有效项均向队列头移动一个位置, 队列尾向量 保持不变。 每个输出单元由一个 P:1 仲裁器 ( 即对 P 个输入请求进行仲裁, 只有一个获得应 答信号 ) 和一个 P:1 选择器 ( 即从 P 个输入中选 1 个输出 ) 组成。每个仲裁器接收 P 个输 入单元的申请使用该输出端口的请求, 并且接收与该输出单元相连的通道双缓冲的缓冲准 备好信号。仲裁器接收到的 P 个输入请求有一个请求有效时, 向通道双缓冲发送报片有效 信号。仲裁器接收到的缓冲准备好信号有效时, 对 P 个输入请求进行仲裁, 向获得仲裁的输 入单元发送应答信号。P:1 选择器根据仲裁器的仲裁结果从 P 个输入单元中选择获得仲裁 的输入单元的输入报片, 将该报片输出到通道双缓冲。
     通道双缓冲由控制器和双缓冲器组成。 控制器与输出单元的仲裁器和下一个路由 器的输入单元相连接。它接收来自下一个路由器的准备好信号, 向下一个路由器发送有效 信号。 控制器接收输出单元的仲裁器的报片有效信号, 并向仲裁器发送缓冲准备好信号。 控 制器同时向双缓冲发送写使能信号和选择信号。控制器由一个读指针、 一个写指针和一个 状态机组成。 写指针的位宽是一位, 当报片有效信号和缓冲准备好信号同时有效时, 写指针 取反。写指针为 “0” , 发送到双缓冲的第一写使能信号有效, 写指针为 “1” , 发送到双缓冲器 的第二写使能信号有效。 读指针的位宽是一位, 当有效信号和准备好信号同时有效时, 读指 针取反, 读指针作为选择信号发送到双缓冲器。 状态机总共有四个状态, “00” 状态表示双缓 冲器中的两组寄存器中数据均无效 ; “01” 状态表示双缓冲器中第一组寄存器中数据有效, 第二组寄存器中的数据无效。 “10” 状态表示双缓冲器中第一组寄存器中数据无效, 第二组 寄存器中的数据有效。 “11” 状态表示双缓冲器中的两组寄存器中的数据均有效。上电复位 时, 状态机处于状态 “00” , 向仲裁器发送缓冲准备好信号, 若报片有效信号和缓冲准备好信 号同时有效, 且写指针为 “0” , 转移到 “01” 状态 ; 若报片有效信号和缓冲准备好信号同时有 效, 且写指针为 “1” , 转移到 “10” 状态。状态机处于 “01” 状态时, 向仲裁器发送缓冲准备好
     信号并向下一个路由器发送有效信号, 当报片有效信号和缓冲准备好信号同时有效, 且写 指针为 “1” 时, 转移到 “11” 状态 ; 当有效信号和准备好信号同时有效, 且读指针为 “0” 时, 转移到 “00” 状态 ; 若报片有效信号和缓冲准备好信号同时有效, 且有效信号和准备好信号 同时有效时, 转移到 “10” 状态。状态机处于 “11” 状态时, 向下一个路由器发送有效信号, 当有效信号和准备好信号同时有效, 且读指针为 “0” 时, 转移到 “10” 状态 ; 当有效信号和准 备好信号同时有效, 且读指针为 “1” 时, 转移到 “01” 状态。状态机处于 “10” 状态时, 向仲 裁器发送缓冲准备好信号并向下一个路由器发送有效信号, 报片有效信号和缓冲准备好信 号同时有效, 且写指针为 “0” 时, 转移到 “11” 状态 ; 当有效信号和准备好信号同时有效, 且 读指针为 “1” 时, 转移到 “00” 状态 ; 若报片有效信号和缓冲准备好信号同时有效, 且有效信 号和准备好信号同时有效时, 转移到 “01” 状态。
     双缓冲器与输出单元的选择器和下一个路由器的输入缓冲器相连接, 由两个寄存 器组和一个 2:1 选择器组成。当第一写使能信号有效时, 将来自输出单元的选择器的报片 写到第一寄存器组中。当第二写使能信号有效时, 将来自输出单元的选择器的报片写入到 第二寄存器组中。当选择信号为 “0” 时, 选择第一寄存器组中的报片输出。当选择信号为 “1” 时, 选择第二寄存器组中的报片输出。
     本发明路由器的流水线分为两站流水 : 即报片交换站和报片传输站。因此报片经 过路由器只需要两个时钟周期。报片交换站包含了输入单元的虚拟输出地址队列、 输入缓 冲器、 输出单元的仲裁器和选择器。 报片传输站包含通道双缓冲、 路由器之间的物理互连线 和下一个路由器的输入单元的缓冲分配器。 在报片交换站, 输入缓冲器完成报片的读操作, 虚拟地址队列完成提前路由计算, 仲裁器完成仲裁操作, 选择器完成报片选择操作, 其中提 前路由计算, 读操作和仲裁操作并行进行。在报片传输站, 通道双缓冲完成报片的读操作, 路由器之间的物理链路完成报片传输和下一个路由器缓冲分配器完成缓冲分配操作。 报片 交换站和报片传输站的关键路径延迟可以分别由公式 (1) 和 (2) 来计算 :
     tlt = (6.67+5*log4(W*D)+tclkoverhead+twire)/5(2)
     其中, tfs 为报片交换站延迟, tlt 为报片传输站延迟。tclkoverhead 为寄存器的延迟开 销, 包括寄存器的建立时间开销和数据传输时间开销。twire 为物理链路的线延迟。W 表示物 理链路的总线宽度, W = P+T+U。公式 (1) 和 (2) 的单位是 FO4, FO4 延迟为一个反相器驱动 四个与自己尺寸相同的反相器的延迟。
     本发明的路由器的结构与现有技术相比较, 具有以下优点。
     1、 传统的路由器需要四个时钟周期才能够完成一个报片的转发, 而本发明的路由 器转发一个报片仅仅需要两个时钟周期。从而降低了报片经过一个路由器的延迟。
     2、 由于没有虚通道和虚通道分配逻辑, 减小了面积开销, 减少了与虚通道相关的 逻辑操作。
     3、 输出到同一个输出端口的报片在缓冲器中的地址存储在同一个虚拟输出地址 队列中, 输出到不同的输出端口的报片的数据体均存储在输入单元的输入缓冲器中, 共享 输入缓冲器。这种结构提高了输入单元缓冲器的利用率。
     4、 通道双缓冲中控制器采用准备好 - 有效的同步握手协议进行流控, 使得物理链 路中存在的缓冲器在网络发生拥塞的时候, 缓冲报片。附图说明
     图 1 是传统的虚通道路由器的总体结构框图 ;
     图 2 是传统的虚通道路由器的虚通道分配器的结构框图 ;
     图 3 是传统的虚通道路由器的交叉开关分配器的结构框图 ;
     图 4 是本发明的总体逻辑结构图 ;
     图 5 是本发明中采用的报片格式 ;
     图 6 是本发明的输入单元的缓冲分配器结构图 ;
     图 7 是本发明的输入单元的虚拟输出地址队列中的先进先出队列逻辑结构图 ;
     图 8 是本发明的通道双缓冲结构图 ;
     图 9 是本发明通道双缓冲中的控制器中状态机的状态转换图。 具体实施方式 图 1 是传统的虚通道路由器的总体结构框图。由 P 个输入单元、 一个虚通道分配 器、 一个交叉开关分配器、 一个交叉开关和 P 个输出控制器组成。每个输入单元从上游路由 器接收报片和虚通道标识, 并向上游路由器返回信用点。每个输入单元将接收到的报片写 入到由虚通道标识指定的虚通道中。 每个输入单元的虚通道向虚通道分配器发送申请输出 虚通道的请求信号, 也向交叉开关分配器发送申请输出端口的请求信号。输入单元也向交 叉开关发送报片。虚通道分配器接收输入单元中的虚通道的请求, 输出控制器中的输出虚 通道的状态, 完成虚通道分配操作, 向输入单元的虚通道返回为其分配的输出虚通道号, 同 时也向输出控制器发送更新输出虚通道状态信号。 交叉开关分配器接收输入单元中的虚通 道申请输出端口的请求信号, 和输出控制器的输出虚通道的缓冲状态, 完成交叉开关分配, 向输入单元的虚通道发送应答信号, 同时也向输出控制器发送更新输出虚通道缓冲状态信 号。交叉开关的输入端口和输入端口的数量均为 P, 接受 P 个输入单元发送的报片, 将报片 转发到 P 个输出端口。输出控制器主要包含一个信用点计数器和一个输出虚通道状态向 量。 输出控制器向下游路由器发送虚通道标识, 并接收下游路由器返回的信用点。 输入单元 的每个虚通道包含一个虚通道缓冲器和一个路由计算单元。虚通道缓冲器缓存网络报文, 路由计算单元负责解析报文头, 计算该报文使用的输出端口。
     图 2 是传统的虚通道路由器的虚通道分配器的结构框图。虚通道分配器由两级仲 裁器构成, 每级仲裁器均包含 P*V 个 P*V:1 仲裁器。第一级仲裁器中的每个仲裁器隶属于 每个输入虚通道 ; 第二级仲裁器中的每个仲裁器隶属于每个输出虚通道。第一级仲裁器的 每个仲裁器接收 P*V 个输出虚通道的状态。根据路由计算单元的计算结果, 每个仲裁器从 P*V 个输出虚通道中选择一个作为该输入虚通道的请求的输出虚通道。多个输入虚通道可 能同时请求同一个输出虚通道。所以, 第二级仲裁器的每个仲裁器根据第一级仲裁器的结 果, 选择一个输入虚通道使用该输出虚通道, 向输入虚通道发送应答信号。
     图 3 是传统的虚通道路由器的交叉开关分配器的结构框图。交叉开关分配器由两 级交叉开关仲裁器构成, 第一级仲裁器包含 P 个 V:1 仲裁器, 第二级仲裁器包含 P 个 P:1 仲
     裁器。第一级仲裁器中的每个仲裁器隶属于每个输入端口, 第二级仲裁器中的每个仲裁器 隶属于每个输出端口。第一级仲裁器中的每个仲裁器接收该输入单元中的 V 个虚通道的请 求, 从 V 个虚通道中选择一个虚通道使用交叉开关的输入端口。第二级仲裁器中的每个仲 裁器根据第一级的仲裁结果, 负责从请求同一个输出端口的多个请求中选择一个使用输出 端口, 向输入端口发送应答信号。
     图 4 是本发明的总体逻辑结构图。由 P 个输入单元, P 个输出单元和 P 个通道双 缓冲组成。每个输入单元接收来自上游路由器的报片和有效信号, 并向上游路由器返回准 备好信号。输入单元向每个输出单元发送申请使用该输出端口的请求信号, 并向每个输出 单元发送将要传输的报片。每个输入单元由一个缓冲分配器, 一个输入缓冲器和 P 个虚拟 输出地址队列组成。缓冲分配器一方面向上游的路由器发送准备好信号, 为接收到的报片 在输入缓冲器中分配存储空间, 生成输入缓冲器的写地址和写使能信号, 一方面根据接收 到的报片的虚拟输出地址队列标识符, 向该标识符标识的虚拟输出地址队列发送写使能信 号, 并将报片在输入缓冲器中分配的地址和报片类型发送到虚拟输出地址队列。输入缓冲 器是一个深度为 D 的寄存器文件, 包含一个写端口和 P 个读端口, 根据缓冲分配器发来的写 地址和写使能信号将报片的数据体写入, 根据虚拟输出地址队列发送的读地址, 将报片的 数据体发送到相应的输出端口。 虚拟输出地址队列由地址队列、 提前路由计算单元组成。 它 根据来自缓冲分配器的写使能信号, 将从上游路由器中获得的报片在输入缓冲器中的地址 添加到地址队列中 ; 且将位于队列头的报片在输入缓冲器中的地址发送到输入缓冲器。输 出到同一个输出端口的报片在输入缓冲器中的地址均存储在同一个虚拟输出地址队列中, 即同一个虚拟输出地址队列中的地址所指向的输入缓冲器中的报片均发送到同一个输出 端口, 因此发送到不同的输出端口的报片共享一个输入缓冲器, 提高了输入缓冲器的利用 率。 提前路由计算单元对报片进行提前路由计算, 计算报片在下一个路由器中的输出端口。 路由算法采用常见的维序路由、 最小路径路由算法等。
     每个输出单元接收 P 个输入单元的使用该端口的请求信号和报片, 同时接收通道 双缓冲的缓冲准备好信号。 当缓冲准备好信号有效时, 输出单元中的仲裁器完成仲裁操作, 并向获得仲裁的输入单元发送应答信号。每个输出单元由一个 P:1 仲裁器 ( 即对 P 个输入 请求中进行仲裁, 其中一个获得应答信号 ) 和一个 P:1 选择器 ( 即从 P 个输入中选 1 个输 出 ) 组成。每个仲裁器接收 P 个输入单元的申请使用该输出端口的请求, 并且接收与该输 出单元相连的通道双缓冲的缓冲准备好信号。仲裁器接收到的 P 个输入请求有一个请求有 效时, 向通道双缓冲发送报片有效信号。仲裁器接收到的缓冲准备好信号有效时, 对 P 个输 入请求进行仲裁, 向获得仲裁的输入单元发送应答信号。 P:1 选择器根据仲裁器的仲裁结果 从 P 个输入单元中选择获得仲裁的输入单元的输入报片, 将该报片输出到通道双缓冲。
     每个通道双缓冲与一个输出单元相连接, 接收输出单元的报片和报片有效信号, 向输出单元发送缓冲准备好信号。当报片有效信号有效且通道双缓冲中有剩余空间的时 候, 将报片写入到通道双缓冲中。 每个通道双缓冲与下游路由器相连, 向下一个路由器发送 报片和有效信号, 同时接收来自下游路由器的准备好信号。
     路由器之间的报片传输采用准备好 - 有效的同步握手协议。通道双缓冲中存在等 待转发的报片时, 向下游路由器发送有效信号, 下游路由器的输入单元的输入缓冲器不为 满的时候, 能够接收新的报片, 并向上游路由器发送准备好信号。 有效信号和准备好信号同时有效的时候, 表明该时钟周期完成一次报片传输, 报片成功地从通道双缓冲传输到下游 路由器中。 下游路由器的输入单元的输入缓冲器为满的时, 不能够接收报片, 通道双缓冲缓 冲报片, 这样, 利用物理链路中的存储资源等效地增加了输入缓冲器的容量。
     图 5 是本发明中采用的报片格式。 报片由三个域组成 : 报片类型, 虚拟输出地址队 列标识符和数据体。报片类型域标识报片属于三种报片类型中的哪一种, 宽度为 T。T 为正 整数, 一般为 3 位。 虚拟输出地址队列标识符域的宽度为 P, 与路由器的端口数量相同, 用于 标识该报片在输入单元的输入缓冲器中的地址加入到哪个虚拟输出地址队列中。 数据体域 的宽度为 U 位, 表示该报片携带的数据部分, 面向片上网络, U 为正整数, 一般为 64 位到 256 位。本发明中的报片与传统的报片相比较, 增加了虚拟输出地址队列标识符域。
     图 6 是本发明的输入单元的缓冲分配器结构图。缓冲分配器由缓冲状态向量, 准 备好产生逻辑和优先级编码器组成。缓冲状态向量记录缓冲器每项的状态, 缓冲状态向量 宽度与缓冲器深度相同, 均为 D, D 是 2 的整数次幂。 缓冲状态向量的每位记录相应的缓冲器 项的状态。 “1” 表示该缓冲器项中的报片有效, 不能够将该项缓冲器分配给新的报片 ; “0” 表示该项为空, 可以分配给新来的报片。准备好生成逻辑是一个 D 输入的与非门, 根据缓冲 状态向量生成发送到上游路由器的准备好信号。 缓冲状态向量只要有一位以上为 “0” , 准备 好信号有效。 优先级编码器是一个组合逻辑, 采用标准的优先级编码算法, 对缓冲状态向量 进行优先级编码, 生成输入缓冲器的写地址。 图 7 是本发明的输入单元的虚拟输出地址队列中的先进先出队列逻辑结构图。地 址队列由队列移位控制器和先进先出队列组成。队列移位控制器接收缓冲分配器的写使 能信号和输出单元的应答信号, 控制先进先出队列的移位, 向先进先出队列发送移位控制 信号。队列移位控制器包含一个队列尾向量, 长度是 D+1。队列尾向量中有且仅有一位为 “1” , “1” 的位置标明该位置是先进先出队列的队列尾。队列尾向量的第一位为 “1” 时, 表 示先进先出队列为空, 最后一位为 “1” 时, 表示先进先出队列为满。队列移位控制器接收到 的写使能信号有效时, 先进先出队列将输入数据写入到队列尾向量指定的位置后, 队列尾 向量向队列尾移动一位。队列移位控制器接收到应答信号时, 先进先出队列向队列头移动 一个位置, 队列头离开队列, 队列尾向量向队列头移动一位。 队列移位控制器接收到的写使 能信号和应答信号同时有效时, 先进先出队列首先将输入数据写到由队列尾向量指定的位 置, 然后队列头离队, 且队列中所有的有效项均向队列头移动一个位置, 队列尾向量保持不 变。
     图 8 是本发明的通道双缓冲结构图。通道双缓冲由控制器和双缓冲器组成。控制 器与输出单元的仲裁器和下一个路由器的输入单元相连接。 它接收来自下一个路由器的准 备好信号, 向下一个路由器发送有效信号。 控制器接收输出单元的仲裁器的报片有效信号, 并向仲裁器发送缓冲准备好信号。控制器同时向双缓冲发送写使能信号和选择信号。控制 器由一个读指针、 一个写指针和一个状态机组成。 写指针的位宽是一位, 当报片有效信号和 缓冲准备好信号同时有效时, 写指针取反。写指针为 “0” , 发送到双缓冲的第一写使能信号 有效, 写指针为 “1” , 发送到双缓冲器的第二写使能信号有效。 读指针的位宽是一位, 当有效 信号和准备好信号同时有效时, 读指针取反, 读指针作为选择信号发送到双缓冲器。 状态机 总共有四个状态, “00” 状态表示双缓冲器中的两组寄存器中数据均无效 ; “01” 状态表示双 缓冲器中第一组寄存器中数据有效, 第二组寄存器中的数据无效。 “10” 状态表示双缓冲器
     中第一组寄存器中数据无效, 第二组寄存器中的数据有效。 “11” 状态表示双缓冲器中的两 组寄存器中的数据均有效。 上电复位时, 状态机处于状态 “00” , 向仲裁器发送缓冲准备好信 号, 若报片有效信号和缓冲准备好信号同时有效, 且写指针为 “0” , 转移到 “01” 状态 ; 若报 片有效信号和缓冲准备好信号同时有效, 且写指针为 “1” , 转移到 “10” 状态。状态机处于 “01” 状态时, 向仲裁器发送缓冲准备好信号并向下一个路由器发送有效信号, 当报片有效 信号和缓冲准备好信号同时有效, 且写指针为 “1” 时, 转移到 “11” 状态 ; 当有效信号和准备 好信号同时有效, 且读指针为 “0” 时, 转移到 “00” 状态 ; 若报片有效信号和缓冲准备好信号 同时有效, 且有效信号和准备好信号同时有效时, 转移到 “10” 状态。状态机处于 “11” 状态 时, 向下一个路由器发送有效信号, 当有效信号和准备好信号同时有效, 且读指针为 “0” 时, 转移到 “10” 状态 ; 当有效信号和准备好信号同时有效, 且读指针为 “1” 时, 转移到 “01” 状 态。状态机处于 “10” 状态时, 向仲裁器发送缓冲准备好信号并向下一个路由器发送有效信 号, 报片有效信号和缓冲准备好信号同时有效, 且写指针为 “0” 时, 转移到 “11” 状态 ; 当有 效信号和准备好信号同时有效, 且读指针为 “1” 时, 转移到 “00” 状态 ; 若报片有效信号和缓 冲准备好信号同时有效, 且有效信号和准备好信号同时有效时, 转移到 “01” 状态。

面向片上网络的低延迟路由器结构.pdf_第1页
第1页 / 共17页
面向片上网络的低延迟路由器结构.pdf_第2页
第2页 / 共17页
面向片上网络的低延迟路由器结构.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《面向片上网络的低延迟路由器结构.pdf》由会员分享,可在线阅读,更多相关《面向片上网络的低延迟路由器结构.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明公开了一种面向片上网络的低延迟路由器结构,目的是解决现有路由器结构转发报片延迟较大和不能够充分的利用物理链路中的存储资源的问题。本发明由P个输入单元,P个输出单元和P个通道双缓冲组成;每个输入单元由一个缓冲分配器,一个输入缓冲器和P个虚拟输出地址队列组成;每个输出单元由一个P:1仲裁器和一个P:1选择器组成;通道双缓冲由控制器和双缓冲器组成,控制器由一个读指针、一个写指针和一个状态机组成,双。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1