CN111708695A - 基于AT697的cache抗单粒子翻转效果验证方法 - Google Patents
基于AT697的cache抗单粒子翻转效果验证方法 Download PDFInfo
- Publication number
- CN111708695A CN111708695A CN202010539950.7A CN202010539950A CN111708695A CN 111708695 A CN111708695 A CN 111708695A CN 202010539950 A CN202010539950 A CN 202010539950A CN 111708695 A CN111708695 A CN 111708695A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- single event
- event upset
- cache memory
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种基于AT697的cache抗单粒子翻转效果验证方法,该方法包括:在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略;通过CCR寄存器分别向数据高速缓冲存储器注入单粒子翻转一位错;通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障;比较具有高速缓冲存储器抗单粒子翻转加固设计的星载软件和没有高速缓冲存储器抗单粒子翻转加固设计的星载软件的遥测数据,得到高速缓冲存储器的故障纠错性能验证结果。本发明验证了抗单粒子翻转加固设计的有效性,提升AT697上的cache模块的可靠性。
Description
技术领域
本发明涉及航天电子技术领域,具体地,涉及基于AT697的cache抗单粒子翻转效果验证方法。
背景技术
处于复杂空间环境中的飞行器,极易受到太阳风、空间电磁风暴、空间高能粒子和宇宙射线的威胁,发生单粒子翻转故障。运行于其上的嵌入式软件,诸如星载管理软件、星务软件等,是卫星的控制核心,对可靠性、安全性、可维护性以及使用寿命都有着较高的要求,特别是在发生单粒子故障后应该具备自我修复能力。
目前基于AT697的星载计算机上SRAM、EEPROM等存储器的单粒子翻转错误处理已经比较成熟,能够检错纠错。但是其上的cache(高速缓冲存储器)由于仅仅具有奇偶校验功能,对单粒子两位错不具备故障发现能力,因此如何及时消除cache的单粒子翻转,保证cache的单粒子翻转错误不累积为两位错(奇偶校验不能检测两位错),以及有效性验证的手段都是必须解决的一个问题。
基于AT697CPU的星载计算机已经在航天工程中得到广泛应用,随着星载软件任务越来越复杂,对CPU的性能要求越来越高,使用cache提高处理器性能势在必行。如何正确使用cache,对cache抗单粒子翻转加固设计,使得星载软件可以稳定可靠地实施抗单粒子故障功能是本领域亟需解决的技术问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于AT697的cache抗单粒子翻转效果验证方法。
本发明提供一种基于AT697的cache抗单粒子翻转效果验证方法,应用在包含高速缓冲存储器cache和AT697处理器的星载计算机平台中,所述方法包括:
在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略;
通过CCR(Cache Control,高速缓冲存储器的控制器)寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;
通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;
将数据高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块,分别加载到具有高速缓冲存储器抗单粒子翻转加固策略的星载软件和没有高速缓冲存储器抗单粒子翻转加固策略的星载软件中编译运行;
通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障;
比较具有高速缓冲存储器抗单粒子翻转加固设计的星载软件和没有高速缓冲存储器抗单粒子翻转加固设计的星载软件的遥测数据,得到高速缓冲存储器的故障纠错性能验证结果。
可选地,所述在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略,包括:
设置预设周期的定时中断;
在中断处理程序中通过CCR寄存器对数据高速缓冲存储器、指令高速缓冲存储器进行使无效操作,以清零指令数据高速缓冲存储器,和/或数据高速缓冲存储器的内容。
可选地,所述通过CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到数据高速缓冲存储器的Tag中;
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的数据部分时,将单粒子翻转故障注入到数据高速缓冲存储器的数据中。
可选地,所述通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到指令高速缓冲存储器的Tag中;
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的数据部分时,将单粒子翻转故障注入到指令高速缓冲存储器的数据中。
可选地,所述方法还包括:
设置针对高速缓冲存储器的单粒子注入功能函数,所述功能函数用于指示CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,和/或指示CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;其中,所述功能函数在星载软件的0.5S定时中断处被周期性调用。
可选地,所述通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障,包括:
在星载软件的运行过程中,按照0.5S定时中断周期调用所述功能函数,将所述功能函数编译后的代码通过地面测试设备加载到星载计算机的SRAM中运行,以使得所述功能函数对指令高速缓冲存储器和/或者数据高速缓冲存储器的Tag部分和数据部分注入单粒子翻转故障。
与现有技术相比,本发明具有如下的有益效果:
本发明提供的一种基于AT697的cache抗单粒子翻转效果验证方法,解决了AT697上Cache由于仅仅具有奇偶校验功能,对单粒子两位错不具备故障发现能力,易导致星载软件错误的问题。并且可以在地面模拟单粒子翻转错误,验证cache抗单粒子翻转加固设计的有效性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的一种基于AT697的cache抗单粒子翻转效果验证方法的原理框图;
图2为本发明提供的一种基于AT697的cache抗单粒子翻转效果验证方法流程示意图;
图3为本发明提供的另一种基于AT697的cache抗单粒子翻转效果验证方法流程示意图;
图4为本发明提供的又一种基于AT697的cache抗单粒子翻转效果验证方法流程示意图;
图5为本发明方法提供的四种单粒子故障注入函数的流程图。
图中:
1-个人计算机;2-地面测试设备;3-星载计算机。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供一种基于AT697的cache抗单粒子翻转效果验证方法,应用在包含高速缓冲存储器cache和AT697处理器的星载计算机平台中,方法包括:在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略;通过CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;将数据高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块,分别加载到具有高速缓冲存储器抗单粒子翻转加固策略的星载软件和没有高速缓冲存储器抗单粒子翻转加固策略的星载软件中编译运行;通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障;比较具有高速缓冲存储器抗单粒子翻转加固设计的星载软件和没有高速缓冲存储器抗单粒子翻转加固设计的星载软件的遥测数据,得到高速缓冲存储器的故障纠错性能验证结果。
本发明利用CCR寄存器,根据cache的结构特点,设计向数据cache的Tag部分、数据部分注入单粒子翻转一位错;利用CCR寄存器,根据缓存区的结构特点,设计向指令cache的Tag部分、数据部分注入单粒子翻转一位错;将设计的数据cache、指令cache单粒子翻转一位错注入模块加入到具有cache抗单粒子翻转加固设计和没有cache抗单粒子翻转加固设计的星载软件中编译运行;通过比较cache抗单粒子翻转加固设计使用前后的遥测数据(cache四种单粒子错误计数),以实现对星载软件的cache抗单粒子翻转加固设计能及时清除单粒子翻转错误有效性测试。
具体地,首先搭建考核系统平台,系统采用如图1所示的结构,包括一台安装Linux操作系统的用来进行交叉编译的PC机1、一个通过串口向星载计算机发送目标代码、模拟星际链路、显示星载软件传下来的遥测的地面测试设备2以及星载计算机3。这些设备所提供的具体功能如下:
安装Linux操作系统的用来进行交叉编译的PC机:对程序进行交叉编译,以便对添加了cache抗单粒子翻转加固设计函数和单粒子故障注入函数后的星载软件进行编译,生成可运行的目标代码;
地面测试设备2:通过串口和星载计算机相连,将在交叉编译的PC机上生成的二进制目标代码发送给星载计算机3,对程序运行的状态和星载软件下传的遥测数据进行显示;
星载计算机:为运行星载软件的单机,具备接收地面测试设备2发来的目标代码,并运行目标代码的功能。
如图2所示,整个平台工作时的操作过程中,一次完整的基于AT697星载计算机的cache抗单粒子翻转加固设计及验证的过程可分成3步:步骤1:注入单粒子故障,星载软件无单粒子翻转错误处理功能时,观察遥测中单粒子故障的计数;步骤2:注入单粒子故障,星载软件有cache抗单粒子翻转加固设计时,观察遥测中单粒子故障的计数;步骤3:比较遥测结果,验证加固设计的有效性。具体包括:
首先,进行步骤1中的测试:在可交叉编译的PC机1中将添加了故障注入功能模块后的星载软件进行交叉编译,生成更改后的二进制目标代码,编译后的目标代码通过地面测试设备2加载到星载计算机3的SRAM中进行运行,运行后故障注入功能模块会触发单粒子故障,但由于没有cache单粒子翻转加固设计模块,该故障未被主动清除,故星载软件运行时会检测到一位错,遥测信息中单粒子故障的计数会增加(虽然cache检测到一位错时会更新cache,但对于缓存中不经常使用的块,极易累积为两位错,对于只有奇偶校验功能的cache,两位错会造成程序运行错误,引起卫星任务的失败)。
然后,进行步骤2中的测试:在可交叉编译的PC机1中在步骤1中的星载软件中继续添加cache单粒子翻转加固设计模块,进行交叉编译,生成更改后的二进制目标代码,编译后的目标代码通过地面测试设备2加载到星载计算机3的SRAM中运行,运行后故障注入功能模块会每0.5S定时触发单粒子故障,cache单粒子翻转加固设计模块会每1S将错误清除,遥测信息中单粒子故障的计数不会增加。
最后,通过比较cache单粒子翻转加固设计使用前后星载软件的遥测数据(cache四种单粒子错误计数),以实现对星载软件的cache单粒子翻转加固设计能及时清除单粒子一位错有效性的测试。
其中,地面测试设备通过串口将编译后的代码发送给星载计算机,由星载计算机存储在PROM中的监控软件将编译后的代码加载到SRAM中。具体地,星载计算机3将接收到的目标代码加载到SRAM中,接收结束后执行该代码。在实际的型号中代码是烧录在EEPROM中,由星载计算机3中固化在PROM中的监控搬到SRAM中运行,cache单粒子翻转错误也是受到太空辐射才发生的,这里为了验证星载软件的cache单粒子翻转加固设计模块的可靠性,提供了一种软件模拟向cache注入单粒子故障的方法,是一种测试手段,该测试手段能够验证星载软件在轨后cache单粒子翻转加固设计功能的有效性和正确性。
本发明中的方法适用于运行在AT697上使用cache功能模块的航天星载软件,针对卫星在轨阶段,cache模块在使用时会发生单粒子翻转错误,提出了一种加固设计及验证的方法。应用此方法cache不仅能够抗单粒子翻转,同时为地面测试提供了技术手段,验证了抗单粒子翻转加固设计的有效性,从而在轨可以更可靠的使用AT697上的cache模块。
示例性的,在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略,包括:设置预设周期的定时中断;在中断处理程序中通过CCR寄存器对数据高速缓冲存储器、指令高速缓冲存储器进行使无效操作,以清零指令数据高速缓冲存储器,和/或数据高速缓冲存储器的内容。
本实施例中,利用AT697星载计算机平台的AT697芯片所自带的CCR寄存器,根据cache的结构特点在星载软件中设计cache抗单粒子翻转加固方法,及时消除cache的单粒子翻转错误,保证cache的单粒子翻转错误不会被累积。例如,在程序中设计一个周期为1S的定时中断,在中断处理程序中通过CCR寄存器对数据cache、指令cache进行使无效操作,清零指令cache和数据cache的内容,以定期消除单粒子翻转错误。
本实施例中,AT697上cache分为数据cache和指令cache,每种cache由Tag部分和数据部分组成,因此可以根据AT697提供的CCR寄存器,设计向Cache注入单粒子翻转故障的功能。
示例性的,通过CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到数据高速缓冲存储器的Tag中;通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的数据部分时,将单粒子翻转故障注入到数据高速缓冲存储器的数据中。
示例性的,通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到指令高速缓冲存储器的Tag中;通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的数据部分时,将单粒子翻转故障注入到指令高速缓冲存储器的数据中。
可选地,上述方法还包括:设置针对高速缓冲存储器的单粒子注入功能函数,功能函数用于指示CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,和/或指示CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;其中,功能函数在星载软件的0.5S定时中断处被周期性调用。
本实施例中,设计cache单粒子故障注入功能函数后,在星载软件的0.5S定时中断处调用cache单粒子故障注入功能函数,由0.5S定时中断定期调用运行。首先,在可交叉编译的PC机中修改星载软件,添加了故障注入功能模块,该模块在星载软件0.5S定时中断里被调用。接着,继续修改上述星载软件,在故障注入功能的基础上,继续添加cache抗单粒子翻转加固设计功能函数,并将编译后的代码加载到星载计算机的SRAM中运行。最后,比较cache抗单粒子翻转加固设计功能使用前后单粒子翻转错误的计数,以完成星载软件的cache抗单粒子翻转加固设计功能有效性的测试。
示例性的,通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障,包括:在星载软件的运行过程中,按照0.5S定时中断周期调用功能函数,将功能函数编译后的代码通过地面测试设备加载到星载计算机的SRAM中运行,以使得功能函数对指令高速缓冲存储器和/或者数据高速缓冲存储器的Tag部分和数据部分注入单粒子翻转故障。
需要说明的是,地面测试设备通过串口将编译后的代码发送给星载计算机,由星载计算机的存储在PROM中的监控软件将编译后的代码加载到SRAM中,该监控软件用来进行串口加载,和本发明的cache抗单粒子翻转加固设计方法以及验证方法无直接关联,故不详细描述。
具体地,利用上述方法和步骤对AT697星载计算机软件cache单粒子翻转加固设计及验证方法进行了实验验证。下表1~2为实验结果。可以看到,表1中结果显示,注入单粒子故障后,星载软件中无cache单粒子翻转加固设计时,单粒子故障的计数持续增加,对于经常使用的缓存块,程序运行使用该块时一位错会被修复,但对于缓存中不经常使用的块,极易累积两位错,对于只有奇偶校验功能的Cache,两位错会造成程序运行错误,给航天器带来极大的风险;表2中结果显示,注入单粒子故障后,星载软件中添加了cache单粒子翻转加固设计时,单粒子故障的计数一直保持为0。实验结果表明,单粒子故障正确注入后,cache单粒子翻转加固设计能及时清除单粒子一位错故障,避免累积成两位错故障,故基于AT697星载计算机的cache抗单粒子翻转加固设计及验证方法实验成功。
表1:未有cache单粒子翻转加固设计时注入单粒子翻转故障10分钟后的遥测结果
数据Cache中Tag错误总计数高8位 | TMS3120 | 00 |
数据Cache中Tag错误总计数次高8位 | TMS3121 | 00 |
数据Cache中Tag错误总计数次低8位 | TMS3122 | 04 |
数据Cache中Tag错误总计数低8位 | TMS3123 | B1 |
数据Cache中数据错误总计数高8位 | TMS3124 | 00 |
数据Cache中数据错误总计数次高8位 | TMS3125 | 00 |
数据Cache中数据错误总计数次低8位 | TMS3126 | 04 |
数据Cache中数据错误总计数低8位 | TMS3127 | B1 |
指令Cache中Tag错误总计数高8位 | TMS3128 | 00 |
指令Cache中Tag错误总计数次高8位 | TMS3129 | 00 |
指令Cache中Tag错误总计数次低8位 | TMS3130 | 04 |
指令Cache中Tag错误总计数低8位 | TMS3131 | B1 |
指令Cache中数据错误总计数高8位 | TMS3132 | 00 |
指令Cache中数据错误总计数次高8位 | TMS3133 | 00 |
指令Cache中数据错误总计数次低8位 | TMS3134 | 04 |
指令Cache中数据错误总计数低8位 | TMS3135 | B1 |
表2:cache单粒子翻转加固设计时注入单粒子翻转故障的遥测实验结果
数据Cache中Tag错误总计数高8位 | TMS3120 | 00 |
数据Cache中Tag错误总计数次高8位 | TMS3121 | 00 |
数据Cache中Tag错误总计数次低8位 | TMS3122 | 00 |
数据Cache中Tag错误总计数低8位 | TMS3123 | 00 |
数据Cache中数据错误总计数高8位 | TMS3124 | 00 |
数据Cache中数据错误总计数次高8位 | TMS3125 | 00 |
数据Cache中数据错误总计数次低8位 | TMS3126 | 00 |
数据Cache中数据错误总计数低8位 | TMS3127 | 00 |
指令Cache中Tag错误总计数高8位 | TMS3128 | 00 |
指令Cache中Tag错误总计数次高8位 | TMS3129 | 00 |
指令Cache中Tag错误总计数次低8位 | TMS3130 | 00 |
指令Cache中Tag错误总计数低8位 | TMS3131 | 00 |
指令Cache中数据错误总计数高8位 | TMS3132 | 00 |
指令Cache中数据错误总计数次高8位 | TMS3133 | 00 |
指令Cache中数据错误总计数次低8位 | TMS3134 | 00 |
指令Cache中数据错误总计数低8位 | TMS3135 | 00 |
本发明提供的方法,运行于AT697平台,利用AT697和Cache的特点,设计基于AT697星载计算机的cache抗单粒子翻转加固设计及单粒子故障注入的有效性验证方法函数模块,并将这函数加入到待测试的星载软件中编译运行,实现星载计算机中单粒子故障的模拟及处理功能,通过与不添加cache单粒子翻转加固设计的星载软件进行比较,测试星载软件基于AT697星载计算机的cache抗单粒子翻转加固设计功能的正确性。该方法给出了及时消除Cache的单粒子翻转的处理方法和验证手段。因此,星载软件中能够可靠的使用Cache模块,提高CPU处理器的性能,满足星载软件任务越来越复杂的趋势。
本发明还提供一种基于AT697的cache抗单粒子翻转效果验证系统。需要说明的是,本发明提供的基于AT697的cache抗单粒子翻转效果验证方法中的步骤,可以利用AT697处理器的cache抗单粒子翻转加固系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照系统的技术方案实现方法的步骤流程,即,系统中的实施例可理解为实现方法的优选例,在此不予赘述。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (6)
1.一种基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,应用在包含高速缓冲存储器cache和AT697处理器的星载计算机平台中,所述方法包括:
在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略;
通过CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;
通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;
将数据高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块,分别加载到具有高速缓冲存储器抗单粒子翻转加固策略的星载软件和没有高速缓冲存储器抗单粒子翻转加固策略的星载软件中编译运行;
通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障;
比较具有高速缓冲存储器抗单粒子翻转加固设计的星载软件和没有高速缓冲存储器抗单粒子翻转加固设计的星载软件的遥测数据,得到高速缓冲存储器的故障纠错性能验证结果。
2.根据权利要求1所述的基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,所述在星载软件中设置基于高速缓冲存储器的抗单粒子翻转加固策略,包括:
设置预设周期的定时中断;
在中断处理程序中通过CCR寄存器对数据高速缓冲存储器、指令高速缓冲存储器进行使无效操作,以清零指令数据高速缓冲存储器,和/或数据高速缓冲存储器的内容。
3.根据权利要求1所述的基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,所述通过CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到数据高速缓冲存储器的Tag中;
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写数据高速缓冲存储器的数据部分时,将单粒子翻转故障注入到数据高速缓冲存储器的数据中。
4.根据权利要求1所述的基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,所述通过CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,包括:
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的Tag部分时,将单粒子翻转故障注入到指令高速缓冲存储器的Tag中;
通过CCR寄存器的cptb位在写数据时将奇偶校验位取反,使得在写指令高速缓冲存储器的数据部分时,将单粒子翻转故障注入到指令高速缓冲存储器的数据中。
5.根据权利要求1-4中任一项所述的基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,所述方法还包括:
设置针对高速缓冲存储器的单粒子注入功能函数,所述功能函数用于指示CCR寄存器分别向数据高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错,和/或指示CCR寄存器分别向指令高速缓冲存储器的Tag部分、数据部分注入单粒子翻转一位错;其中,所述功能函数在星载软件的0.5S定时中断处被周期性调用。
6.根据权利要求5所述的基于AT697的cache抗单粒子翻转效果验证方法,其特征在于,所述通过高速缓冲存储器的单粒子翻转一位错注入模块、指令高速缓冲存储器的单粒子翻转一位错注入模块注入单粒子故障,包括:
在星载软件的运行过程中,按照0.5S定时中断周期调用所述功能函数,将所述功能函数编译后的代码通过地面测试设备加载到星载计算机的SRAM中运行,以使得所述功能函数对指令高速缓冲存储器和/或者数据高速缓冲存储器的Tag部分和数据部分注入单粒子翻转故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539950.7A CN111708695A (zh) | 2020-06-12 | 2020-06-12 | 基于AT697的cache抗单粒子翻转效果验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539950.7A CN111708695A (zh) | 2020-06-12 | 2020-06-12 | 基于AT697的cache抗单粒子翻转效果验证方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111708695A true CN111708695A (zh) | 2020-09-25 |
Family
ID=72540526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010539950.7A Pending CN111708695A (zh) | 2020-06-12 | 2020-06-12 | 基于AT697的cache抗单粒子翻转效果验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708695A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112951314A (zh) * | 2021-02-01 | 2021-06-11 | 上海航天计算机技术研究所 | 一种基于tsc695处理器的可加载型通用ram自测试方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306083A (ja) * | 1998-04-21 | 1999-11-05 | Fujitsu Ltd | シングルイベントアップセット対策データ処理装置およびシングルイベントアップセット対策処理方法 |
CN102096627A (zh) * | 2009-12-11 | 2011-06-15 | 上海卫星工程研究所 | 星载软件抗单粒子翻转故障的测试装置 |
CN102521066A (zh) * | 2011-11-15 | 2012-06-27 | 北京空间飞行器总体设计部 | 星载计算机空间环境事件容错方法 |
CN103198868A (zh) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | 一种用于单粒子翻转的故障模拟系统及分析方法 |
CN103971732A (zh) * | 2014-04-30 | 2014-08-06 | 浙江大学 | 监控fpga的单粒子翻转效应并纠正重加载的方法及系统 |
CN103984630A (zh) * | 2014-05-27 | 2014-08-13 | 中国科学院空间科学与应用研究中心 | 一种基于at697处理器的单粒子翻转故障处理方法 |
CN107992412A (zh) * | 2017-11-27 | 2018-05-04 | 上海航天测控通信研究所 | 基于erc32的星载软件抗单粒子翻转故障的测试方法 |
CN108509300A (zh) * | 2018-04-13 | 2018-09-07 | 上海微小卫星工程中心 | 一种基于卫星星务系统的单粒子自纠正方法 |
CN108710551A (zh) * | 2018-04-28 | 2018-10-26 | 北京轩宇信息技术有限公司 | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 |
CN109614274A (zh) * | 2018-12-06 | 2019-04-12 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
-
2020
- 2020-06-12 CN CN202010539950.7A patent/CN111708695A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306083A (ja) * | 1998-04-21 | 1999-11-05 | Fujitsu Ltd | シングルイベントアップセット対策データ処理装置およびシングルイベントアップセット対策処理方法 |
CN102096627A (zh) * | 2009-12-11 | 2011-06-15 | 上海卫星工程研究所 | 星载软件抗单粒子翻转故障的测试装置 |
CN102521066A (zh) * | 2011-11-15 | 2012-06-27 | 北京空间飞行器总体设计部 | 星载计算机空间环境事件容错方法 |
CN103198868A (zh) * | 2013-04-16 | 2013-07-10 | 西北核技术研究所 | 一种用于单粒子翻转的故障模拟系统及分析方法 |
CN103971732A (zh) * | 2014-04-30 | 2014-08-06 | 浙江大学 | 监控fpga的单粒子翻转效应并纠正重加载的方法及系统 |
CN103984630A (zh) * | 2014-05-27 | 2014-08-13 | 中国科学院空间科学与应用研究中心 | 一种基于at697处理器的单粒子翻转故障处理方法 |
CN107992412A (zh) * | 2017-11-27 | 2018-05-04 | 上海航天测控通信研究所 | 基于erc32的星载软件抗单粒子翻转故障的测试方法 |
CN108509300A (zh) * | 2018-04-13 | 2018-09-07 | 上海微小卫星工程中心 | 一种基于卫星星务系统的单粒子自纠正方法 |
CN108710551A (zh) * | 2018-04-28 | 2018-10-26 | 北京轩宇信息技术有限公司 | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 |
CN109614274A (zh) * | 2018-12-06 | 2019-04-12 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
Non-Patent Citations (2)
Title |
---|
张程烨;张大伟;陈辰;: "面向星载应用的软件故障注入方法" * |
郑晓云;王绍举;: "SRAM型FPGA单粒子翻转模拟系统研究" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112951314A (zh) * | 2021-02-01 | 2021-06-11 | 上海航天计算机技术研究所 | 一种基于tsc695处理器的可加载型通用ram自测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cheynet et al. | Experimentally evaluating an automatic approach for generating safety-critical software with respect to transient errors | |
JP5283650B2 (ja) | 過渡エラー制約を受ける電子システムのためのメモリアクセス監視装置 | |
CN103984630B (zh) | 一种基于at697处理器的单粒子翻转故障处理方法 | |
CN102096627A (zh) | 星载软件抗单粒子翻转故障的测试装置 | |
CN103971732A (zh) | 监控fpga的单粒子翻转效应并纠正重加载的方法及系统 | |
CN107992412B (zh) | 基于erc32的星载软件抗单粒子翻转故障的测试方法 | |
CN111708695A (zh) | 基于AT697的cache抗单粒子翻转效果验证方法 | |
Rebaudengo et al. | Coping with SEUs/SETs in microprocessors by means of low-cost solutions: a comparison study | |
Nicolescu et al. | A software fault tolerance method for safety-critical systems: Effectiveness and drawbacks | |
Ibrahim et al. | Evaluation of SRAM based FPGA performance by simulating SEU through fault injection | |
Polo et al. | Reliability-oriented design of on-board satellite boot software against single event effects | |
US10956265B2 (en) | Method of performing single event upset testing | |
Alexandrescu et al. | Fault injection and fault tolerance methodologies for assessing device robustness and mitigating against ionizing radiation | |
Szurman et al. | Fault tolerant can bus control system implemented into fpga | |
Cekan et al. | Software fault tolerance: the evaluation by functional verification | |
Villalta et al. | Dependability in FPGAs, a review | |
CN111813688A (zh) | 航天软件抗单粒子翻转可靠性测评方法和系统 | |
Aguilera et al. | Fault injection on a mixed-signal programmable SoC with design diversity mitigation | |
Major et al. | Radpc: A novel single-event upset mitigation strategy for field programmable gate array–based space computing | |
Valderas et al. | Two complementary approaches for studying the effects of SEUs on digital processors | |
Ferreira et al. | Compiler optimizations impact the reliability of the control-flow of radiation-hardened software | |
Dilillo et al. | Error resilient infrastructure for data transfer in a distributed neutron detector | |
Restrepo-Calle et al. | Application-driven co-design of fault-tolerant industrial systems | |
Matthews et al. | NSEU impact on commercial avionics | |
Mamoutova et al. | On design of cache with efficient soft error protection |
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 |