一种异常监控方法及装置的制作方法

文档序号:6581504阅读:164来源:国知局
专利名称:一种异常监控方法及装置的制作方法
技术领域
本发明涉及异常监控技术,特别涉及一种异常监控方法及装置。
背景技术
PCI Express ( Peripheral Component Interconnect Express,高'l"生能夕卜围 设备互连总线)协议规定,PCI Express事务的发起者为请求者,PCI Express 事务的接收者为完成者。当请求者发起一个读请求凄t据包,完成者需要在规定 时间内返回一个读完成数据包,作为对该读请求数据包的应答。PCI Express 协议还明确定义了请求者必须实现完成超时机制,其目的是检测何时没有返回 适当的读完成数据包。PCI Express协议也定义了超时的允许范围,设备必须 在50ms以内产生超时。
例如假设请求者为CPU (Center Process Unit,中央处理器)时,CPU 发起一个读数据操作,该读数据操作指示PCI Express控制器发送一个读请求 数据包给PCI Express设备(对应完成者),PCI Express设备需要在50ms 以内给CPU (请求者)返回一个读完成数据包,PCI Express控制器解析该读 完成数据包得到读数据,并将读数据返回到数据总线上,CPU需要等待读数 据返回到数据总线上才能结束当前读数据操作,执行下一个指令。
实现本发明的过程中,本发明的发明人发现现有技术至少存在以下问题
当CPU正在读取PCI Express设备的数据时,如果PCI Express设备出 现异常,CPU将无法接收到来自PCI Express i殳备的读完成数据包,此时会 造成CPU的处理任务挂起。例如PCI Express设备的不正确热拔出或PCI Express设备的链路复位操作,都将使得CPU无法接收到来自PCI Express 设备的读完成数据包,造成CPU的处理任务挂起。

发明内容
本发明实施例的目的是提供一种异常监控方法及装置,实现当中央处理器 正在读取PCI Express设备的数据时,如果PCI Express设备出现异常,中央 处理器的处理任务仍然能够正常运行的技术效果。本发明实施例的目的是通过以下技术方案实现的
一种异常监控的方法,包括
监控PCI Express设备的状态是否发生异常;
当中央处理器发送读请求数据包给所述PCI Express设备,且所述PCI Express设备的状态发生异常时,至少获取当前读请求数据包的包头信息; 根据所述包头信息生成读完成数据包,所述读完成数据包指示完成状态异
常; 理。
一种异常监控装置,包括
监控模块,用于监控PCI Express设备的状态是否发生异常;
数据提取漠块,用于当中央处理器发送读请求凝:据包给所述PCI Express 设备,且监控模块监控到所述PCI Express设备的状态发生异常时,至少获取 当前读请求数据包的包头信息;
读完成数据包发送模块,用于根据所述数据提取模块获取的所述包头信息 生成读完成数据包,所述读完成数据包指示完成状态异常,向所述中央处理器 发送所述读完成数据包。
采用本发明实施例的技术方案,通过监控PCI Express设备的状态是否发 生异常,当中央处理器发送读请求数据包给PCI Express设备,且PCI Express 设备的状态发生异常时,至少获取当前读请求数据包的包头信息,并根据包头 信息生成读完成数据包,该读完成数据包指示完成状态异常,向中央处理器发 送该读完成数据包以使中央处理器做异常处理,达到了当中央处理器正在读取 PCI Express设备的数据时,如果PCI Express设备出现异常,中央处理器的 处理任务仍然能够正常运行的技术效果。


图1为本发明实施例应用的一种系统示意图2为本发明实施例中提供的一种异常监控的方法流程图3为本发明实施例中提供的一种异常监控装置示意图;图4为本发明实施例中提供的一种异常监控装置的读完成数据包发送模块 330的示意图。
具体实施例方式
为了使本发明实施例的目的、技术方案及优点更加清楚明白,以下结合附 图及实施例,对本发明的实施例进行进一步详细说明。应当理解,此处所描述 的具体实施例仅用以解释本发明,并不用于限定本发明。
为便于说明,下面介绍本发明的一个具体实施例。图1为本发明实施例应 用的一种系统示意图,中央处理器110通过异常监控装置120与PCI Express 设备130进行通信,PCI Express设备130的状态指示信号反馈给异常监控装 置120。
下面以异常监控装置120为例,详细介绍本发明实施例的技术方案。 如图2所示,本发明实施例的技术方案的流程如下
201、 监控PCI Express设备的状态是否发生异常;
202、 当中央处理器发送读请求数据包给PCI Express设备,且PCI Express设备的状态发生异常时,至少获取当前读请求数据包的包头信息。
203、 根据202中获取到的信息,生成读完成数据包,该读完成凄t据包指 示完成状态异常;
204、 向中央处理器发送上述表示完成状态异常的读完成数据包。 可选的,在本发明的实施例中,可以通过PCI Express设备的状态指示信
号来监控PCI Express设备的状态是否发生异常,当PCI Express设备的状态 指示信号有效时,表明pel Express设备的状态发生异常。
在本实施例中,上述状态指示信号可以为第一信号,或第二信号,或第一 信号与第二信号的组合信号,其中,第一信号指示PCI Express设备130是否 在线,第二信号指示PCI Express设备的传输链路状态是否正常。
其中,导致状态指示信号有效的情况包括第一信号有效,或第二信号有 效,或第一信号与所述第二信号的组合信号有效。例如当PCI Express设备 不正常拔出时,导致PCI Express设备不在线,使得第一信号变为有效;当 PCI Express设备的数据传输链路出现故障时,使得第二信号变为有效;当PCIExpress设备不正常拔出和/或PCI Express设备的数据传输链路出现故障时, 使得第 一信号与所述第二信号的组合信号变为有效。
可选的,可以通过上述状态指示信号的电平参^t,来监控PCI Express设 备的状态是否发生异常。例如当PCI Express设备的状态指示信号达到有效 电平(例如3.3V)时,PCI Express设备的状态指示信号变为有效,表明PCI Express设备的状态发生异常。
可选的,还可以通过上述状态指示信号的其它参数,来监控PCI Express 设备的状态是否发生异常,例如状态指示信号的电流参数等。
在本实施例中,PCI Express设备的状态发生异常是指PCI Express设备 无法正常返回当前读请求数据包对应的读完成数据包。
其中,较为常见的导致PCI Express设备无法正常返回读请求对应的读完 成数据包的情况包括PCI Express设备不正常拔出或PCI Express设备的数 据传输链路出现链路复位等。
可选的,在本发明的实施例中,还可以包括
当检测到中央处理器发送读请求数据包给PCI Express设备时,执行201 。 在这种场景中,只有当PCI Express设备接受到来自中央处理器的读请求
数据包时,才开始监控PCI Express设备的状态,可以缩短异常监控装置处于
监控状态的时间,减少异常监控装置的能耗。 可选的,在本发明的实施例中,还可以包括
当检测到PCI Express设备的状态发生异常、且检测到中央处理器发送读 请求数据包给PCI Express设备时,执行202。
在这种场景中,不管PCI Express设备是否接受到来自中央处理器的读请 求数据包,异常监控装置都处于监控状态,这样可以减少异常监控装置进入监 控状态的时间,提高监控的精确度。
可选的,在本发明的实施例中,至少获取当前读请求数据包的包头信息, 包括获取当前读请求数据包的包头信息或者获取当前读请求数据包的包头信 息以及数据信息。
读请求数据包的包头信息包括Type (类型)字段,用于表示数据包类型。
Completion status (完成状态)字段,用于表示读请求操作完成状态。
Tag(标签)字段,用于标识不同的读请求操作,同一个读请求操作的读 请求数据包与读完成凄t据包的Tag字段的数值相同。
以上字段为PCI Express协议规定的读请求数据包的包头格式字段,其它 字段在PCI Express协议中有详细规定。
可选的,在本发明的实施例中,当202中获取到的信息为当前读请求数 据包的包头信息时,203中将根据当前读请求数据包的包头信息,生成读完成 数据包,其中
该读完成数据包的包头的Type字段可以为指示该凄t据包为读完成数据包 的第一数值,例如,该第一数值可以为二进制数01010;
该读完成数据包的包头的Completion Status字段可以为指示完成状态异 常的第二数值,例如,该第二数值可以为二进制数100;
该读完成数据包的包头的Tag标签字段可以与202中获取到的当前读请求 数据包的包头的Tag标签字段相同,以指示该读完成数据包对应于当前读请求 数据包;
该读完成数据包的包头的其他字段可以与202中获取到的当前读请求数 据包的包头的相应字^:相同;
该读完成数据包的包头的数据字段可以填充为任意数值。
当然,当202中获取到的信息为当前读请求数据包的包头信息以及数据信 息时,203中将根据当前读请求数据包的包头信息以及数据信息,生成读完成 数据包。该读完成数据包的包头的各字段,与上述"当202中获取到的信息为 当前读请求数据包的包头信息"的情况相类似,此处不再赘述。但是在本场景 中,可以保留当前读请求数据包的数据字段,即该读完成数据包的数据字段 与202中获取到的当前读请求数据包的数据字段相同。
在本发明的实施例中,当异常监控装置向中央处理器发送203中生成的读 完成数据包后,中央处理器就能够做相应的异常处理,无不会出现现有技术中 "CPU无法接收到来自PCI Express设备的读完成数据包,造成CPU的处理任务挂起"的问题。
本发明实施例提供了一种异常监控装置120,如图3所示,包括 监控模块310,用于监控PCI Express设备的状态是否发生异常; 数据提取模块320,用于当中央处理器发送读请求数据包给PCI Express
设备,且监控模块310监控到PCI Express设备的状态发生异常时,至少获取
当前读请求数据包的包头信息;
读完成数据包发送模块330,用于根据数据提取模块320获取的包头信息
生成读完成数据包,该读完成数据包指示完成状态异常,向中央处理器发送读
完成数据包以使中央处理器做异常处理。
其中,读完成凝:据包发送^t块330,如图4所示,包括
获取单元410,用于从数据提取模块320中至少获取当前读请求数据包的
包头4言息;
生成单元420,用于根据包头信息,生成读完成数据包,该读完成数据包 指示完成状态异常;
发送单元430,用于向中央处理器发送读完成数据包以使中央处理器做异 常处理。
其中,异常监控装置120可作为单独的电路器件,也可以嵌入在其它电路 器件中,作为该电路器件的一个功能模块,例如可以嵌入于中央处理器中或 PCI Express交换器中,其中,PCI Express交换器为用于实现PCI Express
传输交换的器件。
其中,当异常监控装置120作为单独的电路器件时,不限定具体的位置, 例如可以位于中央处理器110与其它器件之间或其它器件与PCI Express设备之间。
通过以上的实施方式的描述,本领域的普通技术人员可以清楚地了解到本 发明实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过 硬件来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形 式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、 光盘等,包括若干指令用以使得一台计算机设备、或者服务器、或者其他网络以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。
权利要求
1、一种异常监控的方法,其特征在于,包括监控PCI Express设备的状态是否发生异常;当中央处理器发送读请求数据包给所述PCI Express设备,且所述PCIExpress设备的状态发生异常时,至少获取当前读请求数据包的包头信息;根据所述包头信息生成读完成数据包,所述读完成数据包指示完成状态异常;向所述中央处理器发送所述读完成数据包以使所述中央处理器做异常处理。
2、 根据权利要求1所述的方法,其特征在于,所述监控PCI Express设 备的状态是否发生异常,包括监控所述PCI Express设备的状态指示信号是否 有效。
3、 根据权利要求2所述的方法,其特征在于,所述状态指示信号包括第 一信号,或第二信号,或所述第一信号与所述第二信号的组合信号,其中,所述第一信号指示所述PCI Express设备是否在线,所述第二信号 指示所述PCI Express设备的传输链路状态是否正常。
4、 根据权利要求1所述的方法,其特征在于,所述至少获取当前读请求 数据包的包头信息,包括获取所述当前读请求数据包的所述包头信息以及所述 当前读请求数据包的数据信息。
5、 根据权利要求4所述的方法,其特征在于,所述根据所述包头信息生 成读完成数据包,包括设置所述当前读请求数据包的包头的Type类型字段为指示所述数据包为 读完成数据包的第 一 数值;设置所述当前读请求数据包的包头的Completion Status完成状态字段为 指示完成状态异常的第二数值;保留所述当前读请求数据包的包头的Tag标签字段,所述Tag标签字段指 示所述读完成it据包对应于所述当前读请求凄t据包;保留所述当前读请求数据包的包头的其它字段。
6、 根据权利要求5所述的方法,其特征在于,所述根据所述包头信息生 成读完成数据包,还包括当获取所述当前读请求数据包的所述包头信息时,填充所述当前读请求数 据包的数据字段为任意数值; 或者当获取所述当前读请求数据包的所述包头信息以及所述当前读请求数据 包的数据信息时,保留所述当前读请求数据包的数据字段。
7、 一种异常监控装置,其特征在于,包括监控模块,用于监控PCI Express设备的状态是否发生异常; 数据提取模块,用于当中央处理器发送读请求数据包给所述PCI Express设备,且监控模块监控到所述PCI Express设备的状态发生异常时,至少获取当前读请求数据包的包头信息;读完成数据包发送模块,用于根据所述数据提取模块获取的所述包头信息生成读完成数据包,所述读完成数据包指示完成状态异常,向所述中央处理器发送所述读完成数据包。
8、 根据权利要求7所述的装置,其特征在于,所述读完成数据包发送模 块,包括获取单元,用于从所述数据提取模块中至少获取所述当前读请求数据包的 所述包头信息;生成单元,用于4艮据所述包头信息,生成读完成lt据包,所述读完成数据 包指示完成状态异常;发送单元,用于向所述中央处理器发送所述读完成凄史据包。
全文摘要
本发明公开了一种异常监控方法及装置,采用本发明实施例的技术方案,通过监控PCI Express设备的状态是否发生异常,当中央处理器发送读请求数据包给PCI Express设备,且PCI Express设备的状态发生异常时,至少获取当前读请求数据包的包头信息,并根据包头信息生成读完成数据包,该读完成数据包指示完成状态异常,向中央处理器发送该读完成数据包以使中央处理器做异常处理。解决了现有技术中,当中央处理器正在读取PCI Express设备的数据时,如果PCI Express设备出现异常,使得中央处理器无法接收来自PCI Express设备的读完成数据包,造成中央处理器的处理任务挂起的技术问题。
文档编号G06F13/38GK101673234SQ200910190748
公开日2010年3月17日 申请日期2009年9月25日 优先权日2009年9月25日
发明者彬 王, 罗弘彧, 可 马, 马永亮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1