首页> 中国专利> 一种集成网络路由器的众核处理器系统及其集成方法和实现方法

一种集成网络路由器的众核处理器系统及其集成方法和实现方法

摘要

本发明公开了一种众核处理器系统集成网络路由器的方法,该方法包括:划分子网步骤用于通过将片上网络划分为多个子网平衡片内的网络请求,网络接口设备部署步骤用于将至少一个网络接口设备分布式部署在子网中,以确保部署的网络接口设备与子网内的处理器核之间的连通度最优化,以实现片上网络或片间网络快速数据交换。本发明还公开了一种集成网络路由器的众核处理器系统,该系统包含用于网络接口和数据交换的网络路由器,并且该网络路由器包含多个分布式嵌入片上网络的网络接口设备。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-29

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140627

    实质审查的生效

  • 2014-10-01

    公开

    公开

说明书

技术领域

本发明涉及多核或众核处理器系统领域,特别是涉及处理器内集成网络路 由器的系统。

背景技术

随着半导体工艺的进步,单芯片晶体管数目不断增加,芯片内可集成的处 理器核数越来越多,多核/众核处理器成为当前处理器的主流。从平衡设计角 度出发,处理器核数的增加大大提高了处理器对网络性能的需求。当前的网络 设备带宽在快速提升:网络设备如Infiniband的HCA卡在2014年将推出最高 300Gb/s带宽的产品,以太网的100Gb/s已有验证产品,400Gb/s的规范也在 制定之中。当带宽达到300Gb/s时,就已经与当前的DDR3访存带宽相当,因 此亟需对当前的网络I/O系统进行优化。

目前,将网络路由器集成在处理器内是提高网络I/O性能的重要解决方法。 IBM Blue Gene系列高性能计算机将高性能网络路由器(Router)集成在了处 理器之内,图1所示的是IBM Blue Gene/Q处理器集成网络路由器的方法:将 一个网络路由器(Router)挂载于片上网络(交叉开关),路由器内部包括一 个片上网络接口、若干片间网络接口、若干网络处理引擎和交叉开关,每个片 上和片间网络接口都配有一个处理网络协议的网络处理引擎,集成的网络路由 器仅通过一个片上网络接口与片上网络进行数据交换,片间网络接口仅用于跟 其他处理器间的通信,交叉开关则实现Router内部的数据交换。在期刊名称 为:“IEEE Micro,vol(32):2,March2012,Pages48-60”,文献名称为:“The IBM  Blue Gene/Q Compute Chip”,作者为:Ruud Haring,Martin Ohmacht等的文献 中公开了上述集成网络路由器的方法。

图1的结构存在三个问题:1.路由器仅与片上网络有唯一的接口,限制 了网络接入带宽,无法有效服务于众核处理器中的大量处理器核;2.路由器 需要实现两种网络接口(片间网络接口和片上网络接口),且端口数目为两类 网络接口数目之和;3.路由器内部仍需要独立的交叉开关,使得路由器的扩 展性受到限制,也增加了路由器的面积和布线复杂度。

发明内容

本发明所要解决的技术问题在于提供一种集成网络路由器的众核处理器 系统及其集成方法和实现方法,以克服现有技术中存在的集中式网络路由器部 署方式带来的网络接入带宽狭小,需要独立的交叉开关的问题。

为达上述目的,本发明一种众核处理器系统集成网络路由器的方法,应用 于包含处理器、片上网络、片间网络和网络路由器的众核处理器系统,包括:

划分子网步骤:通过将所述片上网络划分为多个子网平衡片内的网络请 求;

网络接口设备部署步骤:将至少一个网络接口设备分布式部署在所述子网 中,以确保部署的所述网络接口设备与所述子网内的处理器核之间的连通度最 优化,以实现所述片上网络或所述片间网络快速数据交换。

上述众核处理器系统集成网络路由器的方法,所述划分子网步骤还包括:

子网划分子步骤:基于带权值全网络扩散方法进行子网划分,获取最终划 分成功的所述子网。

上述众核处理器系统集成网络路由器的方法,所述带权值全网络扩散方法 包括:

