《一种高效安全的计算机在线自检方法及自检装置.pdf》由会员分享,可在线阅读,更多相关《一种高效安全的计算机在线自检方法及自检装置.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103176876 A (43)申请公布日 2013.06.26 CN 103176876 A *CN103176876A* (21)申请号 201310088832.9 (22)申请日 2013.03.19 G06F 11/22(2006.01) (71)申请人 卡斯柯信号有限公司 地址 200070 上海市闸北区天目中路 428 号 27 楼 (72)发明人 孙军峰 王澜 崔丹 耿进龙 张磊 徐军 汪明新 (74)专利代理机构 上海科盛知识产权代理有限 公司 31225 代理人 赵继明 (54) 发明名称 一种高效安全的计算机在线自检方法及自检 装置 (57) 摘。
2、要 本发明涉及一种高效安全的计算机在线自 检方法及自检装置, 所述的自检方法包括 : 设备 初始化模块初始化在线自检任务, 并分配各在线 自检任务所需使用的内存空间, 获取在线自检的 内存测试所必须的内存信息及预先设计好的测 试数据和预期结果 ; 获取到继续执行在线自检的 信号后, 依次执行 CPU 检测、 内存检测, 并在检测 到故障时执行失效处理, 同时将故障信息进行显 示报警和记录 ; 所述的自检装置包括设备初始化 模块、 CPU 检测模块、 内存检测模块和失效处理模 块。 与现有技术相比, 本发明结合内存所存储的数 据特点, 对现有算法进行优化, 具有自检周期短、 诊断覆盖率高、 执行。
3、效率高、 内存资源独立等优 点。 (51)Int.Cl. 权利要求书 1 页 说明书 4 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书4页 附图2页 (10)申请公布号 CN 103176876 A CN 103176876 A *CN103176876A* 1/1 页 2 1. 一种高效安全的计算机在线自检方法, 其特征在于, 包括以下步骤 : 1) 启动在线自检装置, 设备初始化模块初始化在线自检任务, 并分配各在线自检任务 所需使用的内存空间 ; 2) 获取在线自检的内存测试所必须的内存信息 ; 3) 获取预先设计好的测试数据和预期。
4、结果 ; 4) 设备初始化模块判断是否获取到继续执行在线自检的信号, 若为是, 则执行步骤 5) ; 若为否, 则继续执行步骤 4) ; 5)CPU检测模块进行CPU检测, 若未检测到故障, 则执行步骤6) ; 若检测到故障, 则执行 步骤 8) ; 6) 内存检测模块对不可变内存进行检测, 若未检测到故障, 则执行步骤 7) ; 若检测到 故障, 则执行步骤 8) ; 7) 内存检测模块对可变内存进行检测, 若未检测到故障, 则执行步骤 4) ; 若检测到故 障, 则执行步骤 8) ; 8) 失效处理 : 失效处理模块对检测到的故障进行相应处理, 并将故障信息进行显示报 警和记录。 2.根据。
5、权利要求1所述的一种高效安全的计算机在线方法, 其特征在于, 所述的CPU检 测寄存器测试和指令测试。 3. 根据权利要求 1 所述的一种高效安全的计算机在线方法, 其特征在于, 所述的内存 检测模块可变内存测试和不可变内存测试。 4. 根据权利要求 2 所述的一种高效安全的计算机在线方法, 其特征在于, 所述的寄存 器测试的测试内容包括各寄存器的固定故障和寄存器之间的耦合故障。 5. 根据权利要求 2 所述的一种高效安全的计算机在线方法, 其特征在于, 所述的指令 测试具体为 : 根据预先设计好的测试数据和预期结果, 以测试数据作为输入源, 判断输入源 运算得到的结果与输入源对应的预期结果是。
6、否一致, 若是, 则指令测试通过, 若否, 则指令 测试不通过。 6. 根据权利要求 3 所述的一种高效安全的计算机在线方法, 其特征在于, 所述的可变 内存测试采用的算法在不降低诊断覆盖率的前提下降低算法复杂度, 且无需考虑 cache 的 影响。 7. 根据权利要求 3 所述的一种高效安全的计算机在线方法, 其特征在于, 所述的不可 变内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为 32N 的校验算法。 8. 一种如权利要求 1 所述的高效安全的计算机在线装置, 其特征在于, 包括设备初始 化模块、 CPU 检测模块、 内存检测模块和失效处理模块, 所述的设备初始化模块、 CPU 。
7、检测模 块、 内存检测模块依次连接, 失效处理模块分别连接 CPU 检测模块和内存检测模块。 9. 根据权利要求 8 所述的一种高效安全的计算机在线装置, 其特征在于, 所述的失效 处理模块人机接口和失效记录装置。 10. 根据权利要求 8 所述的一种高效安全的计算机在线装置, 其特征在于, 所述的内存 检测模块连接有外部校验装置。 权 利 要 求 书 CN 103176876 A 2 1/4 页 3 一种高效安全的计算机在线自检方法及自检装置 技术领域 0001 本发明涉及一种安全 (Safety) 领域内设备自检方法及装置, 尤其是涉及一种高 效安全的计算机在线自检方法及自检装置。 背景技。
8、术 0002 在线自检是实现计算机平台安全运行的基础。 一般是对计算机平台的CPU、 内存进 行周期式的检测, 确保计算机平台的安全性, 在检测到硬件失效后及时、 有效地进行必要的 干预。CPU 检测通常执行效率很高, 可以在很短的时间内完成 ; 内存检测通常待测区域非常 大, 高安全的检测算法复杂度较高, 往往耗时非常长。 0003 随着嵌入式领域对安全越来越重视, 安全计算机通信数据量大、 通信行为的不确 定性和应用处理时间较长, 往往使 CPU 占用率过高, 用于执行内存检测的时间非常短, 而内 存待测区域又非常大。那么就会面临下列问题 : 0004 1、 自检周期的问题 : 随着通信量。
9、的增加和应用的丰富, 计算机平台会使用更大的 内存, 以满足日益增长的通信和应用开销。 在线自检所花费的时间会越来越多, 自检周期往 往会达到数小时级甚至数十小时级别。 0005 2、 诊断覆盖率的问题 : 为了保证在线自检的高效, 在线自检通常会采用诊断覆盖 率相对较低的技术, 在提高在线自检效率的同时会牺牲一定的安全性。对于未使用到的内 存, 现有的技术通常使用 Abraham 算法进行检测, 或是不对其进行测试。使用 Abraham 算法 检测使得内存的检测周期非常的长, 尤其是通信量的增大和应用的丰富, 使得内存容量达 到数百 MB 甚至几 GB。往往达到数小时级别甚至数十小时级别。不。
10、对未使用的内存进行检 测会使整个内存的诊断覆盖率降低, 无法达到算法预期的 99。 0006 3、 现有的高安全性在线检测算法执行效率问题 : 对于使用到的内存检测通常采用 Abraham算法, 使用32位处理器对一个N个字长的内存块进行检测, 目前最优算法的复杂度 为 30Nm, 其中, 算法复杂度为 30N, 需要采用 m 组测试数据。在带有 cache 的处理器中, 内 存检测的时候会直接读取 cache 中的数据, 无法真正起到检测内存的目的, 会给算法的诊 断覆盖率带来一定的影响。为了保证 cache 不影响到内存检测算法的有效性, 会采用禁用 cache 和等待 cache 数据过。
11、期的办法, 这样的方法会导致内存检测的耗时过长。 0007 4、 在线自检的内存资源与其它功能耦合强的问题 : 在线自检作为安全计算机的一 部分, 往往会将使用的内存与计算机其它功能和操作系统所使用内存相互混合在一起, 增 加了数据存储的耦合性。 发明内容 0008 本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种自检周期短、 诊 断覆盖率高、 执行效率高、 内存资源独立的高效安全的计算机在线自检方法及自检装置。 0009 本发明的目的可以通过以下技术方案来实现 : 0010 一种高效安全的计算机在线自检方法, 包括以下步骤 : 说 明 书 CN 103176876 A 3 2/4 页。
12、 4 0011 1) 启动在线自检装置, 设备初始化模块初始化在线自检任务, 并分配各在线自检 任务所需使用的内存空间 ; 0012 2) 获取在线自检的内存测试所必须的内存信息 ; 0013 3) 获取预先设计好的测试数据和预期结果 ; 0014 4) 设备初始化模块判断是否获取到继续执行在线自检的信号, 若为是, 则执行步 骤 5) ; 若为否, 则继续执行步骤 4) ; 0015 5)CPU检测模块进行CPU检测, 若未检测到故障, 则执行步骤6) ; 若检测到故障, 则 执行步骤 8) ; 0016 6) 内存检测模块对不可变内存进行检测, 若未检测到故障, 则执行步骤 7) ; 若检。
13、 测到故障, 则执行步骤 8) ; 0017 7) 内存检测模块对可变内存进行检测, 若未检测到故障, 则执行步骤 4) ; 若检测 到故障, 则执行步骤 8) ; 0018 8) 失效处理 : 失效处理模块对检测到的故障进行相应处理, 并将故障信息进行显 示报警和记录。 0019 所述的 CPU 检测寄存器测试和指令测试。 0020 所述的内存检测模块可变内存测试和不可变内存测试。 0021 所述的寄存器测试的测试内容包括各寄存器的固定故障和寄存器之间的耦合故 障。 0022 所述的指令测试具体为 : 根据预先设计好的测试数据和预期结果, 以测试数据作 为输入源, 判断输入源运算得到的结果与。
14、输入源对应的预期结果是否一致, 若是, 则指令测 试通过, 若否, 则指令测试不通过。 0023 所述的可变内存测试采用的算法在不降低诊断覆盖率的前提下降低算法复杂度, 且无需考虑 cache 的影响。 0024 所述的不可变内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为 32N 的校验算法。 0025 一种高效安全的计算机在线装置, 包括设备初始化模块、 CPU 检测模块、 内存检测 模块和失效处理模块, 所述的设备初始化模块、 CPU 检测模块、 内存检测模块依次连接, 失效 处理模块分别连接 CPU 检测模块和内存检测模块。 0026 所述的失效处理模块人机接口和失效记录装置。 。
15、0027 所述的内存检测模块连接有外部校验装置。 0028 与现有技术相比, 本发明具有以下优点 : 0029 1、 自检周期缩短 : 结合内存所存储的数据特点, 分别优化内存检测算法, 提高了内 存检测算法的执行效率, 极大的缩短了自检周期 ; 0030 2、 诊断覆盖率高 : 通过对未使用的内存采用校验算法, 对全部内存进行了检测, 内 存检测仍然维持在高诊断覆盖率的水准 ; 0031 3、 在线检测算法执行效率高 : 通过对 Abraham 算法的优化和校验算法的使用, 降 低了算法的复杂度, 减少了内存检测的操作, 在保证诊断覆盖率的同时, 还提高了内存检测 的执行效率 ; 0032 。
16、4、 内存资源独立 : 采用独立模块加载的方式, 保证了在线自检所使用的内存独立 说 明 书 CN 103176876 A 4 3/4 页 5 于操作系统和其它功能所使用的内存。 附图说明图 1 为本发明方法的流程示意图 ; 图 1 为本发明装置的结构示意图。 具体实施方式 0033 下面结合附图和具体实施例对本发明进行详细说明。 本实施例以本发明技术方案 为前提进行实施, 给出了详细的实施方式和具体的操作过程, 但本发明的保护范围不限于 下述的实施例。 0034 如图 1 所示, 一种高效安全的计算机在线自检方法, 包括以下步骤 : 0035 步骤 1 : 启动在线自检装置, 设备初始化模块。
17、初始化在线自检任务, 并分配各在线 自检任务所需使用的内存空间 ; 0036 步骤 2 : 获取在线自检的内存测试所必须的内存信息 ; 0037 步骤 3 : 获取预先设计好的测试数据和预期结果 ; 0038 步骤 4 : 设备初始化模块判断是否获取到继续执行在线自检的信号, 若为是, 则执 行步骤 5 ; 若为否, 则继续执行步骤 4 ; 0039 步骤 5 : CPU 检测模块进行 CPU 检测, 若未检测到故障, 则执行步骤 6 ; 若检测到故 障, 则执行步骤 8 ; 0040 步骤 6 : 内存检测模块对不可变内存进行检测, 若未检测到故障, 则执行步骤 7 ; 若 检测到故障, 则。
18、执行步骤 8 ; 0041 步骤 7 : 内存检测模块对可变内存进行检测, 若未检测到故障, 则执行步骤 4 ; 若检 测到故障, 则执行步骤 8 ; 0042 步骤8 : 失效处理 : 失效处理模块对检测到的故障进行相应处理(包括启动备用设 备、 重启或重新安装等 ), 并将故障信息进行显示报警和记录, 通过人机接口, 可以对外显示 报警 : 通过失效记录装置, 可以记录下失效信息, 供后期分析使用。 0043 在 Abraham 算法中, 第 N 次对内存进行操作, 然后对第 N 次的内存操作结果进行检 测, 如果未检测到失效, 则等待一定时间或者将 cache 刷新。在第 (i+1) 步。
19、首先对第 i 次内 存操作结果进行检测。在本方法中, 利用总线侦听技术, 保证了 cache 中数据和内存的一致 性, 无须在内存检测过程中考虑 cache 带来的影响, 对 cache 一致性前后的运算进行优化, 每处优化降低的复杂度为 N, 共计优化 6 处, 算法的复杂度优化为 24N。改进后的 Abraham 算法仍然采用m组测试数据, 复杂度共计为24Nm, 仅为当前算法的复杂度的80, 同时无 须考虑 cache 带来的影响。对于未使用到的内存, 使用 32 位校验算法计算内存数据, 得到 一个 32 位的校核字。该算法的复杂度仅为 32N。本方法既减少了内存检测的操作, 提高了 。
20、效率, 又保证了内存检测的诊断覆盖率。 0044 如图 2 所示, 执行上述高效安全的计算机在线方法的装置包括设备初始化模块 a、 CPU 检测模块 b、 内存检测模块 c 和失效处理模块 d, 所述的设备初始化模块 a、 CPU 检测模 块 b、 内存检测模块 c 依次连接, 失效处理模块 d 分别连接 CPU 检测模块 b 和内存检测模块 c, 内存检测模块 c 连接有外部校验装置 e, 失效处理模块 d 人机接口 f 和失效记录装置 g。 0045 对各模块进行阐述 : 0046 1、 设备初始化模块 a : 说 明 书 CN 103176876 A 5 4/4 页 6 0047 设备初。
21、始化模块a用来初始化CPU检测模块b、 内存检测模块c所需要使用到的硬 件资源, 同时还会配置外部设备, 用以确定外部校验装置 e、 人机接口 f、 失效记录装置 g 的 连接。设备初始化模块 a 还会预先获取 CPU 测试和内存测试所需要的测试数据、 预期结果、 地址信息, 并初始化在线自检结果。 0048 2、 CPU 检测模块 b : 0049 CPU 检测模块 b 对 PowerPC 架构的 CPU 进行检测。根据 PowerPC 架构的指令集特 征, 分别在用户模式下进行寄存器测试和指令测试。 0050 寄存器测试包括通用寄存器测试和与运算相关的特殊寄存器测试。 寄存器测试不 仅检测。
22、寄存器的固定故障, 还会检测寄存器之间的耦合故障 ; 指令测试将 PowerPC 精简指 令集结合安全计算机平台的应用所使用到的指令, 按照指令的功能分为运算、 逻辑操作、 移 位、 跳转等若干类。根据预先设计好的测试数据和预期结果, 依据 EN50129 标准的要求准备 若干组高诊断覆盖率的数据作为输入源。 输入源运算得到的结果与输入源对应的预期结果 比较, 如果一致, 则指令测试通过, 如果有任意不一致, 则指令测试不通过。 0051 3、 内存检测模块 c : 0052 内存测试模块 c 对内存进行检测。待测内存区域由设备初始化模块 a 获取的内存 测试信息得到, 分别对不可变内存和可变。
23、内存进行检测。所述的可变内存测试采用的算法 在不降低诊断覆盖率的前提下降低算法复杂度, 且无需考虑 cache 的影响。所述的不可变 内存测试采用的算法为在不降低诊断覆盖率的前提下复杂度为 32N 的校验算法。 0053 不可变内存通过计算冗余校验码与预期结果进行比较, 若一致, 则不可变内存测 试通过, 若不一致, 则不可变内存不通过 ; 可变内存测试采用优化后的高诊断覆盖率算法实 现, 若算法结果通过, 则将在线自检的结果发送给外部校验装置 e 进行进一步的安全防护, 若算法结果不通过, 则可变内存测试不通过。 0054 4、 失效处理模块 d : 0055 失效处理模块 d 将让安全计算。
24、机进入 “失效 - 安全” 状态, 并保持 “失效 - 安全” 状 态。根据设备初始化模块 a 的配置, 选择性地对人机接口 f 提供显式报警和在失效记录装 置 g 中记录失效信息。 0056 本发明已经被应用于轨道交通信号领域的安全等级达到 SIL4 的安全计算机平台 中。在该安全计算机平台的实际运行中, 本发明每周期在确定的时间段对 CPU 和 2GB 的内 存进行检测, 每周期的检测不超过 30 毫秒, 对所有待测对象完成一次完整的测试不超过 30 分钟。本发明适用于嵌入式系统的所有安全计算机平台。 说 明 书 CN 103176876 A 6 1/2 页 7 图 1 说 明 书 附 图 CN 103176876 A 7 2/2 页 8 图 2 说 明 书 附 图 CN 103176876 A 8 。