本发明涉及安全关键电子设备数据处理设计领域,具体涉及安全关键电子设备核心数据处理应用的检测方法。
背景技术:
核心数据处理应用是电子设备完成复杂功能不可获取的重要组成部分。对于安全关键电子设备而言,其安全的保障严重的依赖于核心数据处理应用的正确执行。当前,指令缓存的使用在数据处理中广泛使用,其高速的存取速度虽然能够带来芯片处理速度的提升,同时也增加了数据处理应用出错的概率和机会,最终安全关键电子设备发生故障,导致安全事故的发生。相比于指令缓存,数据缓存的由于更新速度更快,随着数据的更新,错误的数据被更新后的数据替代,因此故障是暂时且较小。指令缓存本身出错会导致数据处理功能出现紊乱,同时由于其刷新速度慢,其故障持续时间长且严重。而强制刷新指令缓存则会导致核心处理的性能显著下降。因此,为了保证数据处理应用的处理性能,需要能够对数据处理应用的指令缓存进行检测,从而支持能够在必要时对指令缓存进行重置或者刷新,保证安全关键电子设备的正常运行。
技术实现要素:
为了在不降低核心数据处理应用的性能的前提,以及保证安全关键电子设备能够在指令出错的情况下能够及时得到更正,本发明的发明目的在于提供一种基于指令的数据处理应用检测方法,通过构建指令中的指令测试集,根据测试集运行结果来判断处理芯片运行指令的状态,从而完成对指令的检测,进而判断数据处理应用是否正常运行。
本发明的发明目的通过以下技术方案实现:
一种基于指令的数据处理应用检测方法,包含以下步骤:
步骤1、统计处理芯片上运行的各数据处理应用所用到的指令,获取指令全集;
步骤2、基于获取的指令全集,构建测试函数,所述测试函数中包含了指令全集的调用;
步骤3、根据构建的测试函数,在处理芯片上编写测试软件;
步骤4:采用预定的数据参数作为测试软件的输入,运行测试软件;
步骤5:将测试软件输出的测试结果发送到检测芯片;
步骤6:检测芯片将测试结果与预存的结果进行比较,得到数据处理应用的检测评价。
优选地,步骤1中包含以下步骤:
步骤a:获取处理芯片上所需要检测的数据处理应用清单;
步骤b:对某一数据处理应用开展分析,获取数据处理应用所调用的处理芯片运行的指令序列;
步骤c:判断获取的处理芯片运行的指令序列是否已经在指令集中,如果指令集中不存在,则在指令集中增加该指令,如果指令序列所包含的指令已存在,则不需要再次添加到指令集中;
步骤d:对其余数据处理应用重复步骤b和c;
步骤e:通过以上步骤,获取所有数据处理应用调用的处理芯片执行的指令全集。
附图说明
图1为实现本发明所提供的基于指令的数据处理应用检测方法的产品结构示意图。
图2为本发明中处理芯片指令全集生成过程的流程示意图。
图3为本发明的基于指令的数据处理应用检测方法的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
图1描述了基于指令的数据处理应用检测实现过程。核心数据处理功能除了需要处理芯片,还需要数据处理应用执行所需要的处理功能。通过数据处理应用来调用处理芯片的指令,从而实现预期的数据处理功能。为了保证处理芯片本身的指令本身是正确的,通过引入测试软件,测试软件通过调用处理芯片上的指令,并输出测试结果,由检测芯片对输出的测试结果进行检测,以判断数据处理指令是否正确的运行,最终输出检测结果。
图2描述了指令全集的获取过程。测试软件是基于数据处理应用所调用的处理芯片上的指令构建的。因此,首先需要构建基于所有数据处理应用的指令集合。主要分为以下几步:
步骤a:获取处理芯片上所需要检测的数据处理应用清单。
步骤b:对某一个数据处理应用开展分析,获取数据处理应用所调用的处理芯片运行的指令序列。由于每个数据处理应用都可以标识为f(swi)=f(ici1,ici2,ici3,...,icin),那么所用到的处理芯片的指令序列为ics(swi)={ici1,ici2,ici3,...,icin}。
步骤c:判断获取的处理芯片运行的指令序列是否已经在指令集中,如果指令集中不存在,则在指令集中增加该指令序列,如果指令序列所包含的指令已存在,则不需要再次添加到指令集中,避免相同指令在指令集中重复出现,指令集为icsn=ic(sw1)∪ic(sw2)∪ic(sw3)∪....∪ic(swn-1)。
步骤d:对其余的数据处理应用件重复步骤c和d。
步骤e:针对数据处理应用清单中的全部数据处理应用开展分析,获得处理芯片支持数据处理应用运行所用到的指令全集ics=ic(sw1)∪ic(sw2)∪ic(sw3)∪....∪ic(swn)。
通过以上步骤,获取所有数据处理应用调用的处理芯片执行的指令全集。
图3描述了基于指令的数据处理应用检测过程。基于获取的指令全集,构建测试软件。从而能够根据测试软件的运行结果,判断处理芯片执行相关指令的状态。主要分为以下几步:
步骤1、统计处理芯片上运行的各数据处理应用所用到的指令,获取指令全集。
步骤2:基于获取的指令全集,构建测试函数f(ic)=f(ics),测试函数中包含了指令全集的调用。
步骤3:根据构建的测试函数,在处理芯片上编写测试软件swt。
步骤4:采用预定的数据参数作为测试软件的输入,运行测试软件。
步骤5:将预定数据参数输入得到的测试结果发送到检测芯片。
步骤6:检测芯片将测试结果与预存的结果进行比较,当比较结果发现一致时,则证明数据处理应用所用到的指令是正确的,数据处理应用也处于正确的运行状态。当比较结果不一致时,则证明指令集中的指令运行出现了差错,则数据处理软件应用处于异常的运行状态,此时需要对外报送处理芯片指令运行出错及数据处理应用软件出错的消息。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。