CN108073479A - 一种用于星载计算机可靠性验证的故障注入方法 - Google Patents
一种用于星载计算机可靠性验证的故障注入方法 Download PDFInfo
- Publication number
- CN108073479A CN108073479A CN201611001412.2A CN201611001412A CN108073479A CN 108073479 A CN108073479 A CN 108073479A CN 201611001412 A CN201611001412 A CN 201611001412A CN 108073479 A CN108073479 A CN 108073479A
- Authority
- CN
- China
- Prior art keywords
- fault location
- spaceborne computer
- direct fault
- model
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于星载计算机可靠性验证的故障注入方法,包括以下步骤:步骤1、通过卫星轨道参数计算单粒子翻转率,生成单粒子翻转故障注入表;步骤2、建立星载计算机模型和故障注入器,故障注入器加载步骤1生成的单粒子翻转故障注入表,并按照故障注入表中的内容,对星载计算机模型进行故障注入;步骤3、建立故障观察器,对步骤2故障注入后的各模块的状态和输出进行跟踪;步骤4、建立日志文件,将故障注入表、步骤3故障观察器所跟踪的各模块值及相应运行结果保存于日志文件中;清空模型寄存器及内存值,等待下一次仿真开始。本发明方法的注入过程可控性强,星载计算机模型和故障注入模型双线程并行,可通过终端方便地控制和监测仿真进程。
Description
技术领域
本发明属于一种星载计算机可靠性验证的故障注入方法,特别是基于星载计算机软件模型进行故障注入模拟单粒子翻转来评价系统可靠性。
背景技术
随着越来越多的商用器件取代宇航级电子元器件应用于空间电子系统,验证星载计算机能否通过硬件防护和软件容错来降低单粒子效应的影响从而达到可靠性要求成为整体设计流程中必要的一步。目前星载计算机可靠性验证的方法主要是辐照实验和基于硬件的中断故障注入法。
两者都是基于已成型的硬件,若证明早期设计不合理,星载计算机重新设计和实验的成本都非常高。
软硬件协同设计在片上系统的开发上已经有了较多的应用,建模语言从一开始的Verilog发展到后来的SystemC,建立的模型从一开始的寄存器传输级发展到现在的事务级,利用计算机语言建立芯片和电子系统模型,使得在设计的初期,硬件系统成型之前即可在模型的基础上进行应用软件的开发和系统性能、可靠性的验证。
但是,现有技术中尚无一种应用在星载计算机可靠性验证的方法。
发明内容
本发明所解决的技术问题在于提供一种故障注入方式来验证星载计算机在空间高能粒子辐射下的可靠性,使得在设计初期就可对系统性能做出评价,避免重复设计带来资源与时间的浪费。
实现本发明目的的技术解决方案为:一种用于星载计算机可靠性验证的故障注入方法,包括以下步骤:
步骤1、通过卫星轨道参数计算单粒子翻转率,生成单粒子翻转故障注入表,该故障注入表包括注入时间、翻转位数和对应的作用模块,该模块包括寄存器、内存和Flash存储器;
步骤2、建立星载计算机模型和故障注入器,故障注入器加载步骤1生成的单粒子翻转故障注入表,并按照故障注入表中的内容,对星载计算机模型进行故障注入;
步骤3、建立故障观察器,对步骤2故障注入后的各模块的状态和输出进行跟踪,在shell终端实时输出寄存器、内存和Flash内的值;
步骤4、建立日志文件,将故障注入表、步骤3故障观察器所跟踪的各模块值及相应运行结果保存于日志文件中,用于后期分析;清空模型寄存器及内存值,等待下一次仿真开始。
本发明与现有技术相比,其显著优点为:1)星载计算机软件模型灵活性大,可根据不同的设计要求增减或替换不同的模块来仿真不同的设计;2)故障注入的时间和位置精确可控,时间精度达到毫秒,位置精度可以达到特定的寄存器或者内存的单个位(bit);3)本发明方法的注入过程可控性强,星载计算机模型和故障注入模型双线程并行,可通过终端方便地控制和监测仿真进程;4)TLM2.0事务级模型可在保证精度的前提下降低模型复杂性,相较与硬件或寄存器级模型它不精确到硬件时钟,有效缩短了仿真时间。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为故障注入表帧格式的定义图。
图2为本发明的整体结构图。
图3为本发明的运行流程图。
具体实施方式
本发明公开了一种用于星载计算机可靠性验证的故障注入方法,包括以下步骤:
步骤1、通过卫星轨道参数计算单粒子翻转率,生成单粒子翻转故障注入表,该故障注入表包括注入时间、翻转位数和对应的作用模块,该模块包括寄存器、内存和Flash存储器;
通过卫星轨道参数计算单粒子翻转率所用公式为:
式中,E0为阈值能量,单位为MeV;σp(E)为质子单粒子翻转截面积;为质子微分流量;
所述故障注入表为一个二进制文件,二进制文件的帧格式定义如下:
含义 | 序号 | 注入时间/ms | 注入模块 | 注入的物理地址 | 翻转位数 |
占字节数 | 1B | 3B | 1B | 4B | 1B |
步骤2、建立星载计算机模型和故障注入器,故障注入器加载步骤1生成的单粒子翻转故障注入表,并按照故障注入表中的内容,对星载计算机模型进行故障注入;
所述星载计算机模型包括CPU内核、片内片外RAM、Flash和总线;故障注入器包括故障注入表、仿真持续时间;故障注入器与星载计算机模型共享内存实现两者对RAM、Flash等模块的读写。
步骤3、建立故障观察器,对步骤2故障注入后的各模块的状态和输出进行跟踪,在shell终端实时输出寄存器、内存和Flash内的值;
故障观察器用于故障注入过程中对整个模型运行状态的跟踪显示,其中状态跟踪分为两种类型,模型模块值的跟踪和运算变量值的跟踪;其中模型模块值的跟踪以地址作为参数,直接输出相应寄存器地址位内的值,运算变量值的跟踪以变量名作为参数,输出程序中定义的某个变量的值,忽略该变量在内存中的实际地址。
步骤4、建立日志文件,将故障注入表、步骤3故障观察器所跟踪的各模块值及相应运行结果保存于日志文件中,用于后期分析;清空模型寄存器及内存值,等待下一次仿真开始。
所述日志文件由故障观察器生成,故障观察器包括功能实现函数,每一次仿真开始,观察器先在指定目录下以时间标创建日志文件,打开日志文件,并保存故障注入表,在仿真进程运行过程中,于每一个故障注入前后分别纪录寄存器、内存和Flash的值,仿真结束,保存并关闭文件。
本发明方法的注入过程可控性强,星载计算机模型和故障注入模型双线程并行,可通过终端方便地控制和监测仿真进程。
本发明建立一种用于空间辐射环境下星载计算机可靠性验证的故障注入软件模型,包括星载计算机模型、故障注入器和故障观察器,星载计算机模型包括CPU内核、RAM、Flash和总线,故障注入器包括故障注入表和仿真时间,故障观察器包括状态跟踪和日志文件。
下面对本发明做进一步详细的描述。
如图1,故障注入表是由一串二进制文件组成的文本文档inject.txt,仿真前通过配置故障注入表即可完成仿真过程中故障的自动注入。仿真开始准备阶段,故障注入器读取指定目录下的故障注入表。故障注入表中每一个故障由一帧数据来表示,一帧数据长度为10个字节,首个字节标识序号,第二至第四个字节标识时间,第五个字节标识故障注入模块(寄存器、内存或Flash),第六至第九字节标识故障注入具体模块的起始地址位,第十字节标识故障位数(翻转位数)。
如图2,故障注入模型由两部分组成,即两个并行的线程,线程一由星载计算机模型和星务软件组成,线程二由故障注入器fault_injector()和观察器fault_observer()组成。
所述星载计算机模型基于SystemC TLM2.0和OVP建立,CPU内核为ARM7TDMI,可以通过API函数调用不同的开源内核,内部RAM大小为4KB,外部RAM大小为2MB,Flash大小为16MB。为了加快仿真速度,模型为松散定时模型,处理器核的指令模型不精确到硬件时钟,仅精确到1ms。模块直接通过发起者套接字和目标套接字连接,它们支持使用通用净核来建立前向和返回路径。DMI传送接口可直接访问目标所拥有的存储区域,在松散模型中加速存储器的事务处理。
所述星务软件application.c通过交叉编译生成星务计算机模型能够运行的二进制文件application.elf,星务计算机模型加载星务软件后形成了一个完整的星载计算机系统。线程一中星载计算机的CPU寄存器、Flash等模块的内存地址与线程二共享,线程二对这些地址中的值的访问和改变即模拟了单粒子翻转故障。
所述故障注入器加载故障注入表和仿真持续时间,当仿真时间到达故障注入表内标识的时间时,线程一挂起,注入器读取相应模块相应地址内的值,将该值进行0、1翻转后写回,线程一重新开始运行,即为一次故障注入。
所述故障观察器用于在linux终端上打印显示模型运行状态和相应模块内的值以及写日志文件fault_log.txt。在仿真准备阶段,先由故障观察器创建日志文件,仿真开始当故障注入后,所观测的输出量发生变化或与理论值产生差异,则调用printf()函数在终端上显示注入的故障和输出的结果,并且将打印内容写入日志文件。
如图3中为仿真运行流程图,各模块建立初始化完成之后,开始仿真,将线程二的敏感信号设为时钟信号clk.pos(),每次时钟跳变执行线程二,仿真平台的运行按照如下流程,故障注入器判断是否达到仿真终止时间,若达到则终止仿真并且清空内存;若否,再次判断是否达到故障注入时间,若为否,则跳出等待下一次时钟跳变,若达到故障注入时间,则将进程一挂起,调用注入器对相应内存单元进行状态位翻转,调用结束之后继续运行进程一。接着调用观察器在终端上输出注入故障的时间,位置和模型运行状态的变化。接着等待下一次时钟跳变。直至运行结束。
本发明方法的注入过程可控性强,星载计算机模型和故障注入模型双线程并行,可通过终端方便地控制和监测仿真进程。
Claims (5)
1.一种用于星载计算机可靠性验证的故障注入方法,其特征在于,包括以下步骤:
步骤1、通过卫星轨道参数计算单粒子翻转率,生成单粒子翻转故障注入表,该故障注入表包括注入时间、翻转位数和对应的作用模块,该模块包括寄存器、内存和Flash存储器;
步骤2、建立星载计算机模型和故障注入器,故障注入器加载步骤1生成的单粒子翻转故障注入表,并按照故障注入表中的内容,对星载计算机模型进行故障注入;
步骤3、建立故障观察器,对步骤2故障注入后的各模块的状态和输出进行跟踪,在shell终端实时输出寄存器、内存和Flash内的值;
步骤4、建立日志文件,将故障注入表、步骤3故障观察器所跟踪的各模块值及相应运行结果保存于日志文件中,用于后期分析;清空模型寄存器及内存值,等待下一次仿真开始。
2.根据权利要求1所述的用于星载计算机可靠性验证的故障注入方法,其特征在于,步骤1中通过卫星轨道参数计算单粒子翻转率所用公式为:
式中,E0为阈值能量,单位为MeV;σp(E)为质子单粒子翻转截面积;为质子微分流量;
所述故障注入表为一个二进制文件,二进制文件的帧格式定义如下:
3.根据权利要求1所述的用于星载计算机可靠性验证的故障注入方法,其特征在于,步骤2所述星载计算机模型包括CPU内核、片内片外RAM、Flash和总线;故障注入器包括故障注入表、仿真持续时间;故障注入器与星载计算机模型共享内存实现两者对RAM、Flash等模块的读写。
4.根据权利要求1所述的用于星载计算机可靠性验证的故障注入方法,其特征在于,步骤3中故障观察器用于故障注入过程中对整个模型运行状态的跟踪显示,其中状态跟踪分为两种类型,模型模块值的跟踪和运算变量值的跟踪;其中模型模块值的跟踪以地址作为参数,直接输出相应寄存器地址位内的值,运算变量值的跟踪以变量名作为参数,输出程序中定义的某个变量的值,忽略该变量在内存中的实际地址。
5.根据权利要求1所述的用于星载计算机可靠性验证的故障注入方法,其特征在于,步骤4中的日志文件由故障观察器生成,故障观察器包括功能实现函数,每一次仿真开始,观察器先在指定目录下以时间标创建日志文件,打开日志文件,并保存故障注入表,在仿真进程运行过程中,于每一个故障注入前后分别纪录寄存器、内存和Flash的值,仿真结束,保存并关闭文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001412.2A CN108073479A (zh) | 2016-11-14 | 2016-11-14 | 一种用于星载计算机可靠性验证的故障注入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611001412.2A CN108073479A (zh) | 2016-11-14 | 2016-11-14 | 一种用于星载计算机可靠性验证的故障注入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108073479A true CN108073479A (zh) | 2018-05-25 |
Family
ID=62162212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611001412.2A Pending CN108073479A (zh) | 2016-11-14 | 2016-11-14 | 一种用于星载计算机可靠性验证的故障注入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073479A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614274A (zh) * | 2018-12-06 | 2019-04-12 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
CN110096402A (zh) * | 2019-05-06 | 2019-08-06 | 盛科网络(苏州)有限公司 | 对芯片数据异常处理逻辑的验证装置和方法 |
CN112278328A (zh) * | 2020-10-28 | 2021-01-29 | 北京和德宇航技术有限公司 | 卫星姿控软件防护方法、装置、设备及存储介质 |
CN112669541A (zh) * | 2020-12-24 | 2021-04-16 | 深圳市怡化时代科技有限公司 | 一种走钞故障模拟系统 |
CN112840326A (zh) * | 2018-12-03 | 2021-05-25 | 易享信息技术有限公司 | 用于自动化操作管理的测试引擎 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938183B2 (en) * | 2001-09-21 | 2005-08-30 | The Boeing Company | Fault tolerant processing architecture |
CN102135920A (zh) * | 2011-01-17 | 2011-07-27 | 中国航天科技集团公司第九研究院第七七一研究所 | 嵌入式星载计算机故障注入系统及其注入方法 |
CN103198868A (zh) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | 一种用于单粒子翻转的故障模拟系统及分析方法 |
CN103678131A (zh) * | 2013-12-18 | 2014-03-26 | 哈尔滨工业大学 | 多核处理器的软件故障注入与分析系统 |
US20150193319A1 (en) * | 2014-01-06 | 2015-07-09 | Fujitsu Limited | Method and a computing system allowing a method of injecting hardware faults into an executing application |
US9316691B2 (en) * | 2011-03-17 | 2016-04-19 | Eigenix | Method and apparatus for fault injection |
-
2016
- 2016-11-14 CN CN201611001412.2A patent/CN108073479A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6938183B2 (en) * | 2001-09-21 | 2005-08-30 | The Boeing Company | Fault tolerant processing architecture |
CN102135920A (zh) * | 2011-01-17 | 2011-07-27 | 中国航天科技集团公司第九研究院第七七一研究所 | 嵌入式星载计算机故障注入系统及其注入方法 |
US9316691B2 (en) * | 2011-03-17 | 2016-04-19 | Eigenix | Method and apparatus for fault injection |
CN103198868A (zh) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | 一种用于单粒子翻转的故障模拟系统及分析方法 |
CN103678131A (zh) * | 2013-12-18 | 2014-03-26 | 哈尔滨工业大学 | 多核处理器的软件故障注入与分析系统 |
US20150193319A1 (en) * | 2014-01-06 | 2015-07-09 | Fujitsu Limited | Method and a computing system allowing a method of injecting hardware faults into an executing application |
Non-Patent Citations (4)
Title |
---|
于航,王晶,周继芹,李亚,张伟功: "面向单粒子翻转效应的模拟故障注入技术", 《计算机工程与设计》 * |
仉俊峰: "星载计算机系统可靠性评测方法的研究", 《中国优秀博士论文全文数据库》 * |
张程烨,张大伟,陈辰: "面向星载应用的软件故障注入方法", 《仪器仪表用户》 * |
薛玉雄,曹洲,杨世宇: "星载电子系统高能质子单粒子翻转率计算", 《航天器环境工程》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112840326A (zh) * | 2018-12-03 | 2021-05-25 | 易享信息技术有限公司 | 用于自动化操作管理的测试引擎 |
CN109614274A (zh) * | 2018-12-06 | 2019-04-12 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
CN109614274B (zh) * | 2018-12-06 | 2022-05-27 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
CN110096402A (zh) * | 2019-05-06 | 2019-08-06 | 盛科网络(苏州)有限公司 | 对芯片数据异常处理逻辑的验证装置和方法 |
CN110096402B (zh) * | 2019-05-06 | 2023-08-22 | 苏州盛科通信股份有限公司 | 对芯片数据异常处理逻辑的验证装置和方法 |
CN112278328A (zh) * | 2020-10-28 | 2021-01-29 | 北京和德宇航技术有限公司 | 卫星姿控软件防护方法、装置、设备及存储介质 |
CN112278328B (zh) * | 2020-10-28 | 2021-07-06 | 北京和德宇航技术有限公司 | 卫星姿控软件防护方法、装置、设备及存储介质 |
CN112669541A (zh) * | 2020-12-24 | 2021-04-16 | 深圳市怡化时代科技有限公司 | 一种走钞故障模拟系统 |
CN112669541B (zh) * | 2020-12-24 | 2022-11-25 | 深圳市怡化时代科技有限公司 | 一种走钞故障模拟系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073479A (zh) | 一种用于星载计算机可靠性验证的故障注入方法 | |
CN107167725B (zh) | 一种快速低开销全自动数字集成电路单粒子故障注入系统 | |
US9026966B1 (en) | Co-simulation methodology to address performance and runtime challenges of gate level simulations with, SDF timing using emulators | |
CN104205052B (zh) | 用场可编程门阵列仿真被测器件的方法和系统 | |
CN102480467B (zh) | 一种基于网络通讯协议的soc软硬件协同仿真验证方法 | |
CN102760176B (zh) | 硬件事务级仿真方法、引擎及系统 | |
CN105069256A (zh) | 一种基于tmr的实现和故障注入仿真平台及仿真方法 | |
Keller et al. | File systems deserve verification too! | |
CN103150441A (zh) | 一种软硬件协同仿真的验证平台及其构建方法 | |
CN114707453A (zh) | 芯片功能的验证方法、装置、电子设备及存储介质 | |
CN108197351A (zh) | 一种受单片机控制的集成电路的仿真验证方法 | |
CN104598699A (zh) | 面向SystemC电路模型的软错误敏感度分析方法 | |
Montón et al. | Checkpointing for virtual platforms and SystemC-TLM | |
CN106886487A (zh) | 用于评价fpga软件可靠性的方法 | |
CN202443461U (zh) | 一种单粒子误差注入仿真测试系统 | |
CN116992804A (zh) | 芯片验证的方法及计算设备 | |
CN102253884B (zh) | 模拟单板软件运行环境的方法及装置 | |
CN113779918A (zh) | SoC仿真方法、装置、计算设备和计算机存储介质 | |
US9075639B1 (en) | Systems and methods for handling interrupts during software design simulation | |
Yeh et al. | Enabling TLM-2.0 interface on QEMU and SystemC-based virtual platform | |
CN106934187A (zh) | 一种提高芯片fpga原型验证效率的调试方法及系统 | |
CN116848518A (zh) | 一种延迟补偿方法以及相关设备 | |
CN112464500A (zh) | 备份cell替换电路验证方法、装置、存储介质和终端 | |
CN116451625B (zh) | 用于rtl和带sdf网表的联合仿真的装置和方法 | |
Mbarek et al. | Power-aware wrappers for transaction-level virtual prototypes: A black box based approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180525 |
|
RJ01 | Rejection of invention patent application after publication |