[发明专利]基于检查点技术的双冗余流水线及容错方法有效

专利信息
申请号: 201710544258.1 申请日: 2017-07-05
公开(公告)号: CN107168827B 公开(公告)日: 2023-06-27
发明(设计)人: 张伟功;王晶;申娇;尚媛园;朱晓燕 申请(专利权)人: 首都师范大学
主分类号: G06F11/14 分类号: G06F11/14;G06F9/30
代理公司: 暂无信息 代理人: 暂无信息
地址: 100048 北京市海淀区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 检查点 技术 冗余 流水线 容错 方法
【权利要求书】:

1.一种基于检查点技术的双冗余流水线,其特征在于:所述基于检查点技术的双冗余流水线包括流水线A、流水线B、指令缓存(301)、备份寄存器组(401)、比较逻辑(501)、写缓冲(601)、数据缓存(701)和寄存器堆(801);所述流水线A包括取指段(101)、译码段(102)、执行段(103)、访存段(104)、写回段(105)五个流水段;所述流水线B包括取指段(201)、译码段(202)、执行段(203)、访存段(204)、写回段(205)五个流水段;数据缓存(701)和寄存器堆(801)由流水线A和流水线B共享,正常情况下,执行指令流时默认写入流水线A的执行结果;所述指令缓存(301)用于存储流水线执行的代码,与流水线A中取指段(101)进行数据交互,流水线A取出指令后分发给两条流水线执行;所述备份寄存器组(401)以周期粒度对流水线A的级间寄存器进行备份,一旦比较逻辑(501)检测出单粒子故障,将备份的内容恢复到流水线A和流水线B的级间寄存器中,2个周期后流水线正常执行;所述比较逻辑(501)设置在流水线A与流水线B之间,对比两条流水线的级间寄存器内容,检测单粒子故障;所述写缓冲(601)设置在数据缓存(701)和寄存器堆(801)的入口,用于暂存流水线给出的更新数据;所述数据缓存(701)用于存储流水线输出的数据,并向流水线提供运算操作数;所述寄存器堆(801)用于存储流水线输出的数据,并向流水线提供运算操作数;所述数据缓存(701)入口设置1个写缓冲(601),用于缓存流水线A访存段(104)用于更新数据缓存(701)的信息;所述寄存器堆(801)入口设置2个写缓冲(601),用于缓存流水线A写回段(105)和流水线B写回段(205)用于更新寄存器堆(801)的信息;所述比较逻辑(501)的数量为6个,其中5个分别设置在两条流水线各个流水段之间,用于对比级间寄存器信息,检测单粒子故障,1个用于对比写缓冲(601)中两条流水线用于更新寄存器堆(801)的信息,检测流水线单元写回段发生的SET故障。

2.一种基于检查点技术的双冗余流水线的容错方法,其特征在于:该容错方法用于基于检查点技术的双冗余流水线;所述基于检查点技术的双冗余流水线包括流水线A、流水线B、指令缓存(301)、备份寄存器组(401)、比较逻辑(501)、写缓冲(601)、数据缓存(701)和寄存器堆(801);所述容错方法采用如下步骤和方法对单粒子导致的SET、SEU、MBU故障进行容错:

(1)取指段,将流水线A取指段(101)的级间寄存器内容存储到备份寄存器组(401);流水线A的取指段(101)给出指令地址,从指令缓存(301)中取出指令分发给两条流水线执行;比较逻辑(501)对比两条流水线的级间寄存器信息,如果比较结果相同,说明流水线单元的取指段没有被单粒子轰击,流水线继续向下执行,如果比较结果不同,说明一条流水线的取指段的级间寄存器发生SEU/MBU故障,给出流水线取指段的错误信号;

(2)译码段,将流水线A译码段(102)的级间寄存器内容存储到备份寄存器组(401);流水线A的译码段(102)读地址信息,判断操作数是否存在写缓冲(601)中,如果存在,则从写缓冲(601)中取出操作数并分发给两条流水线操作,否则,从寄存器堆(801)中取出操作数分发给两条流水线操作;比较逻辑(501)对比两条流水线的译码段级间寄存器信息,如果比较结果相同,说明流水线单元的译码段没有被单粒子轰击,流水线继续向下执行,如果比较结果不同,说明一条流水线的取指段的功能逻辑发生SET故障,或者译码段的级间寄存器发生SEU/MBU故障,给出流水线译码段的错误信号;

(3)执行段,将流水线A执行段(103)的级间寄存器内容存储到备份寄存器组(401);流水线A的执行段(103)读地址信息,判断操作数是否存在写缓冲(601)中,如果存在,则从写缓冲(601)中取出操作数并分发给两条流水线操作,否则,从数据缓存(701)中取出操作数分发给两条流水线操作;比较逻辑(501)对比两条流水线的级间寄存器信息,如果比较结果相同,说明流水线单元的执行段没有被单粒子轰击,流水线继续向下执行,如果比较结果不同,说明某条流水线的译码段的功能逻辑发生SET故障,或者执行段的级间寄存器发生SEU/MBU故障,给出流水线执行段的错误信号;

(4)访存段,将流水线A访存段(104)的级间寄存器内容存储到备份寄存器组(401);流水线A的访存段(104)给出与数据缓存(701)的写交互信息,并将其更新到写缓冲(601);比较逻辑(501)对比两条流水线的级间寄存器信息,如果比较结果相同,说明流水线单元的访存段没有被单粒子轰击,流水线继续向下执行,如果比较结果不同,说明某条流水线的执行段的功能逻辑发生SET故障,或者访存段的级间寄存器发生SEU/MBU故障,给出流水线访存段的错误信号;

(5)写回段,将流水线A写回段(105)的级间寄存器内容存储到备份寄存器组(401);流水线A的写回段(105)和流水线B的写回段(205)给出与寄存器堆(801)的写交互信息,并将其更新到写缓冲(601);比较逻辑(501)对比两条流水线的级间寄存器信息,如果比较结果相同,说明流水线单元的写回段没有被单粒子轰击,流水线继续向下执行,如果比较结果不同,说明某条流水线的访存段的功能逻辑发生SET故障,或者写回段的级间寄存器发生SEU/MBU故障,给出流水线写回段的错误信号;

(6)比较逻辑(501)对比步骤(5)中两条流水线存入写缓冲(601)中的信息,如果比较结果相同,说明流水线单元没有被单粒子轰击,如果比较结果不同,则说明写回段的功能逻辑发生SET故障,给出错误信号;

(7)将步骤(1)、(2)、(3)、(4)、(5)、(6)中错误信号进行或操作,生成恢复信号,如果恢复信号有效,作废当前周期流水线单元所有操作,并将备份寄存器组(401)中的内容恢复到两条流水线对应的级间寄存器中,同时清空写缓冲(601)的信息,禁止更新数据缓存(701)和寄存器堆(801),流水线重新执行发生故障的操作。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710544258.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top