一种高效安全的计算机在线自检方法及自检装置的制作方法

文档序号:6400541阅读:246来源:国知局
专利名称:一种高效安全的计算机在线自检方法及自检装置的制作方法
技术领域
本发明涉及一种安全(Safety)领域内设备自检方法及装置,尤其是涉及一种高效安全的计算机在线自检方法及自检装置。
背景技术
在线自检是实现计算机平台安全运行的基础。一般是对计算机平台的CPU、内存进行周期式的检测,确保计算机平台的安全性,在检测到硬件失效后及时、有效地进行必要的干预。CPU检测通常执行效率很高,可以在很短的时间内完成;内存检测通常待测区域非常大,高安全的检测算法复杂度较高,往往耗时非常长。
随着嵌入式领域对安全越来越重视,安全计算机通信数据量大、通信行为的不确定性和应用处理时间较长,往往使CPU占用率过高,用于执行内存检测的时间非常短,而内存待测区域又非常大。那么就会面临下列问题:
1、自检周期的问题:随着通信量的增加和应用的丰富,计算机平台会使用更大的内存,以满足日益增长的通信和应用开销。在线自检所花费的时间会越来越多,自检周期往往会达到数小时级甚至数十小时级别。
2、诊断覆盖率的问题:为了保证在线自检的高效,在线自检通常会采用诊断覆盖率相对较低的技术,在提高在线自检效率的同时会牺牲一定的安全性。对于未使用到的内存,现有的技术通常使用Abraham算法进行检测,或是不对其进行测试。使用Abraham算法检测使得内存的检测周期非常的长,尤其是通信量的增大和应用的丰富,使得内存容量达到数百MB甚至几GB。往往达到数小时级别甚至数十小时级别。不对未使用的内存进行检测会使整个内存的诊断覆盖率降低,无法达到算法预期的99%。
3、现有的高安全性在线检测算法执行效率问题:对于使用到的内存检测通常采用Abraham算法,使用32位处理器对一个N个字长的内存块进行检测,目前最优算法的复杂度为30NXm,其中,算法复杂度为30N,需要采用m组测试数据。在带有cache的处理器中,内存检测的时候会直接读取cache中的数据,无法真正起到检测内存的目的,会给算法的诊断覆盖率带来一定的影响。为了保证cache不影响到内存检测算法的有效性,会采用禁用cache和等待cache数据过期的办法,这样的方法会导致内存检测的耗时过长。
4、在线自检的内存资源与其它功能耦合强的问题:在线自检作为安全计算机的一部分,往往会将使用的内存与计算机其它功能和操作系统所使用内存相互混合在一起,增加了数据存储的耦合性。发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种自检周期短、诊断覆盖率高、执行效率高、内存资源独立的高效安全的计算机在线自检方法及自检装置。
本发明的目的可以通过以下技术方案来实现:
一种高效安全的计算机在线自检方法,包括以下步骤:
I)启动在线自检装置,设备初始化模块初始化在线自检任务,并分配各在线自检任务所需使用的内存空间;
2)获取在线自检的内存测试所必须的内存信息;
3)获取预先设计好的测试数据和预期结果;
4)设备初始化模块判断是否获取到继续执行在线自检的信号,若为是,则执行步骤5);若为否,则继续执行步骤4);
5) CPU检测模块进行CPU检测,若未检测到故障,则执行步骤6);若检测到故障,则执行步骤8);
6)内存检测模块对不可变内存进行检测,若未检测到故障,则执行步骤7);若检测到故障,则执行步骤8);
7)内存检测模块对可变内存进行检测,若未检测到故障,则执行步骤4);若检测到故障,则执行步骤8);
8)失效处理:失效处理模块对检测到的故障进行相应处理,并将故障信息进行显示报警和记录。
所述的CPU检测寄存器测试和指令测试。
所述的内存检测模块可变内存测试和不可变内存测试。
所述的寄存器测试的测试内容包括各寄存器的固定故障和寄存器之间的耦合故障。
所述的指令测试具体为:根据预先设计好的测试数据和预期结果,以测试数据作为输入源,判断输入源运算得到的结果与输入源对应的预期结果是否一致,若是,则指令测试通过,若否,则指令测试不通过。
所述的可变内存测试采用的算法在不降低诊断覆盖率的前提下降低算法复杂度,且无需考虑cache的影响。
所述的不可变内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为32N的校验算法。
一种高效安全的计算机在线装置,包括设备初始化模块、CPU检测模块、内存检测模块和失效处理模块,所述的设备初始化模块、CPU检测模块、内存检测模块依次连接,失效处理模块分别连接CPU检测模块和内存检测模块。
所述的失效处理模块人机接口和失效记录装置。
所述的内存检测模块连接有外部校验装置。
与现有技术相比,本发明具有以下优点:
1、自检周期缩短:结合内存所存储的数据特点,分别优化内存检测算法,提高了内存检测算法的执行效率,极大的缩短了自检周期;
2、诊断覆盖率高:通过对未使用的内存采用校验算法,对全部内存进行了检测,内存检测仍然维持在高诊断覆盖率的水准;
3、在线检测算法执行效率高:通过对Abraham算法的优化和校验算法的使用,降低了算法的复杂度,减少了内存检测的操作,在保证诊断覆盖率的同时,还提高了内存检测的执行效率;
4、内存资源独立:采用独立模块加载的方式,保证了在线自检所使用的内存独立于操作系统和其它功能所使用的内存。


