一种软硬件结合的内存避错方法及其装置制造方法

文档序号:6544247阅读:203来源:国知局
一种软硬件结合的内存避错方法及其装置制造方法
【专利摘要】本发明涉及一种软硬件结合的内存避错方法及其装置,该方法采用软件MBIST架构SMBIST与硬件BIST架构HMBIST相结合方式,若为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器;HMBIST模块运行后,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障:SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障:该装置包括主处理器模块、CPLD模块和内存模块,所述的主处理器模块与CPLD模块连接,所述的内存模块与CPLD模块连接。与现有技术相比,本发明具有降低设计难度、内存故障检测覆盖率高、检测速度快、硬件开销低、复用性好、成本低等优点。
【专利说明】一种软硬件结合的内存避错方法及其装置
【技术领域】
[0001 ] 本发明涉及一种内存避错方法,尤其是涉及一种软硬件结合的内存避错方法及其装置
【背景技术】
[0002]目前,在轨道交通行业中,各种控制系统和设备功能复杂、实时性强、安全性要求高,系统任何部件的错误或者故障都可能导致灾难性后果。这些安全设备的内存模块可能会出现内存出现系统性故障和硬件随机失效,导致内存中存储的数据可能出现异常,从而使任何运行在内存中的逻辑 运算结果出错,最终影响整个系统的安全性,因此对轨道安全设备的内存进行内建测试,来达到内存避错的目的也显得越来越重要。
[0003]目前,内存内建测试(MBIST)方法主要有两种,一种是采用纯硬件架构的MBIST,在硬件逻辑电路中实现内存检测算法,来对内存进行检测;另一种是纯软件架构的MBIST,通过基于处理器的软件来实现内存测试。已有的内存内建测试方法,有以下不足:
[0004]1、纯软件MBIST方案依赖于计算机的运算能力,内存检测速度低;
[0005]2、纯软件MBIST方案受系统特性的限制,在软件正常运行情况下,不能检测到所有的内存故障,内存故障检测覆盖率低;
[0006]3、纯硬件MBIST方案需要设计专门的硬件逻辑电路,增大了硬件开销;
[0007]4、纯硬件MBIST方案设计专门的硬件电路,由于覆盖所有的内存故障类型,需要设计数据巨大的内存测试图形向量,设计困难,同时,设计的硬件电路不具有通用性,研发成本高。

【发明内容】

[0008]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种降低设计难度、内存故障检测覆盖率高、检测速度快、硬件开销低、复用性好、成本低的软硬件结合的内存避错方法及其装置。
[0009]本发明的目的可以通过以下技术方案来实现:
[0010]一种软硬件结合的内存避错方法,其特征在于,该方法采用软件MBIST架构SMBIST与硬件BIST架构HMBIST相结合方式,所述的内存避错方法具体包括以下步骤:
[0011]I)启动后,对其进行初始化;
[0012]2)HMBIST模块在初始化后,开始对设备中的内存进行检测,
[0013]3)判断是否发现内存功能故障,若发现内存功能故障,进行设备闪灯告警和设备宕机,否则设备初始化文件系统,并开始引导操作系统启动,操作系统正常启动后,继续执行步骤4);
[0014]4)主任务模块运行,对系统数据进行逻辑运算处理;
[0015]5)判断定时中断是否到来,若为是执行步骤6),否则返回执行步骤4);
[0016]6)若为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器,执行步骤7),否则执行步骤8);
[0017]7) HMBIST模块开始运行,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障,若为是,激活设备CPU运行,闪灯告警,并记录日志和设备宕机,否则返回执行步骤4);
[0018]8) SMBIST模块开始运行,SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障,若为是,闪灯告警,并记录日志和设备宕机,否则返回执行步骤4)。
[0019]所述的HMBIST模块运行包括以下步骤:
[0020]I)拉低HMBIST_CLK电平信号,判断HMBIST_M0DE的电平信号是否为高电平,若为是,继续执行步骤I),否则执行步骤2);
[0021]2)HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号;
[0022]3)数据与地址生成逻辑模块将存储的离线设计好的测试数据与生成的合法地址,一起传递给测试向量生成器,测试向量生成器生成测试图形向量,对内存进行测试;
[0023]4)结果比较控制器将测试图形向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤5),否则,执行步骤6);
[0024]5)拉低HMBI ST_M0DE和HMBI ST_CLK的电平信号,设置HMBI ST_ERR信号为逻辑‘ I’,CPU模块进行错误处理,告警并记录日志;_
[0025]6)判断所有的内存是否都测试完,若为是,执行步骤7),否则返回执行步骤3);
[0026]7)拉低HMBI ST_M0DE和HMBI ST_CLK的电平信号,设置HMBI ST_ERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
[0027]所述的SMBIST模块运行包括以下步骤:
[0028]I)锁住操作系统,禁止其他任务调度运行和接收其他中断;
[0029]2)根据当前周期号,选取与周期相关的测试数据;
[0030]3)对相应的内存进行检测,如果发现错误,设置SMBIST ERR信号为逻辑‘I’ ;
[0031]4)判断当前周期的内存块是否测试完,测试完执行步骤5),否则继续执行步骤
3);
[0032]5) SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务模块继续运行。
[0033]一种软硬件结合的内存避错方法的装置,其特征在于,包括主处理器模块、CPLD模块和内存模块,所述的主处理器模块与CPLD模块连接,所述的内存模块与CPLD模块连接;
[0034]所述的主处理器模块上设有微处理器以及分别与微处理器连接的Flash模块、串口芯片、网络芯片模块和看门狗模块,所述的CPLD模块包括HMBIST逻辑模块和定时器逻辑模块,其中HMBIST模块包括模式控制器、测试向量产生器、地址与数据生成逻辑单元、测试结果比较器和HMBIST控制接口,所述的HMBIST控制接口分别与微处理器、模式控制器、测试向量产生器、测试结果比较器和内存模块连接,所述的地址与数据生成逻辑单元分别与测试向量产生器和测试结果比较器连接。
[0035]所述的主处理器模块上运行的操作系统为vxWorks嵌入式系统。
[0036]所述的定时器逻辑模块提供的中断信号周期为10ms。[0037]所述的CPLD模块采用VHDL语言编程。
[0038]与现有技术相比,本发明具有以下优点:
[0039]1、采用HMBIST硬件模块来检测内存高层次故障,只需要设计覆盖高层次故障的测试图形向量,不用设计所有的故障类型的测试向量,降低了测试向量设计和硬件设计难度;
[0040]2、采用HMBIST硬件模块在降低硬件开销的情况下,周期性的对内存进行全面检测,保证了很高的内存故障检测覆盖率。
[0041]3、采用SMBIST软件模块来检测内存低层次故障,只需要设计覆盖低层次故障的测试图形向量,不用设计所有的故障类型的测试向量,降低了测试向量设计和软件设计难度;
[0042]4、采用SMBIST软件模块以最少的内存测试图形向量来进行检测,提高了实时在线内存故障检测速度,并且SMBIST软件模块在设计完成后,可以进行移植,复用性好;
[0043]5、通过软硬件结合,保证了很高的内存故障检测覆盖率,保证了系统的安全,同时降低硬件复杂程度,也降低了开发难度和成本。。
【专利附图】

