[发明专利]一种基于AT697处理器的单粒子翻转故障处理方法有效
申请号: | 201410228339.7 | 申请日: | 2014-05-27 |
公开(公告)号: | CN103984630B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 赵勋峰;薛长斌;周晴;郭林 | 申请(专利权)人: | 中国科学院空间科学与应用研究中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京法思腾知识产权代理有限公司11318 | 代理人: | 杨小蓉 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 at697 处理器 粒子 翻转 故障 处理 方法 | ||
1.一种基于AT697处理器的单粒子翻转故障处理方法,所述方法包含:
步骤101)定义AT697处理器变量的格式;
步骤102)初始化AT697F处理器的EDAC功能模块及RAM空间的数据;
步骤103)检测并修改与EDAC模块相连的RAM或EEPROM存储器由单粒子翻转造成的错误;
步骤104)建立维护策略,主动周期性的遍历访问所有RAM和EEPROM存储器的存储空间,进而减少并消除单bit错误。
2.根据权利要求1所述的基于AT697处理器的单粒子翻转故障处理方法,其特征在于,根据AT697处理器的硬件特征定义变量类型,并将全局变量分为重要变量和常规变量,具体为;
a.将所有变量使用32位宽定义;
b.将重要变量集中存放在指定地址空间内,并且存储内容一式三份,在读取时进行按位三取二处理。
3.根据权利要求1所述的基于AT697处理器的单粒子翻转故障处理方法,其特征在于,所述步骤102)进一步包含:
步骤102-1)将RAM或EEPROM存储器的控制寄存器初始化并清除错误地址寄存器;
步骤102-2)将RAM存储空间的存储单元清零;
步骤102-3)配置RAM或EEPROM存储器的第二控制寄存器的保护位PE位使能;
步骤102-4)清除错误状态寄存器的内容。
4.根据权利要求1所述的基于AT697处理器的单粒子翻转故障处理方法,其特征在于,将发生错误的地址存放在AT697处理器的错误地址寄存器中,并将发生错误的状态类型存放在AT697处理器的CPU的错误状态寄存器中。
5.根据权利要求4所述的基于AT697处理器的单粒子翻转故障处理方法,其特征在于,所述步骤103)进一步包含:步骤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存储器存储的重要变量空间中,则计算错误数据冗余存储位置,再读取其他两个冗余数据,错误地址数据按照全零处理与其他两个冗余数据进行三取二纠错,将正确数据回写至出错地址,清除状态寄存器后,记录错误状态,开中断结束。
6.根据权利要求3所述的基于AT697处理器的单粒子翻转故障处理方法,其特征在于,所述步骤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处理器的单粒子翻转故障处理方法满足要求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院空间科学与应用研究中心,未经中国科学院空间科学与应用研究中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410228339.7/1.html,转载请声明来源钻瓜专利网。