CN103927241B - 一种软硬件结合的内存避错方法及其装置 - Google Patents
一种软硬件结合的内存避错方法及其装置 Download PDFInfo
- Publication number
- CN103927241B CN103927241B CN201410158115.3A CN201410158115A CN103927241B CN 103927241 B CN103927241 B CN 103927241B CN 201410158115 A CN201410158115 A CN 201410158115A CN 103927241 B CN103927241 B CN 103927241B
- Authority
- CN
- China
- Prior art keywords
- module
- hmbist
- memory
- execution step
- internal memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种软硬件结合的内存避错方法及其装置,该方法采用软件MBIST架构SMBIST与硬件BIST架构HMBIST相结合方式,若为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器;HMBIST模块运行后,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障:SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障:该装置包括主处理器模块、CPLD模块和内存模块,所述的主处理器模块与CPLD模块连接,所述的内存模块与CPLD模块连接。与现有技术相比,本发明具有降低设计难度、内存故障检测覆盖率高、检测速度快、硬件开销低、复用性好、成本低等优点。
Description
技术领域
本发明涉及一种内存避错方法,尤其是涉及一种软硬件结合的内存避错方法及其装置。
背景技术
目前,在轨道交通行业中,各种控制系统和设备功能复杂、实时性强、安全性要求高,系统任何部件的错误或者故障都可能导致灾难性后果。这些安全设备的内存模块可能会出现内存出现系统性故障和硬件随机失效,导致内存中存储的数据可能出现异常,从而使任何运行在内存中的逻辑运算结果出错,最终影响整个系统的安全性,因此对轨道安全设备的内存进行内建测试,来达到内存避错的目的也显得越来越重要。
目前,内存内建测试(MBIST)方法主要有两种,一种是采用纯硬件架构的MBIST,在硬件逻辑电路中实现内存检测算法,来对内存进行检测;另一种是纯软件架构的MBIST,通过基于处理器的软件来实现内存测试。已有的内存内建测试方法,有以下不足:
1、纯软件MBIST方案依赖于计算机的运算能力,内存检测速度低;
2、纯软件MBIST方案受系统特性的限制,在软件正常运行情况下,不能检测到所有的内存故障,内存故障检测覆盖率低;
3、纯硬件MBIST方案需要设计专门的硬件逻辑电路,增大了硬件开销;
4、纯硬件MBIST方案设计专门的硬件电路,由于覆盖所有的内存故障类型,需要设计数据巨大的内存测试图形向量,设计困难,同时,设计的硬件电路不具有通用性,研发成本高。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种降低设计难度、内存故障检测覆盖率高、检测速度快、硬件开销低、复用性好、成本低的软硬件结合的内存避错方法及其装置。
本发明的目的可以通过以下技术方案来实现:
一种软硬件结合的内存避错方法,其特征在于,该方法采用软件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)。
所述的HMBIST模块运行包括以下步骤:
1)拉低HMBIST_CLK电平信号,判断HMBIST_MODE的电平信号是否为高电平,若为是,继续执行步骤1),否则执行步骤2);
2)HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号;
3)数据与地址生成逻辑模块将存储的离线设计好的测试数据与生成的合法地址,一起传递给测试向量生成器,测试向量生成器生成测试图形向量,对内存进行测试;
4)结果比较控制器将测试图形向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤5),否则,执行步骤6);
5)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘1’,CPU模块进行错误处理,告警并记录日志;_
6)判断所有的内存是否都测试完,若为是,执行步骤7),否则返回执行步骤3);
7)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
所述的SMBIST模块运行包括以下步骤:
1)锁住操作系统,禁止其他任务调度运行和接收其他中断;
2)根据当前周期号,选取与周期相关的测试数据;
3)对相应的内存进行检测,如果发现错误,设置SMBIST ERR信号为逻辑‘1’;
4)判断当前周期的内存块是否测试完,测试完执行步骤5),否则继续执行步骤3);
5)SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务模块继续运行。
一种软硬件结合的内存避错方法的装置,其特征在于,包括主处理器模块、CPLD模块和内存模块,所述的主处理器模块与CPLD模块连接,所述的内存模块与CPLD模块连接;
所述的主处理器模块上设有微处理器以及分别与微处理器连接的Flash模块、串口芯片、网络芯片模块和看门狗模块,所述的CPLD模块包括HMBIST逻辑模块和定时器逻辑模块,其中HMBIST模块包括模式控制器、测试向量产生器、地址与数据生成逻辑单元、测试结果比较器和HMBIST控制接口,所述的HMBIST控制接口分别与微处理器、模式控制器、测试向量产生器、测试结果比较器和内存模块连接,所述的地址与数据生成逻辑单元分别与测试向量产生器和测试结果比较器连接。
所述的主处理器模块上运行的操作系统为vxWorks嵌入式系统。
所述的定时器逻辑模块提供的中断信号周期为10ms。
所述的CPLD模块采用VHDL语言编程。
与现有技术相比,本发明具有以下优点:
1、采用HMBIST硬件模块来检测内存高层次故障,只需要设计覆盖高层次故障的测试图形向量,不用设计所有的故障类型的测试向量,降低了测试向量设计和硬件设计难度;
2、采用HMBIST硬件模块在降低硬件开销的情况下,周期性的对内存进行全面检测,保证了很高的内存故障检测覆盖率。
3、采用SMBIST软件模块来检测内存低层次故障,只需要设计覆盖低层次故障的测试图形向量,不用设计所有的故障类型的测试向量,降低了测试向量设计和软件设计难度;
4、采用SMBIST软件模块以最少的内存测试图形向量来进行检测,提高了实时在线内存故障检测速度,并且SMBIST软件模块在设计完成后,可以进行移植,复用性好;
5、通过软硬件结合,保证了很高的内存故障检测覆盖率,保证了系统的安全,同时降低硬件复杂程度,也降低了开发难度和成本。。
附图说明
图1为本发明的方法流程图
图2为本发明的HMBIST运行流程图;
图3为本发明的SMBIST运行流程图;
图4为本发明的装置结构示意图。
其中,a为主处理器模块、b为CPLD模块,c为内存模块、a1为微处理器、a2为Flash模块、a3为串口芯片、a4为网络芯片模块、a5为看门狗模块,b1为HMBIST逻辑模块、b2为定时器逻辑模块,b11为模式控制器、b12为测试向量产生器、b13为地址与数据生成逻辑、b14为测试结果比较器、b15为HMBIST控制接口
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
实施例:
如图1所示,一种软硬件结合的内存避错方法,包括以下步骤:
101)启动后,对其进行初始化;
102)HMBIST模块在初始化后,开始对设备中的内存进行检测,
103)判断是否发现内存功能故障,若发现内存功能故障,进行设备闪灯告警和设备宕机,否则设备初始化文件系统,并开始引导操作系统启动,操作系统正常启动后,继续执行步骤104);
104)主任务模块运行,对系统数据进行逻辑运算处理;
105)判断定时中断是否到来,若为是执行步骤106),否则返回执行步骤104);
106)若为设定深夜时间且设备处于非繁忙状态,激活HMBIST运行,并关闭外部定时器,执行步骤107),否则执行步骤108);
107)HMBIST模块开始运行,设备的CPU进入睡眠模式,HMBIST模块接管对RAM的控制,判断内存检测是否发现故障,若为是,激活设备CPU运行,闪灯告警,并记录日志和设备宕机,否则返回执行步骤104);
108)SMBIST模块开始运行,SMBIST模块根据当前的周期号,计算需要测试内存的起始地址和大小,开始对内存进行检测,判断内存检测是否发现故障,若为是,闪灯告警,并记录日志和设备宕机,否则返回执行步骤104)。
如图2所示,所述的HMBIST模块运行包括以下步骤:
201、拉低HMBIST_CLK电平信号,判断HMBIST_MODE的电平信号,如果HMBIST_MODE为高电平,继续执行步骤201,否则执行步骤202;
202、HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号;
203、数据与地址生成逻辑模块中存储了离线设计好的测试数据,并与生成的合法地址,一起传递给测试向量生成器,由测试向量生成器生成测试图形向量,对内存进行测试;
204、结果比较控制器,会将测试向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤205,否则,执行步骤206;
205、拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘1’,CPU模块进行错误处理,告警并记录日志;
206、判断所有的内存是否都测试完,执行步骤207,否则返回执行步骤203;
207、拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
如图3所示,所述的SMBIST模块运行包括以下步骤:
301、锁住操作系统,禁止其他任务调度运行和接收其他中断;
302、根据当前周期号,选取与周期相关的测试数据;
303、并利用内存检算法对相应的内存进行检测;如果发现错误,设置SMBIST_ERR信号为逻辑‘1’;
304、判断当天周期的内存块是否测试完,测试完执行步骤305,否则继续执行步骤303;
305、SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务继续运行。
如图4所示,一种软硬件结合的内存避错装置,包括主处理器模块a、CPLD模块b和内存模块c,所述的主处理器模块a与CPLD模块b连接,所述的内存模块c与CPLD模块b连接;
所述的主处理器模块a上设有微处理器a1以及分别与微处理器a1连接的Flash模块a2、串口芯片a3、网络芯片模块a4和看门狗模块a5,所述的CPLD模块b包括HMBIST逻辑模块b1和定时器逻辑模块b2,其中HMBIST模块b1包括模式控制器b11、测试向量产生器b12、地址与数据生成逻辑单元b13、测试结果比较器b14和HMBIST控制接口b15,所述的HMBIST控制接口b15分别与微处理器a1、模式控制器b11、测试向量产生器b12、测试结果比较器b14和内存模块c连接,所述的地址与数据生成逻辑单元b13分别与测试向量产生器b12和测试结果比较器b14连接。
所述的主处理器模块a上运行的操作系统为vxWorks嵌入式系统,并且按照标准C进行软件开发。
所述的主处理器模块a对输入的数据进行逻辑处理和输出并对主处理器的运行状态进行维护管理。
所述的串口芯片a3通过串口协议调试信息。
所述的网络芯片模块a4接收输入数据和发送输出数据,数据包括状态信息和控制命令。
所述的CPLD模块b采用VHDL语言编程来实现逻辑功能。
所述的定时器逻辑模块b2提供的中断信号周期为10ms。
所述的内存模块c按照不变内存和可变内存进行内存检测。
当内存出现异常或者其他异常时,会进行错误处理,在错误日志文件中记录错误情况,并进行相应的报警。
Claims (7)
1.一种软硬件结合的内存避错方法,其特征在于,该方法采用软件MBIST架构SMBIST与硬件BIST架构HMBIST相结合方式,所述的内存避错方法具体包括以下步骤:
1)启动后,对HMBIST模块进行初始化;
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的电平信号是否为高电平,若为是,继续执行步骤1),否则执行步骤2);
2)HMBIST模块开始分别对数据与地址生成逻辑模块、测试向量生成器、测试模式控制器以及HMBIST接口控制器进行初始化,并拉高HMBIST_CLK电平信号;
3)数据与地址生成逻辑模块将存储的离线设计好的测试数据与生成的合法地址,一起传递给测试向量生成器,测试向量生成器生成测试图形向量,对内存进行测试;
4)结果比较控制器将测试图形向量在内存单元产生的状态与期望的状态进行比较,如果状态不同,执行步骤5),否则,执行步骤6);
5)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘1’,CPU模块进行错误处理,告警并记录日志;
6)判断所有的内存是否都测试完,若为是,执行步骤7),否则返回执行步骤3);
7)拉低HMBIST_MODE和HMBIST_CLK的电平信号,设置HMBIST_ERR信号为逻辑‘0’,CPU模块激活主任务模块和SMBIST模块。
3.根据权利要求1所述的一种软硬件结合的内存避错方法,其特征在于,所述的SMBIST模块运行包括以下步骤:
1)锁住操作系统,禁止其他任务调度运行和接收其他中断;
2)根据当前周期号,选取与周期相关的测试数据;
3)对相应的内存进行检测,如果发现错误,设置SMBIST_ERR信号为逻辑‘1’;
4)判断当前周期的内存块是否测试完,测试完执行步骤5),否则继续执行步骤3);
5)SMBSIT任务结束运行,CPU模块激活主任务模块,并解锁操作系统,正常接收中断,主任务模块继续运行。
4.一种实施权利要求1-3任一项所述的软硬件结合的内存避错方法的装置,其特征在于,包括主处理器模块(a)、CPLD模块(b)和内存模块(c),所述的主处理器模块(a)与CPLD模块(b)连接,所述的内存模块(c)与CPLD模块(b)连接;
所述的主处理器模块(a)上设有微处理器(a1)以及分别与微处理器(a1)连接的Flash模块(a2)、串口芯片(a3)、网络芯片模块(a4)和看门狗模块(a5),所述的CPLD模块(b)包括HMBIST逻辑模块(b1)和定时器逻辑模块(b2),其中HMBIST模块(b1)包括模式控制器(b11)、测试向量产生器(b12)、地址与数据生成逻辑单元(b13)、测试结果比较器(b14)和HMBIST控制接口(b15),所述的HMBIST控制接口(b15)分别与微处理器(a1)、模式控制器(b11)、测试向量产生器(b12)、测试结果比较器(b14)和内存模块(c)连接,所述的地址与数据生成逻辑单元(b13)分别与测试向量产生器(b12)和测试结果比较器(b14)连接。
5.根据权利要求4所述的装置,其特征在于,所述的主处理器模块(a)上运行的操作系统为vxWorks嵌入式系统。
6.根据权利要求4所述的装置,其特征在于,所述的定时器逻辑模块(b2)提供的中断信号周期为10ms。
7.根据权利要求4所述的装置,其特征在于,所述的CPLD模块(b)采用VHDL语言编程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410158115.3A CN103927241B (zh) | 2014-04-18 | 2014-04-18 | 一种软硬件结合的内存避错方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410158115.3A CN103927241B (zh) | 2014-04-18 | 2014-04-18 | 一种软硬件结合的内存避错方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103927241A CN103927241A (zh) | 2014-07-16 |
CN103927241B true CN103927241B (zh) | 2017-02-15 |
Family
ID=51145468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410158115.3A Active CN103927241B (zh) | 2014-04-18 | 2014-04-18 | 一种软硬件结合的内存避错方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103927241B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6438353B2 (ja) * | 2015-05-27 | 2018-12-12 | ルネサスエレクトロニクス株式会社 | 半導体装置及び診断テスト方法 |
CN108762971A (zh) * | 2018-06-12 | 2018-11-06 | 烽火通信科技股份有限公司 | 一种看门狗电路的实现方法及系统 |
CN109342929A (zh) * | 2018-11-12 | 2019-02-15 | 卡斯柯信号有限公司 | 一种cvc-200t硬件智能测试系统及方法 |
CN110795897B (zh) * | 2019-09-06 | 2021-06-22 | 无锡江南计算技术研究所 | 一种针对多种错误类型的片上存储器bist验证方法 |
CN112346897B (zh) * | 2020-10-23 | 2022-07-22 | 浪潮电子信息产业股份有限公司 | 一种处理计算机故障的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587982B1 (en) * | 2000-09-05 | 2003-07-01 | Advanced Micro Devices, Inc. | Method of micro-architectural implementation of interface between bist state machine and tester interface to enable bist cycling |
CN101014868A (zh) * | 2004-01-29 | 2007-08-08 | 国际商业机器公司 | 用于高速测试和冗余计算的远程bist |
CN101706746A (zh) * | 2009-11-11 | 2010-05-12 | 盛科网络(苏州)有限公司 | 一种对存储器接口电路进行在线调试的装置及方法 |
CN103093829A (zh) * | 2011-10-27 | 2013-05-08 | 迈实电子(上海)有限公司 | 存储器测试系统及存储器测试方法 |
CN103176876A (zh) * | 2013-03-19 | 2013-06-26 | 卡斯柯信号有限公司 | 一种高效安全的计算机在线自检方法及自检装置 |
-
2014
- 2014-04-18 CN CN201410158115.3A patent/CN103927241B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6587982B1 (en) * | 2000-09-05 | 2003-07-01 | Advanced Micro Devices, Inc. | Method of micro-architectural implementation of interface between bist state machine and tester interface to enable bist cycling |
CN101014868A (zh) * | 2004-01-29 | 2007-08-08 | 国际商业机器公司 | 用于高速测试和冗余计算的远程bist |
CN101706746A (zh) * | 2009-11-11 | 2010-05-12 | 盛科网络(苏州)有限公司 | 一种对存储器接口电路进行在线调试的装置及方法 |
CN103093829A (zh) * | 2011-10-27 | 2013-05-08 | 迈实电子(上海)有限公司 | 存储器测试系统及存储器测试方法 |
CN103176876A (zh) * | 2013-03-19 | 2013-06-26 | 卡斯柯信号有限公司 | 一种高效安全的计算机在线自检方法及自检装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103927241A (zh) | 2014-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103927241B (zh) | 一种软硬件结合的内存避错方法及其装置 | |
CN107390511A (zh) | 用于运行冗余的自动化系统的方法 | |
CA2549540C (en) | A task management control apparatus and method | |
CN104281217A (zh) | 微型计算机 | |
CN107957692B (zh) | 控制器冗余方法、装置及系统 | |
CN106254097A (zh) | 一种基于第三方判定的ats系统双机仲裁系统及方法 | |
WO2017172058A1 (en) | Method and apparatus for using target or unit under test (uut) as debugger | |
CN103440196A (zh) | 一种新型操作系统资源问题检测方法 | |
CN105760241A (zh) | 一种内存数据导出方法和系统 | |
CN106528354A (zh) | 一种烧录存储器电源 fru id的自动化方法 | |
CN104125049A (zh) | 一种基于brickland平台的pcie设备冗余实现方法 | |
CN112130923A (zh) | 容器的管理方法、装置、电子设备及计算机可读存储介质 | |
CN110457149A (zh) | 基于PowerPC控制的SRAM型FPGA可靠加载与防错设计方法 | |
EP3623826A1 (en) | Error detection within an integrated circuit chip | |
CN106610885A (zh) | 服务器故障检测系统及方法 | |
US10769038B2 (en) | Counter circuitry and methods including a master counter providing initialization data and fault detection data and wherein a threshold count difference of a fault detection count is dependent upon the fault detection data | |
CN104834584A (zh) | 一种监测主机硬件负载的方法和系统 | |
JP7381752B2 (ja) | ロックステップで動作するプロセッサのモニタリング | |
US9384078B2 (en) | Method for diagnosing a mechanism of untimely cut-offs of the power supply to a motor vehicle computer | |
CN101639816A (zh) | 一种总线的实时跟踪系统及相应的跟踪、调试方法 | |
CN102810840B (zh) | 电压保护系统 | |
CN107179911A (zh) | 一种重启管理引擎的方法和设备 | |
CN106294153A (zh) | 检测多路服务器uefi bios版本一致的方法 | |
CN104216857B (zh) | 多工切换装置及其切换方法 | |
JP2011081705A (ja) | メモリ制御装置及びメモリ制御装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |