首页>>科技 >>内容

安全冗余原则,浅析安全系统设计中的三种冗余技术

发布时间:2023-07-25 19:02:31编辑:温柔的背包来源:

很多朋友对安全冗余原则,浅析安全系统设计中的三种冗余技术不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

安全冗余原则,浅析安全系统设计中的三种冗余技术

在安全系统的设计中,为了防止随机硬件故障导致的功能失效,会采用不同于一般电子产品的设计方法。IEC61508、ISO26262等功能安全标准中列出了这些设计方法,根据电子系统的不同组件可以应用不同的设计方法。本文将讨论广泛使用的冗余技术,包括硬件冗余、信息冗余和软件冗余。硬件冗余:

硬件冗余是将多个硬件单元作为一个整体复制来提供功能。从组件的角度来看,多个硬件单元可以相同,也可以不同,比如使用相同的硬件,但是操作系统和应用不同,或者只是应用不同。从最终输出来看,可能没有独立表决器,由其中一个处理单元准备输出,也可能有独立表决器。以下是几种典型的冗余架构:

主/从控制架构:一个计算单元用作主控制输出,另一个计算单元用作从控制。在以下架构中,主控制单元和从控制单元都处理输入数据并相互检查。当从控制单元检查到主控制单元的输出有故障时,主控制单元被复位。在这种架构中,当来自控制单元的检查存在时间延迟时,需要增加对故障输出的延迟时间效应的分析。

双核锁步架构:双核锁步架构芯片内冗余技术。每条CPU指令由两个处理器独立执行,每个处理器在读写数据后执行下一条指令。主处理器控制总线,从控制器控制监视器。当两个处理器不一致时,使用监控器使芯片输出安全,并向外部监控芯片输出报警。为了防止外部瞬态电磁干扰,两个处理器在执行顺序上采用分时执行的方法。

NooM架构:2oo2架构由两个硬件计算单元组成,2*2oo2或2oo3架构可以由两个以上的计算单元组成。2oo2架构可以检查单个单元的故障,但不能容错。需要避免其常见故障。软件应具有与硬件相同的安全级别,硬件设计应避免共享部件,并在CPU和内存中引入自检机制,以避免潜在故障。

2oo2架构的一个近似架构是1oo2D架构,也是由两个处理单元组成。每个处理单元都有相应的故障检测模块,例如独立的看门狗。看门狗的输出用于控制选择器开关,并授权输出哪个处理单元。

多处理单元的NooM架构有2oo3,兼顾了安全性和可用性。对于单个处理单元的故障,它通常被定向到安全端进行输出,但它也被设计为在故障后复位,并与其他处理单元共享其状态。以波音777中的飞控计算机为例,它由三个处理单元(PFC)组成。PFC通过三个独立的通信网络相互通信,每个PFC中有三个异构处理器Intel、摩托罗拉和AMD,以避免处理器的共因失效。

每个处理单元在三种状态之间切换:控制、待机和监控,执行器选择处理单元的输出。

信息冗余:信息冗余是增加冗余的信息码,可用于检测数据传输中的错误,也可用于纠错,应用于内存、数据总线、通信网络中的数据错误。常用的有奇偶校验、CRC校验、汉明码和算术码。奇偶校验只能检测单比特错误,不能检测双比特错误。CRC校验还可以用来检查存储在内存中的数据或程序是否被篡改。

汉明码用于在存储或传输数据时通过添加额外的奇偶校验位来检测和纠正错误。标准汉明码只能检测和纠正单位错误。对于双位错误,可以添加额外的全局奇偶校验位,以可靠地检测两位中的错误。这被称为单纠错/双纠错检测(SECDED)。算术编码用包含两个字段的编码代替原始数据:数据部分和编码部分。可以检测三种类型的错误:

操作错误:计算机使用预期的运算符处理操作数,得到了错误的结果。这类错误与传输错误非常相似,但不会给代码设计带来新的约束。

运算符错误:计算机使用了一个好的操作数,但它有一个意外的运算符。例如,如果将加法运算符替换为乘法运算符,即使乘法计算的结果是正确的,结果也是假的。这类错误的检测不是数据传输通道中的错误,需要对运算符进行编码。

操作数错误:一种情况是地址错误,相当于用一个变量替换另一个变量。这种类型的错误发生在传输系统中,并且串扰发生在不同的通道之间。类似于在传输期间接收发送到另一个接收器的数据。还有一种情况是存储错误,存储的数据发生了变化或者没有更新,属于过期数据。软件冗余:

该软件在同一个处理器中执行两次,并由外部设备投票,可用于检测内存错误。软件需要加载到不同的内存区域,所以在运行过程中可以检测到RAM、ROM、EPROM等各种内存故障。而软件冗余属于执行程序的冗余,无法检测共享硬件处理器的故障。可以在执行过程中增加指令的自测,比较不一致的数据,全面测试处理器。

为了进行有效的检测,测试覆盖范围必须足够大(覆盖应用说明等)。)并且必须在正确的时间执行(初始化、在每个周期中、周期性地、在任务结束时)。这样做的缺点是增加了处理器的性能开销。软件冗余比硬件冗余简单,但检错的有效性需要其他技术来弥补,软件和自检技术的多样化可以是很好的补充。

另外,由于软件的冗余执行,执行时间较长,适用于对时间性能要求不高的系统。

总结

以上是三种冗余技术的介绍,都是通过增加冗余的资源以实现故障的检测,有硬件资源的冗余,数据信息的冗余和软件执行层的冗余,通过一些简单的示例进行了说明。在实际系统的设计中,往往不仅仅采用单一的技术,而是多种冗余技术相结合。同时,冗余技术在于它对随机故障的检测有效性,与异构多样化相结合,实际使用可以提高对系统性故障的检测能力。

黄飞

以上知识分享希望能够帮助到大家!