控制多核处理器运行及多核处理器的安全检测方法和装置与流程

文档序号:15076556发布日期:2018-08-01 01:52阅读:111来源:国知局

本发明涉及计算机技术领域,尤其涉及控制多核处理器运行及多核处理器的安全检测方法和装置。



背景技术:

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着网络信息化等新技术的大规模应用,信息安全成为日益严峻的问题。通常我们讨论的信息安全都局限于网络安全、软件安全等方面,但是随着近年来研究表明,硬件安全也应受到关注。硬件设计的规模随着硬件设计水平的提升日渐提升,使得硬件木马成为可能:当前以cpu(处理器)为代表的大规模电路中用到的硬件ip(知识产权)的来源多样化,硬件设计的流程复杂化,设计制造流程分工细化等因素造成了硬件最终产品的安全可控性下降。在设计中被注入恶意木马或者漏洞(下文简称木马)的可能性增加,同时硬件规模的增加也增加了木马被识别和发现的困难。近年来,随着信息安全概念的发展,硬件的安全性逐渐成为信息安全的研究热点。

在针对处理器的安全检测中,当被测处理器为多核处理器时,多核执行的异步性会带来不确定性,例如一个处理器核更新一个内存地址的数值;另一个处理器核读取这个值,如果发现还没有更新,就进入一个sleep(延时)进行等待,结束后再进行读取;在进行安全检测时由于无法模拟处理器核执行的速度,所以无法确定读取处理器核进行了多少次sleep操作才能够读取到更新的数值。由于以上不确定性,给多核处理器的安全性检测带来了困难。



技术实现要素:

本发明实施例提供一种控制多核处理器运行的方法,用以解决多核处理器安全检测过程中的不确定性问题,该方法包括:

根据预定义规则确定所述多核处理器中每个处理器核的打开顺序及打开时长,所述预定义规则包括处理器核的标识、打开顺序及打开时长;

当处于安全检测状态时,根据所述打开顺序及打开时长控制所述多核处理器中每个处理器核的开闭,以使所述多核处理器在同一时刻只打开一个处理器核。

本发明实施例还提供一种控制多核处理器运行的装置,可以解决多核处理器安全检测过程中的不确定性问题,该装置包括:

运行决策模块,用于根据预定义规则确定所述多核处理器中每个处理器核的打开顺序及打开时长,所述预定义规则包括处理器核的标识、打开顺序及打开时长;

运行控制模块,用于当处于安全检测状态时,根据所述打开顺序及打开时长控制所述多核处理器中每个处理器核的开闭,以使所述多核处理器在同一时刻只打开一个处理器核。

本发明实施例还提供一种多核处理器的安全检测方法,可以解决多核处理器安全检测过程中的不确定性问题,该方法包括:

获取所述多核处理器中每个处理器核的运行信息,所述运行信息包括所述多核处理器中每个处理器核的打开顺序及打开时长,其中所述多核处理器在同一时刻只打开一个处理器核;

根据所述运行信息,分析所述多核处理器中每个处理器核的运行过程;

根据每个处理器核的分析结果,确定所述多核处理器是否安全。

本发明实施例还提供一种多核处理器的安全检测装置,可以解决多核处理器安全检测过程中的不确定性问题,该装置包括:

信息获取模块,用于获取所述多核处理器中每个处理器核的运行信息,所述运行信息包括所述多核处理器中每个处理器核的打开顺序及打开时长,其中所述多核处理器在同一时刻只打开一个处理器核;

运行分析模块,用于根据所述运行信息,分析所述多核处理器中每个处理器核的运行过程;

安全确定模块,用于根据每个处理器核的分析结果,确定所述多核处理器是否安全。

本发明实施例还提供一种计算机可读存储介质,可以解决多核处理器安全检测过程中的不确定性问题,所述计算机可读存储介质存储有执行上述控制多核处理器运行的方法及多核处理器的安全检测方法中任一方法的计算机程序。

在本发明实施例中,当处于安全检测状态时,根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭,以使多核处理器在同一时刻只打开一个处理器核,可以使多核处理器处于单核运行的状态,消除多核执行的异步性带来的不确定性问题。此外,在控制多核处理器运行的过程中合理地安排每个处理器核的打开顺序及打开时长,使多核处理器具有较高的运行效率。

在本发明实施例中,根据多核处理器中每个处理器核的运行信息,分析多核处理器中每个处理器核的运行过程,然后根据分析结果,确定多核处理器是否安全。从而控制多核处理器运行在单核状态,消除了多核执行异步性带来的不确定性对安全检测的影响。此外,根据每个处理器核的打开顺序及打开时长分析每个处理器核的运行,提高了安全检测的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中处理器安全检测的过程示意图;

图2为本发明实施例中控制多核处理器运行的方法的示意图;

图3为本发明实施例中多核处理器的安全检测方法的示意图;

图4为本发明实施例中控制多核处理器运行的装置的示意图;

图5为本发明实施例中控制多核处理器运行的装置的一个示例图;

图6为本发明实施例中控制多核处理器运行的装置的另一示例图;

图7为本发明实施例中多核处理器的安全检测装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

硬件安全是软件安全的基石。所有的软件安全实现方法都是基于硬件可信的假设,即硬件应该按照其手册所定义的行为进行工作。目前大多数情况是在设计环节、出厂环节对硬件进行性能检测,由于硬件出厂后是以黑盒子的面目出现在用户的系统中(不像软件木马,其代码是存在于系统中的,可以被读取和分析),硬件的行为是很难监控或感知的。此外,由于难以判断硬件行为的合理性,目前没有针对硬件安全性的研究。

在本发明实施例中,采用安全检测装置对处理器进行安全检测。在检测处理器的安全性时,根据处理器在目标运行过程的初始运行状态信息设置安全检测装置的初始运行状态,将处理器在目标运行过程中的输入信息作为安全检测装置的输入信息。如图1所示,可以通过输入输出记录装置记录处理器的输入信息和输出信息,通过软件的方式读取并记录处理器的运行状态。然后,使安全检测装置以符合预定义行为的方式执行目标运行过程中的任务,得到安全检测装置的输出信息和/或终止运行状态信息。其中,预定义行为是处理器的硬件行为标准,其中硬件行为标准是指在解析与执行软件指令流的过程中处理器的行为标准。在一个实施例中,处理器的硬件行为标准可以是处理器说明书或其它规范化文档中规定的行为标准。当安全检测装置执行完目标运行过程中的任务时,根据安全检测装置的输出信息和/或终止运行状态信息,确定处理器在目标运行过程中是否安全。

在一个实施例中,确定运行中处理器的安全性时,可以将处理器的实时运行过程划分为一个或多个检测区间。例如,可以将处理器从开机到关机的整个运行过程作为目标运行过程,也可以将整个运行过程划分为多个检测区间对应的多个目标运行过程。这样,在对处理器进行安全性检测时,可以实现为对处理器在某一检测区间中的运行过程(即,目标运行过程)的安全性检测。在安全检测装置完成对当前检测区间的安全性检测后,进入下一个检测区间的安全性检测。在进行连续检测时,可以直接将上一个安全检测区间的终止运行状态信息用作当前检测区间的初始运行状态信息,而不必再次获取当前检测区间的初始运行状态信息。

如前所述,在处理器安全检测中,当被测处理器为多核处理器时,多核执行的异步性会带来不确定性,给多核处理器的安全性检测带来了困难。为了解决这一问题,发明人发现可以采用如下方案:

在检测区间中确保同一时刻只打开一个处理器核。此外,发明人进一步考虑到,如果长时间使多核处理器处于单核运行的状态,可能会导致多核的应用程序锁死,影响多核处理器的运行效率。例如,运行中的处理器核a需要等待运行在处理器核b上的程序给出一个信号量,而处理器核b运行被暂停,那么处理器核a虽然被采样,但是得不到有效数据,采样的指令仅仅是等待指令,这样也会降低安全检测的覆盖率。

基于此,在本发明实施例中提出一种控制多核处理器运行的方法,如图2所示,该方法可以包括:

步骤201、根据预定义规则确定所述多核处理器中每个处理器核的打开顺序及打开时长,所述预定义规则包括处理器核的标识、打开顺序及打开时长;

步骤202、当处于安全检测状态时,根据所述打开顺序及打开时长控制所述多核处理器中每个处理器核的开闭,以使所述多核处理器在同一时刻只打开一个处理器核。

