高密度片上网络的路网实现方法及装置与流程

文档序号:11807836阅读:458来源:国知局
高密度片上网络的路网实现方法及装置与流程

本发明涉及众核片上网络技术领域,尤其涉及一种高密度片上网络的路网实现方法及装置。



背景技术:

在大规模众核处理器中,为了满足众核之间的数据传输需求,片上网络越来越发挥着重要的作用。相对于总线结构来说,片上网络具有较高的传输效率和较低的传输延迟,成为众核体系结构设计领域热门的研究方向之一。然而,传统片上网络的实现大都采用静态设计思路,链路的带宽需要能够承受最坏情况下的流量压力。因此,链路的设计只考虑最坏情况下承受能力,但最坏的情况并不经常发生。当数据包大小远小于链路宽度时,会造成链路的极大浪费。

综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。



技术实现要素:

针对上述的缺陷,本发明的目的在于提供一种高密度片上网络的路网实现方法及装置,其目的在于实现可灵活控制的高密度片上网络及相应路由器结构设计,通过将高宽度链路分割成低宽度子链路,实现并行传输数据包,可以提高链路的有效利用率,提高片上网络的传输效率,从而提升整个应用程序的执行效率。

为了实现上述目的,本发明提供一种高密度片上网络的路网实现方法,包括:

步骤1,将第一路由和第二路由的链路划分为多个低宽度的自治的子链路;

步骤2,检测输入端口的数据包的队列,配置所述子链路和所述队列在同一时刻并行传输最大数量的所述数据包;

步骤3,根据所述数据包并行传输前的路由信息,将所述数据包进行拆分输出。

根据本发明所述高密度片上网络的路网实现方法,所述步骤1还包括:

步骤11,根据所述子链路的数量分配对应的所述第一路由和所述第二路由之上的输入缓冲区、交叉开关、输出缓冲区、虚通道、多选一选择器和所述第一路由到所述第二路由之间的物理链路;

步骤12,所述子链路独立控制传输所述数据包。

根据本发明所述高密度片上网络的路网实现方法,所述步骤2还包括:

步骤21,根据所述子链路的总宽度和每个所述数据包的宽度,确定每次并行传输所述数据包的队列中的所述数据包的集合;

步骤22,在并行传输前计算所述数据包及并行传输的数据包分片的所述路由信息,所述路由信息包括所述数据包和所述数据包分片的输出端口;

步骤23,根据当前每个所述数据包的宽度,选择每个时刻进行数据传输的大于或等于所述数据包的宽度的所述子链路;

步骤24,所述第一路由输入一个或多个所述数据包。

根据本发明所述高密度片上网络的路网实现方法,所述步骤2还包括:

步骤25,当单个所述数据包的宽度大于单个所述子链路的总宽度,配置相应数量的所述子链路合作传输所述数据包;

步骤26,当所述数据包进入所述第一路由的所述输出缓冲区,再一次输入一个或多个所述数据包。

根据本发明所述高密度片上网络的路网实现方法,所述步骤3还包括:

步骤31,所述第二路由接收所述第一路由输出的所述数据包;

步骤32,根据所述路由信息将所述数据包分流处理继续传输。

本发明提供一种高密度片上网络的路网路由装置,包括:

路网扩充模块,用于将第一路由和第二路由的链路划分为多个低宽度的自治的子链路;

传输管理模块,用于检测输入端口的数据包的队列,配置所述子链路和所述队列在同一时刻并行传输最大数量的所述数据包;

拆分输出模块,用于根据所述数据包并行传输前的路由信息,将所述数据包进行拆分输出。

根据本发明所述高密度片上网络的路网路由装置,所述路网扩充模块还包括:

链路划分子模块,用于根据所述子链路的数量分配对应的所述第一路由和所述第二路由之上的输入缓冲区、交叉开关、输出缓冲区、虚通道、多选一选择器和所述第一路由到所述第二路由之间的物理链路;

