一种多处理器互连网络检测的方法

文档序号:7704432阅读:243来源:国知局
专利名称:一种多处理器互连网络检测的方法
技术领域
本发明涉及多处理器计算机技术,特别是涉及多处理器服务器系统中互
连网络;险测的方法。
背景技术
具有两个或更多个独立处理器的计算^L系统^皮称为多处理器系统,处理 器之间通过传输通道连接,可共享也可独立拥有存储器和外设。多处理器计 算系统可以通过不同的体系结构设计出来,但目前其架构主要分为以下三 种对称多处理器SMP ( Symmetric Multi Processing)、非均衡存储器访问体 系结构NUMA (Non Uniform Memory Architectures)、充分均衡存4诸器组织 SUMO (Sufficiently Uniform Memory Organization)。
任意两个处理器之间的传输通道构成了多处理器系统的互连网络。当多 处理器系统进行并行处理时,可以通过互连网络在各处理器之间不断的传输 地址、数据或同步分组信息,使得每个处理器与执行该进程的其他处理器协 调工作。
通常情况下,系统原理图准确的描述了多处理器系统的互连网络,但通 过阅读原理图来获取系统的互连网络是一件困难的事情。而且在实际的工作 中,或许某两个处理器之间的传输通道出现故障,或许某个处理器的槽位处 于空置状态,这都会给最终的互连网络带来不确定性。由于以上问题,需要 有种方法能快速准确的检测多处理器系统的互连网络。
专利号为CN200810002268.3的发明专利披露了用于对称多处理器互连 的方法,其通过一个独立的控制器将各个处理器依次指定为主设备处理器, 并向其他处理器发送数据分组来获取多处理器间的互连网络,然后通过互连 矩阵计算传输路径。但该方法仅适用于对称式多处理器系统,这种通过标识 的功能性通信连接来创建路径映射的方法,不能应用于更复杂的多处理器系统的网络;险测。

发明内容
由于现有多处理器互连网络检测方法只能局限于检测对称多处理器的 互连网络,本发明所要解决的技术问题在于提供一种适用性更广泛,能应用 于包括^旦不限于对称多处理器Symmetric Multi Processing (SMP)、非均衡存 储器访问体系结构Non Uniform Memory Architectures (NUMA)、充分均衡存 储器组织Sufficiently Uniform Memory Organization (SUMO)架构等更复杂的 多处理器系统网络检测的方法。
为解决上述问题,本发明公开了一种多处理器互连网络检测方法,包括 以下步骤
建立邻接关系的步骤,所有处理器之间通过相互发送包含邻居列表的 Hello数据包建立邻接关系;
同步链路状态数据的步骤,每个处理器均维护一个描述互连网络拓朴结 构的链路状态数据,所有处理器之间通过交换链路状态数据包来刷新自身的 链路状态数据以进行链路状态数据的同步。
采用本发明公开多处理器互连网络检测方法,,可以灵活快速的检测到 SMP、 NUMA和SUMO等各种复杂的多处理器系统的现有的有效处理器网 络拓朴结构。
进一步地,上述方法还包括
路径选择步骤,所有处理器利用同步后的链路状态数据,采用最短路径 算法以自己为根节点计算出各自的路由表,所述路由表包含该处理器所能到 达的目的处理器以及到达该目的处理器所要转发的下一个处理器;
任一处理器接收到数据分组后,解析其目的处理器并查找本地的路由
表,以决定转发的下一个处理器。
采用上述路径选择后,从源处理器和目标处理器之间的传输可能存在的 多条路径中选择最短的路径,使传输速度最快、系统的运行效率最高。


图l是基于SUMO架构的8路多处理器系统示意图2是多处理器系统的网络拓朴结构图3是多处理器系统初始化流程图4是邻接关系建立的工作流程图5是链路状态数据同步的工作流程图6是处理器A的路由选择拓朴具体实施 方式
下面结合附图对本发明作详细描述。
如附图1所示,以基于AMD公司Opteron芯片的SUMO架构的8路多 处理器服务器系统100来说明多处理计算机系统的设计架构。由于Opteron 处理器集成了 3条HT超线程总线,每个Opteron处理器最多可连接3个其 他的Opteron处理器,所以根据SUMO架构可衍生出更为复杂的多处理器系 统,
现在以互连网络如图2描述的多处理器系统200作为本发明的优选实施 例。如图2所示,节点表示处理器,边则表示处理器之间的链路,定义处理 器A为多处理器互连网络中数据分组入口 (可存在多个凝:据入口 )。处理 器之间通过HT总线与相邻的处理器连接,且相邻处理器的路径权值相等(均 为l),处理器的每条HT总线都包含一个发送端口和接收端口。
本发明提出多处理器互连网络检测的方法实现如下
如图3所示,在系统的在处理器之间传输数据分组之前,首先要完成互 连网络的检测,主要通过两个步骤完成处理器之间建立邻接关系(步骤 301)、同步链路状态数据(步骤302)。
处理器之间传输的数据包主要有
l)Hello数据包。处理器之间可通过互发Hello数据包建立邻接关系,其 中每个Hello数据包中都包含一个邻居列表。2) 链路状态数据包(L-S数据包)。处理器之间可通过互发L-S数据包 同步描述互连网络拓朴结构的链路状态数据。
3) 确认数据包。处理器收到L-S数据包后,且完成链路状态数据同步后, 发送确认数据包作为应答。
以下将对这两个步骤进行详细描述。
如图4所示,处理器之间通过相互发送Hello数据包建立邻接关系,具 体步骤如下
1) 每个处理器通过发送端口周期性的向相邻处理器发送Hello数据包 (步骤401),同时通过接收端口接收Hello数据包(步骤403 )。
2) 在Hello数据包中包含一个邻居列表,当处理器接收到相邻处理器发 来的Hello数据包,则将发送该Hello数据包的相邻处理器添加至到自己要 发出的Hello数据包的邻居列表之中(步骤405)。
3) 当处理器在接收到的Hello数据包中的邻居列表中"看"到自己时(步 骤406),则成功建立邻接关系双向通信(步骤408)。
4) 如果在一个预定时间之内未接收到相邻处理器发送的Hello凄t据包 (步骤402),则认为此邻接关系建立失败(步骤407)。
当处理器之间建立邻接关系之后,每个处理器均维护一个描述互连网络 拓朴结构的链路状态数据。处理器通过交换链路状态数据包(L-S数据包) 来刷新自身的链路状态数据以达到同步的目的。
图5描述了处理器单个链路上发送端口和接收端口的工作流程,则其他 链路的流程亦与此相同。其步骤如下
1) 在链路的发送端口 ,处理器向相邻处理器发送L-S数据包(步骤501 ), 并等待确认数据包。
2) 在链路的接收端口 ,处理器接收该链路上相邻处理器发送的L-S数据 包后(步骤503 ),检查自己的链路状态数据数据(步骤504)。如果链路 状态数据中不包含该链接,则添加该链接(步骤505),并发送确认数据包 以示刷新完成(步骤502);如果链路状态数据中已包含该链接,则直接发 送确认数据包。3) 处理器收到确认数据包,则停止向该相邻处理器发送L-S数据包(步 骤507);如未收到确认数据包(步骤506),则经过预定时间后重新发送 L-S数据包。
4) 如果在该链路上接收相邻处理器的L-S数据包后添加链接状态而刷新 自己的数据,则向本处理器其他链路的相邻处理器启动发送L-S数据包(步 骤508 )。
5) 当所有处理器完成邻接关系建立,则所有处理器的链路状态数据也就 同步了。
要实现处理器之间数据分组的有效传输,还可以进行传输路径的选择, 主要由计算最短路径树(步骤303 )实现。具体实现方式如下
当处理器的链路状态数据完成同步后,所有处理器利用同步后的链路状 态数据,采用最短路径算法以自己为根节点计算出各自的路由表。该路由表 包含该处理器所能到达的目的处理器以及到达该目的处理器所要转发的下 一个处理器。如以处理器A为源节点,计算得到的路由选择拓朴图如图6 所示。
上述最短路径的算法,最常用的为Dijkstra算法,但是,同样也可以采 用包括但不限于A承算法,SPFA算法,Bellman-Ford算法,Floyd-Warshall 算法,Johnson算法等在内的任何最短路径的算法,上述算法均可以满足发 明目的。
数据分组传输(步骤304 ),当所有处理器产生自己的路由表,则数据 分组则能够以数据分组入口为源节点向其他任意处理器传输。处理器接收到 数据分组后,解析其目的处理器并查找本地的路由表,以决定转发的下一个 处理器,从而保证数据分组以最短的路径达到目的处理器。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域 的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则 之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围 之内。
权利要求
1、一种多处理器互连网络检测方法,其特征在于,包括以下步骤建立邻接关系的步骤,所有处理器之间通过相互发送Hello数据包建立邻接关系;同步链路状态数据的步骤,所有处理器之间通过交换描述互连网络拓扑结构的链路状态数据包来刷新自身的链路状态数据。
2、 按照权利要求1所述的多处理器互连网络;险测方法,其特征在于,所 述建立邻接关系的步骤包括2.1) 每个处理器通过发送端口周期性的向相邻处理器发送Hello数据 包,同时通过接收端口接收Hello数据包,其中,所述Hello数据包包含邻 居列表;2.2 )每个处理器接收到Hello数据包后,将发送该Hello数据包的相邻 处理器添加至到自己要发出的Hello数据包的邻居列表之中。2.3 )任一处理器接收到的Hello数据包中的邻居列表包含自己时,则建 立该接收Hello数据包的处理器与发送该Hello数据包的处理器之间的邻接 关系。
3、 按照权利要求1所述的多处理器互连网络检测方法,其特征在于,所 述同步链路状态数据的步骤包括3.1 )每个处理器向相邻处理器发送描述互连网络拓朴结构的链路状态 数据包;3.2) 每个处理器接收任一链路上相邻处理器发送的链路状态数据包后, 在自己的链路状态数据中添加未包含的链接,并向发送该链路状态数据包的 相邻处理器发送确认数据包;3.3) 每个处理器收到任一链路上相邻处理器发送的确认数据包后,停止向该发送确认数据包的相邻处理器发送链路状态数据包。,3.4)每个处理器添加链接刷新链路状态数据后,向本处理器其他链路 的相邻处理器启动发送链路状态数据包。
4、 按照权利要求3所述的多处理器互连网络检测方法,其特征在于,所 述步骤3.3)中进一步包括如处理器未收到确认数据包,经过预定时间后 重新向该相邻处理器发送链路状态数据包。
5、 按照权利要求1至4中任一项所述的多处理器互连网络检测方法,其 特征在于,还包括路径选择步骤,所有处理器根据同步后的链路状态数据计 算各自的路由表,以决定传输数据分组的路径。
6、 按照权利要求5所述的多处理器互连网络检测方法,其特征在于,所 述的路径选择步骤包括每个处理器利用同步后的链路状态数据,采用最短 路径算法以自己为根节点计算出各自的包含该处理器所能到达的目的处理 器以及到达该目的处理器所要转发的下一个处理器的路由表。
7、 按照权利要求6所述的多处理器互连网络检测方法,其特征在于,进 一步包括每个处理器接收到数据分组后,解析其目的处理器并查找本地的 路由表,以决定转发的下一个处理器。
8、 按照权利要求6所述的多处理器互连网络检测方法,其特征在于,所 述的最短路径算法为Dijkstra算法。
9、 按照权利要求6所述的多处理器互连网络检测方法,其特征在于,所 述的最短路径算法为八*算法。
全文摘要
本发明主要涉及多处理器计算机技术,特别是涉及多处理器服务器系统中互连网络检测的方法。本发明公开了一种多处理器互连网络检测的方法,包括所有处理器之间通过相互发送Hello数据包建立邻接关系的建立邻接关系的步骤以及所有处理器之间通过交换描述互连网络拓扑结构的链路状态数据包来刷新自身的链路状态数据的同步链路状态数据的步骤。本发明技术方案提供了一种适用性更广泛,能应用于包括但不限于对称多处理器、非均衡存储器访问体系结构、充分均衡存储器组织架构等更复杂的多处理器系统网络检测的方法。
文档编号H04L12/26GK101662395SQ20091010811
公开日2010年3月3日 申请日期2009年6月23日 优先权日2009年6月23日
发明者吴庆家, 陈叶鹏 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1