一种低缓冲区片上网络路由器及路由方法

文档序号:7812960阅读:199来源:国知局
一种低缓冲区片上网络路由器及路由方法
【专利摘要】本发明公开了一种低缓冲区片上网络路由器,包括n个输入端口,n个输入寄存器、路由计算模块、优先级计算模块、端口分配模块、交叉开关、p个单微片缓存器,p个输出端口组成,当高优先级与次高优先级微片出现有效输出端口竞争时,端口分配模块根据优先级仲裁策略将次高优先级微片发送至相应的单微片缓存器,当其它低优先级微片竞争此端口时,分配偏转输出端口;待输出端口空闲时将次高优先级微片直接输出至下级路由节点。本发明能有效降低片上网络的面积和功耗,同时保证延时和吞吐率性能,适用于构建高性能片上系统。
【专利说明】-种低缓冲区片上网络路由器及路由方法

【技术领域】:
[0001] 本发明涉及片上网络设计领域,特别是涉及一种减小缓冲区面积的片上路由器设 计方法及路由方法。

【背景技术】:
[0002] 在多核处理器和IP核集成设计领域,总线互连成为制约大规模片上系统发展的 瓶颈。研究人员借鉴宏观计算机并行网络的设计思想提出了基于路由和包交换技术的片上 网络(Network on Chip, NoC)互连方式,有效解决了总线互连的全局时钟、长互连线延时、 扩展资源有限等问题。片上网络主要由资源节点(各种IP核)、网络接口、路由节点、互连 通道等组成。作为片上网络最关键的部件,片上路由器的性能直接影响着NoC的整体性能 表现。在IP核集成度日益增加的情况下,如何降低整个NoC的面积和功耗,同时又能提高 NoC的数据包延时和吞吐率性能,成为片上路由器设计的关键所在。
[0003] 常用的片上网络路由器主要分为虚拟通道路由器、无缓冲路由器两种。虚拟通道 路由器使用多路虚拟通道缓存由于端口竞争而不能转发的数据微片,能够解决资源冲突、 改善带宽利用率,但虚拟通道占用较多的片上存储资源并会导致功耗增加,例如在MIT RAW 多核片上系统中,路由器的缓冲区面积占了芯片总面积的75%,缓冲区的功耗占路由器功 耗的22%以上。此外,虚拟通道管理和分配、路由器之间的流控制机制、死锁避免等问题也 增加了设计复杂度。无缓冲路由器概念的提出对于降低片上网络的设计复杂度、减小面积 和功耗具有极为重要的意义。在无缓冲路由器中,除输入寄存器外,没有额外的缓冲区,路 由器接收到数据微片后立即将其转发到下一个路由器。在出现竞争的情况下,路由器以丢 包或者将包偏离最短路径路由的方式处理。与虚拟通道路由器相比,无缓冲路由器具有面 积小、功耗低、无死锁、设计复杂度低等优势,很大程度上降低了路由器的硬件开销。然而基 于丢包的无缓冲路由器需要额外的应答机制,重复发包导致效率低下;基于偏转的无缓冲 路由器的自适应路由特性使得包的路由路径不可预测,在网络通信量较大时存在数据包的 偏转次数增多,延时增大,此外关键数据包同样会以不确定的路径传输,不能提供服务质量 保证。
[0004] 综上所述,现有的两种片上网络路由器结构各有不足,因此对片上网络路由器及 路由方法进行设计,使之既能降低路由器的缓冲区面积和整体功耗,又能保证延时和吞吐 率性能和满足一定的服务质量需求,是适应高性能片上网络发展的必然要求,对于大规模 IP核片上系统设计具有重要意义。


【发明内容】

[0005] 针对现有技术的不足,本发明的发明目的在于提供一种低缓冲区片上网络路由 器,在路由节点中增加单微片缓存器,结合本地节点输出优先、高优先级优先、次高优先级 在单微片缓存器中缓存并等待输出端口空闲周期发送的仲裁算法,使因端口竞争导致偏转 的微片数量大大减少;结合源节点在注入网络之前置高待发送微片的优先级值的方法,使 关键数据包在整个过程中都沿最短路径传输,提供了服务质量保证。
[0006] 本发明的发明目的通过以下技术方案实现:
[0007] -种低缓冲区片上网络路由器,结构包括η个输入端口,η个输入寄存器、路由计 算模块、优先级计算模块、端口分配模块、交叉开关、Ρ个单微片缓存器,Ρ个输出端口组成, 其中:
[0008] 所述η个输入端口中1个用于连接本地网络接口至路由节点,其余η-1个输入端 口用于连接上级路由节点和本地路由节点;本地网络接口连接本地资源节点(IP核);
[0009] 所述η个输入寄存器寄存上级节点发送的数据微片;
[0010] 所述路由计算模块读取微片地址域信息,根据相对寻址算法计算得出微片的有效 输出端口;
[0011] 所述优先级计算模块读取微片的优先级域信息,并更新优先级的值;
[0012] 所述端口分配模块为微片分配输出端口,根据仲裁策略解决端口竞争问题;所述 交叉开关连接输入寄存器和输出端口,将分配好输出端口的微片发送至对应端口输出;
[0013] 所述单微片缓存器用以缓存与高优先级微片竞争的次高优先级微片,待输出端口 空闲周期发送;
[0014] 依据上述特征,所述路由器的路由计算模块和优先级计算模块并行执行,为寄存 -路由计算/优先级计算一端口分配一输出四级流水线结构。
[0015] 依据上述特征,路由器的输入端口数目η小于等于输出端口数目Ρ。
[0016] 依据上述特征,路由器的端口分配模块中还包含一个ρ位输出端口状态寄存器, 用以标志当前各个输出端口的状态,该状态寄存器可以被单微片缓存器和本地网络接口读 取。
[0017] 本发明的另一目的在于提供一种低缓冲区片上网络路由器的路由方法,包括以下 步骤:
[0018] 步骤A :源节点发送数据至网络接口,网络接口将原始数据打包为符合片上网络 传输帧格式的数据微片;
[0019] 步骤B :网络接口检测与源节点相连的路由器状态,若有除输出方向为本地源节 点的任何一个输出端口空闲,则发送数据微片至路由器的输入寄存器,否则等待下次检 测;
[0020] 步骤C:路由计算模块读取输入寄存器中的微片地址域信息,根据相对寻址算法 计算微片的有效输出端口;
[0021] 步骤D :优先级计算模块读取输入寄存器中的微片优先级域信息,更新优先级值, 并将优先级信息发送给端口分配模块;
[0022] 步骤E :端口分配模块为各微片分配输出端口,当高优先级与次高优先级微片出 现有效输出端口竞争时,根据优先级仲裁策略将次高优先级微片发送至单微片缓存器,当 其它低优先级微片竞争此端口时,分配偏转输出端口;
[0023] 步骤F:交叉开关将输入寄存器中的微片发送至输出端口输出至下级路由节点, 单微片缓存器中的微片在路由器四级流水线的输出端口空闲周期直接输出至下级路由节 占.
[0024] 步骤G:微片最终到达终点路由器后,在网络接口的重排序缓冲区中进行缓存和 排序,排序好的数据包转换为目的节点接口协议数据后发送至目的节点。
[0025] 其中,所述数据微片的帧格式包含状态有效域、头信息域、优先级域、地址域和数 据域;状态有效域标志该微片是否为有效数据微片;头信息域标志该微片所属的数据包及 序号信息;优先级域记录该微片在片上网络中传输经过的路由器数;地址域包含该微片的 源地址和目的地址信息;数据域承载源节点发送的有效数据。所述有效输出端口是指微片 由当前路由器的端口输出时不增加其最短路径长度的端口。所述偏转端口是指微片由当前 路由器的端口输出时使其最短路径长度增加的端口。
[0026] 依据上述特征,所述步骤A中还包括源节点发送紧急数据包时可通过在注入网络 之前将微片优先级值置为最高的方法,使微片经过每个路由节点时都能被分配有效输出端 口,整个路由过程以最短路径传输,从而提供服务质量保证。
[0027] 依据上述特征,所述步骤E的优先级仲裁策略包括:首先判断微片的输出端口是 否为本地节点,若有一个微片到达本地节点,则为其分配本地输出端口;若有两个微片到达 本地节点,则为优先级高的分配本地输出端口,优先级低的发送到本地输出端口的单微片 缓存器,等待空闲周期输出;若有三个及三个以上微片到达本地节点,则优先级最高的分配 本地输出端口,优先级次高的送到本地输出端口的单微片缓存器,等待空闲周期输出,其余 分配偏转端口。完成输出端口为本地节点的微片分配后,剩余微片优先级最高的分配有效 输出端口,优先级次高的微片的有效输出端口与之相同时发送至有效输出端口的单微片缓 存器,等待空闲周期输出,其余微片按照优先级分配有效输出端口,出现竞争时分配偏转端 口。如果高优先级微片有两个有效输出端口,且两个有效输出端口与次高优先级微片的有 效输出端口完全相同或完全不同,则优先选择X方向输出端口;如果高优先级微片的两个 有效输出端口与次高优先级的有效输出端口有一个相同,则选择与次高优先级有效输出端 口不同的一个。
[0028] 依据上述特征,所述步骤A中还包括源节点发送紧急数据包时可通过在注入网络 之前将微片优先级值置为最高的方法,使微片经过每个路由节点时都能被分配有效输出端 口,整个路由过程以最短路径传输,从而提供服务质量保证。
[0029] 现有的无缓冲路由器虽然缓存资源少,但因所有微片在路由器中不作停留,当微 片出现输出端口竞争时,只有优先级最高的微片得到有效端口,其他微片分配偏转端口,即 使微片当前输出端口为本地节点也要执行偏转,这样大大增加了整个数据包的传输路径和 延时,造成网络中负载升高,从而阻碍其它数据包的传输。采用上述技术方案设计能够保证 在每个路由节点处能够至少缩短一个与高优先级微片竞争有效输出端口的微片的传输路 径,同时通过优先级域提前置高,能够保证源节点发送的紧急数据微片以最短路径传输,所 以能够有效降低整体数据微片的统计延时,提高网络资源利用率,同时提供一定的服务质 量保证。另外,相比于传统多路虚拟通道路由器,每组输入输出端口只采用一个单微片缓存 器,可以有效降低片上网络路由器的缓冲区面积和整体功耗。
[0030] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

