一种空间单粒子翻转自主容错方法技术

技术编号:26170443 阅读:89 留言:0更新日期:2020-10-31 13:38
本发明专利技术公开的空间单粒子翻转自主容错方法,涉及计算机技术领域,根据数据的大小,为数据创建三块冗余内存池,将三块冗余内存池分别分配至系统的三个分区中,设定三块冗余内存池中的一块冗余内存池为主数据块,其余两块冗余内存池为副数据块,得到第一副数据块及第二副数据块并将所述数据在三个分区中的存储地址记录在变量‑地址映射表中,将数据依次写入三个分区的数据区域中,根据变量‑地址映射表,获取主数据块中的数据,判断是否触发EDAC电路检查内存错误操作,若是,则利用三取二策略处理三个分区中的数据,保证了冗余内存池之间的地址分布性和数据之间的隔离性,结合利用EDAC内存异常捕获机制,提高了容错效率,降低了容错成本。

【技术实现步骤摘要】
一种空间单粒子翻转自主容错方法
本专利技术涉及计算机
,具体涉及一种空间单粒子翻转自主容错方法。
技术介绍
在航天领域应用的计算机系统中,因恶劣太空环境而引起的器件失效是导致计算机系统可靠性下降或失效的根本原因之一。空间中的辐射是由太阳系内外各种辐射源发射出的粒子如电子、中子、质子等形成的。这些粒子通常具有很高的能量,产生的辐射效应不仅能够引起电子器件的退化,而且还会导致系统失效。太阳系内外,各种辐射源产生的辐射主要有两类:太阳辐射和银河宇宙射线。太空中的电子设备所受到的辐射主要来自地球辐射带、银河宇宙射线、太阳粒子事件等。星载系统容易受到地球电磁场的干扰,特别是地球带电粒子带(范艾伦辐射带,其中,距地表高度400~900km为质子集中地带,900~56000km为电子集中地带)的影响,而包含大量高能质子和重离子的太阳耀斑又可以将范艾伦辐射带的影响扩大3个数量级。此外,由氢、镍等重离子组成的宇宙射线(质子约占85%、a粒子约占13%、重核约占2%)辐射能量也很强。空间环境中粒子的能量与类型相当广,航天设备受辐射的影响非常大,辐射效应是航天武器型号软件设计及测试验证必须要考虑的首要问题。根据影响方式不同,辐射效应大致可分为总剂量积累效应和单粒子效应两大类。其中,总剂量积累效应是电子设备长期处于高强度辐照环境下而逐渐老化的一种效应,而单粒子效应是指单个的高能粒子导致的电子器件状态改变,包括位翻转/单粒子翻转、单粒子锁定以及单粒子击穿三种不同的效应。单粒子翻转导致的是瞬时故障,这种可以通过软件的方法很大程度的避免,且单粒子效应中位翻转占大多数,因此使用软件容错的方法可以很大程度上减少单粒子效应对航天计算机系统的影响。现有的用于解决单粒子效应的技术手段包括:(1)数据冗余编码:采用海明码、循环码等各类校验码对系统关键数据进行编码,当数据检测出错时进行自动纠错;(2)内存冗余分配:将关键数据同时分配到三个内存块用作冗余备份,数据提取时通过多个数据块的比对后进行输出;(3)EDAC内存检错:通过EDAC服务或加载EDAC内核模块检测内存异常数据,当检测出单粒子翻转效应时,通过系统备份机制进行恢复;(4)系统级容错:采用多级系统之间的心跳检测、状态检测,当检测出主机出现单粒子翻转效应时,进行系统重启,或者启用备份系统使系统继续正常工作。现有技术的主要缺点如下:(1)执行效率低采用海明码、循环码等数据冗余编码进行关键数据的编码与解码,以及内存冗余分配的方法进行容错,均存在执行效率不高的问题;(2)数据隔离性不足采用内存冗余分配的方法进行数据容错,存在数据之间的隔离性不足的问题,包括无法保证冗余内存池之间的物理地址分布性、多个任务同时进行冗余内存分配时的数据竞争等;(3)容错成本高EDAC内存检错和系统级容错,均需要增加硬件成本,增加了容错成本。
技术实现思路
为解决现有技术的不足,本专利技术实施例提供了一种空间单粒子翻转自主容错方法,该方法包括以下步骤:根据数据的大小,为所述数据创建三块冗余内存池;利用信号量机制,连续进行三次内存分配操作,将三块冗余内存池分别分配至系统的三个分区中;设定三块冗余内存池中的一块冗余内存池为主数据块,其余两块冗余内存池为副数据块,得到第一副数据块及第二副数据块并将所述数据在三个分区中的存储地址记录在变量-地址映射表中;将所述数据依次写入三个分区的数据区域中;根据变量-地址映射表,获取主数据块中的数据;判断是否触发EDAC电路检查内存错误操作;若否,则将所述数据发送给用户;若是,则利用三取二策略处理三个分区中的数据。优选地,利用三取二策略处理三个分区中的数据包括:当主数据块中的数据不同于第一副数据块及第二副数据块中的数据且第一副数据块及第二副数据块中的数据均未发生EDAC错误时,根据变量-地址映射表,获取第一副数据块及第二副数据块中的数据,将所述数据发送给用户并用所述数据替换主数据块中的数据。优选地,利用三取二策略处理三个分区中的数据还包括:当主数据块、第一副数据块及第二副数据块中的数据均不相同且主数据块、第一副数据块及第二副数据块中的数据均发生EDAC错误,则将所述数据发送给用户并用所述数据分别替换第一副数据块及第二副数据块中的数据。优选地,在将所述数据发送给用户之后,该方法还包括:若用户释放所述数据,则根据变量-地址映射表,同时释放三个分区中的数据,并释放变量-地址映射表。优选地,所述三块冗余内存池的大小相同,在地址分布上具有一定的距离。优选地,所述数据包括处于就绪队列、阻塞队列、延时队列中的数据。本专利技术实施例提供的空间单粒子翻转自主容错方法具有以下有益效果:通过将关键数据进行跨分区的冗余备份以及互斥锁机制,可以保证冗余内存池之间的地址分布性和数据之间的隔离性,结合利用EDAC内存异常捕获机制,提高了容错效率,降低了容错成本。附图说明图1为本专利技术实施例提供的空间单粒子翻转自主容错方法流程示意图;图2为本专利技术实施例提供的空间单粒子翻转自主容错方法对应的技术框架示意图。具体实施方式以下结合附图和具体实施例对本专利技术作具体的介绍。如图1所示,本专利技术实施例提供的空间单粒子翻转自主容错方法包括以下步骤:S101,根据数据的大小,为数据创建三块冗余内存池。作为本专利技术一个具体的实施例,该数据为操作系统内核数据结构,包括就绪队列、阻塞队列、延时队列等,用于管理和控制操作系统内核执行的数据,如果被篡改将会导致严重后果。通过操作系统中提供的内存分配接口(首次适应算法)进行冗余内存池的申请,如内存空间不够或者申请出错,则结束所有步骤。S102,利用信号量机制,连续进行三次内存分配操作,将三块冗余内存池分别分配至系统的三个分区中。S103,设定三块冗余内存池中的一块冗余内存池为主数据块,其余两块冗余内存池为副数据块,得到第一副数据块及第二副数据块并将所述数据在三个分区中的存储地址记录在变量-地址映射表中。作为本专利技术一个具体的实施例,如图2所示,本专利技术实施例提供的空间单粒子翻转自主容错方法对应的技术框架包括3个冗余内存池,其中,每个冗余内存池对应一个映射地址。S104,将数据依次写入三个分区的数据区域中。S105,根据变量-地址映射表,获取主数据块中的数据。S106,判断是否触发EDAC电路检查内存错误操作。其中,EDAC电路是通过线性分组码实现的,采用线性分组码实现的纠错检错,在编码过程中,生成待编码信息数据的校验位,校验位与数据一同存储在存储器中。在译码过程中,将重新对信息数据产生校验位,并与编码时产生的数据校验位进行异或运算得到校正子,利用校正子定位信息数据的错误,并对可纠正的错误进行纠正。S107,若否,则将数本文档来自技高网
...

