ASIL分解的意义
假设一个羊圈里有一头羊小A,而另一边的羊圈里有两头羊小B和小C,小B和小C需要合力才能将门撞破逃出,那么显然逃出羊圈对小A的要求要比小B和小C要高的多。
ASIL分解也是同样的道理,如果一个安全需求分解为两个冗余的安全需求,那么原来的安全需求的ASIL等级可以分解到两个冗余的安全需求上。因为只有当两个安全需求同时不满足时,才导致系统的失效,所以冗余安全需求的ASIL等级可以比原始的安全需求的ASIL等级低。
ASIL分解的目的是针对系统性失效,应用冗余以满足安全目标。ECU的主处理器可被一个冗余的监控处理器所监控,监控处理器不能实现分配到ECU的功能要求,但主处理器和监控处理器均能独立启动已定义的安全状态。
ASIL等级分解仅对系统性失效有意义,是降低系统性失效可能的方法和途径。ASIL等级分解不会改变硬件架构度量的评估要求,也不会改变随机硬件失效导致违背安全目标的评估要求。
安全关键系统的设计通常可能得益于冗余需求的分配,可以通过以下几点来体现:
◆将系统层面的需求分解为多个冗余的子需求,并且分配给不同的组件;
◆每一个子需求(组件)直接支持达到系统层面的要求;
◆这里意味着必须要确保冗余需求实现的独立性;
◆如果一个组件失效了,其他的组件仍然满足系统层面的要求,因此提高系统的完整性。
ASIL分解的前提
如果一个安全需求分解为两个冗余的安全需求,那么原来的安全需求的ASIL等级可以分解到两个冗余的安全需求上。因为只有当两个安全需求同时不满足时,才导致系统的失效,所以冗余安全需求的ASIL等级可以比原始的安全需求的ASIL等级低。可降低安全目标实施成本。
ASIL 分解可以在安全生命周期的多个阶段进行,比如功能安全概念、系统设计、硬件设计、软件设计阶段。而且ASIL等级可以分多次进行
但是ASIL 分解的一个重要要求就是独立性,如果不能满足独立性要求的话,冗余单元要按照原来的ASIL等级开发。即如果ASIL D分解为ASIL B和ASIL B,那么这两个分解后的单元要保证独立性。所谓的独立性就冗余单元之间不应发生从属失效(Dependent Failure),从属失效分为共因失效(Common Cause Failure)和级联失效(Cascading Failure) 两种。共因失效是指两个单元因为共同的原因失效,比如软件复制冗余,冗余单元会因为同一个软件bug导致两者都失效;级联失效是指一个单元失效导致另一个单元的失效,比如一个软件组件的功能出现故障,写入另一个软件组件RAM中,导致另一个软件组件的功能。