一种内存故障测试的方法及系统技术方案

技术编号:3083127 阅读:189 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种内存故障测试的方法,其是通过在被测试内存中选取至少三个位宽度与该内存数据总线的位宽度相同的内存地址单元,并对所选取的每个内存地址单元写入测试向量及读取相对应的测试读回值向量以及对该测试向量和测试读回值向量进行比较分析,来判断被测试内存的数据总线是否存在故障。本发明专利技术还公开了一种在嵌入式通信设备系统中进行内存故障测试的系统。通过本发明专利技术可以保证在进行嵌入式通信设备系统中内存故障测试时,其数据总线故障测试结果的真实性和准确性。

【技术实现步骤摘要】

本专利技术涉及内存测试领域,尤其涉及在嵌入式通信设备系统中进行内存故障测试的方法及系统
技术介绍
如图1所示在嵌入式通信设备系统中,处理器、存储器、启动芯片(bootrom)以及外围I/0(输入/输出)设备构成了一个基本的系统。在系统的设计以及制造过程中,需要对组成系统的各个器件之间的互连情况以及器件本身的可靠性进行测试以诊断硬件系统的故障。随机存取存储器(Random-Access Memory,RAM)所存在的故障类型主要有两大类外围互连故障和芯片内部故障。其中外围互连的故障可分为数据总线的故障、地址总线的故障以及控制总线的故障。如果系统存在控制总线的故障,那么存储器基本无法正常工作,所以在测试时,控制总线不直接测试。在系统已经建立的情况下,在对RAM进行故障诊断的时,RAM的数据总线故障、地址总线故障、芯片内部故障等存储器故障对外表现在某些特定情况下是相互干扰的,既是在对单一个故障诊断的时候,其他的可能的故障会对当前进行的故障判断造成诊断信息的失真和不充分。因此,在对RAM进行测试以及诊断的过程中,必须保证进行某一项类型(数据总线、地址总线、芯片内部测试中的任一项)的测试的时候排除其他项也可能存在的故障所造成的干扰。现有技术中,对嵌入式设备系统的内存测试先在bootrom芯片中获取测试程序并执行该测试程序对内存中一段指定空间的数据总线和地址总线以及内存内部单元故障的测试,保证无误之后,系统把测试程序搬移到已经测试过的内存空间,处理器此时可以从这段测试过的保证无误的内存空间上获取测试程序来完成对存储器的进一步测试。在系统执行bootrom芯片内的测试程序对数据总线进行测试的时候,系统通过测试程序设置了测试的内存空间段的起始地址、测试的地址范围、数据总线的宽度、测试写入的数据,同时指定了检测到故障时候存储当前写入数值的全局变量,读取当前写入位置空间的实际数值的全局变量。在系统对内存进行故障检测的时候,借助写入值和回读值的不同来判断数据总线的故障情况。在对嵌入式设备系统的内存进行测试的时候,先从数据总线开始测试,只有保证数据总线没有故障的前提下,再对地址总线以及内存内部单元的测试的时候的数据操作的正确性才能得到保障。基本的测试流程示意图如图2所示。对于要检测的目标系统,系统的数据总线宽度为N,对应的总线向量为{a0,a1,a2,...,ai,...,an-2,an-1},元素ai所对应N条数据总线中的第i+1根。数据总线的故障有固定逻辑故障、固定开路故障、桥接短路故障,这些故障在程序进行数据操作时候都等价为固定逻辑1或者固定逻辑0。假设内存芯片和控制它的控制器件所连接的地址总线、数据总线以及控制总线中,仅仅有数据总线有故障,在这个情况下,对数据总线的测试方法仅仅需要先判断数据总线是否存在故障,如果有故障,那么进行故障类型的诊断,如果没有故障,完成对数据总线的测试。具体步骤如下步骤1,通过执行对一个地址写入全0(或者全1),然后读回来,与写入值比较读回来的数值是否有不为0(或者不为1),如果不为0(或者不为1),则判定该内存芯片的数据总线存在故障;步骤2、按照与步骤1相同的方式写入相反的逻辑数值(即步骤1中如果写入全0,步骤2中就写如全1;步骤一中写入的为全1,步骤2中就写入全0),然后读回来,进一步判断数据总线是否有故障。通过以上两个步骤基本上可以判断数据总线是否存在故障,如果无故障,则继续进行其他测试任务;如果有被判断为数据总线有故障,则可进一步确定数据总线的故障情况。在除了有数据总线故障外没有其他两个故障的假设成立的情况下,若写入测试向量{00,01,02,...,0i,...0n-2,0n-1}时读回来获得的数据向量如果为{00,01,12,03,...,0i,...0n-2,1n-1},那么则可以判定有故障的数据总线为第3根、第n根;在对总线写入测试向量{10,11,12,...,1i,...1n-2,1n-1}时候,如果对写入地址所读回来的向量为{10,01,12,...,0j-1,...,0m-1,...1n-2,1n-1},那么则可以进一步判定数据总线中有故障的数据总线还包括第2根、第j根以及第m根。综合所述两个步骤中对测试向量和读回来的向量的比较分析可判定被测试数据总线有故障的数据总线包括第2根、第3根、第j根、第m根以及第n根。利用上述测试方法测试数据总线的故障情况必须是在保证被测试的内存无内存地址总线故障或者内存内部单元故障存在的前提下,测试的结果才能准确的反应被测试内存数据总线的故障情况,但事实上在利用现有技术的测试方法对内存地址总线进行测试的时候并不能排除内存地址总线故障或者内存的内部芯片故障的存在,不能为判断数据总线测试准确性提供充分的判断依据。因此就会导致后续地址总线故障测试以及内存内部单元故障测试的结果的不可靠。
技术实现思路
本专利技术解决的技术问题是提供一种内存故障测试的方法和系统,以实现在进行内存数据总线测试时,避免内存地址总线故障或者内存的内部单元故障对数据总线测试结果的影响。为了解决上述问题,本专利技术提出了一种进行内存故障测试的方法,该方法包括以下步骤A、对被测试内存的数据总线进行测试;B、对被测试内存的地址总线进行测试;C、对被测试内存的内部单元进行测试;其特征在于,所述步骤A具体包括以下步骤A1、在被测试的内存中选取至少三个位宽度与该内存数据总线的位宽度相同的内存地址单元;A2、对选取的每个内存地址单元写入测试向量并读取相对应的测试读回值向量; A3、将所述对应每个内存地址单元的测试向量和测试读回值向量进行比较,若比较结果为至少两个内存地址单元对应的测试向量和测试读回值向量不同,且每一内存地址单元所对应的测试向量和测试读回值向量出现不同值的位置相同,则输出所述被测试内存的数据总线有故障的指示信息并结束内存测试;否则,则输出所述被测试内存的数据总线无故障的指示信息并执行步骤B。其中,所述步骤A1中,在被测试的内存中选取至少三个位宽度与数据总线的位宽度相同的内存地址单元是随机选取的。其中,所述步骤A1中的所述选取的至少三个内存地址单元为在内存中非连续分布的内存地址单元。其中,所述步骤A3中,则进一步包括输出其测试向量和测试读回值向量不同的内存地址单元所对应的内存地址单元地址信息。其中,所述步骤A2中,进一步包括对选取的每个内存地址单元分别多次写入不同的测试向量并读取相对应的测试读回值向量的步骤。相应地,本专利技术的一种进行内存故障测试的系统,包括数据总线测试单元、地址总线测试单元以及芯片内部单元测试单元,其特征在于,所述数据总线测试单元包括内存地址单元选取模块,用于在被测试的内存中选取至少三个位宽度与数据总线的位宽度相同的内存地址单元;测试向量写入模块,用于对所述内存地址单元选取模块选取的每个内存地址单元写入测试向量;读回值向量读取模块,用于读取对应每个内存地址单元写入测试向量后返回的测试读回值向量;比较模块,用于将所述测试向量写入模块写入的测试向量和读回值向量读取模块读取的测试读回值向量进行比较,并生成相应的比较结果;比较结果执行模块,用于当所述比较模块的比较结果为至少两个内存地址单元对应的测试向量和测试读回值向量不同,且每一内存地址单元所对应的测试向量和本文档来自技高网
...

