处理器指令Cache单粒子翻转软错误的防护方法与流程

文档序号:17397783发布日期:2019-04-13 00:57阅读:823来源:国知局
处理器指令Cache单粒子翻转软错误的防护方法与流程

本发明涉及航天技术领域,具体地,涉及一种处理器指令cache单粒子翻转软错误的防护方法。



背景技术:

随着航天器向长寿命高可靠方向发展,银河宇宙线、太阳宇宙线以及地球辐射带中的高能带电粒子,特别是其中的重离子等造成的单粒子翻转,成为航天器在轨可靠运行必须关注的一个关键因素。单粒子翻转是针对逻辑器件和逻辑电路的带电粒子辐射效应。单个空间高能带电粒子轰击到大规模、超大规模集成电路中微电子器件的芯片时,会引起逻辑器件或电路的瞬时逻辑错误或硬错误,比如存储器单元存储的数据发生翻转(“1”翻到“0”或“0”翻到“1”)而造成数据处理错误、电路逻辑功能混乱等。

powerpc(ppc)750是ppc体系架构下的一款高性能处理器,具备了诸如多指令并发和乱序执行等高速特性,处理能力可达到100~300mips,在欧美宇航领域有着广泛的应用。其宇航加固型是由英国baesystems公司生产的rad750,曾应用于nasa的火星轨道探测器、费米射电望远镜、太阳能动力学天文台等宇航项目,截止2010年底,已经有超过150个空间飞行器使用了rad750。鉴于ppc750的高性能和丰富的应用经验,ppc750已逐步成为我国下一代高性能宇航计算机的主要发展方向之一。

然而,目前国内尚没有对应rad750的加固型ppc750处理器,并且对于这种高速处理器的抗辐射加固研究也刚刚处于起步阶段。作为高性能处理器的主要单粒子敏感部件,指令cache中的单粒子翻转会引起程序流中的软错误,给处理器在星载计算机产品中的应用带来问题。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种处理器指令cache单粒子翻转软错误的防护方法。

第一方面,本发明实施例提供一种处理器指令cache单粒子翻转软错误的防护方法,包括:

确定处理器指令cache单粒子翻转所引起的故障异常类型;

根据所述故障异常类型,绑定单粒子翻转软错误恢复函数;

当单粒子翻转软错误引起故障时,根据故障异常类型,启动相应的单粒子翻转软错误恢复函数;

通过所述单粒子翻转软错误恢复函数,保存处理器的异常返回地址寄存器中的返回地址,并对处理器指令cache进行无效化操作;

通过所述返回地址确定单粒子翻转发生的地址;

从主存储器中重新获取所述单粒子翻转发生的地址对应的数据,执行单粒子翻转的数据修复。

可选地,确定处理器指令cache单粒子翻转所引起的故障异常类型,包括:

从处理器自身异常类型数据库中,查找处理器指令cache单粒子翻转所引起的故障异常类型。

可选地,根据所述故障异常类型,绑定单粒子翻转软错误恢复函数之后,还包括:

将单粒子翻转软错误恢复函数所在地址区域设置为缓存抑制模式,并配置处理器mmu中的异常分区映射类型为缓存抑制。

可选地,通过所述单粒子翻转软错误恢复函数保存处理器的异常返回地址寄存器中的返回地址,包括:

所述单粒子翻转软错误恢复函数中至少定义两个不同的变量用于存储两份处理器的异常返回地址寄存器中的返回地址。

可选地,对处理器指令cache进行无效化操作,包括:

通过设置处理器hid0寄存器的icfi位来执行无效化操作;其中,处理器指令cache的状态位均被设为无效。

可选地,在通过所述返回地址确定单粒子翻转发生的地址之前,还包括:

所述单粒子翻转软错误恢复函数等待处理器指令cache完成无效化操作;其中,所述单粒子翻转软错误恢复函数通过插入sync指令来表征cache完成无效操作。

可选地,通过所述返回地址确定单粒子翻转发生的地址,包括:

将所述单粒子翻转软错误恢复函数保存的两份返回地址与处理器异常返回地址寄存器中的地址进行三取二处理,得到所述返回地址

与现有技术相比,本发明具有如下的有益效果:

本发明基于处理器自身的cache操作异常控制机制,对单粒子翻转引起的程序软错误进行有效恢复,解决了高性能处理器在星载计算机中应用的问题。除此以外,还达到了如下的有益效果:

1.不需要在处理器芯片内部增加校验纠错电路,不受处理器自身的工艺设计变化影响,通过软硬件结合来实现单粒子翻转防护,不需要使用额外的硬件资源,达到沿用现有架构、节省研制成本的目标;

2.不占用额外的软件资源,不需要更改现有的用户软件工作流程,不影响用户软件的执行效率;

3.可以推广到不同的risc型处理器,具有广泛的适用性。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例一提供的处理器指令cache单粒子翻转软错误的防护方法的流程图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

为了解决高性能处理器在星载计算机中应用中,遇到在轨单粒子翻转引起的程序软错误的问题,本发明提供一种处理器指令cache单粒子翻转软错误的防护方法。下面结合高性能处理器ppc750指令cache单粒子翻转软错误,以具体地实施例对本发明的技术方案进行详细说明。需要说明的是,本发明实施例不对处理器的型号做具体限定,本发明实施例提供的方法也可以广泛地应用于其他类型的处理器。

