Applications with safety requirements have become ubiquitous nowadays and can be found in edge devices of all kinds. However, microcontrollers in those devices, despite offering moderate performance by implementing multicores and cache hierarchies, may fail to offer adequate support to implement some safety measures needed for the highest integrity levels, such as lockstepped execution to avoid so-called common cause failures (i.e., a fault affecting redundant components causing the same error in all of them). To respond to this limitation, an approach based on a software monitor enforcing some sort of software-based lockstepped execution across cores has been proposed recently, providing a proof of concept. This paper presents SafeSoftDR, a library providing a standard interface to deploy software-based lockstepped execution across non-natively lockstepped cores relieving end-users from having to manage the burden to create redundant processes, copying input/output data, and performing result comparison. Our library has been tested on x86-based Linux and is currently being integrated on top of an open-source RISC-V platform targeting safety-related applications, hence offering a convenient environment for safety-critical applications.
翻译:安全性要求的应用现已变得无处不在,可以在各种边缘装置中找到,然而,这些装置的微控制器尽管通过实施多芯和缓冲等级系统而提供了中等性能,但可能无法提供足够支持,以实施最高完整性水平所需的某些安全措施,例如为避免所谓的共同原因故障而采取锁定式执行,以避免所谓的常见故障(即影响冗余部件的过错,造成同样的错误),为了应对这一限制,最近提出了一种基于软件监测的方法,在核心之间执行某种基于软件的锁定执行,提供了概念的证明。本文展示了SafeSoftDR,一个图书馆,提供一个标准界面,用于在非自动封闭式核心实施基于软件的锁定性执行,使最终用户不必管理创建冗余程序的负担,复制输入/输出数据,并进行结果比较。我们的图书馆已经用以x86为基础的Linux测试,目前正在以开放源的RIRC-V平台为安全相关应用程序提供方便的安全关键应用环境。