一种通过软件模拟SPARC处理器的故障的方法与流程

文档序号:18884308发布日期:2019-10-15 20:38阅读:628来源:国知局
一种通过软件模拟SPARC处理器的故障的方法与流程

本发明总的来说涉及航天专用处理器领域,具体而言,涉及一种通过软件模拟sparc处理器的故障的方法。



背景技术:

“可伸缩处理器架构”(scalableprocessorarchitecture,sparc)处理器是一种航天专用处理器,其广泛应用于航天设备中。sparc处理器对可靠性、安全性要求较高,因此一旦sparc处理器本身或软件发生异常,则处理器或软件就必须针对硬件、软件进行异常处理。

在正常情况下,计算机硬件或软件异常故障通常是可靠性验证的必不可少的条件。然而,大部分故障发生的环境是人工环境下无法再现的,因此要使用故障检测技术来还原故障发生环境。软件模拟故障是一种使用软件来模拟实现的故障检测技术。

处理器故障检测设计是一种有效的用于容错计算机系统验证的技术,其可验证容错系统中的容错机制的正确性以及容错机制进行故障处理的效率,以确保系统能够提供期望的正确服务。处理器故障检测设计是一种通过试验测评容错机制,验证系统应对异常能力,从而提高系统可靠性的有效办法。

通常,处理器故障检测设计是采取硬件信号触发,特殊情况下需要仿真宇宙射线辐射以及复杂电子情况下瞬时故障的发生的情形,这种情形复杂多变,模拟方式存在不确定性,较耗费时间和资源。

其次,对处理器使用硬件故障注入则必然增加相应的硬件,这势必会造成测试难度加大,并且侵入式硬件可能引发其它无法预知的故障。相比之下,软件模拟故障注入的方法是一种非硬件侵入式故障注入,可以避免这些问题。

软件实现的故障注入提供了廉价和易于控制的故障注入方法。软件实现的故障注入无需额外的硬件设备,可以在程序指令能够访问到的硬件或软件上选择故障注入位置。大多数软件实现的故障注入用来模拟硬件故障,故障可能出现在cpu、内存、总线或网络上,这些故障可用来验证系统是否具备识别和处理故障的能力。然而,针对sparc处理器,目前还没有一种既灵活又可靠的基于软件的故障模拟方案。



技术实现要素:

本发明的任务是,提供一种通过软件模拟sparc处理器的故障的方法,通过该方法,可以灵活且可靠地模拟sparc处理器的各种故障。

根据本发明,该任务通过一种通过软件模拟sparc处理器的故障的方法来解决,该方法包括下列步骤:

通过软件设置故障源以模拟sparc处理器的故障;

使sparc处理器进入管理员模式;以及

由软件针对spar处理器的故障采取相应措施。

在本发明的一个优选方案中规定,通过软件设置故障源以模拟sparc处理器的故障包括:

通过软件向处理器引入内部指令错误;和/或

对处理器进行外部中断。

在本发明的另一优选方案中规定,所述内部指令错误包括:

精确错误,其通过指令执行异常来生成,其中所述精确错误在sparc处理器的状态更改以前引入;和/或

延迟错误,其通过指令引入来生成,其中所述延迟错误在发生程序可见的状态之后引入。

在本发明的又一优选方案中规定,所述外部中断包括:

严重错误,其由程序状态寄存器psr中的处理器的中断级别处理器中断优先级域和故障使能域联合控制。

在本发明的另一优选方案中规定,故障源包括下列各项中的一个或多个:

浮点溢出、堆栈溢出、存储保护、非法请求、edac单错、edac双错、系统硬件错误、fpu错误、iu错误、以及狗咬错误。

在本发明的又一优选方案中规定,所述sparc处理器为卫星上的sparc处理器,该方法还包括步骤:

通过遥控指令一次或多次地模拟卫星上的sparc处理器的故障。

在本发明的另一优选方案中规定,由软件针对spar处理器的故障采取相应措施包括下列各项中的一个或多个:

重新读取io指令;

退回到出错的指令继续执行;

清空浮点队列寄存器并返回;

使软件复位并执行故障初始化路径;以及

直接复位。

本发明至少具有下列有益效果:(1)故障注入的位置比较灵活,可以在程序指令能够访问到的硬件或软件上选择故障注入位置,且既可注入硬件故障又能注入软件故障;(2)可以将故障注入到应用程序和操作系统,这是硬件故障注入无法做到的;(3)成本低,无需昂贵的额外硬件设备,且对目标系统硬件无损坏;(4)容易实现对目标系统的跟踪和回收数据,对目标系统依赖性小,可移植性强。

附图说明

下面结合具体实施方式参考附图进一步阐述本发明。

图1示出了根据本发明的通过软件模拟sparc处理器的故障的方法流程;

图2a-2c示出了根据本发明的方法的一个实施例。

具体实施方式

应当指出,各附图中的各组件可能为了图解说明而被夸大地示出,而不一定是比例正确的。在各附图中,给相同或功能相同的组件配备了相同的附图标记。

在本发明中,除非特别指出,“布置在…上”、“布置在…上方”以及“布置在…之上”并未排除二者之间存在中间物的情况。此外,“布置在…上或上方”仅仅表示两个部件之间的相对位置关系,而在一定情况下、如在颠倒产品方向后,也可以转换为“布置在…下或下方”,反之亦然。

