CN111683014A - 一种高速互连网络的路由路径追踪方法及系统 - Google Patents
一种高速互连网络的路由路径追踪方法及系统 Download PDFInfo
- Publication number
- CN111683014A CN111683014A CN202010455935.4A CN202010455935A CN111683014A CN 111683014 A CN111683014 A CN 111683014A CN 202010455935 A CN202010455935 A CN 202010455935A CN 111683014 A CN111683014 A CN 111683014A
- Authority
- CN
- China
- Prior art keywords
- chip
- management
- network
- network interface
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Abstract
本发明公开了一种高速互连网络的路由路径追踪方法及系统,本发明方法包括获取待追踪的源节点和目的节点,将源节点的网络接口芯片作为初始的当前芯片;获取当前芯片的对端网络接口芯片信息;判断对端网络接口芯片的类型为NRC芯片还是NIC芯片,如果为NRC芯片,则将对端网络接口芯片作为新的当前芯片继续迭代;否则判断对端网络接口芯片、目的节点的网络接口芯片的芯片编号是否相同,如果相同,则判定源节点和目的节点之间的路径追踪正确;否则判定路径追踪错误。本发明能够实现互连网络任意两个计算节点之间数据传输路径追踪,追踪速度快、追踪效率高,对于快速发现网络路由表错误和网络故障、加快互连网络调试进度具有重要作用。
Description
技术领域
本发明主要涉及高性能计算系统高速互连网络领域,具体涉及一种高速互连网络的路由路径追踪方法及系统,用于进行互连网络任意两个计算节点之间数据传输路径追踪。
背景技术
高速互连网络通常由网络接口芯片(Network Interface Chip,简记为NIC)和网络交换芯片(Network Routing Chip,简记为NRC)连接而成。高速互连网络是高性能计算系统全局性基础设施,是构成计算系统并实现系统中各个计算节点协同工作的关键部件,其复杂性往往使得互连网络构建成为计算系统构建中最耗时间的过程。所以,互连网络子系统的构建时间通常会明显地影响整个计算系统的构建时间。互连网络构建的具体环节通常包括:物理布局设计、拓扑结构检查、网络参数配置等。
当前主流高性能计算系统的互连网络的路由实现方式有两种,分别是集中式源路由和分布式查表路由。对于集中式源路由而言,通常系统的每个计算节点都保存一张单播路由表,该路由表的各个表项指明了该节点到系统中任意节点的路由跳步信息。当通信时,节点通过查路由表获取到目的节点的路由信息,并将该信息填写到报文头部。当报文在网络中传输时,每一跳步的交换芯片将根据报文头路由信息选择报文的输出端口,直到报文到达目的节点。对于分布式查表路由而言,互连网络中每个交换芯片保存路由表,该路由表指定到系统中各个目的节点时应该选择的本路由器输出端口。当通信时,节点只需要直接在报文头部填写目的节点编号并将报文注入网络即可。与集中式源路由相比,分布式查表路由实现可以缩短报文头部长度,提高报文的有效载荷效率,因此成为许多高速互连网络系统的设计选择。例如,部署在广州国家超算中心的“天河二号(TH-2)”高性能计算系统使用的就是采用分布式查表路由技术的互连网络。
互连网络系统路由表设计的正确性直接影响高性能计算系统及其互连网络的构建效率。在网络构建过程中,设计的路由表存在的错误是必需能够快速发现并解决的问题,否则会可能会严重影响大规模互连网络系统的调试进度。通常,对路由表的正确性进行检查主要有两种方法,一是采用离线方式,即通过建立网络拓扑结构模型并对任意节点间的路由过程进行仿真;二是采用在线方式,即通过实时获得配置到网络中的路由信息和局部拓扑信息并对任意节点间的路由过程进行仿真(简称路径追踪)。对于采用分布式查表路由的网络而言,通常每个交换芯片的对应一个路由表文件,该路由表文件定义了进入各个端口的网络流量到不同目的节点所选择的不同输出端口。所以,分布式查表路由互连网络采用离线方式检查路由表的正确性将存在大量文件读写问题,这会降低路由正确性检查的效率,对于规模较大的高速互连网络系统而言,其时间开销是难以接受的。同时,离线方式检查路由正确性时所建立的网络拓扑结构模型的正确性也会影响路由正确性检查的有效性。所以,针对大规模分布式查表互连网络系统,必需采用在线的路径追踪的方式。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种高速互连网络的路由路径追踪方法及系统,本发明能够实现互连网络任意两个计算节点之间数据传输路径追踪,追踪速度快、追踪效率高,对于快速发现网络路由表错误和网络故障、加快互连网络调试进度具有重要作用。
为了解决上述技术问题,本发明采用的技术方案为:
一种高速互连网络的路由路径追踪方法,实施步骤包括:
1)获取待追踪的源节点和目的节点,将源节点的网络接口芯片作为初始的当前芯片;
2)获取当前芯片的对端网络接口芯片信息;
3)判断对端网络接口芯片的类型为NRC芯片还是NIC芯片,如果为NRC芯片,则将对端网络接口芯片作为新的当前芯片,跳转执行步骤2);否则跳转执行下一步;
4)判断对端网络接口芯片、目的节点的网络接口芯片的芯片编号是否相同,如果相同,则判定源节点和目的节点之间的路径追踪正确;否则判定路径追踪错误。
可选地,步骤1)中获取待追踪的源节点和目的节点的详细步骤包括:获取待追踪的源节点的编号cnx和目的节点的编号cny,根据网络接口芯片编号规则,获得节点cnx的网络接口芯片编号CHIP_MGT_IDX,获得节点cny的网络接口芯片编号CHIP_MGT_IDY。
可选地,步骤2)中获取当前芯片的对端网络接口芯片信息具体是利用寄存器访问工具实现的,所述寄存器访问工具向用户提供正反向路由表文件作为源路由访问的配置接口,正反向路由表文件包括正向路由表文件ForwardRT和反向路由表文件BackwardRT;正向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>表示从管理服务器到网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点的路由域为正向域FRT_FIELD,反向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>表示该网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点到管理服务器的路由域为反向域BRT_FIELD,且利用寄存器访问工具获取当前芯片的对端网络接口芯片信息的步骤包括:
2.1)根据当前芯片的类型CHIP_TYPE和芯片编号CHIP_MGT_ID信息从正、反向路由表文件中分别获得正向域FRT_FIELD、反向域BRT_FIELD的信息;
2.2)获得所需访问的对端网络接口芯片信息;
2.3)将正向域FRT_FIELD、反向域BRT_FIELD、所需访问的对端网络接口芯片信息填入管理请求报文,并发送到高速互连网络中当前芯片;
2.4)等待并接收当前芯片通过高速互连网络返回的管理响应报文;
2.5)解释管理响应报文内容获得当前芯片的对端网络接口芯片信息。
可选地,步骤2)之前还包括配置正反向路由表文件的步骤:进行网络接口芯片编号,令高性能计算系统中共有M个计算节点,且每个计算节点通过一个网络接口芯片接入互连网络,则网络接口芯片编号为0,1, 2,…, M−1,且为标记为cnx的计算节点对应的网络接口芯片编号为x;进行网络交换芯片编号,令高性能计算系统互连网络中共有H个网络交换芯片,则它们分别编号为0,1, 2,…,H−1,编号顺序采取先计算机柜后通信机柜且按照机柜号从小到大依次编号;最终,按照前述网络接口芯片编号、网络交换芯片编号的规则、网络拓扑结构、管理服务器接入位置生成初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT,并将其分别分发给各个网络接口芯片的管理代理模块。
可选地,步骤2)之前还包括利用寄存器访问工具根据初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT配置网络接口芯片的CHIP_MGT_ID信息的步骤,详细步骤包括:
步骤1,分别读取正向路由表文件ForwardRT和反向路由表文件BackwardRT的当前行,如果内容非空,则获得<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>和<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>信息,其中CHIP_TYPE表示网络交换芯片的类型,CHIP_MGT_ID为网络交换芯片的芯片编号, FRT_FIELD为正向域,BRT_FIELD为反向域,继续执行步骤2;如果内容为空,表示已完成芯片编号配置过程,则正常退出;
步骤2,构造管理请求报文,将其正向路由域填写为正向域FRT_FIELD,将其反向路由域填写为反向域BRT_FIELD,将其要访问的寄存器地址设置为REG_CFG_LOCAL寄存器地址,将其要访问的全局配置寄存器REG_CFG_LOCAL的芯片编号域CHIP_MGT_ID设置为从正向路由文件ForwadRT和反向路由文件BackwardRT中获得的芯片编号CHIP_MGT_ID的值,将其访问类型设置为寄存器写操作;
步骤3,发送管理请求报文,并等待接收管理响应报文,如果在超时时间内接收到管理响应报文,则继续执行步骤1;否则超时退出。
此外,本发明还提供一种高速互连网络的路由路径追踪系统,包括管理服务器,该管理服务器被编程或配置以执行所述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行所述高速互连网络的路由路径追踪方法的计算机程序。
此外,本发明还提供一种高速互连网络的路由路径追踪系统,包括多个主机以及管理服务器,所述多个主机中任意两个主机的NIC芯片之间通过至少一个交换机的NRC芯片相连,该管理服务器被编程或配置以执行所述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行所述高速互连网络的路由路径追踪方法的计算机程序。
可选地,所述主机的NIC芯片中带有用于与管理服务器交互的NIC的管理代理模块,所述交换机的NRC芯片中带有用于与管理服务器交互的NRC管理代理模块,所述NIC芯片的管理代理模块单独包括主机接口处理子模块,所述NIC芯片的管理代理模块、NRC芯片的管理代理模块均包含管理报文处理子模块、寄存器管理子模块和管理报文中继子模块,所述主机接口处理子模块用于以中断方式与主机及其上层管理软件进行交互,所述管理报文处理子模块用于管理请求报文处理、管理响应报文处理、邻接信息发送处理和邻接信息接收处理,所述寄存器管理子模块用于执行寄存器的配置和管理,所述管理报文中继子模块用于根据路由域信息控制报文的传递方向。
可选地,所述寄存器管理子模块中包含一个全局的配置寄存器REG_CFG_LOCALID,所述配置寄存器REG_CFG_LOCALID中保存本芯片的<CHIP_TYPE, CHIP_MGT_ID >信息,其中CHIP_TYPE域为本芯片的类型,CHIP_ MGT_ID域为本芯片的管理编号;所述寄存器管理子模块中包含一个全局的控制寄存器组,所述控制寄存器组为芯片的每个端口设置两个寄存器,分别为路由表读写控制寄存器REG_CTR_RTRW和路由表读写结果控制寄存器REG_CTR_RTCP,且路由表读写控制寄存器REG_CTR_RTRW的域为<RT_ADDR,RT_DATA,RW_FLAG>,路由表读写结果控制寄存器REG_CTR_RTCP的域为<RT_ADDR,RT_DATA,CP_FLAG>,其中RT_ADDR为路由表项地址,RT_DATA为路由表项,RW_FLAG为读写操作启动标记,CP_FLAG为路由表访问完成标记;NIC芯片和NRC芯片中路由表通常采用SRAM存储器实现且表项包含2元组信息<DestID,OutPort>,其中DestID表示目的节点标识,OutPort表示输出端口;所述寄存器管理子模块中包含一个全局的状态寄存器组,该状态寄存器组为芯片的每个网络端口设置两个寄存器,分别为对端ID状态寄存器REG_STA_PEERID和链路状态寄存器REG_STA_LINKINF,对端ID状态寄存器REG_STA_PEERID用于记录该端口对端的端口信息<CHIP_TYPE, CHIP_MGT_ID, PORT_ID>,链路状态寄存器REG_STA_LINKINF用于记录保存网络端口状态。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述高速互连网络的路由路径追踪方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明能够根据网络管理人员提供的源和目的节点通过连续访问节点接口芯片和网络交换芯片的相关寄存器和路由表信息,仿真计算从源节点出发经过各个中间各级交换芯片的路由过程,从而判断出路由的正确性(即可达性),并获得路由路径和链路状态信息,本发明能够实现互连网络任意两个计算节点之间数据传输路径追踪,追踪速度快、追踪效率高,对于快速发现网络路由表错误和网络故障、加快互连网络调试进度具有重要作用。
2、本发明的面向分布式查表路由互连网络的路径追踪装置及其方法,原理简单、容易实现、实用性强、已获应用检验。本发明通过为网络芯片设置管理ID并实施对端标记信息交换,从而将系统网络拓扑结构信息分布式地保存在网络中;本发明采用网管方式,即通过接口为网络芯片配置芯片编号信息并读取芯片中的路由表信息,从而提高了路径追踪和路由表正确性检查的效率;本发明已经成功应用于国家超算广州中心的“天河二号”高性能计算系统互连网络调试与维护,本发明已高效实现对系统中任意计算节点的路径追踪和全系统所有网络交换芯片的路由正确性检查。实践表明,本发明所设计的装置及其方法对于快速发现网络路由表错误和网络故障、加快互连网络调试进度具有重要作用。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中的系统结构示意图。
图3为本发明实施例装置的NIC芯片网络管理模块示意图。
图4为本发明实施例装置的NRC芯片网络管理模块示意图。
图5为本发明实施例装置的管理请求报文格式示意图。
图6为本发明实施例装置的管理响应报文格式示意图。
图7为本发明实施例装置的邻接信息报文格式示意图。
图8为本发明实施例装置的管理和信息报文路由域示意图。
图9为本发明实施例装置的相关寄存器格式示意图。
图10为本发明实施例方法的数据传输路径追踪过程示意图。
具体实施方式
如图1所示,本实施例高速互连网络的路由路径追踪方法的实施步骤包括:
1)获取待追踪的源节点和目的节点,将源节点的网络接口芯片作为初始的当前芯片;
2)获取当前芯片的对端网络接口芯片信息;
3)判断对端网络接口芯片的类型为NRC芯片还是NIC芯片,如果为NRC芯片,则将对端网络接口芯片作为新的当前芯片,跳转执行步骤2);否则跳转执行下一步;
4)判断对端网络接口芯片、目的节点的网络接口芯片的芯片编号是否相同,如果相同,则判定源节点和目的节点之间的路径追踪正确;否则判定路径追踪错误。
如图2所示,本实施例高速互连网络的路由路径追踪方法需要结合网络芯片硬件逻辑和网络管理软件实现。其中,网络芯片硬件逻辑包括NIC芯片和NRC芯片中的网络管理模块,网络管理软件运行在系统的管理服务器上,管理服务器通过插入含NIC芯片的网络接口卡连接到高速互连网络。管理服务器上运行网络管理软件通过网卡上的NIC芯片下发网络管理描述符,NIC芯片将网络管理描符转换为管理请求报文,管理请求报文采用源路由方式通过高速互连网络达到目的芯片并进入其管理代理模块,管理代理模块解释执行管理请求报文内容,从而读取路由表表项和端口邻接信息,并将这些信息封装成管理响应报文返回给管理服务器程序。管理服务器程序根据当前获得的管理响应报文信息构造网络传输路径下一跳网络端口管理请求报文,以此反复,可以获得互连网络中任意两个计算节点之间的路由路径。
本实施例步骤1)中获取待追踪的源节点和目的节点的详细步骤包括:获取待追踪的源节点的编号cnx和目的节点的编号cny,根据网络接口芯片编号规则,获得节点cnx的网络接口芯片编号CHIP_MGT_IDX,获得节点cny的网络接口芯片编号CHIP_MGT_IDY。
本实施例步骤2)中获取当前芯片的对端网络接口芯片信息具体是利用寄存器访问工具实现的,本实施例用于寄存器访问的网络管理报文传输采用源路由。为了使得寄存器访问工具易于适应于不同的网络拓扑结构,寄存器访问工具向用户提供正反向路由表文件作为源路由访问的配置接口,正反向路由表文件包括正向路由表文件ForwardRT和反向路由表文件BackwardRT;正向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>表示从管理服务器到网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点的路由域为正向域FRT_FIELD,反向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>表示该网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点到管理服务器的路由域为反向域BRT_FIELD,且利用寄存器访问工具获取当前芯片的对端网络接口芯片信息的步骤包括:
2.1)根据当前芯片的类型CHIP_TYPE和芯片编号CHIP_MGT_ID信息从正、反向路由表文件中分别获得正向域FRT_FIELD、反向域BRT_FIELD的信息;
2.2)获得所需访问的对端网络接口芯片信息;
2.3)将正向域FRT_FIELD、反向域BRT_FIELD、所需访问的对端网络接口芯片信息填入管理请求报文,并发送到高速互连网络中当前芯片;
2.4)等待并接收当前芯片通过高速互连网络返回的管理响应报文;
2.5)解释管理响应报文内容获得当前芯片的对端网络接口芯片信息。此外,还可以依据其内容所反映的寄存器访问请求完成情况确定后续寄存器访问操作。
本实施例中,步骤2)之前还包括配置正反向路由表文件的步骤:进行网络接口芯片编号,令高性能计算系统中共有M个计算节点,且每个计算节点通过一个网络接口芯片接入互连网络,则网络接口芯片编号为0,1, 2,…, M−1,且为标记为cnx的计算节点对应的网络接口芯片编号为x;进行网络交换芯片编号,令高性能计算系统互连网络中共有H个网络交换芯片,则它们分别编号为0,1, 2,…,H−1,编号顺序采取先计算机柜后通信机柜且按照机柜号从小到大依次编号;最终,按照前述网络接口芯片编号、网络交换芯片编号的规则、网络拓扑结构、管理服务器接入位置生成初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT,并将其分别分发给各个网络接口芯片的管理代理模块。
本实施例中,步骤2)之前还包括利用寄存器访问工具根据初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT配置网络接口芯片的CHIP_MGT_ID信息的步骤,详细步骤包括:
步骤1,分别读取正向路由表文件ForwardRT和反向路由表文件BackwardRT的当前行,如果内容非空,则获得<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>和<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>信息,其中CHIP_TYPE表示网络交换芯片的类型,CHIP_MGT_ID为网络交换芯片的芯片编号, FRT_FIELD为正向域,BRT_FIELD为反向域,继续执行步骤2;如果内容为空,表示已完成芯片编号配置过程,则正常退出;
步骤2,构造管理请求报文,将其正向路由域填写为正向域FRT_FIELD,将其反向路由域填写为反向域BRT_FIELD,将其要访问的寄存器地址设置为REG_CFG_LOCAL寄存器地址,将其要访问的全局配置寄存器REG_CFG_LOCAL的芯片编号域CHIP_MGT_ID设置为从正向路由文件ForwadRT和反向路由文件BackwardRT中获得的芯片编号CHIP_MGT_ID的值,将其访问类型设置为寄存器写操作;
步骤3,发送管理请求报文,并等待接收管理响应报文,如果在超时时间内接收到管理响应报文,则继续执行步骤1;否则超时退出。
在采用分布式查表路由互连网络的高性能计算系统中,假设系统中任意的两个计算节点分别为cnx和cny,则追踪这两个计算节点间的路由路径可采用步骤如下:
1)获取待追踪的cnx和cny,根据网络接口芯片编号规则,获得cnx网络接口芯片编号CHIP_MGT_IDX;根据网络接口芯片编号规则,获得cny网络接口芯片编号CHIP_MGT_IDY,将源节点的网络接口芯片CHIP_MGT_IDX作为初始的当前芯片;
2)首次执行时:利用芯片寄存器访问工具访问编号为CHIP_MGT_IDX的网络接口芯片REG_STA_PEER寄存器,获取当前芯片的对端网络接口芯片信息,获得其CHIP_TYPE、CHIP_MGT_ID、PORT_ID域值;后续执行时:利用芯片寄存器访问工具访问编号为CHIP_MGT_IDN的网络接口芯片REG_STA_PEER寄存器,获取当前芯片的对端网络接口芯片信息,获得其CHIP_TYPE、CHIP_MGT_ID、PORT_ID域值;
3)判断对端网络接口芯片的类型(CHIP_TYPE)为NRC芯片还是NIC芯片,如果为NRC芯片,则将对端网络接口芯片(令编号为CHIP_MGT_IDN)作为新的当前芯片,跳转执行步骤2);否则跳转执行下一步;
4)判断对端网络接口芯片、目的节点的网络接口芯片的芯片编号是否相同,如果相同,则判定cnx和cny之间的路径追踪正确;否则判定路径追踪错误。
本实施例中,寄存器访问接口不仅可用来访问端口标记信息存储模块中的配置寄存器REG_CFG_LOCAL和状态寄存器REG_STA_PEER,而且其功能可扩展为支持用户通过管理服务器以发送管理请求报文的方式访问目标网络芯片的所有配置寄存器和状态寄存器。以本发明上述对任意计算节点间路径追踪过程为基础,还可以进一步对系统路由的正确性实施在线检查。检查系统路由表的正确性具体步骤为:(A)遍历系统中所有计算节点,假设当前选择的计算节点为cnx;(B)遍历系统中所有计算节点,假设当前选择的计算节点为cny;(C)对cnx与cny间的路由路径进行追踪,并输出路由追踪结果信息。注意,为了提高检查系统路由表正确性的效率,在执行该过程步骤C时,应该无阻塞的执行下一轮步骤A。
此外,本实施例中还提供一种高速互连网络的路由路径追踪系统,包括管理服务器,该管理服务器被编程或配置以执行前述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行前述高速互连网络的路由路径追踪方法的计算机程序。
此外,本实施例中还提供一种高速互连网络的路由路径追踪系统,包括多个主机以及管理服务器,多个主机中任意两个主机的NIC芯片之间通过至少一个交换机的NRC芯片相连,该管理服务器被编程或配置以执行前述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行前述高速互连网络的路由路径追踪方法的计算机程序。
如图3和图4所示,本实施例中主机的NIC芯片中带有用于与管理服务器交互的NIC的管理代理模块,交换机的NRC芯片中带有用于与管理服务器交互的NRC管理代理模块,NIC芯片的管理代理模块单独包括主机接口处理子模块,NIC芯片的管理代理模块、NRC芯片的管理代理模块均包含管理报文处理子模块、寄存器管理子模块和管理报文中继子模块,主机接口处理子模块用于以中断方式与主机及其上层管理软件进行交互,管理报文处理子模块用于管理请求报文处理、管理响应报文处理、邻接信息发送处理和邻接信息接收处理,寄存器管理子模块用于执行寄存器的配置和管理,管理报文中继子模块用于根据路由域信息控制报文的传递方向。除了不含主机接口处理子模块外,NRC管理代理模块的所有子模块与NIC的管理代理模块的所含其余子模块相同。
本实施例中,寄存器管理子模块中包含一个全局的配置寄存器REG_CFG_LOCALID,配置寄存器REG_CFG_LOCALID中保存本芯片的<CHIP_TYPE, CHIP_MGT_ID >信息,其中CHIP_TYPE域为本芯片的类型,CHIP_ MGT_ID域为本芯片的管理编号;寄存器管理子模块中包含一个全局的控制寄存器组,控制寄存器组为芯片的每个端口设置两个寄存器,分别为路由表读写控制寄存器REG_CTR_RTRW和路由表读写结果控制寄存器REG_CTR_RTCP,且路由表读写控制寄存器REG_CTR_RTRW的域为<RT_ADDR,RT_DATA,RW_FLAG>,路由表读写结果控制寄存器REG_CTR_RTCP的域为<RT_ADDR,RT_DATA,CP_FLAG>,其中RT_ADDR为路由表项地址,RT_DATA为路由表项,RW_FLAG为读写操作启动标记,CP_FLAG为路由表访问完成标记;NIC芯片和NRC芯片中路由表通常采用SRAM存储器实现且表项包含2元组信息<DestID,OutPort>,其中DestID表示目的节点标识,OutPort表示输出端口;寄存器管理子模块中包含一个全局的状态寄存器组,该状态寄存器组为芯片的每个网络端口设置两个寄存器,分别为对端ID状态寄存器REG_STA_PEERID和链路状态寄存器REG_STA_LINKINF,对端ID状态寄存器REG_STA_PEERID用于记录该端口对端的端口信息<CHIP_TYPE, CHIP_MGT_ID,PORT_ID>,链路状态寄存器REG_STA_LINKINF用于记录保存网络端口状态。
主机接口处理子模块只存在于NIC芯片,上层管理软件通过该接口模块以提交描述符的方式传输管理请求报文。管理请求管理报文达到目的接口芯片或交换芯片的管理报文处理子模块,该模块接收寄存器访问管理报文并根据报文读写类型、寄存器地址、寄存器数据等信息执行相应的操作。这些寄存器分为配置寄存器、控制寄存器和状态寄存器,其功能是对芯片的邻接信息以及路由表进行管理和控制。由网络芯片根据管理请求报文产生管理响应报文,在经过网络转发与路由后,将达到管理服务器网络接口芯片的管理代理模块,然后进入主机接口处理子模块,再以中断方式通知主机及其上层管理软件进行处理。主机接口处理子模块的具体功能包括:(1)描述符下发处理:管理软件为管理虚端口(VirtualPort,VP)在主存中分配独享的管理描述符发送队列(SDQ),用于该VP向网络接口芯片提交管理请求报文的描述符。描述符以固定长度为单位进行读写操作。VP向SDQ中写入1个描述符后,写指针就加“1”,写指针由管理软件维护。网络接口芯片为该VP设置了一个计数器SDQ_NUM,用于记录该SDQ中未预取的描述符的个数。管理软件的进程将描述符写入SDQ后,再向网络接口芯片中对应的SDQ_NUM写新写入的描述符的个数,从而启动数据传输。网络接口芯片每读取1个描述符,就将对应的SDQ_NUM减1。网络接口芯片为该VP设置了一个读指针SDQ_RP,用于记录硬件下一次准备从该SDQ读取描述符的物理地址。读指针由网络接口芯片维护,用户进程可读。(2)管理报文接收处理:管理软件为管理VP在主存中分配独享的管理报文接收队列(MPQ),用于接收网络接口芯片和网络交换芯片发送的管理响应报文。网络接口芯片为该VP设置了一个计数器MPQ_NUM,用于记录该VP的MPQ中未处理的MP消息个数。网络接口芯片向MPQ中写入1个管理报文,则MPQ_NUM加1;软件从MPQ中读走1个管理报文,则向MPQ_NUM执行1次PIO写操作,MPQ_NUM减1。(3)全局中断处理:网络接口芯片驱动为本芯片在主存中设置全局中断队列(INTQ),用于存放网络接口芯片中断产生的中断事件。为了以中断方式通知CPU处理管理报文接收队列中的管理报文,需要为管理报文接收队列非空定义一种中断类型和中断报文。通过将自定义中断报文写入内存中的中断报文队列,然后再通过SMI中断通知CPU进行处理。
管理报文处理子模块的公共包括管理请求报文处理、管理响应报文处理、邻接信息发送处理和邻接信息接收处理。管理请求报文处理接收网络上的管理请求报文并将管理请求报文的请求转换为寄存器管理子模块内寄存器的读写请求,管理响应报文处理根据寄存器访问获得的信息或完成情况构造管理响应报文并发送到网络。NIC芯片中的管理请求报文处理还负责将主机接口处理子模块构造的管理请求报文发送到网络,NIC芯片中的管理响应报文处理还负责将路由到本芯片的管理响应报文上送到主机接口处理子模块。
管理请求报文处理和管理响应报文处理:网络管理是通过管理服务向网络芯片发送管理报文进行,而管理报文直接通过网络的物理链路传输。网络管理采用源路由方式实现,其管理报文分为管理请求报文和管理响应报文两种。管理请求报文中不仅携带从管理服务器到达目标网络芯片的路由域信息,而且携带从目标网络芯片返回管理服务器的路由域信息。路由域信息格式为:<HopCnt, Hop1, Hop2,…,Hopn>,其中HopCnt为路由跳步数,表示管理报文达到目的网络芯片需要经过的交换芯片数目;其中Hopt(1≤ t ≤n)为第t跳路由输出端口,表示从当前网络交换芯片编号为Hopt的端口输出管理报文。管理响应报文携带路由域信息直接来自于相应的管理请求报文。管理请求报文处理接收网络上的管理请求报文并将管理请求报文的请求转换为寄存器管理子模块内寄存器的读写请求,管理响应报文处理根据寄存器访问获得的信息或完成情况构造管理响应报文并发送到网络。NIC中的管理请求报文处理还负责将主机接口处理子模块构造的管理请求报文发送到网络,NIC中的管理响应报文处理还负责将路由到本芯片的管理响应报文上送到主机接口处理子模块。
邻接信息发送处理和邻接信息接收处理:该模块负责两个相连的端口彼此交换端口标记信息。举例说明:假设网络端口PortX和PortY直接相连。在加电或复位后,这两个网络端口的REG_CFG_LOCALID寄存器和REG_STA_PEERID寄存器的域值被初始化为固定值和默认值,且PortX的REG_CFG_LOCALID值为<CHIP_TYPEX, CHIP_MGT_IDX0, PORT_IDX>,PortY的REG_STA_PEERID值为<CHIP_TYPEY, CHIP_MGT_IDY, PORT_IDY>。如果PortX的REG_CFG_LOCALID寄存器的CHIP_MGT_ID域值被新写入CHIP_MGT_IDX1,则PortY的REG_STA_PEERID寄存器的值更新为<CHIP_TYPEX, CHIP_MGT_IDX1, PORT_IDX>。同理,如果PortY的REG_CFG_LOCALID寄存器的CHIP_MGT_ID域值被新写入CHIP_MGT_IDX2,则端口PortY的REG_STA_PEERID寄存器的值更新为<CHIP_TYPEX, CHIP_MGT_IDX2, PORT_IDX>。
邻接信息发送处理逻辑负责周期性地向对端邻接信息接收处理逻辑发送携带本端口标记信息的邻接信息报文,其具体步骤包括:(1)从寄存器管理子模块获得本端口的标记信息;(2)构造携带本端口标记信息的邻接信息报文;(3)向网络链路层发送该邻接信息报文。邻接信息接收处理逻辑负责接收并处理对端发送来的邻接信息报文。具体步骤包括:(1)从网络链路层接收携带对端标记信息的邻接信息报文;(2)提取邻接信息报文中的对端标记信息;(3)将对端标记信息写入寄存器管理子模块的REG_STA_PEERID寄存器。
寄存器管理子模块的功能包括配置寄存器管理、控制寄存器管理和状态寄存器管理。
配置寄存器管理:为了追踪网络路由路径,首先需要解决网络接口芯片和交换芯片的全局唯一标记问题。考虑到所能支持的互连网络系统规模,适宜为网络芯片设置20位的芯片编号(简称CHIP_MGT_ID)信息。为了对网络两种芯片统一进行管理,适宜为网络芯片设置1位的类型信息(简称CHIP_TYPE)。为了对网络交换芯片的端口进行标记,每个网络芯片端口固有一个编号(简称PORT_ID),假设网络交换芯片共N个端口,则适宜为网络芯片设置log2N取上整数位端口编号信息,其各个端口分别编号为0、1、…、N-1。网络接口芯片只有一个端口,所以其端口编号为0。所以,互连网络中的任意一个芯片端口都可以通过3元组信息<CHIP_TYPE, CHIP_ MGT_ID, PORT_ID>进行标记。寄存器管理子模块中设置一个全局的配置寄存器REG_CFG_LOCALID。该寄存器用来保存本芯片的<CHIP_TYPE, CHIP_MGT_ID >信息。在芯片加电或复位时,该寄存器的值被初始化,其中CHIP_TYPE域和CHIP_ MGT_ID域的值被初始化为本芯片的类型和管理编号,CHIP_MGT_ID域值被初始化为全1;在芯片加电或复位完成后,CHIP_TYPE域值保持不变,CHIP_MGT_ID域值可以被重新配置。
控制寄存器管理:对于采用分布式查表技术的互连网络,每个交换芯片各个端口都有一张路由表。路由表通常采用SRAM存储器实现,表项包含2元组信息<DestID,OutPort>,其中DestID表示目的节点标识,OutPort表示输出端口。当报文到达输入端口时,交换芯片根据报文头部携带的DestID,查表获得OutPort,从而将报文交换到编号为OutPort的端口输出。寄存器管理子模块中设置一个全局的控制寄存器组,该组寄存器为芯片的每个端口设置两个寄存器,分别为路由表读写控制寄存器(REG_CTR_RTRW)和路由表读写结果控制寄存器(REG_CTR_RTCP)。管理工具可以通过向目标芯片发送管理请求报文来读写REG_CTR_RTRW寄存器和读REG_CTR_RTCP。REG_CTR_RTRW寄存器的域为<RT_ADDR,RT_DATA,RW_FLAG>,REG_CTR_RTCP寄存器的域为< RT_ADDR,RT_DATA,CP_FLAG>,其中RT_ADDR为路由表项地址,RT_DATA为路由表项,RW_FLAG为读写操作启动标记,CP_FLAG为路由表访问完成标记。
状态寄存器管理:路径追踪的目标一是要判断路由的正确性(即可达性),二是要判断链路的可用性(即链路质量)。所以需要保存网络端口的邻接信息和链路状态信息。寄存器管理子模块中设置一个全局的状态寄存器组,该组寄存器为芯片的每个网络端口设置两个寄存器,分别为对端ID状态寄存器(REG_STA_PEERID)和链路状态寄存器(REG_STA_LINKINF)。寄存器REG_STA_PEERID用来保存该端口对端的<CHIP_TYPE, CHIP_MGT_ID,PORT_ID>信息,其3元组所有信息域值在芯片加电或复位时被直接配置为全1,在芯片加电或复位后可由管理报文处理子模块的邻接信息接收处理逻辑根据接收到的对端发送来的邻接信息报文内容进行配置。所以,如果网络端口悬空(即未连接到其它端口或已连接端口链路状态异常),则该端口的REG_STA_PEERID寄存器的各域的值会保持为全1状态。寄存器REG_STA_LINKINF用来保存网络端口状态,例如链路握手状态(LINK_STA)、链路重传状态(LINK_RETRY_STA)和编码层工作状态(PCS_STA)。
管理报文中继子模块内嵌在每个网络端口,并按照网络端口编号顺序将管理报文中继子模块顺序连接成中继环。每个芯片只有一个管理代理模块,而管理代理模块需要从网络端口发送或接收管理报文。尽管NIC芯片只有1个网络端口,但是NRC具有多个网络端口。因此,每NRC中的每个网络端口内嵌1个管理报文中继子模块,并按照网络端口编号顺序将管理报文中继子模块顺序连接成环(中继环)。管理代理模块发送管理报文时,将管理报文注入到与之相连的管理报文中继子模块即可,管理报文中继子模块根据管理报文中的路由域信息判断继续沿着环转发报文,还是将该报文向网络发送。从任意端口进入NRC芯片的管理报文也沿着中继环传递到正确的端口并输出,根据管理报文中的路由域,输出端口既可以是网络端口,也可以是本芯片的管理代理模块。由于NIC芯片只有一个网络端口,所以NIC芯片只需要内嵌1个管理报文中继子模块。
图5~图8是本发明实施例装置的相关报文格式示意图,该示意图给出的是端口数目为12的NRC芯片的管理代理模块设置的寄存器格式。图5为本发明实施例装置的管理请求报文格式示意图,图6为本发明实施例装置的管理响应报文格式示意图,图7为本发明实施例装置的邻接信息报文格式示意图,图8为本发明实施例装置的管理和信息报文路由域示意图。本实施例中,各个位域的含义说明如下:
●PKTType:表示报文类型,有效的类型包括:管理请求报文(MGT_REQ)、管理请求报文(MGT_ACK)、邻接信息报文(PEER_INFO)。
●RoutingFieldF:前向路由域信息,其具体格式如图8所示。管理请求报文、管理响应报文、邻接信息报文都含有该信息域,该信息域是上述报文在互连网络中路由的依据。
●RoutingFieldB:后向路由域信息,其具体格式如图8所示。只有管理请求报文含有该域,当产生管理响应报文时,该域会被复制到相应的管理响应报文的RoutingFieldF域。
●REGAddr:寄存器地址,其位宽取决于芯片的寄存器数目和地址层次结构等因素。
●REGData:寄存器数据,通常可设置为32位或64位。
●OPType:操作类型,有效的类型包括:寄存器读(REG_RD)、寄存器写(REG_WT)。
●Vld:寄存器操作有效位。管理请求报文采用固定长度,可携带多组寄存器操作请求(<OPType, REGAddr, REGData>),每组寄存器操作请求用该信息域表示其是否有效。
●Cpl:寄存器操作完成位。管理响应报文采用固定长度,可携带多组寄存器操作请求(<OPType, REGAddr, REGData>),且管理响应报文携带的操作请求与其管理请求报文携带的操作请求相对应。每组寄存器操作请求用该信息域表示其是否完成。
●MPQNum:管理响应报文接收队列。ZNI芯片通常实现多个(例如64个)网络报文接收队列。该位域用来指定管理响应报文所使用的报文接收队列。
●CHIP_TYPE:芯片类型,用来区分NIC芯片和NRC芯片两种芯片类型。
●CHIP_MGT_ID:芯片编号,用来标记互连网络中不同的网络芯片。考虑到所能支持的互连网络系统规模,可为芯片编号设置20位芯片编号。
●PORT_ID:网络芯片端口编号,假设NRC芯片共N个端口,则设置log2 N取上整数位端口编号信息,其各个端口分别编号为0、1、…、N-1。NIC芯片只有一个端口,所以其端口编号为0。
●RESV:保留。
本实施例中的寄存器分为配置寄存器、控制寄存器和状态寄存器。
配置寄存器(REG_CFG_LOCALID)用来保存本芯片的<CHIP_TYPE, CHIP_MGT_ID >信息。在芯片加电或复位时,该寄存器的值被初始化,其中CHIP_TYPE域和CHIP_ MGT_ID域的值被初始化为本芯片的类型和管理编号,CHIP_MGT_ID域值被初始化为全1;在芯片加电或复位完成后,CHIP_TYPE域值保持不变,CHIP_MGT_ID域值可以被重新配置。
控制寄存器组为芯片的每个端口设置两个寄存器,分别为路由表读写控制寄存器(REG_CTR_RTRW)和路由表读写结果控制寄存器(REG_CTR_RTCP)。管理工具可以通过向目标芯片发送管理请求报文来读写REG_CTR_RTRW寄存器和读REG_CTR_RTCP。REG_CTR_RTRW寄存器的域为<RT_ADDR,RT_DATA,RW_FLAG>,REG_CTR_RTCP寄存器的域为< RT_ADDR,RT_DATA,CP_FLAG>,其中RT_ADDR为路由表项地址,RT_DATA为路由表项,RW_FLAG为读写操作启动标记,CP_FLAG为路由表读写访问完成标记。通过控制寄存器访问路由表分为两种情况:(A)读路由表项,其具体步骤包括(A-1)将需要读取的RT_ADDR和RW_FLAG(读标记)写入REG_CTR_RTRW寄存器;(A-2)读取REG_CTR_RTCP寄存器,如果CP_FLAG=1表示操作完成,则RT_DATA为读出的路由项的值,否则,重复读取REG_CTR_RTCP寄存器直到操作完成。(B)写路由表项,具体步骤为(B-1)将要写入的RT_ADDR、RT_DATA和RW_FLAG(写标记)写入REG_CTR_RTRW寄存器;(B-2)读取REG_CTR_RTCP寄存器,如果CP_FLAG表示操作完成,则表示写路由表项成功,否则,重复读取REG_CTR_RTCP寄存器直到操作完成。 注意,对REG_CTR_RTRW寄存器RW_FLAG的写入操作会立即使得REG_CTR_RTCP寄存器CP_FLAG域值设置为非完成标记状态,直到访问路由表项的操作完成后,CP_FLAG域值再次被设置为完成标记状态。
状态寄存器组为芯片的每个网络端口设置两个寄存器,分别为对端ID状态寄存器(REG_STA_PEERID)和链路状态寄存器(REG_STA_LINKINF)。寄存器REG_STA_PEERID用来保存该端口对端的<CHIP_TYPE, CHIP_MGT_ID, PORT_ID>信息,其3元组所有信息域值在芯片加电或复位时被直接配置为全1,在芯片加电或复位后可由管理报文处理子模块2的邻接信息接收处理逻辑根据接收到的对端发送来的邻接信息报文内容进行配置。所以,如果网络端口悬空(即未连接到其它端口或已连接端口链路状态异常),则该端口的REG_STA_PEERID寄存器的各域的值会保持为全1状态。寄存器REG_STA_LINKINF用来保存网络端口状态,例如链路握手状态(LINK_STA)、链路重传状态(LINK_RETRY_STA)和编码层工作状态(PCS_STA)。
图10是本实施例中管理服务器运行的管理软件实体利用寄存器访问工具执行节点之间路由路径追踪的流程图,其详细步骤为:
S1)获取用户输入的需要追踪其路由路径的源节点和目的节点的主机名(hostname)。
S2)将源和目的节点的主机名分别转换为节点NIC芯片管理编号,并将源节点NIC网络端口作为追踪对象端口;
S3)构造追踪对象端口的管理请求报文并发送,请求内容包括端口的对端芯片类型和管理编号、端口的对端端口类型和本地编号、端口的链路状态信息等;
S4)是否获得从当前追踪对象返回的管理响应报文,如果获得管理响应报文,则顺序执行;否则,转S18)执行。
S5)根据管理响应报文内容呈现当前追踪对象端口芯片类型和管理编号、端口的本地编号、端口的链路状态等信息;
S6)判断端口的对端端口类型是否为NIC端口,如果不是NIC端口,则顺序执行;否则,转S12)执行。
S7)将当前追踪对象端口的对端端口作为新的追踪对象端口
S8)构造访问追踪对象端口的管理请求报文并发送,请求内容包括,芯片类型和管理编号、路由编号、端口的链路状态信息。
S9)是否获得从当前追踪对象返回的管理响应报文,如果获得管理响应报文,则顺序执行;否则,转S18)执行。
S10)根据管理响应报文内容呈现当前追踪对象端口芯片类型和管理编号、端口本地编号、端口的链路状态等信息
S11)根据管理响应报文内容获得进入当前追踪对象端口数据传输时的输出端口本地编号,并将该端口作为追踪对象端口;转S3)执行。
S12)将当前追踪对象端口的对端端口作为新的追踪对象端口
S13)构造访问追踪对象端口的管理请求报文并发送,请求内容包括以目的节点NIC号为索引的路由表表项,端口的链路状态信息。
S14)是否获得从当前追踪对象返回的管理响应报文,如果获得管理响应报文,则顺序执行;否则,转S18)执行。
S15)根据管理响应报文内容呈现当前追踪对象端口芯片类型和管理编号、端口的本地编号、端口的链路状态等信息
S16)NIC路由编号是否等于目的节点的路由编号,如果等于,则转S19)执行;否则,转S12)执行。
S17)呈现报错信息,转S19)执行。
S18)提示用户检查管理路径是否存在问题并处理;
S19)路径追踪结束,管理软件实体运行结束。
此外,本实施例中还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述高速互连网络的路由路径追踪方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种高速互连网络的路由路径追踪方法,其特征在于实施步骤包括:
1)获取待追踪的源节点和目的节点,将源节点的网络接口芯片作为初始的当前芯片;
2)获取当前芯片的对端网络接口芯片信息;
3)判断对端网络接口芯片的类型为NRC芯片还是NIC芯片,如果为NRC芯片,则将对端网络接口芯片作为新的当前芯片,跳转执行步骤2);否则跳转执行下一步;
4)判断对端网络接口芯片、目的节点的网络接口芯片的芯片编号是否相同,如果相同,则判定源节点和目的节点之间的路径追踪正确;否则判定路径追踪错误。
2.根据权利要求1所述的高速互连网络的路由路径追踪方法,其特征在于,步骤1)中获取待追踪的源节点和目的节点的详细步骤包括:获取待追踪的源节点的编号cnx和目的节点的编号cny,根据网络接口芯片编号规则,获得节点cnx的网络接口芯片编号CHIP_MGT_IDX,获得节点cny的网络接口芯片编号CHIP_MGT_IDY。
3.根据权利要求1所述的高速互连网络的路由路径追踪方法,其特征在于,步骤2)中获取当前芯片的对端网络接口芯片信息具体是利用寄存器访问工具实现的,所述寄存器访问工具向用户提供正反向路由表文件作为源路由访问的配置接口,正反向路由表文件包括正向路由表文件ForwardRT和反向路由表文件BackwardRT;正向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>表示从管理服务器到网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点的路由域为正向域FRT_FIELD,反向路由表文件行的信息<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>表示该网络接口芯片类型为CHIP_TYPE、网络接口芯片编号为CHIP_MGT_ID的目标节点到管理服务器的路由域为反向域BRT_FIELD,且利用寄存器访问工具获取当前芯片的对端网络接口芯片信息的步骤包括:
2.1)根据当前芯片的类型CHIP_TYPE和芯片编号CHIP_MGT_ID信息从正、反向路由表文件中分别获得正向域FRT_FIELD、反向域BRT_FIELD的信息;
2.2)获得所需访问的对端网络接口芯片信息;
2.3)将正向域FRT_FIELD、反向域BRT_FIELD、所需访问的对端网络接口芯片信息填入管理请求报文,并发送到高速互连网络中当前芯片;
2.4)等待并接收当前芯片通过高速互连网络返回的管理响应报文;
2.5)解释管理响应报文内容获得当前芯片的对端网络接口芯片信息。
4.根据权利要求3所述的高速互连网络的路由路径追踪方法,其特征在于,步骤2)之前还包括配置正反向路由表文件的步骤:进行网络接口芯片编号,令高性能计算系统中共有M个计算节点,且每个计算节点通过一个网络接口芯片接入互连网络,则网络接口芯片编号为0,1, 2,…, M−1,且为标记为cnx的计算节点对应的网络接口芯片编号为x;进行网络交换芯片编号,令高性能计算系统互连网络中共有H个网络交换芯片,则它们分别编号为0,1,2,…,H−1,编号顺序采取先计算机柜后通信机柜且按照机柜号从小到大依次编号;最终,按照前述网络接口芯片编号、网络交换芯片编号的规则、网络拓扑结构、管理服务器接入位置生成初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT,并将其分别分发给各个网络接口芯片的管理代理模块。
5.根据权利要求4所述的高速互连网络的路由路径追踪方法,其特征在于,步骤2)之前还包括利用寄存器访问工具根据初始的正向路由表文件ForwardRT和反向路由表文件BackwardRT配置网络接口芯片的CHIP_MGT_ID信息的步骤,详细步骤包括:
步骤1,分别读取正向路由表文件ForwardRT和反向路由表文件BackwardRT的当前行,如果内容非空,则获得<CHIP_TYPE, CHIP_MGT_ID, FRT_FIELD>和<CHIP_TYPE, CHIP_MGT_ID, BRT_FIELD>信息,其中CHIP_TYPE表示网络交换芯片的类型,CHIP_MGT_ID为网络交换芯片的芯片编号, FRT_FIELD为正向域,BRT_FIELD为反向域,继续执行步骤2;如果内容为空,表示已完成芯片编号配置过程,则正常退出;
步骤2,构造管理请求报文,将其正向路由域填写为正向域FRT_FIELD,将其反向路由域填写为反向域BRT_FIELD,将其要访问的寄存器地址设置为REG_CFG_LOCAL寄存器地址,将其要访问的全局配置寄存器REG_CFG_LOCAL的芯片编号域CHIP_MGT_ID设置为从正向路由文件ForwadRT和反向路由文件BackwardRT中获得的芯片编号CHIP_MGT_ID的值,将其访问类型设置为寄存器写操作;
步骤3,发送管理请求报文,并等待接收管理响应报文,如果在超时时间内接收到管理响应报文,则继续执行步骤1;否则超时退出。
6.一种高速互连网络的路由路径追踪系统,包括管理服务器,其特征在于,该管理服务器被编程或配置以执行权利要求1~5中任意一项所述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行权利要求1~5中任意一项所述高速互连网络的路由路径追踪方法的计算机程序。
7.一种高速互连网络的路由路径追踪系统,包括多个主机以及管理服务器,所述多个主机中任意两个主机的NIC芯片之间通过至少一个交换机的NRC芯片相连,其特征在于,该管理服务器被编程或配置以执行权利要求1~5中任意一项所述高速互连网络的路由路径追踪方法的步骤,或该管理服务器的存储器上存储有被编程或配置以执行权利要求1~5中任意一项所述高速互连网络的路由路径追踪方法的计算机程序。
8.根据权利要求7所述的高速互连网络的路由路径追踪系统,其特征在于,所述主机的NIC芯片中带有用于与管理服务器交互的NIC的管理代理模块,所述交换机的NRC芯片中带有用于与管理服务器交互的NRC管理代理模块,所述NIC芯片的管理代理模块单独包括主机接口处理子模块,所述NIC芯片的管理代理模块、NRC芯片的管理代理模块均包含管理报文处理子模块、寄存器管理子模块和管理报文中继子模块,所述主机接口处理子模块用于以中断方式与主机及其上层管理软件进行交互,所述管理报文处理子模块用于管理请求报文处理、管理响应报文处理、邻接信息发送处理和邻接信息接收处理,所述寄存器管理子模块用于执行寄存器的配置和管理,所述管理报文中继子模块用于根据路由域信息控制报文的传递方向。
9.根据权利要求8所述的高速互连网络的路由路径追踪系统,其特征在于,所述寄存器管理子模块中包含一个全局的配置寄存器REG_CFG_LOCALID,所述配置寄存器REG_CFG_LOCALID中保存本芯片的<CHIP_TYPE, CHIP_MGT_ID >信息,其中CHIP_TYPE域为本芯片的类型,CHIP_ MGT_ID域为本芯片的管理编号;所述寄存器管理子模块中包含一个全局的控制寄存器组,所述控制寄存器组为芯片的每个端口设置两个寄存器,分别为路由表读写控制寄存器REG_CTR_RTRW和路由表读写结果控制寄存器REG_CTR_RTCP,且路由表读写控制寄存器REG_CTR_RTRW的域为<RT_ADDR,RT_DATA,RW_FLAG>,路由表读写结果控制寄存器REG_CTR_RTCP的域为<RT_ADDR,RT_DATA,CP_FLAG>,其中RT_ADDR为路由表项地址,RT_DATA为路由表项,RW_FLAG为读写操作启动标记,CP_FLAG为路由表访问完成标记;NIC芯片和NRC芯片中路由表通常采用SRAM存储器实现且表项包含2元组信息<DestID,OutPort>,其中DestID表示目的节点标识,OutPort表示输出端口;所述寄存器管理子模块中包含一个全局的状态寄存器组,该状态寄存器组为芯片的每个网络端口设置两个寄存器,分别为对端ID状态寄存器REG_STA_PEERID和链路状态寄存器REG_STA_LINKINF,对端ID状态寄存器REG_STA_PEERID用于记录该端口对端的端口信息<CHIP_TYPE, CHIP_MGT_ID, PORT_ID>,链路状态寄存器REG_STA_LINKINF用于记录保存网络端口状态。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~5中任意一项所述高速互连网络的路由路径追踪方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010455935.4A CN111683014B (zh) | 2020-05-26 | 2020-05-26 | 一种高速互连网络的路由路径追踪方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010455935.4A CN111683014B (zh) | 2020-05-26 | 2020-05-26 | 一种高速互连网络的路由路径追踪方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111683014A true CN111683014A (zh) | 2020-09-18 |
CN111683014B CN111683014B (zh) | 2022-02-15 |
Family
ID=72453263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010455935.4A Active CN111683014B (zh) | 2020-05-26 | 2020-05-26 | 一种高速互连网络的路由路径追踪方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111683014B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631989A (zh) * | 2021-03-08 | 2021-04-09 | 南京蓝洋智能科技有限公司 | 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法 |
CN112688805A (zh) * | 2020-12-17 | 2021-04-20 | 上海燧原科技有限公司 | 芯片集群的拓扑结构的枚举方法和装置 |
CN114338410A (zh) * | 2021-12-09 | 2022-04-12 | 海光信息技术股份有限公司 | 路由路径文件生成方法、装置、系统及相关设备 |
CN114448865A (zh) * | 2021-12-23 | 2022-05-06 | 东莞市李群自动化技术有限公司 | 业务报文的处理方法、系统、设备及存储介质 |
US11496562B1 (en) * | 2021-10-13 | 2022-11-08 | Peking University | Method and system for accessing digital object in human-cyber-physical environment |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505230A (zh) * | 2008-01-31 | 2009-08-12 | 思科技术公司 | 计算机网络中用于优化路由的事件触发追踪路由 |
US20140229612A1 (en) * | 2013-02-11 | 2014-08-14 | Riverbed Technology, Inc. | Network topology generation using traceroute data |
US9344320B1 (en) * | 2012-10-18 | 2016-05-17 | Amazon Technologies, Inc. | Return path trace |
US20160142291A1 (en) * | 2013-05-01 | 2016-05-19 | Joseph Polland | Enhanced route tracing |
WO2016101488A1 (zh) * | 2014-12-26 | 2016-06-30 | 中兴通讯股份有限公司 | 一种三态内容可寻址存储器tcam查表方法及装置 |
US20170235509A1 (en) * | 2014-10-02 | 2017-08-17 | Hitachi Data Systems Engineering UK Limited | Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments |
CN107707491A (zh) * | 2017-09-28 | 2018-02-16 | 中国人民解放军国防科技大学 | 一种实现多级片上互连的装置及方法 |
CN109347670A (zh) * | 2018-10-24 | 2019-02-15 | 杭州数梦工场科技有限公司 | 路径追踪方法及装置、电子设备、存储介质 |
CN110311814A (zh) * | 2019-06-25 | 2019-10-08 | 桂林电子科技大学 | 可编程NoC万兆以太网资源网络接口系统 |
-
2020
- 2020-05-26 CN CN202010455935.4A patent/CN111683014B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101505230A (zh) * | 2008-01-31 | 2009-08-12 | 思科技术公司 | 计算机网络中用于优化路由的事件触发追踪路由 |
US9344320B1 (en) * | 2012-10-18 | 2016-05-17 | Amazon Technologies, Inc. | Return path trace |
US20140229612A1 (en) * | 2013-02-11 | 2014-08-14 | Riverbed Technology, Inc. | Network topology generation using traceroute data |
US20160142291A1 (en) * | 2013-05-01 | 2016-05-19 | Joseph Polland | Enhanced route tracing |
US20170235509A1 (en) * | 2014-10-02 | 2017-08-17 | Hitachi Data Systems Engineering UK Limited | Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments |
WO2016101488A1 (zh) * | 2014-12-26 | 2016-06-30 | 中兴通讯股份有限公司 | 一种三态内容可寻址存储器tcam查表方法及装置 |
CN107707491A (zh) * | 2017-09-28 | 2018-02-16 | 中国人民解放军国防科技大学 | 一种实现多级片上互连的装置及方法 |
CN109347670A (zh) * | 2018-10-24 | 2019-02-15 | 杭州数梦工场科技有限公司 | 路径追踪方法及装置、电子设备、存储介质 |
CN110311814A (zh) * | 2019-06-25 | 2019-10-08 | 桂林电子科技大学 | 可编程NoC万兆以太网资源网络接口系统 |
Non-Patent Citations (3)
Title |
---|
JIJUN CAO等,: "Back-Track Routing for Fat-Tree Based Data Center Networks", 《2013 IEEE 5TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING TECHNOLOGY AND SCIENCE》 * |
JIJUN CAO等: "The Efficient In-band Management for Interconnect Network in Tianhe-2 System", 《2016 24TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING (PDP)》 * |
刘路等: "天河-1A互连系统的接口设计", 《计算机工程与科学》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688805A (zh) * | 2020-12-17 | 2021-04-20 | 上海燧原科技有限公司 | 芯片集群的拓扑结构的枚举方法和装置 |
CN112631989A (zh) * | 2021-03-08 | 2021-04-09 | 南京蓝洋智能科技有限公司 | 一种小芯片间、芯片间、小芯片与芯片间的数据传输方法 |
US11496562B1 (en) * | 2021-10-13 | 2022-11-08 | Peking University | Method and system for accessing digital object in human-cyber-physical environment |
CN114338410A (zh) * | 2021-12-09 | 2022-04-12 | 海光信息技术股份有限公司 | 路由路径文件生成方法、装置、系统及相关设备 |
CN114448865A (zh) * | 2021-12-23 | 2022-05-06 | 东莞市李群自动化技术有限公司 | 业务报文的处理方法、系统、设备及存储介质 |
CN114448865B (zh) * | 2021-12-23 | 2024-01-02 | 东莞市李群自动化技术有限公司 | 业务报文的处理方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111683014B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111683014B (zh) | 一种高速互连网络的路由路径追踪方法及系统 | |
US10348563B2 (en) | System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology | |
CN100375469C (zh) | 在物理端口上模拟多个逻辑端口的方法和装置 | |
US9025495B1 (en) | Flexible routing engine for a PCI express switch and method of use | |
CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
US8204054B2 (en) | System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus | |
JP4763405B2 (ja) | データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ | |
US8989193B2 (en) | Facilitating insertion of device MAC addresses into a forwarding database | |
CN104717081A (zh) | 一种网关功能的实现方法及装置 | |
CN110401558B (zh) | 安全级多点通信网络设备、系统及安全级网络通信方法 | |
US9391893B2 (en) | Lookup engine for an information handling system | |
CN109067650B (zh) | 基于srio交换网络的路由自动搜索及配置方法 | |
US10896476B2 (en) | Repository of integration description of hardware intellectual property for NoC construction and SoC integration | |
RU2584471C1 (ru) | УСТРОЙСТВО ДЛЯ ПРИЕМА И ПЕРЕДАЧИ ДАННЫХ С ВОЗМОЖНОСТЬЮ ОСУЩЕСТВЛЕНИЯ ВЗАИМОДЕЙСТВИЯ С OpenFlow КОНТРОЛЛЕРОМ | |
CN105122744B (zh) | 通过按需路径更新的msdc扩展 | |
CN105407045A (zh) | 基于安全隔离的路由器虚拟化方法 | |
CN112019361A (zh) | 访问控制列表的迁移方法及装置,存储介质和电子设备 | |
CN111585821B (zh) | 一种高速互连网络拓扑发现方法,装置,介质及高性能计算系统 | |
CN113824633B (zh) | 园区网中路由发布方法及网络设备 | |
JP2010199646A (ja) | 経路決定プログラム、管理装置及びネットワーク・システム | |
CN112217689B (zh) | 一种基于OpenStack实现的网络报文跟踪方法及系统 | |
CN114401382A (zh) | 机器调度方法、装置及电子设备 | |
CN113347084A (zh) | 一种报文转发方法及装置 | |
CN107948072B (zh) | 报文转发方法和装置 | |
US8091136B2 (en) | Packet transfer device, packet transfer method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |