手机版
您的当前位置: 明翰范文网 > 范文大全 > 公文范文 > COTS,处理器单粒子效应检测系统设计

COTS,处理器单粒子效应检测系统设计

来源:网友投稿 时间:2023-06-26 09:50:05 推荐访问: 处理器 检测系统 粒子

胡鑫犇,王 通,刘书萌,许志宏,杨凯文,王新锋,焦运良,张洪印

(1. 中电长城圣非凡信息系统有限公司,北京 102209;

2. 北京空间飞行器总体设计部,北京 100094)

空间单个高能粒子入射到半导体器件或集成电路芯片时可能会产生单粒子效应[1]。星载计算机作为空间飞行器的核心部件之一,具有数据处理、通信联络、控制调配各载荷分系统的作用[2]。其主控制器即中央处理器(CPU)为对抗空间单粒子效应影响多选用宇航级抗辐射CPU[3]。对CPU 而言,常见的单粒子效应有单粒子锁定(SEL)、单粒子翻转(SEU)及单粒子功能中断(SEFI)[4],引发的结果包括CPU 运算错误、程序跑飞甚至器件烧毁。因此,单粒子效应是影响空间飞行器可靠性的重要因素之一。

随着低轨通信卫星互联网星座的部署,对星载计算机的CPU 需求量将大幅度增加[5]。例如,美国太空探索技术公司(SpaceX)的星链(StarLink)计划预期部署4.2 万颗低轨通信卫星,考虑到星载计算机的冗余备份,对CPU 的需求数量将超过数十万[6-7]。然而,目前宇航级CPU 价格昂贵,星载计算机的主控制器若全部采用宇航级CPU,硬件成本将十分高昂。与宇航级CPU 相比,商用现货(COTS)CPU 性能高、价格低,将其用作负责数据处理的星载计算机主控制器不仅能够降低硬件成本,还可以大幅度提升计算处理能力[8],但应用前必须通过地面单粒子效应试验验证[9]。

COTS CPU 多为通用型处理器,具有制程先进、集成度高、功能复杂、接口丰富等特点,针对此类CPU 的单粒子效应试验检测系统需要根据其特点专门定制。为此,本文从单粒子效应试验测试项、试验电路板硬件设计、测试程序设计以及试验流程4 方面考虑,设计了一套针对高性能COTS CPU的单粒子效应试验检测系统。

在针对CPU 的单粒子效应试验过程中,SEL表现为CPU 某路或多路电流瞬间增大,超出器件运行时的正常值范围;
SEU 表现为CPU 片内存储器、寄存器某位或多位值发生翻转;
SEFI 表现为CPU 外设接口功能异常或指令运算错误[10]。COTS CPU 的片内存储器、寄存器资源万倍于宇航级CPU,并且接口功能更加丰富,因此需要选定合适的测试项,以保证在单粒子效应试验过程中检测系统能够对COTS CPU 的抗辐射特性进行全面、准确的测试。本测试方案选定的试验测试项如下:

1)SEL 测试,用于验证CPU 在辐照过程中是否会出现某路或多路电流突然超出正常值范围的情况。当CPU 发生SEL 时,需要进行硬件复位操作,并观察SEL 现象是否消除;
若电流依旧超出正常值范围,需立即切断试验电路板供电,防止CPU被烧毁,并记录相应数据。

2)存储器和寄存器翻转测试,用于检验单粒子效应试验过程中CPU 内部存储器和寄存器内的数值是否会因为辐照而产生翻转。当翻转发生后,需记录相应的粒子能量、翻转存储器地址、翻转位、翻转寄存器所在链和翻转次数等数据,供试验后进行分析。

3)典型指令集测试,用于检验CPU 在单粒子效应试验过程中是否能够正确执行给定指令。当未正确执行指令时,需记录出错指令以及错误执行的次数。

4)接口功能测试,用于检验单粒子效应试验过程中CPU 接口功能是否会因为辐照而产生异常。当接口功能异常时,需记录具体的接口以及功能异常的次数。

单粒子效应试验检测系统需要满足第1 章所述各试验测试项的要求,整个系统通常包含以下部分:

1)搭载被测CPU 及辅助电路的试验电路板;

2)从外部直接访问CPU 片内存储器和寄存器的工具;

3)对被测CPU 各路供电电流进行监控的工具;

4)进行测试指令下发并显示各测试项信息的上位机界面;

5)测试程序。

如图1 所示,本方案设计的单粒子效应试验检测系统由试验电路板、JTAG 工具板、多路电流采集器、上位机监控界面、PC 机(分别位于粒子加速器室及监控大厅)和测试程序构成。试验电路板位于粒子加速器室内,通过串口与同样位于粒子加速器室的PC 机进行通信。JTAG 工具板通过SJTAG接口与被测CPU 相连,用于直接对CPU 片内的存储器和寄存器进行访问,并通过串口与粒子加速器室内的PC 机通信。多路电流采集器用于获取被测CPU 的各路电流信息,并通过串口报送给粒子加速器室内的PC 机。上位机监控界面程序运行在粒子加速器室内的PC 机上,实时显示测试信息,并向检测系统发送测试命令。位于监控大厅的PC 机通过以太网远程登录粒子加速器室内的PC 机,供试验现场人员监控单粒子效应试验的整体运行情况。

图1 单粒子效应试验检测系统构成示意Fig. 1 Schematic diagram of the SEE detection system

图2 为试验电路板设计,包含被测CPU 及其主要外围电路、CPLD 配置管理单元和供电模块。被测CPU 外部接口包括但不限于PCIE、LMU、CAN、QSPI、SPI、UART、GPIO、GMAC、I2C。其中,PCIE 接口通过SATA 控制器挂载一块SATA硬盘,LMU 接口挂载总容量8 GByte 的DDR 器件,其余接口均通过CPLD 在试验电路板上进行回环测试。CPLD 负责试验电路板的配置管理,包括控制CPU 上/下电,对CPU 外设接口进行回环测试,向外引出调试串口和SJTAG 接口等。试验电路板采用12 V 外部供电,通过LDO 转换为5 路不同电压(5 V、3.3 V、2.5 V、1.8 V、0.8 V)的电源,向板内各元器件供电。电流采集器串接在各路电源的输出端,用于监控电源电流,并通过串口将电流信息报送给PC 机监控界面。

图2 试验电路板设计示意Fig. 2 Schematic diagram of the test circuit board

图3 为试验电路板实物。单粒子效应试验过程中高能粒子束流有一定的范围,故在绘制电路板时其他外围元器件应与被测CPU 保持一定距离,以免受到高能带电粒子影响,导致测试结果不准确。单粒子效应试验测试时须对被测CPU 进行开帽,直接裸露硅片;
对于倒装器件,需要将衬底减薄到一定程度,以保证试验效果。

图3 试验电路板Fig. 3 The test circuit board

单粒子效应试验测试程序包含5 部分——存储器翻转测试程序、寄存器翻转测试程序、指令集测试程序、接口功能测试程序和上位机监控界面。CPU 的存储器、寄存器资源需要通过芯片厂商预留的SJTAG 接口才能直接访问,因此存储器和寄存器测试程序运行在JTAG 工具板上。指令集和接口功能测试程序运行在被测CPU 上。测试结果均通过串口报送给上位机监控界面并实时显示。

4.1 存储器翻转测试程序

如图4 所示,在存储器单粒子翻转测试过程中,须将被测CPU 配置成Mbist 测试模式。首先指定被测CPU 片内存储器地址,随后将预设数据(通常为“0x5555aaaa”)通过SJTAG 接口写入指定地址对应的CPU 片内存储器中,再将写入数据与读出数据进行比较。如果写入与读出数据不相等,则认为发生SEU 事件,并记录发生翻转的存储器地址和数据。测试地址空间从存储器基地址逐渐递增,待测试地址覆盖整个存储器地址空间后,存储器测试轮数加1。

图4 存储器翻转测试流程Fig. 4 Flow chart for memory flip test

4.2 寄存器翻转测试程序

如图5 所示,在寄存器单粒子翻转测试过程中,须将被测CPU 配置成移位寄存器链模式。

图5 寄存器翻转测试流程Fig. 5 Flow chart for register flip test

先通过链扫方式向寄存器链推入预设值(通常为“0x5555aaaa”),之后将寄存器链的值读出并与预设值比较,如果写入与读出数据相等,则认为测试通过;
如果不相等,则认为某些寄存器产生翻转,并记录发生翻转的寄存器链和数据。待测试覆盖被测CPU 所有的寄存器链后,寄存器测试轮数加 1。

4.3 指令集测试程序