所述子链路独立控制传输所述数据包。

根据本发明所述高密度片上网络的路网路由装置,所述传输管理模块包括:

任务分配子模块,用于根据所述子链路的总宽度和每个所述数据包的宽度,确定每次并行传输所述数据包的队列中的所述数据包的集合;

所述高密度片上网络的路网路由装置还包括:

路由计算模块,用于在并行传输前计算所述数据包及并行传输的数据包分片的所述路由信息,所述路由信息包括所述数据包和所述数据包分片的输出端口;

虚通道仲裁模块,用于根据当前每个所述数据包的宽度,选择每个传输时刻进行数据传输的大于或等于所述数据包的宽度的所述子链路。

根据本发明所述高密度片上网络的路网路由装置,所述传输管理模块还包括:

合并传输子模块,用于当单个所述数据包的宽度大于单个所述子链路的总宽度,配置相应数量的所述子链路合作传输所述数据包;

第一输入子模块,用于所述第一路由输入一个或多个所述数据包;所述第一输入子模块还用于当所述数据包进入所述第一路由的所述输出缓冲区,再一次输入一个或多个所述数据包。

根据本发明所述高密度片上网络的路网路由装置,所述拆分输出模块包括:

第二输入子模块,用于所述第二路由接收所述第一路由输出的所述数据包;

数据分流子模块,用于根据并行传输前的所述路由信息将所述数据包分流处理继续传输。

本发明通过高密度片上网络的路网路由装置上通过改进链路的结构和路由方法,实现了细粒度数据传输的结构及路由机制的优化,当每次进行数据包的链路传输时,按照数据包的大小和链路的宽度大小,尽可能多的选择数据包,提高链路的有效利用率。

附图说明

图1是本发明高密度片上网络的路网路由装置的结构示意图;

图2是本发明高密度片上网络的路网路由装置的优选实施例的结构示意图;

图3是本发明高密度片上网络的路网实现方法流程示意图;

图4是本发明高密度片上网络的路网实现方法并行传输流程实施例示意图;

图5是本发明高密度片上网络的路网实现方法拆分传输流程实施例示意图;

图6A是传统片上网络的路网路由装置路由结构示意图;

图6B是本发明高密度片上网络的路网路由装置路由结构示意图;

图7是本发明高密度片上网络的路网路由装置具体实施例之Mesh片上网络示意图;

图8是本发明高密度片上网络的路网路由装置具体实施例之路由器示意图;

图9A是本发明高密度片上网络的路网路由装置传输状态示意图之一;

图9B是本发明高密度片上网络的路网路由装置传输状态示意图之二;

图9C是本发明高密度片上网络的路网路由装置传输状态示意图之三;

图9D是本发明高密度片上网络的路网路由装置传输状态示意图之四;

图9E是本发明高密度片上网络的路网路由装置传输状态示意图之五。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

为了解决上述问题,本发明提供一种高密度片上网络的路网路由装置,所述高密度片上网络的路网路由装置中的元件可以是软件单元,硬件单元或软硬件结合单元,结合图示说明,如图1~图2所示,本发明提供的高密度片上网络的路网路由装置100,包括:

路网扩充模块10,用于将第一路由和第二路由的链路划分为多个低宽度的自治的子链路;

传输管理模块20,用于检测输入端口的数据包的队列,配置所述子链路和所述队列在同一时刻并行传输最大数量的所述数据包;

拆分输出模块30,用于根据所述数据包并行传输前的路由信息,将所述数据包进行拆分输出。

在本发明高密度片上网络的路网路由装置100的优选实施例中,所述路网扩充模块10还包括:

链路划分子模块11,用于根据所述子链路的数量分配对应的所述第一路由和所述第二路由之上的输入缓冲区、交叉开关、输出缓冲区、虚通道、多选一选择器和所述第一路由到所述第二路由之间的物理链路;所述子链路独立控制传输所述数据包;所述多选一选择器,是大于或等于2的选择器,如二选一选择器、五选一选择器。

