一种PCIe链路故障的分析方法、BMC及存储介质与流程

文档序号:17925227发布日期:2019-06-15 00:22阅读:662来源:国知局
一种PCIe链路故障的分析方法、BMC及存储介质与流程

本发明涉及通信技术领域,特别是涉及一种pcie通信链路故障的分析方法、基板管理控制器bmc及存储介质。



背景技术:

pcie(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准。pcie总线是计算机总线pci的一种。

pcie区块中通常包括从pcie主控到pcie装置的通信链路,当pcie主控和pcie装置通过pcie桥接器连接时,则包括pcie主控到pcie桥接器的通信链路及pcie主控到pcie装置的通信链路。当pcie区块中的通信链路发生故障时,会向基板管理控制器bmc发送pcie区块故障的通知,并关闭整条通信链路。这使得基板管理控制器bmc只能获知发生故障的pcie区块,无法得知发生故障的具体位置,这非常不利于后续的分析和质量改进。

因此,如何对pcie通信链路故障进行分析以进一步定位pcie通信链路中发生故障的位置,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种pcie通信链路故障的分析方法、基板管理控制器bmc及存储介质,用于对pcie通信链路故障进行分析以进一步定位pcie通信链路中发生故障的位置,从而利于后续分析与质量改进。

为解决上述技术问题,本发明提供一种pcie通信链路故障的分析方法,基于基板管理控制器bmc,包括:

在接收到pcie区块发生错误的信息时,向所述pcie区块中各通信链路的通信发送端和通信接收端发送链路测试命令,以测试所述通信发送端和所述通信接收端之间的各信道的工作状态,定位发生故障的信道;

输出所述发生故障的信道的信息。

可选的,所述接收所述pcie区块发生错误的信息,具体为:

基于管理组件传输协议mctp获取所述pcie区块发生错误的信息。

可选的,当所述pcie区块中的pcie主控器和pcie装置通过pcie桥接器连接时,所述链路测试命令具体包括:

测试所述pcie主控器和所述pcie桥接器之间的第一通信链路中各信道的工作状态;

当所述第一通信链路中的各信道均未发生故障时,测试所述pcie桥接器和所述pcie装置之间的第二通信链路中的各信道的工作状态。

可选的,所述测试所述通信发送端和所述通信接收端之间的各信道的工作状态,定位发生故障的信道,具体为:

关闭各所述信道;

依次开放各所述信道直至所述通信链路再次发生故障;

确定在所述通信链路再次发生故障时开放的信道为所述发生故障的信道。

可选的,还包括:

当各所述信道均未发生故障时,将所述通信链路恢复初始工作状态。

可选的,所述发生故障的信道的信息具体为所述发生故障的信道的信道号码。

可选的,所述输出所述发生故障的信道的信息,具体为:

将所述发生故障的信道的信息发送至服务器后台以进行设计失效模式与效果分析dfmea。

为解决上述技术问题,本发明还提供一种基板管理控制器bmc,包括:

发送单元,用于在接收到pcie区块发生错误的信息时,向所述pcie区块中各通信链路的通信发送端和通信接收端发送链路测试命令,以测试所述通信发送端和所述通信接收端之间的各信道的工作状态,定位发生故障的信道;

输出单元,用于输出所述发生故障的信道的信息。

为解决上述技术问题,本发明还提供一种基板管理控制器bmc,包括:

存储器,用于存储指令,所述指令包括上述任意一项所述pcie通信链路故障的分析方法的步骤;

处理器,用于执行所述指令。

为解决上述技术问题,本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述pcie通信链路故障的分析方法的步骤。

本发明所提供的pcie通信链路故障的分析方法,基板管理控制器bmc在接收到pcie区块发生错误的信息时,向该pcie区块中通信链路的通信发送端和通信接收端发送链路测试命令,以测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道,并输出发生故障的信道的信息,相比于现有技术中只能获知发生故障的pcie区块,进一步定位了故障的所在,在出现错误时就进行分析,减少了测试验证时间,从而有利于后续分析与质量改进,而定位了故障信道的位置,可以有针对性的关闭该信道,无需断开整条通信链路,从而避免使处于正常工作状态的信道闲置,提高了通信效率。本发明还提供一种基板管理控制器bmc及存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种pcie通信链路故障的分析方法的流程图;

图2为本发明实施例提供的图1所基于的系统架构示意图;

图3为本发明实施例提供的一种pcie通信链路故障的分析方法的流程图;

图4为本发明实施例提供的一种信道排布示意图;

图5为本发明实施例提供的另一种pcie通信链路故障的分析方法的流程图;

图6为本发明实施例提供的一种基板管理控制器bmc的结构示意图;

图7为本发明实施例提供的另一种基板管理控制器bmc的结构示意图。

具体实施方式

本发明的核心是提供一种pcie通信链路故障的分析方法、基板管理控制器bmc及存储介质,用于对pcie通信链路故障进行分析以进一步定位pcie通信链路中发生故障的位置,从而利于后续分析与质量改进。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种pcie通信链路故障的分析方法的流程图;图2为本发明实施例提供的图1所基于的系统架构示意图。

如图1所示,基于基板管理控制器bmc,pcie通信链路故障的分析方法包括:

s101:在接收到pcie区块发生错误的信息时,向pcie区块中各通信链路的通信发送端和通信接收端发送链路测试命令,以测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道;

s102:输出发生故障的信道的信息。

如图2所示,在实际应用中,在pcie架构中,pcie主控和pcie装置可通过pcie总线基于管理组件传输协议mctp(managementcomponenttransportprotocol)直接连接;也可以通过pcie桥接器(例如pcie交换器或pcie三模控制器等)间接连接,其中,pcie主控和pcie桥接器之间通过pcie_a(总线)基于管理组件传输协议mctp连接,pcie桥接器和pcie装置之间通过pcie_b(总线)基于管理组件传输协议mctp连接。

基板管理控制器bmc则通过智能平台管理接口ipmi(intelligentplatformmanagementinterface)或智能平台管理信道ipmb(intelligentplatformmanagementbus/bridge)与pcie主控、pcie桥接器、pcie装置连接,用于以轮询的方式读取各装置的运行状态。

在具体实施中,对于步骤s101来说,基板管理控制器bmc接收pcie区块发生错误的信息,具体为基于管理组件传输协议mctp获取pcie区块发生错误的信息,也可以为基于智能平台管理接口ipmi或智能平台管理信道ipmb获取pcie区块发生错误的信息。

基板管理控制器bmc接收到pcie区块发生错误的信息时,开始进行后续测试。首先向发生错误的通信链路的通信发送端发送测试通知,再调整发生错误的通信链路的通信接收端的接口信道,通过有序开放或关闭各信道以定位发生故障的信道。

pcie主控和pcie装置直接连接时,对应的通信链路的通信发送端为pcie主控,通信接收端为pcie装置。

pcie主控和pcie装置通过pcie桥接器间接连接时,对应的通信链路包括pcie主控器和pcie桥接器之间的第一通信链路pcie_a,以及pcie桥接器和pcie装置之间的第二通信链路pcie_b。第一通信链路pcie_a的通信发送端为pcie主控器,通信接收端为pcie桥接器。第二通信链路pcie_b的通信发送端为pcie桥接器,通信接收端为pcie装置。

当pcie区块中的pcie主控器和pcie装置通过pcie桥接器连接时,基板管理控制器bmc发送的链路测试命令具体包括:

测试pcie主控器和pcie桥接器之间的第一通信链路pcie_a中各信道的工作状态;

当第一通信链路pcie_a中的各信道均未发生故障时,测试pcie桥接器和pcie装置之间的第二通信链路pcie_b中的各信道的工作状态。

由于当第一通信链路pcie_a中存在故障信道时,会降低第二通信链路pcie_b信道测试的可信度,因此在得到第一通信链路pcie_a中的各信道均未发生故障的测试结果后再对第二通信链路pcie_b中的各信道的工作状态进行测试。

对于步骤s102来说,输出发生故障的信道的信息,具体可以为:

将发生故障的信道的信息发送至服务器后台以进行设计失效模式与效果分析dfmea(designfailuremodeandeffectsanalysis)。

其中,发生故障的信道的信息即可以唯一确定该信道的标识,具体可以采用发生故障的信道的信道号码。

本发明实施例提供的pcie通信链路故障的分析方法,基板管理控制器bmc在接收到pcie区块发生错误的信息时,向该pcie区块中通信链路的通信发送端和通信接收端发送链路测试命令,以测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道,并输出发生故障的信道的信息,相比于现有技术中只能获知发生故障的pcie区块,进一步定位了故障的所在,在出现错误时就进行分析,减少了测试验证时间,从而有利于后续分析与质量改进,而定位了故障信道的位置,可以有针对性的关闭该信道,无需断开整条通信链路,从而避免使处于正常工作状态的信道闲置,提高了通信效率。

图3为本发明实施例提供的一种图1步骤s101中定位故障信道的具体实施方式的流程图;图4为本发明实施例提供的一种信道排布示意图。

如图3所示,在上述实施例的基础上,在另一实施例中,步骤s101中的测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道,具体包括:

s301:关闭各信道;

s302:依次开放各信道直至通信链路再次发生故障;

s303:确定在通信链路再次发生故障时开放的信道为发生故障的信道。

在上述实施例中,基板管理控制器bmc测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道,具体为首先向发生错误的通信链路的通信发送端发送测试通知,再调整发生错误的通信链路的通信接收端的接口信道,通过有序开放或关闭各信道以定位发生故障的信道。在此基础上,可以通过先关闭发生过五的通信链路上的所有信道,依次开放各信道直至通信链路再次(相对于触发基板管理控制器bmc开始测试的通信链路故障而言)发生故障,确定在通信链路再次发生故障时开放的信道为发生故障的信道。

如图4所示,以发生故障的通信链路的通信接收端为pcie主控,通信接收端为pcie装置为例,若原来该pcie装置的接口信道为x16(16条通道),则由最基本的x1→x2→x4→x8→x16(至多)依序增加直到故障再次发生,从而明确发生故障的具体信道。

可选地,步骤s101中的测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道,具体可以包括:

开启各信道;

依次关闭各信道直至通信链路恢复正常通信;

确定在通信链路恢复正常通信时关闭的信道为发生故障的信道。

本发明实施例提供的pcie通信链路故障的分析方法,在上述实施例的基础上,依据pcie总线的工作要求,提供了一种测试并定位发生故障的信道的具体实施方式,有利于实际应用,提高了方案的可行性。

图5为本发明实施例提供的另一种pcie通信链路故障的分析方法的流程图。如图5所示,在上述实施例的基础上,在另一实施例中,pcie通信链路故障的分析方法还包括:

s501:当各信道均未发生故障时,将通信链路恢复初始工作状态。

在具体实施中,当通信链路的各信道均未发生故障时,将通信链路恢复初始工作状态。如原来pcie装置的接口信道为x16时,则开放全部16条信道。当第一通信链路pcie_a中的各信道均未发生故障时,恢复原有的第一通信链路pcie_a的工作,当第二通信链路pcie_b中的各信道均未发生故障时,恢复原有的第二通信链路pcie_b的工作。

本发明实施例提供的pcie通信链路故障的分析方法,在上述实施例的基础上,还包括在各信道均未发生故障时,将通信链路恢复至初始工作状态,以自动完成通信链路关闭后的通信恢复,提高系统通信的流畅性。

上文详述了pcie通信链路故障的分析方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的基板管理控制器bmc。

图6为本发明实施例提供的一种基板管理控制器bmc的结构示意图。如图6所示,基板管理控制器bmc包括:

发送单元601,用于在接收到pcie区块发生错误的信息时,向pcie区块中各通信链路的通信发送端和通信接收端发送链路测试命令,以测试通信发送端和通信接收端之间的各信道的工作状态,定位发生故障的信道;

输出单元602,用于输出发生故障的信道的信息。

由于基板管理控制器bmc部分的实施例与方法部分的实施例相互对应,因此基板管理控制器bmc部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

图7为本发明实施例提供的另一种基板管理控制器bmc的结构示意图。如图7所示,该基板管理控制器bmc700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算装置中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在基板管理控制器bmc700上执行存储介质730中的一系列指令操作。

基板管理控制器bmc700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1至图5所描述的pcie通信链路故障的分析方法中的步骤由基板管理控制器bmc700基于该图7所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的基板管理控制器bmc及计算机可读存储介质的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、基板管理控制器bmc及存储介质,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本发明所提供的一种pcie通信链路故障的分析方法、基板管理控制器bmc及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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