CN102789416B - 面向bit软件测试的存储器故障注入方法及其模拟器 - Google Patents
面向bit软件测试的存储器故障注入方法及其模拟器 Download PDFInfo
- Publication number
- CN102789416B CN102789416B CN201210194671.7A CN201210194671A CN102789416B CN 102789416 B CN102789416 B CN 102789416B CN 201210194671 A CN201210194671 A CN 201210194671A CN 102789416 B CN102789416 B CN 102789416B
- Authority
- CN
- China
- Prior art keywords
- fault
- address
- simulator
- function
- module
- 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.)
- Expired - Fee Related
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明提出一种面向BIT软件测试的存储器故障注入方法及其模拟器,将运行BIT软件的硬件电路板作为模拟器的模拟对象。本发明在模拟器中新增:模拟存储器正常功能的模拟模块,建立并解析故障序列文件的故障建模及模型解析模块,匹配代注入故障的故障注入模块,故障行为模拟模块和外围交联环境仿真模块。本发明方法通过建立故障模式库,编写并解析XML故障序列文件为模拟器可识别的故障序列,在处理器访问存储器时查找相应故障并注入,当触发故障时进行故障模拟。本发明注入的故障模式种类较全,充分覆盖了涉及存储器下的每种故障发生下的测试用例,可对电路板级BIT软件进行较为充分的测试,而只有进行了充分测试的BIT软件。
Description
技术领域
本发明涉及可靠性工程方面的故障注入技术和计算机工程方面的存储器技术,特别是涉及一种面向BIT软件测试的存储器故障注入方法及其模拟器。
背景技术
一个系统、设备或产品可靠性再高也不能保证永远正常工作,使用者和维修者要掌握其健康状况,要确知有无故障或何处发生了故障,这就要对其进行监控和测试。于是希望系统和设备本身能为此提供方便,这种系统和设备本身所具有的便于监控其健康状况、易于进行故障诊断测试的特性,就是系统和设备的测试性。测试性是指产品能及时准确地确定其状态(可工作、不可工作或性能下降)并隔离其内部故障的一种设计特性。随着系统和设备性能的提高和复杂性的增加,测试性越来越受到人们的重视,许多新技术、新方法都应用到了测试性之中。机内测试(Built-In Test,简称BIT)是系统或设备内部提供的检测和隔离故障的自动测试能力。当前,机载电子设备增多,机内控制高度集中,使得BIT达到空前的重要程度。测试性研究的热点,就在于研究BIT以及BIT进一步发展的技术,如故障预测与健康管理。
BIT的功能是在系统出现故障时能够进行故障检测与隔离,那么BIT本身也会发生故障,存在BIT设计不当、BIT虚警等问题,则在进行BIT设计时,如何验证BIT的功能是否达到了预期设计的目标就成为一个问题。由于BIT软件实现部分基本承载了BIT全部逻辑功能,BIT软件实现部分(简称BIT软件)和普通软件相比,具有检测、隔离以及处理电子设备系统硬件故障的功能特点,实时性强,可靠性要求高。BIT软件是否可靠决定了航空电子设备能否正确检测和处理故障,进而关系到整个系统的可靠性和安全性。与此同时,设备在正常运行过程中,并不会频繁发生故障,甚至很多故障很难复现,因此依靠收集外场数据很难对设备的BIT功能进行全面有效的评估。所以迫切需要一种对BIT软件进行测试的有效方法和实施途径。
故障注入技术是BIT软件测试中一种有效的手段,通过人为对系统注入故障并运行BIT软件,观察其故障检测、隔离能力,从而检验BIT软件的设计是否合理、测试能力是否符合设计要求等。
然而传统故障注入技术面临诸多问题:基于硬件的故障注入技术虽然注入真实的硬件故障,但受限于电路板上元器件的高密集性,已没有足够空间附加探针、插座等硬件故障注入设备,而且比较关注的元器件内部故障也是无法注入的;基于软件的故障注入技术在其他应用中有种种好处,但BIT软件的代码不开放(或不允许修改)、运行结构复杂、且可达性差,故而软件故障注入在BIT软件测试中是无处着手的;最后,采用VHDL、Verilog等硬件描述语言实现的基于模拟/仿真的故障注入技术虽可精确仿真BIT软件运行的硬件环境,但无法支撑BIT软件在其上运行,作为软件测试工具则无从谈起。
开展BIT软件测试,不仅需要相应的试验方法、技术和规范,还需要相应的故障注入工具来支持试验执行。但目前,由于在BIT设计指标的考核过程中缺少有效的故障注入工具,BIT软件测试试验无法得到充分地执行,影响BIT技术在工程中的应用。随着航空电子设备复杂度的不断提高,故障注入工具的缺乏已成为国内外开展BIT试验的瓶颈。
综上所述,常见的故障注入手段应用于BIT软件测试中,或具有一定局限性、或无法实施,因此尚无有效解决BIT软件测试难题的故障注入方法。
模拟器在计算机工程领域是计算机体系结构研究、处理器指令集研究等方面的重要工具,具有广泛的实用价值。全系统模拟器模拟了软件运行的硬件环境,可支持客户操作系统及应用软件在其上的运行。此外,除去运行速度上的差异,软件在模拟器上运行与在真实硬件上的运行情况是无差别的。
目前,国内外尚缺乏评测针对板上器件的BIT软件的有效方法和测试设备。在动态测试方面,受专业知识、环境技术条件等方面的限制,存在两方面的问题:(1)在测试用例的设计中缺少对于电子设备系统的全面分析,对异常用例的设计不够全面;(2)考虑到BIT软件检测故障模式而设计的异常用例,但由于BIT软件自身功能特点,使得部分异常用例的施加需要在实际硬件中注入故障才能实现。但硬件故障注入方法无法适用于高密集度的电子设备中。这样,很多用例即使设计了也无法执行。这些原因都导致BIT软件测试不充分,使得很多问题在实际使用过程中才被发现,造成严重的后果。
发明内容
本发明所要解决的技术问题是如何提供一种有效的用于板级BIT软件测试的故障注入技术。具体,本发明提供了一种面向BIT软件测试的存储器故障注入方法及其模拟器。
一种面向BIT软件测试的存储器故障注入模拟器,将运行BIT软件的硬件电路板作为模拟对象,在模拟器中设置如下模块:正常功能模拟模块、故障行为模拟模块、故障注入模块、结果回收模块、故障建模及模型解析模块和外围交联环境仿真模块。模拟器运行在宿主机上,BIT软件运行在客户机上。
正常功能模拟模块实现了对存储器的正常功能模拟,包括模拟存储单元的存储功能,以及处理器对存储器的正常读写访问功能;具体通过如下方法实现对存储器的正常功能模拟:在宿主机的内存中动态申请指定大小的内存空间,并对申请的内存空间进行分页处理,作为客户机的物理内存,实现RAM的正常存储功能,对申请的内存空间进行属性设置,RAM设置为可读可写,并通过二级转换表实现客户机物理地址到宿主机地址的映射,处理器通过查找二级转换表来实现对相应的存储单元的读写访问;与模拟RAM的方法类似模拟ROM的存储以及访问,不同在于,将模拟ROM的内存空间的属性设置为只读模式,将ROM的内容存储在文件里,当需要读取ROM时,先将文件内容载入ROM内存空间再进行访问;对FLASH的功能模拟中,对启动FLASH的模拟方法,与ROM的模拟方法相同,对于应用FLASH的模拟方法,在ROM模拟方法的实现基础上,对申请的内存空间添加可写属性以及相应的读写访问函数和擦除操作函数,并在处理器访问结束后将存储空间里的内容写入文件,以实现FLASH可读可写且断电后数据不丢失的功能。
故障建模及模型解析模块,首先对要注入的各故障采用XML语言进行故障建模,描述每个故障的故障元器件、故障位置、故障模式、故障参数、故障触发方式以及故障时间,生成XML故障序列;然后对XML故障序列进行解析,得到采用C语言表示的模拟器识别的故障序列,所解析得到的故障序列采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构。
故障注入模块接收故障建模及模型解析模块解析得到的故障序列,在处理器访问存储器时进行故障模式匹配,如果在故障序列中查找到相应的故障,则注入相应的故障。
故障行为模拟模块根据存储器故障发生的行为表现,构造相应的故障模拟函数以模拟存储故障行为。在触发了某个故障后调用相应的故障模拟函数执行。
外围交联环境仿真模块用于模拟外围环境激励与模拟器的响应,以及模拟模拟器对外的输入和输出。
本发明提出的一种面向BIT软件测试的存储器故障注入方法,将运行BIT软件的硬件电路板作为模拟对象,模拟器运行在宿主机中,BIT软件运行在模拟器之上的客户机上,然后进行如下步骤:
步骤1:对存储器类故障模式进行分析,建立存储器故障模式库;
步骤2:从存储器故障模式库中选取符合本次测试目标的故障模式,并定义相应故障模式下的故障,通过故障建模及模型解析模块对各故障建立故障模型,将所建立的故障模型写入故障模型序列文件中;所述的故障模型序列文件为用XML语言描述的文件;所述的对各故障建立故障模型,是提取故障的6个特征来建立故障模型,6个特征为:元器件,故障位置,故障模式,故障参数,故障触发方式和故障时间;
步骤3:模拟器读入故障模型序列文件,经过故障建模及模型解析模块解析为模拟器识别的故障序列,然后将故障序列输入到故障注入模块中;所述的模拟器识别的故障序列,是用C语言表示的,采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构;
步骤4:模拟器对存储器进行正常功能模拟,当处理器对存储器进行访问时,执行步骤5;通过正常功能模拟模块对存储器的正常存储功能进行模拟,并且处理器能够通过地址映射关系对存储空间进行访问;
步骤5:故障注入模块查询输入的故障序列,判断是否有匹配当前地址能注入的故障模式的故障,若有执行下一步骤,若无,转步骤4执行;
步骤6:判断步骤5匹配得到的各故障的触发条件是否具备,若都不具备,转步骤4执行,若存在具备触发条件的,查找所有具备触发条件的故障,然后执行步骤7;
步骤7:故障注入模块注入故障,具体是:为满足故障触发条件的故障进行触发条件设置,并适时触发故障;
步骤8:模拟器在触发某个故障后,通过故障行为模拟模块调用相应的故障模拟函数实现故障的行为模拟;
步骤9:监控模拟器运行及故障注入过程,并通过结果回收模块回收执行结果。
本发明的优点与积极效果在于:
(1)本发明提供的故障注入方法及模拟器,解决了BIT软件测试问题,注入的故障模式种类较全,充分覆盖了涉及存储器的每种故障发生下的测试用例,可对电路板级BIT软件进行较为充分的测试,而只有进行了充分测试的BIT软件,才能保障航空机载设备BIT预报故障的准确性、及时性,进而保障系统的可靠性、安全性。
(2)本发明提供的故障注入方法及模拟器,在背景技术所述的用于软、硬件测试的基于模拟的故障注入的应用技术中均有研究前景,而且结合模拟自身独有的优势,也可将本发明中的模拟器应用到原型系统的开发阶段,做可靠性预评估、系统测试性设计的早期评价试验。
(3)本发明提供的故障注入方法及模拟器,对BIT软件测试中,对硬件和其上运行的应用程序均无侵入性与损害。
附图说明
图1是本发明的模拟器所运行的层次结构示意图;
图2是本发明的模拟器整体功能模块示意图;
图3是XML描述的故障模型序列文件的一个示例;
图4是本发明方法中故障建模-解析的流程示意图;
图5是一个解析后的故障序列结构的示例图;
图6是本发明方法中故障模拟-注入的流程示意图;
图7是本发明故障注入的整体步骤流程图;
图8是本发明客户机地址到宿主机地址的映射示意图;
图9是本发明模拟器的一个系统架构图;
图10是本发明模拟器整体实现的一个示例图。
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
由于航空板的封闭性、不可侵入性等原因,不能在硬件上直接注入故障对板级BIT软件进行测试。由于模拟器是依照真实硬件功能以软件方式实现的,因此对它可以进行任意修改,且对硬件和其上运行的应用程序均无侵入性与损害。因此,结合模拟器和故障注入技术应用于BIT软件测试是一种可行方案。本发明的基本技术思想是:将运行BIT软件的硬件电路板作为模拟对象,采用模拟器模拟的方法来解决BIT软件测试的瓶颈问题,发挥模拟器的优势,诸如对模拟对象的详细功能分析、通过模拟方法可注入的故障模式最多(使得测试用例全面,测试更充分)、对软硬件无任何侵入性、有更好的可控性以及观察性。通过这些分析,认为基于模拟器的故障注入方法是可以解决BIT软件测试不充分问题的有效途径。下面对本发明的具体技术方案进行说明。
如图1所示,为本发明模拟器所运行的层次示意图。底层平台称为宿主机(Host),将运行在模拟器上的软件平台称为客户机(Guest)。模拟器作为宿主机操作系统上的一个应用程序,通过纯软件的方法将目标体系结构模拟出来,能够让原来运行在PowerPC上的目标软件(客户机操作系统或/与客户机应用程序)在宿主机操作系统上运行。模拟器要成功地模拟一个真实的机器,必须能够模拟真实机器所能做的一切事情,从而使客户机能够正常地运行,并意识不到自己是在模拟器环境中,即与在真实硬件上运行无差别。
如图2所示,本发明提供了面向BIT软件测试的存储器故障注入的模拟器,是对现有的模拟器进行了改进,增加了如下功能模块:
正常功能模拟模块1:对处理器、存储器、外围设备等元器件的正常行为进行功能级模拟。本发明中主要说明对存储器的模拟的部分。对于存储器正常功能模拟包括:模拟存储单元的存储功能,以及处理器对存储器的正常读写访问功能。对模拟器正常功能的模拟具体实现方法是:在宿主机的内存中动态申请指定的大小的内存地址空间,并对申请的内存空间进行分页处理,作为客户机的物理内存,实现RAM的正常存储功能,并通过对申请的内存空间进行属性设置,RAM设置为可读可写,通过二级转换表实现客户机物理地址到宿主机地址的映射,从而模拟地址译码功能,处理器通过查找二级转换表来实现对相应的存储单元的读写访问;和RAM功能模拟类似的模拟ROM的存储以及访问,将申请的内存空间的属性设置为只读模式,将ROM的内容存储在文件里,当需要读取ROM时,先将文件内容载入ROM内存空间再进行访问;对FLASH的功能模拟中,对启动FLASH的模拟方法,与ROM的模拟方法相同,对于应用FLASH的模拟方法,在ROM模拟方法的实现基础上,对申请的内存空间添加可写属性以及相应的读写访问函数和擦除操作函数,并在处理器访问结束后将存储空间里的内容写入文件,以实现FLASH可读可写且断电后数据不丢失的功能。
故障行为模拟模块2:结合存储器故障模式,模拟故障发生时的行为表现。故障行为模拟模块2根据故障发生的行为表现,构造相应的故障模拟函数,以模拟存储故障行为,在触发了某个故障后调用相应的故障模拟函数执行。
具体故障模拟函数的实现方法包括如下:
(1)对存储单元所有与位值出错有关的故障,产生相应的故障掩码与指定存储地址正常值作与/或/异或操作,之后写回发生故障的存储地址,造成数据错误;
(2)对存储单元阵列的多重访问故障:读操作时通过额外指定访问地址对故障单元进行读操作,将读出的数据进行与/或操作后,作为返回给处理器的逻辑值;写操作时,主动调用读写函数对其他故障地址单元进行同数值写操作;
(3)开路故障:在处理器访问存储器函数中添加故障匹配以及故障实现语句,根据地址条件匹配,当触发该故障时,调用故障实现语句,使访问函数返回值为空,实现无法访问故障;
(4)FLASH的存储耐久故障以及数据保持故障:在处理器访问FLASH函数中添加故障匹配语句以及故障实现语句,当触发该故障时,调用故障实现语句,使访问函数返回错误或异常结果,从而模拟该存储单元失效,不能正常进行擦除以及读写操作;
(5)地址译码器故障:当处理器对某地址进行访问时,对该地址值进行修改后,再对修改后的地址进行访问,从而实现错误地址访问故障;对于多重选择故障,通过额外调用读写操作函数,将读出的数据进行与操作或者或操作后作为返回给处理器的逻辑值;对于没有选中任何地址故障,则在对二级转换表进行查询时通过调用故障实现语句,使得其地址返回值为空,从而实现无地址选中故障;对于多个地址选中同一个地址故障,则根据故障模型,在对其他地址进行访问时,将其地址值修改为故障访问地址后再进行访问操作。
故障注入模块3:接收故障建模及模型解析模块4解析得到的故障序列,在处理器访问存储器时进行故障模式匹配,如果在故障序列中查找到相应的故障,则注入相应的故障。具体,在模拟器运行遇到某个故障观察点时被调用,故障注入模块3在当前测试的故障序列中,查找具备触发条件的,且与当前地址对应的故障模式相匹配的故障,如果查找到相应的故障,则注入相应的故障。
故障建模及模型解析模块4:首先用更接近自然语言的XML语言进行故障建模,描述每个故障的故障元器件、故障位置、故障模式、故障参数、故障触发方式以及故障时间,生成XML故障序列。具体故障序列文件的示例可见图3。之后对XML文件进行解析,得到模拟器识别的故障序列。模拟器识别的故障序列采用C语言表示,采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构。
外围交联环境仿真模块5:由于模拟对象(即BIT软件运行环境)不是一块独立的电路板,而是整个航空电子设备中的一部分,故而需要对其与外围环境的交联加以模拟。模拟外围环境激励与模拟器的响应,还要模拟模拟器对外输入输出。
如图7所示,本发明的面向BIT软件测试的存储器故障注入方法包括如下九个步骤。
步骤1:对存储器类故障模式进行分析,建立存储器故障模式库。
存储器类故障模式分析(Failure Mode Analysis),是指分析模拟对象的故障模式的影响和可能的故障模拟方法,选出可以在模拟器中实现注入的故障模式。在FMEA(Failure Mode andEffects Analysis,失效模式与影响分析)的基础上,根据开发板上处理器的具体情况,制定出存储器故障模式库和相应的故障模拟方法。下面的表1~表9给出了九种存储器故障模式,并给出了各故障模式的故障描述、故障位置、故障属性和故障发生场景。
表1第一种故障模式
表2第二种故障模式
表3第三种故障模式
表4第四种故障模式
表5第五种故障模式
故障模式 | 开路故障 |
故障描述 | 由于断线等原因导致某存储单元无法被访问到 |
故障位置 | 存储单元阵列 |
故障属性 | 永久故障:存储器开始启动到终止运行 |
故障发生情景 | 对该存储单元进行读写访问时,无法正常读出其内容或写入值 |
表6第六种故障模式
表7第七种故障模式
故障模式 | 读写超时 |
故障描述 | 对某存储单元进行访问时超出额定访问时间 |
故障位置 | 地址译码器或存储单元阵列 |
故障属性 | 永久故障:存储器开始启动到终止运行 |
故障发生情景 | 对某存储单元进行访问时超出额定访问时间 |
表8第八种故障模式
故障模式 | 数据保持故障 |
故障描述 | 不能在要求的时间内保持数据 |
故障位置 | FLASH |
故障属性 | 永久故障:开始启动到终止运行 |
故障发生情景 | 当对故障单元进行读访问时,不能得到数据 |
表9第九种故障模式
步骤2:建立XML故障序列文件。从存储器故障模式库中选取符合本次测试目标的故障模式,并定义相应模式下的故障,并通过故障建模及模型解析模块4,采用表10所示的故障特征来对各故障建立故障模型。将所建立的故障模型写入故障模型序列文件中,所述的故障模型序列文件为用XML语言描述的文件。
通过调研并分析搭载BIT软件的电路板上存储器常见故障,确定提取故障特征如下:
故障元器件:对于存储器故障来讲,元器件就是RAM、ROM或FLASH;
故障位置:故障发生的位置,如存储单元阵列、地址译码器等;
故障模式:对故障模式的描述,如存储器固定故障、地址译码器访问错误地址故障等;
故障参数:故障发生相关的参数,如发生故障的地址、故障触发时间等;
故障触发方式:触发故障的方式,如按时间触发、按访问触发;
故障时间:识别故障为永久故障、瞬时故障还是间歇故障,并包括相关时间信息;
因此,存储器常见故障可以通过上述6个特征来刻画,将上述故障特征抽象为一个元组,就可建立故障模型的元组表示。M代表一个故障模型,则M可以表示为:
M={component,target,model,params,trigger,time}
表10对各故障所提取的故障特征
XML元素标记 | 对应名称 |
component | 故障元器件 |
target | 故障位置 |
model | 故障模式 |
params | 故障参数 |
trigger | 故障触发方式 |
time | 故障时间 |
XML描述的故障模型序列文件一方面可作为模拟器故障注入功能的故障配置输入;另一方面,在BIT软件测试试验中可作为试验用例,描述一次故障注入试验的输入样本。这样做达到了设计功能上的复用性。
如图3所示,为一个XML描述的故障模型序列文件的示例。故障模型序列文件以<test-job>作为XML根标签,其子标签包括测试名称<name>、开始时间<start-time>、测试描述<description>、全局定义<global-vars>、故障注入主体<injection>等标记元素。其中<injection>标签的下一级为本次测试所包含的故障模型序列,故障模型是以<fault>作为标签名称。图3中给出的例子中定义了两个故障,第1个故障是跳变耦合故障,第2个故障为地址位固0故障,具体故障关键字及值如图3所示。
步骤3:模拟器读入故障模型序列文件,经过故障建模及模型解析模块4解析为模拟器识别的故障序列,然后将故障序列输入到故障注入模块3中。
如图4所示,描述了XML故障建模-故障解析-模拟器可识别的故障序列生成的过程。具体本发明将XML表示的故障模型输入故障建模及模型解析模块4,故障建模及模型解析模块4中包含一个基于libxml2库开发的XML文件解析器,通过解析将XML表示的故障模型序列文件转化为采用C语言表示的数据结构组成的故障序列,C语言表示的各数据结构中记载了相应的故障。模拟器能够识别用C语言表示的故障序列。
解析得到的故障序列采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构,如图5给出的示例,例如,故障4、5和6属于故障模式6,通过链表结构联系在一起。这样考虑了故障按故障模式的划分,一方面照顾了查询效率,另一方面没有浪费过多存储空间。
如图6所示,将用C语言表示的故障序列输入到故障注入模块3中。
步骤4:模拟器对存储器进行正常功能模拟,当处理器对存储器进行访问时,执行步骤5。
将设置好的测试用例输入模拟器执行,使得模拟器模拟存储器的运行,在未注入故障前,处于正常运行过程中。
存储器的功能保存数据以及根据处理器给出的地址返回或写入相应的值。模拟存储器的正常功能即提供足够的存储空间,以及正确的对地址单元进行操作。
具体地,模拟器通过正常功能模拟模块1模拟处理器正常功能,具体实现方法是:在宿主机的内存中动态申请指定大小的内存空间,作为客户机的物理内存,实现RAM的正常存储功能,为便于内存管理并对申请的内存空间进行分页处理,并通过二级转换表实现客户机物理地址到宿主机地址的映射,从而模拟地址译码功能,对申请的内存空间进行属性设置,RAM设置为可读可写,处理器通过查找二级转换表来实现对相应的存储单元的读写访问;与模拟RAM的方法类似模拟ROM的存储以及访问,不同在于,将模拟ROM的内存空间的属性设置为只读模式,将ROM的内容存储在文件里,当需要读取ROM时,先将文件内容载入ROM内存空间再进行访问;对FLASH的功能模拟,具体而言,对于启动FLASH的模拟,因其存储内容为启动配置等只读文件,因此与ROM的实现相同;对于应用FLASH,主要用于存储报告等文件,因此其功能等效于硬盘,在ROM的实现的基础上添加可写属性以及相应的读写访问函数和擦除操作函数,并在处理器访问结束后将存储空间里的内容写入文件,以实现其可读可写且断电后数据不丢失的功能。
在处理器对某地址进行访问时,调用故障注入模块3以判断是否需要注入故障。
步骤5:故障注入模块3查询故障序列,判断是否有匹配当前地址能注入的故障模式的故障,若有执行下一步骤,若无,转步骤4,返回模拟器正常运行。该步骤在进行前,需要根据当前地址所处位置,例如是FLASH、存储单元阵列或者地址译码器,来确定该位置可以注入的故障模式。在得到故障模式后,进一步查找故障序列。
该步骤也称为故障模式匹配,就是在故障序列中查找符合注入条件的故障的过程,也即为一次哈希表查找过程。假设故障模式数为M,有效待注入故障数为N。故障注入模块3第一次查找故障序列,就是在故障序列中按故障模式的哈希值直接取出当前地址对应的故障模式下的故障链表,时间开销为O(1)。
步骤6:判断步骤5匹配得到的各故障的触发条件是否具备,若都不具备,转步骤4执行,若存在具备触发条件的,查找所有具备触发条件的故障,然后执行步骤7。
该步骤也称为触发条件匹配,故障注入模块3第二次查找故障序列,针对步骤5匹配得到的每个故障,在故障链表中根据该故障模型的故障参数,查找该故障的触发条件是否满足,若满足,则执行步骤7,若匹配的所有故障的触发条件都不满足,则转步骤4继续正常模拟。第二次查找哈希表的时间开销为O(N/M)。
步骤7:故障注入模块3为满足故障触发条件的故障进行触发条件设置,并适时触发故障。
故障注入模块3进行故障触发条件设置,触发方式主要有计时器触发与事件触发,结合电路板上存储器为模拟对象进行分析,模拟器运行过程中的故障注入基本的触发方式有以下几种:
1.时间触发:当模拟器计时器执行到指定时刻或者时间范围,故障注入模块3对当前总线周期进行故障注入。时间触发可以用来模拟间歇故障或者瞬时故障以及指定永久故障的开始时刻。由于无法准确估计出模拟器运行的精确时刻,时间触发条件往往设置为一个时间范围,同时与其他触发条件配合共同决定何时向目标系统注入故障。
2.访问触发:当处理器对存储器某地址进行访问时,触发故障注入设备3进行故障注入动作执行。通过选定不同的访问触发条件可以实现对存储器不同故障模式的故障模拟。
在实际的故障注入过程中,以上两种触发方式可以单独使用,也可以相互组合,采用几种触发条件相与、相或的方式来控制实际的故障注入触发。
步骤8:模拟器在触发某个故障后,通过故障行为模拟模块2调用相应的故障模拟函数实现故障的行为模拟。
根据存储器所存在的各种故障模式,在模拟器中预先定义好各种故障,根据故障发生的行为表现,进行各种故障模式的故障行为模拟,进而形成故障行为模拟模块2。
对于步骤1的故障模式库中存储单元故障,如:固定故障、耦合故障等,按照其故障表现,构造相应的故障模拟函数实现故障算法。故障算法的基本原理为产生相应的故障掩码与指定存储地址正常值作与/或/异或操作,之后写回发生故障的存储地址,造成数据错误。
存储单元阵列故障最终都可由固0、固1、位翻转故障三种原子故障组合实现,下面对该三种原子故障的函数实现进行举例说明。
如32位存储器中位于地址0xabcde开始的第4个存储单元(即第(31-4)位)发生位翻转故障,故障模拟函数实现功能主体即为
mem→νal^=(1UL《(31-4))
上式中,val为该地址的存储内容,32位故障掩码的第0-26位、28-31位均为0,而第27位取值为1,通过“异或”操作即使得该地址开始的第4个存储单元发生位翻转故障,而其余位值不变。
如32位存储器中位于地址0xabcde开始的第8个存储单元(即第(31-8)位)发生固0故障,故障模拟函数实现功能主体即为
mem→νal&=~(1UL《(31-8))
上式中,val为该地址的存储内容,32位故障掩码的第0-22位、24-31位均为1,而第23位取值为0,通过“与”操作即使得该存储单元的值固定为0,而其余位值不变。
如32位存储器中位于地址0xabcde的最高位发生固1故障,故障模拟函数实现功能主体即为
mem→νal |=(1UL《(31-0))
上式中,val为该地址的存储内容,32位故障掩码的第0-30位均为0,而最高位取值为1,通过“或”操作即使得该地址的最高位值发生固定为1故障,而其余位值不变。
以此类举,可实现所有与位值出错相关的故障。
存储单元阵列的其他故障,多重访问故障:读操作时通过额外指定访问地址对故障单元进行读操作,将读出的多个数据进行与/或操作后,作为返回给处理器的逻辑值;写操作时,主动调用读写函数对其他故障地址单元进行同数值写操作。
开路故障:在处理器访问存储器函数中添加故障匹配以及故障实现语句,根据地址条件匹配,当触发该故障时,调用故障实现语句,使访问函数返回值为空,实现无法访问的故障。
FLASH的存储耐久故障以及数据保持故障和开路故障类似的,在处理器访问FLASH函数中添加故障匹配语句以及故障实现语句,当触发该故障时,调用故障实现语句,使访问函数返回错误或异常结果,从而模拟该存储单元失效,不能正常进行擦除以及读写操作。
地址译码器故障:当处理器对某地址进行访问时,对该地址值进行一定修改后(如将源地址向下移动3个地址),再对修改后的地址进行访问,从而实现错误地址的访问故障;对于多重选择故障,则可通过额外调用读写操作函数,将读出的数据进行与操作或者或操作后作为返回给处理器的逻辑值;对于没有选中任何地址故障,则在对二级转换表进行查询时通过调用故障实现语句,使得其地址返回值为空,从而实现无地址选中故障;对于多个地址选中同一个地址故障,则根据故障模型,在对其他地址进行访问时,将其地址值修改为故障访问地址后再进行访问操作。
步骤9:监控模拟器运行及故障注入过程,回收执行结果。
连接到模拟器监控器后可通过命令行形式监控模拟器的运行,包括查看CPU运行状态(info cpus)、寄存器集状态(info registers)、块设备状态(info blockdev)、物理地址空间分配(info mtree)、内存某地址值(xp/fmt[addr])等等。
本发明扩展了监控器命令集,加入与故障相关的命令,如查看故障序列(info faults)、即时触发故障并查看结果(fault register、fault alu、fault memory,…)等。
同时,模拟器监控器支持socket连接,可通过其他软件(在本发明的图10中为消息转化层软件)自动化实现信息监控和结果回收的过程,并反馈给上层界面,减少人为的参与。这样就可以做到对模拟器运行及故障注入过程的全面监控和结果显示。
模拟器对存储器的模拟,即模拟存储单元的存储功能,以及处理器对存储器的正常读写访问功能。对模拟器的模拟具体实现方法是:在宿主机的内存中动态申请指定大小的内存地址空间,并对申请的内存空间进行分页处理,作为客户机的物理内存。如图8所示,再将客户机物理内存到宿主机应用地址空间的映射关系保存在地址映射转换表里,通过该二级转换表可以实现从客户机应用地址空间到主机应用地址空间的映射,即可根据该映射关系实现对存储器正常寻址以及读写访问。
最后通过结构体链表对申请的各块存储空间进行属性设置,如RAM设置为可读可写、ROM设置为只读、FLASH设置为可读可写。由于ROM和FLASH内容在断电时不会丢失,因此将其内容保存在文件里,每次加载文件内容到分配的ROM、FLASH存储空间,实现其正常功能模拟。
如图9所示,描述应用本发明故障注入的中全系统模拟器的系统架构,模拟对象包括处理器、存储器、外围设备及总线等。处理器模拟的实现是采用二进制代码翻译将(模拟对象处理器的)源指令集转化为目标代码块并通过系统调用方式在宿主机上执行。存储器模拟的实现是利用宿主机的存储空间提供给客户机一个从零地址开始的连续物理内存空间(称之为客户机物理空间),同时模拟器的flash存储器实现装载客户机映像并读写的功能,在这一部分的实现逻辑中添加了故障模拟和故障注入的功能以完成本发明的设计目标。外围设备模拟的实现则模拟了目标外设的转件接口,依靠宿主机提供的运行环境,实现外设的功能模拟;
如图10所示,为实现本发明的模拟器的一个软件实例结构图。从图11中可以看出,在整个BIT软件测试系统中,本发明的实现部分处于黑色虚线所框部分,主要包括模拟器软件部分中的存储器模拟部分和消息接口软件的故障建模及模型解析模块部分。其中故障建模及模型解析模块的实现是在模拟器软件部分实现,但按照其功能特性划归消息接口软件,以突出系统层次。进一步的,图11中提供了图形用户界面模块以方便操作、监控模拟器运行及故障注入过程。
图形用户界面包括:
电路板图形化模块:该模块以图形化的方式向用户展示模拟对象。
故障建模模块:该模块以图形化的方式向用户提供建模接口,用户在建模界面可以通过一些基本操作建立一套故障模型,并生成相应用XML语言描述的故障模型序列文件。
模拟器控制模块:该模块主要提供对模拟器故障注入试验过程的控制功能,如模拟器启动、暂停、终止等功能,以及对试验配置文件的控制功能,如下载试验配置文件到实时故障注入软件;所述的试验配置文件包括试验开始时间、试验名称、故障模型序列、从模拟器回收的试验结果数据等。
信息收集显示模块:该模块主要对模拟器中的故障模型序列及运行结束后的故障注入结果进行回收,并且提供存储和显示的功能。
本发明提供的故障注入方法及模拟器,解决了BIT软件测试中,异常用例的设计不够全面,由于硬件的封闭性等,不能在硬件上直接注入故障,使得部分异常用例不适用的问题,注入的故障模式种类较全,充分覆盖了每种故障发生下的测试用例,可对电路板级BIT软件进行较为充分的测试。
Claims (9)
1.一种面向BIT软件测试的存储器故障注入的模拟器,将运行BIT软件的硬件电路板作为模拟对象,模拟器运行在宿主机上,BIT软件运行在客户机上,其特征在于,在模拟器中设置如下模块:正常功能模拟模块、故障行为模拟模块、故障注入模块、故障建模及模型解析模块和外围交联环境仿真模块;
正常功能模拟模块实现了对存储器的正常功能模拟,包括模拟存储单元的存储功能,以及处理器对存储器的正常读写访问功能;具体实现对存储器的正常功能模拟的方法是:在宿主机的内存中动态申请指定大小的内存空间,并对申请的内存空间进行分页处理,作为客户机的物理内存,实现RAM的正常存储功能,对申请的内存空间进行属性设置,RAM设置为可读可写,并通过二级转换表实现客户机物理地址到宿主机地址的映射,从而模拟地址译码功能,处理器通过查找二级转换表来实现对相应的存储单元的读写访问;用模拟RAM的方法模拟ROM的存储以及访问,但将模拟ROM的内存空间的属性设置为只读模式,将ROM的内容存储在文件里,当需要读取ROM时,先将文件内容载入ROM内存空间再进行访问;对FLASH的功能模拟中,对启动FLASH的模拟方法,与ROM的模拟方法相同,对于应用FLASH的模拟方法,在ROM模拟方法的实现基础上,对申请的内存空间添加可写属性以及相应的读写访问函数和擦除操作函数,并在处理器访问结束后将内存空间里的内容写入文件,以实现FLASH可读可写且断电后数据不丢失的功能;
故障建模及模型解析模块,首先对要注入的各故障采用XML语言进行故障建模,描述每个故障的故障元器件、故障位置、故障模式、故障参数、故障触发方式以及故障时间,生成XML故障序列,然后对XML故障序列进行解析,得到采用C语言表示的模拟器识别的故障序列,所解析得到的故障序列,采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构;
故障注入模块接收故障建模及模型解析模块解析得到的故障序列,在模拟器运行遇到某个故障观察点时被调用,故障注入模块在当前测试的故障序列中,查找具备触发条件的,且与当前故障观察点对应的故障模式相匹配的故障,如果查找到相应的故障,则注入相应的故障;
故障行为模拟模块根据存储器故障发生的行为表现,构造相应的故障模拟函数以模拟存储故障行为,在触发了某个故障后调用相应的故障模拟函数执行;
外围交联环境仿真模块用于模拟外围环境激励与模拟器的响应,以及模拟模拟器对外的输入和输出。
2.根据权利要求1所述的模拟器,其特征在于,所述的故障行为模拟模块,其通过故障模拟函数实现故障行为模拟,针对不同故障,故障模拟函数的实现方法是:
(1)存储单元中所有与位值出错有关的故障:产生相应的故障掩码与指定存储地址正常值作与/或/异或操作,之后写回发生故障的存储地址,造成数据错误;
(2)对存储单元阵列的多重访问故障:读操作时通过额外指定访问地址对故障单元进行读操作,将读出的数据进行与/或操作后,作为返回给处理器的逻辑值;写操作时,主动调用读写函数对其他故障地址单元进行同数值写操作;
(3)开路故障:在处理器访问存储器函数中添加故障匹配以及故障实现语句,根据地址条件匹配,当触发该故障时,调用故障实现语句,使访问函数返回值为空,实现无法访问的故障;
(4)FLASH的存储耐久故障以及数据保持故障:在处理器访问FLASH函数中添加故障匹配语句以及故障实现语句,当触发该故障时,调用故障实现语句,使访问函数返回错误或异常结果,从而模拟该存储单元失效,不能正常进行擦除以及读写操作;
(5)地址译码器故障:当处理器对某地址进行访问时,对该地址值进行修改后,再对修改后的地址进行访问,从而实现错误地址访问故障;对于多重选择故障,通过额外调用读写操作函数,将读出的数据进行与操作或者或操作后作为返回给处理器的逻辑值;对于没有选中任何地址故障,则在对二级转换表进行查询时通过调用故障实现语句,使得其地址返回值为空,从而实现无地址选中故障;对于多个地址选中同一个地址故障,则根据故障模型,在对其他地址进行访问时,将其地址值修改为故障访问地址后再进行访问操作。
3.根据权利要求1所述的模拟器,其特征在于,该模拟器还包括图形用户界面模块,图形用户界面模块包括如下子模块:
电路板图形化模块:以图形化的方式向用户展示模拟对象;
故障建模模块:以图形化的方式向用户提供建模接口,用户在该模块的界面建立故障模型,并生成相应的采用XML语言描述的故障模型序列文件;
模拟器控制模块:提供对模拟器故障注入试验过程的控制功能,包括模拟器启动、暂停和终止;还提供对试验配置文件的控制功能;
信息收集显示模块:对模拟器中的故障模型序列及运行结束后的故障注入结果进行回收,并且提供存储和显示的功能。
4.一种基于权利要求1所述的模拟器的面向BIT软件测试的存储器故障注入方法,其特征在于,将运行BIT软件的硬件电路板作为模拟对象,然后进行如下步骤:
步骤1:对存储器类故障模式进行分析,建立存储器故障模式库;
步骤2:从存储器故障模式库中选取符合本次测试目标的故障模式,并定义相应故障模式下的故障,通过故障建模及模型解析模块对各故障建立故障模型,将所建立的故障模型写入故障模型序列文件中;所述的故障模型序列文件为用XML语言描述的文件;所述的对各故障建立故障模型,是提取故障的6个特征来建立故障模型,6个特征为:元器件,故障位置,故障模式,故障参数,故障触发方式和故障时间;
步骤3:模拟器读入故障模型序列文件,经过故障建模及模型解析模块解析为模拟器识别的故障序列,然后将故障序列输入到故障注入模块中;所述的模拟器识别的故障序列,是用C语言表示的,采用链地址法的哈希表数据结构存储,以故障模式作为哈希关键字,同一故障模式的待注入故障构成单向链表结构;
步骤4:模拟器对存储器进行正常功能模拟,当处理器对存储器进行访问时,执行步骤5;通过正常功能模拟模块对存储器的正常存储功能进行模拟,并且处理器能够通过地址映射关系对存储器进行访问;
步骤5:故障注入模块查询输入的故障序列,判断是否有匹配当前地址能注入的故障模式的故障,若有执行下一步骤,若无,转步骤4执行;
步骤6:判断步骤5匹配得到的各故障的触发条件是否具备,若都不具备,转步骤4执行,若存在具备触发条件的,查找所有具备触发条件的故障,然后执行步骤7;
步骤7:故障注入模块注入故障,具体是:为满足故障触发条件的故障进行触发条件设置,并适时触发故障;
步骤8:模拟器在触发某个故障后,通过故障行为模拟模块调用相应的故障模拟函数实现故障的行为模拟;所述的故障模拟函数用于模拟相应的存储器故障行为;
步骤9:监控模拟器运行及故障注入过程,回收执行结果。
5.根据权利要求4所述的存储器故障注入方法,其特征在于,所述的步骤4中模拟器对存储器进行正常功能模拟,具体实现方法是:在宿主机的内存中动态形式申请指定大小的内存空间,并对申请的内存空间进行分页处理,作为客户机的物理内存,实现RAM的正常存储功能,对申请的内存空间进行属性设置,RAM设置为可读可写,并通过二级转换表实现客户机物理地址到宿主机地址的映射,从而模拟地址译码功能,处理器通过查找二级转换表来实现对相应的存储单元的读写访问;用模拟RAM的方法模拟ROM的存储以及访问,但将模拟ROM的内存空间的属性设置为只读模式,将ROM的内容存储在文件里,当需要读取ROM时,先将文件内容载入ROM内存空间再进行访问;对FLASH的功能模拟中,对启动FLASH的模拟方法,与ROM的模拟方法相同,对于应用FLASH的模拟方法,在ROM模拟方法的实现基础上,对申请的内存空间添加可写属性以及相应的读写访问函数和擦除操作函数,并在处理器访问结束后将内存空间里的内容写入文件,以实现FLASH可读可写且断电后数据不丢失的功能。
6.根据权利要求4所述的存储器故障注入方法,其特征在于,所述的步骤5具体是,故障注入模块,根据故障模式的哈希值,查询哈希表,取出与该故障模式对应的故障链表。
7.根据权利要求4所述的存储器故障注入方法,其特征在于,所述的步骤6中判断故障的触发条件是否具备,是根据该故障模型的故障参数,查找该故障的触发条件是否满足。
8.根据权利要求4所述的存储器故障注入方法,其特征在于,所述的步骤7中故障注入模块注入故障,具体在模拟器运行过程中的故障注入的触发方式有:
(1)时间触发:当模拟器计时器执行到指定时刻或者时间范围,故障注入模块对当前总线周期进行故障注入;时间触发用来模拟间歇故障或者瞬时故障;
(2)访问触发:当对处理器某部件进行访问时,触发故障注入设备进行故障注入动作执行;
在故障注入过程中,以上两种触发方式单独使用,或者组合使用。
9.根据权利要求4所述的存储器故障注入方法,其特征在于,所述的步骤8中的故障模拟函数,针对不同故障,具体实现方法是:
(1)存储单元中所有与位值出错有关的故障:产生相应的故障掩码与指定存储地址正常值作与/或/异或操作,之后写回发生故障的存储地址,造成数据错误;
(2)对存储单元阵列的多重访问故障:读操作时通过额外指定访问地址对故障单元进行读操作,将读出的数据进行与/或操作后,作为返回给处理器的逻辑值;写操作时,主动调用读写函数对其他故障地址单元进行同数值写操作;
(3)开路故障:在处理器访问存储器函数中添加故障匹配以及故障实现语句,根据地址条件匹配,当触发该故障时,调用故障实现语句,使访问函数返回值为空,实现无法访问的故障;
(4)FLASH的存储耐久故障以及数据保持故障:在处理器访问FLASH函数中添加故障匹配语句以及故障实现语句,当触发该故障时,调用故障实现语句,使访问函数返回错误或异常结果,从而模拟该存储单元失效,不能正常进行擦除以及读写操作;
(5)地址译码器故障:当处理器对某地址进行访问时,对该地址值进行修改后,再对修改后的地址进行访问,从而实现错误地址访问故障;对于多重选择故障,通过额外调用读写操作函数,将读出的数据进行与操作或者或操作后作为返回给处理器的逻辑值;对于没有选中任何地址故障,则在对二级转换表进行查询时通过调用故障实现语句,使得其地址返回值为空,从而实现无地址选中故障;对于多个地址选中同一个地址故障,则根据故障模型,在对其他地址进行访问时,将其地址修改为故障访问地址后再进行访问操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210194671.7A CN102789416B (zh) | 2012-06-13 | 2012-06-13 | 面向bit软件测试的存储器故障注入方法及其模拟器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210194671.7A CN102789416B (zh) | 2012-06-13 | 2012-06-13 | 面向bit软件测试的存储器故障注入方法及其模拟器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102789416A CN102789416A (zh) | 2012-11-21 |
CN102789416B true CN102789416B (zh) | 2014-12-31 |
Family
ID=47154821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210194671.7A Expired - Fee Related CN102789416B (zh) | 2012-06-13 | 2012-06-13 | 面向bit软件测试的存储器故障注入方法及其模拟器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102789416B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025171A (zh) * | 2017-03-10 | 2017-08-08 | 深圳航天科技创新研究院 | 一种实现虚拟验证系统故障注入的方法 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399820B (zh) * | 2013-08-21 | 2016-03-02 | 中国科学院合肥物质科学研究院 | 一种基于事件树的序列和后果分析的故障判断系统及方法 |
CN103901342B (zh) * | 2014-03-18 | 2017-09-29 | 北京时代民芯科技有限公司 | 一种基于掩码文件的fpga精确故障注入系统 |
CN105893234B (zh) * | 2014-12-30 | 2019-05-07 | 伊姆西公司 | 用于软件测试的方法和计算设备 |
CN104657265A (zh) * | 2015-02-10 | 2015-05-27 | 上海创景计算机系统有限公司 | 软件故障注入和分析的流程定义方法 |
CN105183369B (zh) * | 2015-08-13 | 2018-03-27 | 北京京存技术有限公司 | 一种NandFlash中模拟用户数据存储的方法 |
CN106933716A (zh) * | 2015-12-31 | 2017-07-07 | 北京京存技术有限公司 | 一种内嵌式存储器模拟测试开发平台的错误插入机制 |
CN106292336B (zh) * | 2016-10-10 | 2019-05-07 | 上海航天控制技术研究所 | 基于嵌入式VxWorks的卫星姿轨控系统的故障模拟系统及方法 |
CN106776175A (zh) * | 2016-12-16 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种内存的故障管理方法、系统及故障管理系统 |
US10346273B2 (en) * | 2017-09-22 | 2019-07-09 | Analog Devices Global Unlimited Company | Automated analog fault injection |
CN107707428A (zh) * | 2017-09-29 | 2018-02-16 | 北京润科通用技术有限公司 | 一种fc‑ae‑1553总线的故障注入方法及装置 |
CN109933479B (zh) * | 2017-12-19 | 2021-07-09 | 华为技术有限公司 | 故障模拟与仿真方法以及相关设备 |
CN108171277A (zh) * | 2018-01-17 | 2018-06-15 | 重庆大学 | 一种基于稀疏表示的bit间歇故障诊断方法 |
CN110377924B (zh) * | 2018-04-12 | 2024-05-14 | 奥普蒂马设计自动化有限公司 | 硬错误模拟及其使用 |
CN108964993B (zh) * | 2018-06-29 | 2022-02-18 | 郑州云海信息技术有限公司 | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 |
CN109117371A (zh) * | 2018-08-08 | 2019-01-01 | 中国航空工业集团公司雷华电子技术研究所 | 一种提高周期bit验证能力的故障注入方法 |
CN109657818A (zh) * | 2018-12-21 | 2019-04-19 | 核动力运行研究所 | 一种核电模拟机教练员站软件故障引入系统的实现方法 |
CN109828175B (zh) * | 2019-03-14 | 2021-06-01 | 四川海特亚美航空技术有限公司 | 一种电子顺序组件机内测试方法 |
CN112181747A (zh) * | 2020-10-10 | 2021-01-05 | 中国运载火箭技术研究院 | 系统故障注入方法、注入装置及存储介质 |
CN112542209A (zh) * | 2020-12-29 | 2021-03-23 | 深圳市芯天下技术有限公司 | 非易失性芯片错误注入验证方法、装置、存储介质和终端 |
CN115794529B (zh) * | 2022-12-06 | 2023-09-05 | 安超云软件有限公司 | 云环境下的存储故障模拟方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164846A1 (en) * | 2007-12-19 | 2009-06-25 | International Business Machines Corporation | Fault Injection In Dynamic Random Access Memory Modules For Performing Built-In Self-Tests |
CN102270253A (zh) * | 2011-06-15 | 2011-12-07 | 北京航空航天大学 | 一种基于状态图的机内测试建模仿真方法 |
-
2012
- 2012-06-13 CN CN201210194671.7A patent/CN102789416B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164846A1 (en) * | 2007-12-19 | 2009-06-25 | International Business Machines Corporation | Fault Injection In Dynamic Random Access Memory Modules For Performing Built-In Self-Tests |
CN102270253A (zh) * | 2011-06-15 | 2011-12-07 | 北京航空航天大学 | 一种基于状态图的机内测试建模仿真方法 |
Non-Patent Citations (2)
Title |
---|
《Design of Equipment Fault Injection System Based on BIT》;Chang Qing 等;《Electronic Measurement and Instruments, 2007. ICEMI "07. 8th International Conference on》;20070816;第3-362至3-365页 * |
BIT试验中VME总线故障注入设备控制单元设计;刘梦玥 等;《计算机应用研究》;20100531;第27卷(第5期);第1785-1787页 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025171A (zh) * | 2017-03-10 | 2017-08-08 | 深圳航天科技创新研究院 | 一种实现虚拟验证系统故障注入的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102789416A (zh) | 2012-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789416B (zh) | 面向bit软件测试的存储器故障注入方法及其模拟器 | |
CN102760098B (zh) | 面向bit软件测试的处理器故障注入方法及其模拟器 | |
Majumdar et al. | Hybrid concolic testing | |
CN107066390B (zh) | 一种动态内存泄漏检测方法及系统 | |
CN105930242B (zh) | 一种支持精确访存检测的多核处理器随机验证方法及装置 | |
US10073933B2 (en) | Automatic generation of properties to assist hardware emulation | |
CN103473162A (zh) | 一种基于软件故障注入的可靠性评测系统设计方法 | |
US11263150B2 (en) | Testing address translation cache | |
CN1716264A (zh) | 利用控制程序信息注释并呈现系统踪迹的方法和系统 | |
CN103164335B (zh) | 检查单元测试质量的方法和系统 | |
US20120166168A1 (en) | Methods and systems for fault-tolerant power analysis | |
Li et al. | A fault injection system based on QEMU simulator and designed for BIT software testing | |
Kantrowitz et al. | Functional Verification of a Multiple-issue, Pipelined, Superscalar Alpha Processor - the Alpha 21164 CPU Chip | |
Ta et al. | Autonomous data-race-free GPU testing | |
Tomko et al. | Hardware/software co-debugging for reconfigurable computing | |
Kim et al. | Formal verification of a flash memory device driver–an experience report | |
US7103812B1 (en) | Method and apparatus for tracking memory access statistics for data sharing applications | |
CN111506513B (zh) | 一种基于层次化模型的文件系统测试方法 | |
Seo et al. | Automating embedded software testing on an emulated target board | |
CN112231165B (zh) | 基于链接库注入和内存映射方式的内存故障模拟方法 | |
CN101650688A (zh) | 一种访问vm_io地址空间的方法和用户态调试器 | |
CN207302033U (zh) | 带有随机uid的处理器芯片仿真器 | |
Wang et al. | An embedded C language Target Code level Unit Test method based on CPU Simulator | |
CN117312176B (zh) | 一种基于uvm的芯片验证测试方法、系统及电子设备 | |
CN116431518B (zh) | 一种基于仿真平台的多层级、多模式软件故障注入方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141231 Termination date: 20160613 |