心跳检测方法、系统和中央处理单元的制作方法

文档序号:6458180阅读:190来源:国知局
专利名称:心跳检测方法、系统和中央处理单元的制作方法
技术领域
本发明涉及设备状态检测技术,尤其涉及一种心跳检测方法、系统和中央 处理单元。
背景技术
随着计算机技术的不断发展,在实际应用中对计算机的处理能力要求也越来越高,目前的计算机越来越多的采用基于对称多处理(SMP, Symmetric Multi Processing)系统的组成结构,以达到高处理能力的要求。SMP系统由耦合连接 在高速总线上的多个中央处理单元(CPU, Central Processing Units)组成,可进行多任务的并发处理,有利于提高计算机的性能。由于SMP系统由多个CPU组成,在实际应用中,SMP系统需要对各个CPU 的生存状态进行实时监控,而在现有的SMP系统中还没有一种较为有效的用于 CPU状态检测的方法。发明内容有鉴于此,本发明的主要目的在于提供一种心跳检测方法、系统和中央处 理单元,以解决现有技术无法实现SMP系统中CPU状态检测的问题。 为达到上述目的,本发明的技术方案是这样实现的 本发明提供了一种心跳检测方法,包括向被监控中央处理单元CPU发送携带心跳序列号的心跳请求消息; 对来自所述被监控CPU的心跳反馈消息进行分析,得到心跳检测结果。 所述对心跳反馈消息进行分析得到心跳检测结果为 提取所述心跳反馈消息中的心跳序列号,并将所述心跳序列号与所述心跳 请求消息的序列号进行匹配,如果匹配成功,则对所述心跳反馈消息进行分析生成心跳检测结果;否则,判定所述心跳反馈消息丢失。 本发明还提供了一种心跳检测方法,包括 接收来自采集CPU的携带心跳序列号的心跳请求消息; 根据所述心跳请求消息,生成携带所述心跳序列号的心跳反馈消息向所述采集CPU发送。所述接收心跳请求消息为通过中断方式接收所述心跳请求消息; 接收到来自所述采集CPU的心跳请求消息后,进一步包括进入中断环境对所述心跳请求消息进行处理。所述接收心跳请求消息为通过轮询方式接收所述心跳请求消息; 所述接收心跳请求消息包括利用侦听进程侦听来自所述釆集CPU的心跳请求消息,并将侦听到的所述心跳请求消息放入消息待处理队列中进行处理。 本发明还提供了一种采集CPU,包括相互连接的心跳请求消息发送模块和心跳反馈消息分析才莫块;其中,所述心跳请求消息发送模块,用于向被监控CPU发送携带心跳序列号的心跳请求消息;所述心跳反馈消息分析模块,用于对来自所述被监控CPU的心跳反馈消息 进行分析,得到心跳检测结果。本发明还提供了一种被监控CPU,包括相互连接的心跳请求消息接收模 块和心跳反馈消息发送模块;其中,所述心跳请求消息接收模块,用于接收来自采集CPU的携带心跳序列号的 心跳请求消息;所述心跳反馈消息发送模块,用于根据所述心跳请求消息,生成携带所述 心跳序列号的心跳反馈消息向所述采集CPU发送。所述心跳请求消息接收模块包括中断接收子模块,用于通过中断方式接 收所述心跳请求消息。所述心跳请求消息接收模块还包括轮询接收子模块,用于通过轮询方式 接收所述心跳请求消息。本发明还提供了一种心跳反馈系统,包括相互连接的采集CPU和被监控 CPU;其中,所述釆集CPU,用于向所述被监控CPU发送携带心跳序列号的心跳请求 消息,并对来自所述被监控CPU的心跳反馈消息进行分析,得到心跳检测结果;所述被监控CPU,用于根据来自所述采集CPU的携带心跳序列号的心跳 请求消息,生成携带所述心跳序列号的心跳反^t消息向所述釆集CPU发送。所述采集CPU包括相互连接的心跳请求消息发送模块和心跳反馈消息分 析模块;其中,所述心跳请求消息发送模块,用于向所述被监控CPU发送携带心跳序列号 的心跳请求消息;所述心跳反馈消息分析模块,用于对来自所述被监控CPU的心跳反馈消息 进行分析,得到心跳检测结果。所述被监控CPU包括相互连接的心跳请求消息接收模块和心跳反馈消息 发送模块;其中,所述心跳请求消息接收模块,用于接收来自所述采集CPU的携带心跳序列 号的心跳请求消息;所述心跳反馈消息发送模块,用于根据所述心跳请求消息,生成携带所述 心跳序列号的心跳反馈消息向所述采集CPU发送。本发明所提供的心跳检测方法、系统和中央处理单元,应用于SMP系统中, 通过指定SMP系统中的采集CPU和被监控CPU,由采集CPU对被监控CPU 的心跳消息进行釆集和分析,从而实现对SMP系统中CPU状态的检测,并且, 本发明在进行心跳检测的消息中设置心跳序列号,利用心跳序列号对消息的可 靠性进行判定,使得CPU在一个超时周期内可进行多个心跳检测,从而提高心 跳检测的精度和效率。


