一种处理器及检测处理器错误的方法与流程

文档序号:37295784发布日期:2024-03-13 20:44阅读:12来源:国知局
一种处理器及检测处理器错误的方法与流程

本技术实施例涉及计算机,尤其涉及一种处理器及检测处理器错误的方法。


背景技术:

1、处理器是各类计算设备的主要部件之一,处理器可用于执行指令。处理器在执行指令过程中可能出错。

2、目前,一种检测处理器执行指令错误的方式为:利用巡检工具测试处理器是否存在指令执行错误的情况。在该方式下,巡检工具可向处理器发送程序指令,处理器译码并执行程序指令,并向巡检工具反馈该程序指令的执行结果。巡检工具对比该执行结果与预存的该程序指令的预期结果,如果该执行结果和该程序指令的预期结果不匹配,则确定该处理器存在指令执行错误的问题。但这种方式中,需要处理器从巡检工具接收程序指令,并译码程序指令,还需向巡检工具反馈该程序指令的执行结果等,由此可见,处理器的处理量较大。


技术实现思路

1、本技术实施例提供一种处理器及检测处理器错误的方法,用于减少检测处理器错误过程中的处理量。

2、第一方面,本技术实施例提供一种处理器,包括错误检测模块和指令执行模块,其中:所述错误检测模块,用于向所述指令执行模块发送内部检测指令;所述指令执行模块,用于执行所述内部检测指令,获得第一执行结果,并向所述错误检测模块发送所述第一执行结果;所述错误检测模块,用于根据所述第一执行结果与所述内部检测指令对应的预期结果,确定所述处理器是否存在错误。

3、在本技术实施例中,指令执行模块可直接执行来自错误检测模块的内部检测指令,获得第一执行结果,错误检测模块对比第一执行结果与内部检测指令对应的预期结果,从而确定处理器是否存在错误。如此一来,相当于处理器执行处理器内的指令,进而确定处理器是否存在错误,无需处理器译码指令以及向外部的巡检工具发送第一执行结果等,有利于减少处理器的处理量,也有利于节省处理器的计算资源开销。并且,无需借助外部的巡检工具,有利于降低检测处理器错误的成本。另外,处理器检测处理器的错误时,执行处理器内的指令,而处理器内可容纳各种类型的指令,因此有利于提高该方法适用的指令的类型。

4、在一种可能的实施方式中,所述指令执行模块还用于:从外部存储模块中,读取外部程序指令,对所述外部程序指令进行译码,获得译码后的结果,执行所述译码后的结果,获得第二执行结果,以及将所述第二执行结果写入所述外部存储模块。

5、在上述实施方式中,处理器中的指令执行模块除了执行处理器的内部检测指令之外,还可以执行外部存储模块中的外部程序指令,换言之,处理器在执行内部检测指令的同时,还不会影响外部程序指令的执行。

6、在一种可能的实施方式中,所述错误检测模块还用于:在向所述指令执行模块发送内部检测指令之前,确定所述处理器的缓冲队列中的剩余空间大于或等于阈值,所述缓冲队列用于缓存所述处理器待处理的指令。

7、在上述实施方式中,错误检测模块可以在处理器的负载相对小的情况下,向指令执行模块发送内部检测指令,使得指令执行模块可以在负载相对小的情况下执行外部程序指令。如此,可减小执行内部检测指令的执行过程影响外部程序指令的执行过程,有利于合理分配处理器的计算资源。

8、在一种可能的实施方式中,所述错误检测模块,还用于为所述内部检测指令添加标记,所述标记表示用于检测所述处理器错误的指令;所述指令执行模块,还用于在所述第一执行结果中添加所述标记;所述错误检测模块,还用于根据所述第一执行结果中的所述标记,识别所述内部检测指令对应的所述第一执行结果。

9、在上述实施方式中,错误检测模块可为内部检测指令添加标记,从而便于后续指令错误检测模块区分用于检测处理器错误的指令所对应的第一执行结果。

10、在一种可能的实施方式中,所述处理器还包括寄存器,所述寄存器存储有所述内部检测指令对应的预期结果;所述错误检测模块,还用于从所述寄存器中,读取所述内部检测指令对应的预期结果。

11、在上述实施方式中,用户可手动或处理器将内部检测指令对应的预期结果配置在寄存器中,使得错误检测模块可以快速地获取内部检测指令对应的预期结果,也便于后续快速检测处理器是否存在错误。

12、在一种可能的实施方式中,所述错误检测模块,还用于从所述处理器已执行过的指令中,获得所述内部检测指令;或,所述处理器还包括存储有所述内部检测指令的第一存储模块,所述第一存储模块允许被所述处理器读取,所述错误检测模块,还用于从所述第一存储模块中读取所述内部检测指令;或,所述处理器还包括存储有所述内部检测指令的第二存储模块,所述第二存储模块允许被所述处理器读取和写入,所述错误检测模块,还用于从所述第二存储模块中读取所述内部检测指令。

13、在上述实施方式中,提供了错误检测模块获得内部检测指令的三种方式,丰富了错误检测模块获取用于检测处理器错误的指令的方式。第一种方式中,错误检测模块可从处理器已执行过的指令中采样获得内部检测指令,在第一种方式中,获取内部检测指令的方式简单直接。第二种方式中,错误检测模块可从第一存储模块中读取内部检测指令,第一存储模块中的指令可以是手动配置的。第三种方式中,错误检测模块可从第二存储模块中读取内部检测指令,与第二种方式不同的是,第三种方式涉及的第二存储模块可以支持处理器写入,这样有利于处理器或者外部设备通过处理器增加第二存储模块中的指令。

14、在一种可能的实施方式中,所述处理器还包括至少一个处理器核,所述至少一个处理器核中的一个处理器核对应所述指令执行模块;所述错误检测模块具体用于:根据所述第一执行结果与所述内部检测指令对应的预期结果,确定所述处理器是否存在错误。

15、上述实施方式可适用于处理器包括一个或多个处理器核时,如果处理器包括多个处理器核,则根据指令执行模块确定具体是哪一个处理器核存在错误,如此,可精确定位处理器存在错误的处理器核。并且,该实施方式中,一个错误检测模块可用于对多个处理器核进行错误检测,有利于降低检测处理器错误的成本。

16、在一种可能的实施方式中,所述错误检测模块还用于:确定管理模块中的检测开关处于开启状态,所述检测开关用于表示是否对所述处理器的错误进行检测,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种。

17、在上述实施方式中,管理模块和处理器均可设置在计算设备中,在管理模块中可配置有检测开关,错误检测模块在确定管理模块中的检测开关处于开启状态的情况下,执行检测处理器错误的过程,提供了一种灵活开启检测处理器错误的方法。

18、在一种可能的实施方式中,所述处理器还包括控制模块;所述错误检测模块,还用于在确定所述处理器存在错误时,向管理模块提供告警信息,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种,所述告警信息用于指示所述处理器存在错误;和/或,所述控制模块,用于在确定所述处理器存在错误时,控制关闭所述处理器。

19、在上述实施方式中,在错误检测模块确定处理器存在错误的情况下,错误检测模块可以向管理模块提供告警信息,以便于管理模块呈现该告警信息,以便于用户可及时得知处理器存在错误。另外,处理器中的控制模块还可以控制关闭处理器,避免处理器持续错误地执行指令。

20、第二方面,本技术实施例提供一种检测处理器错误的方法,该方法可以由处理器执行,或者由包括处理器的计算设备执行。为了便于描述,下文以处理器执行该方法为例进行介绍。处理器执行内部检测指令,获得第一执行结果;所述处理器根据所述第一执行结果与所述内部检测指令对应的预期结果,确定所述处理器是否存在错误。

21、在一种可能的实施方式中,所述方法还包括:从外部存储模块中,读取外部程序指令,对所述外部程序指令进行译码,获得译码后的结果,执行所述译码后的结果,获得第二执行结果,以及将所述第二执行结果写入所述外部存储模块。

22、在一种可能的实施方式中,所述方法还包括:所述处理器确定缓冲队列中的剩余空间大于或等于阈值,所述缓冲队列用于缓存所述处理器待处理的指令。

23、在一种可能的实施方式中,所述方法还包括:所述处理器为所述内部检测指令添加标记,所述标记表示用于检测所述处理器错误的指令;所述处理器在所述第一执行结果中添加所述标记;所述处理器根据所述第一执行结果中的所述标记,识别所述内部检测指令对应的所述第一执行结果。

24、在一种可能的实施方式中,所述方法还包括:所述处理器包括寄存器,所述寄存器存储有所述内部检测指令对应的预期结果;所述方法还包括:所述处理器从所述寄存器中,读取所述内部检测指令对应的预期结果。

25、在一种可能的实施方式中,所述方法还包括:所述处理器从所述处理器已执行过的指令中,获得所述内部检测指令;或,所述处理器还包括存储有所述内部检测指令的第一存储模块,所述第一存储模块允许被所述处理器读取,所述处理器从所述第一存储模块中读取所述内部检测指令;或,所述处理器还包括存储有所述内部检测指令的第二存储模块,所述第二存储模块允许被所述处理器读取和写入,所述处理器从所述第二存储模块中读取所述内部检测指令。

