首页> 中国专利> 使用处理器和多样化固件的多样化集成处理

使用处理器和多样化固件的多样化集成处理

摘要

提供了使用处理器和多样化固件的多样化集成处理。提供了实现相同处理器的故障检测设备、系统和方法。第一处理器配置为接收第一测量结果,基于第一测量结果执行第一固件,并且输出所执行的第一固件的第一结果。与第一处理器相同的第二处理器配置为接收第二测量结果,基于第二测量结果执行第二固件,并且输出所执行的第二固件的第二结果。第一固件和第二固件以多样化方式提供相同标称功能以用于分别计算第一结果和第二结果,使得预期第一结果和第二结果将处在预确定的裕度内。因而,可以通过比较第一和第二结果来检测故障。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    授权

    授权

  • 2018-02-13

    实质审查的生效 IPC(主分类):G01D18/00 申请日:20170712

    实质审查的生效

  • 2018-01-19

    公开

    公开

说明书

技术领域

本公开大体涉及用于检测系统中的故障的设备、系统和方法,并且更具体地涉及使用相同处理器和多样化固件的多样化集成处理。

背景技术

鉴于现代汽车增加的自动化和半导体含量,机动客车中的电子系统的功能安全性是重要的议题。合期望的是具有用于部署在系统中的安全性关键部件的可靠且安全的功能性。

在这样的安全性关键应用中可能通常存在的一个要求在于,传感器设备的失灵必须由系统可检测,例如通过实体从传感器设备接收信号可检测。换言之,根据这样的要求,必须可能检测传感器设备是否例如归因于传感器设备的故障而递送误差值。确保这一点的一种方案是提供冗余性,例如提供两个分离的传感器用于测量相同的物理量。这两个传感器设备的测量结果之间高于阈值的偏差可以指示所提供的两个传感器中的至少一个的失灵。然而,提供这样的冗余性要求附加的芯片空间。

另外,硬件解决方案可以使用不同类型的处理器,所述不同类型的处理器使用不同的硬件架构开发。相比于复制的同质冗余性架构而言,不同的硬件架构要求至少加倍的核验努力以达到相同的质量。此外,不同架构上的相同功能性的实现是易于出错的并且隐含着临界情况以非意图方式不同地起作用的高风险。临界情况典型地牵涉到仅发生在正常操作参数之外的问题或情形,特别地,在多个环境变量或条件同时处于极端水平时证明(manifest)自身的问题或情形(即便每一个参数处在用于该参数的指定范围内)。

另外,可以并行地使用浮点和定点架构来以冗余性方式执行实际数学计算。比较结果,并且分析结果中的差异以确定它是否处在由计算精度指定的裕度内。一般地,这种实现不是高效的,因为它要求利用定点和浮点的实现,所述利用定点和浮点的实现将该应用限制于支持定点和浮点二者的处理器。此外,一些计算可能经受相同系统性失效,即便它们实现为定点和浮点。

另一种已知的实现称为“编码处理”,作为一个示例,其利用AN编码。AN编码是扩展数据数空间的方法。原始数据在处理之前与特定代码相乘并且随后检查所计算的结果是否仍然处在预期的数空间中。该方法主要用于保护单个处理器功能以防不正确的计算。

然而,这种类型的编码增加了针对数空间所要求的位宽,这对于嵌入式计算并且尤其是固件而言是严重的不利之处。更高的位宽还隐含着整个架构中更多的路由布线和更高的晶体管计数,这增加了失效可能性的数量。这还解释了为什么该方法目前仅建立在使用高硬件复杂性的过程计算机的应用中。

发明内容

实施例提供了一种故障检测系统,其包括第一处理器和第二处理器,所述第一处理器配置为接收第一测量结果、基于第一测量结果执行第一固件、并且输出所执行的第一固件的第一结果,所述第二处理器与所述第一处理器相同并且配置为接收第二测量结果、基于第二测量结果执行第二固件、并且输出所执行的第二固件的第二结果。第一固件和第二固件以多样化方式提供相同标称功能以用于分别计算第一结果和第二结果,使得预期第一结果和第二结果将处在预确定的裕度内。

故障检测系统可以还包括第一比较组件和第二比较组件,所述第一比较组件配置为比较第一结果与第二结果并且输出比较结果,所述第二比较组件配置为接收比较结果、基于比较结果和预确定的裕度来确定故障是否存在、以及在检测到故障的条件下输出故障检测信号。

实施例提供了一种用于检测故障的方法,包括通过第一处理器执行第一固件以及通过与第一处理器相同的第二处理器执行第二固件,通过第一处理器执行第一固件包括接收第一测量结果、基于第一测量结果执行第一算法、以及输出所执行的第一算法的第一结果,通过与第一处理器相同的第二处理器执行第二固件包括接收第二测量结果、基于第二测量结果执行第二算法、以及输出所执行的第二算法的第二结果。第一固件和第二固件以多样化方式提供相同标称功能以用于分别计算第一结果和第二结果,使得预期第一结果和第二结果将处在预确定的裕度内。

所述方法可以还包括比较第一结果与第二结果并且输出比较结果,基于比较结果和预确定的裕度来确定故障是否存在,以及在检测到故障的条件下输出故障检测信号。

附图说明

在本文中参照附图来描述实施例。

图1是根据一个或多个实施例的示例集成电路的框图;

图2是根据一个或多个实施例的另一个示例集成电路的框图;

图3是根据一个或多个实施例的计算机系统的框图;

图4a和4b示出了根据一个或多个实施例的时间多样化固件/软件调度的示例;以及

图5图示了根据一个或多个实施例的示例故障检测方法的流程图。

具体实施方式

在下文中,将详细地参照附图来描述各种实施例。应当指出,这些实施例仅服务于说明性目的并且不应解释为限制性的。例如,尽管可以将实施例描述为包括多个特征或元件,但是这不应解释为指示需要所有这些特征或元件以用于实现实施例。相反,在其它实施例中,这些特征或元件中的一些可以省略,或者可以由可替换特征或元件替代。附加地,除明确示出和描述的那些之外,可以提供另外的特征或元件,例如传感器设备的常规组件。

来自不同实施例的特征可以组合以形成另外的实施例,除非另有具体所指。关于实施例之一描述的变型或修改也可以适用于其它实施例。

在本文中描述或者图中示出的元件之间的连接或耦合可以是基于布线的连接或者无线连接,除非另有所指。此外,这样的连接或耦合可以是没有附加居间元件的直接连接或耦合,或者具有一个或多个附加居间元件的间接连接或耦合,只要本质上维持连接或耦合的一般目的(例如传送某种种类的信号或者传送某种种类的信息)即可。

实施例涉及传感器和传感器系统以及获取关于传感器和传感器系统的信息。如已经在背景技术章节中提到的传感器可以是指将要测量的物理量转换为电信号的组件,所述电信号例如电流信号或电压信号。物理量例如可以包括磁场、电场、压强、力、电流或电压,但是不限于此。

如在本文中使用的传感器设备可以是指包括传感器和另外的组件的设备,所述另外的组件例如是偏置电路、模数转换器或滤波器。传感器设备可以集成在单个芯片上,尽管在其它实施例中,可以使用多个芯片或者还有芯片外部的组件以用于实现传感器设备。

本文描述的实施例提供了一种多样化且冗余性的安全性功能,其建立在执行多样化固件代码或算法的微处理器的相同硬件实现的使用上(例如,每一个相同或冗余性的微处理器配置为执行固件代码,所述固件代码与(多个)其它相同或冗余性的微处理器的每一个固件代码不同)。将领会到,术语“微处理器”、“处理器”和“处理器核”可以贯穿本公开互换地使用。将进一步领会到,本文描述的概念不限于安全性功能,并且可以实现在使用故障/误差检测的任何设备或系统中。

用于多个微处理器的相同硬件可以集成到单个硅管芯(例如,集成/嵌入式微处理器)中或者可以提供在分离的管芯上。

描述了多样化固件代码的若干方法和实现。例如,一个或多个实施例可以配置为以冗余性且多样化的方式实现关键功能,以便确保检测到由冗余性实现之间的失配所致的所要求的功能的任何偏差。尽管是多样化的,但是用于每一个处理器的固件提供了相同标称功能,使得预期结果是相同的或者处在可接受或预料到的裕度内。因而,这些固件代码/算法在数学上等同,但是以不同的多样化方式实现,使得每一个处理器的每一个计算或功能的结果可以彼此比较,并且结果用于检测故障。

将领会到,可以分析第一固件FW1的第一结果R1和第二固件FW2的第二结果R2以确定结果是彼此相等(例如,R1=R2)还是小于(或者小于或等于)预确定的裕度或阈值(例如,|R1-R2|<裕度1或者|R1+R2|<裕度2,其中|“x”|指示x的绝对值,并且裕度1和裕度2可以相同或不同)。要指出,裕度或阈值可以为零或某个其它值。

将领会到,术语“代码”、“算法”和“等式”可以贯穿本公开互换地使用。

另外,一个或多个实施例可以提供一种解决方案,其最小化硬件的复杂性和用于硬件核验的努力而没有以任何方式减损安全性。

