计算机、PCIE设备以及PCIE设备的心跳检测方法技术

技术编号:14853192 阅读:86 留言:0更新日期:2017-03-18 20:15
本发明专利技术公开了一种计算机、PCIE设备以及PCIE设备的心跳检测方法,该方法包括:计算机检测PCIE设备是否插置于PCIE插槽中,如果是,在计算机的内存选择内存地址;计算机通过PCIE链路发送内存地址和预设频率至PCIE设备,以使得PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址;计算机以预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备心跳正常,如果否,确认PCIE设备心跳异常。通过以上公开内容,本发明专利技术能够有效避免因PCIE设备热插拔而导致计算机系统复位的情况发生,进而提高计算机的可靠性。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种计算机、PCIE设备以及PCIE设备的心跳检测方法
技术介绍
随着PCIE(PeripheralComponentInterfaceExpress,高速外围元件接口)设备(如PCIESSD盘)在全闪存阵列中的广泛应用,对PCIE设备的暴力热插拔的支持是一种必然趋势。而按照PCIE协议规定的PCIE热插拔操作是预先通知模式的,而在实际的应用场景中,可能出现误操作、无意识的外力、特殊应用场景等情况出现PCIE设备在未通知系统热插拔驱动的情况下,直接发生与计算机的北桥芯片的PCIE连接链路断开。如果这个时候计算机中的PCIE设备驱动程序正在通过计算机的处理器下发命令访问该PCIE设备的寄存器等,就可能导致计算机的处理器出现MCE(MachineCheckException,机器检测异常)错误,从而导致计算机系统复位。PCIE设备的热拔出流程必须是先将热插拔事件通知到计算机的热插拔驱动程序,在热插拔驱动程序通知计算机系统中所有可能访问该设备的驱动程序停止访问该PCIE设备、并且将需要进行热插拔设备的资源卸载掉之后,再对PCIE设备下电,然后才能对PCIE设备进行热拔出。PCIE设备的热插拔流程必须得先停止对PCIE设备的访问之后才能将PCIE设备从计算机中拔出(断开与计算机的北桥芯片的连接),其根本原因在于当计算机的处理器发起对一个PCIE设备寄存器的读/写请求时,若这个PCIE设备此时被突然拔出计算机的PCIE插槽,这时处理器发起的读/写请求得不到响应,处理器就会认为系统异常,报出MCE错误让整个计算机系统复位。因此,计算机的处理器和PCIE设备之间,需要进行定时的握手,以保证业务逻辑能够正确执行,该握手过程称心跳。在现有心跳技术中,计算机定时向PCIE设备发送心跳信息,而PCIE设备接受到心跳信息后,马上返回对应消息包,计算机接收到对应消息包后,完成一次完整的握手。计算机根据握手是否成功以及成功的次数,判断PCIE设备心跳是否正常,从而进行相关的业务逻辑和错误处理。由于现有的心跳技术中,必须由计算机不断地主动发起心跳信息至PCIE设备,若计算机发出心跳信息至PCIE设备之后,PCIE设备来不及回复就被暴力热拔出,此时计算机发起的消息包得不到PCIE设备响应,计算机的处理器就会认为系统异常,此时处理器会报出MCE错误让整个计算机系统复位,使得计算机可靠性不高。
技术实现思路
本专利技术实施方式提供一种计算机、PCIE设备以及PCIE设备的心跳检测方法,能够有效避免因PCIE设备热插拔而导致计算机系统复位的情况发生,进而提高计算机的可靠性。第一方面提供一种PCIE设备的心跳检测方法,该方法应用于计算机,计算机设置有PCIE插槽,PCIE设备可插拔设置于PCIE插槽,且在插入PCIE插槽时与计算机建立PCIE链路连接,该方法包括:计算机检测PCIE设备是否插置于PCIE插槽中,如果是,在计算机的内存选择内存地址;计算机通过PCIE链路发送内存地址和预设频率至PCIE设备,以使得PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址;计算机以预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备心跳正常,如果否,确认PCIE设备心跳异常。在第一方面的第一种可能的实现方式中,计算机确认PCIE设备心跳异常之后,该方法还包括:计算机再次检测PCIE设备是否插置于PCIE插槽中,如果否,则清空内存地址的内容,并进行热插拔处理。根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在检测到PCIE设备插置于PCIE插槽中时,该方法还包括:计算机进一步检测PCIE链路是否出现故障,如果是,则进行PCIE链路故障处理。根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在检测到PCIE设备插置于PCIE插槽中时,该方法还包括:在检测到PCIE设备插置于PCIE插槽中时,该方法还包括:计算机进一步检测PCIE设备内部是否出现故障,如果是,则进行PCIE设备故障处理。根据第一方面、第一方面的第一至第三种可能的实现方式中的任一者,在第四种可能的实现方式中,心跳信息包括依次递增的0至N,其中N为正整数,计算机判断内容是否是心跳信息具体包括:计算机判断内容是否为依次递增的0至N,如果是,则判断到内容是心跳信息,其中依次递增的0至N包括从N变为0的最大值反转状态。根据第一方面、第一方面的第一至第三种可能的实现方式中的任一者,在第五种可能的实现方式中,心跳信息包括依次递减的N至0,其中N为正整数,计算机对内容进行判断具体包括:计算机判断内容是否为依次递减的N至0,如果是,则判断到内容是心跳信息,其中依次递减的N至0包括从0变为N的最小值反转状态。第二方面提供一种PCIE设备的心跳检测方法,该方法应用于PCIE设备,PCIE设备可插拔设置于计算机的PCIE插槽,且在插入PCIE插槽时与计算机建立PCIE链路连接,该方法包括:PCIE设备通过PCIE链路接收计算机发送的内存地址和预设频率,其中内存地址是计算机在检测到PCIE设备插置于PCIE插槽时,在计算机的内存中选择获得;PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址,以使得计算机以预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备心跳正常,如果否,确认PCIE设备心跳异常。在第二方面的第一种可能的实现方式中,PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址包括:PCIE设备将心跳信息设置在存储内存写请求类型的TLP包中,并将TLP包在PCIE链路中的虚拟通道/流量级别设置为最高优先级。根据第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,心跳信息包括依次递增的0至N,其中N为正整数。根据第二方面或第二方面的第一种可能的实现方式,在第三种可能的实现方式中,心跳信息包括依次递减的N至0,其中N为正整数。第三方面提供一种计算机,计算机包括PCIE插槽和内存,PCIE设备可插拔设置于PCIE插槽,且PCIE设备在插入PCIE插槽时与计算机建立PCIE链路连接,计算机还包括:主机心跳模块,用于检测PCIE设备是否插置于PCIE插槽中,如果是,在内存选择内存地址;主机心跳模块,还用于通过PCIE链路发送内存地址和预设频率至PCIE设备,以使得PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址;主机心跳模块,还用于预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备心跳正常,如果否,确认PCIE设备心跳异常。在第三方面的第一种可能的实现方式中,计算机还包括热插拔处理模块,其中:主机心跳模块,还用于在确认PCIE设备心跳异常之后,再次检测PCIE设备是否插置于PCIE插槽中,如果否,则清空内存地址的内容,并通知热插拔处理模块进行热插拔处理。根据第三方面的第一种可能的实现方式,在第二种可能的实现方式中,计算机还包括PCIE链路故障处理模块,其中:在主机心跳模块检测到PCIE设备插置于PCIE插槽中时,PCIE链路故障处理模块本文档来自技高网
...
计算机、PCIE设备以及PCIE设备的心跳检测方法

【技术保护点】
一种PCIE设备的心跳检测方法,其特征在于,所述方法应用于计算机,所述计算机设置有PCIE插槽,所述PCIE设备可插拔设置于所述PCIE插槽,且在插入所述PCIE插槽时与所述计算机建立PCIE链路连接,所述方法包括:所述计算机检测所述PCIE设备是否插置于所述PCIE插槽中,如果是,在所述计算机的内存选择内存地址;所述计算机通过所述PCIE链路发送所述内存地址和预设频率至所述PCIE设备,以使得所述PCIE设备通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址;所述计算机以所述预设频率周期地读取所述内存地址的内容,并判断所述内容是否是所述心跳信息,如果是,确认所述PCIE设备心跳正常,如果否,确认所述PCIE设备心跳异常。

【技术特征摘要】
1.一种PCIE设备的心跳检测方法,其特征在于,所述方法应用于计算机,所述计算机设置有PCIE插槽,所述PCIE设备可插拔设置于所述PCIE插槽,且在插入所述PCIE插槽时与所述计算机建立PCIE链路连接,所述方法包括:所述计算机检测所述PCIE设备是否插置于所述PCIE插槽中,如果是,在所述计算机的内存选择内存地址;所述计算机通过所述PCIE链路发送所述内存地址和预设频率至所述PCIE设备,以使得所述PCIE设备通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址;所述计算机以所述预设频率周期地读取所述内存地址的内容,并判断所述内容是否是所述心跳信息,如果是,确认所述PCIE设备心跳正常,如果否,确认所述PCIE设备心跳异常。2.根据权利要求1所述的方法,其特征在于,所述计算机确认所述PCIE设备心跳异常之后,所述方法还包括:所述计算机再次检测所述PCIE设备是否插置于所述PCIE插槽中,如果否,则清空所述内存地址的内容,并进行热插拔处理。3.根据权利要求2所述的方法,其特征在于,在检测到所述PCIE设备插置于所述PCIE插槽中时,所述方法还包括:所述计算机进一步检测所述PCIE链路是否出现故障,如果是,则进行PCIE链路故障处理。4.根据权利要求2所述的方法,其特征在于,在检测到所述PCIE设备插置于所述PCIE插槽中时,所述方法还包括:所述计算机进一步检测所述PCIE设备内部是否出现故障,如果是,则进行PCIE设备故障处理。5.根据权利要求1-4任一项所述的方法,其特征在于,所述心跳信息包括依次递增的0至N,其中N为正整数,所述计算机判断所述内容是否是所述心跳信息具体包括:所述计算机判断所述内容是否为所述依次递增的0至N,如果是,则判断到所述内容是所述心跳信息,其中所述依次递增的0至N包括从N变为0的最大值反转状态。6.根据权利要求1-4任一项所述的方法,其特征在于,所述心跳信息包括依次递减的N至0,其中N为正整数,所述计算机对所述内容进行判断具体包括:所述计算机判断所述内容是否为所述依次递减的N至0,如果是,则判断到所述内容是所述心跳信息,其中所述依次递减的N至0包括从0变为N的最小值反转状态。7.一种PCIE设备的心跳检测方法,其特征在于,所述方法应用于PCIE设备,所述PCIE设备可插拔设置于计算机的PCIE插槽,且在插入所述PCIE插槽时与所述计算机建立PCIE链路连接,所述方法包括:所述PCIE设备通过所述PCIE链路接收所述计算机发送的内存地址和预设频率,其中所述内存地址是所述计算机在检测到所述PCIE设备插置于所述PCIE插槽时,在所述计算机的内存中选择获得;所述PCIE设备通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址,以使得所述计算机以所述预设频率周期地读取所述内存地址的内容,并判断所述内容是否是所述心跳信息,如果是,确认所述PCIE设备心跳正常,如果否,确认所述PCIE设备心跳异常。8.根据权利要求7所述的方法,其特征在于,所述PCIE设备通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址包括:所述PCIE设备将所述心跳信息设置在存储内存写请求类型的TLP包中,并将所述TLP包在所述PCIE链路中的虚拟通道/流量级别设置为最高优先级。9.根据权利要求7或8所述的方法,其特征在于,所述心跳信息包括依次递增的0至N,其中N为正整数。10.根据权利要求7或8所述的方法,其特征在于,所述心跳信息包括依次递减的N至0,其中N为正整数。11.一种计算机,其特征在于,所述计算机包括PCIE插槽和内存,PCIE设备可插拔设置于所述P...

【专利技术属性】
技术研发人员:陈高让张羽
申请(专利权)人:杭州华为数字技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1