可全面在线自检测单粒子翻转的软件容错方法技术

技术编号:7509245 阅读:358 留言:0更新日期:2012-07-11 07:59
可全面在线自检测单粒子翻转的软件容错方法,包括:存储器地址链接配置、容错处理参数生成模块、容错处理A模块和容错处理B模块的执行,DMA分段读取程序存储器数据通过校验算法动态生成容错处理参数并进行冗余存储;容错处理B模块用于自主实时监测应用程序和容错处理A模块的运行,容错处理A用于实时容错处理B的运行,一旦程序发生单粒子翻转,从ROM加载相应代码段,达到对应用程序代码纠错的目的,整个实现过程通过DMA方式进行,不占用CPU时间,在纠错的同时保证程序实时运行,提高了软件在轨运行的可靠性和安全性,同时节省了大量的硬件成本和时间成本,提高了效率。

【技术实现步骤摘要】

本专利技术涉及一种,用于空间应用的单粒子翻转或其他造成程序代码错误的检错纠错。
技术介绍
对抗单粒子翻转的设计目前主要有两种方式,一是通过硬件设计软件配合对应用程序进行EDAC检错纠错或者软件直接在对单粒子翻转几乎免疫的高等级器件上运行,二是不依赖于硬件设计,采用纯软件设计的方式对应用程序进行单粒子翻转的检错纠错。近年来,从公开刊物及公开渠道上所了解到的国内外基于存储器RAM抗单粒子翻转事件防护设计情况如下方案(1)采用检错纠错数据编码对单粒子翻转进行检测和纠正,如奇偶校验码、 循环冗余检验码、海明码、R-S码等。基于这种措施,目前国内外主要采取下列两种方式a)本身自带EDAC设计的CPU芯片。如TSC695芯片、AT697芯片系列等。b)DSP片外存储器+FPGA(或ASIC)实现的EDAC校验。但是它不能对DSP内部存储器空间进行检错纠错处理。该方案主要实现对片外存储器的单粒子翻转检错纠错功能,缺点是对处理器内部程序存储器空间不能进行单粒子翻转检错纠错功能。方案(2)通过结构冗余TMR实现软件检错纠错。采用三片处理器芯片同时运行相同的程序,由主控计算机通过处理器芯片的选择口来控制,对地址总线和数据进行三选一判决,当表决电路检测出一位错误时,纠错服务子程序启动工作,来根据表决电路和自检程序识别出的错误等级,错误类型修复系统回归正常。这种方式较好的解决了单粒子翻转问题,但是其缺点是硬件开销大,需要硬件冗余,同时由于硬件结构复杂,带来了一系列可靠性问题。而本文采用纯软件设计,不需要修改硬件平台即可实现抗单粒子翻转的功能。可参考文献:Single Event Upset Characterization of the SMJ320C670IDigital Signal Processor Using Proton Irradiation,David M. Hiemstra,SeniorMember IEEE,Bojan Miladinovic,and Fayez Chayab ;方案( 程序代码直接固化在对单粒子翻转几乎免疫的PROM中运行。但是大多数数字信号处理软件功能性能由于受PROM运行速度限制,无法在PROM中运行,必须在DSP 内部RAM中高速运行,而本方法恰恰是解决DSP内部RAM的抗单粒子翻转问题。方案(4)采用应用软件定时刷新方式进行程序抗单粒子翻转。该方案采取软件定时加载刷新的方式,由于每次都要全部加载软件,若刷新时间间隔长,则在间隔期间内无法实现抗单粒子翻转功能,若刷新太快,则由于频繁的从PROM中读取程序写入RAM,既影响程序的实时运行又会产生一些可靠性问题。目前星载软件一般至少是以小时或分钟的数量级刷新一次。与该方案比较,本方法是对应用程序单粒子翻转检错后才从PROM中加载相应部分代码达到纠错的目的,因此,本方法的纠错时机优于方案G),且方案由于是定时刷新,无法统计单粒子翻转的次数,而本专利技术可以统计,为地面下传丰富的单粒子翻转信息。方案( 基于部分软件重构的抗单粒子技术。该方案采取定时加载只读ROM中的纠错程序实现对应用程序进行检错纠错,应用程序在运行过程中,进行保护现场后,通过加载纠错代码实现对应用程序代码的纠错检查,检查后进行现场恢复,继续运行。该方案每次刷新前要从PROM中加载程序,也存在刷新周期的问题,对间隔期间内无法实现抗单粒子翻转检错纠错功能,同时由于该纠错程序是对程序存储器直接编程实现的,不适用于目前空间大量应用的高速信号处理器如DSP 6X系列等。参见专利申请201010527687. 6。目前尚未在公开文献中看到利用DMA方式,采用纯软件设计,利用容错处理双冗余技术对处理器内部程序代码进行全面在线自检测单粒子翻转的软件容错方法。
技术实现思路
本专利技术技术解决问题克服现有技术的不足,提供了一种,实现了对空间应用中具有DMA功能的处理器程序存储器软件进行全面在线自检测单粒子翻转错误的检错纠错,从而提高了软件在轨运行的可靠性和安全性。本专利技术技术解决方案,其特点在于包括存储器地址链接配置、容错处理参数生成模块、容错处理A模块和容错处理B模块的执行,步骤如下(1)存储器地址链接配置将存储器地址分成R0M_A区、R0M_B,根据编译链接分别对应程序存储器的RAM_A, RAM_B ;所述R0M_A区只放置容错处理B模块的程序代码,所述R0M_B区放置所有应用程序的程序代码,及容错处理参数生成模块和容错处理A模块的程序代码;(2)容错处理参数生成模块通过DMA的两个通道DMAl和DMA2分别将RAM_A,RAM_B的程序代码搬移到程序代码对应的数据区,通过校验算法动态生成容错处理A模块和容错处理B模块所有的校验参数,并分别对校验参数进行冗余存储。具有DMA处理器芯片上电或复位后,在初始化时调用容错处理参数生成函数动态生成容错参数。该程序在处理器上电或复位后仅调用执行一次,生成的容错参数通过冗余设计存储在RAM中;(3)容错处理A模块容错处理A用于自主实时监测程序存储器RAM_A区内程序代码的运行,一旦该程序代码发生单粒子翻转错误,则记录所述错误信息,并启动纠错功能,从R0M_A中读取程序代码覆盖RAM_A区程序代码,保证RAM_A区程序代码安全健康运行;(4)容错处理B模块容错处理B用于自主实时监测程序存储器RAM_B区内程序代码的运行,一旦该程序代码发生单粒子翻转错误,则记录所述错误信息,并启动纠错功能,从R0M_B中读取程序代码覆盖RAM_B区程序代码,保证RAM_B区程序代码安全健康运行;(5)获取上述步骤(1)程序存储器R0M_A区、RAM_A区的起始地址、程序存储器 R0M_B区、RAM_B区的起始地址,读取通过编译链接后的生成的MAP表中程序代码信息,查看 RAM_A区、RAM_B区的程序代码长度,将这些信息作为容错处理参数生成模块、容错处理A模块和容错处理B模块中的形式参数予以调用,从而在线实现自检测单粒子翻转错误。所述步骤O)的具体实现过程如下(21)首先启动DMAl通道,从CPU不可直接读写的程序存储器RAM_B区中搬移程序代码到数据区;(22)搬移完成后通过校验算法动态生成RAM_B区搬移程序代码的校验参数;(23)通过冗余存储方法将校验参数存储在数据RAM中;(24)启动DMA2通道,从CPU不可直接读写的程序存储器RAM_A区中搬移程序代码到数据区;(25)搬移完成后通过校验算法动态生成RAM_A区搬移程序代码的校验参数; (26)通过余存储方法将校验和存储在数据RAM中。所述步骤(3)容错处理A模块具体实现过程如下(31)搬移功能查看DMAl通道的程序代码是否满足程序搬移条件,如果满足,则设置DMAl通道的控制器参数,所述控制器参数包括源地址、目的地址、DMAl通道的主控和副控寄存器设置, 源地址设置为RAM_A区起始地址,目的地址设置为数据区,启动DMAl通道的主控和副控寄存器进行程序搬移,将程序搬移条件设置为不可搬移,设置DMAl通道的程序可修复条件, 搬移工作由DMAl通道自动完成,搬移完成后源地址区程序代码全部拷贝到目的地址数据区;(32)校验监测功能a.当DMAl通道的搬移功能完成后,进行单粒子翻转错误的检错,通过校验算法动态生成搬本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:吴国春吴化军陶晓霞徐丽娜钟兴旺王一唯林梦园
申请(专利权)人:西安空间无线电技术研究所
类型:发明
国别省市:

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

1
相关领域技术