图1示出了具有(至少)两个相同的微处理器PROC1 11a、PROC2 11b的示例集成电路(IC)10的框图,所述(至少)两个相同的微处理器PROC1 11a、PROC2 11b经由多样化固件代码FW1 12和FW2 13实现多样化安全性功能。IC 10包括由一个或多个总线构成的总线架构14,所述总线架构14配置为在IC 10的一个或多个组件之间传递数据、控制信息和/或指令。IC 10可以还包括经由总线架构14连接的只读存储器(ROM)15、非易失性存储器(NVM)16、随机存取存储器(RAM)17、数字输入输出级IO_DIG 18和模拟输入输出级IO_ADC 19。数字输入输出级IO_DIG 18和/或模拟输入输出级IO_ADC 19可以根据触发或采样时间从一个或多个传感器(没有示出)接收一个或多个测量结果。因而,IC 10的处理器功能可以包括由总线架构14和一个或多个组件提供的一个或多个数据路径和一个或多个控制路径。两个或更多测量结果(例如,针对每一个处理器提供至少一个)可以彼此相同,使得预期到由固件FW1、FW2输出的预期结果将是相同的或处在可接受误差裕度内。将领会到,这些测量结果(即,测量信号)可以具有彼此相同的极性或者彼此反转,只要可以分析从固件FW1、FW2输出的结果并且使用所述结果以多样化方式检测故障即可。

将领会到,可以分析第一固件FW1的第一结果R1和第二固件FW2的第二结果R2以确定结果是彼此相等(例如,R1=R2)还是小于(或者小于或等于)预确定的裕度或阈值(例如,|R1-R2|<裕度1或者|R1+R2|<裕度2,其中|“x”|指示x的绝对值,并且裕度1和裕度2可以相同或不同)。要指出,裕度或阈值可以为零或某个其它值。

两个多样化固件代码FW1和FW2可以存储在ROM 15中并且由其对应的微处理器PROC1、PROC2经由总线架构14来访问。

两个微处理器PROC1、PROC2经由其对应的固件代码FW1、FW2配置为计算两个安全性相关结果,这两个安全性相关结果然后由比较模块或组件比较,所述比较模块或组件是配置为比较两个或更多输入的任何设备(例如,比较器、处理器等)。比较模块或组件可以进一步输出一个或多个比较结果,或者可以进一步基于比较结果而确定故障是否存在,并且如果检测到故障则输出故障检测信号。(多个)比较结果可以由比较模块、比较组件或其它确定组件使用阈值测试与阈值相比较或者与预确定的裕度相比较以便确定系统中是否存在误差或故障。

例如,由微处理器PROC1、PROC2计算的结果可以通过以下来进行比较:微处理器PROC1、PROC2中的一个的数字信号处理器(DSP),IC 10中所包括的另一个处理器(没有示出),位于“芯片外”(例如,外部电子控制单元(ECU))的经由数字和模拟输入输出级IO_DIG18和IO_ADC 19中的一个从IC 10接收结果的外部处理器(没有示出),和/或位于芯片上或芯片外的连接到数字和模拟输入输出级IO_DIG 18和IO_ADC 19中的一个的比较器。例如,数字和模拟输入输出级IO_DIG 18和IO_ADC 19中的一个可以从微处理器PROC1 11a、PROC211b、RAM 17等接收每一个结果,并且将结果输出给外部设备(例如,ECU)。可以通过相同或不同比较/确定模块或组件而存在一个或多个比较级以便做出故障确定并且输出故障检测信号。

可替换于在ROM 15中存储固件的是,在给定访问时间足够快以便应对微处理器PROC1 11a和PROC2 11b的要求的情况下,程序固件代码FW1 12和FW2 13可以存储在NVM 16中。NVM 16可以是任何类型的NVM,包括可编程只读存储器(PROM)(例如,可擦除可编程只读存储器(EEPROM)、闪速存储器等)。

RAM 17可以进一步配置为存储微处理器PROC1 11a和PROC2 11b的中间结果。

IO_DIG 18可以包括数字接口以用于从以上标识的组件中的任一个接收数字信号,并且在具有或者没有进一步数字信号处理器的情况下向外部设备输出数字信号。

IO_ADC 19可以包括具有嵌入其中的处理器(例如,模拟向数字(ADC)处理器)的模拟接口以用于从以上标识的组件中的任一个接收模拟信号。因而,IO_ADC 19可以向外部设备输出模拟和/或数字信号。

图2示出了具有(至少)两个微处理器PROC1 21a、PROC2 21b的示例IC 20的框图,所述(至少)两个微处理器PROC1 21a、PROC2 21b经由多样化固件代码FW1 22和FW2 23实现多样化安全性功能,所述多样化固件代码FW1 22和FW2 23的结果如本文中描述的那样进行比较。IC 20包括总线架构24,所述总线架构24配置为在IC 20的一个或多个组件之间传递数据、控制信息和/或指令。

