浅析Partitioning(1)——DO-297/DO-178/ISO26262/AUTOSAR/IEC62304

本文探讨了Partitioning在高安全领域的应用,包括民航、汽车、医疗行业的标准。Partitioning用于确保功能或应用程序之间的隔离,防止意外耦合。文章讨论了Partitioning的适用范围、相关标准中的定义以及其在软件架构中的作用。通过举例说明,解释了如何在数字域中进行Partitioning以实现功能的逻辑隔离,并简要介绍了Partitioning的数学概念和计算机模型。
摘要由CSDN通过智能技术生成

因为长期做高安全(Safety, 不是security)系统的工作,所以在Partitioning上略懂一点。毕竟曾浪费了大量的精力。

目前高安全领域越来越多的标准提到了Partitioning的概念:

  • 航电:的DO-297和DO-178,基本上是Partitioning在工程领域的源头。

  • 汽车:ISO-26262,AUTOSAR

  • 医疗器械:最新的YY-T 0664-2020也采用了IEC62304-2015里Partitioning的概念。

现如今AUTOSAR培训满天飞,但在这些标准、构架背后的内涵,很少被解释。无论是中英文资料,都言之不详。

尽管有超过10年的相关经验,但真的讲解Partitioning,以我的完全不相关的学术专业、繁杂混乱的知识体系,是不够格的。这个话题本应是根正苗红的计算机科学、计算机理论研究者来讲解。所以我只能"浅析"一下。当然,一方面受个人水平限制,另一边Partitioning确实也不难懂,内容难度相对较低。


标准里的Partitioning是怎么说的?

民航:称为“分区”

DO-297: Partitioning - An architectural technique to provide the necessary separation and independence of functions or applications to ensure that only intended coupling occurs. The mechanisms for providing the protection in an IMA platform are specified to a required level of integrity.

中国民航局2022年明传电报:(针对软件)

​汽车:没从业过,不知道中文怎么叫

ISO-26262: partitioning separation of functions or elements (3.41) to achieve a design

Note 1 to entry: Partitioning can be used for fault (3.54) containment to avoid cascading failures (3.17). To achieve freedom from interference (3.65) between partitioned design elements (3.41), additional non-functional requirements can be introduced.

AUTOSAR: 直接上图

​AUTOSAR某图

医疗:翻译为“划分”

IEC62304\YY-T 0664: 没有直接说明,但表明是一种function或software的segregation,也是风险(risk)segregation的支撑。有例图。YY-T 0664中称为“划分”。

IEC62304 AMD-2015图

有兴趣的朋友可以问问chatgpt,看看得到怎样的答案。


Partitioning的适用范围

首先不妨限制Partitioning的适用范围,因为这个范围太广,很多问题会困扰我们。

如果我们把一个高安全设备的工作情况,划分为一个物理域,其有一个子域——数字电子域。

  1. 物理域:任何和设备工作、安全相关的问题,包括模拟电子类问题、机械问题、等等所有的问题,都放在这个域里面。

  2. 数字域:所有数字逻辑的东西,包括软件、硬件的数字逻辑,都放在这里。显而易见,是物理域的一个子域。

为什么这么划分?

简单原因:因为实际工程中Partitioning的作用范畴,仅能够限于数字域。所以大多情况下大家称之为“构架”问题。

:有这样一个高安全设备,已经取得了航空/医疗/汽车领域的高安全等级认证(DAL A/CLASS C/ASIL D)。突然,老板让你加入一段新的代码,实现一个小小的新功能。

于是你决定:

  • 因为新功能的代码使得设备的CPU占用量和各类总线的占空比提高,于是功耗也提高了,电磁辐射也提高了。你会决定这是物理域的工作,因为设备在取得认证的时候跑的程序是特别设计的测试程序,当时的功耗已经接近设备满载,射频、功放、高速总线满载运转,完全覆盖了你当前的情况,所以你认为这段新的代码对供电、热设计、EMC乃至产品寿命没有任何影响。

但是你意识到,即便是这样,这段代码如何嵌入已有的产品,才不会影响具有极高安全性的原软件运行。你有几个选择:

  1. 我不在乎,我把代码嵌入后重新做所有的分析和测试。

  2. 我不想做那么多,我要采用一种软件的隔离方式,让新的软件对旧的毫无影响。

    1. 也许运气好,有一个空闲的MCU子系统或者FPGA子系统供你调用,从物理上已经形成隔离。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值