问答题 阅读以下关于某嵌入式系统BIT的说明,回答下列问题。
[说明]
某公司负责研制一个嵌入式计算机系统,如图1所示。该系统以PowerPC处理器为核心,通过AD进行实时数据采集,并将采集来的数据进行预处理后,通过RS422总线发送给后端计算中心。
问答题 王工负责对该系统进行故障模式分析,识别出了该系统可能出现的故障模式,如表1所示。请将属于CPU和RAM的故障找出来。
表1 某嵌入式系统的故障列表
序 号 故障列表
1 存储单元无法访问
2 指令译码故障
3 发送寄存器有固定位错误
4 浮点处理单元故障
5 不可编程与阵列故障
6 存储单元一直为0或1
7 逻辑物理地址转换错
8 输入电压超出精度范围
9 数据校验错
【正确答案】
【答案解析】CPU故障:2,4,7
RAM故障:1,6,9 本题考查嵌入式系统中为提高产品的安全性和可靠性,广泛采用的机内自测试(Built In Test, BIT)技术的相关知识。
产品的可测试性与安全性和可靠性具有密切的关系,在制定故障诊断方案、分配测试性需求时,都以故障模式及影响分析(FMEA)的结果为基础。故障是指产品已处于一种不合格的状态,是对产品正确状态的任何一种可识别的偏离,而这种偏离对特定使用者要求来说是不合格的,已经不能完成其规定的功能。
对于电路系统来说,它的元器件由于一些物理或化学上的因素,使得其元件违反技术规定,无法正常工作时,称元件存在着缺陷,如元件的损坏、虚焊、短路、开路、漏电、老化等。有缺陷的元件、信号线断路、信号线对电源线或地线短路、信号线之间短路或延迟时间太长以及外界电磁干扰等因素都会造成电路故障,并且违背设计原则也能引起电路故障。
CPU常见故障类型有:
1.寄存器译码功能故障;
2.数据存储模块故障;
3.数据传输模块故障,是指在CPU内部各条传输信号线上发生的故障,在执行传输指令时,指令传输通道中某条信号线发生固定“0”或固定“1”故障;
4.数据处理模块故障,包括:
a)整型和浮点型的加法、减法、乘法、除法操作发生故障,造成算术运算结果出错;
b)进位标志、辅助进位标志无法正常复位和置位;
c)或、与、非等逻辑操作发生故障,造成逻辑运算结果出错;
d)布尔操作发生故障,造成“位”操作结果出错。
5.指令译码和指令序列的译码故障;
6.Cache故障;
7.MMU单元中逻辑物理地址转换错。
RAM的常见故障类型有:
1.固定故障(stuck-at faults),存储单元i的值固定为“0”或“1”;
2.跳变故障(transition faults),存储单元i在没有受到另外一个单元的组合故障的影响或者是存储单元i本身的写操作,存储单元直接发生了跳变;
3.组合故障(coupling faults),由于存储单元i中的写操作导致存储单元j中的值的变化;
4.地址译码故障(Address decoder fauks),用来选择存储单元的译码器发生了故障;
5.数据保持故障(dataretention faults),指的是存储单元在一定的时间内不能保持其逻辑值不变。
问答题 王工设计了三种BIT测试程序,分别是上电BIT、周期BIT、维护BIT。运行流程如图2所示。
【正确答案】
【答案解析】(1)周期BIT
(2)维护BIT
(3)上电BIT BIT根据运行的时机和目的不同,分为多种类型,如上电BIT、周期BIT、维护BIT。
上电BIT在系统加电引导过程中完成,确保了待测设备单元在使用前都被测试。
周期BIT负责检测和隔离系统运行中的故障和异常,并记录了故障的发生与持续时间。它要求在任务期间执行但不影响和破坏任务的正常运行。
维护BIT在任务停止的时候被执行,具有最完备的测试用例集合,可用于某些疑难故障的检测和隔离。
问答题 李工负责设计CPU单元的BIT测试算法,通过对每组指令分别设计一组测试用例,定义不同的操作数、操作码和预期值,在指令运行后比较结果与预期值。由于该系统选用的处理器集成了多级Cache(高速缓存),并且指令缓存和数据缓存是分开的,执行指令功能测试前需要刷新指令Cache,以保证与内存中的测试代码一致。每个测试项的测试结果正确为0,故障为1。
以32位字比较指令cmpw测试为例,cmpw将寄存器rA和rB内数据比较的结果(大于、小于、等于)放入条件寄存器crx,其操作码为0x7C000000,测试用例数据如表2所示。
表2 字比较指令cmpw测试用例数据
cmpw 用例输入 预期输出
操作码 操作数Ra 操作数rB
用例1 Ox7C000000 123 123 0x02
用例2 0x7C000000 123 133 0x08
用例3 0x7C000000 123 113 0x04
cmpw指令功能测试的算法流程示意如图3所示。请补全流程图3中的执行操作。
【正确答案】
【答案解析】(1)刷新指令Cache(高速缓存)
(2)将res与测试用例表中的预期结果进行比较
(3)测试结果ret=1 根据cmpw指令功能测试的算法流程示意图,结合题干中的描述信息,可以得出该测试算法的流程如下:
a)初始化测试结果为正确;
b)从测试用例表中获取一个测试用例数据;
c)根据测试用例动态生成测试过程汇编代码;
d)由于该系统选用的处理器集成了多级Cache(高速缓存),并且指令缓存和数据缓存是分开的,执行指令功能测试前需要刷新指令Cache,以保证与内存中的测试代码一致;
e)执行测试过程,比较测试用例中的两个操作数,并返回比较结果;
f)将测试用例执行的结果与测试用例表中的预期结果进行比较,判断是否相等;
g)如果相等,继续从测试用例表中获取下一个测试用例数据,进行执行,直至全部执行完所有测试用例;
h)如果不相等,则置测试结果为故障;
i)返回测试结果。