在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。

在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。

在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景需要添加所需的部件或组件。

在此还应当指出,在本发明的范围内,“相同”、“相等”、“等于”等措辞并不意味着二者数值绝对相等,而是允许一定的合理误差,也就是说,所述措辞也涵盖了“基本上相同”、“基本上相等”、“基本上等于”。以此类推,在本发明中,表方向的术语“垂直于”、“平行于”等等同样涵盖了“基本上垂直于”、“基本上平行于”的含义。

另外,本发明的各方法的步骤的编号并未限定所述方法步骤的执行顺序。除非特别指出,各方法步骤可以以不同顺序执行。

本发明人通过研究具有如下洞察:模拟硬件的软件故障注入主要通过修改内存或寄存器的内容来实现,模拟软件的故障注入主要通过在编译前修改程序结构或在软件运行过程中破坏程序状态来实现;但由于系统及软件本身的复杂性和多样性,在实现上有很多不同;软件故障注入的目标可以是应用程序或操作系统;如果目标为应用程序,故障注入程序插入到应用程序中或作为应用程序和操作系统之间的一层。如果目标是操作系统,注入程序只能嵌入到操作系统中;基于软件模拟实现sparc微处理器故障检测的方法为分析待测处理器行为,使用软件的方式模拟硬件处理器故障,通过修改存储器或处理器内部的寄存器内容实现;对于模拟软件错误发生的故障注入通过软件变异的方法实现。

本发明的模拟软件方法在运行过程中发生死锁、机器错误、浮点溢出、定点溢出和飞程序等故障时,具有识别计算机硬件故障和软件故障的能力。

本发明具有如下有益效果:

(1)故障注入的位置比较灵活,可以在程序指令能够访问到的硬件或软件上选择故障注入位置,且既可注入硬件故障又能注入软件故障;

(2)可以将故障注入到应用程序和操作系统,这是硬件故障注入无法做到的;

(3)成本低,无需昂贵的额外硬件设备,且对目标系统硬件无损坏;

(4)容易实现对目标系统的跟踪和回收数据,对目标系统依赖性小,可移植性强。

图1示出了根据本发明的通过软件模拟sparc处理器的故障的方法流程100。

在步骤102,通过软件设置故障源以模拟sparc处理器的故障。

在步骤104,使sparc处理器进入管理员模。

在步骤106,由软件针对spar处理器的故障采取相应措施。

下面更详细地描述各方法步骤。

sparc处理器故障可能是由一条内部指令错误引发或者外部中断引起。故障通过特定的陷阱向量表跳转,故障发生时,处理器模式由用户模式转入管理员模式。故障分为以下三种类型:

1)精确错误precisetrap:这种故障是由于特定的指令执行异常导致的,在处理器更改状态之前引入。

2)延迟错误deferredtrap:由特定的指令引入,它可以在发生程序可见的状态之后引入。

3)严重错误interruptingtrap:由程序状态寄存器psr中的处理器的中断级别处理器中断优先级域和故障使能域联合控制。

针对这些故障,使用软件模拟的方式,设置浮点溢出、堆栈溢出、存储保护、非法请求、edac单错、edac双错、系统硬件错误、fpu错误、iu错误、狗咬错误模拟sparc处理器故障,查看软件针对sparc处理器故障处理是否正确。软件设计见表1。

表1故障说明

图2a-2c是软件模拟tsc695处理器故障的流程图,可通过遥控指令触发一次或多次。针对另一种sparc处理器tsc697,软件模拟故障方式类似。

针对模拟sparc处理器发生的故障,察看软件是否采取相应的措施:

1)可重启精确错误,这种情况由于io读到的数不稳定,采取返回的处理方式,让软件重新执行读io的指令;

2)可重启延迟错误,由于这种错误下一条指令已经预取进cpu的指令流水线,但还未执行,需要在返回前依次设置程序pc指针,使其退回出错时的指令继续执行;

3)浮点运算异常,其中当fsr的ftt=6的情况是可重启异常,清浮点队列寄存器后采取返回措施;

4)读取i/o校验错,表示读取i/o数据时发生数据校验错,采取返回措施让软件重新读i/o;

5)其他错误等,建立故障启动标志,并通过写软复位寄存器,使程序复位后执行故障初始化路径;

6)其中看门狗复位、处理器iu错误、edac双错等将直接导致复位。

本发明的特点在于:

(1)软件模拟sparc处理器故障的设计:该设计可简单方便实现sparc处理器故障,测试软件是否针对这些故障进行处理,尤其是软硬件结合处理的地方,无需提供额外的硬件开销;

(2)软件模拟sparc处理器故障的实现:由故障集抽象得到的故障脚本控制故障模拟,这种方式可以灵活的模拟故障类型、触发方式、位置、时间等因素;

(3)提高硬件平台完整性:软件模拟sparc处理器故障是一种非侵入式的故障模拟,在保证了待测试的硬件平台完整性的前提下,通过软件模拟方式进行故障模拟更能真实的反映硬件平台对注入故障的反映。

虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是本领域技术人员能够理解,这些实施方式仅仅是作为示例示出的。本领域技术人员在本发明的教导下可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1