包含安全装置的三重寄存器的制作方法

文档序号:25543670发布日期:2021-06-18 20:40
包含安全装置的三重寄存器的制作方法

本发明处于保护搭载于旨在空中航行的航空器上的电子寄存器并保障其安全的领域。



背景技术:

在高海拔处,电子部件会暴露于高能粒子中。这些粒子通常是中子。这些粒子可能会影响电子电路的操作。举例来说,这些粒子可以改变触发器或寄存器的状态。

在航空领域,正确操作电子设备对于确保飞机、机组人员和乘客的安全至关重要。现在,趋向于使电子部件更加小型化的电子技术趋势正在使它们对这种类型的干扰越来越敏感。

为了克服此重大缺陷,已实施了一些技术解决方案以保护最关键的部件。例如,可编程逻辑电路的最关键的寄存器(“programmablelogicdevice(可编程逻辑器件)”被缩写为pld)受到机制的保护,这些机制可使其对这些粒子引起的更改具有鲁棒性。

通常,认为一个且同一个粒子只能改变pld的单个触发器,这与“ram”存储器不同,在ram存储器中单个粒子可能会改变若干个比特。

基于这种情况,三重化是一种非常普遍的保护寄存器的方法。在图1和2中对其进行了描述。图1示出了多数表决原则,图2示出了寄存器的完整操作。

其原理如下。一个且同一个信息条目存储在三个不同的寄存器中,记为图1和图2中的reg.1、reg.2和reg.3。这些寄存器只能在写模式下访问。

如果更改了三个寄存器中的一个且仅一个,则“多数表决”方程式使得恢复正确的信息条目是可能的,这是最可能的情况。即使就航空标准而言,同时更改两个寄存器的可能性也很小。因此,如果两个第一寄存器具有相同的值,而第三寄存器具有不同的值,则多数表决将自动选择两个第一寄存器共享的值。

自纠正循环会定期地和自动地以多数表决的结果来更新三个寄存器,以便避免更改随时间的推移而不断累积。该循环的频率由时钟(图中未显示)施加。如果触发器在给定时间被更改,则多数表决的结果保持不变,因此是正确的,并且在随后的时钟沿处,经改变的触发器被纠正。该循环对应于图1和图2中的箭头bac。

三重操作会逐个比特地进行。例如,如果寄存器包含16比特,则装置具有16个独立的三重机制,如图1和图2所描述的。

寄存器reg.1、reg.2和reg.3包含一个或多个比特。以单独、独立且相同的方式对所有比特进行处理。

三重化的主要好处是,该原理可确保寄存器的输出永远不会出现错误的数据,即使是暂时的。

自纠正机制共享路径,这使得写入寄存器的功能值vf是可能的,如图2中可见的。内部信号使得在此功能性写操作和自纠正之间进行选择是可能的。

一般而言,功能性写操作是偶发事件,其余时间是向寄存器进行写入的自纠正。

当发生功能性写操作时,功能数据项同时写入三个寄存器。在其余时间,多数表决的输出在每个时钟沿被自纠正循环同时连续写入三个寄存器。

在图2中,所有三个复用器始终处于相同状态,也就是说,这三个复用器被配置为使得执行功能性写操作或考虑自纠正。

这种类型的装置可以安装在fpga部件中,fpga是指“现场可编程门阵列”。为了简化例如在fpga中的实现,该系统的设计基于以下事实:寄存器reg1、reg2和reg3仅在写入模式下可访问。在多数表决后,在读取模式下只可以访问经纠正的值。在读取模式下访问每个寄存器将大大增加其复杂度。

因此,该系统已经是安全的。本发明的目的是通过向该系统提供测试能力来进一步增强安全性,该测试能力能够在无需读取每个寄存器的情况下监测对多数表决系统的寄存器的写操作以及自纠正的纠正操作。



技术实现要素:

因此,本发明的一个主题是一种三重寄存器装置,其包括第一寄存器、第二寄存器和第三寄存器,所述三个寄存器是相同的并且包含共同使用的相同信息、多数表决装置以及自纠正装置,所述纠正取决于来自所述多数表决装置的结果,每个寄存器由双输入复用器的输出控制,第一输入对应于功能性写操作,第二输入对应于所述多数表决的结果,其特征在于:所述三重装置包括测试装置,所述测试装置的功能是:根据命令并独立地阻止对所述第一寄存器的所述功能性写操作,或者对所述第二寄存器的所述功能性写操作,或者对所述第三寄存器的所述功能性写操作,或者所述自纠正。

有利地,所述测试装置包括控制寄存器,所述控制寄存器包含至少四个控制比特,第一比特控制对所述第一寄存器的所述功能性写操作的阻止,第二比特控制对所述第二寄存器的所述功能性写操作的阻止,第三比特控制对所述第三寄存器的所述功能性写操作的阻止,并且第四比特控制对所述自纠正的阻止。

有利地,控制寄存器的每个控制比特阻止与所述控制比特相关联的所述寄存器的所有比特。

有利地,第一测试配置在于仅阻止所述自纠正,以便检查所述三个寄存器正在以标称方式操作。

有利地,第二测试配置在于仅阻止对所述第一寄存器和所述第二寄存器的写操作,或者对所述第一寄存器和所述第三寄存器的所述写操作,或者对所述第二寄存器和所述第三寄存器的所述写操作,以便检查所述多数表决装置正在以标称方式操作。

有利地,测试包括以该顺序或以不同顺序采取的第一、第二或第三配置的序列。

有利地,控制寄存器包含16个比特,并且测试装置包括一组四个次级多数表决装置:

-十二个第一比特被组织成三组,每组有四个相同的控制比特,每个次级多数表决装置由分别属于第一组、第二组和第三组的三个控制比特驱动,每个比特阻止同一功能,功能性写操作或自纠正,所述多数表决的结果阻止所述功能,

-最后四个比特用于从四个次级多数表决装置中重新读取四个结果。

本发明还涉及经受高海拔飞行条件的航空器搭载的电子系统,其包括至少一个如上所述的三重寄存器装置。

附图说明

在参考附图阅读了提供的描述后,本发明的其他特征、细节和优点将变得显而易见,附图分别以示例的方式给出,其中:

图1示出了根据现有技术的多数表决三重寄存器的原理的图示;

图2示出了根据现有技术的多数表决三重寄存器的原理的图示,其包括与向寄存器的功能写入进行复用;

图3示出了根据本发明的多数表决三重寄存器的原理的图示;

图4示出了根据本发明的三重寄存器功能模式下的配置的图示;

图5示出了根据本发明的三重寄存器的第一测试配置的图示;

图6示出了根据本发明的三重寄存器的第二测试配置的图示;

图7示出了根据本发明的三重寄存器的第三测试配置的图示;

图8示出了根据本发明的测试装置的控制寄存器的图示,其包括一组四个次级多数表决装置。

具体实施方式

关于三重寄存器的当前操作,本发明的目的是能够检查多数表决三重机制的所有元件的正确操作,以便检测到没有潜在的错误使三重不起作用。由根据本发明的测试装置检测到的故障如下:

-这三个寄存器中的一个卡在一个恒定值上,或者在需要时无法执行功能性写操作;

-自纠正不起作用;

-对于这三个寄存器的值的一个或多个组合,多数表决是不正确的。

在航空领域,电子装置必须满足严格的安全性和可靠性要求。这些要求受到被称为rtcado-254/eurocaeed-80的标准的约束,该标准的标题为“designassuranceguidanceforairborneelectronichardware”。该标准定义了五个关键级别,称为“dal”级别,其是“designassurancelevel(设计保证级别)”的缩写。最严重的级别是a级,它定义了容易导致灾难性问题的系统故障:危害飞行安全或着陆或者航空器坠毁。根据本发明的装置与dal级别a兼容。

本发明的原理基于两个独立的要素:

在功能性写操作期间可能会单独地阻止对每个寄存器的写操作,以便能够有意地向每个寄存器中注入不同的值,并检查多数表决和自纠正机制的操作。该阻止过程如图3所示,该图显示了包含三个寄存器reg.1、reg.2和reg.3的多数表决三重寄存器。其由三个双箭头in1、in2和in3表示,每个箭头阻止三个寄存器中的一个。此描绘纯粹是象征性的。

阻止自纠正的可能性,从而留下了在三个寄存器中观察到具有不同值的多数表决结果的可能性。

创建测试装置的一种简单方式是实现专用的控制或测试寄存器,其功能是定位将激活针对该三重化的测试模式的内部信号。用于测试的该控制寄存器通常可以由控制该三重寄存器的系统的软件来驱动。然而其也可以由负责执行内置设备测试的硬件机器来驱动,“built-intestequipment(内置测试设备)”缩写为“bite”。

在其基本版本中,测试寄存器包含4个控制比特:三个比特表示为en_1、en_2、en_3,一个比特表示为en_autocorrect,其作用如下:

如果比特en_1为1,则功能性写操作将写入寄存器reg1。这相当于保持寄存器的正常操作。

如果比特en_1为0,则功能性写操作不会写入reg1,也就是说,寄存器保持不变。寄存器处于测试模式。

