一种X86架构CPU寄存器在线故障检测方法及装置制造方法及图纸

技术编号:17561614 阅读:37 留言:0更新日期:2018-03-28 12:10
本公开涉及一种X86架构CPU寄存器在线故障检测方法及装置,其中,所述方法包括下述步骤对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。与已有检测技术相比,该方法能够检测CPU共模错误,故障覆盖率高;对寄存器的初始值进行了保护和恢复处理,确保检测的可靠性,并且不影响其他线程的执行。

An on-line fault detection method and device for CPU register in X86 architecture

The invention relates to a X86 architecture CPU register online fault detection method and device, wherein, the method comprises the following steps of multi processor real-time operating system to work at the same time, in turn register fault detection for each processor; before the processor registers fault detection, the processor scheduling and interrupt response stop stop, the rest of the processor the normal work; in the processor register fault detection, if register fault detection time exceeds the set value, judging the failure detection; after the processor register fault detection, the processor scheduling and interrupt response recovery. Compared with the existing detection technology, the proposed method can detect CPU common mode errors and high fault coverage. The initial value of registers is protected and processed to ensure the reliability of detection and does not affect the execution of other threads.

【技术实现步骤摘要】
一种X86架构CPU寄存器在线故障检测方法及装置
本公开涉及安全计算机,具体涉及一种X86架构CPU寄存器在线故障检测方法及装置。
技术介绍
安全计算机的安全完整度达到SIL4级,适用于多种地面信号设备,可提供安全运算、存储、通信等功能,并能提升系统的性能和可维护性。随着铁路信号技术的发展,地面信号系统逻辑运算单元承载的业务越来越庞大复杂,要求安全计算机的逻辑运算硬件平台能提供足够的性能支撑。作为支持运算功能的关键组件,CPU中的寄存器如果出现性能故障,例如读写错误、运算标志位失效等,都将引起逻辑运算结果错误,导致危险情况的发生。因此,寄存器故障的在线检测对于保证寄存器的正常工作和安全计算机的稳定运行具有十分重要的意义。安全计算机采用二乘二取二的架构,双CPU的结构和动作相同,且所有输入输出数据均需经过双CPU比较一致才有效。若两CPU发生共模故障,则可能导致取二运算失效,使不同的数据通过比较。目前已有的寄存器检测方案不能检测CPU共模故障,因而无法完全防护此类安全风险。
技术实现思路
针对上述问题,本公开提出了一种X86架构CPU寄存器在线故障检测方法及装置,通过本公开的方法及装置,可以在不影响其它线程调度的情况下,检测多处理器的共模故障。一种X86架构CPU寄存器在线故障检测方法,所述方法包括下述步骤:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。优选地,在所述处理器停止调度和停止中断响应时,所述方法包括下述步骤:若任何一个处理器关于处理器停止调度和停止中断响应操作首次出现失败,则停止该次寄存器故障检测,恢复该处理器调度和中断响应;若任何一个处理器关于停止处理器调度或停止中断响应操作连续两次失败,则判定该多处理器实时操作系统存在故障。在所述方法中,其中所述寄存器故障检测中涉及的寄存器包括:可读写寄存器、部分可读写寄存器。在所述方法中,其中所述关于处理器停止调度和停止中断响应操作通过设立错误计数器统计失败次数;当所述操作成功时,所述错误计数器清零。在所述方法中,其中所述寄存器故障检测包括下述步骤:S100、对待检测的当前寄存器,确定该寄存器可读写位;S200、保存该寄存器可读写位的当前值;S300、向所述可读写位写入测试数据再读出,判断读出的数据与预期结果是否相符;S400、在判断后,恢复所述可读写位的值。在所述方法中,其中所述寄存器故障检测包括下述步骤:若当前寄存器故障检测失败,剩余寄存器均不再检测,判定本次检测失败;否则,继续检测下一个寄存器,直至所有寄存器检测通过,判定本次检测成功。在所述方法中,其中在轮流对每个处理器进行寄存器故障检测之前包括下述步骤:根据系统时间戳,确定多处理器的检测时间和检测间隔。在所述方法中,其中所述步骤S200包括下述步骤:若寄存器属于通用寄存器,则将该寄存器的值保存在内存中;若寄存器属于控制寄存器或调试寄存器,则将该寄存器的值压入已检测过的通用寄存器进行保存。在所述方法中,其中在所述步骤S100之前,所述方法包括下述步骤:获取应用程序中涉及的寄存器。在所述方法中,其中所述步骤S300包括下述步骤:若所述可读写位的位数小于测试数据的位数,则屏蔽寄存器不可以写位的数据。在所述方法中,其中所述测试数据包括EN50129-2003中的数据位组合构成。根据所述方法,本公开实现了一种X86架构CPU寄存器在线故障检测装置,所述装置包括下述模块:寄存器故障检测模块,被配置用于:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。在所述装置中,其中所述寄存器故障检测模块包括下述单元:第一单元,被配置用于:当任何一个处理器关于处理器停止调度和停止中断响应操作首次出现失败,则停止该次寄存器故障检测,恢复该处理器调度和中断响应;当任何一个处理器关于停止处理器调度或停止中断响应操作连续两次失败,则判定该多处理器实时操作系统存在故障。在所述装置中,其中所述关于处理器停止调度和停止中断响应操作通过设立错误计数器统计失败次数;当所述操作成功时,所述错误计数器清零。在所述装置中,其中所述寄存器故障检测中涉及的寄存器包括:可读写寄存器、部分可读写寄存器。在所述装置中,其中所述寄存器故障检测模块包括下述单元:获取单元,被配置用于:对待检测的当前寄存器,获取该寄存器可读写位;保存单元,被配置用于:对所述待测的当前寄存器,保存该寄存器可读写位的当前值;判断单元,被配置用于:对所述待测的当前寄存器,向所述可读写位写入测试数据再读出,判断读出的数据与预期结果是否相符;恢复单元,被配置用于:对所述待测的当前寄存器,在判断后,恢复所述可读写位的值。在所述装置中,其中所述寄存器故障检测模块包括下述单元:第二单元,被配置用于:若当前寄存器故障检测失败,剩余寄存器均不再检测,判定本次检测失败;否则,继续检测下一个寄存器,直至所有寄存器检测通过,判定本次检测成功。在所述装置中,其中所述寄存器故障检测模块包括下述单元:第三单元,被配置用于:根据系统时间戳,确定多处理器的检测时间和检测间隔。在所述装置中,其中所述保存单元进一步被配置用于:若寄存器属于通用寄存器,则将该寄存器的值保存在内存中;若寄存器属于控制寄存器或调试寄存器,则将该寄存器的值压入已检测过的通用寄存器进行保存。在所述装置中,其中所述装置包括寄存器获取模块;所述寄存器获取模块,被配置用于:获取应用程序中涉及的寄存器。在所述装置中,其中所述判断单元进一步被配置用于:若所述可读写位的位数小于测试数据的位数,则屏蔽寄存器不可以写位的数据。在所述装置中,其中所述测试数据包括EN50129-2003中的数据位组合构成。另外,本公开还提供了一种计算机可读存储介质,所述计算机可读存储截至中包括一个或多个程序,所述一个或多个程序用于执行上述方法中任一所述的方法。最后,本公开提供了一种数据处理设备,所述数据处理设备包括:上述计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。附图说明图1本公开一个实施例中的方法流程示意图;图2本公开一个实施例中的装置结构示意图。具体实施方式在一个实施例中,提供了一种X86架构CPU寄存器在线故障检测方法,所述方法包括下述步骤:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。在该实施例中,对于同时工作的多处理器实时操作系统,比如采用二乘二取二的架构的安全计算机,双CPU的结本文档来自技高网...
一种X86架构CPU寄存器在线故障检测方法及装置

【技术保护点】
一种X86架构CPU寄存器在线故障检测方法,其特征在于,所述方法包括下述步骤:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。

【技术特征摘要】
1.一种X86架构CPU寄存器在线故障检测方法,其特征在于,所述方法包括下述步骤:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;在对处理器进行寄存器故障检测时,若寄存器故障检测时间超过设定值,则判断检测失败;在对处理器进行寄存器故障检测之后,该处理器恢复调度和中断响应。2.根据权利要求1所述的方法,其特征在于,在所述处理器停止调度和停止中断响应时,所述方法包括下述步骤:若任何一个处理器关于处理器停止调度和停止中断响应操作首次出现失败,则停止该次寄存器故障检测,恢复该处理器调度和中断响应;若任何一个处理器关于停止处理器调度或停止中断响应操作连续两次失败,则判定该多处理器实时操作系统存在故障。3.根据权利要求2所述的方法,其特征在于:所述关于处理器停止调度和停止中断响应操作通过设立错误计数器统计失败次数;当所述操作成功时,所述错误计数器清零。4.根据权利要求1所述的方法,其特征在于,所述寄存器故障检测中涉及的寄存器包括:可读写寄存器、部分可读写寄存器。5.根据权利要求1所述的方法,其特征在于,所述寄存器故障检测包括下述步骤:S100、对待检测的当前寄存器,确定该寄存器可读写位;S200、保存该寄存器可读写位的当前值;S300、向所述可读写位写入测试数据再读出,判断读出的数据与预期结果是否相符;S400、在判断后,恢复所述可读写位的值。6.根据权利要求1所述的方法,其特征在于,所述寄存器故障检测包括下述步骤:若当前寄存器故障检测失败,剩余寄存器均不再检测,判定本次检测失败;否则,继续检测下一个寄存器,直至所有寄存器检测通过,判定本次检测成功。7.根据权利要求1所述的方法,其特征在于,在轮流对每个处理器进行寄存器故障检测之前包括下述步骤:根据系统时间戳,确定多处理器的检测时间和检测间隔。8.根据权利要求5所述的方法,其特征在于,所述步骤S200包括下述步骤:若寄存器属于通用寄存器,则将该寄存器的值保存在内存中;若寄存器属于控制寄存器或调试寄存器,则将该寄存器的值压入已检测过的通用寄存器进行保存。9.根据权利要求5所述的方法,其特征在于,在所述步骤S100之前,所述方法包括下述步骤:获取应用程序中涉及的寄存器。10.根据权利要求5所述的方法,其特征在于,所述步骤S300包括下述步骤:若所述可读写位的位数小于测试数据的位数,则屏蔽寄存器不可以写位的数据。11.根据权利要求5所述的方法,其特征在于,所述测试数据包括EN50129-2003中的数据位组合构成。12.一种X86架构CPU寄存器在线故障检测装置,其特征在于,所述装置包括下述模块:寄存器故障检测模块,被配置用于:对同时工作的多处理器实时操作系统,轮流对每个处理器进行寄存器故障检测;在对处理器进行寄存器故障检测之前,该处理器停止调度和停止中断响应,其余处理器正常工作;...

【专利技术属性】
技术研发人员:左林刘贞王一民郭薇薇黄雅倩
申请(专利权)人:北京全路通信信号研究设计院集团有限公司
类型:发明
国别省市:北京,11

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

1