由图2所示流程可以得知,该方法不但可以使多核处理器处于单核运行的状态,消除多核执行的异步性带来的不确定性,而且可以根据预定义规则在运行的过程中合理地安排每个处理器核的打开顺序及打开时长,使多核处理器具有较高的运行效率。

图2所示方法可以由能够实现其功能的装置来执行,例如该装置可以是被测的多核处理器。多核处理器根据预定义规则确定每个处理器核的打开顺序及打开时长,当处于安全检测状态时,例如,当安全检测装置通知多核处理器将要开始安全检测时,多核处理器根据打开顺序及打开时长控制每个处理器核的开闭,以使在同一时刻只打开一个处理器核。又如,图2所示方法也可以由安全检测装置来执行,安全检测装置根据预定义规则确定每个处理器核的打开顺序及打开时长,当处于安全检测状态时,安全检测装置直接控制多核处理器中每个处理器核的开闭,以使多核处理器在同一时刻只打开一个处理器核。当然还可以由其它能够实现图2方法的装置来实施,本发明不作限定,相似的变化例均应落入本发明的保护范围。

在一个实施例中,多核处理器可以包括一个或多个处理器核组,该一个或多个处理器核组中的每个处理器核组之间不共享内存,每个处理器核组包括多个处理器核。对于每一个处理器核组而言,都可以采用图2所示方法进行运行控制。例如,如果能够确定多个处理器核组之间没有共享内存,那么各个处理器核组之间不会出现以上的不确定性问题。例如,如果包括20个处理器核的多核处理器运行两个虚拟机,其中8个处理器核和10个处理器核分属两个虚拟机。一般地,虚拟机的内存空间相互独立,因此两个虚拟机运行的程序没有交叠。这样,可以单独对1个虚拟机的处理器核执行图2所示的运行控制方法,而不必停下另一个虚拟机。或者说,在对一个虚拟机进行抽样检测的时候,仅仅对于该虚拟机使用的处理器核进行图2所示的方法。

在一个实施例中,预定义规则包括处理器核的标识、打开顺序及打开时长。例如,预定义规则可以包括按照预定时长预定顺序轮流打开各个处理器核。当然还可以有其它的变化例,例如可以预定义某个处理器核每隔两轮打开一次,这些变化例均应落入本发明的保护范围。

根据预定义规则确定多核处理器中每个处理器核的打开顺序及打开时长可以有多种方式。例如,可以在根据预定义规则确定多核处理器中每个处理器核的打开顺序及打开时长之前,先获取多核处理器中每个处理器核的历史负载信息。然后根据历史负载信息选择多核处理器中每个处理器核对应的预定义规则,根据所选择的预定义规则确定多核处理器中各个处理器核的打开顺序及打开时长。本例中,处理器核不同的历史负载信息对应于不同的打开时长及打开顺序。

例如,在下一轮打开各个处理器核时,可以根据上一轮各处理器核的历史负载信息调整打开各个处理器核的时长、顺序,以及是否打开该处理器核。例如,在相同的工作时长中,输入输出记录装置记录的输入输出信息比较多,则认为该处理器核工作负载比较大,未来会有较大概率依旧负载较重。这种情况下,在下一轮轮流打开各个处理器核时,可以延长该处理器核的打开时长。或者,在下一轮轮流打开各个处理器核时,可以优先打开负载较重的处理器核,不再打开负载较小的处理器核。相似地,如果发现处理器核负载比较小,在下一轮轮流打开各个处理器核时,可以缩短打开该处理器核的时长,或者延后打开该处理器核的时机。

根据预定义规则确定多核处理器中每个处理器核的打开顺序及打开时长后,当处于安全检测状态时,根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭,以使多核处理器在同一时刻只打开一个处理器核。其中根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭也可以有多种方式。在一个实施例中,在根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭时,若当前打开的处理器核进入空闲状态,关闭当前打开的处理器核。

例如,当前打开的处理器核进入空闲(idle)状态等待中断时,不论预定打开时长是否到期都可提前关闭该处理器核,直到监测到出现该中断之前,都可不再打开该处理器核。