【技术保护点】
1.一种空间单粒子翻转自主容错方法,其特征在于,包括:/n根据数据的大小,为所述数据创建三块冗余内存池;/n利用信号量机制,连续进行三次内存分配操作,将三块冗余内存池分别分配至系统的三个分区中;/n设定三块冗余内存池中的一块冗余内存池为主数据块,其余两块冗余内存池为副数据块,得到第一副数据块及第二副数据块并将所述数据在三个分区中的存储地址记录在变量-地址映射表中;/n将所述数据依次写入三个分区的数据区域中;/n根据变量-地址映射表,获取主数据块中的数据;/n判断是否触发EDAC电路检查内存错误操作;/n若否,则将所述数据发送给用户;/n若是,则利用三取二策略处理三个分区中的数据。/n

【技术特征摘要】
1.一种空间单粒子翻转自主容错方法,其特征在于,包括:
根据数据的大小,为所述数据创建三块冗余内存池;
利用信号量机制,连续进行三次内存分配操作,将三块冗余内存池分别分配至系统的三个分区中;
设定三块冗余内存池中的一块冗余内存池为主数据块,其余两块冗余内存池为副数据块,得到第一副数据块及第二副数据块并将所述数据在三个分区中的存储地址记录在变量-地址映射表中;
将所述数据依次写入三个分区的数据区域中;
根据变量-地址映射表,获取主数据块中的数据;
判断是否触发EDAC电路检查内存错误操作;
若否,则将所述数据发送给用户;
若是,则利用三取二策略处理三个分区中的数据。


2.根据权利要求1所述的空间单粒子翻转自主容错方法,其特征在于,利用三取二策略处理三个分区中的数据包括:
当主数据块中的数据不同于第一副数据块及第二副数据块中的数据且第一副数据块及第二副数据块中的数据均未发生EDAC错误时,根据变量-地址映射表,获取第一副数据块及第二副数据...

【专利技术属性】
技术研发人员:程胜邱化强蔡铭赵新鹏崔小磊
申请(专利权)人:北京神舟航天软件技术有限公司
类型:发明
国别省市:北京;11

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

1