图1为本发明实施例一提供的处理器指令cache单粒子翻转软错误的防护方法的流程图,如图1所示,本实施例中的方法可以包括:

s1、确定处理器指令cache单粒子翻转所引起的故障异常类型。

本实施例中,定义ppc750处理器指令cache单粒子翻转可能引起的故障异常类型。

在一可选实施方式中,故障异常类型是处理器自身异常类型的子集。由于步骤s1中定义的依据是根据指令cache中发生单粒子翻转事件后引发的处理器故障异常类型,因而,指令cache中单粒子翻转软错误都会引发处理器的特定故障异常。同时异常处理机制有自己的硬件逻辑,不依赖指令cache和用户软件的操作正确性,在指令cache和用户软件由于单粒子翻转事件发生异常时,仍然能够确保正确地跳转至相应异常函数。

在步骤s1中,指令cache单粒子翻转可能引起的故障异常类型都至少需要定义程序(program)异常。这是由于指令cache单粒子翻转软错误与程序异常的关系最为紧密,绝大多数软错误最终都会引发程序异常。

在步骤s1中,指令cache单粒子翻转可能引起的故障异常类型可以额外定义外部中断(externalinterrupt)异常,从而允许通过外部中断的方式,作为故障注入手段验证异常恢复函数的效果。

s2、根据故障异常类型,绑定单粒子翻转软错误恢复函数。

本实施例中,根据s1中的异常类型绑定单粒子翻转软错误恢复函数;

在步骤s2中,所有s1中定义的异常类型都应该绑定单粒子翻转软错误恢复函数。单粒子翻转软错误恢复函数应当在执行其他异常处理操作之前进行,避免其他异常处理操作由于使用指令cache而造成二次中断故障异常。

在一可选实施方式中,在步骤s2之后,将恢复函数所在地址区域设置为缓存抑制(cacheinhibited)模式,还可以进一步为配置处理器mmu中的异常分区映射类型为缓存抑制。

mmu的配置应当在程序初始化阶段完成,即在启用指令cache之前,因而可以确保恢复函数所在地址区域不会被映射到指令cache中去。

s3、当单粒子翻转软错误引起故障时,根据故障异常类型,启动相应的单粒子翻转软错误恢复函数。

本实施例中,一旦软件流程被正常启动后,故障异常的捕获是由处理器硬件自动完成,不依赖指令cache和软件,因而即使是程序异常也能确保正确启动单粒子翻转软错误恢复函数。

s4、通过单粒子翻转软错误恢复函数,保存处理器的异常返回地址寄存器中的返回地址,并对处理器指令cache进行无效化操作。

本实施例中,恢复函数保存处理器的异常返回地址寄存器中的返回地址进一步为恢复函数至少定义两个不同的变量用于存储异常返回地址。保存两份地址作为后续步骤中实施地址三取二的基础。

在一可选实施方式中,恢复函数对整个指令cache进行无效化操作的过程进一步为设置处理器hid0寄存器的icfi位实现快速无效化(flashinvalidation)。这样的操作只需要非常少的指令,可以减少恢复占用的时间,同时整个指令cache的状态位都会被设为无效(invalid),避免恢复期间指令cache发生单粒子翻转事件引起二次故障异常。

在一可选实施方式中,恢复函数等待cache操作完成的过程进一步为通过插入sync指令来同步到cache操作完成。恢复函数必须在指令cache已经完全无效化后才能返回异常地址,从而避免返回异常地址时,该地址仍然被作为有效数据被处理器使用,导致异常恢复失败。

s5、通过返回地址确定单粒子翻转发生的地址。

本实施例中,利用保存的异常返回地址返回单粒子翻转发生的地址的过程进一步为通过步骤s4中保存的两份返回地址与处理器异常返回地址寄存器中的地址进行三取二后作为返回地址返回。这样的操作可以避免由于异常返回地址受单粒子翻转影响引发的跳转错误。

s6、从主存储器中重新获取单粒子翻转发生的地址对应的数据,执行单粒子翻转的数据修复。

本实施例中,指令cache从主存储器中重新载入数据的操作完全由处理器硬件自动完成,不需要任何软件参与。

本发明的操作均在软件驱动层面实现,用户软件不需要知道任何操作细节,对用户软件的编写不产生影响。

本发明与现有cache资源的单粒子翻转防护技术相比,利用本发明,可以使得单粒子翻转引起的程序软错误得到有效恢复,解决了ppc750处理器在星载计算机中应用的问题。进一步地,由于该方法基于处理器自身的cache操作异常控制机制,不需要使用额外的硬件资源,达到沿用现有架构、节省研制成本的目标。除此以外,还达到了如下的有益效果:

1)不需要在处理器芯片内部增加校验纠错电路,不受处理器自身的工艺设计变化影响,通过软硬件结合来实现单粒子翻转防护;

2)不占用额外的软件资源,不需要更改现有的用户软件工作流程,不影响用户软件的执行效率;

3)可以推广到不同的risc型处理器,具有广泛的适用性。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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