IC 20可以还包括连接到两个微处理器PROC1 21a、PROC2 21b中的对应一个的(至少)两个ROM 25a和25b。因而,作为进一步的安全性考虑,每一个微处理器PROC1 21a、PROC221b可以经由专用总线24a和24b连接到专用ROM1 25a和ROM2 25b,所述专用ROM1 25a和ROM2 25b存储用于微处理器PROC1 21a、PROC2 21b的对应固件代码FW1 22、FW2 23。因为ROM1 25a和ROM2 25b彼此分离(即,相互排斥),所以假如ROM中的一个失效则通过所添加的冗余性来保护总体系统。

专用总线24a和24b分别提供了从ROM1和ROM2到微处理器PROC1、PROC2的控制路径。因而,IC 20中的冗余性增加,并且假如一个路径失效,另一个路径可以保持有效。

IC 20可以还包括经由总线架构24连接的NVM 26、RAM 27、数字输入输出级IO_DIG28和模拟输入输出级IO_ADC 29。数字输入输出级IO_DIG 28和/或模拟输入输出级IO_ADC29可以根据触发或采样时间从一个或多个传感器(没有示出)接收一个或多个测量结果。因而,IC 20的处理器功能可以包括由总线架构24和一个或多个组件提供的一个或多个数据路径和一个或多个控制路径。两个或更多测量结果(例如,针对每一个处理器提供至少一个)可以彼此相同,使得预期到由固件FW1、FW2输出的预期结果将是相同的或者处在可接受误差裕度内。将领会到,这些测量结果(即,测量信号)可以具有彼此相同的极性或者彼此反相,只要可以分析从固件FW1、FW2输出的结果并且使用所述结果以多样化方式检测故障即可。

将领会到,可以分析第一固件FW1的第一结果R1和第二固件FW2的第二结果R2以确定结果是彼此相等(例如,R1=R2)还是小于(或者小于或等于)预确定的裕度或阈值(例如,|R1-R2|<裕度1或者|R1+R2|<裕度2,其中|“x”|指示x的绝对值,并且裕度1和裕度2可以相同或不同)。要指出,裕度或阈值可以为零或某个其它值。

可替换地,在给定访问时间足够快以便应对微处理器PROC1 21a和PROC2 21b的要求的情况下,程序固件代码FW1 22和FW2 23可以存储在专用NVM(没有示出)中,而不是专用ROM中。NVM可以是任何类型的NVM,包括可编程只读存储器(PROM)(例如,可擦除可编程只读存储器(EEPROM)、闪速存储器等)。

RAM 27可以进一步配置为存储微处理器PROC1 21a和PROC2 21b的中间结果。

IO_DIG 28可以包括数字接口以用于从以上标识的组件中的任一个接收数字信号,并且在具有或者没有进一步数字信号处理的情况下向外部设备输出数字信号。

IO_ADC 29可以包括具有嵌入其中的处理器(例如,ADC处理器)的模拟接口以用于从以上标识的组件中的任一个接收模拟信号。因而,IO_ADC 29可以向外部设备输出模拟和/或数字信号。

下面提供多样化固件代码FW1和FW2的示例,其提供了多样化功能,包括多样化加法、多样化乘法和多样化多项式。两个多样化代码FW1、FW2在下文出于简化起见以数学记法示出。然而,有本领域知识的人员将领会到,代码FW1、FW2以特定于处理器PROC1和PROC2的二进制代码或汇编语言来实现。

代码FW1和FW2二者提供相同标称功能(例如,加法、乘法、多项式等)。也就是说,多样化固件代码FW1和FW2在数学上彼此等同,具有标称功能的不同实现。例如,数个指令(例如,操作代码或操作码)、指令序列(例如,操作代码或操作码)和/或操作次序(或操作符位次)可以在固件代码之间不同。此外,固件代码FW1和FW2的程序长度可以不同。将进一步领会到,尽管提供了两个多样化固件代码,但是可以实现多于两个多样化固件代码,针对每一个冗余性处理器一个。

提供了多样化加法算法的第一示例:

FW1)A=B+C等式1a

FW2)A=(B*α)+C+(B*β),其中α+β=1 等式1b。