在一种应用模型中,处理器不同核心通过处理器间中断(inter-processorinterrupt,ipi)来同步。例如,处理器核a注册了中断服务程序以处理有效负载,但是其依赖于处理器核b的任务,这时处理器核a会进入idle状态(或者halt状态)。在这种情况下,如果打开处理器核a,会发现处理器核a没有运行任何指令,此时可以关闭处理器核a以便提升调度的效率。例如,在前述按照预定时长轮流打开各个处理器核的实施例中,根据多核轮流打开的调度算法,下一次需要打开处理器核a之前,可以监测处理器核a是否收到了ipi或者其他形式的中断,如果没有收到所监测的中断,那么可以选择不打开处理器核a。

在另一实施例中,根据打开顺序、打开时长以及截获的核间通信指令,控制多核处理器中每个处理器核的开闭。例如,在可以截获核间通信指令的应用场景中,还可以利用截获的核间通信指令确定处理器核执行的任务之间的依赖关系,进而根据依赖关系调整处理器打开的先后顺序。

在一个实施例中,还可以记录多核处理器中每个处理器核的运行信息,运行信息包括多核处理器中每个处理器核的打开顺序及打开时长。例如,在以上处理器核轮流工作的过程中,记录处理器核轮流打开的顺序,并记录每一个处理器核运行的指令数目用以表示其打开时长。

图3为本发明实施例中多核处理器的安全检测方法的示意图,如图3所示,该方法可以包括:

步骤301、获取所述多核处理器中每个处理器核的运行信息,所述运行信息包括所述多核处理器中每个处理器核的打开顺序及打开时长,其中所述多核处理器在同一时刻只打开一个处理器核;

步骤302、根据所述运行信息,分析所述多核处理器中每个处理器核的运行过程;

步骤303、根据每个处理器核的分析结果,确定所述多核处理器是否安全。

由图3所示流程可以得知,本发明实施例可以控制多核处理器运行在单核状态,消除了多核执行异步性带来的不确定性对安全检测的影响。此外,根据每个处理器核的打开顺序及打开时长分析每个处理器核的运行,提高了安全检测的准确性。

图3所示方法由多核处理器的安全检测装置来实施。如前所述,在具体的实施例中,多核处理器可以包括一个或多个处理器核组,该一个或多个处理器核组中的每个处理器核组之间不共享内存,每个处理器核组包括多个处理器核。对于每一个处理器核组而言,都可以采用前述控制多核处理器运行的方法进行运行控制。因此图3所示方法也适用于多核处理器的每一个处理器核组。

在一个实施例中,可以获取前述记录的多核处理器中每个处理器核的运行信息,运行信息包括多核处理器中每个处理器核的打开顺序及打开时长。具体地,运行信息中的打开时长可以包括处理器核运行的指令数目。例如,在获取运行信息时,获取在处理器核轮流工作的过程中记录的处理器核轮流打开的顺序,以及记录的每一个处理器核运行的指令数目。根据每个处理器核运行的指令数目可以确定每个处理器核的打开时长。应理解的是,使用指令数目表示打开时长仅是本发明的一个具体实施方式,本发明实施例并不限于此。

在一个实施例中,根据运行信息分析多核处理器中每个处理器核的运行过程时,可以使用与多核处理器相同数量的处理器核,分析多核处理器中每个处理器核的运行过程。或者,也可以使用一个处理器核,分析多核处理器中每个处理器核的运行过程。例如,安全检测装置对被测处理器进行安全性检测时,使用与被测的多核处理器相同数量的处理器核分析被测多核处理器的运行过程,使处理器核按照记录的打开顺序依次打开处理器核,并根据每个处理器核运行的指令数目控制每个处理器核的打开时长。应理解的是,由于实际上每一时刻只打开一个处理器核,安全检测装置也可以用一个处理器核来分析多个处理器核的运行。

基于同一发明构思,本发明实施例中还提供了一种控制多核处理器运行的装置,如下面的实施例所述。由于该装置解决问题的原理与控制多核处理器运行的方法相似,因此该装置的实施可以参见控制多核处理器运行的方法的实施,重复之处不再赘述。

图4为本发明实施例中控制多核处理器运行的装置的示意图,如图4所示,该装置可以包括:

运行决策模块401,用于根据预定义规则确定所述多核处理器中每个处理器核的打开顺序及打开时长,所述预定义规则包括处理器核的标识、打开顺序及打开时长;

