CN113886148A - 一种cpu的诊断系统、方法、装置以及介质 - Google Patents
一种cpu的诊断系统、方法、装置以及介质 Download PDFInfo
- Publication number
- CN113886148A CN113886148A CN202111264412.2A CN202111264412A CN113886148A CN 113886148 A CN113886148 A CN 113886148A CN 202111264412 A CN202111264412 A CN 202111264412A CN 113886148 A CN113886148 A CN 113886148A
- Authority
- CN
- China
- Prior art keywords
- cpu
- cpus
- operation data
- data
- memory
- 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.)
- Granted
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 106
- 238000012360 testing method Methods 0.000 claims description 40
- 238000002405 diagnostic procedure Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000005856 abnormality Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 101000879673 Streptomyces coelicolor Subtilisin inhibitor-like protein 3 Proteins 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请公开了一种CPU的诊断系统、方法、装置以及介质,应用于电子领域,该系统包括多个CPU,CPU之间通过接口互相连接以便于传输运算数据,每个CPU各自连接一个存储器用于储存自身的运算数据和其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到;CPU可以获取运算数据,还可以判断不同CPU的运算数据是否一致,若是,则判定CPU能正常工作;若否,则判定CPU不能正常工作。本申请提供的CPU的诊断系统将多个CPU的运算结果都储存到存储器中进行比较,不需要多个CPU的运算同步,实施技术较为简单,降低了CPU的诊断难度;同时本申请的CPU的诊断系统不需要额外增加硬件比较器,降低了成本。
Description
技术领域
本申请涉及电子领域,特别是涉及一种CPU的诊断系统、方法、装置以及介质。
背景技术
在安全仪表系统(Safety instrumentation System,SIS)中,为了满足IEC61508-2或者GB/T 20438.2功能安全标准的安全完整性等级3(SIL3)的要求,系统通常采用冗余架构设计,在1oo2D架构的SIS中,硬件的故障裕度为1,根据安全标准对于系统的要求,系统的诊断覆盖率需要达到90%以上。
目前,常规的SIS诊断CPU一般采用硬件比较器的方法,图1为硬件比较器的系统架构示意图;如图1所示,硬件比较器的诊断方法是通过2个完全同步的CPU10进行相同的运算,2个CPU10有各自对应的存储器11,同时有一个硬件比较器12分别连接2个存储器11,硬件比较器12对2个存储器11中2个CPU10的运算数据进行实时比较,若判断出两个CPU10得到的结果不同,则产生异常报警,系统进入安全状态。但是,采用硬件比较器对运算数据进行比较时,需要2个CPU运算同步进行,实施的技术难度高;而且需要另外增加一个硬件比较器,成本较高。
由此可见,如何降低诊断CPU技术的难度,以及降低诊断成本是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种CPU的诊断系统、方法、装置以及介质,以降低诊断CPU技术的难度,以及降低诊断成本。
为解决上述技术问题,本申请提供一种CPU的诊断系统,包括:多个CPU和多个存储器,所述CPU通过接口互相连接以便于所述CPU之间传输运算数据;
每个所述CPU各自连接一个所述存储器,所述存储器用于储存自身连接的所述CPU的所述运算数据和其余所述CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
所述CPU用于获取所述运算数据,并判断不同所述CPU的所述运算数据是否一致,若是,则判定所述CPU能正常工作;若否,则判定所述CPU不能正常工作。
为解决上述技术问题,本申请还提供一种CPU的诊断方法,应用于上述CPU的诊断系统,所述方法包括:
获取自身的运算数据;
通过接口接收其余CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中;
判断所述存储器中不同所述CPU的所述运算数据是否一致;
若是,则判定所述CPU能正常工作;
若否,则判定所述CPU不能正常工作。
优选地,所述通过接口接收其余CPU的所述运算数据包括:
通过所述接口接收其余所述CPU取反后得到的所述运算数据。
优选地,所述存储器包括多个存储区域,所述CPU中不同的所述运算任务对应不同的所述存储区域,所述将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中包括:
将执行不同的所述运算任务时自身的所述运算数据以及其余所述CPU的所述运算数据储存到对应的所述存储区域中。
优选地,还包括:
在所述存储器中存入多个测试数据,其中多个所述测试数据的指定bit位不一致;
比较所述存储器中的多个所述测试数据并得到比较结果;
若所述比较结果表征多个所述测试数据指定的bit位不一致,则判定所述CPU的诊断功能正常;
若所述比较结果表征多个所述测试数据一致或者多个所述测试数据的其他bit位不一致,则判定所述CPU的诊断功能异常。
优选地,所述CPU有多个所述运算任务,所述运算任务具有不同的优先级,所述判断所述存储器中不同所述CPU的所述运算数据是否一致包括:
当有比当前所述运算任务优先级更高的所述运算任务时,保存当前所述运算任务的比较状态;
判断所述存储器中不同所述CPU的待比较运算数据是否一致,其中所述待比较运算数据为执行优先级更高的所述运算任务得到的。
优选地,所述判断所述存储器中不同所述CPU的所述运算数据是否一致包括:
采用异或比较的方式比较所述存储器中自身对应的所述CPU的所述运算数据和其余所述CPU取反后的所述运算数据并判断原运算数据是否一致。
为解决上述技术问题,本申请还提供一种CPU的诊断装置,包括:
获取模块,用于获取自身的运算数据;
接收模块,用于通过接口接收其余CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
控制模块,用于将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中;
判断模块,用于判断所述存储器中不同所述CPU的所述运算数据是否一致;
若是,则判定所述CPU能正常工作;
若否,则判定所述CPU不能正常工作。
为解决上述技术问题,本申请还提供一种CPU的诊断装置,包括:存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述CPU的诊断方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述CPU的诊断方法的步骤。
本申请所提供的CPU的诊断系统包括多个CPU,CPU之间通过接口互相连接以便于传输运算数据,每个CPU各自连接一个存储器用于储存自身的运算数据和其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到;CPU可以获取运算数据,还可以判断不同CPU的运算数据是否一致,若是,则判定CPU能正常工作;若否,则判定CPU不能正常工作。本申请提供的CPU的诊断系统将多个CPU的运算结果都储存到存储器中进行比较,不需要多个CPU的运算同步,实施技术较为简单,降低了CPU的诊断难度;同时本申请的CPU的诊断系统不需要额外增加硬件比较器,降低了成本。
本申请还提供了一种CPU的诊断方法、装置以及介质,与上述CPU的诊断系统对应,故具有与上述CPU的诊断系统相同的有益效果。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为硬件比较器的系统架构示意图;
图2为本申请实施例提供的一种CPU的诊断系统的结构示意图;
图3为本申请实施例提供的一种CPU的诊断方法的流程图;
图4为本申请实施例提供的CPU与存储器的连接结构示意图;
图5为本申请实施例提供的CPU的诊断装置的结构图;
图6为本申请另一实施例提供的CPU的诊断装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种CPU的诊断系统、方法、装置以及介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
在SIS中,为了满足IEC61508-2或者GB/T 20438.2功能安全标准的SIL3的要求,系统通常采用冗余架构设计,比如在1oo2D架构的SIS中,硬件的故障裕度为1,根据安全标准对于系统的要求,系统的诊断覆盖率需要达到90%以上。本实施例提供了一种CPU的诊断系统,系统包括多个CPU和多个存储器,每个CPU各自连接一个存储器,存储器有多个存储区域,用于储存自身连接的CPU的运算数据和其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到,需要注意的是,这里对存储器的种类不作限制,可以是DDR存储器。CPU通过接口互相连接以便于CPU之间传输运算数据,其中用于连接的接口可以是PCIE接口。CPU用于获取运算数据,并判断不同CPU的运算数据是否一致,若是,则判定CPU能正常工作;若否,则判定CPU不能正常工作。对运算数据进行比较时实际上是对存储器中储存在不同区域的运算数据进行比较,因为CPU的诊断系统中有多个存储器,这里并不限制进行诊断时比较的是哪个存储器的运算数据,可以比较所有存储器中的运算数据,也可以只比较部分存储器中的运算数据。
CPU的诊断系统目的是对CPU进行诊断,判断CPU是否能够正确的完成运算工作;这里不对本实施例提供的CPU诊断系统中的CPU数量作限制,可以采用多个CPU,但通常只需要两个CPU进行诊断即可。以两个CPU为例,图2为本申请实施例提供的一种CPU的诊断系统的结构示意图,如图2所示,CPU诊断系统中有两个CPU10,CPU10可以是双核心或者多核心,其中有运算核心和比较核心,运算核心用于执行运算任务以得到运算数据,比较核心可以比较不同CPU10的运算数据。CPU的诊断系统中相对应的有两个存储器11,每个CPU10各自对应连接一个存储器11以便于向对应的存储器11中存入运算数据;两个CPU10之间通过接口13连接,两个CPU10可以通过接口13交换运算数据。如果其中一个CPU10需要向另外一个CPU10对应的存储器11存入运算数据,则需要先通过接口13将运算数据传输至存储器11对应的CPU10,这个CPU10再向存储器11中存入数据。值得一提的是,CPU10之间传输的数据可以是原运算数据,也可以取反后的运算数据。具体的诊断过程为:两个CPU10的运算核心执行同样的运算任务得到两个运算数据,两个CPU10通过接口13均接收到另一个CPU10的运算数据,并将自身的运算数据和另一个CPU10的运算数据都存入自身对应的存储器11中,自身的运算数据和另一个CPU10的运算数据存入存储器11中两个指定位置。在运算数据传输并且准备完成后,运算核心通过核间通讯,通知比较核心对应运算任务的运算数据已经完成准备,可以进行运算数据的比较。CPU10的比较核心比较这两个指定位置的数据得到比较结果,根据比较结果可以判断两个CPU10的运算数据是否一致,如果两个CPU10都能正常工作,则得到的两个运算数据应该是一致的;对应的,当CPU10的比较核心比较出两个运算数据不一致时,可以认为两个CPU10中至少有一个不能正常工作,则通过核间通讯通知系统运算核心,对应的运算任务的运算数据不一致,运算任务相关的操作进入安全状态。两个CPU还可以通过1Gbps以太网与协处理器14互联,实现与外界的数据交换,协处理器14还可以完成系统对外的通讯功能。
图2中只对两个CPU的情况进行了阐述,在实际应用中,CPU的诊断系统可能包括两个以上CPU,对应的每个CPU连接一个存储器,CPU可以是双核心或者多核心,其中一个核心作为CPU的运算核心用于执行运算任务,每个运算任务都有各自的运行周期和运行数据;还有一个核心作为比较核心用于比较存储器中的数据。多个CPU的运算核心执行同样的运算任务并得到多个运算数据。对于其中一个CPU来说,它通过接口接收其他CPU的运算数据,并将自身的运算数据和其他CPU的运算数据都存入自身的存储器中,在运算数据传输并且准备完成后,运算核心通过核间通讯,通知比较核心对应运算任务的运算数据已经完成准备,可以进行运算数据的比较,然后比较核心比较存储器中的运算数据。若比较结果正确,则等待下个运算任务或下个比较周期,若比较结果错误,表征多个CPU中至少有一个不能正常工作,则通过核间通讯通知系统运算核心,对应的运算任务的运算数据不一致,运算任务相关的操作进入安全状态。多个CPU还可以通过1Gbps以太网与协处理器互联,实现与外界的数据交换,协处理器还可以完成系统对外的通讯功能。
本申请实施例所提供的CPU的诊断系统包括多个CPU,CPU之间通过接口互相连接以便于传输运算数据,每个CPU各自连接一个存储器用于储存自身的运算数据和其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到;CPU可以获取运算数据,还可以判断不同CPU的运算数据是否一致,若是,则判定CPU能正常工作;若否,则判定CPU不能正常工作。本申请提供的CPU的诊断系统将多个CPU的运算结果都储存到存储器中进行比较,不需要多个CPU的运算同步,实施技术较为简单,降低了CPU的诊断难度;同时本申请的CPU的诊断系统不需要额外增加硬件比较器,降低了成本。
本实施例还提供一种CPU的诊断方法,应用于上述CPU的诊断系统,图3为本申请实施例提供的一种CPU的诊断方法的流程图,如图3所示,上述方法包括:
S10:获取自身的运算数据;
S11:通过接口接收其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到;
S12:将自身的运算数据以及其余CPU的运算数据储存到存储器中;
S13:判断存储器中不同CPU的运算数据是否一致;
若是,则判定CPU能正常工作;
若否,则判定CPU不能正常工作。
本实施例提供的CPU的诊断方法方法与上述CPU的诊断系统对应,故具有与上述方法相同的有益效果,这里不再赘述。
根据安全标准对于系统的要求,系统的诊断覆盖率需要达到90%以上,为了增加系统的诊断覆盖率,通过接口接收其余CPU的运算数据具体为通过接口接收其余CPU取反后得到的运算数据。
又因为未取反的运算数据和取反后的运算数据之间不能直接比较是否一致,可以将取反后的运算数据再进行一次取反操作之后再进行比较,但是需要花费较多时间。故判断存储器中不同CPU的运算数据是否一致具体为采用异或比较的方式比较存储器中自身对应的CPU的运算数据和其余CPU取反后的运算数据并判断原运算数据是否一致。
本实施例提供的CPU的诊断系统中,运算数据是以0和1的形式存在的,每个CPU的运算核心执行系统的运算任务,每个运算任务都有各自的运算周期和运算数据,在每个运算任务完成后,将每个CPU各自的运算数据按位取反,即将运算数据中所有的0变为1,1变为0,并将取反后的运算数据镜像至自身的存储器中的一片存储区域上,每一个0或1都占一个bit位。在运算数据完成镜像后,配置好CPU的接口,将镜像后的运算数据传输至其他CPU,这里以CPU的诊断系统中包含两个CPU为例,其中一个CPU将镜像后的运算数据传输至对方CPU,对方CPU通过接口接收到取反后的运算数据。此时两个CPU内都有自身的运算数据和对方CPU的运算数据,将这些数据都存到自身对应的存储器中,在运算数据交换并且准备完成后,运算核心通过核间通讯,通知比较核心对应运算任务的运算数据已经完成准备,可以进行运算数据的比较,此时比较核心将自身CPU的运算数据与对方CPU取反后的运算数据进行异或比较。若CPU的诊断系统中有多个CPU,则可以将所有执行了同样运算任务的CPU的运算数据都进行比较。
本实施例提供的CPU的诊断系统中CPU将得到的运算数据取反后再通过接口发送给其他CPU,增加了诊断的覆盖范围。CPU在执行运算任务时可能并没有改变部分bit位的数据,直接进行比较无法将异常的CPU诊断出来。以两个CPU比较运算数据的一个bit位为例,若该bit位都默认为0,在CPU执行运算任务后该bit不变,若两个CPU中有一个异常的CPU无法进行运算,但这个异常的CPU在执行运算任务后该bit位的数据依然为0,诊断结果表征两个CPU的运算数据相同,没有异常。但如果异常的CPU将取反后的运算数据发送至对方CPU,对方CPU应该接收到的正确的bit位的数据应该是1,但因为异常导致对方CPU接收的运算数据中该bit位还是0,对方CPU进行异或比较时就能检测出来异常。这种方式能极大的提高诊断的覆盖率,在实际应用中诊断率能达到99%以上。CPU在比较运算数据时,可以将其余CPU取反后的运算数据再进行一次取反操作,两个运算数据就能直接进行比较了,但是将自身的运算数据和其余CPU取反后的运算数据直接进行异或比较更加方便。
在实际应用中,CPU通常需要完成多个运算任务,需要较为方便的完成多个运算任务的数据比较,则存储器应包括多个存储区域,CPU中不同的运算任务对应不同的存储区域,将自身的运算数据以及其余CPU的运算数据储存到存储器中包括:将执行不同的运算任务时自身的运算数据以及其余CPU的运算数据储存到对应的存储区域中。
本实施例提供的CPU的诊断系统的存储器有多个存储区域,下面以图4为例描述本实施例的一种实施方式。图4为本申请实施例提供的CPU与存储器的连接结构示意图,图4对于上述存储器中的存储区域有详细描述,如图4所示,CPU的诊断系统中包括两个CPU,它们之间通过PCIE接口相连且它们都包括运算核心和比较核心。两个CPU都各自连接一个存储器,存储器中有多个存储区域,图中每个数据都有指定的存储区域,CPU存储数据时直接存入对应的存储区域中。由图可知,CPU有n个运算任务,每个运算任务都有自己对应的存储区域,CPU的运算核心执行一个运算任务后将运算数据存入这个运算任务对应的存储区域中,然后将自身的运算数据取反后存入另一片存储区域,即图中的镜像数据,镜像数据是便于与其他CPU进行数据交换。CPU还会接受对方CPU取反后的运算数据,即图中的交换数据。
需要注意的是,图4只是本实施例提供的一种方案,并不包括实施例提供的全部情况。CPU的诊断系统中可能有两个以上的CPU,则存储器中需要给每个CPU都留出一片存储区域。CPU的运算任务数量也没有限制,以实际情况为准。当两个CPU的运算数据不取反,直接进行比较时,存入存储器的数据应该是原运算数据,并且不需要自身的镜像数据。
本实施例提供的方案中每个运算任务都对应自己的存储区域,且自身的运算数据和其余CPU的运算数据也存入不同的存储区域,能实现多运算任务的数据比较。
在具体实施中,CPU的诊断系统的诊断功能可能会出现故障,此时无法准确的诊断CPU是否能正常工作,所以需要定期对系统进行自检,故上述方法还包括:在存储器中存入多个测试数据,其中多个测试数据的指定bit位不一致;比较存储器中的多个测试数据并得到比较结果;若比较结果表征多个测试数据指定的bit位不一致,则判定CPU的诊断功能正常;若比较结果表征多个测试数据一致或者多个测试数据的其他bit位不一致,则判定CPU的诊断功能异常。
本实施例提供的方案需要准备多个测试数据,若系统能精确的诊断出这些测试数据是指定的bit位的数据不一致,则表征系统诊断功能正常。以图4为例,存储器11中存有三个测试数据,包括自身的测试数据,自身取反后的测试数据,以及对方CPU10取反后的测试数据;需要进行比较的是自身的测试数据和对方CPU10取反后的测试数据,事先将这两个数据中指定的bit为设置为错误状态,以一个bit位为例,若自身的bit位为0,则对方CPU10取反后的bit位正确状态下应该为1,但为了实现自检,将对方CPU10取反后的bit位设置为0,等待CPU10进行比较,若比较结果表征这两个CPU10在该bit位的数据不一致,则说明CPU的诊断系统的诊断功能正常;但若是比较结果表征这两个测试数据一致或者检测出错误的bit位数据不一致,则说明CPU的诊断系统的诊断功能异常。表1至表4为上述两个CPU10的测试数据和取反后的测试数据。
表1其中一个CPU的测试数据
0x00000001 | 0x00000002 | 0x00000004 | 0x00000008 |
0x00000010 | 0x00000020 | 0x00000040 | 0x00000080 |
0x00000100 | 0x00000200 | 0x00000400 | 0x00000800 |
0x00001000 | 0x00002000 | 0x00004000 | 0x00008000 |
0x00010000 | 0x00020000 | 0x00040000 | 0x00080000 |
0x00100000 | 0x00200000 | 0x00400000 | 0x00800000 |
0x01000000 | 0x02000000 | 0x04000000 | 0x08000000 |
0x10000000 | 0x20000000 | 0x40000000 | 0x80000000 |
0xFFFFFFFE | 0xFFFFFFFD | 0xFFFFFFFB | 0xFFFFFFF7 |
0xFFFFFFEF | 0xFFFFFFDF | 0xFFFFFFBF | 0xFFFFFF7F |
0xFFFFFEFF | 0xFFFFFDFF | 0xFFFFFBFF | 0xFFFFF7FF |
0xFFFFEFFF | 0xFFFFDFFF | 0xFFFFBFFF | 0xFFFF7FFF |
0xFFFEFFFF | 0xFFFDFFFF | 0xFFFBFFFF | 0xFFF7FFFF |
0xFFEFFFFF | 0xFFDFFFFF | 0xFFBFFFFF | 0xFF7FFFFF |
0xFEFFFFFF | 0xFDFFFFFF | 0xFBFFFFFF | 0xF7FFFFFF |
0xEFFFFFFF | 0xDFFFFFFF | 0xBFFFFFFF | 0x7FFFFFFF |
表2其中一个CPU取反后的测试数据
表3对方CPU的测试数据
0x00000001 | 0x00000002 | 0x00000004 | 0x00000008 |
0x00000010 | 0x00000020 | 0x00000040 | 0x00000080 |
0x00000100 | 0x00000200 | 0x00000400 | 0x00000800 |
0x00001000 | 0x00002000 | 0x00004000 | 0x00008000 |
0x00010000 | 0x00020000 | 0x00040000 | 0x00080000 |
0x00100000 | 0x00200000 | 0x00400000 | 0x00800000 |
0x01000000 | 0x02000000 | 0x04000000 | 0x08000000 |
0x10000000 | 0x20000000 | 0x40000000 | 0x80000000 |
0xFFFFFFFE | 0xFFFFFFFD | 0xFFFFFFFB | 0xFFFFFFF7 |
0xFFFFFFEF | 0xFFFFFFDF | 0xFFFFFFBF | 0xFFFFFF7F |
0xFFFFFEFF | 0xFFFFFDFF | 0xFFFFFBFF | 0xFFFFF7FF |
0xFFFFEFFF | 0xFFFFDFFF | 0xFFFFBFFF | 0xFFFF7FFF |
0xFFFEFFFF | 0xFFFDFFFF | 0xFFFBFFFF | 0xFFF7FFFF |
0xFFEFFFFF | 0xFFDFFFFF | 0xFFBFFFFF | 0xFF7FFFFF |
0xFEFFFFFF | 0xFDFFFFFF | 0xFBFFFFFF | 0xF7FFFFFF |
0xEFFFFFFF | 0xDFFFFFFF | 0xBFFFFFFF | 0x7FFFFFFF |
表4对方CPU取反后的测试数据
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF | 0xFFFFFFFF |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000000 | 0x00000000 | 0x00000000 |
两个CPU10分别对自身的测试数据和对方CPU10取反后的测试数据按照每个32位为一组进行异或比较,先对其中一个CPU的测试数据和取反后的测试数据指定的bit位进行修改,然后再对系统进行自检。需要注意的是,上述例子是对图4的实施方案进行描述,本实施例包括但不限于此方案,测试数据可以是多个,并且可以不进行取反。
本实施例提供的自检方法能让系统对任意bit位的故障都能诊断,若比较结果表征多个数据指定的bit位的不一致,则说明CPU的诊断系统的诊断功能正常;但若是比较结果表征这多个测试数据一致或者检测出错误的bit位数据不一致,则说明CPU的诊断系统的诊断功能异常。上述方法对系统进行自检,避免了因系统的自检功能故障而导致无法准确检测CPU的异常。
通常情况下,CPU有多个运算任务,CPU在执行这些运算任务时,很难同时完成多个运算任务,也很难对多个运算任务的运算数据同时进行比较,故将运算任务划为不同的优先级,判断存储器中不同CPU的运算数据是否一致包括:当有比当前运算任务优先级更高的运算任务时,保存当前运算任务的比较状态;判断存储器中不同CPU的待比较运算数据是否一致,其中待比较运算数据为执行优先级更高的运算任务得到的。
一般情况下,在有优先级更高的运算任务需要执行时,会暂停低优先级的运算任务,先完成高优先级的运算任务。同样的,系统在诊断时,CPU可能在比较低优先级的运算数据,如果有高优先级的运算任务需要执行时,会保存当前运算任务的比较状态,暂停当前运算数据的比较;并开始比较高优先级运算任务对应的运算数据。
本实施例将运算任务分为不同优先级,能先比较高优先级运算任务对应的运算数据,完成比较紧急的运算任务的数据比较。
在上述实施例中,对于CPU的诊断方法进行了详细描述,本申请还提供CPU的诊断装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
基于功能模块的角度,本实施例提供一种CPU的诊断装置,图5为本申请实施例提供的CPU的诊断装置的结构图,如图5所示,该装置包括:
获取模块20,用于获取自身的运算数据;
接收模块21,用于通过接口接收其余CPU的运算数据,其中运算数据为各CPU执行同样的运算任务得到;
控制模块22,用于将自身的运算数据以及其余CPU的运算数据储存到存储器中;
判断模块23,用于判断存储器中不同CPU的运算数据是否一致;
若是,则判定CPU能正常工作;
若否,则判定CPU不能正常工作。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本实施例提供的CPU的诊断装置,与上述方法对应,故具有与上述方法相同的有益效果。
基于硬件的角度,本实施例提供了另一种CPU的诊断装置,图6为本申请另一实施例提供的CPU的诊断装置的结构图,如图6所示,CPU的诊断装置包括:存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如上述实施例中所提到的CPU的诊断方法的步骤。
本实施例提供的CPU的诊断装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器31可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序301,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的CPU的诊断方法的相关步骤。另外,存储器30所存储的资源还可以包括操作系统302和数据303等,存储方式可以是短暂存储或者永久存储。其中,操作系统302可以包括Windows、Unix、Linux等。数据303可以包括但不限于CPU的诊断方法涉及到的数据等。
在一些实施例中,CPU的诊断装置还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图6中示出的结构并不构成对CPU的诊断装置的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的CPU的诊断装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:CPU的诊断方法。
本实施例提供的CPU的诊断装置,与上述方法对应,故具有与上述方法相同的有益效果。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例描述的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例提供的计算机可读存储介质,与上述方法对应,故具有与上述方法相同的有益效果。
以上对本申请所提供的CPU的诊断系统、方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种CPU的诊断系统,其特征在于,包括:多个CPU和多个存储器,所述CPU通过接口互相连接以便于所述CPU之间传输运算数据;
每个所述CPU各自连接一个所述存储器,所述存储器用于储存自身连接的所述CPU的所述运算数据和其余所述CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
所述CPU用于获取所述运算数据,并判断不同所述CPU的所述运算数据是否一致,若是,则判定所述CPU能正常工作;若否,则判定所述CPU不能正常工作。
2.一种CPU的诊断方法,其特征在于,应用于权利要求1所述的CPU的诊断系统,所述方法包括:
获取自身的运算数据;
通过接口接收其余CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中;
判断所述存储器中不同所述CPU的所述运算数据是否一致;
若是,则判定所述CPU能正常工作;
若否,则判定所述CPU不能正常工作。
3.根据权利要求2所述的CPU的诊断方法,其特征在于,所述通过接口接收其余CPU的所述运算数据包括:
通过所述接口接收其余所述CPU取反后得到的所述运算数据。
4.根据权利要求2所述的CPU的诊断方法,其特征在于,所述存储器包括多个存储区域,所述CPU中不同的所述运算任务对应不同的所述存储区域,所述将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中包括:
将执行不同的所述运算任务时自身的所述运算数据以及其余所述CPU的所述运算数据储存到对应的所述存储区域中。
5.根据权利要求2至4任意一项所述的CPU的诊断方法,其特征在于,还包括:
在所述存储器中存入多个测试数据,其中多个所述测试数据的指定bit位不一致;
比较所述存储器中的多个所述测试数据并得到比较结果;
若所述比较结果表征多个所述测试数据指定的bit位不一致,则判定所述CPU的诊断功能正常;
若所述比较结果表征多个所述测试数据一致或者多个所述测试数据的其他bit位不一致,则判定所述CPU的诊断功能异常。
6.根据权利要求2所述的CPU的诊断方法,其特征在于,所述CPU有多个所述运算任务,所述运算任务具有不同的优先级,所述判断所述存储器中不同所述CPU的所述运算数据是否一致包括:
当有比当前所述运算任务优先级更高的所述运算任务时,保存当前所述运算任务的比较状态;
判断所述存储器中不同所述CPU的待比较运算数据是否一致,其中所述待比较运算数据为执行优先级更高的所述运算任务得到的。
7.根据权利要求3所述的CPU的诊断方法,其特征在于,所述判断所述存储器中不同所述CPU的所述运算数据是否一致包括:
采用异或比较的方式比较所述存储器中自身对应的所述CPU的所述运算数据和其余所述CPU取反后的所述运算数据并判断原运算数据是否一致。
8.一种CPU的诊断装置,其特征在于,应用于权利要求1所述的CPU的诊断系统,所述装置包括:
获取模块,用于获取自身的运算数据;
接收模块,用于通过接口接收其余CPU的所述运算数据,其中所述运算数据为各所述CPU执行同样的运算任务得到;
控制模块,用于将自身的所述运算数据以及其余所述CPU的所述运算数据储存到存储器中;
判断模块,用于判断所述存储器中不同所述CPU的所述运算数据是否一致;
若是,则判定所述CPU能正常工作;
若否,则判定所述CPU不能正常工作。
9.一种CPU的诊断装置,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求2至7任一项所述的CPU的诊断方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求2至7任一项所述的CPU的诊断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264412.2A CN113886148B (zh) | 2021-10-28 | 2021-10-28 | 一种cpu的诊断系统、方法、装置以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264412.2A CN113886148B (zh) | 2021-10-28 | 2021-10-28 | 一种cpu的诊断系统、方法、装置以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113886148A true CN113886148A (zh) | 2022-01-04 |
CN113886148B CN113886148B (zh) | 2024-09-03 |
Family
ID=79013961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111264412.2A Active CN113886148B (zh) | 2021-10-28 | 2021-10-28 | 一种cpu的诊断系统、方法、装置以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113886148B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904797A (zh) * | 2023-02-27 | 2023-04-04 | 北京控达科技有限公司 | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11312014A (ja) * | 1998-04-28 | 1999-11-09 | Nec Home Electron Ltd | 制御装置の故障判定方法及びその装置 |
JP2006039768A (ja) * | 2004-07-23 | 2006-02-09 | Mitsubishi Electric Corp | 結果同期2重系コンピュータ |
CN104615065A (zh) * | 2015-01-15 | 2015-05-13 | 南车青岛四方机车车辆股份有限公司 | 用于列车网络控制系统的数据处理方法及装置 |
CN104890701A (zh) * | 2015-06-26 | 2015-09-09 | 杭州路信科技有限公司 | 铁路车站的通信联锁系统 |
CN106484636A (zh) * | 2015-08-31 | 2017-03-08 | 爱思开海力士有限公司 | 半导体系统及其控制方法 |
CN107766188A (zh) * | 2017-10-13 | 2018-03-06 | 交控科技股份有限公司 | 列车控制系统中的内存检测方法及装置 |
CN112445127A (zh) * | 2019-08-27 | 2021-03-05 | 北京东土科技股份有限公司 | 主备控制器的冗余控制方法 |
-
2021
- 2021-10-28 CN CN202111264412.2A patent/CN113886148B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11312014A (ja) * | 1998-04-28 | 1999-11-09 | Nec Home Electron Ltd | 制御装置の故障判定方法及びその装置 |
JP2006039768A (ja) * | 2004-07-23 | 2006-02-09 | Mitsubishi Electric Corp | 結果同期2重系コンピュータ |
CN104615065A (zh) * | 2015-01-15 | 2015-05-13 | 南车青岛四方机车车辆股份有限公司 | 用于列车网络控制系统的数据处理方法及装置 |
CN104890701A (zh) * | 2015-06-26 | 2015-09-09 | 杭州路信科技有限公司 | 铁路车站的通信联锁系统 |
CN106484636A (zh) * | 2015-08-31 | 2017-03-08 | 爱思开海力士有限公司 | 半导体系统及其控制方法 |
CN107766188A (zh) * | 2017-10-13 | 2018-03-06 | 交控科技股份有限公司 | 列车控制系统中的内存检测方法及装置 |
CN112445127A (zh) * | 2019-08-27 | 2021-03-05 | 北京东土科技股份有限公司 | 主备控制器的冗余控制方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904797A (zh) * | 2023-02-27 | 2023-04-04 | 北京控达科技有限公司 | 基于现场可编程门阵列的cpu内存诊断方法、系统和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113886148B (zh) | 2024-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9823983B2 (en) | Electronic fault detection unit | |
EP3198725B1 (en) | Programmable ic with safety sub-system | |
JP5541368B2 (ja) | アクセス方法、およびマルチコアプロセッサシステム | |
WO2020239060A1 (zh) | 错误恢复的方法和装置 | |
US20160147545A1 (en) | Real-Time Optimization of Many-Core Systems | |
CN113656211A (zh) | 一种基于双cpu多核系统的看门狗控制方法及系统 | |
JP2018107679A (ja) | 半導体装置 | |
US20240289237A1 (en) | Systems, methods, and apparatus for crash recovery in storage devices | |
CN113886148A (zh) | 一种cpu的诊断系统、方法、装置以及介质 | |
JP5529686B2 (ja) | コンピュータ装置の異常検査方法及びそれを用いたコンピュータ装置 | |
CN103902419B (zh) | 一种缓存测试方法及装置 | |
KR102131230B1 (ko) | 파워트레인 제어기의 램 에러 감지 로직의 자가진단 방법 및 장치 | |
US10042692B1 (en) | Circuit arrangement with transaction timeout detection | |
US10318466B2 (en) | Method and apparatus for handling outstanding interconnect transactions | |
CN114461142B (zh) | 一种读写Flash数据的方法、系统、装置及介质 | |
JP5788611B2 (ja) | リセット後の評価のためにリセットより前の状態を保存するための方法および装置 | |
US20150339178A1 (en) | Processing system and method of operating a processing system | |
EP2942714B1 (en) | Monitoring method, monitoring apparatus, and electronic device | |
JP2012150661A (ja) | プロセッサ動作検査システム、及びその検査方法 | |
TWI772024B (zh) | 減少停機時間的方法及系統 | |
US11249872B1 (en) | Governor circuit for system-on-chip | |
CN115766410A (zh) | 一种机器工作状态切换方法、系统、装置及介质 | |
JP2004192640A (ja) | 周辺装置相互接続(pci)バス上のデバイス・レベルの故障分離の診断手法のための方法およびシステム | |
JP6256087B2 (ja) | ダンプシステムおよびダンプ処理方法 | |
JP6217086B2 (ja) | 情報処理装置、エラー検出機能診断方法およびコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |