CN108710551B - 基于sparc处理器单粒子翻转故障注入的测试方法及系统 - Google Patents
基于sparc处理器单粒子翻转故障注入的测试方法及系统 Download PDFInfo
- Publication number
- CN108710551B CN108710551B CN201810398608.2A CN201810398608A CN108710551B CN 108710551 B CN108710551 B CN 108710551B CN 201810398608 A CN201810398608 A CN 201810398608A CN 108710551 B CN108710551 B CN 108710551B
- Authority
- CN
- China
- Prior art keywords
- fault
- test
- fault injection
- area
- error
- 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.)
- Active
Links
Images
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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- 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/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
基于SPARC处理器单粒子翻转故障注入的测试系统,包含故障注入测试数据生成模块、故障注入自动化测试执行模块、故障注入自动化输出测试报告模块。本发明解决了SPARC处理器单粒子翻转故障类型繁多、缺乏故障注入的专项测试、缺乏故障注入的精确控制、硬平台测试环境手工操作效率低等缺陷和不足。通过软件仿真故障注入建立模型,对注入的单粒子翻转故障精确的监控和执行序列化操作,具有配置脚本激励灵活、全数字仿真系统建模高速运行、模拟SPARC处理器单粒子故障驱动、动态运行时分析验证等优点。对提升我国航天型号软件可靠性与安全性确认测试与验证具有重要的意义。
Description
技术领域
本发明涉及基于SPARC处理器单粒子翻转故障注入的测试方法,属于航天电子技术和嵌入式软件测试技术领域。
背景技术
在缺乏大气层保护的空间环境中,航天器直接暴露在充斥着各种高能粒子的空间辐射环境中,按照分布带和粒子来源,高能粒子可以划分为地球俘获带粒子、太阳宇宙射线和银河宇宙射线。空间辐射环境中的高能粒子对航天器中的半导体集成电路的影响主要是单粒子效应。尤其是单粒子翻转日益威胁着在轨航天器的正常运行。单粒子效应是由于高能粒子射入半导体器件中,并在其入射轨迹上形成一条电离通道,发生能量转移和沉淀,最终导致电路状态发生变化的效应。
SPARC(Scalable Processor ARChitecture可扩充处理器架构)处理器作为一款完全抗辐照设计的处理器,集成EDAC(Error Detection And Correction错误检测与纠正)单元模块,提供了对SRAM、EEPROM等存储器的单粒子翻转检测功能及纠错接口,目前被广泛应用于航天。随着航天电子技术的发展,我国新一代航天器中广泛采用软件密集系统,软件在保证航天器安全稳定运行、可靠完成任务方面起着至关重要的作用。软件不仅极大地提高了航天器系统原有的功能,而且使其获得了许多崭新的能力,许多关键任务的完成均依赖于软件。这种特点和趋势在空间站、深空探测等重大航天工程中尤为凸显。
通过对航天卫星在轨质量问题梳理分析,引起的软件在轨首次异常多达11次,占近四年全部软件首次在轨异常总数的61.1%。目前针对SPARC处理器单粒子翻转故障的测试方法存在如下缺陷和不足:
(1)、SPARC处理器类型、SRAM存储器、EEPROM存储器、不可写区的排列组合,以及单粒子翻转故障的单错、取数双错、取指双错,导致单粒子翻转故障类型繁多,暴露了地面测试验证不充分。
(2)、缺乏单粒子故障的专项测试,针对单错、双错的非四字节地址对齐错误、边界错误、常0常1错误、频繁发生的错误、主备份错误等测试项验证被测软件的健壮性不足。
(3)、缺乏对单粒子翻转故障的时间间隔、先后次序、触发时刻、故障序列精确的控制。
(4)、硬平台测试环境下,手工逐个编写故障驱动测试用例、串口打印输出实际测试结果、手工编写测试报告工作效率低。
国内外普遍采用的故障注入技术从实现机制来看,可以分为三类:基于硬件实现的故障注入方法、基于软件实现的故障注入方法、基于重离子辐射的方法。其中本发明是基于软件实现的故障注入方法。本发明解决SPARC处理器单粒子翻转故障类型繁多、缺乏故障注入的专项测试、缺乏故障注入的精确控制、硬平台测试环境手工操作效率低等缺陷和不足,根据SPARC处理器提供的单错、取数双错、取指双错的特点,针对空间单粒子故障提出一套完整的故障注入测试方法。
发明内容
本发明的目的在于,为克服上述问题,本发明提供了基于SPARC处理器单粒子翻转故障注入的测试方法。
本发明的技术解决方案是:基于SPARC处理器单粒子翻转故障注入的测试系统,包括故障注入测试数据生成模块、故障注入自动化测试执行模块、故障注入自动化输出测试报告模块,其中:
故障注入测试数据生成模块包括SPARC处理器地址配置子模块、故障注入参数配置子模块、执行序列配置子模块;
故障注入自动化测试执行模块包括自动化测试脚本子模块、故障注入驱动子模块、软件虚拟仿真测试环境子模块、自动化比对记录子模块;
故障注入自动化输出测试报告模块包括自动化生成测试用例子模块、自动化生成测试结果子模块、自动化生成测试报告子模块;
SPARC处理器地址配置子模块,根据单粒子故障注入类型选择配置SPARC处理器类型、SRAM存储器、EEPROM存储器、不可写区,其中,SRAM存储器、EEPROM存储器可配置起始地址和结束地址;
故障注入参数配置子模块根据测试需求配置SPARC处理器的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置;
执行序列配置子模块设置故障序列的时间间隔、添加或者删除故障序列、调整故障序列先后顺序触发时刻,得到可进行导入导出的故障序列测试脚本;故障序列测试脚本包括执行时间字段、执行序列字段、地址配置字段、SPARC处理器字段;
自动化测试脚本子模块执行故障序列测试脚本,产生故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置并送至故障注入驱动子模块;
故障注入驱动子模块在不改变被测软件存储器中数据的同时,根据地址配置字段将故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置触发激励SPARC芯片EDAC的单错和双错故障逻辑,然后记录被测软件EDAC处理逻辑,在故障序列测试脚本执行结束后,比对正确的EDAC处理逻辑与被测软件操作逻辑,得到被测结果;
软件虚拟仿真测试环境子模块控制测试环境模拟SPARC处理器内核,使得自动化测试脚本子模块加载和执行故障序列测试脚本;
自动化比对记录子模块记录故障序列测试脚本的执行情况,自动判读实际输出的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置,与预期的故障注入是否相符,当不符时,产生故障注入用例不通过提示,当相符时,产生故障注入用例通过提示;
自动化生成测试用例子模块读取故障序列测试脚本,按照功能测试项的有效等价类和无效等价类、边界测试的上边界和下边界、以及可靠性安全性测试项,自动生成测试用例;
自动化生成测试结果子模块读取自动化比对记录子模块中故障序列测试脚本执行情况的记录输出结果;
自动化生成测试报告子模块,根据自动化生成测试用例子模块生成的测试用例、自动生成测试结果子模块生成的故障注入用例通过结果,得到自动化生成测试报告,其中,自动化生成测试报告包括故障注入用例通过的测试用例个数、故障注入用例未通过的测试用例个数、单粒子翻转故障注入测试结论。
所述的SPARC处理器类型包括TSC695、BM3803、AT697、SOC2008、SOC2012;SRAM存储器包括SRAM区、SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区;EEPROM存储器包括主份EEPROM、备份EEPROM、其他存储区;不可写区包括PROM区和SRAM写保护区。
所述的软件虚拟仿真测试环境子模块提供的软件虚拟仿真测试环境使得可以自动化测试脚本子模块单步或者全速运行故障序列测试脚本,并提供可视化窗口功能,包括被测软件的源代码调试、存储器、寄存器、输入输出接口、自动化测试脚本执行日志。
基于SPARC处理器单粒子翻转故障注入的测试方法,包括如下步骤:
(1)根据单粒子故障注入类型选择配置SPARC处理器类型、SRAM存储器、EEPROM存储器、不可写区;根据测试需求配置SPARC处理器的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置;设置故障序列的时间间隔、添加或者删除故障序列、调整故障序列先后顺序触发时刻,得到可进行导入导出的故障序列测试脚本;
(2)控制测试环境模拟SPARC处理器内核,执行故障序列测试脚本,产生故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置并送至故障注入驱动子模块,在不改变被测软件存储器中数据的同时,根据地址配置字段将故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置触发激励SPARC芯片EDAC的单错和双错故障逻辑,然后记录被测软件EDAC处理逻辑,在故障序列测试脚本执行结束后,比对正确的EDAC处理逻辑与被测软件操作逻辑,得到被测结果;
(3)记录故障序列测试脚本的执行情况,自动判读实际输出的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置,与预期的故障注入是否相符,当不符时,产生故障注入用例不通过提示,当相符时,产生故障注入用例通过提示;读取故障序列测试脚本,按照功能测试项的有效等价类和无效等价类、边界测试的上边界和下边界、以及可靠性安全性测试项,自动生成测试用例;读取故障序列测试脚本执行情况的记录输出结果;根据测试用例、故障注入用例通过结果,得到自动化生成测试报告,其中,自动化生成测试报告包括故障注入用例通过的测试用例个数、故障注入用例未通过的测试用例个数、单粒子翻转故障注入测试结论。
与现有方法相比,本发明的技术优势和有效效果在于:
本发明根据SPARC处理器提供的单错、取数双错、取指双错的特点,针对空间单粒子故障提出一套完整的故障注入自动化测试方法。遍历所有SPARC处理器的所有类型单粒子故障,通过配置地址和故障注入参数形式生成执行序列脚本,在软件虚拟仿真测试环境条件下运行,自动化生成测试用例和测试结果判据比对,最终自动化完成基于单粒子故障的专项测试报告。
本发明解决了SPARC处理器单粒子翻转故障类型繁多、缺乏故障注入的专项测试、缺乏故障注入的精确控制、硬平台测试环境手工操作效率低等缺陷和不足。通过软件仿真故障注入建立模型,对注入的单粒子翻转故障精确的监控和执行序列化操作,具有配置脚本激励灵活、全数字仿真系统建模高速运行、模拟SPARC处理器单粒子故障驱动、动态运行时分析验证等优点。对提升我国航天型号软件可靠性与安全性确认测试与验证具有重要的意义。
附图说明
图1是本发明的故障注入自动化测试方法框图。
具体实施方式
如图1所示是本发明的故障注入自动化测试方法框图,步骤100故障注入测试数据生成模块包括:SPARC处理器地址配置子模块、故障注入参数配置子模块、执行序列配置子模块。
步骤101SPARC处理器地址配置子模块:SPARC处理器类型可选择TSC695、BM3803、AT697、SOC2008、SOC2012。SRAM存储器包括SRAM区、SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区。EEPROM存储器包括主份EEPROM、备份EEPROM、其他存储区。不可写区包括PROM区和SRAM写保护区。SRAM和EEPROM可配置起始地址和结束地址。
步骤102故障注入参数配置子模块包括:故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置。注入参数中故障类型确认后,可在步骤100中设置的地址范围内自定义取值或随机取值,并可以取多个。
步骤102-1故障注入单错配置存储器类型包括:可读写区、不可写区、未定义区、写保护区。每个可配置存储器类型测试项包括单错、非四字节对齐错、边界错误、频繁发生单错。其中边界错误测试项参数包括上边界地址和下边界地址;频繁发生单错测试项参数包括指定的时间长度和频繁发生单错的次数。
步骤102-2故障注入取数双错配置存储器类型包括:SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区、主份EEPROM、备份EEPROM、无备份区、不可写区、未定义区。每个可配置存储器类型测试项包括取数双错、非四字节对齐错、边界错误。其中SRAM程序区取数双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误。
步骤102-3故障注入取指双错配置存储器类型包括:SRAM程序区和非SRAM程序区。每个可配置存储器类型测试项包括取指双错、非四字节对齐错、边界错误。其中SRAM程序区取指双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误。
步骤103执行序列配置子模块包括:设置故障序列的时间间隔、添加/删除故障序列;调整故障序列先后顺序、触发间隔、导入和导出执行序列测试脚本。
步骤200故障注入自动化测试执行模块包括:自动化测试脚本子模块、故障注入驱动子模块、软件虚拟仿真测试环境子模块、自动化比对记录子模块。
步骤201自动化测试脚本子模块:由步骤103执行序列配置子模块导出生成自动化测试脚本,测试脚本包括执行时间字段、执行序列字段、地址配置字段、SPARC处理器字段。其中执行序列字段包括步骤102-1、步骤102-2、步骤102-3可配置存储器类型测试项及参数。
步骤202故障注入驱动子模块:根据步骤201产生的自动化测试脚本,根据故障类型、故障地址、在测试脚本指定的时间和地址制造指定的错误。故障注入驱动子模块通过驱动SPARC芯片相关寄存器,使虚拟软件仿真测试环境中运行的软件响应单错或双错,进入相应错误的处理程序。
步骤203软件虚拟仿真测试环境子模块:测试环境模拟SPARC处理器内核,加载和执行被测试程序。软件虚拟仿真测试环境可以单步、全速运行程序和加载自动化测试脚本。软件虚拟仿真测试环境提供可视化窗口包括被测软件的源代码调试模式、存储器、寄存器、输入输出接口、自动化测试脚本执行日志。
步骤204自动化比对记录子模块:测试环境记录自动化测试脚本的执行情况,自动判读软件对注入故障地址及其备份数据地址的读写情况,将其与预期的单错和双错数据修复逻辑比较,判断软件的处理是否正确。
步骤300故障注入自动化输出测试报告模块:自动化生成测试用例子模块、自动化生成测试结果子模块、自动化生成测试报告子模块。
步骤301自动化生成测试用例子模块:通过读取步骤201自动化测试脚本,按照功能测试项的有效等价类和无效等价类、边界测试的上边界和下边界、以及可靠性安全性测试项,自动生成测试用例。
步骤302自动化生成测试结果子模块:通过读取步骤204测试环境脚本执行情况的记录输出结果,以及自动判据验证测试用例是否通过。
步骤303自动化生成测试报告子模块:结合自动化生成测试用例子模块和自动生成测试结果子模块,完成自动化生成测试报告。统计通过的测试用例个数和未通过的测试用例个数,并给出基于SPARC处理器的单粒子翻转故障注入测试结论。
下面通过具体实施例对本发明的方法进一步阐述:
本发明基于SPARC处理器单粒子翻转故障注入的测试方法包括:1、故障注入测试数据生成;2、故障注入自动化测试执行;3、故障注入自动化输出测试报告。具体内容包括:
软件运行环境:SPARC处理器类型为BM3803;
主份EEPROM容量为256MB字节,映射地址空间为[20000000H,2FFFFFFFH],备份EEPROM容量为256MB字节,映射地址空间为[30000000H,3FFFFFFFH];
SRAM容量为128MB字节,映射地址空间为[00000000H,07FFFFFFH],SRAM程序区映射地址空间为[00000000H,00FFFFFFH]、SRAM三取二区一区映射地址空间为[01000000H,01FFFFFFH]、SRAM三取二区二区映射地址空间为[02000000H,02FFFFFFH]、SRAM三取二区三区映射地址空间为[03000000H,03FFFFFFH]。
1、故障注入测试数据生成包括单错故障注入测试数据、取数双错故障注入测试数据、取指双错故障注入测试数据的执行时间、执行序列、地址配置。
1)、执行时间为执行序列开始执行的时间。
2)、执行序列每一行表示一条测试用例,每一条由序列名称、执行时间、故障地址和其他参数组成。其他参数为取数双错和取指双错时,故障地址的备份存储区的地址。
3)、地址配置中保存了软件内存分配的信息。
导出执行序列测试脚本如下:
[SPARC处理器]
BM3803
[执行时间]
100
[执行时间]
2
[执行序列]
单错-可读写区-单错,1,0x4035FAB8
单错-可读写区-非四字节对齐错,1,0x40312BA5
单错-可读写区-非四字节对齐错,1,0x40312BA6
单错-可读写区-非四字节对齐错,1,0x40312BA7
单错-可读写区-边界错误,1,0x10000000
单错-可读写区-边界错误,1,0x10000001
单错-可读写区-边界错误,1,0x1007FFFF
单错-可读写区-边界错误,1,0x1007FFFE
单错-未定义区-边界错误,1,0x0FFFFFFF
单错-未定义区-边界错误,1,0x10080000
单错-可读写区-边界错误,1,0x10200000
单错-可读写区-边界错误,1,0x10200001
单错-可读写区-边界错误,1,0x1027FFFF
单错-可读写区-边界错误,1,0x1027FFFE
单错-未定义区-边界错误,1,0x101FFFFF
单错-未定义区-边界错误,1,0x10280000
单错-可读写区-边界错误,1,0x10300000
单错-可读写区-边界错误,1,0x10300001
单错-可读写区-边界错误,1,0x103000FF
单错-可读写区-边界错误,1,0x103000FE
单错-未定义区-边界错误,1,0x102FFFFF
单错-未定义区-边界错误,1,0x10300100
单错-可读写区-边界错误,1,0x40000000
单错-可读写区-边界错误,1,0x40000001
单错-可读写区-边界错误,1,0x403FFFFF
单错-可读写区-边界错误,1,0x403FFFFE
单错-未定义区-边界错误,1,0x3FFFFFFF
单错-未定义区-边界错误,1,0x40400000
单错-可读写区-常0常1错,1,0x4032DAC8
单错-可读写区-频繁发生单错,0.5,0x403F9240,20
单错-不可写区-单错,1,0x00000644
单错-未定义区-单错,1,0x03195260
单错-写保护区-单错,1,0x40049CC8
取数双错-SRAM程序区-设置非四字节对齐,1,0x4001490D,0x1001490D
取数双错-SRAM程序区-设置非四字节对齐,1,0x4001490E,0x1001490E
取数双错-SRAM程序区-设置非四字节对齐,1,0x4001490F,0x1001490F
取数双错-SRAM程序区-边界错误,1,0x40000000,0x10000000
取数双错-SRAM程序区-边界错误,1,0x40000001,0x10000001
取数双错-SRAM程序区-边界错误,1,0x4003FFFF,0x1003FFFF
取数双错-SRAM程序区-边界错误,1,0x4003FFFE,0x1003FFFE
取数双错-未定义区-边界错误,1,0x3FFFFFFF
取数双错-无备份区-边界错误,1,0x40040000
取数双错-SRAM程序区-设置EEPROM主份正确、备份正确,1,0x4001F5CC,0x1001F5CC
取数双错-SRAM程序区-设置EEPROM主份错误、备份正确,1,0x4002DE24,0x1002DE24,0x1022DE24
取数双错-SRAM程序区-设置EEPROM主份错误、备份错误,1,0x400330C4,0x100330C4,0x102330C4
取数双错-SRAM三取二区一区-取数错,1,0x400925F8,0x400955F8
取数双错-SRAM三取二区二区-取数错,1,0x40094750,0x40097750
取数双错-SRAM三取二区三区-取数错,1,0x40097984,0x40091984
取数双错-主份EEPROM-某地址发生取数错,备份EEPROM正确,1,0x1001788C,0x1021788C
取数双错-主份EEPROM-某地址发生取数错,备份EEPROM错误,1,0x100685C0,0x102685C0
取数双错-备份EEPROM-某地址发生取数错,备份EEPROM正确,1,0x1024D96C,0x1004D96C
取数双错-备份EEPROM-某地址发生取数错,备份EEPROM错误,1,0x1021ED64,0x1001ED64
取数双错-无备份区-设置某地址发生取数错,1,0x400726E0
取数双错-不可写区-设置某地址发生取数错,1,0x00000D5C
取数双错-未定义区-设置某地址发生取数错,1,0x102BA1C8
取指双错-SRAM程序区-设置非四字节对齐,1,0x40018755,0x10018755
取指双错-SRAM程序区-设置非四字节对齐,1,0x40018756,0x10018756
取指双错-SRAM程序区-设置非四字节对齐,1,0x40018757,0x10018757
取指双错-SRAM程序区-边界错误,1,0x40000000,0x10000000
取指双错-SRAM程序区-边界错误,1,0x40000001,0x10000001
取指双错-SRAM程序区-边界错误,1,0x4003FFFF,0x1003FFFF
取指双错-SRAM程序区-边界错误,1,0x4003FFFE,0x1003FFFE
取指双错-非SRAM程序区-边界错误,1,0x3FFFFFFF
取指双错-非SRAM程序区-边界错误,1,0x40040000
取指双错-SRAM程序区-设置EEPROM主份正确、备份正确,1,0x4001D298,0x1001D298
取指双错-SRAM程序区-设置EEPROM主份错误、备份正确,1,0x40017A74,0x10017A74,0x10217A74
取指双错-SRAM程序区-设置EEPROM主份错误、备份错误,1,0x40002B84,0x10002B84,0x10202B84
取指双错-非SRAM程序区-设置某地址发生取数错,1,0x40085760
[地址配置]
SRAM区=0x40000000-0x403FFFFF
SRAM程序区=0x40000000-0x4003FFFF
三取二区一区=0x40090000-0x40092FFF
三取二区二区=0x40093000-0x40095FFF
三取二区三区=0x40096000-0x40098FFF
写保护区=0x40040000-0x4004FFFF
不可写区=0x00000000-0x00001FFF
主份EEPROM=0x10000000-0x1007FFFF
备份EEPROM=0x10200000-0x1027FFFF
其他存储区=0x10300000-0x103000FF
2、故障注入自动化测试执行:自动化测试脚本包括单错故障注入测试脚本、取数双错故障注入测试脚本、取指双错故障注入测试脚本。软件虚拟仿真测试环境模拟SPARC处理器内核,加载SPARC处理器单粒子故障注入驱动动态链接库,软件虚拟仿真测试环境全速运行程序和加载自动化测试脚本,动态运行时记录被测软件对相关地址操作,与预期的EDAC故障处理逻辑比对确定软件处理是否正确。
3、自动化生成测试用例子模块根据测试脚本执行时间字段、执行序列字段、地址配置字段、SPARC处理器字段,单错故障注入测试数据生成17个测试用例,取数双错故障注入测试数据生成28个测试用例,取指双错故障注入测试数据生成18个测试用例,共计63个测试用例,其中功能测试用例21个,边界测试用例28个,可靠性安全性测试用例14个。仿真运行结束后,自动化生成测试报告中会给出预期结果和被测软件实际执行结果,并统计出通过的测试用例个数和未通过的测试用例个数,最终给出基于SPARC处理器的单粒子翻转故障注入测试结论为通过。
以上实施例对本发明进行了详细说明,本发明专利说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。对本发明的技术方法进行修改或者等同替换,都不脱离本发明技术方法的核心思想和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.基于SPARC处理器单粒子翻转故障注入的测试系统,其特征在于:包括故障注入测试数据生成模块、故障注入自动化测试执行模块、故障注入自动化输出测试报告模块,其中:
故障注入测试数据生成模块包括SPARC处理器地址配置子模块、故障注入参数配置子模块、执行序列配置子模块;
故障注入自动化测试执行模块包括自动化测试脚本子模块、故障注入驱动子模块、软件虚拟仿真测试环境子模块、自动化比对记录子模块;
故障注入自动化输出测试报告模块包括自动化生成测试用例子模块、自动化生成测试结果子模块、自动化生成测试报告子模块;
SPARC处理器地址配置子模块,根据单粒子故障注入类型选择配置SPARC处理器类型、SRAM存储器、EEPROM存储器、不可写区,其中,SRAM存储器、EEPROM存储器可配置起始地址和结束地址;
故障注入参数配置子模块根据测试需求配置SPARC处理器的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置;其中,故障注入取数双错配置存储器类型包括:SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区、主份EEPROM、备份EEPROM、无备份区、不可写区、未定义区;每个可配置存储器类型测试项包括取数双错、非四字节对齐错、边界错误;SRAM程序区取数双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误;故障注入取指双错配置存储器类型包括:SRAM程序区和非SRAM程序区;每个可配置存储器类型测试项包括取指双错、非四字节对齐错、边界错误;SRAM程序区取指双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误;
执行序列配置子模块设置故障序列的时间间隔、添加或者删除故障序列、调整故障序列先后顺序触发时刻,得到可进行导入导出的故障序列测试脚本;故障序列测试脚本包括执行时间字段、执行序列字段、地址配置字段、SPARC处理器字段;
自动化测试脚本子模块执行故障序列测试脚本,产生故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置并送至故障注入驱动子模块;
故障注入驱动子模块在不改变被测软件存储器中数据的同时,根据地址配置字段将故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置触发激励SPARC芯片EDAC的单错和双错故障逻辑,然后记录被测软件EDAC处理逻辑,在故障序列测试脚本执行结束后,比对正确的EDAC处理逻辑与被测软件操作逻辑,得到被测结果;
软件虚拟仿真测试环境子模块控制测试环境模拟SPARC处理器内核,使得自动化测试脚本子模块加载和执行故障序列测试脚本;
自动化比对记录子模块记录故障序列测试脚本的执行情况,自动判读实际输出的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置,与预期的故障注入是否相符,当不符时,产生故障注入用例不通过提示,当相符时,产生故障注入用例通过提示;
自动化生成测试用例子模块读取故障序列测试脚本,按照功能测试项的有效等价类和无效等价类、边界测试的上边界和下边界、以及可靠性安全性测试项,自动生成测试用例;
自动化生成测试结果子模块读取自动化比对记录子模块中故障序列测试脚本执行情况的记录输出结果;
自动化生成测试报告子模块,根据自动化生成测试用例子模块生成的测试用例、自动生成测试结果子模块生成的故障注入用例通过结果,得到自动化生成测试报告,其中,自动化生成测试报告包括故障注入用例通过的测试用例个数、故障注入用例未通过的测试用例个数、单粒子翻转故障注入测试结论。
2.根据权利要求1所述的基于SPARC处理器单粒子翻转故障注入的测试系统,其特征在于:所述的SPARC处理器类型包括TSC695、BM3803、AT697、SOC2008、SOC2012;SRAM存储器包括SRAM区、SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区;EEPROM存储器包括主份EEPROM、备份EEPROM、除主份EEPROM和备份EEPROM之外的其他存储区;不可写区包括PROM区和SRAM写保护区。
3.根据权利要求1或2所述的基于SPARC处理器单粒子翻转故障注入的测试系统,其特征在于:所述的软件虚拟仿真测试环境子模块提供的软件虚拟仿真测试环境使得可以自动化测试脚本子模块单步或者全速运行故障序列测试脚本,并提供可视化窗口功能,包括被测软件的源代码调试、存储器、寄存器、输入输出接口、自动化测试脚本执行日志。
4.基于SPARC处理器单粒子翻转故障注入的测试方法,其特征在于包括如下步骤:
(1)根据单粒子故障注入类型选择配置SPARC处理器类型、SRAM存储器、EEPROM存储器、不可写区;根据测试需求配置SPARC处理器的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置;设置故障序列的时间间隔、添加或者删除故障序列、调整故障序列先后顺序触发时刻,得到可进行导入导出的故障序列测试脚本;其中,故障注入取数双错配置存储器类型包括:SRAM程序区、SRAM三取二区一区、SRAM三取二区二区、SRAM三取二区三区、主份EEPROM、备份EEPROM、无备份区、不可写区、未定义区;每个可配置存储器类型测试项包括取数双错、非四字节对齐错、边界错误;SRAM程序区取数双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误;故障注入取指双错配置存储器类型包括:SRAM程序区和非SRAM程序区;每个可配置存储器类型测试项包括取指双错、非四字节对齐错、边界错误;SRAM程序区取指双错测试项包括:EEPROM主份正确备份正确、EEPROM主份错误备份正确、EEPROM主份正确备份错误、EEPROM主份错误备份错误;
(2)控制测试环境模拟SPARC处理器内核,执行故障序列测试脚本,产生故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置并送至故障注入驱动子模块,在不改变被测软件存储器中数据的同时,根据地址配置字段将故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置触发激励SPARC芯片EDAC的单错和双错故障逻辑,然后记录被测软件EDAC处理逻辑,在故障序列测试脚本执行结束后,比对正确的EDAC处理逻辑与被测软件操作逻辑,得到被测结果;
(3)记录故障序列测试脚本的执行情况,自动判读实际输出的故障注入单错配置、故障注入取数双错配置、故障注入取指双错配置,与预期的故障注入是否相符,当不符时,产生故障注入用例不通过提示,当相符时,产生故障注入用例通过提示;读取故障序列测试脚本,按照功能测试项的有效等价类和无效等价类、边界测试的上边界和下边界、以及可靠性安全性测试项,自动生成测试用例;读取故障序列测试脚本执行情况的记录输出结果;根据测试用例、故障注入用例通过结果,得到自动化生成测试报告,其中,自动化生成测试报告包括故障注入用例通过的测试用例个数、故障注入用例未通过的测试用例个数、单粒子翻转故障注入测试结论。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810398608.2A CN108710551B (zh) | 2018-04-28 | 2018-04-28 | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810398608.2A CN108710551B (zh) | 2018-04-28 | 2018-04-28 | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108710551A CN108710551A (zh) | 2018-10-26 |
CN108710551B true CN108710551B (zh) | 2021-12-07 |
Family
ID=63867618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810398608.2A Active CN108710551B (zh) | 2018-04-28 | 2018-04-28 | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108710551B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614274B (zh) * | 2018-12-06 | 2022-05-27 | 上海航天计算机技术研究所 | 处理器指令Cache单粒子翻转软错误的防护方法 |
CN110188012B (zh) * | 2019-04-26 | 2020-01-03 | 华中科技大学 | 一种fpga寄存器级单粒子翻转故障模拟方法和系统 |
CN110333978A (zh) * | 2019-07-09 | 2019-10-15 | 上海微小卫星工程中心 | 一种通过软件模拟sparc处理器的故障的方法 |
CN111176310B (zh) * | 2019-12-31 | 2020-09-08 | 北京星际荣耀空间科技有限公司 | 一种运载火箭姿态控制系统的测试方法、装置及系统 |
CN111708695A (zh) * | 2020-06-12 | 2020-09-25 | 上海航天计算机技术研究所 | 基于AT697的cache抗单粒子翻转效果验证方法 |
CN111813688A (zh) * | 2020-06-15 | 2020-10-23 | 上海航天计算机技术研究所 | 航天软件抗单粒子翻转可靠性测评方法和系统 |
CN111722095B (zh) * | 2020-06-24 | 2021-05-25 | 中国电子科技集团公司第十四研究所 | 一种嵌入式故障注入模块、方法及高速数字电路系统 |
CN112951314B (zh) * | 2021-02-01 | 2023-05-05 | 上海航天计算机技术研究所 | 一种基于tsc695处理器的可加载型通用ram自测试方法 |
CN114756423B (zh) * | 2022-06-16 | 2022-09-20 | 长沙驭电信息技术有限公司 | 一种针对edac的软硬件相结合的故障注入装置及其方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671352A (en) * | 1995-07-07 | 1997-09-23 | Sun Microsystems, Inc. | Error injection to a behavioral model |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103218292A (zh) * | 2013-03-29 | 2013-07-24 | 北京控制工程研究所 | 一种航天星载软件自动测试系统 |
CN104484256A (zh) * | 2014-12-05 | 2015-04-01 | 北京时代民芯科技有限公司 | 一种验证sparc v8处理器寄存器堆纠检错功能的方法 |
-
2018
- 2018-04-28 CN CN201810398608.2A patent/CN108710551B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671352A (en) * | 1995-07-07 | 1997-09-23 | Sun Microsystems, Inc. | Error injection to a behavioral model |
CN102760098A (zh) * | 2012-06-13 | 2012-10-31 | 北京航空航天大学 | 面向bit软件测试的处理器故障注入方法及其模拟器 |
CN103218292A (zh) * | 2013-03-29 | 2013-07-24 | 北京控制工程研究所 | 一种航天星载软件自动测试系统 |
CN104484256A (zh) * | 2014-12-05 | 2015-04-01 | 北京时代民芯科技有限公司 | 一种验证sparc v8处理器寄存器堆纠检错功能的方法 |
Non-Patent Citations (2)
Title |
---|
《A New Partial Reconfiguration-Based Fault-Injection System to Evaluate SEU Effects in SRAM-Based FPGAs》;L.Sterpone;《IEEE TRANSACTIONS ON NUCLEAR SCIENCE》;20070831;第54卷(第4期);全文 * |
《航天单粒子事件故障注入系统研究》;李华旺等;《量子电子学报》;20020228;第19卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108710551A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108710551B (zh) | 基于sparc处理器单粒子翻转故障注入的测试方法及系统 | |
Karlsson et al. | Using heavy-ion radiation to validate fault-handling mechanisms | |
US7320114B1 (en) | Method and system for verification of soft error handling with application to CMT processors | |
CN109858195B (zh) | 一种sram型fpga上必要位单粒子翻转故障的在线仿真系统 | |
Civera et al. | Exploiting circuit emulation for fast hardness evaluation | |
Su et al. | An integrated ECC and redundancy repair scheme for memory reliability enhancement | |
CN103971732A (zh) | 监控fpga的单粒子翻转效应并纠正重加载的方法及系统 | |
Parrotta et al. | New techniques for accelerating fault injection in VHDL descriptions | |
CN104657247A (zh) | 基于jtag调试方式实现通用型故障注入系统和故障注入方法 | |
Quinn et al. | Robust duplication with comparison methods in microcontrollers | |
US9411007B2 (en) | System and method for statistical post-silicon validation | |
CN110704315B (zh) | 一种嵌入式软件测试的故障注入装置 | |
US20200226050A1 (en) | Checksum generation | |
Rebaudengo et al. | Coping with SEUs/SETs in microprocessors by means of low-cost solutions: a comparison study | |
Barbosa et al. | Fault injection | |
US20040034820A1 (en) | Apparatus and method for pseudorandom rare event injection to improve verification quality | |
JP6045351B2 (ja) | 検証装置及び検証方法 | |
Lee et al. | Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants | |
CN115602242B (zh) | 一种存储装置及其测试方法 | |
CN107480045A (zh) | 一种电能表软件的检错纠错与轨迹跟踪方法 | |
CN113704040A (zh) | 一种微处理器内存可靠性测试方法 | |
CN110007738B (zh) | 适用于敏感电路的抗瞬时电离辐射复位后运行状态重构方法 | |
Nicolescu et al. | Effectiveness and limitations of various software techniques for" soft error" detection: a comparative study | |
Jaksch et al. | Debugging Xilinx Zynq-7000 SoC processor caches during Linux system execution under proton irradiation | |
CN113742252A (zh) | 一种检测内存乱序的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |