[发明专利]面向SPARC V8处理器的自修复双冗余流水线及容错方法在审
申请号: | 201510884593.7 | 申请日: | 2015-12-07 |
公开(公告)号: | CN105320579A | 公开(公告)日: | 2016-02-10 |
发明(设计)人: | 王晶;张伟功;申娇;尚媛园;杨星;吴敏华;邱柯妮;朱晓燕 | 申请(专利权)人: | 首都师范大学 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100048 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 sparc v8 处理器 修复 冗余 流水线 容错 方法 | ||
技术领域
本发明涉及一种微处理器流水线错误的检测与恢复装置,尤其涉及一种SPARCV8处理器中流水线错误的检测与恢复装置。本发明还涉及一种SPARCV8处理器中流水线中数据翻转错误的屏蔽方法。
背景技术
单粒子翻转(SingleEventUpset,SEU)是在空间应用环境下,由于单粒子入射导致集成电路中存储单元发生数据翻转错误的事件,是空间环境下电子系统发生故障和工作异常的重要诱因之一。随着半导体工艺技术的快速发展,芯片的尺寸在不断减小,处理器工作频率不断提高,节点工作电压的降低使得单粒子翻转现象越来越严重。研究指出,在纳米级芯片中,单粒子翻转导致的多位数据翻转(MBU)概率也在迅速提高,会导致最多8位随机数据翻转错误,对空间应用的电子系统产生更大的危害。在微处理器及电子系统中采取加固措施对SEU故障进行容错设计已成为重要的技术手段。
作为现代微处理器的重要组成部分,流水线主要完成程序代码的指令流执行,并将执行结果写入数据存储和寄存器堆。如果单粒子轰击流水线导致级间寄存器发生翻转或单粒子瞬变(SET)引发的错误数据被锁存,就会导致流水线执行结果不正确,在没有对流水线单元进行容错加固的情况下,错误的执行结果将会扩散到数据存储和寄存器堆或者执行错误的指令流,进而导致更多不可控的错误产生。因此,对于空间应用的高可靠微处理器而言,进行流水线单元的容错设计具有重要的意义。
现有对空间微处理器的加固技术有以下三种方案:采用基于时间的容错方法,能有效解决MBU问题,但是处理器性能大大降低;采用基于编码的容错方法,只能有效的验证计算部分的正确性,并且不同的编码方式针对不同的单粒子故障不能全部处理,容错能力有限;采用基于硬件冗余的方案,采用如图1所示的寄存器级三模冗余时,无法应对MBU故障;采用如图2所示的流水线级三模冗余时,虽然可以定位出故障流水线,但是硬件资源功耗等开销较大;流水线级双模冗余可以应对MBU故障,但是无法定位,起不到屏蔽故障的作用,每次都进行流水线回退会显著增加流水线性能开销,尤其是在单粒子故障日益常见的情况下会导致整体处理速度明显降低。总之,现有技术无法实现一个以低面积开销并能够故障检测、定位、屏蔽故障并有效应对MBU故障的CPU加固方案。
发明内容
本发明的目的在于设计一种面向SPARCV8的处理器的自修复双冗余流水及容错方法,能够从系统结构上有效的屏蔽单粒子翻转(SEU)、单粒子瞬态(SET)导致的多位数据翻转故障。
为实现上述目的,本发明所采用的技术方案为:
一种面向SPARCV8处理器的自修复双冗余流水线,其特征在于:所述自修复双冗余流水线包括流水线A、流水线B、指令缓存(301)、自校验模块、比较逻辑(501)、流水线恢复模块(601)、数据缓存(701)、寄存器堆(801);所述流水线A包括取指(101)、译码(102)、执行(103)、访存(104)、写回(105)五个流水段,所述流水线B包括取指(201)、译码(202)、执行(203)、访存(204)、写回(205)五个流水段,在流水线A和流水线B的各个流水段之间分别设置级间寄存器,数据缓存(701)和寄存器堆(801)由流水线A和流水线B共享,用于在执行指令流时默认写入流水线A的执行结果,在流水线A执行错误时,写入流水线B的执行结果;所述指令缓存(301)用于存储流水线执行指令的代码,送给流水线A和流水线B的取指部件;所述自校验模块包括自校验(401)、自校验(402)、自校验(403)、自校验(404)和自校验(405),用于流水线A和流水线B中的级间寄存器进行自校验,产生校验错误信息,送入比较逻辑(501)用于定位发生单粒子故障的流水线;所述比较逻辑(501)设置在流水线A与流水线B之间,用于对两个流水线单元的输出信息进行比较,检测流水线的错误;所述流水线恢复模块(601)用于在比较逻辑(501)和自校验模块检测出现流水线错误后,根据错误定位结果,通过快速恢复或整体恢复方式对错误的流水线或两条流水线的状态进行恢复;所述数据缓存(701)用于存储流水线输出的数据,并向流水线提供运算操作数;所述寄存器堆(801)用于存储流水线输出的数据,并向流水线提供运算操作数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510884593.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种嵌段共聚物、其制备方法及水凝胶
- 下一篇:数据库备份装置与方法