CN106502944B - 计算机、pcie设备以及pcie设备的心跳检测方法 - Google Patents
计算机、pcie设备以及pcie设备的心跳检测方法 Download PDFInfo
- Publication number
- CN106502944B CN106502944B CN201510566301.5A CN201510566301A CN106502944B CN 106502944 B CN106502944 B CN 106502944B CN 201510566301 A CN201510566301 A CN 201510566301A CN 106502944 B CN106502944 B CN 106502944B
- Authority
- CN
- China
- Prior art keywords
- pcie
- computer
- pcie device
- heartbeat
- successively
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4081—Live connection to bus, e.g. hot-plugging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种计算机、PCIE设备以及PCIE设备的心跳检测方法,该方法包括:计算机检测PCIE设备是否插置于PCIE插槽中,如果是,在计算机的内存选择内存地址;计算机通过PCIE链路发送内存地址和预设频率至PCIE设备,以使得PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入内存地址;计算机以预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备心跳正常,如果否,确认PCIE设备心跳异常。通过以上公开内容,本发明能够有效避免因PCIE设备热插拔而导致计算机系统复位的情况发生,进而提高计算机的可靠性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种计算机、PCIE设备以及PCIE设备的心跳检测方法。
背景技术
随着PCIE(Peripheral Component Interface Express,高速外围元件接口)设备(如PCIE SSD盘)在全闪存阵列中的广泛应用,对PCIE设备的暴力热插拔的支持是一种必然趋势。而按照PCIE协议规定的PCIE热插拔操作是预先通知模式的,而在实际的应用场景中,可能出现误操作、无意识的外力、特殊应用场景等情况出现PCIE设备在未通知系统热插拔驱动的情况下,直接发生与计算机的北桥芯片的PCIE连接链路断开。如果这个时候计算机中的PCIE设备驱动程序正在通过计算机的处理器下发命令访问该PCIE设备的寄存器等,就可能导致计算机的处理器出现MCE(Machine Check Exception,机器检测异常)错误,从而导致计算机系统复位。
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设备故障处理。
根据第三方面、第三方面的第一至第三种可能的实现方式中的任一者,在第四种可能的实现方式中,心跳信息包括依次递增的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链路以预设频率周期地将心跳信息写入内存地址之前,将心跳信息设置在存储内存写请求类型的TLP包中,并将TLP包在PCIE链路中的虚拟通道/流量级别设置为最高优先级。
根据第四方面、第四方面的第一种可能的实现方式,在第二种可能的实现方式中,心跳信息包括依次递增的0至N,其中N为正整数。
根据第四方面、第四方面的第一种可能的实现方式,在第三种可能的实现方式中,心跳信息包括依次递减的N至0,其中N为正整数。
本发明实施方式提供的计算机、PCIE设备以及PCIE设备的心跳检测方法,PCIE设备通过PCIE链路以预设频率周期地将心跳信息写入计算机的内存地址,计算机以该预设频率周期地读取本地内存地址的内容,根据该内容获知PCIE设备心跳是否正常,由于在本发明实施例中,因由PCIE设备主动发出心跳信息至计算机,而无需由计算机不断地主动发出心跳信息至PCIE设备,因此PCIE设备只需负责发送心跳信息,而无需对心跳信息进行回应,进而避免了PCIE设备热插拔时计算机系统复位的情况发生,故能提高计算机的可靠性。
附图说明
图1是根据本发明实施例的计算机和PCIE设备所组成系统的系统结构示意图;
图2是根据本发明实施例的PCIE设备的心跳检测方法的流程图;
图3是根据本发明实施例的PCIE设备的心跳检测方法的另一流程图;
图4是根据本发明实施例的PCIE设备的心跳检测方法的另一流程图;
图5是根据本发明实施例的计算机的装置结构示意图;
图6是根据本发明实施例的PCIE设备的装置结构示意图。
具体实施方式
下面结合附图和实施方式对本发明进行详细说明。
首先请参见图1,图1是根据本发明实施例的计算机10和PCIE设备20所组成系统的系统结构示意图,如图1所示,在本发明实施例中,计算机10设置有PCIE插槽102,PCIE设备20可插拔设置于PCIE插槽102,且在插入PCIE插槽102时与计算机10建立PCIE链路连接。其中,PCIE设备20与计算机10之间更设置有RC(Root Complex,根组件)和PCIE SWITCH(PCIE交换器)(图未示),RC和PCIE SWITCH可实现PCIE链路的通信。
值得注意的是,本发明实施例中,为了便于说明,仅仅列出一个PCIE设备20作为示例性说明,但本发明实施例也支持多个PCIE设备分别插置于计算机10的多个PCIE插槽的情况。
并且,网络管理分为带内管理(In-Band)和带外管理(Out-Of-Band),其中带内管理即管理控制信息与数据信息使用统一物理通道进行传送。在物理设备没有单独的带外管理端口的情况下,必须要使用带内管理。而在本发明实施例中,PCIE设备20和计算机10无需利用带外管理端口来传输心跳信息,本发明的心跳信息只在PCIE链路中进行传输,因此本发明属于PCIE链路带内管理技术。
以下请参见图2,图2是根据本发明实施例的PCIE设备的心跳检测方法的流程图,本实施例所揭示的方法应用于计算机10,如图2所示,该方法包括以下步骤:
步骤201:计算机10检测PCIE设备20是否插置于PCIE插槽102中,如果是,执行步骤202,如果否,可跳转至步骤201,继续检测PCIE设备20是否插置于PCIE插槽102中。
步骤202:计算机10在内存选择内存地址。其中计算机10可在本地的内存选择一空闲的特定内存地址。
步骤203:计算机10通过PCIE链路发送内存地址和预设频率至PCIE设备20。PCIE设备20接收内存地址和预设频率之后,通过PCIE链路以预设频率周期地将心跳信息写入内存地址。优选地,心跳信息可为依次递增的0至N,如0,1,2,3,4……N,N为正整数。值得注意的是,这里所述的依次递增的0至N包括从N变为0的最大值反转状态。
这里揭示的递增方式以1为步长,而可选地,也可以其他步长实现递增,如步长为2,则可以下列方式进行递增:0,2,4……N,N为偶数正整数。
优选地,计算机10可将内存地址和预设频率设置在存储内存写请求(MemoryWrite)类型的TLP包中,并将TLP包在PCIE链路中的VC/TC(虚拟通道/流量)级别设置为最高优先级,通过在PCIE链路发送该TLP包至PCIE设备20,以将内存地址和预设频率发送至PCIE设备20。
步骤204:计算机10以该预设频率周期地读取内存地址的内容。
步骤205:计算机10判断读取到的内容是否是心跳信息,如果是,执行步骤206,如果否,执行步骤207。具体地,计算机10判断读取到的内容是否为依次递增的0至N,如依次递增的0,1,2,3,4……N,如果是,则判断到该内容是心跳信息,反之,则判断到该内容不是心跳信息。
步骤206:计算机10确认PCIE设备20心跳正常。
步骤207:计算机10确认PCIE设备20心跳异常。
在本发明实施例中,因PCIE设备20主动发出心跳信息至计算机10,而无需由计算机10不断地主动发出心跳信息至PCIE设备20,因此PCIE设备20只需负责发送心跳信息,而无需对心跳信息进行回应,进而避免了PCIE设备20热插拔时由于计算机10的处理器不能从PCIE设备20获取到应答而导致计算机10系统复位的情况发生,故本实施例能提高计算机10的可靠性。
进一步地,由于导致PCIE设备20心跳异常的原因主要包括:PCIE设备20内部故障、PCIE链路故障以及PCIE设备20被热拔出,因此,计算机10需针对以上三种情况进行相应的检测及处理。
以下请参见图3,图3是根据本发明实施例的PCIE设备20的心跳检测方法的另一流程图,图3示出步骤207之后,计算机10针对PCIE设备20心跳异常的判断结果而作出的相应处理方法,如图3所示,该方法包括以下步骤:
步骤208:计算机10再次检测PCIE设备20是否插置于PCIE插槽102中,如果是,执行步骤210,如果否,执行步骤209。
步骤209:计算机10清空内存地址的内容,并进行热插拔处理,其中热插拔处理具体可为上报热插拔事件至计算机10内的对应功能模块,使得对应功能模块获知PCIE设备20被热拔出,从而停止与该PCIE设备20之间的通信。
步骤210:计算机10进一步检测PCIE链路是否出现故障,如果是,则执行步骤211,如果否,则执行步骤212。
步骤211:计算机10进行PCIE链路故障处理。其中PCIE链路故障处理具体可为计算机10上报PCIE链路故障事件至计算机10内的对应功能模块,使得对应功能模块获知PCIE链路出现故障,从而进行对应的PCIE链路故障处理动作。
步骤212:计算机10检测PCIE设备20内部是否出现故障,如果是,执行步骤213,如果否,执行步骤214。
步骤213:计算机10进行PCIE设备20故障处理。其中PCIE链路故障处理具体可为计算机10上报PCIE设备20故障事件至计算机10内的对应功能模块,使得对应功能模块获知PCIE设备20出现故障,从而进行对应的PCIE设备20故障处理动作。
步骤214:计算机10提示用户未查找到PCIE设备20心跳异常原因。
因此,通过上述方法,计算机10可以找出PCIE设备20心跳异常的原因,并进行相关处理动作,以告知计算机10内部的相应功能模块进行应对,从而使得计算机10系统内部资源得到较为高效的分配。
以下请参见图4,图4是根据本发明实施例的PCIE设备20的心跳检测方法的另一流程图,本实施例所揭示的方法应用于PCIE设备20,如图4所示,该方法包括以下步骤:
步骤301:PCIE设备20通过PCIE链路接收计算机10发送的内存地址和预设频率,其中内存地址是计算机10在检测到PCIE设备20插置于PCIE插槽102时,在计算机10的内存中选择获得;
步骤302:PCIE设备20通过PCIE链路以预设频率周期地将心跳信息写入内存地址,以使得计算机10以预设频率周期地读取内存地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备20心跳正常,如果否,确认PCIE设备20心跳异常。
在步骤301中,优选地,PCIE设备20可将心跳信息设置在存储内存写请求类型的TLP(Transaction Layer Package,传输层数据包)包中,并将TLP包在PCIE链路中的虚拟通道/流量级别设置为最高优先级。
对于高负载的PCIE设备20而言,由于IO负载比较大,心跳消息和普通的IO消息在一起发送,则存在阻塞的可能,而将包括心跳信息的TLP包在PCIE链路中的虚拟通道/流量级别设置为最高优先级,则会避免心跳信息因为阻塞而不能及时发送至计算机10侧,从而进一步提高了系统的稳定性。
可选地,心跳信息可为依次递增的0至N,其中N为正整数。
或者,心跳信息也可设定为依次递减的N至0,其中N为正整数。
以下可参见图5,图5是根据本发明实施例的计算机10的装置结构示意图,如图5所示,计算机10包括PCIE插槽102和内存101,PCIE设备20可插拔设置于PCIE插槽102,且PCIE设备20在插入PCIE插槽102时与计算机10建立PCIE链路连接,计算机10还包括:
主机心跳模块103,用于检测PCIE设备20是否插置于PCIE插槽102中,如果是,在内存101选择内存101地址;
主机心跳模块103,还用于通过PCIE链路发送内存101地址和预设频率至PCIE设备20,以使得PCIE设备20通过PCIE链路以预设频率周期地将心跳信息写入内存101地址;
主机心跳模块103,还用于预设频率周期地读取内存101地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备20心跳正常,如果否,确认PCIE设备20心跳异常。
可选地,计算机10还包括热插拔处理模块106,该主机心跳模块103,还用于在确认PCIE设备20心跳异常之后,再次检测PCIE设备20是否插置于PCIE插槽102中,如果否,则清空内存101地址的内容,并通知热插拔处理模块106进行热插拔处理。
可选地,计算机10还包括PCIE链路故障处理模块105,在主机心跳模块103检测到PCIE设备20插置于PCIE插槽102中时,PCIE链路故障处理模块105用于检测PCIE链路是否出现故障,如果是,则进行PCIE链路故障处理。
可选地,计算机10还包括PCIE设备故障处理模块104,在主机心跳模块103检测到PCIE设备20插置于PCIE插槽102中时,PCIE设备故障处理模块104用于检测PCIE设备20内部是否出现故障,如果是,则进行PCIE设备故障处理。
可选地,心跳信息为依次递增的0至N,N为正整数,主机心跳模块103具体用于判断内容是否为依次递增的0至N,如果是,则判断到内容是心跳信息,其中依次递增的0至N包括从N变为0的最大值反转状态。
心跳信息为依次递减的N至0,其中N为正整数,主机心跳模块103具体用于判断内容是否为依次递减的N至0,如果是,则判断到内容是心跳信息,其中依次递减的N至0包括从0变为N的最小值反转状态。
以下请参见图6,图6是根据本发明实施例的PCIE设备20的装置结构示意图。PCIE设备20可插拔设置于计算机10的PCIE插槽102,且在插入PCIE插槽102时与计算机10建立PCIE链路连接,如图6所示,PCIE设备20包括:
接收模块501,用于通过PCIE链路接收计算机10发送的内存101地址和预设频率,其中内存101地址是计算机10在检测到PCIE设备20插置于PCIE插槽102时,在计算机10的内存101中选择获得;
PCIE设备心跳模块502,还用于通过PCIE链路以预设频率周期地将心跳信息写入内存101地址,以使得计算机10以预设频率周期地读取内存101地址的内容,并判断内容是否是心跳信息,如果是,确认PCIE设备20心跳正常,如果否,确认PCIE设备20心跳异常。
可选地,PCIE设备心跳模块502在通过PCIE链路以预设频率周期地将心跳信息写入内存101地址之前,将心跳信息设置在存储内存101写请求类型的TLP包中,并将TLP包在PCIE链路中的虚拟通道/流量级别设置为最高优先级。
可选地,心跳信息为依次递增的0至N,其中N为正整数。
可选地,心跳信息为依次递减的N至0,其中N为正整数。
由于在本发明实施例中,因由PCIE设备主动发出心跳信息至计算机,而无需由计算机不断地主动发出心跳信息至PCIE设备,因此PCIE设备只需负责发送心跳信息,而无需对心跳信息进行回应,进而避免了PCIE设备热插拔时计算机系统复位的情况发生,故能提高计算机的可靠性。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (20)
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设备可插拔设置于所述PCIE插槽,且所述PCIE设备在插入所述PCIE插槽时与所述计算机建立PCIE链路连接,所述计算机还包括:
主机心跳模块,用于检测所述PCIE设备是否插置于所述PCIE插槽中,如果是,在所述内存选择内存地址;
所述主机心跳模块,还用于通过所述PCIE链路发送所述内存地址和预设频率至所述PCIE设备,以使得所述PCIE设备通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址;
所述主机心跳模块,还用于以所述预设频率周期地读取所述内存地址的内容,并判断所述内容是否是所述心跳信息,如果是,确认所述PCIE设备心跳正常,如果否,确认所述PCIE设备心跳异常。
12.根据权利要求11所述的计算机,其特征在于,所述计算机还包括热插拔处理模块,其中:
所述主机心跳模块,还用于在确认所述PCIE设备心跳异常之后,再次检测所述PCIE设备是否插置于所述PCIE插槽中,如果否,则清空所述内存地址的内容,并通知所述热插拔处理模块进行热插拔处理。
13.根据权利要求12所述的计算机,其特征在于,所述计算机还包括PCIE链路故障处理模块,其中:
在所述主机心跳模块检测到所述PCIE设备插置于所述PCIE插槽中时,所述PCIE链路故障处理模块用于检测所述PCIE链路是否出现故障,如果是,则进行PCIE链路故障处理。
14.根据权利要求12所述的计算机,其特征在于,所述计算机还包括PCIE设备故障处理模块,其中:
在所述主机心跳模块检测到所述PCIE设备插置于所述PCIE插槽中时,所述PCIE设备故障处理模块用于检测所述PCIE设备内部是否出现故障,如果是,则进行PCIE设备故障处理。
15.根据权利要求11-14任一项所述的计算机,其特征在于,所述心跳信息包括依次递增的0至N,N为正整数,其中:
所述主机心跳模块,用于判断所述内容是否为所述依次递增的0至N,如果是,则判断到所述内容是所述心跳信息,其中所述依次递增的0至N包括从N变为0的最大值反转状态。
16.根据权利要求11-14任一项所述的计算机,其特征在于,所述心跳信息包括依次递减的N至0,其中N为正整数,其中:
所述主机心跳模块,用于判断所述内容是否为所述依次递减的N至0,如果是,则判断到所述内容是所述心跳信息,其中所述依次递减的N至0包括从0变为N的最小值反转状态。
17.一种PCIE设备,其特征在于,所述PCIE设备可插拔设置于计算机的PCIE插槽,且在插入所述PCIE插槽时与所述计算机建立PCIE链路连接,所述PCIE设备包括:
接收模块,用于通过所述PCIE链路接收所述计算机发送的内存地址和预设频率,其中所述内存地址是所述计算机在检测到所述PCIE设备插置于所述PCIE插槽时,在所述计算机的内存中选择获得;
所述PCIE设备心跳模块,还用于通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址,以使得所述计算机以所述预设频率周期地读取所述内存地址的内容,并判断所述内容是否是所述心跳信息,如果是,确认所述PCIE设备心跳正常,如果否,确认所述PCIE设备心跳异常。
18.根据权利要求17所述的PCIE设备,其特征在于,所述PCIE设备心跳模块在通过所述PCIE链路以所述预设频率周期地将心跳信息写入所述内存地址之前,将所述心跳信息设置在存储内存写请求类型的TLP包中,并将所述TLP包在所述PCIE链路中的虚拟通道/流量级别设置为最高优先级。
19.根据权利要求17或18所述的PCIE设备,其特征在于,所述心跳信息包括依次递增的0至N,其中N为正整数。
20.根据权利要求17或18所述的PCIE设备,其特征在于,所述心跳信息包括依次递减的N至0,其中N为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510566301.5A CN106502944B (zh) | 2015-09-08 | 2015-09-08 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510566301.5A CN106502944B (zh) | 2015-09-08 | 2015-09-08 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502944A CN106502944A (zh) | 2017-03-15 |
CN106502944B true CN106502944B (zh) | 2019-05-07 |
Family
ID=58286687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510566301.5A Active CN106502944B (zh) | 2015-09-08 | 2015-09-08 | 计算机、pcie设备以及pcie设备的心跳检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502944B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836059B1 (en) | 2020-12-14 | 2023-12-05 | Sanblaze Technology, Inc. | System and method for testing non-volatile memory express storage devices |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107590050A (zh) * | 2017-09-04 | 2018-01-16 | 杭州迪普科技股份有限公司 | 一种检查外部插件设备异常的方法及装置 |
CN109815043B (zh) | 2019-01-25 | 2022-04-05 | 华为云计算技术有限公司 | 故障处理方法、相关设备及计算机存储介质 |
CN111106981B (zh) * | 2019-12-21 | 2022-01-11 | 锐捷网络股份有限公司 | 一种pcie通道的检修方法及装置 |
CN117834447B (zh) * | 2024-03-05 | 2024-05-07 | 北京数渡信息科技有限公司 | 基于PCIe Switch的互联池化系统拓扑管理装置及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101234018A (zh) * | 2008-02-26 | 2008-08-06 | 中兴通讯股份有限公司 | 心跳检测方法、系统和中央处理单元 |
CN101345663A (zh) * | 2008-08-22 | 2009-01-14 | 杭州华三通信技术有限公司 | 心跳检测方法和心跳检测设备 |
CN101977139A (zh) * | 2010-07-28 | 2011-02-16 | 北京星网锐捷网络技术有限公司 | 路由转发实现装置、方法及交换设备 |
CN102185740A (zh) * | 2011-05-13 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 心跳检测方法及网络设备 |
CN102279835A (zh) * | 2011-06-29 | 2011-12-14 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中主从设备串行总线通信方法及动态识别过程 |
CN102984029A (zh) * | 2012-11-30 | 2013-03-20 | 福建星网锐捷网络有限公司 | 应用于分布式系统的心跳检测装置和方法、网络设备 |
CN103098428A (zh) * | 2012-10-27 | 2013-05-08 | 华为技术有限公司 | 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质 |
CN103955188A (zh) * | 2014-04-24 | 2014-07-30 | 清华大学 | 支持冗余切换功能的控制系统及方法 |
-
2015
- 2015-09-08 CN CN201510566301.5A patent/CN106502944B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101234018A (zh) * | 2008-02-26 | 2008-08-06 | 中兴通讯股份有限公司 | 心跳检测方法、系统和中央处理单元 |
CN101345663A (zh) * | 2008-08-22 | 2009-01-14 | 杭州华三通信技术有限公司 | 心跳检测方法和心跳检测设备 |
CN101977139A (zh) * | 2010-07-28 | 2011-02-16 | 北京星网锐捷网络技术有限公司 | 路由转发实现装置、方法及交换设备 |
CN102185740A (zh) * | 2011-05-13 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | 心跳检测方法及网络设备 |
CN102279835A (zh) * | 2011-06-29 | 2011-12-14 | 厦门雅迅网络股份有限公司 | 一种嵌入式系统中主从设备串行总线通信方法及动态识别过程 |
CN103098428A (zh) * | 2012-10-27 | 2013-05-08 | 华为技术有限公司 | 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质 |
CN102984029A (zh) * | 2012-11-30 | 2013-03-20 | 福建星网锐捷网络有限公司 | 应用于分布式系统的心跳检测装置和方法、网络设备 |
CN103955188A (zh) * | 2014-04-24 | 2014-07-30 | 清华大学 | 支持冗余切换功能的控制系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11836059B1 (en) | 2020-12-14 | 2023-12-05 | Sanblaze Technology, Inc. | System and method for testing non-volatile memory express storage devices |
Also Published As
Publication number | Publication date |
---|---|
CN106502944A (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502944B (zh) | 计算机、pcie设备以及pcie设备的心跳检测方法 | |
US6298398B1 (en) | Method to provide checking on data transferred through fibre channel adapter cards | |
US8151145B2 (en) | Flow control timeout mechanism to detect PCI-express forward progress blockage | |
US7536584B2 (en) | Fault-isolating SAS expander | |
EP2052326B1 (en) | Fault-isolating sas expander | |
CN101406004A (zh) | 在包括绑定适配器的通信网络中检测故障的方法和装置 | |
CN105426275B (zh) | 双活集群系统中容灾的方法及装置 | |
US6338083B1 (en) | Method and apparatus for transfer of information using optical fiber connections | |
CN107870832B (zh) | 基于多维度健康诊断方法的多路径存储设备 | |
US7725556B1 (en) | Computer system with concurrent direct memory access | |
CN103477331A (zh) | 启动装置、目标装置、通信系统、超时检测方法以及超时检测程序 | |
JP6183931B2 (ja) | クラスタシステム、サーバ装置、クラスタシステムの管理方法、及びプログラム。 | |
CN109327383A (zh) | 一种故障处理方法及设备 | |
EP0658026A2 (en) | A method and system for transmitting data packets in a distributed data processing system | |
CN108512753A (zh) | 一种集群文件系统中消息传输的方法及装置 | |
CN105487609A (zh) | 一种服务器 | |
CN115437978A (zh) | 高速外围组件互连接口装置及其操作方法 | |
CN109542834A (zh) | 一种确定nc芯片连接错误的方法及nc芯片 | |
JP6134720B2 (ja) | 接続方法 | |
CN109582626A (zh) | 一种访问总线的方法、装置、设备及可读存储介质 | |
US6499066B1 (en) | Method and apparatus for using fibre channel test extended link service commands for interprocess communication | |
US6330585B1 (en) | Transfer information using optical fiber connections | |
CN114461559A (zh) | 热插拔方法、片上系统及计算机设备 | |
KR101216674B1 (ko) | 과금 데이터의 손실을 개선한 과금 데이터 저장 장치 및방법 | |
CN106452869B (zh) | 一种管理一卡通终端的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |