空间环境下的软硬件可靠性方案总结

一. 星载计算机 SRAM 抗辐射加固策略与应用设计

          ——北京空间技术研究院总体设计部 --2018

1.对象

针对自身不具备 EDAC 功能的星载计算机 SRAM 的抗辐射加固(主要是面对SEU)。

2.背景

星载软件的平均失效时间(MTTF)由软错误失效率和器件翻转率决定。鉴于器件翻转率由硬件器件自身属性确定,且不可改变,因此一般应用层的防护加固设计是针对前者开展的,即通过降低软错误率的方法提升星载计算机 SRAM 抗辐射的能力。
本文采用软硬件结合的方式来降低软错误率,从而提升星载计算机 SRAM 抗辐射的能力。

3.软硬件抗辐射加固理论

(1)硬件
“硬”指通过硬件电路实现对固定长度 SRAM 区数据的校验和计算,并通过比较当前计算结果与预期结果是否一致,判断是否有单粒子翻转事件发生。如果有,则立即产生高优先级中断,并调用中断处理函数对当前 SRAM 区域进行刷新操作,此模式称为“应急维护模式”。

应急维护模式实现方法如下:
星载计算机首次向 SRAM 写入数据时,针对预先定义好的固定长度内存地址计算该段地址空间内所存储数据的奇校验,并将校验结果一并保存。设备运行时,一方面,一旦某个全局变量或静态变量的值被修改,将重新计算相应内存空间段的校验和并替换原来存储的校验和。另一方面,定期触发设备内部奇校验电路,依次对 SRAM 各地址段内的数据进行奇校验,并将计算结果与预存的校验和做一致性判决。如果出现不一致,则立即产生高优先级中断,通知 CPU 进入中断函数。中断函数将根据错误发生的地址段定义及错误数据的属性采取适当的维护措施。如果确认该地址段在可维护地址空间范围内,则对该段数据进行刷新操作,否则通过复位操作重启星载计算机。上述一切动作均由硬件设计自动完成,具有实时性高的特点。

此模式在工程实践中的设计重点是根据星载计算机应用软件的大小以及其任务特性选择自检电路每次计算校验和内存段的长度。如果软件体量很大,为了及时遍历所有数据,实现有效控制软失效的目的,则需要适量增大单次检测的数据段长度。但单次检测长度必将导致单次刷新时间增加。如果星载软件常规任务的实时性要求极高,那么单粒子翻转维护时间的增加将影响常规任务的执行效率。因此工程实践中必须权衡自检遍历周期与单次刷新速度两个互斥因素,选择适合本星载应用软件的自检数据段长度
星载计算机 SRAM 内部奇校验电路示意图如图所示。
空间环境下的软硬件可靠性方案总结
(2)软件
“软”指星载计算机应用软件根据预先定义的防护算法,自主根据其当前任务忙、闲状态,通过查表的方法计算 SRAM 的刷新步长,从而在不影响正常职能任务的前提下,尽可能高效地实现 SRAM 刷新策略,此模式称为“常规空闲维护模式”。

常规空闲维护模式实现方法如下:
在星载计算机应用软件中设计实现系统资源调度查表算法SRAM 自主维护模块
星载计算机应用软件根据其当前工作模式确定空闲周期 T1 与星载计算机 SRAM 可维护地址范围数据维护所需时间 T0 之间的关系,并根据上述情况自主计算 SRAM 本次应该实施的数据维护地址范围。
例如,当 T0>T1 时,根据资源调度算法查表获得本次数据维护内存长度步进 K 和上次数据维护结束内存地址标记 N ,然后 SRAM 自主维护模块将刷新内存地址 N~(N+K-1) 之间的数据,刷新完成后,星载计算机应用软件返回职能任务模式继续执行日常平台或载荷任务。
T0<T1 时,SRAM 自主维护模块将刷新SRAM 中所有可维护地址空间内的数据。
以 DSP 的 SRAM 为例,根据工程文件中内存分配 .cmd 文件的定义,当前工程的代码 段、初始化参数、静态常量段、Switch语句的跳转地址表段、中断跳转地址表段等内存段均是可维护地址段(确定在程序运行过程中不会被修改的数据),都能够在常规空闲维护模式中通过定期刷新实现抗辐射维护。同理,刷新完成后,星载计算机应用软件返回职能任务模式。

SRAM 维护资源调度表的格式和部分内容如表所列。
空间环境下的软硬件可靠性方案总结

4.软硬件抗辐射加固实现

软件基于国产 DSP6701 芯片开发实现,DSP 芯片与外部电路之间通过 FPGA 实现通信接口。DSP 芯片主频为 80 MHz,SRAM 存储空间为512KB,芯片本身不具备 EDAC 功能。运行在芯片上的应用软件大小为413KB,存储在外部 PROM 中,设备加电后,通过加载程序搬移到 DSP 内部 SRAM 中运行。
(1)软件架构
软件基于活动对象模型实现,选择目前市面上最轻量级、应用最广泛的 QP(Qualification Programmer)事件驱动软件架构,即层状架构。最底层为板级支持包,是框架与底层硬件的中间件,提供任务调度、上下文切换、任务间通信等多种任务。其上层是事件驱动框架(QF),提供事件驱动机制,确保各活动对象间通信安全。QF再上一层为事件处理器(QEP),用于提供基于 UML状态图的层次状态机的语义。采用 QP框架的优势在于开发人员无需了解复杂的底层硬件接口及事件存储、分发和回收逻辑,只需要明确并创建各活动对象的状态机,设计各状态与事件之间的交互关系,便可通过 QP平台提供的一套建模方法和接口实例化各活动对象、状态机和事件,从而实现应用程序功能。此软件架构能够有效减少软件设计和维护工作量,提高软件开发效率。
(2)活动对象及其状态机创建
通过分解活动对象并分析各对象之间的事件交互关系实现从软件需求分析到基于活动对象模型的软件设计。
第一步分解活动对象的依据是实现松耦合的活动对象组件。在理想情 况下,各对象间不产生任何资源竞争,同时尽可能减少事件通信的频率和数据量。根据此规则,结合星载应用软件特点,将活动主体定义为星载计算机应用软件、星载计算机 SRAM 自检模块和星载计算机 SRAM 部分。
第二步是为已识别的活动对象分配任务和资源。为了避免资源共享,一般方法是将大部分资源封装在一个特定的活动对象中,在整个应用程序运行期间,由该对象负责此部分资源的使用和调度,其他活动对象仅通过事件机制分享资源。本抗辐射加固策略所涉及的系统资源主要是系统运行时间和SRAM 的存取带宽。在软件实现中,将该资源分配给应用程序调度,SRAM 和 SRAM 自检模块只能通过事件交互的方式请求应用系统为其调配上述资源。
各活动对象的事件交互关系如图所示。
空间环境下的软硬件可靠性方案总结
应用软件、SRAM 自检模块和 SRAM 内部运行情况、状态迁移逻辑及事件触发条件分别如图 所示。各活动对象及其状态机的 QP对象实例化方法可以套用成熟代码实现,此处不再赘述。
空间环境下的软硬件可靠性方案总结
空间环境下的软硬件可靠性方案总结

空间环境下的软硬件可靠性方案总结


二.基于 C6678 的星载软件研究

     ——南京电子技术研究所--2017

抗辐照加固采用系统三模冗余的方式,将C6678 的 8 个核分为 5 组,如下所示,其中运算 1、2、3 组完成完全相同的运算任务,同组间的两个核协同完成运算任务;第一组核 0 作为控制模块,通过读写存于 MSMC 中的标志信息控制计算核的运算处理流程,另外对运算 1、2、3组中计算的结果进行三模冗余表决;最后第 5 组的核 7 周期性检查存于 DDR 中的其他核工作过程中的故障检测结果以及程序区求和校验,并通过外部接口上报主设备。
空间环境下的软硬件可靠性方案总结