步骤1:将所述片上网络作为对应的图G,所述处理器核对应图G的顶点, 所述处理器核之间的连线对应图G的边,所述图G包含所述顶点集合V,所 述边集合E和权值集合W;

步骤2:设置所述顶点集V中的顶点的初始扩散值;

步骤3:基于所述初始扩散值进行扩散值迭代更新,获取迭代过程中邻接 的所述顶点的扩散值差的绝对值的最大值,并记录所述最大值对应的所述边, 如果多次迭代中所述最大值对应所述边为同一条边,则删除所述最大值对应所 述边,否则继续执行所述子网获取步骤;

步骤4:如果所述扩散值迭代更新步骤中,得到的子网数量没有增加,则 执行所述扩散值迭代更新步骤,否则,计算所述模块度Q,如果所述模块度获 取步骤的所述模块度Q值增加,则执行所述扩散值迭代更新步骤,否则,形 成一个划分子网;

步骤5:如果所述划分子网直径大于所述子网直径,则所述划分子网需要 继续划分,执行所述子网获取步骤,否则,根据所述子网规模阈值进行判断所 述划分子网的规模;

步骤6:所述子网规模判断步骤中,所述划分子网规模小于所述子网规模 阈值,则进行子网合并,输出最终划分所述子网;

步骤7:如果所有子网满足所述子网规模阈值和所述子网直径,则输出最 终划分成功的子网。

上述众核处理器系统集成网络路由器的方法,所述步骤3中扩散迭代的方 程符合如下定义:假设所述顶点L1、L2…Ln个顶点相连,定义为:

Di=ΣjGDjWijΣjGWijaij

其中Di、Dj是分别是Li点和Lj点的扩散值,wij是Li点和Lj点之间边的 权值;所述aij是图G的邻接矩阵中的元素。

上述众核处理器系统集成网络路由器的方法,所述模块度Q的计算公式为:

Q(k)=Σi=1k[L(Vi,Vi)L(V,V)-(L(Vi,V)L(V,V))2]

其中,所述所述参数Vi是划分出来的一个子网,wmn是m点和n点之间边的权值,所述k是已经划分完成的子网的数量。

上述众核处理器系统集成网络路由器的方法,所述划分子网步骤中,所述 片上网络是根据路由器端口数目、片上网络结构特征、处理器内的网络请求特 征及处理器引脚布局限制之任一或任意组合条件划分为多个子网。

本发明还提供一种集成网络路由器的众核处理器系统,采用如所述众核处 理器系统集成网络路由器的方法,所述处理器系统包含:处理器、片上网络和 片间网络,所述众核处理器系统还包含:

网络路由器:用于网络接口和数据交换,所述网络路由器包含多个分布式 嵌入所述片上网络的网络接口设备;

其中,所述网络接口设备设置于所述片上网络划分的子网范围内,作为同 一处理器内或处理器之间的网络接口,基于所述片上网络或所述片间网络进行 数据的交换。

上述集成网络路由器的众核处理器系统,所述片上网络被分割为多个所述 子网,每个所述子网配置至少一个所述网络接口设备。

上述集成网络路由器的众核处理器系统,所述网络接口设备进一步包括: 网络处理引擎:用于解析所述片上网络接口与所述片间网络接口发送的网络数 据包,实现网络通信协议。

本发明还提供了一种众核处理器系统的实现方法,应用于如所述的集成网 络路由器的众核处理器系统,所述处理器系统包含:处理器、片上网络、片间 网络和网络路由器,所述方法包括:

选择网络接口设备步骤:根据所述网络接口设备满足功能需求及性能要求 的情况,选取所述子网内的网络接口设备;

计算路径步骤:根据已经选取的所述网络接口设备,进行从源处理器核到 达目标所述网络接口设备的路径计算。

与现有技术相比,本发明的有益效果在于:

1.为每个子网提供网络接入能力,使得大量处理器核的网络访问请求分 布于多个网络接口设备之中,提高了处理器整体的网络接入能力,且有利于实 现大量处理器核访问网络的负载均衡;