【专利附图】

【附图说明】:
[0031] 图1为本发明路由方法具体实施例的数据微片帧格式示意图;
[0032] 图2为本发明路由器具体实施例的结构示意图;
[0033] 图3为本发明路由方法具体实施例的相对寻址过程示意图;
[0034] 图4为本发明路由方法具体实施例中的端口分配仲裁策略流程示意图;
[0035] 图5为本发明路由器具体实施例在4X4 Mesh网络拓扑结构中的应用示意图。

【具体实施方式】:
[0036] 为了更清楚的介绍本发明提出的一种低缓冲区片上网络路由器及路由方法,下面 将结合附图和具体实例进行详细说明。
[0037] 根据说明书所述的低缓冲区片上网络路由方法,它所采用的数据微片帧格式实例 如图1所示。每个数据微片包含状态有效域V、头信息域H、优先级域P、地址域Addr和数据 域Data。每个微片在网络中独立发送,同属于一个数据包的微片经由相同或不同的路径到 达终点路由器后首先在网络接口的重组缓冲区进行排序,排序好的完整数据包发送给目的 节点。以4X4MESH网络拓扑结构为例,每个数据包包含1至3个微片,每个微片具体帧结 构如下:
[0038] 状态有效域为lbit,V = 0 :无效微片,V = 1 :有效微片;
[0039] 头信息域为2bit,H = 00 :头微片,Η = 01 :中间微片,Η = 10 :尾微片,Η = 11 :单 独微片;
[0040] 优先级域为16bit,Ρ = 0x0000 :初始优先级值,P = OxFFFF为最高优先级值;
[0041] 地址域为8bit,源地址S占前4bit,目的地址D占后4bit ;
[0042] 数据域为37bit,承载源节点发送的有效数据,微片总位宽为64bit。
[0043] 图2所示为本发明路由器的具体实施例的结构图。如图中所示,本路由器为位于 4X4Mesh网络拓扑结构中心的路由器,输入端口数和输出端口数都为5,包括:4个方向的 输入输出端口和1个方向的本地输入输出端口;5个输入寄存器,寄存上级路由节点或者网 络接口发送来的数据微片;1个路由计算模块,读取微片地址域信息,根据相对寻址算法计 算有效输出端口;1个优先级计算模块,读取微片的优先级域信息,如果本路由器不是终点 路由器则执行加1操作;1个端口分配模块,为微片分配输出端口,根据仲裁策略解决端口 竞争问题,还包括1个输出端口状态寄存器,用以控制网络接口注入数据微片以及控制单 微片缓存器输出数据微片;1个交叉开关,连接5个输入寄存器和5个输出端口;5个单微片 缓存器,用以缓存与高优先级微片竞争的次高优先级微片,在输出端口空闲周期时使能连 接对应的输出端口;此外还包括1个与本地路由器相连的网络接口,用于源节点和片上网 络传输协议转换;1个与本地路由器相连的重组缓冲区,用于对到达目的节点的数据微片 进行重组排序。
[0044] 路由器的工作过程为寄存一路由计算/优先级计算一端口分配一输出四级流水 线机制,输出端口的状态在前三个周期为空闲状态,通过端口分配模块中的输出端口状态 寄存单元即可监测现有输出端口在下个周期是否被分配。寄存单元为4bit寄存器,其中前 三位代表输出端口,优选的,〇〇〇代表E方向端口;001代表S方向端口;010代表W方向端 口;011代表N方向端口;111代表N方向端口;后一位代表忙闲状态,0代表空闲状态,未被 分配;1代表忙状态,已被分配。单微片缓存器可以有效利用空闲周期,将缓存的微片顺利 发送给下级路由节点,避免了路径的偏转。
[0045] 图3所示为本发明路由方法具体实施例的相对寻址过程示意图。在4X4Mesh网 络拓扑结构中,路由器的地址采用4bit表示,前2bit表示X坐标,后2bit表示Y坐标。微 片目的地址D为(Xd,Yd),存储在微片的地址域后4bit ;所在当前路由器地址为(X。,Υ。),则 相对寻址得到有效输出端口的过程采用坐标比较的方式,根据坐标相对值决定有效输出端 口的方向,这一算法在硬件上(如FPGA器件)易于综合实现。
[0046] 图4所示为本发明路由方法具体实施例的端口分配仲裁策略流程示意图。首先 判断各个输入寄存器中微片的输出端口是否为本地节点,若有一个微片到达本地节点,则 为其分配本地输出端口;若有两个微片到达本地节点,则为优先级高的分配本地输出端口, 优先级低的发送到本地输出端口的单微片缓存器,等待空闲周期输出;若有三个及三个以 上微片到达本地节点,则优先级最高的分配本地输出端口,优先级次高的送到本地输出端 口的单微片缓存器,等待空闲周期输出,其余分配偏转端口。若无输出端口为本地节点的微 片,或者完成输出端口为本地节点的微片分配后,剩余微片优先级最高的分配有效输出端 口,如果高优先级微片有两个有效输出端口,且两个有效输出端口与次高优先级微片的有 效输出端口完全相同或完全不同,则优先选择X方向输出端口;如果高优先级微片的两个 有效输出端口与次高优先级的有效输出端口有一个相同,则选择与次高优先级有效输出端 口不同的一个。优先级次高的分配有效输出端口,出现竞争时发送至有效输出端口的单微 片缓存器,等待空闲周期输出,其余微片按照优先级分配有效输出端口,出现竞争时分配偏 转端口。本领域人员可以理解,各个输入寄存器中优先级出现相等的情况下,同样可以实现 分配,在选择判断条件时只要使用条件语句微片Π 优先级<微片f2优先级,或者微片Π 优先级>微片f2优先级执行仲裁算法即可。另外优先级域最大值为OxFFFF,为防止溢出, 增加判断条件:如果微片f优先级值为OxFFFF,停止优先级值加1操作即可。
[0047] 图5所示为本发明路由器具体实施例的路由器在4X4Mesh网络拓扑结构中的应 用示意图。路由器结构采用低缓冲区片上路由方法设计,相比于传统的虚拟通道路由器,能 极大的降低缓冲区面积。例如对于4路虚拟通道路由器,每个数据包同样包含3个64bit的 微片,每个虚拟通道可以缓存3个微片,则整个4 X 4Mesh网络仅路由器就需使用48KB的缓 存空间。而对基于本发明路由方法设计的路由器,中心路由器只有各个端口的输入寄存器 和单微片缓存器,只需要使用8KB的缓存空间,仅为前者的17%,大大减小了片上缓存资源 的使用。即使加上网络接口中的重组缓冲区面积,也远低于虚通道路由器的缓存空间,整个 效果非常可观。此外,本路由器可以适用于输入端口数小于等于输出端口数的片上网络拓 扑结构,这些结构包括Mesh、Torus、Hypercubes、Fat-Trees等。Mesh结构比较简单,硬件 容易实现,研究中多被采用。对于与路由器相连的IP核,可以为同构IP核,如RISC CPU,也 可以为异构IP核,如DSP、GPU、SDRAM等,IP核采用规范的接口协议,如AXI、PLB、AHB、APB 等,可以大大减轻片上网络接口的设计难度,相应的NI接口种类也分为AXI网络接口、PLB 网络接口、AHB网络接口、APB网络接口等,主要作用为IP核接口协议与片上网络传输协议 的转换。
[0048] 需要阐明的是上述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参 照上述实施例对本发明进行了详细的说明,但对上述技术方案进行修改,或者对其中部分 技术特征进行等同替换;这些修改或替换,并不使相应技术方案的本质脱离本发明实施例 技术方案的精神和范围。
【权利要求】
1. 一种低缓冲区片上网络路由器,其特征在于,所述路由器的结构包括η个输入端口, η个输入寄存器、路由计算模块、优先级计算模块、端口分配模块、交叉开关、ρ个单微片缓 存器,Ρ个输出端口组成,其中: 所述η个输入端口中1个用于连接本地网络接口至路由节点,其余η-1个输入端口用 于连接上级路由节点和本地路由节点; 所述η个输入寄存器寄存上级节点发送的数据微片; 所述路由计算模块读取数据微片的地址域信息,根据相对寻址算法计算得出数据微片 的有效输出端口; 所述优先级计算模块读取数据微片的优先级域信息,并更新优先级的值; 所述端口分配模块为数据微片分配输出端口,根据仲裁策略解决端口竞争问题,当高 优先级与次高优先级数据微片出现有效输出端口竞争时,将次高优先级微片发送至相应的 单微片缓存器,当其它低优先级微片竞争此端口时,分配偏转输出端口; 所述交叉开关连接输入寄存器和输出端口,将分配好输出端口的微片发送至对应端口 输出; 所述单微片缓存器用以缓存与高优先级微片竞争的次高优先级微片,待输出端口空闲 周期发送。
2. 根据权利要求1所述的一种低缓冲区片上网络路由器,其特征在于,路由器的路由 计算模块和优先级计算模块并行执行,为寄存一路由计算/优先级计算一端口分配一输出 四级流水线结构。
3. 根据权利要求1所述的一种低缓冲区片上网络路由器,其特征在于,片上网络中的 路由器的输入端口数目η小于等于输出端口数目ρ。
4. 根据权利要求1所述的一种低缓冲区片上网络路由器,其特征在于,路由器的端口 分配模块中还包含一个Ρ位输出端口状态寄存器,用以标志当前各个输出端口的状态,该 状态寄存器可以被单微片缓存器和本地网络接口读取。
5. 根据权利要求1所述的一种低缓冲区片上网络路由器的路由方法,其特征在于,所 述方法包括以下步骤: 步骤A :源节点发送数据至网络接口,网络接口将原始数据封装为符合片上网络传输 帧格式的数据微片; 步骤B :网络接口检测与源节点相连的路由器状态,若有除输出方向为本地源节点的 任何一个输出端口空闲,则发送数据微片至路由器的输入寄存器,否则等待下次检测; 步骤C :路由计算模块读取输入寄存器中的数据微片的地址域信息,根据相对寻址算 法计算数据微片的有效输出端口; 步骤D:优先级计算模块读取输入寄存器中的数据微片的优先级域信息,更新优先级 值,并将优先级信息发送给端口分配模块; 步骤E :端口分配模块为各数据微片分配输出端口,当高优先级与次高优先级数据微 片出现有效输出端口竞争时,根据优先级仲裁策略将次高优先级微片发送至相应的单微片 缓存器,当其它低优先级微片竞争此端口时,分配偏转输出端口; 步骤F:交叉开关将输入寄存器中的高优先级的数据微片发送至输出端口输出至下级 路由节点,单微片缓存器中的数据微片在输出端口空闲周期直接输出至下级路由节点; 步骤G:数据微片最终到达终点路由器后,在网络接口的重排序缓冲区中进行缓存和 排序,排序好的数据包转换为符合目的节点接口协议的数据后发送至目的节点。
6. 根据权利要求5所述的路由方法,其特征在于步骤A中所述数据微片的帧格式包含 状态有效域、头信息域、优先级域、地址域和数据域;状态有效域标志该微片是否为有效数 据微片;头信息域标志该微片所属的数据包及序号信息;优先级域记录该微片在片上网络 中传输经过的路由器数,该数值即为优先级值;地址域包含该微片的源地址和目的地址信 息;数据域承载源节点发送的有效数据。
7. 根据权利要求5所述的路由方法,其特征在于,所述步骤A中还包括源节点发送紧急 数据包时可在微片注入网络之前将优先级域置为最高,使微片经过每个路由节点时都能被 分配有效输出端口,整个路由过程以最短路径传输,从而提供服务质量保证。
8. 根据权利要求5所述的路由方法,其特征在于,所述步骤D中更新优先级值的方法为 如果本路由器不是终点路由器则对数据微片的优先级值执行加1操作,如果数据微片的优 先级值为最大值时,停止优先级值加1操作。
9. 根据权利要求5所述的路由方法,其特征在于,所述步骤E的优先级仲裁策略包括: a) 首先判断数据微片的输出端口是否为本地节点,若有一个微片到达本地节点,则为 其分配本地输出端口;若有两个微片到达本地节点,则为优先级高的分配本地输出端口,优 先级低的发送到本地输出端口的单微片缓存器,等待空闲周期输出;若有三个及三个以上 微片到达本地节点,则优先级最高的分配本地输出端口,优先级次高的送到本地输出端口 的单微片缓存器,等待空闲周期输出,其余微片分配偏转端口; b) 完成输出端口为本地节点的微片分配后,剩余微片优先级最高的分配有效输出端 口,优先级次高的微片的有效输出端口与之相同时发送至有效输出端口的单微片缓存器, 等待空闲周期输出,其余微片按照优先级分配有效输出端口,出现竞争时分配偏转端口; c) 如果高优先级微片有两个有效输出端口,且两个有效输出端口与次高优先级微片的 有效输出端口完全相同或完全不同,则优先选择X方向输出端口;如果高优先级微片的两 个有效输出端口与次高优先级的有效输出端口有一个相同,则选择与次高优先级微片有效 输出端口不同的一个。
【文档编号】H04L12/865GK104158738SQ201410437689
【公开日】2014年11月19日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】王荣阳, 袁泉 申请人:中国航空无线电电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1