在多样化加法的第一示例中,A是函数结果(例如,磁场值、偏离值、增益值等),B是在第一时间测量的来自第一传感器的输出(例如,原始值),C是在第二时刻处测量的来自第一传感器的第二输出、来自第二传感器的输出、或者存储在NVM(例如,EEPROM、ROM等)中的常数值,并且α和β的值使得α和β的和等于1。第二传感器可以是与第一传感器相同类型的传感器,并且此外,可以与第一传感器相同,并且在与第一传感器相同或不同的时间和/或位置处提供测量结果。例如,B可以是磁性传感器的原始测量值,并且C可以是来自温度传感器的附加传感器值(例如,温度测量值)。有本领域知识的人员将领会到,执行等式1a和1b的指令序列和数个指令可以彼此不同,但是在处理器、传感器和/或系统正常操作时,结果A应当相同。因而,等式1a和1b在数学上等同。

传感器可以包括任何传感器(例如,磁场传感器、位置传感器、速度传感器、加速度传感器、压强传感器、温度传感器、应力传感器等),其测量和/或检测环境中的属性、事件和/或改变,并且以电气或光学信号的形式输出结果。磁场传感器可以还包括霍尔传感器或磁阻传感器xMR(例如,巨磁阻(GMR)、隧穿磁阻(TMR)、各向异性磁阻(AMR)、庞磁阻(CMR)等)。

一个或多个传感器可以提供在相同管芯上的相同封装中或者不同管芯上的不同封装上。此外,一个或多个传感器可以位于封装内、封装外、并排定位和/或彼此堆叠。此外,每一个固件可以存储在集成于与对应传感器相同的管芯上的存储器中。

提供了多样化加法算法的第二示例:

FW1) A=B+C等式2a

FW2) A=(B AND AAAAh)+(C AND AAAAh)+(B AND 5555h)+(C AND 5555h)等式2b。

在多样化加法的第二示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。此外,“AAAAh”和“5555h”是掩码(例如,解构掩码或者掩码值),其中“h”指示以十六进制格式表示该值(例如,“AAAA”或“5555”)。“AND”表示逻辑与操作。

等式2b可以进一步以一般形式表示为等式2c:

FW2')A = (B AND Y1Y2Y3Y4h)>1Y2Y3Y4h)>1Z2Z3Z4>h) + (C ANDZ1Z2Z3Z4h)等式2c

在等式2c中,Y1Y2Y3Y4和Z1Z2Z3Z4一般涉及用作掩码(即,掩码值)的十六进制数字串,其中例如Y1Y2Y3Y4h+Z1Z2Z3Z4h=FFFFh。因而,这些等式在数学上等同。

提供了多样化加法算法的第三示例:

FW1) A=B+C等式3a

FW2) A=B 等式3b

重复,直至C=0

A=A+1

C=C-1。

在多样化加法的第三示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。因而,这些等式在数学上等同。

提供了多样化加法算法的第四示例:

FW1) A=B+C等式4a

FW2) B1=B+D;等式4b

C1=C-D; 并且

A=B1+C1。

在多样化加法的第四示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。此外,D可以是固定的或者在每一次计算时改变的任何任意数字,并且B1和C1是函数结果。因而,这些等式在数学上等同。

提供了多样化乘法算法的第一示例:

FW1) A=B*C等式5a

FW2) A=B*(C*α)+(B*β)*C,其中α+β=1等式5b。

在多样化乘法的第一示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。此外,α和β的值使得α和β的和等于1。因而,这些等式在数学上等同。

提供了多样化乘法算法的第二示例:

FW1) A=B*C等式6a

FW2) A=0等式6b

重复,直至C=0

A=A+B

C=C-1。

在多样化乘法的第二示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。因而,这些等式在数学上等同。

提供了多样化乘法算法的第三示例:

FW1) A=B*C等式7a

FW2) A=((B+C)2-B2-C2)/2等式7b。

在多样化乘法的第三示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。因而,这些等式在数学上等同。

提供了多样化乘法算法的第四示例:

FW1) A=B*C等式8a

FW2) A=(B2+C2-(B-C)2)/2等式8b。

在多样化乘法的第四示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。因而,这些等式在数学上等同。

提供了多样化乘法算法的第五示例:

FW1) A=B*C等式9a

FW2)A = (B AND AAAAh) * (C AND AAAAh) + (B AND AAAAh) * (C AND 5555h) +(B AND 5555h) * (C AND AAAAh) + (B AND 5555h) * (C AND 5555h)等式9b

等式9b可以进一步以一般形式表示为等式9c:

FW2')A = (B AND Y1Y2Y3Y4h)>1Y2Y3Y4h)>1Y2Y3Y4h)>1Z2Z3Z4h)>1Z2Z3Z4>h) *(C AND Y1Y2Y3Y4h)+>1Z2Z3Z4h)>1Z2Z3Z4h),其中Y1Y2Y3Y4h+>1Z2Z3Z4h>

