概述
功能安全在自动驾驶、智能航空设备和自动化工厂等领域日益重要。满足 ISO 26262 和 IEC 61508 等安全标准的要求需要严格的正式方法和文档记录,包括硬件和软件的开发过程,以及设备运行期间随机硬件故障的持续监控和报告。双核锁步是一种常用的最高安全完整性方法,但其成本高,不适用于需要现代多核 SoC 的应用。软件测试库(STL)是实现标准完整性要求的一种常见方法。
架构
本文讨论了将 Arm 软件测试库(STL)与 Wind River Helix 平台集成的不同方法。Helix 平台是一个基于 Type 1 虚拟机的操作系统平台,支持混合关键性 OS 和应用程序在多核处理器上运行,并具有达到最高安全关键性级别的功能,例如 ISO 26262 ASIL D、DO-178C Level A 或 IEC 61508 SIL 3 和 SIL 4。
硬件架构
本文以 Xilinx Zynq UltraScale+ MPSoC 为例,介绍了其硬件架构,包括 Cortex-A53 处理器和 Helix 平台架构。
Arm 软件测试库(软件 BIST)
Arm STL 是包含检查处理器逻辑中永久性故障的软件函数的库。STL 提供了一种额外的诊断机制,可以协助实现整体系统安全指标要求。Cortex-A53 STL 需要 100KB ROM 和 10KB RAM,在 EL 3 中完全执行仅需 161K CPU 时钟周期。
Arm STL 和 Helix 平台的集成
本文讨论了三种将 Arm STL 与 Helix 平台集成的不同方法:
- 选项 1:专用测试分区:为测试执行提供专用分区,具有完全控制调度和故障检测的优势,但内存占用较大。
- 选项 2:虚拟机内测试执行:在虚拟机内执行测试,可以减少内存占用,但会增加上下文切换的开销。
- 选项 3:应用程序上下文中测试执行:在应用程序上下文中执行测试,可以立即释放处理器,但需要确保按时执行。
证明
本文在一个 Xilinx Zynq UltraScale+ MPSoC 上的演示系统上展示了 STL 和 Helix 平台的集成,并测量了不同集成方法的性能。结果表明,STL 对系统性能的影响在 0.5% 左右。
结论
将 Arm STL 与 Helix 平台集成可以有效地提高硬件诊断覆盖率。本文讨论了不同的集成方法,并为系统设计人员提供了一组选项,以确保与技术、安全和项目组织要求最佳匹配。Helix 平台提供了一个经过验证的功能和安全认证的操作系统,用于调度 STL 并监控按时执行和抖动,并且健康监控框架记录故障并在测试执行检测到硬件故障时采取适当的操作。