图1为本发明一种心跳检测方法的采集CPU侧流程图;图2为本发明一种心跳检测方法的被监控CPU侧流程图;图3为本发明实施例的釆集CPU侧的心跳检测方法流程图;图4为本发明实施例的被监控CPU轮询接收心跳请求消息的流程图;图5为本发明实施例的被监控CPU中断接收心跳请求消息的流程图;图6为本发明一种心跳检测系统的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。 本发明在SMP系统中实现心跳检测的方法,用于对SMP系统中的CPU状 态进行检测。心跳检测是指两个或多个独立的单元之间通过某种通信手段发送 约定的心跳消息,以监控各单元的生存状态的一种方法。本发明在SMP系统中 的多个CPU中指定某个CPU作为心跳请求消息的发送者,同时指定为发送者 的CPU还用于承担心跳反馈信息采集的任务,本发明中将作为心跳请求消息发 送者的CPU称为采集CPU; SMP系统中除了采集CPU之外的其他CPU称为 被监控CPU。采集CPU向SMP系统中的所有被监控CPU或部分被监控CPU 发送心跳请求消息,接收到心跳请求消息的被监控CPU向采集CPU发送心跳 反馈消息,以供采集CPU对心跳反馈消息进行分析,生成心跳检测结果。本发明的心跳检测方法由采集CPU实现的操作流程,如图l所示,主要包 括以下步骤步骤101,采集CPU向被监控CPU发送携带心跳序列号的心跳请求消息。 在本发明的SMP系统中,釆集CPU为每个被监控CPU维护一个心跳序列 号,如果采集CPU需要对SMP系统中的所有被监控CPU进行状态检测,则指 定SMP系统中的所有被监控CPU,并向指定的被监控CPU发送携带各自心跳 序列号的心跳请求消息;如果采集CPU需要对SMP系统中的一部分被监控CPU 进行状态检测,则指定所需监控部分的被监控CPU,并向指定的被监控CPU 发送携带各自心跳序列号的心跳请求消息。以包含四个CPU的SMP系统为例,四个CPU分别为CPU!、 CPU2、 CPU3、CPU4,其中,CPU!为采集CPU, CPU2、 CPU3、 CPU4为被监控CPU。 CPUi 维护一个数组LS,用以保存各个被监控CPU当前的心跳序列号,对应CPU2、 CPU3、 CPU4的心跳序列号分别为LS[l]、 LS[2]、 LS[3]。 CPU!每成功发送一条 心跳请求消息后,将对应的心跳序列号加1,例如CPU!第一次向CPU2发送 心跳请求消息时,携带的心跳序列号为021,发送成功后LS[1]中对应的心跳序 列号自动加l,则CPU!再次向CPU2发送心跳请求消息时,携带的心跳序列号 变为022, CP"向CPU2进行后续的心跳请求消息发送也按同样的方法更新心 跳序列号;CPU!第一次向CPU3发送心跳请求消息时,携带的心跳序列号为031 , 发送成功后LS[2]中对应的心跳序列号自动加1,则CPU!再次向CPU3发送心 跳请求消息时,携带的心跳序列号变为032, CPU!向CPU3进行后续的心跳请 求消息发送也按同样的方法更新心跳序列号。由此可知,由于心跳序列号中携 带的有用于区分不同CPU的前缀,例如LS[1]中对应序列号的前两位数字02, LS[2]中对应序列号的前两位数字03,因此,对于不同CPU的心跳序列号也是 不相同的。步骤102,采集CPU对来自被监控CPU的心跳反馈消息进行分析,得到 心跳检测结果。采集CPU向指定的被监控CPU发送心跳请求消息之后,等待被监控CPU 返回心跳反馈消息,当采集CPU接收到心跳反馈消息时,提取心跳反馈消息中 的心跳序列号,并将提取的心跳序列号与之前发送的心跳请求消息中携带的心 跳序列号进行匹配,如果匹配成功,则对心跳反馈消息进行分析,生成心跳检 测结果;否则,判定心跳反馈消息丟失。以上述的SMP系统为例,如果CPU,向CPU2发送了携带心跳序列号为0267 的心跳请求消息,CPUi对来自CPU2的心跳反馈消息进行提取心跳序列号的操 作,如果能够提取到0267的序列号,则表明CPU2成功返回心跳反馈消息;如 果没有提取到0267的序列号,则表明CPU2没能成功返回心跳反馈消息,判定 心跳反馈消息丢失。本发明的心跳检测方法由被监控CPU实现的操作流程,如图2所示,主要包括以下步骤步骤201,被监控CPU接收来自采集CPU的携带心跳序列号的心跳请求 消息。本发明中的被监控CPU可通过中断方式或轮询方式接收来自采集CPU的 心跳请求消息,所谓中断方式,是指被监控CPU中配置中断接收逻辑,当接收 到心跳请求消息时,立即进入中断环境对心跳请求消息进行处理;所谓轮询方 式,是指被监控CPU利用侦听进程侦听来自采集CPU的心跳请求消息,并将 侦听到的心跳请求消息放入消息待处理队列中,在任务层面上进行处理。由此 可知,中断方式适用于对反馈实时要求较高的环境,而轮询方式则可用于对反 馈实时要求较低的环境。步骤202,被监控CPU根据心跳请求消息,生成携带与心跳请求消息相同 心跳序列号的心跳反^t消息向釆集CPU发送。被监控CPU提取心跳请求消息中的心跳序列号,然后构造与所接收的心跳 请求消息相对应的心跳反馈消息向采集CPU发送,该心跳反馈消息中携带与心 跳请求消息相同的心跳序列号。仍以上述的SMP系统为例,CPU2接收到来自 CPU!的心跳请求消息,提取心跳序列号为0267,则CPU2构造携带心跳序列号 为0267的心跳反馈消息发送给釆集CPU。下面结合图3所示实施例的采集CPU侧的心跳;险测方法流程图,对上述图 1所示的心跳检测方法进一步详细阐述,如图3所示,主要包括以下步骤步骤301,采集CPU向指定的被监控CPU发送携带心跳序列号的心跳请 求消息。步骤302,采集CPU等待接收被监控CPU的心跳反馈消息。 步骤303,采集CPU判断等待是否超时,如果超时,则转到步骤305;否 则,转到步骤304。采集CPU在向指定的被监控CPU发出心跳请求消息之后的一个超时周期 的时间内,如果没有接收到对应的被监控CPU返回的心跳反馈消息,则判定等 待超时;如果接收到对应的被监控CPU返回的心跳反馈消息,则判定等待没有超时。例如CP"向CPU2先后发送了心跳序列号为0266和0267的心跳请求 消息,并先后启动了两个计时器进行计时,计时时间为一个预先设定的超时周 期的时间,如果对应心跳序列号为0266的心跳请求消息所启动的计时器时间到 时,CPU,仍然没有接收到CPU2返回的心跳序列号为0266的心跳反馈消息, 则判定对心跳序列号为0266的心跳反馈消息等待超时,并停止对应的计时器; 如果对应心跳序列号为0267的心跳请求消息所启动的计时器时间到之前,CPU! 接收到CPU2返回的心跳序列号为0267的心跳反馈消息,则判定对心跳序列号 为0267的心跳反馈消息等待没有超时,并在接收到心跳序列号为0267的心跳 反馈消息后停止对应的计时器。采集CPU查找自身所启动的计时器中是否有计时超时的计时器,如果有, 则转到步骤305;如果没有,则转到步骤304。步骤304,采集CPU判断心跳反馈消息中的心跳序列号是否匹配,如果匹 配,则转到步骤306;否则,转到步骤305。采集CPU从接收的心跳反馈消息中提取心跳序列号,并将提取的心跳序列 号与之前发送的心跳请求消息的心跳序列号进行匹配。步骤305,采集CPU判定心跳反馈消息丢失,进行异常处理,并结束该流程。如果有计时器超时,则表明有相应的心跳反馈消息没能在超时周期内成功 返回给采集CPU,例如采集CPU为心跳序列号为0266的心跳请求消息所启 动的定时器超时,则表明序列号为0266的心跳反馈消息没能在超时周期内成功 返回给采集CPU,从而判定序列号为0266的心跳反馈消息丟失。如果采集CPU所接收的心跳反馈消息的心跳序列号匹配失败,则表明该心 跳反馈消息不是采集CPU所需的消息,例如采集CPU接收到心跳序列号为 0266的心跳反馈消息,在之前发送的心跳请求消息中没能匹配到心跳序列号为 0266的心跳请求消息,则判定心跳序列号为0266的心跳反馈消息丢失。步骤306,釆集CPU判断是否需要对心跳反馈消息进行内容采集,如果是, 则转到步骤307;否则,结束该流程。ii采集CPU通过确定心跳反馈消息的内容采集标志位是否置位,从而判断是 否开放了对心跳反馈消息的内容采集功能,此处的内容采集功能是指对心跳反 馈消息进行进一步解析和分析。需要指出的是,内容采集标志位是在步骤301之前,由工作人员在采集CPU 上预先进行设置的。在需要采集CPU对来自被监控CPU的心跳反馈消息进行 内容采集时,工作人员将采集CPU的内容采集标志位置位;如果不需要采集 CPU进行心跳反馈消息的内容采集操作,则不需将采集CPU的内容采集标志 位置位。在采集CPU的内容采集标志位没有置位的情况下,即使采集CPU接 收到来自被监控CPU的心跳反馈消息,也不必对接收到的心跳反馈消息进行进 一步解析和分析。步骤307,采集CPU对心跳反馈消息的内容进行解析和进一步分析,得到 心跳检测结果。根据实际检测需要,采集CPU对心跳反馈消息的内容进行相应的分析,从 而得到所需的心跳检测结果。例如采集CPU记录心跳反馈消息到达时间与心 跳请求消息发送时间之间的时间差,从而分析得到链路传输状态的检测结果。在本发明的实施例中,被监控CPU接收心跳请求消息的方式包括中断方式 和轮询方式两种,并且^皮监控CPU支持在中断方式和l仑询方式之间进行切换, 下面结合图4所示的实施例对轮询方式接收心跳请求消息的流程进行详细描 述,如图4所示,主要包括以下步骤步骤401,被监控CPU判断是否有切换接收消息方式的需求,如果有,则 转到步骤402;否则,转到步骤406。被监控CPU判断用于标识接收消息方式切换需求的标志位是否置位,如果 置位,则表明被监控CPU有切换接收消息方式的需求;否则,表明被监控CPU 没有切换接收消息方式的需求。需要指出的是,用于标识接收消息切换需求的标志位是在步骤401之前, 由工作人员在被监控CPU上预先进行设置的。在有切换接收消息方式的需求 时,工作人员将监控CPU的用于标识接收消息切换需求的标志位置位;否则,不用置位。步骤402,被监控CPU进行接收消息方式的切换。步骤403,被监控CPU确定切换后的接收消息方式是否为轮询方式,如果 是,则转到步骤405;否则,转到步骤404。步骤404,被监控CPU确定切换后的接收消息方式不是轮询方式,则表明 是中断方式,被监控CPU挂起侦听进程,进入中断方式的心跳请求消息接收流 程。对于中断方式的心跳请求消息接收流程,在后续实施例中将进行详细描述。步骤405,被监控CPU确定切换后的接收消息方式是轮询方式,恢复被挂 起的侦听进程。步骤406,被监控CPU通过侦听进程侦听来自采集CPU的心跳请求消息。步骤407,被监控CPU判断是否侦听到心跳请求消息,如果是,则转到步 骤408;否则结束该流程。步骤408,被监控CPU将侦听到的心跳请求消息挂在消息待处理队列中, 等待任务层对心跳请求消息进行处理。下面结合图5所示的实施例对中断方式接收心跳请求消息的流程进行详细 描述,如图5所示,主要包括以下步骤步骤501,被监控CPU判断是否接收到消息,如果是,则转到步骤502; 否则结束该流程。步骤502,被监控CPU判断所接收消息是否为心跳请求消息,如果是,则 转到步骤503;否则,转到步骤504。被监控CPU通过判断所接收消息中是否携带有心跳序列号,如果有,则表 明所接收消息是心跳请求消息;否则,表明所接收消息不是心跳请求消息。步骤503,被监控CPU从心跳请求消息中提取心跳序列号,并构造携带该 心跳序列号的心跳反馈消息返回给采集CPU,然后结束该流程。步骤504,将接收的消息丢弃,并结束该流程。为实现上述本发明的心跳检测方法,本发明还提供了 一种心跳检测系统, 如图6所示,该系统包括相互连接的采集CPU100和被监控CPU200。其中,采集CPUIOO,用于向被监控CPU200发送携带心跳序列号的心跳请求消息, 并对来自被监控CPU200的心跳反馈消息进行分析,得到心跳检测结果。被监 控CPU200,用于根据来自釆集CPUIOO的携带心跳序列号的心跳请求消息, 生成携带与心跳请求消息相同心跳序列号的心跳反馈消息向采集CPUIOO发 送。心跳检测系统中CPU200可以同时有多个。其中,采集CPUIOO包括相互连接的心跳请求消息发送模块IIO和心跳 反馈消息分析模块120。心跳请求消息发送模块110,用于向被监控CPU200发 送携带心跳序列号的心跳请求消息。心跳反馈消息分析模块120,用于对来自 被监控CPU200的心跳反馈消息进行分析,得到心跳检测结果。被监控CPU200包括相互连接的心跳请求消息接收模块210和心跳反馈 消息发送模块220。心跳请求消息接收模块210,用于接收来自釆集CPUIOO的 携带心跳序列号的心跳请求消息。心跳反馈消息发送模块220,用于根据心跳 请求消息,生成携带与心跳请求信息相同心跳序列号的心跳反馈消息向采集 CPU100发送。其中,心跳请求消息接收模块210还包括中断接收子模块211 和轮询接收子模块212。中断接收子模块211,用于通过中断方式接收心跳请求 消息,当接收到心跳请求消息时,立即进入中断环境对心跳请求消息进行处理。 轮询接收子模块212,用于通过轮询方式接收心跳请求信息,利用侦听进程侦 听来自采集CPU100的心跳请求消息,并将侦听到的心跳请求消息放入消息待 处理队列中进行处理。综上所述,本发明所提供的心跳检测方法、系统和CPU,应用于SMP系 统中的CPU状态检测,并且本发明的CPU在一个超时周期内可连续发送多个 心跳检测的消息,使得一个超时周期内可进行多个心跳检测,相比现有技术中 一个超时周期内只能进行一个心跳检测的方法,本发明的心跳检测精度和效率 较高。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种心跳检测方法,其特征在于,包括向被监控中央处理单元CPU发送携带心跳序列号的心跳请求消息;对来自所述被监控CPU的心跳反馈消息进行分析,得到心跳检测结果。
2、 根据权利要求1所述心跳检测方法,其特征在于,所述对心跳反馈消息 进行分析得到心跳检测结果为提取所述心跳反馈消息中的心跳序列号,并将所述心跳序列号与所述心跳 请求消息的序列号进行匹配,如果匹配成功,则对所述心跳反馈消息进行分析 生成心跳检测结果;否则,判定所述心跳反馈消息丢失。
3、 一种心跳;险测方法,其特征在于,包括接收来自采集CPU的携带心跳序列号的心跳请求消息; 根据所述心跳请求消息,生成携带所述心跳序列号的心跳反馈消息向所述 采集CPU发送。
4、 根据权利要求3所述心跳检测方法,其特征在于,所述接收心跳请求消 息为通过中断方式接收所述心跳请求消息;接收到来自所述采集CPU的心跳请求消息后,进一步包括进入中断环境 对所述心跳请求消息进行处理。
5、 根据权利要求3所述心跳检测方法,其特征在于,所述接收心跳请求消 息为通过轮询方式接收所述心跳请求消息;所述接收心跳请求消息包括利用侦听进程侦听来自所述采集CPU的心跳 请求消息,并将侦听到的所述心跳请求消息放入消息待处理队列中进行处理。
6、 一种采集CPU,其特征在于,包括相互连接的心跳请求消息发送模 块和心跳反馈消息分析才莫块;其中,所述心跳请求消息发送模块,用于向被监控CPU发送携带心跳序列号的心 跳请求消息;所述心跳反馈消息分析模块,用于对来自所述被监控CPU的心跳反馈消息进行分析,得到心跳检测结果。
7、 一种被监控CPU,其特征在于,包括相互连接的心跳请求消息接收 模块和心跳反馈消息发送模块;其中,所述心跳请求消息接收模块,用于接收来自采集CPU的携带心跳序列号的 心跳请求消息;所述心跳反馈消息发送模块,用于根据所述心跳请求消息,生成携带所述 心跳序列号的心跳反馈消息向所述釆集CPU发送。
8、 根据权利要求7所述被监控CPU,其特征在于,所述心跳请求消息接 收模块包括中断接收子模块,用于通过中断方式接收所述心跳请求消息。
9、 根据权利要求7或8所述被监控CPU,其特征在于,所述心跳请求消息接收模块还包括轮询接收子模块,用于通过轮询方式接收所述心跳请求消 白,
10、 一种心跳反馈系统,其特征在于,包括相互连接的采集CPU和被监 控CPU;其中,所述采集CPU,用于向所述被监控CPU发送携带心跳序列号的心跳请求 消息,并对来自所述被监控CPU的心跳反馈消息进行分析,得到心跳检测结果;所述被监控CPU,用于根据来自所述采集CPU的携带心跳序列号的心跳 请求消息,生成携带所述心跳序列号的心跳反馈消息向所述采集CPU发送。
11、 根据权利要求10所述心跳反馈系统,其特征在于,所述采集CPU包 括相互连接的心跳请求消息发送模块和心跳反馈消息分析模块;其中,所述心跳请求消息发送模块,用于向所述被监控CPU发送携带心跳序列号 的心跳请求消息;所述心跳反馈消息分析模块,用于对来自所述被监控CPU的心跳反馈消息 进行分析,得到心跳检测结果。
12、 根据权利要求10所述心跳反馈系统,其特征在于,所述被监控CPU 包括相互连接的心跳请求消息接收模块和心跳反馈消息发送模块;其中,所述心跳请求消息接收模块,用于接收来自所述采集CPU的携带心跳序列号的心跳请求消息;所述心跳反馈消息发送模块,用于根据所述心跳请求消息,生成携带所述心跳序列号的心跳反馈消息向所述采集CPU发送。
全文摘要
本发明公开了一种心跳检测方法,包括向被监控中央处理单元(CPU)发送携带心跳序列号的心跳请求消息;对来自被监控CPU的心跳反馈消息进行分析,得到心跳检测结果。本发明还提供了一种心跳检测系统和CPU,应用于对称多处理(SMP)系统中,实现对SMP系统中的CPU状态检测,并且本发明在进行心跳检测的消息中设置心跳序列号,利用心跳序列号对消息的可靠性进行判定,本发明的CPU在一个超时周期内可进行多个心跳检测,心跳检测的精度和效率较高。
文档编号G06F19/00GK101234018SQ20081000835
公开日2008年8月6日 申请日期2008年2月26日 优先权日2008年2月26日
发明者凡 杨 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1