所述子链路的宽度的分配方式包括均等或不均等。例如在最开始划分成等分的子链路,但在数据包大小可以占用两个或三个以上所述子链路,被占用的多个子链路就等同于一个,一个数据包拆分成数据包分片进入子链路,在路由信息中指定该数据包的数据包分片所在的所有子链路位置,也就是说一个数据包由不同数量的子链路合作传输。

本发明的通过将传统的高宽度的用于传输的链路分割成细粒度的自治的子链路,扩展得到了如图6B所示的高密度片上网络,不同于如图6A所示的传统片上网络,例如,将传统的64比特或128比特链路宽度分割成4个或8个16比特宽的具有自治性的子链路。链路之间独立自治,并且可以合并传输不超过链路宽度(即子链路总宽度,常见的为64比特或128比特)的大数据包,也可以独自传输小数据包。当数据包大于子链路宽度时,可以抢占多个子链路的带宽进行传输,将可以传输的数据包宽度从16比特扩展到更大,通过路由信息确保数据包分片之间的识别和自由拆分组合,剩余的子链路还可以并行传输其它数据包,当数据包大小远小于链路宽度时,可以并行传输多个这样的小数据包。通过将高宽度链路分割成低宽度子链路,实现并行传输数据包,可以提高链路的有效利用率,提高片上网络的传输效率,从而提升整个应用程序的执行效率。实现了的技术效果是,在数据包路由算法基础上,高密度路网总是选择在同一时刻最大限度的传输更多的数据包。例如,当几个数据包顺序等待被路由到下一节点时,路由器会按照自己的宽度和数据包的大小,选择尽可能多的数据包进行传输。路由信息能确保数据包分拆和并行传输过程中的联系不出现混乱和丢失。

更好的是,传输管理模块20包括:

任务分配子模块22,用于根据所述子链路的总宽度和每个所述数据包的宽度,确定每次并行传输所述数据包的队列中的所述数据包的集合;

进一步地,高密度片上网络的路网路由装置100还包括:

路由计算模块40,用于在并行传输前计算所述数据包及并行传输的数据包分片的所述路由信息,所述路由信息包括所述数据包和所述数据包分片的输出端口;

虚通道仲裁模块50,用于根据当前每个所述数据包的宽度,选择每个传输时刻进行数据传输的大于或等于所述数据包的宽度的所述子链路。

所述传输管理模块20还包括:

合并传输子模块22,用于当单个所述数据包的宽度大于单个所述子链路的总宽度,配置相应数量的所述子链路合作传输所述数据包;

第一输入子模块23,用于所述第一路由输入一个或多个所述数据包;所述第一输入子模块23还用于当所述数据包进入所述第一路由的所述输出缓冲区,再一次输入一个或多个所述数据包。

片上网络支持任意大小原始数据包,一般都小于或等于链路宽度,对于小的数据包,可以使用不小于数据包宽度的自治的子链路进行传输,其它链路可并行传输其它大小合适的数据包,提高链路的有效利用率。对于超过通路宽度的大数据包,在进入输入端口时,即按最大链路的宽度大小进行数据包的拆分,这里跟现有的数据包处理方式相同。

更好的是,拆分输出模块30还包括:

第二输入子模块31,用于所述第二路由接收所述第一路由输出的所述数据包;

数据分流子模块32,用于根据并行传输前的所述路由信息将所述数据包分流处理继续传输。

数据包可任意组合或拆分,比如两个路由之间的链路宽度为64位,分割成4个16位宽的自治子链路。如果两个连续数据包整体宽度小于64位,如果一个数据包的大小大于一个子链路宽度且小于等于两个子链路宽度的话,那么就使用两个相邻的子链路传输这个数据包,而不对这个数据包做任何切分,相对于传统的传输方式,它们可以看成一个整体,而子链路其中的负载的数据就相当于数据包分片,两条子链路共享同一个数据包的路由信息,那么原来的两个小宽度的子链路就相当于一个大宽度的子链路了,以此类推其分配过程,然后将去往不同输出端口的数据包进行分流,传输到下个路由后可按照路由信息拆分分流不同的所述数据包继续先前的传输,去往不同输出端口的数据包分开到不同的输出缓冲区。

在本发明高密度片上网络的路网路由装置100的一个具体实施例中,图7所示为高密度片上网络中,相邻两个路由器即第一路由201、第二路由202之间的互连方式。其中,路由计算模块203、路由计算模块208,路由计算模块211,用于计算数据包及数据包分片的目标输出端口;输入缓冲区204,206,213,输出缓冲区207,212,215;为交叉开关205,214;物理传输链路209、物理传输链路210。粗粒度的链路被切换成细粒度的子链路模式时,相应的输入缓冲区、输出缓冲区、虚通道以及交叉开关205、214也将随之切分成相应的数量以达到子链路的自治功能。

相应的,图8展示了单路由器的内部结构,输入端口301为其中一个输入端口拆分示意图。示意图以单链路拆分成四个子链路为例,每条子链路配置为2个二选一选择器302和二选一选择器304、2个虚通道303、1个1x5的交叉开关305,每个交叉开关305分别与其它四个方向链接。还设置有路由计算模块306,为输入端口数据包计算输出端口。虚通道仲裁模块307,选择某个时刻可以进行数据传输的通路,即子链路channel1、channel2、channel3、channel4中的至少一个。高密度细粒度片上网络通路将传统高宽度链路分割成自治的高密度底宽度链路;片上网络支持任意大小原始数据包;数据包可按数据包大小,通路宽度任意组合或拆分,根据需要设置子链路的宽度;每次传输数据包时,尽可能的传输更多的数据包,提高通路的有效利用率,具体地可以使用贪心算法实现优化每次输入的数据包数量。

更进一步地,为了使得本发明高密度片上网络的路网实现方法的实施更清楚,其通过本发明高密度片上网络的路网路由装置100实现,如图3所示的流程图,步骤包括:

步骤S301,将第一路由和第二路由的链路划分为多个低宽度的自治的子链路;这一步,路网扩充模块10将链路划分为多个低宽度的自治的子链路;

步骤S302,检测输入端口的数据包的队列,配置所述子链路和所述队列在同一时刻并行传输最大数量的所述数据包;

这一步,传输管理模块20检测输入端口的外等待传输的数据包的队列,然后结合路由信息中每个数据包的大小信息等配置所述子链路和所述队列在同一时刻并行传输最大数量的所述数据包,

步骤S303,根据所述数据包并行传输前的路由信息,将所述数据包进行拆分输出。最后,拆分输出模块30实现数据包之间的拆分。

其中优选的是,步骤S301还包括:

根据所述子链路的数量分配对应的所述第一路由和所述第二路由之上的输入缓冲区、交叉开关、输出缓冲区、虚通道、多选一选择器和所述第一路由到所述第二路由之间的物理链路;链路划分子模块11实现这一步骤;

所述子链路独立控制传输所述数据包。

本发明所述路网实现方法,为了更好的管理数据包的传输,在第二实施例中,所述步骤包括:

步骤S401,根据所述子链路的总宽度和每个所述数据包的宽度,确定每次并行传输所述数据包的队列中的所述数据包的集合;

步骤S402,根据当前每个所述数据包的宽度,选择每个时刻进行数据传输的大于或等于所述数据包的宽度的所述子链路;

步骤S403,所述第一路由输入一个或多个所述数据包。

任务分配子模块22选择好大小不同的组合的数据包,确定每一次的输入对象,与之对应的是,路由计算模块40、虚通道仲裁模块50、合并传输子模块22第一输入子模块23分别负责子链路的合作传输组织子链路的对应每个数据包、到数据传入下一路由时的数据包再次输入。

更优选的是,所述步骤S402还包括:

当单个所述数据包的宽度大于单个所述子链路的总宽度,配置相应数量的所述子链路合作传输所述数据包;

对于步骤S403,在当前所述输入端口还有数据等待下一轮输入时,设置为:

当所述数据包进入所述第一路由的所述输出缓冲区,再一次输入一个或多个所述数据包。

如图4所示的实施例中完成了传输过程中的子链路的配置、数据包的拆分和排队,由于实际应用中还需要数据包进行合并传输,如图7所示,将两个小数据包可以看成一个传统的大数据包,小数据包进一步地进入子链路中的数据包分片,数据分流子模块32进一步分流,才能由路由本地接口向核心传输,通过任务分配子模块21实现所述数据包的队列管理,在传输时对数据包进行检测、拆分然后经过交叉开关205输出到输出缓冲。

在本优选的第二实施例中,如图5所示,第二路由输出目标数据包时,需要将原有并行传输过程中拆成数据包分片的重新组合为完整的原有的独立的数据包,在该流程中,所述步骤包括:

步骤S501,所述第二路由接收所述第一路由输出的所述数据包;

步骤S502,根据所述路由信息将所述数据包分流处理得到所述数据包继续传输。第二输入子模块31数据分流子模块32,分别执行上述步骤。

为了使得本发明高密度片上网络的路网实现方法更加清楚,在第三实施例中,与第二实施例中的流程进行对照,如图9A~图9E所示的高密度片上网络的路网路由装置100的传输状态示意图,图6B所示为高密度路网的基本实现原理,其中,传统片上网络的高宽度链路101,片上路由器102,对应的是高密度片上网络中的细粒度子链路103的设计。以2D Mesh片上网络实现为例(本发明同样适用于其它片上网络结构,如环状网络、总线结构、Torus网络等等)。在Mesh拓扑中,每个路由器有四个方向(东,西,南,北),以及与本地设备的接口。本发明将传统的高宽度链路分割成低宽度的自治子链路,如图6中103结构所示,128比特宽的通路分割成8个16比特宽度的自治的子链路,每个子链路可独立控制传输数据包,也可以共同工作传输大数据包。第一路由201中的交叉开关205、2交叉开关215,路由器之间的传输链路210。

步骤1:Cycle 0时,如图9A所示,在West In端口有四个不同粒度数据包A、B、C、D、排队等待传输,在North In端口有一个数据包等待传输。假设子链路通道大小为单位1,则数据包A、B、C、D、E大小分别为2、4、3、1、2;

步骤2:Cycle 1时,如图9B所示,数据包A被传入第一路由201的输入缓冲中,因为数据包A和B之和为6超过了链路的总宽度(即子链路总宽度)4,所以本次传输只有A数据包能通过。而数据E大小为2可以顺利进入第一路由201的输入缓冲区;

步骤3:Cycle 2时,如图9C所示,数据包A根据路由算法,经过交叉开关传输到输出缓冲区中等待输出,而与此同时数据包E可以和A同时传输到第一路由201中的East Out端口。与此同时,数据包B被输入到第一路由201的输入缓冲区204中;

步骤4:Cycle 3时,如图9D所示,数据包A、B和E按序向前传递,数据包C,D同时被传递到第一路由201的输入缓冲区204。此时,因为数据包C和数据包D的大小没有超出链路的宽度4,所以数据包C和数据包D可同时并行传输;

步骤5:Cycle 4时,如图9E所示,数据包A和数据包E因为目的地的不同拆分后分别传输到North Out和East Out端口完成数据包的拆分传输操作。

综上所述,本发明通过高密度片上网络的路网路由装置上通过改进链路的结构和路由方法,当每次进行数据包的链路传输时,按照数据包的大小和链路的宽度大小,尽可能多的选择数据包,提高链路的有效利用率。

当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1