在多样化乘法的第五示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。此外,掩码值类似于关于多样化加法的第二示例描述的那些。因而,这些等式在数学上等同。

提供了多样化乘法算法的第六示例:

FW1) A=B*C等式10a

FW2) D1=B+C;等式10b

D2=B-C; 并且

A=[(D1*D1)-(D2*D2)]/4。

在多样化乘法的第五示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。此外,D1和D2是函数结果。因而,这些等式在数学上等同。

提供了使用二阶多项式的多样化多项式算法的第一示例:

FW1) A = aX2>

FW2) A = (aX + b) * X + c等式11b。

A是函数结果(例如,磁场值、偏离值、增益值等),X是来自传感器的输出,并且a、b和c是常数值。特别地,X可以是用于线性化的补偿信号(例如,温度),或者测量信号,如果例如需要转移函数的任何多项式校正的话。因而,这些等式在数学上等同。

提供了使用二阶多项式的多样化多项式算法的第二示例:

FW1) A = aX2>

FW2) A = ((a*d)X2>+ (b*d)X + c*d)/d等式12b。

除在多样化多项式的第一示例中描述的符号之外,d可以是固定的或者在每一次计算时改变的任何任意数字,或者是易于在二进制系统中计算的二进制分数数字。因而,这些等式在数学上等同。

提供了使用三阶多项式的多样化多项式算法的第三示例:

FW1) A = aX3>2>

FW2) A = [(aX + b) * X + c ] * X + d等式13b。

在多样化多项式的第三示例中,符号A、B和C表示类似地关于多样化加法的第一示例描述的变量。因而,这些等式在数学上等同。

提供了使用三阶多项式的多样化多项式算法的第四示例:

FW1) A = aX3>2>