图1为本发明方法的流程示意图;图1为本发明装置的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,一种高效安全的计算机在线自检方法,包括以下步骤:
步骤1:启动在线自检装置,设备初始化模块初始化在线自检任务,并分配各在线自检任务所需使用的内存空间;
步骤2:获取在线自检的内存测试所必须的内存信息;
步骤3:获取预先设计好的测试数据和预期结果;
步骤4:设备初始化模块判断是否获取到继续执行在线自检的信号,若为是,则执行步骤5 ;若为否,则继续执行步骤4 ;
步骤5 =CPU检测模块进行CPU检测,若未检测到故障,则执行步骤6 ;若检测到故障,则执行步骤8;
步骤6:内存检测模块对不可变内存进行检测,若未检测到故障,则执行步骤7 ;若检测到故障,则执行步骤8;
步骤7:内存检测模块对可变内存进行检测,若未检测到故障,则执行步骤4 ;若检测到故障,则执行步骤8;
步骤8:失效处理:失效处理模块对检测到的故障进行相应处理(包括启动备用设备、重启或重新安装等),并将故障信息进行显示报警和记录,通过人机接口,可以对外显示报警:通过失效记录装置,可以记录下失效信息,供后期分析使用。
在Abraham算法中,第N次对内存进行操作,然后对第N次的内存操作结果进行检测,如果未检测到失效,则等待一定时间或者将cache刷新。在第(i+1)步首先对第i次内存操作结果进行检测。在本方法中,利用总线侦听技术,保证了 cache中数据和内存的一致性,无须在内存检测过程中考虑cache带来的影响,对cache —致性前后的运算进行优化,每处优化降低的复杂度为N,共计优化6处,算法的复杂度优化为24N。改进后的Abraham算法仍然采用m组测试数据,复杂度共计为24NXm,仅为当前算法的复杂度的80%,同时无须考虑cache带来的影响。对于未使用到的内存,使用32位校验算法计算内存数据,得到一个32位的校核字。该算法的复杂度仅为32N。本方法既减少了内存检测的操作,提高了效率,又保证了内存检测的诊断覆盖率。
如图2所示,执行上述高效安全的计算机在线方法的装置包括设备初始化模块a、CPU检测模块b、内存检测模块c和失效处理模块d,所述的设备初始化模块a、CPU检测模块b、内存检测模块c依次连接,失效处理模块d分别连接CPU检测模块b和内存检测模块C,内存检测模块c连接有外部校验装置e,失效处理模块d人机接口 f和失效记录装置g。
对各模块进行阐述:
1、设备初始化模块a:
设备初始化模块a用来初始化CPU检测模块b、内存检测模块c所需要使用到的硬件资源,同时还会配置外部设备,用以确定外部校验装置e、人机接口 f、失效记录装置g的连接。设备初始化模块a还会预先获取CPU测试和内存测试所需要的测试数据、预期结果、地址信息,并初始化在线自检结果。
2、CPU 检测模块 b:
CPU检测模块b对PowerPC架构的CPU进行检测。根据PowerPC架构的指令集特征,分别在用户模式下进行寄存器测试和指令测试。
寄存器测试包括通用寄存器测试和与运算相关的特殊寄存器测试。寄存器测试不仅检测寄存器的固定故障,还会检测寄存器之间的耦合故障;指令测试将PowerPC精简指令集结合安全计算机平台的应用所使用到的指令,按照指令的功能分为运算、逻辑操作、移位、跳转等若干类。根据预先设计好的测试数据和预期结果,依据EN50129标准的要求准备若干组高诊断覆盖率的数据作为输入源。输入源运算得到的结果与输入源对应的预期结果比较,如果一致,则指令测试通过,如果有任意不一致,则指令测试不通过。
3、内存检测模块c:
内存测试模块c对内存进行检测。待测内存区域由设备初始化模块a获取的内存测试信息得到,分别对不可变内存和可变内存进行检测。所述的可变内存测试采用的算法在不降低诊断覆盖率的前提下降低算法复杂度,且无需考虑cache的影响。所述的不可变内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为32N的校验算法。
不可变内存通过计算冗余校验码与预期结果进行比较,若一致,则不可变内存测试通过,若不一致,则不可变内存不通过;可变内存测试采用优化后的高诊断覆盖率算法实现,若算法结果通过,则将在线自检的结果发送给外部校验装置e进行进一步的安全防护,若算法结果不通过,则可变内存测试不通过。
4、失效处理模块d:
失效处理模块d将让安全计算机进入“失效-安全”状态,并保持“失效-安全”状态。根据设备初始化模块a的配置,选择性地对人机接口 f提供显式报警和在失效记录装置g中记录失效信息。
本发明已经被应用于轨道交通信号领域的安全等级达到SIL4的安全计算机平台中。在该安全计算机平台的实际运行中,本发明每周期在确定的时间段对CPU和2GB的内存进行检测,每周期的检测不超过30毫秒,对所有待测对象完成一次完整的测试不超过30分钟。本发明适用于嵌入式系统的所有安全计算机平台。
权利要求
1.一种高效安全的计算机在线自检方法,其特征在于,包括以下步骤: 1)启动在线自检装置,设备初始化模块初始化在线自检任务,并分配各在线自检任务所需使用的内存空间; 2)获取在线自检的内存测试所必须的内存信息; 3)获取预先设计好的测试数据和预期结果; 4)设备初始化模块判断是否获取到继续执行在线自检的信号,若为是,则执行步骤5);若为否,则继续执行步骤4); 5)CPU检测模块进行CPU检测,若未检测到故障,则执行步骤6);若检测到故障,则执行步骤8); 6)内存检测模块对不可变内存进行检测,若未检测到故障,则执行步骤7);若检测到故障,则执行步骤8); 7)内存检测模块对可变内存进行检测,若未检测到故障,则执行步骤4);若检测到故障,则执行步骤8); 8)失效处理:失效处理模块对检测到的故障进行相应处理,并将故障信息进行显示报警和记录。
2.根据权利要求1所述的一种高效安全的计算机在线方法,其特征在于,所述的CPU检测寄存器测试和指令测试。
3.根据权利要求1所述的一种高效安全的计算机在线方法,其特征在于,所述的内存检测模块可变内存测试和不可变内存测试。
4.根据权利要求2所述的一种高效安全的计算机在线方法,其特征在于,所述的寄存器测试的测试内容包括各寄存器的固定故障和寄存器之间的耦合故障。
5.根据权利要求2所述的一种高效安全的计算机在线方法,其特征在于,所述的指令测试具体为:根据预先设计好的测试数据和预期结果,以测试数据作为输入源,判断输入源运算得到的结果与输入源对应的预期结果是否一致,若是,则指令测试通过,若否,则指令测试不通过。
6.根据权利要求3所述的一种高效安全的计算机在线方法,其特征在于,所述的可变内存测试采用的算法在不降低诊断覆盖率的前提下降低算法复杂度,且无需考虑cache的影响。
7.根据权利要求3所述的一种高效安全的计算机在线方法,其特征在于,所述的不可变内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为32N的校验算法。
8.—种如权利要求1所述的高效安全的计算机在线装置,其特征在于,包括设备初始化模块、CPU检测模块、内存检测模块和失效处理模块,所述的设备初始化模块、CPU检测模块、内存检测模块依次连接,失效处理模块分别连接CPU检测模块和内存检测模块。
9.根据权利要求8所述的一种高效安全的计算机在线装置,其特征在于,所述的失效处理模块人机接口和失效记录装置。
10.根据权利要求8所述的一种高效安全的计算机在线装置,其特征在于,所述的内存检测模块连接有外部校验装置。
全文摘要
本发明涉及一种高效安全的计算机在线自检方法及自检装置,所述的自检方法包括设备初始化模块初始化在线自检任务,并分配各在线自检任务所需使用的内存空间,获取在线自检的内存测试所必须的内存信息及预先设计好的测试数据和预期结果;获取到继续执行在线自检的信号后,依次执行CPU检测、内存检测,并在检测到故障时执行失效处理,同时将故障信息进行显示报警和记录;所述的自检装置包括设备初始化模块、CPU检测模块、内存检测模块和失效处理模块。与现有技术相比,本发明结合内存所存储的数据特点,对现有算法进行优化,具有自检周期短、诊断覆盖率高、执行效率高、内存资源独立等优点。
文档编号G06F11/22GK103176876SQ20131008883
公开日2013年6月26日 申请日期2013年3月19日 优先权日2013年3月19日
发明者孙军峰, 王澜, 崔丹, 耿进龙, 张磊, 徐军, 汪明新 申请人:卡斯柯信号有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1