首页> 中国专利> 一种基于多核处理器二取二架构的功能安全检测方法

一种基于多核处理器二取二架构的功能安全检测方法

摘要

一种基于多核处理器二取二架构的功能安全检测方法,采用两个多核处理器组成多核处理器二取二架构,两个多核处理器按照指定的内核来运行应用程序,在应用程序运行过程中的关键节点植入检查点,在每个检查点处生成时序校核字,两个多核处理器实时比较双方生成的时序校核字。本发明能够准确检测多核处理器的器件失效,提高了检测覆盖率,能够发现多核处理器中的系统性失效、随机性失效,能够将多核处理器运用到功能安全领域,达到大幅提高性能和算力的目的。

著录项

  • 公开/公告号CN114968781A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 卡斯柯信号有限公司;

    申请/专利号CN202210574881.2

  • 申请日2022-05-24

  • 分类号G06F11/36(2006.01);

  • 代理机构上海元好知识产权代理有限公司 31323;上海元好知识产权代理有限公司 31323;

  • 代理人张妍;张静洁

  • 地址 200070 上海市静安区天目中路428号凯旋门大厦27层C/D座

  • 入库时间 2023-06-19 16:33:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2022105748812 申请日:20220524

    实质审查的生效

说明书

技术领域

本发明涉及一种基于多核处理器二取二架构的功能安全检测方法。

背景技术

在功能安全领域,需要检测组件/器件等的失效,并采取措施来阻止这个失效扩散而引起安全事故。组合故障安全架构是实现功能安全的一种重要的系统架构,其中二取二架构最为常见,通过独立运行的两个运算通道同时执行运算,只有两个通道获得相同的计算结果,才能认为该结果安全可靠,进行输出,否则输出安全侧的计算结果。在该二取二架构中,对CPU处理器失效的检测,一般采用指令集测试、双通道相互比较等方式进行。对于单核的单核CPU指令调度简单,因此易于通过以上的手段对CPU进行检测来发现问题。但是对于多核CPU,多个线程在多个内核中同时运行,指令调度更加复杂,错误可能被隐藏,无法准确检测到器件失效。

发明内容

本发明能够准确检测多核处理器的器件失效,提高了检测覆盖率,能够发现多核处理器中的性失效、随机性失效,能够将多核处理器运用到功能安全领域,达到大幅提高性能和算力的目的。

为了达到上述目的,本发明提供一种基于多核处理器二取二架构的功能安全检测方法,采用两个多核处理器组成多核处理器二取二架构,两个多核处理器按照指定的内核来运行应用程序,在应用程序运行过程中的对执行顺序敏感的关键节点处植入检查点,在每个检查点处生成时序校核字,两个多核处理器实时比较双方生成的时序校核字。

所述生成时序校核字的方法包含:按照应用程序的运行顺序依次在每个检查点中采用顺序校验函数计算时序校核字,最终得到时序校核字序列。

设所述顺序校验函数为F,所述顺序校验函数F的输入值序列设为U={u

所述输出值序列的计算式为:v

所述顺序校验函数F采用多项式除法。

根据指定的应用程序的运行顺序,采用公式u

当应用程序中涉及到分支语句时,分别在各个分支入口设置检查点,在走出所有分支后的汇合点也设置检查点。

在各个分支入口的检查点,将分支判断的条件作为时序校核字的输入值的一部分进行计算,在走出所有分支后的汇合点,再次将分支判断的条件作为时序校核字的输入值进行计算。

当应用程序中涉及到循环语句时,分别在循环体的入口和循环体的出口设置检查点。

在循环体的入口检查点将循环判断的条件作为时序校核字的输入值的一部分进行计算,在循环结束后,在循环体的出口检查点将循环判断的条件作为时序校核字的输入值的一部分进行计算。

对两个多核处理器中的每个内核逐一进行指令集检测,每个多核处理器的检测结果传给对方进行互相校验,校验通过才能进入正常运行状态。

在应用程序运行过程中,保持指定的内核不变。

两个多核处理器实时比较双方的应用程序的输入数据。

两个多核处理器实时比较双方的应用程序的运算中间结果。

两个多核处理器实时比较双方的应用程序的输出数据。

两个多核处理器实时比较双方的系统自检结果。

两个多核处理器实时比较的所有结果一致,则多核处理器二取二架构输出应用程序的输出数据,两个多核处理器实施比较的任意一项结果不一致,则多核处理器二取二架构保持在安全侧状态,不产生输出。

本发明将多核处理器应用于功能安全领域,相比于传统的单核处理器,大幅提高了性能和算力。通过初始化时对多核处理器中每个内核逐一进行指令测试,来实现对处理器的高检测覆盖率,以发现处理器中的潜在失效。指定运行应用程序的所需的内核,确保运行的内核保持在检测范围内。通过植入检查点,并执行特定的顺序校验算法,生成时序校核字,保证计算顺序能被验证,以发现在多个核中调度产生的随机失效。通过双运算通道运算过程中多次的数据比较,保证出现的随机失效能被检测到。当检测到失效后,系统保持在安全侧,防止之后新的失效导致系统产生危险输出。本发明有助于将多核处理器应用在功能安全关键领域,提升了系统性能,提供更多功能。

附图说明

图1是本发明提供的一种基于多核处理器二取二架构的功能安全检测方法的运行示意图。

图2是本发明一个实施例中分支语句的检查点示意图。

图3是本发明另一个实施例中循环语句的检查点示意图。

具体实施方式

以下根据图1~图3,具体说明本发明的较佳实施例。

如图1所示,本发明提供一种基于多核处理器二取二架构的功能安全检测方法,采用两个多核处理器组成多核处理器二取二架构,在初始化时,需要对两个多核处理器中的每个内核逐一进行指令集检测,来实现对处理器的高检测覆盖率,以发现处理器中的潜在失效。每个多核处理器的检测结果传给对方进行互相校验,校验通过才能进入正常运行状态,如果校验不通过,则多核处理器二取二架构保持在安全侧状态,不产生输出。在多核处理器二取二架构上可以运行各种类型的应用程序,在多核处理器上运行应用程序时,操作系统指定运行该应用程序所需的内核,并且在运行过程中,保持指定的内核。比如,在运行应用程序A时,两个多核处理器都采用内核1来运行应用程序A,而在运行应用程序B时,两个多核处理器都采用3个内核来执行。这样做的目的是确保通过比对来检查的内核和正常运行的内核是一致的,这样内核中潜在的问题能够被比对检查出来。在多核处理器二取二架构开始运行应用程序时,应用程序的输入数据被同时送到两个多核处理器中处理,两个多核处理器根据操作系统指定的内核对所述输入数据进行处理,在多核处理器运行应用程序的过程中,通过在应用程序中植入检查点,并运行顺序校验算法生成时序校核字,所述时序校核字用于验证多核处理器的运行顺序,以发现在多个内核中线程调度产生的系统性失效或随机性失效。在应用程序的运行过程中,会产生安全关键数据,所述安全关键数据包含输入数据、运算中间结果、输出数据、系统自检的结果、时序校核字等等。所述输入数据是应用程序所需的输入数据,它可能来自于外部通信,数据采集等。所述运算中间结果指的是应用程序运算的中间结果,比如运算中间重要步骤暂存的结果。所述输出数据指应用程序运算得到的最后结果。所述系统自检的结果,指的是多核处理器对自身的器件进行检查,确认自身工作状态是否正常。对两个多核处理器的安全关键数据进行对比,可以发现多核处理器执行程序中出现的随机性失效,如果对比结果一致,则多核处理器二取二架构将对比一致的输出数据进行输出,如果对比结果不一致,则多核处理器二取二架构保持安全侧的输出,防止之后新的失效导致产生危险输出。

所述时序校核字是对软件运行时序的校验,只有软件按照正确的时序进行运行才能生成正确的时序校核字。在本实施例中,基于有限状态机的算法来生成时序校核字,具体方法包含:在应用程序运行过程中的关键节点植入检查点,按照运行顺序依次在每个检查点中计算时序校核字,最终得到时序校核字序列。

所述关键节点是指在应用程序的运行过程中,对执行顺序敏感的位置。比如,某些线程必须先进行A步,然后才能执行B,顺序不能搞错;又比如,某些判断条件的分支,走的分支不一样,则运行的结果差别很大;再比如,循环体中,执行循环次数错误,运行结果也是错的。关键节点就是对这些执行顺序敏感的位置。

在本实施例中,采用顺序校验函数来计算时序校核字,设顺序校验函数为F,输入值序列设为U={u

在实际应用中,将u

如图2所示,在本发明的一个实施例中,当应用程序中涉及到分支语句时,分别在各个分支入口设置检查点,在走出所有分支后的汇合点也设置检查点,在各个分支入口的检查点,将分支判断的条件作为时序校核字的输入值(修正值)的一部分进行计算,在走出所有分支后的汇合点,再次将分支判断的条件作为时序校核字的输入值进行计算。同样地,预先应设置好各分支中不同的修正值,使得不同分支完成后的检查点,计算得到的时序校核字的值是一致的。

在本实施例中,对于应用程序中的分支语句:

当应用程序走在第一个分支时,中间判断条件计算的值为1,按照1去计算时序校核字;当应用程序走在第二个分支时,中间判断条件计算的值为-1,按照-1去计算时序校核字;等到了走出分支后的检查点时,会再次根据1或者-1再算一次时序校核字,确保走的路径是对的。

如图3所示,在本发明的另一个实施例中,当应用程序中涉及到循环语句时,分别在循环体的入口和循环体的出口设置检查点,在循环体的入口检查点将循环判断的条件作为时序校核字的输入值(修正值)的一部分进行计算,在循环结束后,在循环体的出口检查点将循环判断的条件作为时序校核字的输入值(修正值)的一部分进行计算,计算得到的时序校核字是指定的值,与循环次数无关。

本发明将多核处理器应用于功能安全领域,相比于传统的单核处理器,大幅提高了性能和算力。通过初始化时对多核处理器中每个内核逐一进行指令测试,来实现对处理器的高检测覆盖率,以发现处理器中的潜在失效。指定运行应用程序的所需的内核,确保运行的内核保持在检测范围内。通过植入检查点,并执行特定的顺序校验算法,生成时序校核字,保证计算顺序能被验证,以发现在多个核中调度产生的随机失效。通过双运算通道运算过程中多次的数据比较,保证出现的随机失效能被检测到。当检测到失效后,系统保持在安全侧,防止之后新的失效导致系统产生危险输出。本发明有助于将多核处理器应用在功能安全关键领域,提升了系统性能,提供更多功能。

需要说明的是,在本发明的实施例中,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述实施例,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号