2.利用高速的片上网络实现网络接口设备间交换,节省了以往处理器中 路由器(Router)的专用数据交换资源(如路由器内的交叉开关);

3.分布式的网络接口设备放置策略,突破了传统处理器中集中式网络路 由器的扩展性限制,提高了网络路由器的扩展性。

附图说明

图1为现有IBM Bluegene Q集成网络路由器结构示意图;

图2为本发明系统结构示意图;

图3为本发明实施例集成网络路由器的众核处理器结构示意图;

图4为本发明众核处理器集成网络路由器的方法流程示意图;

图5为本发明带权值全网络扩散方法流程示意图;

图6为本发明实施例众核处理器中集成网络路由器的方法示意图;

图7为本发明实施例带权值全网络扩散方法流程示意图;

图8为本发明众核处理器系统实现方法流程示意图;

图9是本发明的实施例众核处理器系统实现方法示意图;

图10是本发明具体实施例片间Mesh网络的众核处理器结构示意图。

其中,附图标记:

100网络路由器

101网络接口设备

S100~S200、S1~S7、310~320、510~640、S300~S400、410~450:本发明 各实施例的施行步骤

具体实施方式

下面给出本发明的具体实施方式,结合图示对本发明做出了详细描述。

本发明的关键点在于将高速网络路由器(Router)功能分离为网络接口 (NI:Network Interface)功能和交换(Switch)功能:

1.分布部署网络接口:将片上网络(On-chip network)分割为子网,为 每个子网配置网络接口设备,提高网络接入能力,并实现处理器核间的网络负 载均衡;

2.片上网络实现交换功能:将网络接口设备直接挂载高速片上网络之上, 使用片上网络的交换功能,替代原有路由器内部独立的交叉开关,实现网络接 口设备与处理器核间,网络接口设备间的交换功能。

本发明公开了提供一种在多核/众核处理器内集成高速网络路由器的方法 和系统:将高速网络路由器(Router)功能分离为网络接口(NI:Network  Interface)功能和交换(Switch)功能;将片上网络(On-chip network)分割 为子网,为每个子网配置网络接口设备,实现片上流量的分布式注入,突破集 中式网络路由器的扩展性限制,提高了网络路由器的扩展性;网络接口设备与 传统的网络接口控制器(NIC,或称网卡)功能相似,传统的网络接口控制器 挂载于I/O总线(如PCI-Express),而本发明的网络接口设备直接挂载高速片 上网络之上,通过片上网络实现网络接口设备与处理器核间,网络接口设备间 的交换功能,由片上网络替换路由器专用的交换部件,有利于降低芯片功耗和 面积。

本发明提供的一种集成网络路由器的众核处理器系统,包含:处理器、片 上网络和片间网络,如图2所示,还包含:

网络路由器100:用于网络接口和数据交换,网络路由器1包含多个分布 式嵌入片上网络的网络接口设备101(网络接口设备1、网络接口设备2,… 网络接口设备N);

其中,网络接口设备101设置于片上网络划分的子网范围内,作为同一处 理器内或处理器之间的网络接口,基于所述片上网络或所述片间网络进行数据 的交换。

其中,片上网络被分割为多个子网,每个子网配置至少一个网络接口设备 11。

其中,网络接口设备101进一步包括:网络处理引擎用于解析片上网络接 口与片间网络接口发送的网络数据包,实现网络通信协议。

以下结合图示,对本发明的众核处理器系统结构进行详细说明:

如图3所示,本发明系统包括:若干处理器核1,片上网络2,和若干网 络接口设备3。

其中,该处理器核1,其功能在于负责运行计算任务,产生访存和I/O请 求,本发明并不对处理器核的指令集进行限定,可以是X86、MIPS、或ARM 等,此外,本发明也不对处理器核的数目进行限制。

其中,该片上网络2,由若干子网21组成,其功能在于实现处理器内所 有部件的高速互连,涉及处理器核间互连,处理器核与内存控制器间互连,处 理器核与Cache间互连,处理器核与网络接口设备间互连等。本发明并不对片 上互连网络的具体拓扑结构、性能和路由算法进行限制,也不对其是否支持 Cache一致性协议进行限制。