运行控制模块402,用于当处于安全检测状态时,根据所述打开顺序及打开时长控制所述多核处理器中每个处理器核的开闭,以使所述多核处理器在同一时刻只打开一个处理器核。

在本发明实施例中,当处于安全检测状态时,根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭,以使多核处理器在同一时刻只打开一个处理器核,可以使多核处理器处于单核运行的状态,消除多核执行的异步性带来的不确定性问题。此外,在控制多核处理器运行的过程中合理地安排每个处理器核的打开顺序及打开时长,使多核处理器具有较高的运行效率。

如图5所示,在一个实施例中,图4所示控制多核处理器运行的装置还可以包括:

信息获取模块501,用于获取所述多核处理器中每个处理器核的历史负载信息;

运行决策模块401可以进一步用于,根据所述历史负载信息选择所述多核处理器中每个处理器核对应的预定义规则,根据所选择的预定义规则确定所述多核处理器中各个处理器核的打开顺序及打开时长。

在一个实施例中,运行控制模块402可以进一步用于,在根据所述打开顺序及打开时长控制所述多核处理器中每个处理器核的开闭时,若当前打开的处理器核进入空闲状态,关闭所述当前打开的处理器核。

在一个实施例中,运行控制模块402可以进一步用于,根据所述打开顺序、打开时长以及截获的核间通信指令,控制所述多核处理器中每个处理器核的开闭。

如图6所示,在一个实施例中,图4所示控制多核处理器运行的装置还可以包括:

信息记录模块601,用于记录所述多核处理器中每个处理器核的运行信息,所述运行信息包括所述多核处理器中每个处理器核的打开顺序及打开时长。

基于同一发明构思,本发明实施例中还提供了一种多核处理器的安全检测装置,如下面的实施例所述。由于该装置解决问题的原理与多核处理器的安全检测方法相似,因此该装置的实施可以参见多核处理器的安全检测方法的实施,重复之处不再赘述。

图7为本发明实施例中多核处理器的安全检测装置的示意图,如图7所示,该装置可以包括:

信息获取模块701,用于获取所述多核处理器中每个处理器核的运行信息,所述运行信息包括所述多核处理器中每个处理器核的打开顺序及打开时长,其中所述多核处理器在同一时刻只打开一个处理器核;

运行分析模块702,用于根据所述运行信息,分析所述多核处理器中每个处理器核的运行过程;

安全确定模块703,用于根据每个处理器核的分析结果,确定所述多核处理器是否安全。

在本发明实施例中,根据多核处理器中每个处理器核的运行信息,分析多核处理器中每个处理器核的运行过程,然后根据分析结果,确定多核处理器是否安全。从而控制多核处理器运行在单核状态,消除了多核执行异步性带来的不确定性对安全检测的影响。此外,根据每个处理器核的打开顺序及打开时长分析每个处理器核的运行,提高了安全检测的准确性。

在一个实施例中,所述打开时长包括处理器核运行的指令数目。

在一个实施例中,运行分析模块702可以进一步用于:

使用与所述多核处理器相同数量的处理器核,根据所述运行信息分析所述多核处理器中每个处理器核的运行;

或者,使用一个处理器核,根据所述运行信息分析所述多核处理器中每个处理器核的运行。

本发明实施例还提供一种计算机可读存储介质,用以确保多核处理器安全检测的顺利进行,所述计算机可读存储介质存储有执行上述控制多核处理器运行的方法及多核处理器的安全检测方法中任一方法的计算机程序。

综上所述,在本发明实施例中,当处于安全检测状态时,根据打开顺序及打开时长控制多核处理器中每个处理器核的开闭,以使多核处理器在同一时刻只打开一个处理器核,可以使多核处理器处于单核运行的状态,消除多核执行的异步性带来的不确定性问题。此我,在控制多核处理器运行的过程中合理地安排每个处理器核的打开顺序及打开时长,使多核处理器具有较高的运行效率。

在本发明实施例中,根据多核处理器中每个处理器核的运行信息,分析多核处理器中每个处理器核的运行过程,然后根据分析结果,确定多核处理器是否安全。从而控制多核处理器运行在单核状态,消除了多核执行异步性带来的不确定性对安全检测的影响。此外,根据每个处理器核的打开顺序及打开时长分析每个处理器核的运行,提高了安全检测的准确性。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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