ISO 26262-9:2018的第6章节对系统设计(ISO 26262-4)、硬件设计(ISO 26262-5)和软件架构设计(ISO 26262-6)提出了“要素共存(Coexistence of Elements)"的要求。本文针对该概念进行详细讲述,探讨“要素共存"的内在涵义,以及设计开发中针对其需要注意的地方。
级联失效在讨论“要素共存(Coexistence of Elements)"之前,先理解“级联失效(Cascading Failure)"这个概念,ISO 26262-1:2018的3.17给出了“级联失效(Cascading Failure)"的定义如下:
图1:ISO 26262中对级联失效的定义
(该截图来源于ISO 26262-1:2018)
级联失效(Cascading Failure):在相关项里的一个要素的内部或外部的一个原因,导致了一个失效,然后该失效又引起了另一个要素(在相同、或不同相关项里)产生了一个失效。简单理解地说:要素A产生了一个故障,该故障导致要素B产生了一个故障,这种情况就是级联失效。
在产品开发过程中(以MCU为例子),其内部包括了多个不同功能和用途的IP(例如CUP、ADC、ROM、RAM、DMA、CAN、CLOCK等),尽管MCU内部要素分配的最高ASIL等级是D,但基于假设开发时某些非安全相关的QM功能也都按照ASIL D开发只会导致开发难度急剧上升、成本上涨。理想的结果是,上层安全需求是什么ASIL等级,分配到的IP/模块就按各自分配的安全需求最高ASIL等级开发,如下图所示。
图2:安全需求分配给不同的要素
但是在开发过程中,由于某一个安全功能可能是由不同的IP组合来实现的,而且一个IP可能也需要承担多个安全功能一部分,这就导致了IP跟IP之间存在了一些耦合的因素,例如IP之间共享内存、IP之间的通信,而且这种现象在开发过程中是几乎无法避免的。例如图2中IP_001和IP_002存在“交互",在这里暂时先不关心“交互"的方式,先思考一个问题:这种“交互"会带来什么问题?
结合第二节提及的“级联失效(Cascading Failure)",这里假设IP_002的存在某一个失效模式(开路、短路或卡滞),该失效可能会导致IP_001获取到一个错误的输入,从而违背了某一个安全需求,因此IP_001和IP_002之间存在级联失效。
为了避免出现上述问题,ISO 26262提出了“要素共存(Coexistence of Elements)"的概念,目的就是为了防止较低ASIL等级要素或QM要素的失效,导致较高ASIL等级要素失效,若满足这条原则,我们就叫满足要素共存准则(Criteria for Coexistence of Elements)。
有了第三节的知识背景,理解“免于干扰(Freedom From Interference)"的概念就比较简单了,先看ISO 26262对其的定义:
图3:ISO 26262中对免于干扰的定义
(该截图来源于ISO 26262-1:2018)
免于干扰(Freedom From Interference):两个及以上的要素之间不存在导致违背安全需求的级联失效。例如,若经过分析,图2中的IP_002不会导致IP_001产生违背安全需求的失效,则IP_001免于IP_002干扰。
因此,免于干扰(Freedom From Interference)和级联失效(Cascading Failure),其实就是一回事。非要分出个所以然的话,我们可以这样来理解两者之间的关系:免于干扰(Freedom From Interference)表征的是不同要素之间的一种关系属性,而级联失效(Cascading Failure)表征的是一个要素受到另一个要素的影响结果。有时候,针对免于干扰的分析我们也叫FFI(Freedom From Interference的缩写)分析,目的就是为了找出架构设计中的要素之间是否级联失效(Cascading Failure)。
在进行FFI分析时,分析团队应确定以下内容已经完成:
1) 考虑需要分析的安全需求;
2) 考虑需要分析的架构;
3) 已分配安全需求的架构要素及其子要素。
下面基于第3节的例子继续讨论,将不同ASIL等级的架构要素(IP或模块)按相应等级分类,然后找到FFI的分析路径,如图4所示,图中共显示有三个分析路径,即针对该要素中的子要素(IP_001~IP_003)进行FFI分析时,应考虑以下:
1) 分析路径1:IP_002(ASIL B)对IP_001(ASIL D)的干扰;
2) 分析路径2:IP_003(QM)对IP_002(ASIL B)的干扰;
3) 分析路径3:IP_003(QM)对IP_001(ASIL D)的干扰。
图4:识别FFI分析路径
针对上述的分析路径1,我们在第3节中已经假设IP_002会引起IP_001级联失效。对此,在产品架构设计时,需要考虑从以下方面进行优化:
1) 源头杜绝。例如,切断IP_001和IP_002之间的传播路径;
2) 持续检查。若上述传播路径是不可避免的,则需要对IP_002或传播路径进行周期性检查,以确保IP_001正常执行安全功能;
3) 事后补救。最差的情况,如果“级联失效(Cascading Failure)"无法避免,即上面两种情况都不能实现,则应制定针对IP_001失效以后的处理机制,例如检测到IP_001失效后进入安全状态。
针对其他的分析路径,若分析得出存在级联失效(Cascading Failure)的可能,则同样可按照上述方式进行设计优化。针对上述分析路径1~分析路径3中的“干扰",将在下期内容《ISO 26262中的相关失效分析》进一步讲述,如果得出这些干扰源。
熊猫体育在汽车、铁路系统产品检测方面拥有丰富的技术经验和成功案例,能为主机厂、零部件供应商、芯片设计企业提供整机、零部件、半导体、原材料等全面的检测、认证服务,保障产品的可靠性、可用性、可维护性和安全性。
熊猫体育拥有技术先进的功能安全团队,熊猫体育专注于功能安全(包括工业、轨道、汽车、集成电路等领域)、信息安全和预期功能安全领域的专家,具有丰富的集成电路、零部件和整机功能安全实施经验,可根据相应行业的安全标准为不同行业的客户提供培训、检测、审核和认证一站式服务。
图5:功能安全项目实施流程