【技术保护点】
一种内存故障测试的方法,该方法包括以下步骤:A、对被测试内存的数据总线进行测试; B、对被测试内存的地址总线进行测试;C、对被测试内存的内部单元进行测试;其特征在于,所述步骤A具体包括以下步骤:A1、 在被测试的内存中选取至少三个位宽度与该内存数据总线的位宽度相同的内存地址单元;A2、对选取的每个内存地址单元写入测试向量并读取相对应的测试读回值向量;A3、将所述对应每个内存地址单元的测试向量和测试读回值向量进行比较,若比较 结果为至少两个内存地址单元对应的测试向量和测试读回值向量不同,且每一内存地址单元所对应的测试向量和测试读回值向量出现不同值的位置相同,则输出所述被测试内存的数据总线有故障的指示信息并结束内存测试;否则,则输出所述被测试内存的数据总线无故障的指示信息并执行步骤B。

【技术特征摘要】
1.一种内存故障测试的方法,该方法包括以下步骤A、对被测试内存的数据总线进行测试;B、对被测试内存的地址总线进行测试;C、对被测试内存的内部单元进行测试;其特征在于,所述步骤A具体包括以下步骤A1、在被测试的内存中选取至少三个位宽度与该内存数据总线的位宽度相同的内存地址单元;A2、对选取的每个内存地址单元写入测试向量并读取相对应的测试读回值向量;A3、将所述对应每个内存地址单元的测试向量和测试读回值向量进行比较,若比较结果为至少两个内存地址单元对应的测试向量和测试读回值向量不同,且每一内存地址单元所对应的测试向量和测试读回值向量出现不同值的位置相同,则输出所述被测试内存的数据总线有故障的指示信息并结束内存测试;否则,则输出所述被测试内存的数据总线无故障的指示信息并执行步骤B。2.如权利要求1所述的内存故障测试的方法,其特征在于所述步骤A1中,在被测试的内存中选取至少三个位宽度与数据总线的位宽度相同的内存地址单元是随机选取的。3.如权利要求2所述的内存故障测试的方法,其特征在于所述步骤A1中的所述选取的至少三个内存地址单元为在内存中非连续分布的内存地址单元。4.如权利要求3所述的内存故障测试的方法,其特征在于,所述步骤A3中,则进一步包括输出其测试向量和测试读回值向量不同的内存地址单元的地址信息。5.如权利要求1至4任一项所述的内存故障测试的方法,其特征在于所述步骤A2中,进一步包括对选取的每个内存地址单元分别多次写入不同的测试向量并读取相对应的测试读回值向量的步骤。6.一种内存故障测试的系统,包括被测试的内存单元、数据总线测试单元、地址总线测试单元以及内存内部单元测试单元,其特征在于,所述数据总线测试单元包括内存地址单元选取模块,用于在被测试的内存单元中选取至少三个位宽度与数据总线的位宽度相同的内存地址单元;测试向量写入模块,用于对所述内存地址单元选取模块选取的每个内存地址单元写入测试向量;读回值向量读取模块,用于读取对应每个内存地址单元写入测试向量后返回的测试读回值向量;比较模块,用于将所述测试向量写入模块写入的测试向量和读回值...

【专利技术属性】
技术研发人员:易惕斌王树宏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利