CN108491296B - 微处理器单粒子翻转截面的测试方法 - Google Patents

微处理器单粒子翻转截面的测试方法 Download PDF

Info

Publication number
CN108491296B
CN108491296B CN201810193529.8A CN201810193529A CN108491296B CN 108491296 B CN108491296 B CN 108491296B CN 201810193529 A CN201810193529 A CN 201810193529A CN 108491296 B CN108491296 B CN 108491296B
Authority
CN
China
Prior art keywords
microprocessor
tested
data
program
particle
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
Application number
CN201810193529.8A
Other languages
English (en)
Other versions
CN108491296A (zh
Inventor
池雅庆
梁斌
陈建军
孙永节
郭阳
陈书明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201810193529.8A priority Critical patent/CN108491296B/zh
Publication of CN108491296A publication Critical patent/CN108491296A/zh
Application granted granted Critical
Publication of CN108491296B publication Critical patent/CN108491296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2236Detection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Abstract

本发明针对现有微处理器单粒子翻转截面测试方法不能全面、准确地反映微处理器对单粒子翻转效应敏感程度的问题,提出一种微处理器单粒子翻转截面的测试方法,包括如下步骤:1.构建单粒子翻转测试系统;2.设计指令集遍历程序、内部存储器循环遍历程序和数据搬移程序;3.测试被测微处理器运行指令集遍历程序时的单粒子翻转截面C1;4.测试被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2;5.测试被测微处理器运行数据搬移程序时的单粒子翻转截面C3;6.计算被测微处理器整体的单粒子翻转截面C=C1+C2+C3。本发明能够全面、准确地反映被测微处理器正常工作时对单粒子翻转效应的敏感程度,提高微处理器单粒子翻转效应测试的精确度。

Description

微处理器单粒子翻转截面的测试方法
技术领域
本发明涉及单粒子效应测试领域,特别涉及一种微处理器单粒子翻转截面的测试方法。
背景技术
现代微处理器凭借其集成度高、运算能力强、IO接口丰富等特点,在航空、航天领域得到了越来越广泛的应用。然而,应用于航空、航天等恶劣辐射环境的现代微处理器很容易受到单粒子翻转效应(Single-Event Upset,SEU)的影响而发生错误,造成不可估量的损失。
随着工艺水平的进步,现代微处理器一般都具有片上系统(System on Chip,SoC)的特点。首先,其片上往往集成了复杂的微处理器内核,具有众多的运算和加速单元,如算术运算单元(Arithmetic Logical Unit,ALU)、浮点运算单元(Float Point Unit,FPU)、高级加密标准模块(Advanced Encryption Standard,AES)、乘累加器等;其次,其片上集成有众多的外设部件,如直接存储访问控制器(Direct Memory Access,DMA)、外部存储器总线接口(External Memory Interface,EMIF)、多通道缓冲串口(Multichannel BufferedSerial Port,McBSP)、DDR控制器、PCIE控制器等;最后,片上集成有大容量静态随机存储器(Static Radom Access Memory,SRAM),动辄百万字节的容量,对微处理器的性能有着重要的影响。微处理器的内核和众多外设部件,特别是大容量的片上SRAM存储器,都对单粒子翻转效应非常敏感,极易由于单粒子翻转效应而出现软错误,对系统的可靠性造成不利的影响。因此准确全面的测试微处理器对单粒子翻转效应的敏感程度尤为重要。
微处理器对单粒子翻转效应的敏感程度一般用单粒子翻转截面来表示。单粒子翻转截面C是指微处理器在具有一定LET(Linear Energy Transfer,传能线密度)的高能粒子轰击下会发生软错误的区域的面积,设高能粒子总注量(即轰击到单位面积微处理器的高能粒子个数)为Q,在这些高能粒子的轰击下微处理器发生软错误数为K,则C=K/Q。高能粒子一般采用高能粒子加速器产生。
传统的微处理器单粒子翻转截面测试方法一般有两类,第一类是统计被测微处理器运行用户应用程序时发生的软错误,第二类是基于可测性设计(Design for Test,DFT)技术,使用扫描链这类测试的方式去统计被测微处理器发生的软错误,最后再计算出单粒子翻转截面。
第一类单粒子翻转截面测试方法是在高能粒子轰击微处理器时运行用户应用程序,统计该用户应用程序发生的软错误来代表被测微处理器整体发生的软错误。此时微处理器处于正常工作模式。微处理器包括内部存储器、内核、外设类部件等多种内部部件,不同部件对单粒子翻转效应的敏感程度及其软错误影响是不同的。用户应用程序往往只使用个别主要内部部件,统计到的软错误是该程序使用到的内部部件发生的软错误,其余内部部件发生的软错误无法统计,因此采用该方法得到的软错误不能代表被测微处理器整体的软错误,也就不能全面、正确反映微处理器整体对单粒子翻转效应的敏感程度。
对于第二类测试方法,申请号为200780027325.7的中国发明专利公开了一种单粒子翻转测试电路及方法,该方法要求被测试的微处理器运行在测试模式下,而测试模式下的微处理器并不具有计算和处理数据的能力,不能真实准确地反映微处理器正常工作时对单粒子翻转效应的敏感程度。
发明内容
本发明解决的技术问题是:针对现有微处理器单粒子翻转截面测试方法不能全面、准确地反映微处理器对单粒子翻转效应敏感程度的问题,提出一种微处理器单粒子翻转截面的测试方法,既能够全面测试被测微处理器整体对单粒子翻转效应的敏感程度,又能真实准确地反映微处理器正常工作时对单粒子翻转效应的敏感程度,提高微处理器单粒子翻转效应测试的精确度。
具体技术方案如下:
微处理器单粒子翻转截面的测试方法,包括如下步骤:
第一步,构建单粒子翻转测试系统。单粒子翻转测试系统由控制器和存储器组成。被测微处理器连接控制器和存储器,被测微处理器中运行微处理器应用程序,读写存储器数据,并与控制器双向通信;控制器连接被测微处理器和存储器,与被测微处理器双向通信,读取存储器数据,检查其读取的数据,进行变量操作、逻辑判断和计算,统计单粒子翻转数量,并进行计时;存储器连接被测微处理器和控制器,被测微处理器和控制器可同时读存储器数据,被测微处理器还可以向存储器写数据。
第二步,根据被测微处理器的特点,设计指令集遍历程序、内部存储器循环遍历程序和数据搬移程序三种微处理器应用程序。这三种微处理器应用程序分别主要使用内核、内部存储器和外设类部件三类部件。内核、内部存储器和外设类部件是微处理器中使用晶体管数量最多、受单粒子翻转效应影响最大的三类部件,所以指令集遍历程序、内部存储器循环遍历程序和数据搬移程序三种微处理器应用程序发生的软错误数量之和等效于微处理器整体的软错误数量。
这三种微处理器应用程序根据不同的被测微处理器结构有针对性的编写,尽管同一种微处理器应用程序在不同的微处理器架构下代码不同,但是同一种微处理器应用程序在不同的微处理器架构下原理和流程是一致的。下面分别对这三种微处理器应用程序的原理和流程进行说明。
指令集遍历程序的原理是:微处理器的内核运行运算类指令,内核中因单粒子翻转效应产生的软错误会导致运算结果错误或不能完成运算,通过密集运行运算类指令并输出运算结果,检查输出结果是否正确就可以获取微处理器内核的软错误情况,进而计算单粒子翻转截面。指令集遍历程序的流程为:
STEP111:被测微处理器向单粒子翻转测试系统的控制器输出指令集遍历程序未完成运行信号。
STEP112:被测微处理器上运行被测微处理器的所有运算类指令,并将运算结果写入单粒子翻转测试系统的存储器中。
STEP113:被测微处理器向单粒子翻转测试系统的控制器输出指令集遍历程序完成运行信号。
内部存储器循环遍历程序的原理是:该程序循环输出微处理器内部存储器存储的所有数据,通过检查输出数据是否正确获取微处理器内部存储器的软错误情况,进而计算单粒子翻转截面。内部存储器循环遍历程序的流程为:
STEP121:被测微处理器的内部存储器初始化为一种数据组合样式,即对被测微处理器的内部存储器写入一种数据组合样式。数据组合样式包括全0、全1、棋盘格等。将被测微处理器的任意一个内部寄存器命名为A,将A作为存储循环次数N的存储单元,并置A的值为0,表示此时N=0,被测微处理器向单粒子翻转测试系统的存储器输出N,设置最大循环次数。
STEP122:被测微处理器的内部存储器存储的全部数据输出到单粒子翻转测试系统的存储器中,被测微处理器的内部存储器存储数据的地址与其输出到单粒子翻转测试系统的存储器中的地址一一对应。
STEP123:操作A,使N的值增1,向单粒子翻转测试系统的存储器输出N,判断N是否达到最大循环次数,若未达到,则转STEP122;否则,结束内部存储器循环遍历程序。
数据搬移程序的原理是:微处理器的外设部件主要进行数据的输入输出,外设部件因单粒子翻转效应产生的软错误会导致输入输出结果错误或不能完成输入输出,通过将大量数据在各外设部件进行密集的输入输出搬移,检查搬移后的最终数据是否发生变化,就可以获取微处理器各外设部件的软错误情况,进而计算单粒子翻转截面。
设被测微处理器具有M个外设部件,记为第1外设部件、第2外设部件、……、第i外设部件、……、第M-1外设部件、第M外设部件,2≤i≤M-1,i、M均为自然数,数据搬移程序的流程为:
STEP131:被测微处理器向单粒子翻转测试系统的控制器输出数据搬移程序未完成运行信号。将单粒子翻转测试系统的存储器内的一段存储空间MA初始化为一种数据组合样式,即对存储空间MA写入一种数据组合样式。数据组合样式包括全0、全1、棋盘格等。
STEP132:被测微处理器将MA中的数据搬移到单粒子翻转测试系统的存储器内的另一段存储空间MB中,MA和MB没有交集,方法是:
被测微处理器的第1外设部件输入MA中的全部数据,并将全部数据输出到被测微处理器的第2外设部件的输入端口。第一外设部件是上述M个外设部件中输入端口连接到单粒子翻转测试系统的存储器的任意外设部件,第二外设部件是上述M个外设部件中输入端口连接到第一外设部件输出端口的任意外设部件。第i外设部件输入第i-1外设部件输出的全部数据,并将全部数据输出到第i+1外设部件的输入端口;第M外设部件输入第M-1外设部件输出的全部数据,并将全部数据输出到存储空间MB中。第M外设部件的输出端口须连接到测试系统的存储空间。
STEP133:被测微处理器向单粒子翻转测试系统的控制器输出数据搬移程序完成运行信号。
第三步,测试被测微处理器运行指令集遍历程序时的单粒子翻转截面C1,方法为:
STEP211:初始化第一软错误计数变量K1为0,用高能粒子辐照被测微处理器并开始统计总注量。
STEP212:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP215;否则转STEP213。
STEP213:被测微处理器开始运行指令集遍历程序,单粒子翻转测试系统的控制器开始计时并等待被测微处理器输出运行完成信号。若单粒子翻转测试系统的控制器在T1时间内收到被测微处理器输出的运行完成信号,转STEP214;否则K1值增1,转STEP212。T1时间是被测微处理器在正常工作情况下运行一次指令集遍历程序所花费的最长时间。
STEP214:单粒子翻转测试系统的控制器判断被测微处理器输出到单粒子翻转测试系统的存储器的运行结果是否正确。若结果正确,则转STEP212;否则K1值增1,转STEP212。
STEP215:停止高能粒子辐照,计算被测微处理器运行指令集遍历程序时的单粒子翻转截面C1,C1=K1/Q1。Q1为被测微处理器运行指令集遍历程序时的高能粒子总注量。
第四步,测试被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2,方法为:
STEP221:初始化第二软错误计数变量K2为0,用高能粒子辐照被测微处理器并开始统计总注量。
STEP222:被测微处理器开始运行内部存储器循环遍历程序,单粒子翻转测试系统的控制器读取单粒子翻转测试系统的存储器中被测微处理器输出的循环次数N。初始化变量N1和N2,使N1=N,N2=N,清空错误地址列表,计时t复位并开始计时。
STEP223:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP227;否则转STEP224。
STEP224:单粒子翻转测试系统的控制器检查单粒子翻转测试系统的存储器中被测微处理器输出的其内部存储器存储的全部数据是否正确。当新发现一位数据不正确且错误地址列表中不存在该数据的地址,则K2值增1,并将该数据的地址添加到错误地址列表。
STEP225:当t≤T2,转STEP223;当t>T2,单粒子翻转测试系统的控制器读取单粒子翻转测试系统的存储器中被测微处理器输出的循环次数N,使N2=N,转STEP226。T2是被测微处理器正常工作情况下运行一次STEP121、STEP122和STEP123所花费的最长时间。
STEP226:比较N1和N2。若N1等于N2,则表明被测微处理器发生软错误,K2值增1,停止内部存储器循环遍历程序的运行,转STEP222;若N1不等于N2,则使N1=N2,t复位并开始计时,转STEP223。
STEP227:停止高能粒子辐照,计算被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2,C2=K2/Q2。Q2为被测微处理器运行内部存储器循环遍历程序时的高能粒子总注量。
第五步,测试被测微处理器运行数据搬移程序时的单粒子翻转截面C3,方法为:
STEP231:初始化第三软错误计数变量K3为0,用高能粒子辐照被测微处理器并开始统计总注量。
STEP232:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP235;否则转STEP233。
STEP233:被测微处理器开始运行数据搬移程序,单粒子翻转测试系统的控制器开始计时并等待被测微处理器输出数据搬移程序完成运行信号。若单粒子翻转测试系统的控制器在T3时间内收到被测微处理器输出的完成运行信号,转STEP234;否则K3值增1,转STEP232。T3时间是被测微处理器正常工作情况下运行一次数据搬移程序所花费的最长时间。
STEP234:单粒子翻转测试系统的控制器判断单粒子翻转测试系统的存储器内的存储空间MB的数据是否与MA的数据相同。若数据相同,则转STEP232;否则K3值增1,转STEP232。
STEP235:停止高能粒子辐照,计算被测微处理器运行数据搬移程序时的单粒子翻转截面C3,C3=K3/Q3。Q3为被测微处理器运行数据搬移程序时的高能粒子总注量。
第六步,计算被测微处理器整体的单粒子翻转截面C=C1+C2+C3。
采用本发明可以达到以下技术效果:
1)测试过程中被测微处理器运行应用程序,处于正常工作模式,可以真实准确地反映被测微处理器在正常工作时对单粒子翻转效应的敏感程度。
2)微处理器的主要内部部件包括内核、内部存储器和外设部件,上述技术方案针对这三种内部部件分别进行单粒子翻转截面的测试并求和,能够全面反映被测微处理器整体的单粒子翻转效应敏感程度。
附图说明
图1为本发明微处理器单粒子翻转截面的测试方法流程图。
图2为本发明微处理器单粒子翻转截面的测试方法中单粒子翻转测试系统和被测微处理器连接关系图。
图3为本发明微处理器单粒子翻转截面的测试方法中指令集遍历程序流程图。
图4为本发明微处理器单粒子翻转截面的测试方法中内部存储器循环遍历程序流程图。
图5为本发明微处理器单粒子翻转截面的测试方法中数据搬移程序流程图。
图6为本发明微处理器单粒子翻转截面的测试方法中被测微处理器运行指令集遍历程序时的单粒子翻转截面C1测试流程图。
图7为本发明微处理器单粒子翻转截面的测试方法中被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2测试流程图。
图8为本发明微处理器单粒子翻转截面的测试方法中被测微处理器运行数据搬移程序时的单粒子翻转截面C3测试流程图。
具体实施方式
为了使本发明的目的和技术方案更加清楚明白,以下结合具体实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本实施例按照本发明提出的微处理器单粒子翻转截面的测试方法,对某型号微处理器进行单粒子翻转截面测试。该微处理器包括一个内核、一个内部存储器,以及外部存储器总线接口EMIF、直接存储访问控制器DMA、多通道缓冲串口McBSP三个外设部件。
具体实施步骤如下:
第一步,构建单粒子翻转测试系统。单粒子翻转测试系统由作为控制器的FPGA和作为存储器的双端口SRAM组成。被测微处理器连接FPGA和双端口SRAM的一个端口,可以运行微处理器应用程序,也可以读写双端口SRAM数据和与FPGA双向通信;FPGA具有多个端口,分别连接被测微处理器和双端口SRAM的另一个端口,可以与被测微处理器双向通信和读取双端口SRAM数据,也可以检查其读取的数据,进行变量操作、逻辑判断和计算,统计单粒子翻转数量,还可以进行计时。双端口SRAM的两个端口分别连接被测微处理器和FPGA,被测微处理器和FPGA可同时读双端口SRAM的数据,被测微处理器还可以向双端口SRAM写数据。
第二步,根据被测微处理器的特点设计指令集遍历程序、内部存储器循环遍历程序和数据搬移程序。
指令集遍历程序的流程为:
STEP111:将“0”输出到FPGA的端口Port_A中。“0”表示指令集遍历程序未完成运行。
STEP112:运行被测微处理器的所有运算类指令,并将运算结果写入双端口SRAM内的一段存储空间MA1中。
STEP113:将“1”输出到FPGA的端口Port_A中。“1”表示指令集遍历程序完成运行。
内部存储器循环遍历程序的流程为:
STEP121:将被测微处理器的内部存储器初始化为全0,即将被测微处理器内部存储器的所有单元均写入0。将被测微处理器的任意一个内部寄存器命名为A,将A作为存储循环次数N的存储单元,并置A的值为0,表示此时N=0,将N写入双端口SRAM的一段存储空间MA2中。设置最大循环次数为10。
STEP122:将被测微处理器的内部存储器存储的全部数据输出到双端口SRAM的另一段存储空间MB2中,被测微处理器的内部存储器存储数据的地址与MB2的地址一一对应,MA2和MB2没有交集。
STEP123:操作A,使N的值增1,将N写入MA2,如果N不等于10,转STEP122;否则,结束内部存储器循环遍历程序。
数据搬移程序的流程为:
STEP131:将“0”输出到FPGA的端口Port_A中。“0”表示数据搬移程序未完成运行。将双端口SRAM内的一段存储空间MA3初始化为一种棋盘格数据样式,使MA3中的奇数地址位存储的数据为0,MA3中的偶数地址位存储的数据为1,例如地址100存储数据1,地址255存储数据0。
STEP132:将MA3中的数据按照如下顺序进行依次搬移,被测微处理器的EMIF将MA3中的全部数据读取并传递给被测微处理器的DMA,被测微处理器的DMA再将该数据传递到被测微处理器的McBSP,最后被测微处理器的McBSP将该数据输出到双端口SRAM的另一段存储空间MB3中。MA3和MB3没有交集。
STEP133:将“1”输出到FPGA的端口Port_A中。“1”表示数据搬移程序完成运行。
第三步,测试被测微处理器运行指令集遍历程序时的单粒子翻转截面,方法为:
STEP211:初始化第一软错误计数变量K1为0,用高能粒子辐照被测微处理器并开始统计总注量。
STEP212:如果高能粒子总注量达到107个粒子·cm-2,则转STEP215;否则转STEP213。
STEP213:被测微处理器开始运行指令集遍历程序,FPGA开始计时并反复查询端口Port_A的数据是否变成“1”。若在T1时间内端口A收到“1”,则转STEP214;若在T1时间内端口Port_A未收到“1”,则K1值增1,转STEP212。T1时间是被测微处理器在正常工作情况下运行一次指令集遍历程序所花费的最长时间。
STEP214:测试系统判断MA1存储的运行结果是否正确。若结果正确,则转STEP212。若结果不正确,则K1值增1,转STEP212。
STEP215:停止高能粒子辐照,计算被测微处理器运行指令集遍历程序时的单粒子翻转截面C1,C1=K1/107(cm2)。
第四步,测试被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面,方法为:
STEP221:初始化第二软错误计数变量K2为0,用高能粒子辐照被测微处理器并开始统计总注量。
STEP222:被测微处理器开始运行内部存储器循环遍历程序,FPGA读取MA2存储的循环次数N,初始化变量N1和N2,使N1=N,N2=N,清空错误地址列表,计时t复位并开始计时。
STEP223:如果高能粒子总注量达到107个粒子·cm-2,则转STEP227;否则转STEP224。
STEP224:FPGA检查MB2存储的全部数据是否正确。当新发现一位数据不正确且错误地址列表中不存在该数据的地址,则K2值增1,并将该数据的地址添加到错误地址列表。
STEP225:当t≤T2,转STEP223;当t>T2,FPGA读取MA2存储的循环次数N,使N2=N,转STEP226。T2是被测微处理器正常工作情况下运行一次STEP121、STEP122和STEP123所花费的最长时间。
STEP226:比较N1和N2。若N1等于N2,则表明被测微处理器发生软错误,K2值增1,停止内部存储器循环遍历程序的运行,转STEP222;若N1不等于N2,则使N1=N2,t复位并开始计时,转STEP223。
STEP227:停止高能粒子辐照,计算被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2,C2=K2/107(cm2)。
第五步,测试被测微处理器运行数据搬移程序时的单粒子翻转截面,方法为:
STEP231:初始化第三软错误计数变量K3为0,用高能粒子辐照被测微处理器。
STEP232:如果高能粒子总注量达到107个粒子·cm-2,则转STEP235;否则转STEP223。
STEP233:被测微处理器开始运行数据搬移程序,FPGA开始计时并反复查询端口Port_A的数据是否变成“1”。若在T1时间内端口A收到“1”,则转STEP234;若在T1时间内端口A未收到“1”,则K3值增1,转STEP232。T3时间是被测微处理器正常工作情况下运行一次数据搬移程序所花费的最长时间。
STEP234:FPGA判断存储空间MB存储的数据是否与MA存储的数据相同。若数据相同,则转STEP232。若数据不相同,则K3值增1,转STEP232。
STEP235:停止高能粒子辐照,计算被测微处理器运行数据搬移程序时的单粒子翻转截面C3,C3=K3/107(cm2)。
第六步,计算被测微处理器整体的单粒子翻转截面C=C1+C2+C3=(K1+K2+K3)/107(cm2)。
以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者同等替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (5)

1.微处理器单粒子翻转截面的测试方法,其特征在于,包括如下步骤:
第一步,构建单粒子翻转测试系统;单粒子翻转测试系统由控制器和存储器组成;被测微处理器连接控制器和存储器,被测微处理器中运行微处理器应用程序,读写存储器数据,并与控制器双向通信;控制器连接被测微处理器和存储器,与被测微处理器双向通信,读取存储器数据,检查其读取的数据,进行变量操作、逻辑判断和计算,统计单粒子翻转数量,并进行计时;存储器连接被测微处理器和控制器,被测微处理器和控制器可同时读存储器数据,被测微处理器还可以向存储器写数据;
第二步,根据被测微处理器的特点,设计指令集遍历程序、内部存储器循环遍历程序和数据搬移程序三种微处理器应用程序,设被测微处理器具有M个外设部件,记为第1外设部件、第2外设部件、……、第i外设部件、……、第M-1外设部件、第M外设部件,2≤i≤M-1,i、M均为自然数;
指令集遍历程序的原理是:微处理器的内核运行运算类指令,内核中因单粒子翻转效应产生的软错误会导致运算结果错误或不能完成运算,通过密集运行运算类指令并输出运算结果,检查输出结果是否正确就可以获取微处理器内核的软错误情况,进而计算单粒子翻转截面;指令集遍历程序的流程为:
STEP111:被测微处理器向单粒子翻转测试系统的控制器输出指令集遍历程序未完成运行信号;
STEP112:被测微处理器上运行被测微处理器的所有运算类指令,并将运算结果写入单粒子翻转测试系统的存储器中;
STEP113:被测微处理器向单粒子翻转测试系统的控制器输出指令集遍历程序完成运行信号;
内部存储器循环遍历程序的原理是:该程序循环输出微处理器内部存储器存储的所有数据,通过检查输出数据是否正确获取微处理器内部存储器的软错误情况,进而计算单粒子翻转截面;内部存储器循环遍历程序的流程为:
STEP121:被测微处理器的内部存储器初始化为一种数据组合样式,即对被测微处理器的内部存储器写入一种数据组合样式;将被测微处理器的任意一个内部寄存器命名为A,将A作为存储循环次数N的存储单元,并置A的值为0,表示此时N=0,被测微处理器向单粒子翻转测试系统的存储器输出N,设置最大循环次数;
STEP122:被测微处理器的内部存储器存储的全部数据输出到单粒子翻转测试系统的存储器中,被测微处理器的内部存储器存储数据的地址与其输出到单粒子翻转测试系统的存储器中的地址一一对应;
STEP123:操作A,使N的值增1,向单粒子翻转测试系统的存储器输出N,判断N是否达到最大循环次数,若未达到,则转STEP122;否则,结束内部存储器循环遍历程序;
数据搬移程序的原理是:微处理器的外设部件主要进行数据的输入输出,外设部件因单粒子翻转效应产生的软错误会导致输入输出结果错误或不能完成输入输出,通过将大量数据在各外设部件进行密集的输入输出搬移,检查搬移后的最终数据是否发生变化,就可以获取微处理器各外设部件的软错误情况,进而计算单粒子翻转截面;数据搬移程序的流程为:
STEP131:被测微处理器向单粒子翻转测试系统的控制器输出数据搬移程序未完成运行信号;将单粒子翻转测试系统的存储器内的一段存储空间MA初始化为一种数据组合样式;
STEP132:被测微处理器将MA中的数据搬移到单粒子翻转测试系统的存储器内的另一段存储空间MB中,MA和MB没有交集;
STEP133:被测微处理器向单粒子翻转测试系统的控制器输出数据搬移程序完成运行信号;
第三步,测试被测微处理器运行指令集遍历程序时的单粒子翻转截面C1;
第四步,测试被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2;
第五步,测试被测微处理器运行数据搬移程序时的单粒子翻转截面C3;
第六步,计算被测微处理器整体的单粒子翻转截面C=C1+C2+C3。
2.如权利要求1所述的微处理器单粒子翻转截面的测试方法,其特征在于,所述第三步测试被测微处理器运行指令集遍历程序时的单粒子翻转截面C1,具体流程如下:
STEP211:初始化第一软错误计数变量K1为0,用高能粒子辐照被测微处理器并开始统计总注量;
STEP212:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP215;否则转STEP213;
STEP213:被测微处理器开始运行指令集遍历程序,单粒子翻转测试系统的控制器开始计时并等待被测微处理器输出运行完成信号;若单粒子翻转测试系统的控制器在T1时间内收到被测微处理器输出的运行完成信号,转STEP214;否则K1值增1,转STEP212;T1时间是被测微处理器在正常工作情况下运行一次指令集遍历程序所花费的最长时间;
STEP214:单粒子翻转测试系统的控制器判断被测微处理器输出到单粒子翻转测试系统的存储器的运行结果是否正确;若结果正确,则转STEP212;否则K1值增1,转STEP212;
STEP215:停止高能粒子辐照,计算被测微处理器运行指令集遍历程序时的单粒子翻转截面C1,C1=K1/Q1;Q1为被测微处理器运行指令集遍历程序时的高能粒子总注量。
3.如权利要求1所述的微处理器单粒子翻转截面的测试方法,其特征在于,所述第四步测试被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2,具体流程如下:
STEP221:初始化第二软错误计数变量K2为0,用高能粒子辐照被测微处理器并开始统计总注量;
STEP222:被测微处理器开始运行内部存储器循环遍历程序,单粒子翻转测试系统的控制器读取单粒子翻转测试系统的存储器中被测微处理器输出的循环次数N;初始化变量N1和N2,使N1=N,N2=N,清空错误地址列表,计时t复位并开始计时;
STEP223:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP227;否则转STEP224;
STEP224:单粒子翻转测试系统的控制器检查单粒子翻转测试系统的存储器中被测微处理器输出的其内部存储器存储的全部数据是否正确;当新发现一位数据不正确且错误地址列表中不存在该数据的地址,则K2值增1,并将该数据的地址添加到错误地址列表;
STEP225:当t≤T2,转STEP223;当t>T2,单粒子翻转测试系统的控制器读取单粒子翻转测试系统的存储器中被测微处理器输出的循环次数N,使N2=N,转STEP226;T2是被测微处理器正常工作情况下运行一次STEP121、STEP122和STEP123所花费的最长时间;
STEP226:比较N1和N2;若N1等于N2,则表明被测微处理器发生软错误,K2值增1,停止内部存储器循环遍历程序的运行,转STEP222;若N1不等于N2,则使N1=N2,t复位并开始计时,转STEP223;
STEP227:停止高能粒子辐照,计算被测微处理器运行内部存储器循环遍历程序时的单粒子翻转截面C2,C2=K2/Q2;Q2为被测微处理器运行内部存储器循环遍历程序时的高能粒子总注量。
4.如权利要求1所述的微处理器单粒子翻转截面的测试方法,其特征在于,所述第五步测试被测微处理器运行数据搬移程序时的单粒子翻转截面C3,具体流程如下:
STEP231:初始化第三软错误计数变量K3为0,用高能粒子辐照被测微处理器并开始统计总注量;
STEP232:如果高能粒子总注量达到预定值,预定值满足QJ10005-2008中对高能粒子总注量的要求,则转STEP235;否则转STEP233;
STEP233:被测微处理器开始运行数据搬移程序,单粒子翻转测试系统的控制器开始计时并等待被测微处理器输出数据搬移程序完成运行信号;若单粒子翻转测试系统的控制器在T3时间内收到被测微处理器输出的完成运行信号,转STEP234;否则K3值增1,转STEP232;T3时间是被测微处理器正常工作情况下运行一次数据搬移程序所花费的最长时间;
STEP234:单粒子翻转测试系统的控制器判断单粒子翻转测试系统的存储器内的存储空间MB的数据是否与MA的数据相同;若数据相同,则转STEP232;否则K3值增1,转STEP232;
STEP235:停止高能粒子辐照,计算被测微处理器运行数据搬移程序时的单粒子翻转截面C3,C3=K3/Q3;Q3为被测微处理器运行数据搬移程序时的高能粒子总注量。
5.如权利要求1所述的微处理器单粒子翻转截面的测试方法,其特征在于,所述STEP132被测微处理器将MA中的数据搬移到单粒子翻转测试系统的存储器内的另一段存储空间MB中,方法是:被测微处理器的第1外设部件输入MA中的全部数据,并将全部数据输出到被测微处理器的第2外设部件的输入端口;第一外设部件是被测微处理器M个外设部件中输入端口连接到单粒子翻转测试系统的存储器的任意外设部件,第二外设部件是被测微处理器M个外设部件中输入端口连接到第一外设部件输出端口的任意外设部件;第i外设部件输入第i-1外设部件输出的全部数据,并将全部数据输出到第i+1外设部件的输入端口;第M外设部件输入第M-1外设部件输出的全部数据,并将全部数据输出到存储空间MB中;第M外设部件的输出端口须连接到测试系统的存储空间。
CN201810193529.8A 2018-03-09 2018-03-09 微处理器单粒子翻转截面的测试方法 Active CN108491296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810193529.8A CN108491296B (zh) 2018-03-09 2018-03-09 微处理器单粒子翻转截面的测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810193529.8A CN108491296B (zh) 2018-03-09 2018-03-09 微处理器单粒子翻转截面的测试方法

Publications (2)

Publication Number Publication Date
CN108491296A CN108491296A (zh) 2018-09-04
CN108491296B true CN108491296B (zh) 2019-04-05

Family

ID=63338370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810193529.8A Active CN108491296B (zh) 2018-03-09 2018-03-09 微处理器单粒子翻转截面的测试方法

Country Status (1)

Country Link
CN (1) CN108491296B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111262666B (zh) * 2020-02-12 2022-10-21 中国人民解放军国防科技大学 一种serdes单粒子功能中断截面的测试方法及测试系统
CN112767990B (zh) * 2021-02-05 2022-09-30 浙江威固信息技术有限责任公司 一种固态硬盘单粒子翻转截面的测试方法
CN113032222B (zh) * 2021-04-13 2022-10-28 浙江威固信息技术有限责任公司 一种抗单粒子功能中断的固态硬盘

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984630A (zh) * 2014-05-27 2014-08-13 中国科学院空间科学与应用研究中心 一种基于at697处理器的单粒子翻转故障处理方法
CN105653771A (zh) * 2015-12-25 2016-06-08 北京时代民芯科技有限公司 一种通过逻辑设计提高芯片抗单粒子翻转能力的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499308B2 (en) * 2007-03-21 2009-03-03 International Business Machines Corporation Programmable heavy-ion sensing device for accelerated DRAM soft error detection
CN103198868A (zh) * 2013-04-16 2013-07-10 西北核技术研究所 一种用于单粒子翻转的故障模拟系统及分析方法
CN103700396B (zh) * 2013-12-03 2016-06-01 中国航天科技集团公司第九研究院第七七一研究所 一种面向sram的抗seu错误累积的控制器及方法
CN104991859B (zh) * 2015-06-23 2017-08-25 北京时代民芯科技有限公司 基于测试指令序列的单粒子敏感器件的敏感性预估方法
CN106405385B (zh) * 2016-08-31 2019-03-05 西北核技术研究所 基于触发器链的逻辑电路单粒子效应测试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103984630A (zh) * 2014-05-27 2014-08-13 中国科学院空间科学与应用研究中心 一种基于at697处理器的单粒子翻转故障处理方法
CN105653771A (zh) * 2015-12-25 2016-06-08 北京时代民芯科技有限公司 一种通过逻辑设计提高芯片抗单粒子翻转能力的方法

Also Published As

Publication number Publication date
CN108491296A (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
US11948652B2 (en) Formal verification tool to verify hardware design of memory unit
CN108491296B (zh) 微处理器单粒子翻转截面的测试方法
CN105760250B (zh) 一种具有码流纠检错功能的单粒子加固fpga配置电路
US10083262B2 (en) Deadlock detection in hardware design using assertion based verification
Civera et al. Exploiting circuit emulation for fast hardness evaluation
CN105185413B (zh) 用于片上存储管理单元容错结构的自动验证平台与方法
CN102262212B (zh) 一种检测数字专用集成电路中触发器单粒子效应的系统
CN103984630B (zh) 一种基于at697处理器的单粒子翻转故障处理方法
CN109036493A (zh) 一种具有检错纠错机制的NAND Flash控制器
CN103021469A (zh) 一种存储器电路的通用单粒子效应检测方法
US20150377961A1 (en) System and method for testing a logic-based processing device
CN106484581A (zh) 空间辐射环境下可编程soc器件单粒子翻转检测系统及方法
CN112015604B (zh) 一种基于Zynq FPGA的自动化可靠性评估系统及评估方法
CN110347595B (zh) 一种fpga内部资源甄别与定位方法及系统
CN110082672A (zh) 一种芯片内逻辑模型的测试方法及装置
Daveau et al. An industrial fault injection platform for soft-error dependability analysis and hardening of complex system-on-a-chip
JP6045351B2 (ja) 検証装置及び検証方法
US20120124440A1 (en) Lbist diagnostic scheme
US7231619B1 (en) Extended model checking hardware verification
CN111079356B (zh) 一种单粒子加固有效性系统级验证方法
CN104636509A (zh) 门级仿真中验证时序问题的方法
Cheng et al. Radiation-hardened test design for aerospace SoC
US10319459B1 (en) Customizable built-in self-test testplans for memory units
US3805233A (en) Error checking method and apparatus for group of control logic units
CN105117314B (zh) 一种Memory模块的验证方法及系统

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