在指令集测试中,须不断对特定数据进行运算,在每次运算结束后都将运算结果与预期的正确结果进行比较,若两者相等,则认为此次指令运算正确;
若不相等,则认为此次指令运算出现错误,并记录运算错误的指令。通常CPU 架构不同,其指令集所包含的指令数量也不同,包括但不限于加、减、乘、除、移位、跳转、比较、浮点运算、压栈和出栈等。以浮点运算指令为例,其测试流程如图6 所示。

图6 浮点运算指令集测试程序流程Fig. 6 Flow chart for the instruction set test of floating point arithmetic

4.4 接口功能测试程序

PCIE 接口下挂SATA 硬盘,在试验过程中须反复执行向硬盘指定地址范围内写入预设数据,然后读出并与预设数据比较的操作。如果出现写入与读出数据不等的情况,则认为发生1 次PCIE 接口功能中断错误。

LMU 接口挂载总容量8 GByte 的DDR 器件,在试验过程中须反复执行向DDR 指定地址范围写入预设数据,然后读出并与预设数据比较的操作。如果出现写入与读出数据不等的情况,则认为发生1 次LMU 接口功能中断错误。

CAN、 QSPI、 SPI、 UART、 GPIO、 GMAC、I2C 均为通信接口,测试方式相同。以CAN 接口为例,在试验过程中,硬件连接上将CAN 接口进行回环,循环地使CAN 0 发送预设数据,CAN 1 接收数据,并将发送和接收的数据进行比较:如果两者相等,则认为CAN 接口功能正常;
如果不相等,则认为发生1 次CAN 接口功能中断错误。

接口功能测试程序对外设接口依次进行测试,当完成所有外设接口的功能测试后,接口测试轮数加1。

4.5 上位机监控界面

单粒子效应试验中,由上位机下发各测试项的测试指令,并显示测试信息。上位机监控界面如图7所示。

图7 上位机监控界面Fig. 7 Monitoring interface of the upper computer

试验电路板、JTAG 工具板与上位机之间采用预先设定的帧格式通过串口进行通信,波特率为115 200 bit/s,数据每0.1 s 刷新1 次。上位机对接收到的数据帧进行解析,并将数据显示出来。

需要强调的是,对于存储器和寄存器测试,由于COTS CPU 的片内存储器、寄存器数量万倍于宇航级CPU,且SJTAG 接口速率有限,完成1 轮存储器、寄存器测试的时间相对较长,因此无法通过其测试轮数信息判断存储器、寄存器测试是否正确执行。本方案在上位机监控界面中增加了存储器、寄存器测试状态指示信息:当测试程序正常运行时,该指示信息会呈现0、1 交替跳变的状态。

试验流程是1 个或多个试验测试项的集合,需要将上述所设计的测试项全部涵盖,同时要尽可能节省测试时间,能够同步进行的测试项要并行开展。本文将COTS CPU 的单粒子效应试验流程划分为SEL 测试、SEU 测试和SEFI 测试3 部分。

SEL 测试项只涉及监控被测CPU 各路电源电流,因此可与其他2 项测试同步进行。SEU 测试针对CPU 片内存储器和寄存器,包含存储器单粒子翻转、寄存器单粒子翻转测试项。SEFI 测试针对CPU 各外设接口功能和指令运算功能,包含典型指令集测试、接口功能测试项。需要强调的是,当通过SJTAG 链路直接访问CPU 内部存储器、寄存器时,会导致CPU 功能异常,故SEU 和SEFI 测试需要分别进行。

SEU 测试流程如图8 所示,启动JTAG 工具板中的存储器/寄存器测试程序后,打开上位机监控界面查看测试程序是否运行正常,之后开始进行重离子轰击,并通过上位机界面监控被测CPU 的存储器、寄存器是否发生翻转,通过电流监控软件监测被测CPU 各路电流是否正常,当发生SEL 或SEU 事件后,记录现象并保存数据,供试验结束后进行分析。

图8 SEU 测试流程Fig. 8 Flow chart for SEU test

SEFI 测试流程如图9 所示,启动接口、指令集功能测试程序后,打开上位机监控界面查看测试程序是否运行正常,之后的测试步骤与SEU 测试流程一致。

图9 SEFI 测试流程Fig. 9 Flow chart for SEFI test

采用某国产ARM 架构高性能COTS CPU 作为被测CPU,根据上述方案并结合被测CPU 实际硬件参数设计试验电路板、编写相应测试程序。通过故障注入的方式,验证单粒子效应试验检测系统是否能够检测到被测CPU 发生单粒子效应,以及所检测出的单粒子翻转和单粒子功能中断次数是否准确。