26、在一种可能的实施方式中,所述处理器包括至少一个处理器核;所述处理器根据所述第一执行结果与所述内部检测指令对应的预期结果,确定所述处理器是否存在错误,包括:所述处理器根据所述第一执行结果与所述内部检测指令对应的预期结果,确定用于获得所述第一执行结果的处理器核是否存在错误。

27、在一种可能的实施方式中,所述方法还包括:所述处理器确定管理模块中的检测开关处于开启状态,所述检测开关用于表示是否对所述处理器的错误进行检测,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种。

28、在一种可能的实施方式中,所述方法还包括:所述处理器在确定所述处理器存在错误时,向管理模块提供告警信息,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种,所述告警信息用于指示所述处理器存在错误;和/或,在确定所述处理器存在错误时,所述处理器关闭所述处理器。

29、第三方面,本技术实施例提供一种检测处理器错误的方法,该方法可以由处理器执行,或者由包括处理器的计算设备执行。为了便于描述,下文以处理器执行该方法为例进行介绍。处理器包括:指令执行模块和错误检测模块。所述方法包括:所述错误检测模块向所述指令执行模块发送内部检测指令;所述指令执行模块执行所述内部检测指令,获得第一执行结果,并向所述错误检测模块发送所述第一执行结果;所述错误检测模块根据所述第一执行结果与所述内部检测指令对应的预期结果,确定所述处理器是否存在错误。

30、在一种可能的实施方式中,在向所述指令执行模块发送内部检测指令之前,所述方法还包括:

31、所述错误检测模块确定所述处理器的缓冲队列中的剩余空间大于或等于阈值,所述缓冲队列用于缓存所述处理器待处理的指令。

32、在一种可能的实施方式中,所述方法还包括:所述错误检测模块为所述内部检测指令添加标记,所述标记表示用于检测所述处理器错误的指令;所述错误检测模块根据所述标记,识别所述内部检测指令对应的所述第一执行结果。

33、在一种可能的实施方式中,所述处理器还包括寄存器,所述寄存器存储有所述内部检测指令对应的预期结果;所述方法还包括:所述错误检测模块从所述寄存器中,读取所述内部检测指令对应的预期结果。

34、在一种可能的实施方式中,所述方法还包括:所述错误检测模块从所述处理器已执行过的指令中,获得所述内部检测指令;或,所述错误检测模块从所述处理器中的第一存储模块中,读取所述内部检测指令,所述第一存储模块允许被所述处理器读取;或,所述错误检测模块从所述处理器中的第二存储模块中,读取所述内部检测指令,所述第二存储模块允许被所述处理器读取和写入。

35、在一种可能的实施方式中,所述处理器包括至少一个处理器核,所述至少一个处理器核中的一个处理器核对应所述指令执行模块;根据所述第一执行结果与所述内部检测指令对应的预期结果,所述错误检测模块确定所述处理器核是否存在错误,包括:根据所述第一执行结果与所述内部检测指令对应的预期结果,所述错误检测模块确定与所述指令执行模块对应的处理器核是否存在错误。

36、在一种可能的实施方式中,所述方法还包括:所述错误检测模块确定管理模块中的检测开关处于开启状态,所述检测开关用于表示是否对所述处理器的错误进行检测,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种。

37、在一种可能的实施方式中,所述错误检测模块在确定所述处理器存在错误时,向管理模块提供告警信息,所述管理模块包括基板管理控制器、所述处理器对应的固件系统或操作系统中的一种或多种,所述告警信息用于指示所述处理器存在错误;和/或,在确定所述处理器存在错误时,所述处理器中的控制模块控制关闭所述处理器。

38、第四方面,本技术实施例提供一种计算设备,计算设备可以包括第一方面中任一的处理器。

39、第五方面,本技术实施例提供一种计算设备,计算设备包括处理器和供电电路,所述供电电路用于为所述处理器供电,所述处理器用于实现第二方面或第三方面中任一的方法。

40、第六方面,本技术实施例提供一种计算设备集群,包括至少一个计算设备,每个计算设备可执行如上述第二方面或上述第三方面中任一方面中任一的方法。

41、可选的,该计算设备集群中的每个计算设备可以为上述第四方面或上述第五方面中任一的计算设备。

42、第七方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,实现上述第二方面或第三方面任一的方法。

43、第八方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序或指令,当其被运行时,实现上述第二方面或上述第三方面中任一的方法。

44、关于上述第二方面至上述第八方面的有益效果,可参照上述第一方面论述的有益效果,此处不再重复列举。

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