【附图说明】
[0044]图1为本发明的方法流程图
[0045]图2为本发明的HMBIST运行流程图;
[0046]图3为本发明的SMBIST运行流程图;
[0047]图4为本发明的装置结构示意图。
[0048]其中,a为主处理器模块、b为CPLD模块,c为内存模块、al为微处理器、a2为Flash模块、a3为串口芯片、a4为网络芯片模块、a5为看门狗模块,bl为HMBIST逻辑模块、b2为定时器逻辑模块,bll为模式控制器、bl2为测试向量产生器、bl3为地址与数据生成逻辑、bl4为测试结果比较器、bl5为HMBIST控制接口
【具体实施方式】
[0049]下面结合附图和具体实施例对本发明进行详细说明。
[0050]实施例:
[0051]如图1所示,一种软硬件结合的内存避错方法,包括以下步骤:
[0052]101)启动后,对其进行初始化;
[0053]102)HMBIST模块在初始化后,开始对设备中的内存进行检测,
[0054]103)判断是否发现内存功能故障,若发现内存功能故障,进行设备闪灯告警和设备宕机,否则设备初始化文件系统,并开始引导操作系统启动,操作系统正常启动后,继续执行步骤104);
[0055]104)主任务模块运行,对系统数据进行逻辑运算处理;
[0056]105)判断定时中断是否到来,若为是执行步骤106),否则返回执行步骤104);
[0057]106)若为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器,执行步骤107),否则执行步骤108);
[0058]107) HMBIST模块开始运行,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障,若为是,激活设备CPU运行,闪灯告警,并记录日志和设备宕机,否则返回执行步骤104);
[0059]108) SMBIST模块开始运行,SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障,若为是,闪灯告警,并记录日志和设备宕机,否则返回执行步骤104)。
[0060]如图2所示,所述的HMBIST模块运行包括以下步骤:
[0061]201、拉低腿8151'_0^电平信号,判断HMBIST_M0DE的电平信号,如果HMBIST_M0DE为高电平,继续执行步骤201,否则执行步骤202 ;
[0062]202、HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号;
[0063]203、数据与地址生成逻辑模块中存储了离线设计好的测试数据,并与生成的合法地址,一起传递给测试向量生成器,由测试向量生成器生成测试图形向量,对内存进行测试;
[0064]204、结果比较控制器,会将测试向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤205,否则,执行步骤206 ;
[0065]205、拉低HMBIST_M0DE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘ I’,CPU模块进行错误处理,告警并记录日志;
[0066]206、判断所有的内存是否都测试完,执行步骤207,否则返回执行步骤203 ;
[0067]207、拉低HMBIST_M0DE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
[0068]如图3所示,所述的SMBIST模块运行包括以下步骤:
[0069]301、锁住操作系统,禁止其他任务调度运行和接收其他中断; [0070]302、根据当前周期号,选取与周期相关的测试数据;
[0071]303、并利用内存检算法对相应的内存进行检测;如果发现错误,设置SMBIST_ERR信号为逻辑‘I’ ;
[0072]304、判断当天周期的内存块是否测试完,测试完执行步骤305,否则继续执行步骤303 ;
[0073]305、SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务继续运行。
[0074]如图4所示,一种软硬件结合的内存避错装置,包括主处理器模块a、CPLD模块b和内存模块c,所述的主处理器模块a与CPLD模块b连接,所述的内存模块c与CPLD模块b连接;
[0075]所述的主处理器模块a上设有微处理器al以及分别与微处理器al连接的Flash模块a2、串口芯片a3、网络芯片模块a4和看门狗模块a5,所述的CPLD模块b包括HMBIST逻辑模块bl和定时器逻辑模块b2,其中HMBIST模块bl包括模式控制器bll、测试向量产生器bl2、地址与数据生成逻辑单元bl3、测试结果比较器bl4和HMBIST控制接口 bl5,所述的HMBIST控制接口 bl5分别与微处理器al、模式控制器bll、测试向量产生器bl2、测试结果比较器bl4和内存模块c连接,所述的地址与数据生成逻辑单元bl3分别与测试向量产生器bl2和测试结果比较器bl4连接。[0076]所述的主处理器模块a上运行的操作系统为vxWorks嵌入式系统,并且按照标准C进行软件开发。
[0077]所述的主处理器模块a对输入的数据进行逻辑处理和输出并对主处理器的运行状态进行维护管理。
[0078]所述的串口芯片a3通过串口协议调试信息。
[0079]所述的网络芯片模块a4接收输入数据和发送输出数据,数据包括状态信息和控制命令。
[0080]所述的CPLD模块b采用VHDL语言编程来实现逻辑功能。
[0081]所述的定时器逻辑模块b2提供的中断信号周期为10ms。
[0082]所述的内存模块c按照不变内存和可变内存进行内存检测。
[0083]当内存出现异常或者其他异常时,会进行错误处理,在错误日志文件中记录错误情况,并进行相应的报警。
【权利要求】
1.一种软硬件结合的内存避错方法,其特征在于,该方法采用软件MBIST架构SMBIST与硬件BIST架构HMBIST相结合方式,所述的内存避错方法具体包括以下步骤: 1)启动后,对其进行初始化; 2)HMBIST模块在初始化后,开始对设备中的内存进行检测, 3)判断是否发现内存功能故障,若发现内存功能故障,进行设备闪灯告警和设备宕机,否则设备初始化文件系统,并开始引导操作系统启动,操作系统正常启动后,继续执行步骤4); 4)主任务模块运行,对系统数据进行逻辑运算处理; 5)判断定时中断是否到来,若为是执行步骤6),否则返回执行步骤4); 6)若 为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器,执行步骤7),否则执行步骤8); 7)HMBIST模块开始运行,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障,若为是,激活设备CPU运行,闪灯告警,并记录日志和设备宕机,否则返回执行步骤4); 8)SMBIST模块开始运行,SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障,若为是,闪灯告警,并记录日志和设备宕机,否则返回执行步骤4)。
2.根据权利要求1所述的一种软硬件结合的内存避错方法,其特征在于,所述的HMBIST模块运行包括以下步骤: 1)拉低HMBIST_CLK电平信号,判断HMBIST_MODE的电平信号是否为高电平,若为是,继续执行步骤I),否则执行步骤2); 2)HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号; 3)数据与地址生成逻辑模块将存储的离线设计好的测试数据与生成的合法地址,一起传递给测试向量生成器,测试向量生成器生成测试图形向量,对内存进行测试; 4)结果比较控制器将测试图形向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤5),否则,执行步骤6); 5)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘I’,(PU模块进行错误处理,告警并记录日志; 6)判断所有的内存是否都测试完,若为是,执行步骤7),否则返回执行步骤3); 7)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBISTERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
3.根据权利要求1所述的一种软硬件结合的内存避错方法,其特征在于,所述的SMBIST模块运行包括以下步骤: 1)锁住操作系统,禁止其他任务调度运行和接收其他中断; 2)根据当前周期号,选取与周期相关的测试数据; 3)对相应的内存进行检测,如果发现错误,设置SMBIST_ERR信号为逻辑‘I’; 4)判断当前周期的内存块是否测试完,测试完执行步骤5),否则继续执行步骤3); 5)SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务模块继续运行。
4.一种实施权利要求1 一 3任一所述的软硬件结合的内存避错方法的装置,其特征在于,包括主处理器模块(a)、CPLD模块(b)和内存模块(c),所述的主处理器模块(a)与CPLD模块(b)连接,所述的内存模块(c)与CPLD模块(b)连接; 所述的主处理器模块(a)上设有微处理器(al)以及分别与微处理器(al)连接的Flash模块(a2)、串口芯片(a3)、网络芯片模块(a4)和看门狗模块(a5),所述的CPLD模块(b)包括HMBIST逻辑模块(bl)和定时器逻辑模块(b2),其中HMBIST模块(bl)包括模式控制器(bll)、测试向量产生器(bl2)、地址与数据生成逻辑单元(bl3)、测试结果比较器(bl4)和HMBIST控制接口(bl5),所述的HMBIST控制接口(bl5)分别与微处理器(al)、模式控制器(bll)、测试向量产生器(bl2)、测试结果比较器(bl4)和内存模块(c)连接,所述的地址与数据生成逻辑单元(bl3)分别与测试向量产生器(bl2)和测试结果比较器(bl4)连接。
5.根据权利要求4所述的一种软硬件结合的内存避错装置,其特征在于,所述的主处理器模块(a)上运行的操作系统为vxWorks嵌入式系统。
6.根据权利要求4所述的一种软硬件结合的内存避错装置,其特征在于,所述的定时器逻辑模块(b2)提供的 中断信号周期为10ms。
7.根据权利要求4所述的一种软硬件结合的内存避错装置,其特征在于,所述的CPLD模块(b)采用VHDL语言编程。
【文档编号】G06F11/22GK103927241SQ201410158115
【公开日】2014年7月16日 申请日期:2014年4月18日 优先权日:2014年4月18日
【发明者】徐军, 张磊, 周宇恒, 宋志坚, 赵伟, 郭延霞, 刘艳艳 申请人:卡斯柯信号有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1