FW2) A = ((a*e)X3+(b*e)X2+>

除在多样化多项式的第一示例中描述的符号之外,d可以是固定的或者在每一次计算时改变的任何任意数字,或者是易于在二进制系统中计算的二进制分数数字。此外,e是另外的常数变量。因而,这些等式在数学上等同。

此外,在以上示例中的任一个中,可以实现固件FW1或FW2的第一算法,并且固件FW2或FW1的第二算法可以是第一算法的反转实现。可替换地,为了创建多样化实现,在固件中使用测量结果或输出之前,可以使传感器的输出或测量结果(即,测量信号)中的一个或多个反转。例如,可以将测量信号输入到固件FW1,并且可以将测量信号的反转输入到固件FW2。可替换地,第一测量信号可以输入到固件FW1,并且另一个测量信号的反转可以输入到固件FW2。

因而,在一个或多个实施例中,多样化FW(例如,FW1和FW2)利用一个或多个相同物理量的测量结果(即,非反转),并且在其它的一个或多个实施例中,多样化FW(例如,FW1和FW2)利用一个或多个相同物理量的测量结果并且一个通道具有与另一个通道反转的极性(即,反转)。固件之一然后可以使用反转功能(即,与另一个固件反转)以在计算结果时补偿相反极性。

将领会到,可以分析第一固件FW1的第一结果R1和第二固件FW2的第二结果R2以确定结果是彼此相等(例如,R1=R2)还是小于(或者小于或等于)预确定的裕度或阈值(例如,|R1-R2|<裕度1或者|R1+R2|<裕度2,其中|“x”|指示x的绝对值,并且裕度1和裕度2可以相同或不同)。要指出,裕度或阈值可以为零或某个其它值。

多样化固件代码(诸如以上描述的那些)可以根据其检测计算误差的能力来归类,所述计算误差由两个相同处理器PROC1和PROC2内的系统性硬件故障引发。

为此,应当考虑关于处理器的以下事实。处理器(例如,PROC1和PROC2)包括如在图3中示出的控制结构和数据路径结构。

图3示出了具有与存储器系统34通信的处理器32(例如,中央处理单元(CPU))的计算机系统30的框图。处理器32还包括一个或多个控制结构36(例如,指令单元)和一个或多个数据路径结构38(例如,执行单元)。控制路径单元36可以取得指令并且通过有限状态机(FSM)进行解译。数据路径单元38可以包括功能单元和寄存器。

根据图3,处理器功能由控制路径和数据路径构成。(多个)控制结构36负责固件程序流、固件代码的解译以及计算动作的发起。控制结构的典型元件是程序计数器、指令寄存器、代码解译单元、微代码、代码取得单元等。(多个)数据路径结构38负责数据的输运、中间数据结果的存储、以及基本逻辑和数学操作的执行。数据路径结构的典型元件是累加器、数据寄存器、加法器、乘法器、移位单元等。

所提出的多样化代码FW1、FW2被视为对于在表1中指出的以下种类的系统性失效是尤其有效的。

系统性失效可以指示引起失效的系统内的规格故障或设计问题。在使用两个多样化FW的情况下,存在以下高概率:倘若系统性故障发生,两个FW将在基本上相同的时间产生误差结果。因此,可以通过确定从固件输出的结果不正确并且在基本上相同的时间检测到这些有故障的结果来检测系统性故障。

非意图执行序列、省略命令或附加命令可以指示处理器中的一个或多个可能已经执行与预期不同的命令或者将额外命令插入其操作中(例如,执行了命令两次),这导致不正确的结果。

命令解译中的故障可以指示处理器中的一个或多个可能已经不正确地解译操作命令或指令,这引起命令的错误执行。

归因于逻辑或算术故障的错误结果可以指示处理器中的一个或多个在其固件的操作期间产生了错误结果(例如,中间结果),这引起不同的效果(即,错误的最终结果)。

所提出的多样化代码FW1、FW2还对于随机硬件故障的检测有效。随机硬件故障遵循概率分布并且总是存在,但不是系统性的。它们可以细分为硬误差或软误差。示例在表2中指出。

处理器RAM误差可以指示存储器内的一个或多个失效,其可能在固件FW1、FW2中的一个或多个的执行中引起不同的效果。

鉴于表1和2,每一个固件FW1、FW2可以包括一个或多个类型的算法(例如,加法、乘法、多项式等)使得一个固件中的算法与另一个固件中的另一个数学上等同但多样化的算法配对或链接,并且可以由处理器PROC1、PROC2或控制单元中的一个或多个基于期望测试的误差/故障的类型来选择算法的类型。

还可以提供软件和/或固件的时间多样性。例如,附加的可能性将是实现时间多样化的软件/固件处理。作为表征性特征,可以针对每一个固件FW1和FW2选择多样化(不同的)采样和处理时间并且将所述多样化(不同的)采样和处理时间组合以形成具有相同平均寿命的两个多样化结果。将结果寿命限定为采样时间和结果输出时间之间的时间延迟。因而,针对固件FW1的处理时间和测量结果的采样时间可以根据第一平均寿命来选择,并且针对固件FW2的处理时间和测量结果的采样时间可以根据第二平均寿命来选择,使得第一平均寿命和第二平均寿命相同。针对每一个固件的采样时间和处理时间中的一个或多个可以相同或不同,只要针对每一个固件的平均寿命相同即可。因而,实现时间多样性的固件FW1和FW2的预期结果相同或者处在预确定的裕度内,如上文所述,并且可以分析每一个固件的结果以确定是否存在误差。

此外,可以针对每一个固件FW1、FW2执行两遍或更多遍测量,使得对于每一遍测量的FW1的组合平均寿命与对于每一遍测量的FW2的组合平均寿命相同。因而,FW1中的两个或更多测量样本的平均寿命与FW2中的两个或更多测量样本的平均寿命相同,使得FW1和FW2的预期结果相同或者处在预确定的裕度内,如上文所述。

因而,作为示例,第一测量结果包括在多个第一采样时间处采样的多个第一测量结果,所述多个第一采样时间当在一起平均时限定第一平均采样时间,并且第二测量结果包括在多个第二采样时间处采样的多个第二测量结果,所述多个第二采样时间限定与第一平均采样时间相等的第二平均采样时间。第一处理器通过执行固件FW1而配置为计算多个第一测量结果的第一测量结果平均并且基于第一测量结果平均而计算第一结果。类似地,第二处理器通过执行固件FW2而配置为计算多个第二测量结果的第二测量结果平均并且基于第二测量结果平均而计算第二结果。比较第一和第二结果以确定故障是否存在,或者两个处理器以及作为整体的系统是否正常操作。

通过使用时间多样性,可以测量和监视正评估相同物理量(例如,磁场、温度、压强、应力等)的冗余性传感器通道。此外,通过使用冗余性传感器通道上的时间多样性,可以通过硬件或软件在两个通道的相同采样时间处(例如,为了获得两个通道的相同信号寿命)或者在不同时隙处(即,不同采样时间)触发测量,以便确保所测量的量没有受相同干扰影响。也就是说,影响一个或多个传感器通道的干扰可以存在于一个时刻处,但是也许没有存在于另一个时刻处。

所采样的值可以由固件和/或软件在通过硬件、固件和/或软件调度的不同时隙(即,不同处理时间)处进行处理,以便确保在干扰的情况下,没有以相同方式影响冗余性传感器通道的固件/软件处理。

所采样的值的处理可以包括以下操作中的一个或多个:关于例如温度和应力效果(或其它物理量效果)的补偿算法的计算,用于每一个冗余性传感器通道的安全性机制的执行(例如,执行输入信号的范围检查等),以及在每一个传感器通道的所处理的测量数据之间进行交叉检查(例如,比较温度或其它物理量、似真度(plausibility)检查等)。此外,可以利用测量数据(例如,滚动计数、时间戳等)来处置由数字协议(例如,外围传感器接口5(PSI5)、短脉宽调制(PWM)代码(SPC)协议等)传送的附加信息。

图4a和4b示出了时间多样化固件和/或软件实现的调度实现的示例。

特别地,图4a示出了用于固件FW1的调度实现使得算法在第一时隙41a中执行,内置自测试(BIST)在第二时隙42a中执行,EEPROM循环冗余性检查(CRC)和安全性测试在第三时隙43a中执行,并且测试模式在第四时隙44a中执行。

类似地,图4b示出了用于具有四个时隙的固件FW2的调度实现,所述四个时隙具有与FW1不同的过程实现(例如,移位至少一个时隙)。例如,测试模式在第一时隙41b中执行,算法在第二时隙42b中执行,内置自测试(BIST)在第三时隙43b中执行,EEPROM循环冗余性检查(CRC)和安全性测试在第四时隙44b中执行。

鉴于以上所述,多样化时间和/或固件实现对于多通道传感器(即,具有至少两个通道的传感器)的情况可以是尤其有价值的。每一个通道的结果(比如在编码处理中)之间的直接1:1比较可能是不可行的,因为每一个通道具有某个测量容差,其引起结果数目可能不相同的事实。然而,每一个通道可以连接到具有多样化固件和/或时间多样性的相同处理器中的一个,并且比较结果使得将结果之间的差异与预确定的裕度容差或阈值容差相比较以确定误差是否存在,如上文所述。

因而,可以基于微处理器的相同硬件实现而实现多样化冗余性安全性功能。这可以避免硬件中易于出错的两次实现相同功能性。对于给定核验努力,硬件的核验质量极大地增加。此外,可以减少临界情况以非意图方式不同地起作用的风险。

图5图示了示例故障检测方法500的流程图。该方法包括通过第一处理器使用第一测量结果作为输入而执行第一多样化固件并且生成第一结果(操作501),以及通过与第一处理器相同的第二处理器使用第二测量结果作为输入而执行第二多样化固件并且生成第二结果(操作502)。方法500还可以包括通过一个或多个传感器测量第一和第二测量结果,以及通过第一和第二处理器接收相应的第一和第二测量结果。方法500还包括通过比较组件比较第一和第二结果(操作503)并且通过确定组件基于比较结果而确定是否检测到故障(操作504)。如果没有检测到故障,该过程结束(操作505)。此外,如果没有检测到故障,可以通过确定组件输出正常条件检测信号。此外,该过程可以针对另外的(连续)测试而重新开始。如果检测到故障,通过确定组件输出故障检测信号(操作506)。此外,该过程可以针对另外的(连续)测试而重新开始。

尽管已经在装置的上下文中描述了一些方面,但是清楚的是,这些方面还表示对应方法的描述,其中块或设备对应于方法步骤或者方法步骤的特征。类似地,在方法步骤的上下文中描述的方面还表示对应装置的对应块或项目或特征的描述。方法步骤中的一些或全部可以由(或使用)硬件装置执行,所述硬件装置比如例如微处理器、可编程计算机或电子电路。在一些实施例中,方法步骤中的某一个或多个可以由这样的装置执行。

关于由以上描述的组件或结构(组装件、设备、电路、系统等)执行的各种功能,除非另有指示,否则用于描述这样的组件的术语(包括对“部件”的引用)意图对应于执行所描述组件的指定功能(即,在功能上等同)的任何组件或结构,即便在结构上不等同于所公开的执行在本文图示的本发明示例性实现中的功能的结构。

取决于某些实现要求,本文提供的实施例可以实现在硬件中或软件中。实现可以使用其上存储有电子可读控制信号的数字存储介质执行,所述数字存储介质例如软盘、DVD、蓝光盘、CD、ROM、PROM、EPROM、EEPROM或闪速存储器,所述数字存储介质与(或者能够与)可编程计算机系统协作使得执行相应方法。因此,数字存储介质可以是计算机可读的。

以上描述的示例性实施例仅仅是说明性的。要理解到,本文描述的布置和细节的修改和变型对于本领域技术人员将是显而易见的。因此,其意图仅由所附专利权利要求的范围来限制,而不由作为本文的实施例的描述和解释而呈现的具体细节来限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号