首页> 中国专利> 微处理器单粒子翻转截面的测试方法

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

摘要

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

著录项

  • 公开/公告号CN108491296A

    专利类型发明专利

  • 公开/公告日2018-09-04

    原文格式PDF

  • 申请/专利权人 中国人民解放军国防科技大学;

    申请/专利号CN201810193529.8

  • 申请日2018-03-09

  • 分类号

  • 代理机构北京知联天下知识产权代理事务所(普通合伙);

  • 代理人李学康

  • 地址 410073 湖南省长沙市开福区砚瓦池正街47号

  • 入库时间 2023-06-19 06:24:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-05

    授权

    授权

  • 2018-09-28

    实质审查的生效 IPC(主分类):G06F11/22 申请日:20180309

    实质审查的生效

  • 2018-09-04

    公开

    公开

说明书

技术领域

本发明涉及单粒子效应测试领域,特别涉及一种微处理器单粒子翻转截面的测试方法。

背景技术

现代微处理器凭借其集成度高、运算能力强、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 Buffered Serial 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)。

以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者同等替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号