6.1 存储器、寄存器翻转测试故障注入验证

对于存储器翻转测试故障注入验证,首先向被测CPU 片内存储器全部地址空间写入预设数据0x5555aaaa;
再随机向存储器地址空间范围内的20 个地址写入数据0x4555aaaa,人为造成1 位数据翻转;
最后将存储器内数据读出并与预设数据进行比较,此时上位机监控界面显示存储器单粒子翻转次数为20(见图10),表明测试系统在该测试轮中准确检测出存储器翻转故障。

图10 存储器翻转测试故障注入验证结果Fig. 10 Fault injection verification results in memory flip test

寄存器翻转测试故障注入验证除了故障注入目标为CPU 片内寄存器外,其余操作与存储器翻转测试故障注入验证一致,上位机监控界面显示的结果(见图11)同样表明测试系统在该测试轮中准确检测出寄存器翻转故障。

图11 寄存器翻转测试故障注入验证结果Fig. 11 Fault injection verification results in register flip test

反复进行上述操作,结果表明该测试系统能够准确检测出CPU 的存储器、寄存器是否发生单粒子翻转及发生次数。

6.2 典型指令集测试故障注入验证

以浮点运算指令为例,通过GDB 单步调试的方式运行测试程序。在程序执行完浮点运算指令后、执行运算结果和预期结果比较代码之前,对保存浮点运算指令结果的变量进行修改,人为注入1 次浮点运算指令故障,此时上位机监控界面显示数据处理指令错误执行次数为1(见图12),准确检测出该注入故障。

图12 典型指令集测试故障注入验证结果Fig. 12 Fault injection verification results in typical instruction set test

其他指令均采用相同方式进行故障注入验证,结果表明该测试系统能够准确检测出被测CPU 指令运算是否发生单粒子效应及发生次数。

6.3 接口功能测试故障注入验证

对于PCIE 接口,在测试过程中随机向SSD 指定地址范围写入错误数据。对于LMU 接口,在测试过程中随机向DDR 指定地址范围写入错误数据。对于其他外设接口,由于采用的是回环测试方法,可以将其硬件通路的某一点进行接地处理,人为制造故障。此时上位机监控界面显示各接口功能异常次数不断上涨(见图13);
当停止故障注入后,上位机监控界面显示接口测试轮数继续上涨,而各接口功能异常次数不再增加。这表明该测试系统能够准确检测出被测CPU 各外设接口功能是否发生异常。

图13 接口功能测试故障注入验证结果Fig. 13 Fault injection verification results in interface function test

本文从确定测试项、试验电路板硬件设计、测试程序设计和试验流程4 方面考虑,设计了一套COTS CPU 地面单粒子效应试验检测系统;
采用某国产ARM 架构COTS CPU 作为被试样品,根据所提出方案和CPU 实际硬件参数设计试验电路板、编写相应测试程序,并通过故障注入的方式进行验证。结果显示,该检测系统能够准确检测出被测CPU是否发生单粒子效应及发生次数,为后续进行单粒子效应试验提供可靠的测试系统支撑。

其他不同架构、不同型号的COTS CPU 均可参照本文所提出的方案,结合CPU 实际硬件参数设计具有针对性的地面单粒子效应试验检测系统。

猜你喜欢电路板存储器寄存器静态随机存储器在轨自检算法北京航空航天大学学报(2021年6期)2021-07-20基于模糊神经网络的电路板故障诊断方法研究通信电源技术(2020年19期)2021-01-23Lite寄存器模型的设计与实现计算机应用(2020年5期)2020-06-07二进制翻译中动静结合的寄存器分配优化方法计算机研究与发展(2019年4期)2019-04-18智能燃气表主控电路板仿真检测技术煤气与热力(2019年1期)2019-02-14移位寄存器及算术运算应用电子技术与软件工程(2018年1期)2018-03-2296 芯插接电路板控制系统的故障设置装置设计电子制作(2017年23期)2017-02-02电路板维修中的问题故障与应对策略科学中国人(2015年17期)2015-01-28存储器——安格尔(墨西哥)▲环球时报(2014-06-18)2014-06-18Lx5280模拟器移植设计及实施科技视界(2011年5期)2011-08-22

明翰范文网 www.tealighting.com

Copyright © 2016-2024 . 明翰范文网 版权所有

Powered by 明翰范文网 © All Rights Reserved. 备案号:浙ICP备16031184号-2

Top