其中,该片上网络的子网21,其功能在于实现处理器内部分部件的高速 互连,涉及处理器核间互连,处理器核与网络接口设备间互连等。

其中,该网络接口设备3,其功能在于实现片上处理器核和片外互连网络 间的数据收发,每个片上网络的子网都包含一个网络接口设备,网络接口设备 由片上网络接口31,片间网络接口32和网络处理引擎33构成。本发明不对 片上网络接口31、片间网络接口32和网络处理引擎33的数目进行限制。

其中,该网络接口设备的片上网络接口31,其功能在于将网络接口设备 挂接在片上网络之上,实现该网络接口设备与同一个处理器上的部件(包括处 理器核和网络接口设备)间的数据收发;

其中,该网络接口设备的片间网络接口32,其功能在于将网络接口设备 挂接在片间网络(全系统网络,实现处理器间互连)之上,实现该网络接口设 备与其他处理器间的数据收发;

其中,该网络接口设备的网络处理引擎33,其功能在于解析网络数据包, 实现网络通信协议;本发明中的网络处理引擎也可以是一个为加速网络收发性 能而设计的异构处理器核,如网络处理器核等。

本发明还提供一种众核处理器系统集成网络路由器的方法,应用于包含处 理器、片上网络、片间网络和网络路由器的众核处理器系统,如图4所示,该 方法包括:

划分子网步骤S100:通过将片上网络划分为多个子网平衡片内的网络请 求;

网络接口设备部署步骤S200:将至少一个网络接口设备分布式部署在子 网中,以确保部署的网络接口设备与子网内的处理器核之间的连通度最优化, 以实现片上网络或片间网络快速数据交换。

其中,划分子网步骤S100还包括:

子网划分子步骤S101:基于带权值全网络扩散方法进行子网划分,获取 最终划分成功的子网。

其中,划分子网步骤中,片上网络是根据路由器端口数目、片上网络结构 特征、处理器内的网络请求特征及处理器引脚布局限制之任一或任意组合条件 划分为多个子网。

其中,如图5所示,带权值全网络扩散方法包括:

步骤S1:将片上网络作为对应的图G,处理器核对应图G的顶点,处理 器核之间的连线对应图G的边,图G包含顶点集合V,边集合E和权值集合 W;

步骤S2:设置顶点集V中的顶点的初始扩散值;

步骤S3:基于初始扩散值进行扩散值迭代更新,获取迭代过程中邻接的 顶点的扩散值差的绝对值的最大值,并记录最大值对应的所述边,如果多次迭 代中最大值对应边为同一条边,则删除最大值对应边,否则继续执行子网获取 步骤;

步骤S4:如果扩散值迭代更新步骤中,得到的子网数量没有增加,则执 行扩散值迭代更新步骤,否则,计算模块度Q,如果模块度获取步骤的模块度 Q值增加,则执行扩散值迭代更新步骤,否则,形成一个划分子网;

步骤S5:如果划分子网直径大于子网直径,则划分子网需要继续划分, 执行子网获取步骤,否则,根据子网规模阈值进行判断划分子网的规模;

步骤S6:子网规模判断步骤中,划分子网规模小于子网规模阈值,则进 行子网合并,输出最终划分子网;

步骤S7:如果所有子网满足子网规模阈值和子网直径,则输出最终划分 成功的子网。

其中,步骤3中扩散迭代的方程符合如下定义:假设顶点L1、L2…Ln个 顶点相连,定义为:

Di=ΣjGDj×wijΣjGwij×aij

其中Di、Dj是分别是Li点和Lj点的扩散值,wij是Li点和Lj点之间边的 权值;aij是图G的邻接矩阵中的元素。

其中,模块度Q的计算公式为:

Q(k)=Σi=1k[L(Vi,Vi)L(V,V)-(L(Vi,V)L(V,V))2]

其中,L(Vi,Vj)=Σm∈Vi,n∈Vjwmn,参数Vi是划分出来的一个子网,wmn是m 点和n点之间边的权值,k是已经划分完成的子网的数量。

以下结合图示,详细说明本发明方法实施例步骤:

本发明还涉及一种众核处理器集成网络路由器的方法,如图6所示,包括 下列步骤:

步骤310.划分子网:根据片间网络对路由器的端口数目需求、片上网络 的结构特征(连通度、局部性等)、处理器内的网络请求特征(类型、频率、 延迟带宽需求等)和处理器引脚布局限制(数量、高速I/O引脚面积功耗等) 等,将片上网络划分为若干子网,划分出的子网需要能够平衡片内的网络请求, 并实现子网内处理器核与网络接口设备间的快速数据交互,跳转至步骤320;

步骤320.为每个子网部署网络接口设备:根据子网的结构和规模,将网 络接口设备部署在子网中,其位置选择需要最优化网络接口设备与子网内处理 器核间的连通度。

其中,对于步骤310的子网划分,我们提出一种基于带权值全网络扩散方 法的子网划分算法,算法的输入包括:1)片上网络对应的图G=(V,E,W), 其中V是顶点集,E是边集,权值集W表示网络中各个连接的带宽;2)图G 的邻接矩阵A,aij是其中的元素。算法的输出为片上网络的图的划分S,如图 7所示,具体包括如下步骤:

步骤510:对图G中的每一个顶点(处理器核)设定一个初始扩散值D(根 据路由器端口数目、片上网络结构、网络请求特征和处理器引脚布局设定);

步骤520:使用扩散迭代方程对图G中的扩散值进行迭代更新,其中扩散 迭代方程符合如下定义:假设顶点P与L1、L2…Ln等n个顶点相连,定义

Dp=Σi=1nDLi×wLiΣi=1nwLi---(1)

其中Dp、DLi是分别是P点和Li点的扩散值,wLi是P点和Li点之间边的 权值;此式子含义为一个顶点的扩散值是相邻顶点扩散值的加权均数。由于A 是图G的邻接矩阵,aij是其中的元素,更一般的可以将等式写为:

Di=ΣjGDj×wijΣjGwij×aij---(2)

为了更直观的理解此方程,需要将其变化为矩阵形式,因此定义:

所以可以将扩散方程(2)用矩阵形式进行描述为:

D=MD  (4)

步骤530:计算图G中任意邻接两点的扩散值差的绝对值:ΔDij=|Di-Dj|, 并找出此次迭代过程中最大的ΔD,并记录其边为emax

步骤540:如果在多次迭代中emax不是同一条边,跳转到步骤520执行下 一次迭代;反之则认为此边是最大扩散距离边,跳转至步骤550;

步骤550:从图G中删除最大扩散距离边emax,跳转至步骤560;

步骤560:如果子网的数目没有增加,跳到步骤520执行下一次迭代,否 则跳转至步骤570;

步骤570:使用公式(5)计算模块度Q,Q用来描述分割子网中顶点的密集 程度(Q值表示分割子网内部的边的比例减去在同样的子网结构下随机连接顶 点的边的比例的期望值,Q值越大,说明所划分的域内连接越紧密)。在网络 逐渐分裂的过程中,Q值会逐渐增加,当划分为k个子网时将达到峰值,之后 开始减少,那么将在Q减少结束算法的运行。定义Q的计算公式:

Q(k)=Σi=1k[L(Vi,Vi)L(V,V)-(L(Vi,V)L(V,V))2]---(5)

其中L(Vi,Vj)=Σm∈Vi,n∈Vjwmn,参数Vi是划分出来的一个子网,k是现在 划分的子网的数量。跳转至步骤580;

步骤580:如果整个网络的Q值的和增加,则跳转到步骤520执行下一次 迭代;如果减少则跳转至步骤590;

步骤590:形成一个子网归入划分S,跳转至步骤600;

步骤600:如果该子网的直径大于设定的子网直径阈值,说明该子网需要 继续拆分,使用该划分算法对这个子网实施划分操作;否则跳转至步骤610;

步骤610:如果该子网规模大于设定的子网规模阈值,则跳转至步骤630; 如果子网规模小于子网规模阈值,跳转至步骤620;

步骤620:进行子网合并操作,一个子网可能与多个子网都有邻接,在合 并之前需要根据子网直径和模块度函数综合判断它与哪个子网进行合并。随机 选择一个规模过小的子网,并分别计算它与各个相邻子网合并后的子网直径和 模块度函数Q,选择合并后子网直径不超过子网直径阈值,且模块度最大的子 网进行合并,跳转至步骤630。

步骤630:输出一个子网,跳转至步骤640;

步骤640:若整个片上网络的所有子网都满足子网直径和子网规模阈值, 则输出最终的划分S,否则跳转至步骤510继续进行子网划分。

本发明还提供一种众核处理器系统的实现方法,应用于如所述的集成网络 路由器的众核处理器系统,该处理器系统包含:处理器、片上网络、片间网络 和网络路由器,如图8所示,该方法包括:

选择网络接口设备步骤S300:根据网络接口设备满足功能需求及性能要 求的情况,选取子网内的网络接口设备;

计算路径步骤S400:根据已经选取的网络接口设备,进行从源处理器核 到达目标网络接口设备的路径计算。

以下结合图示,详细说明本发明实施例方法过程:

本发明涉及一种处理器核基于集成网络路由器的实现方法,如图9所示, 主要涉及对网络接口设备的选择和到达所选网络接口设备的路径选择,包括下 列步骤:

步骤410.选择本子网网络接口设备,跳转至步骤420;

步骤420.子网内网络接口设备若能满足功能需求,记录当前网络接口设 备,跳转至步骤440,否则跳转至步骤430;

步骤430.选择满足功能需求的其他子网网络接口设备,记录当前网络接 口设备,跳转至步骤440;

步骤440.当前选择的网络接口设备负载若能够满足性能要求或已经是最 后一个网络接口设备则标记当前记录的网络接口设备为目标网络接口设备,跳 转至步骤450,否则跳转至步骤430;

步骤450.计算到达网络接口设备的路径:根据片上和片间网络的状态(延 迟、带宽、动态负载、拥塞程度等),使用片上网络的路由算法(如Mesh、Torus 网络中的维序路由算法和自适应路由算法等,Fat-tree网络的健忘性路由算法 等),计算从源处理器核到目标网络接口设备的路径。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明的一种多核或众核处理器中集成网络路由器的方法及系统进行 进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并 不用于限定本发明。

为了更直观的对本发明的内容进行描述,本发明给出一种集成网络路由器 的众核处理器实施例,该实施例用于构建全系统Mesh网络(片间网络为Mesh 拓扑),但本发明并不以此为限。如图10所示,该实施例在众核处理器(片上 网络也为Mesh拓扑)中集成了4个网络接口设备,分别对应片间Mesh拓扑 所需的X+,X-,Y+,Y-四个方向。根据网络接口设备的数量、片上网络拓扑结构、 处理器核间的网络请求情况,图10将片上网络分割为4个子网,并根据片上 网络的结构特征(连通度、局部性等)、处理器内的网络请求特征(类型、频 率、延迟带宽需求等)和处理器引脚布局限制(数量、高速I/O引脚面积功耗 等)等将四个网络接口设备分配至四个子网之中。

当处理器核需要往X-方向发送消息时,将选择X-方向对应的网络接口设 备(按功能选择网络接口设备);当子网1中的处理器核要发送的消息,既可 以发往X-也可以发往Y-方向时,则优先选择X-方向对应的网络接口控制设备, 若X-方向对应的网络接口控制设备处于高负载状态,而Y-方向对应的网络接 口控制设备负载较低,则选择Y-方向对应的网络接口控制设备。

相应地,若片间网络采用3D Torus网络拓扑,则设置6个网络接口设备 (对应X+,X-,Y+,Y-,Z+,Z-六个方向),并将片上网络分割为6个子网,在每个 子网中配置一个网络接口设备。

综上所述,本发明提供的集成网络路由器的众核处理器系统及其集成方法 和实现方法,提高了处理器整体的网络接入能力,且有利于实现大量处理器核 访问网络的负载均衡;节省了以往处理器中路由器的专用数据交换资源;突破 了传统处理器中集中式网络路由器的扩展性限制,提高了网络路由器的扩展 性。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号