首页> 中国专利> 一种基于AT697处理器的单粒子翻转故障处理方法

一种基于AT697处理器的单粒子翻转故障处理方法

摘要

本发明提出了一种针对AT697处理器的单粒子翻转故障处理方法,所述方法包含:步骤101)定义AT697处理器变量的格式;步骤102)初始化AT697F处理器的EDAC功能模块及RAM空间的数据;步骤103)检测并修改与EDAC模块相连的RAM或EEPROM存储器由单粒子翻转造成的错误;步骤104)建立维护策略,主动周期性的遍历访问所有RAM和EEPROM存储器的存储空间,进而减少并消除单bit错误。本发明根据AT697处理器提供EDAC检测接口的特点,针对空间单粒子故障提出一套完成的软件处理设计方案。本方案不需额外增加芯片,不增加设备的重量、体积、功耗;处理方法简单、高效;接口灵活、可移植性强,对提高我国卫星发展的可靠性与安全性具有重要的意义。

著录项

  • 公开/公告号CN103984630A

    专利类型发明专利

  • 公开/公告日2014-08-13

    原文格式PDF

  • 申请/专利号CN201410228339.7

  • 发明设计人 赵勋峰;薛长斌;周晴;郭林;

    申请日2014-05-27

  • 分类号G06F11/36(20060101);

  • 代理机构11318 北京法思腾知识产权代理有限公司;

  • 代理人杨小蓉

  • 地址 100190 北京市海淀区中关村南二条1号

  • 入库时间 2023-12-17 00:35:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-09

    未缴年费专利权终止 IPC(主分类):G06F11/36 专利号:ZL2014102283397 申请日:20140527 授权公告日:20170201

    专利权的终止

  • 2019-03-12

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/36 变更前: 变更后: 申请日:20140527

    专利权人的姓名或者名称、地址的变更

  • 2017-02-01

    授权

    授权

  • 2014-09-10

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20140527

    实质审查的生效

  • 2014-08-13

    公开

    公开

说明书

技术领域

本发明涉及航空、航天电子综合化技术领域,更具体地涉及一种针对航天抗辐 照处理器AT697系列处理器单粒子翻转故障软件处理设计方案。

背景技术

随着航天技术的不断发展,设备的高集成度、高复杂度、高可靠性成为星上设 备必然发展趋势,大规模集成电路现已广泛的应用于航天设备的研制。然而复杂的 空间环境对大规模集成电路的影响也日益严重,特别是空间单粒子翻转(SEU)现 象,已成为星载设备的最为常见的故障之一。空间单粒子翻转现象是指宇宙中单个 高能粒子射入半导体器件的灵敏区,使器件存储的内容发生翻转变化(“0”->“1”或 “1”->“0”),导致系统功能紊乱,严重时会发生灾难性事故。单粒子事件最易发生在 SRAM、RAM、EEPROM等存储器件及CPU、FPGA等逻辑器件中。

目前处理器、FPGA抗辐照技术日益成熟,可以实现单粒子翻转免疫或发生概率 极低,但是CPU的抗辐照能力优秀不能决定整个星载设备的安全可靠,如何减少 RAM、EEPROM等最易受到单粒子事件影响的存储器件对星载设备的发展至关重 要。目前对于SRAM、RAM、EEPROM等器件抗单粒子事件设计通常采用EDAC(错 误检测与纠正)的设计方式,由EDAC专用芯片或FPGA实现对RAM、EEPROM 的1bit翻转错误和多bit错误的检测接口。

ATMEL公司生产的宇航级抗辐照处理器AT697系列(ATMEL697DEF),作为 一款完全抗辐照设计的处理器,集成了EDAC单元模块,目前被广泛应用。其提供 了对RAM、EEPROM等存储器件的单粒子翻转检测功能及纠错接口。但是没有提供 具体的处理策略及实现功能,需要设计人员在实际使用中完成。

本发明基于AT697系列处理器,根据其提供EDAC检测接口的特点,针对空间 单粒子故障提出一套完成的软件处理设计方案。

发明内容

本发明的目的在于,为克服上述问题,本发明提供了一种基于AT697处理器的 单粒子翻转故障处理方法。

为实现上述目的,本发明提供了一种基于AT697处理器的单粒子翻转故障处理 方法,所述方法包含:

步骤101)定义AT697处理器变量的格式;

步骤102)初始化AT697F处理器的EDAC功能模块及RAM空间的数据;

步骤103)检测并修改与EDAC模块相连的RAM或EEPROM存储器由单粒子 翻转造成的错误;

步骤104)建立维护策略,主动周期性的遍历访问所有RAM和EEPROM存储 器的存储空间,进而减少并消除单bit错误。

根据AT697处理器的硬件特征定义变量类型,并将全局变量分为重要变量和常 规变量,具体为;

a.将所有变量使用32位宽定义;

b.将重要变量集中存放在指定地址空间内,并且存储内容一式三份,在读取时进 行按位三取二处理。

可选的,上述步骤102)进一步包含:

步骤102-1)将RAM或EEPROM存储器的控制寄存器初始化并清除错误地址寄存 器;

步骤102-2)将RAM存储空间的存储单元清零;

步骤102-3)配置RAM或EEPROM存储器的第二控制寄存器的保护位PE位使能;

步骤102-4)清除错误状态寄存器的内容。

将发生错误的地址存放在AT697处理器的错误地址寄存器中,并将发生错误的状 态类型存放在AT697处理器的CPU错误状态寄存器中。

可选的,步骤103-1)检测一比特错误并进行纠错:

a关闭中断;

b读取错误地址寄存器;

c检查是否发生EDAC模块的单比特错误,如果没有发生则清除错误状态寄存

器后,重新开启中断后结束;

d当发生单比特错误时,读取错误地址;检查错误地址是否在RAM空间,如果 出错地址在RAM空间,则从错误地址寄存器中读出错误地址,读取错误地址空间的 对应的数据,并将该数据回写至错误地址中,记录错误状态;

如果错误发生在EEPROM空间,开启EEPROM写使能后,从错误地址寄存器 中读出错误地址,读取错误地址空间的对应的数据,并将该数据回写至错误地址中, 执行EEPROM写禁止,记录错误状态;如果不在上述空间,清除错误状态寄存器后, 重新开启中断后结束;

e完成RAM和EEPROM存储器的纠错后,清除错误状态寄存器后,重新开启 中断后结束;

步骤103-2)检测指令访问异常错误并纠错;

a关闭中断;

b记录发生异常时PC指针;

c读取错误地址寄存器;

d判断错误地址是否在RAM存储器存储的代码空间中,如果错误不在RAM存储 的代码空间则清除状态寄存器后,记录错误状态,开中断结束;

如果错误在RAM存储器的代码空间中,计算指令代码对应的在EEPROM存储中 的位置;读取三次EEPROM回写指令代码;对回写代码进行三取二动作后写入至出 错地址;清除状态寄存器后,记录错误状态,开中断结束;

步骤103-3)检测数据访问异常处理错误并纠错:

a关闭中断;

b记录发生异常时PC指针;

c读取错误地址寄存器;

d判断错误地址是否在RAM存储器存储的重要变量空间中,如果错误地址不在 RAM存储器存储的重要变量空间中则清除状态寄存器后,记录错误状态,开中断结束;

如果错误地址在RAM存储器存储的重要变量空间中,则计算错误数据冗余存储 位置,再读取其他两个冗余数据,错误地址数据按照全零处理与其他两个冗余数据 进行三取二纠错,将正确数据回写至出错地址,清除状态寄存器后,记录错误状态, 开中断结束。

可选的,上述步骤104)之后还包含:对单位或多位错误故障处理进行验证,具 体为:

步骤205)计算待测试数据的EDAC校验码,即获得待测数据的tcb码,其中待 测试的数据的长度为32bit;

步骤206制造待测试数据的单比特位或多位错误,即将待测试数据的一位或多 位进行取反操作;

步骤207)将处理器中存储器控制寄存器中的写旁路检测wb位使能,同时写入 待测试数据的正确tcb码;使能写旁路检测wb位后,向RAM和EEPROM空间写数据时 校验位不由处理器EDAC模块产生,而是由此次操作所写入的固定tcb码;

步骤208)向设定地址写入步骤206)输出的待测试数据;

步骤209)将存储器的第三控制寄存器写旁路检测wb位禁止;

步骤210)从设定地址中读取步骤208)写入的测数据;

步骤211)由于tcb码与实际写入数据存在单比特位或多位错误,触发EDAC异 常或中断ISR验证异常纠错;

步骤212)程序进入EDAC异常或中断ISR,处理单比特位或多位错误,完成纠错、 返回动作;

步骤213)重复读取设定地址中写入的数据,如果没有纠正则再次进入EDAC 异常或中断ISR,如此循环;如果纠正结果正确则不会再次触发EDAC异常或中断ISR;

步骤214)查询纠错计数进行比对验证,单粒子翻转故障的处理情况。

与现有方法相比,本发明的技术优势在于:

本发明基于AT697系列处理器,根据其提供EDAC检测接口的特点,针对空间 单粒子故障提出一套完成的软件处理设计方案。本方案不需额外增加芯片,不增加 设备的重量、体积、功耗;处理方法简单、高效;接口灵活、可移植性强,对提高 我国卫星发展的可靠性与安全性具有重要的意义。

附图说明

图1是本发明中的软件框架结构示意图;

图2是本发明中是本发明中EDAC模块初始化程序流程图;

图3是本发明中1bit错误的纠正程序流程图;

图4是本发明中指令访问异常处理程序流程图;

图5是本发明中数据访问异常处理程序流程图;

图6是本发明中系统维护模块在系统组成中的结构图;

图7是本发明中系统维护任务在系统组成中的结构图;

图8是本发明中EDAC功能验证程序流程图。

具体实施方式

下面通过具体实施例对本发明的方法做进一步阐述。

本发明的目的是通过软件设计并使用AT697系列处理器提供的空间单粒子翻转 故障检测接口(EDAC功能模块),采取异常时处理、主动维护、程序设计约束的方 式,实现在RAM、EEPROM器件的空间1bit错误的消除,多bit错误的分区处理, 可以最大程度的对多bit错误进行纠正、对于不可纠正的错误进行容错设计,避免由 于空间单粒子翻转导致系统功能出现严重错误。

软件运行环境为:

处理器:AT697系列处理器;

EEPROM大小:1MB字节;

RAM大小:256MB字节;

软件存储于EEPROM中,上电后将代码复制到RAM中运行。

AT697系列处理器EDAC功能检测接口如下:

AT697系列处理器具有32位EDAC(错误检测和校正)功能,EDAC机制采用 7位汉明码,可检查出40位总线上的任何单、多位错误,并通过异常中断方式通知 处理器软件进行处理,并且可以区分单位还是多位错误。1.发生单位错误,通过硬件 总线异常(trap0x11)通知处理器软件;2.对于多位错误,处理器分别通过指令访问 异常(trap0x01)和数据访问异常(trap0x09)通知处理器软件,指令访问异常(trap0x01) 和数据访问异常(trap0x09)两者的区别在于,前者多位错误发生在处理器取址阶段, 后者多位错误发生在数据访问阶段。发生单、多位错误处理器在触发中断的同时会 更新系统错误相关寄存器,将发生错误的地址存放在处理器错误地址寄存器 (FAILAR)中,发生错误的状态类型存放在CPU错误状态寄存器(FAILSR)中, 作为软件异常处理的辅助信息,具体包括:a.CPU错误状态寄存器(FAILSR)中的 D9位EDAC可纠错误检测位(eed);b.错误地址寄存器(FAILAR);c.发生异常时 的PC指针、堆栈信息的内容。

本发明的软件处理方案中包括:1.程序实现前的变量类型与定义设计约束;2.初始 化处理器EDAC模块、3.单bit错误纠正、多bit错误处理、4.建立主动维护策略,主 动消除单bit错误、5.发明一种检测软件EDAC处理正确性的验证方法,具体内容包 括:

1.在程序实现前提出设计约束,所有变量全部定义为32位宽的数据结构,将所 有全局变量定义为重要变量与常规变量。重要变量采取三模冗余存储方式,常规变 量采取单变量存储方式。当发生多bit不可纠错误时,对于不同类型变量采取区别处 理。重要变量进行冗余纠错并回写,常规变量则退出等待后续逻辑判断纠错。

2.在软件初始化设计时增加对处理器EDAC功能模块的初始化配置。

3.通过AT697系列提供的硬件异常接口,完成对1bit错误的纠正,包括EEPROM 与RAM、EEPROM存储空间,同时记录错误状态。

4.通过AT697系列提供的硬件异常接口,完成对多bit错误的区分处理,包括指 令访问异常(trap0x01)和数据访问异常(trap0x09)的处理,同时记录错误状态。

5.在程序设计建立系统维护模块(任务),主动周期性的遍历访问所有RAM和 EEPROM的空间,1bit的单粒子错误可以被及时检测并进行纠正。

6.空间单粒子翻转纠错软件功能的验证方法,在完成了所有AT697系列处理单 粒子翻转故障处理后,设计一套通过软件注入的方式对单位或多位错误故障处理设 计方案进行验证的手段。

与传统的通过外扩EDAC芯片或增加FPGA功能模块相比本发明具有如下优点:

(1)该种设计方式不需额外增加芯片,不增加设备的重量、体积、功耗等系统 资源,提高系统的可靠性、安全性;

(2)处理方法简单、高效,不降低系统性能和增大存储空间;

(3)保存错误现场,便于对故障的诊断与分析;

(4)接口灵活、可移植性强,便于其他SPARC V8体系结构处理器移植操作, 使用范围广。设计思路同样适用于其他对可靠性、安全性要求高的国防、工业领域。

方案内容:

一、在程序实现前提出设计约束,由于AT697F系列处理器采用RISC体系结构, 采用32位统一取址、译码、执行、EDAC模块采用32位统一取址,将所有变量全 部定义为32位宽的数据结构,可以提高EDAC模块纠错的效率;将所有全局变量定 义为重要变量与常规变量(全局变量定义空间分配图见附图1),重要变量指一旦出 错将影响整个软件核心功能及设备安全的关键变量;常规变量指出错后可以通过后 期处理消除或纠正的一些全局变量或局部变量。重要变量集中存放在指定地址空间 内,并且存储内容所有变量一式三份,在读取时进行按位三取二处理(前两个变量 按位“与”后与第三个变量进行“或”操作),确保使用时不会因为某一变量发生错误导 致关键部分发生异常;写操作将三个变量统一赋值,一式三份,完成变量写操作。 当发生多bit不可纠错误时,对于不同类型变量采取区别处理。重要变量进行冗余纠 错并回写,常规变量则退出等待后续逻辑判断纠错。

二、在软件初始化设计时增加对处理器EDAC功能模块的初始化配置。在系统 加电,启动代码程序运行在EEPROM空间时,需要对CPU寄存器中RAM接口寄存 器进行初始化,程序流程图见附图2所示。具体包含以下几步:

1、首先根据存储空间硬件配置(RAM)对处理器中的存储器配置寄存器2 (MCFG2 Memory Configuration Register 2)中的相关定义位进行配置,配置值按照 硬件芯片手册进行配置即可,主要包括存储空间的大小,位宽,刷新时间、读写等 待时间等内容。如果使用EDAC功能必须保证软件设置位宽为32位,最后使能RAM 工作。

2、将RAM存储空间中的数据进行清零初始化,目的是将EDAC校验码写入初 始值,防止程序在RAM中运行时访问到没有进行初始化校验位的存储空间而产生单 位、双位错误,该清零操作必不可少。对于启动时间苛刻要求的系统,程序在EEPROM 中运行速度较低,可以初始化最小存储空间,保证程序顺利运行在RAM后,其他 RAM、EEPROM存储空间可以在后续RAM中执行初始化过程。

3.对处理器中的存储器配置寄存器3(MCFG3 Memory Configuration Register 3) 中的PE位(RAM EDAC保护位)使能,对于AT697系列处理器而言只要硬件连接、 存储空间设置正确,无论是否开关EDAC功能在初始化清零操作时都会将校验码写 入对应的校验位。

4.将处理器中的CPU错误状态寄存器(FAILSR-Fail Status Register)清零,保证 发生错误时会将错误地址更新到出错地址寄存器(FAILAR-Fail Address Register)。

三、通过AT697系列提供的硬件异常接口,完成对1bit错误的纠正,包括 EEPROM与RAM、EEPROM存储空间,同时记录错误状态。当CPU检测到RAM 或EEPROM有1位可纠错错误时,CPU进入硬件错误(Hardware error)中断 (trap0x11),该中断包含AT697F中所有与硬件错误相关内容,具体为:CPU内部 总线错、写保护错,EDAC可纠错、EDAC不可纠错、PCI接口错误。进入异常中断 后需要根据CPU错误状态寄存器(FAILSR)中的D9位EDAC可纠错误检测位(eed) 判断是否发生EDAC可纠错误,如果发生可就错误,eed为1并且CPU会更新错误 地址寄存器(FAILAR),该地址存放发生可纠EDAC错误的地址;如果不是EDAC 可纠错误则eed为0,此次中断(trap0x11)不属于EDAC可纠错误。对于EDAC可 纠错误的异常中断处理原理为:关中断,将发生EDAC错误的地址从错误地址寄存 器(FAILAR)读出,判断发生EDAC错的地址空间是否在RAM、EEPROM存储空 间,如果发生地址确为该空间,则将该地址的值重新读出(完成EDAC纠错)并再 回写到发生错误的地址,清除CPU错误状态寄存器(FAILSR-Fail Status Register), 保正当发生EDAC中断时,更新错误地址寄存器(FAILAR),记录错误状态,并开 启中断后退出;如果EDAC错误的地址发生在EEPROM空间,则关闭EEPROM写 保护使EEPROM进入到可写状态,则将该地址的值重新读出(完成EDAC纠错)并 再回写到发生错误的EEPROM地址,打开EEPROM写保护,使EEPROM恢复到不 可写状态,清除CPU错误状态寄存器(FAILSR-Fail Status Register),保正当发生 EDAC中断时,更新错误地址寄存器(FAILAR),记录错误状态,并开启中断后退 出。记录的错误状态包括发生EDAC错的地址,及纠错成功计数。EDAC可纠中断 处理程序流程图见附图3所示。

四、通过AT697系列提供的硬件异常接口,完成对多bit错误的区分处理,包括 指令访问异常(trap0x01)和数据访问异常(trap0x09)的处理,同时记录错误状态。

对于指令访问异常(trap0x01)是指程序运行过程中,在CPU取指令时,由于 受到单粒子事件影响,所取的指令码发生多位不可纠错误,出现该异常中断。发生 该异常后软件立即跳转至指令访问异常处理程序。因为软件设计时程序是从 EEPROM空间复制到RAM、EEPROM存储空间中运行,所以指令代码在RAM和 EEPROM的内容一致,且相对位置也是可以计算出的,因此对于指令访问异常可以 将EEPROM中的指令代码重新复制到RAM、EEPROM存储空间可以解决该问题。 对于指令访问多位不可纠错误的异常中断处理为:关中断,记录发生异常时的程序 位置即PC指针,将发生多位取址错误的地址从错误地址寄存器(FAILAR)读出, 判断发生多位取址错的地址空间是否在RAM、EEPROM存储空间中的代码段,如果 发生地址确为代码空间,则根据该地址计算出EEPROM存储该指令的地址,将该地 址指令连续读取三次进行三取二后,回写到RAM、EEPROM存储空间中出错的地址, 清除CPU错误状态寄存器(FAILSR-Fail Status Register),保正当发生EDAC中断时, 更新错误地址寄存器(FAILAR),并开启中断后,设置中断退出后执行PC指针为该 指令即中断退出后重复执行该指令;如果发生地址不为代码空间,清除CPU错误状 态寄存器(FAILSR-Fail Status Register),保正当发生EDAC中断时,更新错误地址 寄存器(FAILAR),记录错误状态,并开启中断后,设置中断退出后执行PC指针为 该指令即中断退出后重复执行该指令。记录的错误状态包括发生指令访问异常的地 址,及纠错成功计数。指令访问异常处理程序流程图见附图4所示。

对于数据访问异常(trap0x09)是指程序执行取址操作时,由于受到单粒子事件 影响,所取的数据发生多位不可纠错误,出现该异常中断。发生该异常后软件立即 跳转至数据访问异常处理程序。数据访问异常处理必须依据到出错数据重要性分开 情况处理,即依靠此前设计约束对变量的重要程度进行针对处理。重要数据一旦发 生错误对系统运行造成影响,设计为三取二校验操作,如此设计即使其中数据发生 错误,也可以从其他两个数据中进行纠正,对于重要变量发生多位错误,在异常处 理程序中出记录出错地址,同时可以计算出该数据冗余存储的其他两个地址,执行 错误地址数据三取二读取数据,并将三取二修正后的数据重新回写到出错数据地址 实现多位错误纠错。对于常规变量,如仅采集转发的探测数据或状态数据,或某些 不重要的状态值,就可以将数据访问值回写为某些自定义特征值(如0xEB9001CF) 在后续的运算中对该值加以判断,并进行相应的后续处理。对于数据访问多位不可 纠错误的异常中断处理为:关中断,记录发生异常时的程序位置即PC指针,将发生 多位取址错误的地址从错误地址寄存器(FAILAR)读出,判断发生多位取址错的地 址空间是否在RAM、EEPROM存储空间中的重要变量段,如果发生地址确为重要变 量段,则计算该数据的冗余存放地址,并进行出错地址的三取二纠错计算,之后将 纠错后的数据回写至出错地址,实现纠错动作;如果发生地址不为重要变量段,将 向该错误地址写入特征码即可;此后按照既定流程执行,清除CPU错误状态寄存器 (FAILSR-Fail Status Register),保正当发生EDAC中断时,更新错误地址寄存器 (FAILAR),记录错误状态,并开启中断后,设置中断退出后执行PC指针为该指令 即中断退出后重复执行该指令,继续读取地址数据。记录的错误状态包括发生指令 访问异常的地址,及纠错成功计数。数据访问异常处理程序流程图见附图5所示。

五、在程序设计建立系统维护模块(适用于无操作系统环境)或系统维护任务 (适用于有操作系统环境),由于对多bit错误不能使用处理器的纠错功能进行纠正, 所以在程序运行时应避免多bit错的发生,采用主动周期性的遍历访问RAM及 EEPROM的空间的方式,进行数据的读操作,1bit的单粒子错误可以被及时检测并 进行纠正,可以减少多bit发生的几率,如图6、7所示。同一宇宙高能粒子打翻RAM 或EEPROM的同一地址空间多bit数据的概率极低,一般都由1bit错误累计所致, 如此操作还可以极大减少多bit不可纠错误的概率。在周期性遍历RAM及EEPROM 的空间时,为了提高系统实时性,不能一次遍历所有空间,而是采用分段遍历的方 式,循环覆盖的方式,当超出可访问的地址空间时,地址归零从新进行遍历。

六、在软件实现了空间单粒子翻转事件的处理后,需对软件的纠错功能进行验 证,由于单粒子翻转事件只能在空间发生,所以在地面只能模拟该现象,检查软件 处理的正确性。使用AT697系列处理器中EDAC验证模块可以简单高效的模拟出空间 单粒子翻转现象、从而检查软件处理的正确性。模块AT697系列CPU中存储器的配 置寄存器3(MCFG3 Memory Configuration Register 3)中的写检测位(wb)和读检 测位(rb)及校验修改位(tcb[0-7])组合使用,以实现对EDAC功能的测试。MCFG3 寄存器可以通过对wb或rb位来控制校验位的读写开关开关。当wb及rb位置0时,为 正常工作模式所有校验码(tcb[0-7])由CPU EDAC模块根据写入内容生成;当wb或 rb位置1时,为EDAC测试模式,此时7bit的tcb(tcb[6:0])码由MCFG3寄存器的0~6bit 内的值决定。两者的区别在于:wb有效时,对存储空间进行写操作时将校验修改位 直接写入RAM、EEPROM存储空间的校验位中;rb位有效时,进行读操作直接屏蔽 实际的校验位,直接从校验修改位中直接读取校验位,对RAM、EEPROM存储空间 的校验位不做修改RAM、EEPROM存储空间。使用以上策略采用软件打桩的方式即 可实现对所有存储的EDAC功能的验证,不需要进行外部硬件改造或专门研制检测设 备。本专利使用wb有效方式进行EDAC功能测试,具体流程为:1计算待测试数据的 EDAC校验值(即tcb值),对待写入数据进行单位或多位的修改;2使能MCFG3寄存 器中的wb位,并将计算好的tcb值,一起写入MCFG3寄存器中;3再将修改后的待测 试数据写入对应地址,并关闭MCFG3寄存器wb位;4读取测试数据,当CPU对该测 试地址进行访问时就会引起EDAC错误相关中断(trap0x1、trapx09、trap0x11),进入 EDAC异常处理或中断服务程序;5执行EDAC处理后,再次读取该地址,查询纠错 计数进行比对验证,EDAC验证功能流程图如8所示。当纠错计数增加值满足单粒子 翻转处理计数时则基于AT697处理器的单粒子翻转故障处理方法满足要求,否则说明 该处理方案中的部分内容不正确,需要进行修改,具体情况可分为:

1)针对单比特错情况可以考虑以下几方面:

a.处理器EDAC功能模块是否已经使能;

b.错误地址寄存器中的错误地址是否为设定地址;

c.CPU错误状态寄存器是否在上次纠错后及时清除;

d.真对EEPROM空间的单比特错误,在修改EERPOM时,EEPROM的写使能 操作是否有效,回写数据是否存储到EEPRM空间。

2)针对多比特错指令访问情况可以考虑以下几方面:

a.处理器EDAC功能模块是否已经使能;

b.错误地址寄存器中的错误地址是否为出错的指令地址;

c.CPU错误状态寄存器是否在上次纠错后及时清除;

d.出错代码在EEPROM空间位置的偏移计算是否正确。

3)针对多比特错指令访问情况可以考虑以下几方面:

a.处理器EDAC功能模块是否已经使能;

b.错误地址寄存器中的错误地址是否为出错的指令地址;

c.CPU错误状态寄存器是否在上次纠错后及时清除;

d.错误地址如果在重要变量空间,两冗余备份偏移地址计算是否正确,回写数 据内容是否正确。

总之,本发明提供了一种航天抗辐照处理器AT697单粒子翻转故障软件处理设 计方案。包括1.程序实现前的变量类型与定义设计约束;2.初始化处理器EDAC模块、 3.单bit错误纠正、多bit错误处理、4.建立主动维护策略,主动消除单bit错误、5. 发明一种检测软件EDAC处理正确性的验证方法。ATMEL公司生产的宇航级抗辐照 处理器AT697系列(ATMEL697DEF),作为一款完全抗辐照设计的处理器,集成 了EDAC单元模块,但是处理器只提供了对RAM、EEPROM等存储器件的单粒子 翻转检测功能及纠错接口,没有提供具体的处理策略及实现功能,需要设计人员在 实际使用中完成。本发明基于该系列处理器,根据其提供EDAC检测接口的特点, 针对空间单粒子故障提出一套完成的软件处理设计方案。本方案不需额外增加芯片, 不增加设备的重量、体积、功耗;处理方法简单、高效;接口灵活、可移植性强, 对提高我国卫星发展的可靠性与安全性具有重要的意义。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管 参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明 的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均 应涵盖在本发明的权利要求范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号