比特en_2和en_3分别对两个寄存器reg2和reg3具有相同的操作。

如果比特en_autocorrect为1,则自纠正通常在三个寄存器上发生。

如果比特en_autocorrect为0,则在三个寄存器上阻止自纠正,也就是说,只有功能性写操作才能够修改这三个寄存器。

应当注意,选择“1”或“0”以阻止或不阻止功能纯粹是任意的。

这四个比特及其动作是完全独立的。控制寄存器的每个比特共同作用于寄存器reg1、reg2和reg3的所有比特。例如,如果reg1、reg2和reg3是16比特寄存器,则控制寄存器中只有单个比特en_1,并且它以相同的方式集体作用于reg1的16比特。

为了获得对控制寄存器的操作的较好了解,图4、图5、图6和图7示出了三重寄存器的功能模式和测试模式下的各种配置,并在表格中指示了控制寄存器的四个比特的值。

在图4所示的正常操作配置中,测试寄存器的四个比特为1。功能性写操作通常发生在三个寄存器中,除了功能性写操作之外,自纠正还将向三个寄存器进行连续写入。

在图5所示的第一测试配置中,比特en_autocorrect为0,其他三个比特为1。功能性写操作通常发生在三个寄存器上,但是除了功能性写操作之外,由于自纠正被阻止,因此寄存器保持不变。这种情况使得检查表决结果与功能性写操作链一致是可能的。

在图6所示的第二测试配置中,比特en_1为1,其他三个比特为0。功能性写操作通常但仅对寄存器reg1进行,并且除了功能性写操作之外,寄存器reg1保持不变。寄存器reg2和reg3不再被寻址,并且仍然保持不变。这种情况使得通过修改单个寄存器的值来检查多数表决的正确操作是可能的。

通过交替比特en_1、en_2和en_3的值,每个寄存器被单独写入,并且使用其所有输入组合来测试多数表决。同时检查对这些寄存器中的每个寄存器的写操作正确进行,也就是说,这三个寄存器都没有卡在恒定值上。

在图7所示的第三测试配置中,测试寄存器的四个比特为1。功能性写操作通常是可能的,但没有使用。通过自纠正对这三个寄存器进行连续写入。这种情况使得在将不同的值写入三个寄存器之后应用自纠正时检查自纠正的正确操作是可能的。

当然对以上配置进行组合是可能的。作为第一示例,如果在使用三个第二配置在三个寄存器中放置不同的值之后,对第三配置进行了定位,那么在多数表决的情况下这三个寄存器变得相同,这必然导致相同的值。

第二个更复杂的组合示例使得执行更复杂的测试成为可能。为了清楚起见,将该示例分为两个连续的步骤。

在第一步中,使用第一配置三次以将组合“0、0、1”写入寄存器reg1、reg2和reg3,重新读取多数表决则得出0。然后将1写入reg2,从而给出组合“0、1、1”,然后重新读取多数表决则得出1。

在第二步中,使用第一配置三次以将组合“0、0、1”写入寄存器reg1、reg2和reg3,重新读取多数表决则得出0。然后使用第二配置。如果自纠正正确地运行,则组合“0、0、0”会发生变化。再次使用第一配置。将1写入reg2,因此本次给出的组合为“0、1、0”,并且本次重新读取多数表决则得出0。

因此,在第二步结束时,多数表决的结果与第一步结束时的结果不同。因此检查出自纠正对于寄存器reg3从1到0的变化起了作用。

通过使用各种可能的组合来重复第二步,可以检查自纠正对三个寄存器从1到0和从0到1的两个转换起作用。

如已经看到的,根据本发明的阻止测试装置使得容易地检查所有写操作、多数表决操作和自纠正操作在正常工作是可能的。然而,通过确保控制和测试寄存器的安全性,进一步提高三重寄存器的安全性是可能的。

三重化也用于此目的,但这一次应用于控制寄存器本身。此安全控制寄存器如图8所示。它包含从0到15编号的16个比特,并且分配如下。

对四个控制比特en_1、en_2、en_3和en_autocorrect进行三重化,从而得到总共12个比特。它们对应于图8中编号为0到11的比特。将这四个比特的三个实例单独地写入控制寄存器。与被测寄存器reg1、reg2和reg3不同,出于测试目的,该控制寄存器可以在读写模式下访问控制三重寄存器的系统的软件或专用软件。在图8中,通过双头箭头用符号表示对比特的读/写操作,而通过单向箭头用符号表示对比特的简单读操作。

测试装置包括一组四个次级多数表决装置,在图8中表示为vm1、vm2、vm3和vm4。每个次级多数表决装置由三个被复制的控制比特驱动,也就是说这三个控制比特应该包含相同的控制信息。

四个多数表决的结果控制三重寄存器,并且也存储在控制寄存器中。因此,需要四个附加比特。这些是图8中编号从12到15的比特。这些比特仅在读取模式下可访问。因此,总共需要16个比特来实现控制寄存器的三重化。

同样,单个控制寄存器可以与几个三重功能寄存器相关联,而不会限制要控制的寄存器的数量。

三重控制寄存器不具有自纠正功能,因此使其测试更加容易。由于以下描述的两个原因,自纠正寄存器缺少自纠正不会产生任何重大影响。

第一个原因是需要使得针对控制操作的两个适当位置处的更改要被修改,这是非常少见的事件。

第二个原因是更改控制比特不会具有任何立即的影响,因此需要在控制寄存器之后也更改功能性寄存器本身,以免产生任何功能影响。同样在这种情况下,这些只是非常特殊的事件。

如果更改了自纠正控制比特,则需要在更改控制寄存器后更改功能性寄存器中的两个适当位置处(well-placed)的比特。例如,这可以涉及与相同功能性比特相关联的三个三重寄存器中的两个。

如果更改了“en”功能性控制比特,则功能性写操作会受到损害,因为三个比特中的一个错误比特可能会被写入,但是多数表决仍给出正确的值,并且需要也对功能性寄存器中的某个比特进行更改以产生影响。仅当事件按以下顺序发生时,这种情况才有影响:对控制操作以及然后的功能性写操作进行两次更改,使其值与所讨论的比特上的先前值不同;然后对该比特的三重寄存器进行两次更改。这种情况极不可能发生。

因此,控制寄存器上没有自纠正不会导致任何重大风险。

下文描述了可能会导致寄存器发生重大更改的事件链的第一示例:

第一事件:比特en0_0被更改。凭借多数表决不会存在任何影响。

第二事件:两个比特en0_1或en0_2中的一个比特也被更改。寄存器reg1在下一个写操作中将不会被更新。但是,reg1的当前值未被修改,因此没有功能上的影响。接下来,在下一个功能性写操作中,不对寄存器reg1进行写操作,因此它可能与reg2和reg3不同。但是,凭借多数表决,仍然没有功能上的影响。在接下来的时钟周期中,自纠正将用正确的值来更新寄存器reg1。正确的写入值出现在reg1中,仅延迟了一个时钟周期。

第三事件:寄存器reg2或reg3中的一个在功能性写操作之后的时钟周期内被精确更改。然后会存在功能上的影响。

可以理解的是,这三个事件的级联非常不可能,并且可以忽略。因此,en比特上缺少自纠正不会构成风险。

下文描述了可能会导致寄存器发生重大更改的事件链的第二示例:

第一事件:比特autocorrect_0被更改。凭借多数表决不会存在任何影响。

第二事件:两个比特autocorrect_1或autocorrect_2中的一个比特被更改。寄存器reg1、reg2和reg3的自纠正被阻止,但是寄存器的当前值未被修改。没有功能上的影响。

第三事件:三个寄存器reg1、reg2或reg3中的一个寄存器被更改。凭借多数表决,仍然没有功能上的影响。

第四事件:三个寄存器reg1、reg2或reg3中的另一个寄存器被依次更改。会产生功能上的影响。

因此,可以看出,即使改变了三个比特autocorrect0、autocorrect1或autocorrect2中的两个比特,存在功能性后果的可能性是极低的,并且需要发生四个连续事件,而这些事件本身的可能性很小。

因此,autocorrect比特上缺少自纠正不会构成风险。

为了测试控制比特及其多数表决的三重化是否正常工作,只需写入十二个控制比特的所有组合,每次重新读取多数表决的四个比特就足够了。该过程涵盖多数表决和控制比特本身。该测试使得检测到由于电子故障而导致其中一个比特固定为0或1是可能的。

根据本发明的三重寄存器装置具有对于经dala认证的航空电子系统来说足够的安全级别。其具有以下优点。

该装置使得测试100%的故障或错误纠正机制是可能的。纠正机制的测试范围非常详尽。

测试装置的简单故障或简单更改不会导致错误的功能性数据。可以在发生多重故障之前检测到测试装置的这种简单故障。

测试装置对被测寄存器的操作性能没有任何影响。

与每个功能性寄存器关联的测试装置非常易于实现,因此不会损害可靠性,并且只消耗承载该功能的电子部件的很少的资源。

根据本发明的控制寄存器可以与所需的尽可能多的功能性寄存器合并,从而使控制寄存器的数量最小化。

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