基于同步冗余线程与编码技术的抗单粒子效应系统及方法

文档序号:6483964阅读:192来源:国知局
专利名称:基于同步冗余线程与编码技术的抗单粒子效应系统及方法
技术领域
本发明涉及一种抗单粒子效应的系统及其实现方法。
背景技术
近年来,随着工艺发展,器件尺寸越来越小、工作电压越来越低,单粒子
效应变得越来越严来越严重。尤其是随着时钟频率的增加,SET所导致的错误 率成线性增加,甚至超过SEU,从而限制了处理器系统时钟频率的增加。研究 表明,SET的脉宽数量级为350ps 1.3ns,所以当脉宽超过1ns,时钟频率就 被限制在1GHz以下,否则将可能发生SET效应。另一方面,超深亚微米工艺 下,存储电路发生多位翻转的概率增加,处理器进行抗单粒子效应的设计显得 十分重要。
针对处理器来进行抗辐射研究,处理器内部电路从类型上可以分为存储电 路(时序电路)和组合电路,其中存储电路主要是寄存器堆和cache,以及处 理器内部中间寄存器,组合电路最主要集中在流水线,因为运算电路和关键数 据通道主要集中在流水线部件上。因此,针对处理器的抗辐射研究,需要将重 点放在处理器的存储电路和流水线电路上。
目前,从系统逻辑级进行抗辐射研究,针对处理器中存储电路抗单粒子翻 转主要采用如下方法对Cache纠检错, 一般使用奇偶校验码检测出错误,然 后通过强制cache访问缺失而读入外部存储器对应的单元内容重新填充来纠正 单粒子翻转错误,由于奇偶校验码筒单,不会对cache访问时序有大的影响, 因此,通过该方法就能比较好的解决cache单粒子翻转错误。对于处理器内部 中间寄存器抗辐射设计, 一般使用三模冗余表决方式,加以解决。对寄存器堆 抗辐射设计,使用纠1检2的汉明码。对处理器中组合电路的抗单粒子瞬变, 主要釆用算术码方法(如剩余码和AN码)和冗余方法。该方法主要适合时序要求不高算法比较简单的算法,不同类型算法(如乘法、加法)需要不同的算 术码。冗余方法主要是对整个组合电路采用双模或三模冗余,通过对结果进行 比较表决来检测是否发生了单粒子瞬变错误。
随着处理器及集成电路工作频率和集成度大幅提高,以及实际应用中对功 耗和面积越来越敏感,上述设计技术中所使用的纠检错编码方法,如果直接附 加在对频率敏感的寄存器堆访问机制中,会成为整个电路频率的制约因素。而 直接用两模或多模电路冗余方法则导致集成电路功耗和面积显著增加。因此, 为了克服传统方法和技术的缺点,近年来利用同步多线程技术SMT
(Simultaneous Multithreading)构成双冗余线程来抗单粒子效应成为一种新 方法的研究热点。该方法主要利用多线程具有的性能潜在优势和冗余粒度相对 较小(只与内部流水线执行相关的资源才需要冗余)的特点,来减小抗单粒子 效应对性能和面积的负面影响。冗余线程中,两个线程各自拥有自己的执行流 水线, 一个称之为前导线程(Leading Thread), —个称之为跟踪线程(Trailing Thread), 二者冗余地执行同一个程序代码,执行完成后比较结果。 但该方法有以下缺点
一是只能纠检组合电路的单粒子瞬变SET错误,而无法纠检处理器中单粒 子翁3转SEU错误;二是这种方法的两个线程需要整个流水线冗余,需要在存{诸 器级和写回级设置前导线程执行结果保存緩冲区,以便跟踪线程的结果与前导 线程结果比较;三是为了保存两个线程纠错时回转到所执行程序段的起始位置, 需要设置一个较大的保存回转现场緩冲区。四是前导线程和跟踪线程之间产生 空闲时间,而这个空闲时间可能会影响到整体的性能,如专利号为 CN200480039553,名为使用推测性存储器支持来管理用于冗余线程系统中故 障检测的外部存储器更新,所描述的同步和冗余线程体系结构,这种方法在i殳 计时需要考虑空闲时间的上限。
因此,这种全流水线冗余方式就需要多个緩冲区,这样就大大增加了系乡充 的硬件开销,更重要的是,緩冲区这种存储电路对单粒子翻转非常敏感,会使得在解决了组合电路单粒子瞬变SET问题的同时,带来了单粒子翻转的隐患。

发明内容
本发明的技术解决问题是克服现有技术的不足,提供一种基于同步冗余 线程与编码技术的抗单粒子效应系统及方法,该系统及方法通过将同步冗余线 程与编码技术结合,采用部分冗余,以相对较小的代价,检测和纠正处理器寄 存器堆单粒子翻转SEU、组合电路单粒子瞬变SET,提高处理器的可靠性。
本发明系统的技术解决方案是基于同步冗余线程与编码技术的抗单粒子 效应系统,包括取指模块、线程选通模块、译码模块I、执行模块I、译码模 块II、执行模块II、检错电路I、检错电路U、寄存器堆I、寄存器堆II,比 较模块、存储模块和系统控制器;
取指模块,根据系统控制器的从命中的CACHE或是从外部存储器中读取 指令,并将读取的指令緩存;
线程选通模块,读取取指模块緩存的指令,将该指令写入冗余线程指令缓 冲区后发射;同时将译码模块I 、译码模块II选通;
译码模块I、译码模块TI分别将线程选通模块发射的指令进行译码,并将 译码后的结果分别发送给执行模块I 、执行模块II;
执行模块I 、执行模块II ,根据接收的译码后的结果,分别从寄存器堆I 、 寄存器堆II中读取数据,并将读取的数据发送给检错电路I 、检错电路II;根 据系统控制器的控制,执行相应操作;
检错电路i、检错电路n,检测读取的数据是否发生单粒子翻转,并将检
错结果发送给系统控制器;
系统控制器,根据检错结果,控制执行模块i、执行模块n利用所述的读
取数据执行当前指令,或者控制寄存器堆I、寄存器堆II用正确的数据4^4炎发
生单粒子翻转的数据,并将替换后的数据分别发送给执行模块I 、执行模块n;
或者控制执行模块i、执行模块n停止工作,同时控制取指模块重新读取该指
令;根据比较模块通知的当前状态,控制取指模块重新读取当前指令;比较模块,将执行模块i、执行模块n执行指令后的结果进行比较,若结
果一致,则将该结果发送给存储^f莫块存储;否则,将当前状态通知系统控制器。
还包括写回模块,写回模块将存储模块存储的结果写回寄存器堆I、寄存 器堆II 。
本发明方法的方案是基于同步冗余线程与编码技术的抗单粒子效应方法, 该方法由两个线程分五级流水同步执行,两个线程的共享资源为取指级、线程 选通级、存储级,冗余资源为译码级和执行级;方法步骤如下
(1 )取指级从命中的CACHE或是从外部存储器中读取指令,并将读取的 指令緩存;
(2) 线程选通级读取步骤(1)中緩存的指令,将该指令緩存后发射;同 时将所述的冗余资源选通;
(3) 冗余资源中的译码级接收线程选通级发送的指令,并将该指令进行i奪 码,译码后发送给纟丸行级;
(4) 冗余执行级根据所述的指令,分别从各自所在线程的寄存器堆中读取 数据,读取过程中,判断读取的数据是否发生单粒子翻转,若冗余执行级从寄 存器堆中读取的数据都未发生单粒子翻转,则冗余执行级分别利用读取的数据
执行该指令,转步骤(5);若冗余执行级从寄存器堆中读取的数据都发生单粒 子翻转,停止两个线程流水线,从步骤(1 )开始重新执行;否则,先停止两个 线程流水线,冗余执行级将未发生单粒子翻转的数据替换发生单粒子翻转的数 据,再启动所述流水线,并分别利用读取的数据执行该指令,转步骤(5);
(5) 存储级将冗余执行级执行结果进行比较,若结果一致,则存储该结果; 否则,表明发生单粒子瞬态,停止流水线执行,从步骤(1 )开始重新执行。
所述的两个线程的共享资源还包括写回级,写回级将步骤(5)中存储的执 行结果写回到所述的寄存器堆中。
本发明与现有技术相比有益效果为
1 )本发明方法设计了同步多线程(SMT)技术和错误检测与纠正技术(ErrorDetection And Correction ),共同实现软错误的纠检错的机制的体系结构。将寄 存器堆电路纠检错和组合电路流水线的纠片企错统一在线程中实现和控制,使得 纠检错实现机制与处理器各部件的执行和控制相对独立,避免了传统方法中处 理器自身流水线与纠检错逻辑的并行控制、错误传播控制、时序控制的复杂处 理,使得整个处理器抗单粒子翻转错误结构模块化,控制简单。
2) 本发明方法设计双冗余线程只有部分功能电路冗余,而大部分功能电路 可以共享,因而比冗余双核处理器抗辐射设计方法和完全冗余的双冗余线程方 法的硬件开销小,同时利用多线程固有特性,设计合理的寄存器堆和CACHE 纠检错编码机制,大大减小了存储电路纠检错耗费的硬件开销。
3) 本发明方法由寄存器堆纠检错电路采用快速检错编码方法检错,在两个 线程的两个寄存器堆之间建立了数据交换通道用来寄存器数据替换实现纠^", 通过重启流水线方法来纠正流水线发生的单粒子瞬变错误,纠错实时性强,有 效地避免性能损失。
4 )本发明方法,在冗余双线程的两个寄存器对应存储字只有一个存储字发 生单粒子翻转的状况下,无论发生错误的存储字有多少位发生翻转,都可通过 替换正确存储器堆的对应存储器数据来纠正错误,其纠正率达到100%。对于 双冗余线程流水线,如果其中1条流水线发生单粒子瞬变错误,则通过重启流 水线方法而完全纠正。因此,该方法纠检错辐射引起的翻转和瞬变错误,具有 很高覆盖率。
5 )本 方法是在体系结构逻辑设计层上实现的抗辐射加固方法,不依赖具体 工艺线和单元库,与在版图级、器件级和电路级采用的抗辐射方法相比,没计 成本和生产成本大大降低,具有很强的实用价值。


图1为本发明系统示意图2为本发明系统中系统控制器工作流程图3为本发明检错电路示意图;图4为本发明方法流程图。
具体实施例方式
如图1所示,本发明系统包括取指模块、线程选通模块、译码模块I 、执 行模块I 、译码模块II 、执行模块II 、检错电路I 、检错电路II 、寄存器堆I
(Regfilel )、寄存器堆II (RegfileII),比较模块、存储模块和系统控制器;
取指模块,根据系统控制器的从命中的CACHE或是从外部存储器中读取 指令A,并将读取的指令A缓存;所述从外部存储器中读取的指令需经过EDAC 纠错检错处理;从命中的CACHE中读取的指令经过奇偶校验处理;这两种处 理方法是本领域技术人员公知的技术,这里不再详细说明,关于EDAC纠4普斗企 错处理可以参见中国专利200510041617.9,名称"空间计算机抗单粒子翻转 的存储器纠检错与自动回写方法",奇偶校验处理可以参见西北工业大学博士i仑 文,辛明瑞,"面向空间应用的容错RISC处理器体系结构研究"中的相关介绍。 线程选通模块,读取取指模块緩存的指令A,将该指令A写入冗余线程指令緩 冲区后发射;同时将译码模块I和译码模块II选通;译码模块I将线程选通模 块发射的指令A进行译码,并将译码后的结果发送给执行模块I ;译码冲莫块II 将线程选通模块发射的指令A进行译码,并将译码后的结果发送给执行模块II; 执行模块I,根据接收的译码后的结果,从寄存器堆I中读取数据,并将读取 的数据发送给检错电路I;执行模块n,根据接收的译码后的结果,从寄存器 堆II中读取数据,并将读取的数据发送给检错电路II;执行模块l和执行模块 II根据系统控制器的控制,执行相应操作;检错电路I和检错电路II分别4企测 读取的数据是否发生单粒子翻转,并将检错结果发送给系统控制器;系统控制 器,根据检错结果,控制执行模块I和执行模块il利用所述的读取数据执行当 前指令A,或者控制寄存器堆I和寄存器堆II用正确的数据替换发生单粒子番3 转的数据,并将替换后的数据分别发送给执行模块I和执行模块H;或者^空制 执行模块I和执行模块丄I停止工作,同时控制取指模块重新读取该指令A;才艮 据比较模块通知的当前状态,控制取指模块重新读取当前指令A;比较模块,
10将执行模块i和执行模块n执行指令后的结果进行比较,若结果一致,则将该
结果发送给存储模块存储;否则,将当前状态通知系统控制器。
为了后续利用本系统中的结果,系统中还可以设置写回模块,写回模块将 存储模块存储的结果写回寄存器堆i和寄存器堆n 。
如图2所示,本系统中系统控制器工作过程如下
第一步,判断是否收到检错电路l、检错电路I1发送的检错结果,若收到 该检错结果,则转第二步,否则,判断受否收到比较模块发送的当前状态信息, 若收到当前状态信息,则控制取指模块重新读取该指令A;若未收到当前状态 信息,则继续等待;
第二步,若检错结果表明执行模块I和执行模块II从寄存器堆I 、寄存器 堆II中读取的数据都未发生单粒子翻转,则控制执行模块I和执行模块II利用 读取的数据执行当前指令A;
若检错结果表明执行模块I和执行模块II从寄存器堆I 、寄存器堆II中读 取的数据都发生单粒子翻转,则控制执行模块I和执行模块II停止工作,同时 控制取指模块重新读取当前指令A;
若检错结果表明只有一个执行模块从其寄存器堆中读取的数据发生单粒子 翻转,现设Regfile1中的数据发生错误,当前的要执行的指令是指令A,系统 控制器将控制停止执行模块I和执行模块II停止工作,并选通Regfile2和 Regfile1的数据交换通道L,将Regfile2中对应的正确数据经过两寄存器堆间 的数据通道替换Regfile1中对应的错误数据,这样,就实现了将Regfile1中的 单粒子翻转错误纠正,再启动执行模块I和执行模块II ,由执行模块I和执行 模块II利用替换的数据执行当前指令A。
上述检错电路I、检错电路II的检错过程首先将写入的数据进行编码, 并生成相应的校验位,将该数据及校验位存储到相应的寄存器堆中;在凝:据读 出时,检错电路T、检错电路II对读出的数据进行解码,即将生成的校验位与 编码时生成的校验位进行比较,当二者一致时,证明数据正确,否则,说明数据发生单粒子翻转4晉误。上述编码、解码的实现方式为异或树,具体参见图3。
如图4所示,基于同步冗余线程与编码技术的抗单粒子效应方法,该方法
由两个线程分五级流水同步执行,两个线程的共享资源为取指级、线程选通级、
存储级,冗余资源为译码级和执行级;方法步骤如下
(1 )取指级从命中的CACHE或是从外部存储器中读取指令,并将读取的 指令緩存;从外部存储器中读取的指令需经过EDAC纠错检错处理;从命中的 CACHE中读取的指令经过奇偶校验处理。
(2) 线程选通级读取步骤(1)中緩存的指令,将该指令緩存后发射;同 时将所述的冗余资源选通;
(3) 冗余资源中的译码级接收线程选通级发送的指令,并将该指令进行i争 码,译码后发送给执行级;
(4) 冗余执行级根据所述的指令,分别从各自所在线程的寄存器堆中读取 数据,读取过程中,判断读取的数据是否发生单粒子翻转,若冗余执行级从寄 存器堆中读取的数据都未发生单粒子翻转,则冗余执行级分别利用读取的数据
执行该指令,转步骤(5);若冗余执行级从寄存器堆中读取的数据都发生单粒 子翻转,停止两个线程流水线,从步骤(1 )开始重新执行;否则,先停止两个 线程流水线,冗余执行级将未发生单粒子翻转的数据替换发生单粒子翻转的凄史 据,再启动所述流水线,并分别利用读取的数据执行该指令,转步骤(5);
(5) 存储级将冗余执行级执行结果进行比较,若结果一致,则存储该结果; 否则,表明发生单粒子瞬态,停止流水线执行,从步骤(1)开始重新执行。
所述的两个线程的共享资源还包括写回级,写回级将步骤(5)中存储的执 行结果写回到所述的寄存器堆中。
本发明未详细说明部分属本领域技术人员公知常识。
权利要求
1、基于同步冗余线程与编码技术的抗单粒子效应系统,其特征在于包括取指模块、线程选通模块、译码模块I、执行模块I、译码模块II、执行模块II、检错电路I、检错电路II、寄存器堆I、寄存器堆II,比较模块、存储模块和系统控制器;取指模块,根据系统控制器的从命中的CACHE或是从外部存储器中读取指令,并将读取的指令缓存;线程选通模块,读取取指模块缓存的指令,将该指令写入冗余线程指令缓冲区后发射;同时将译码模块I、译码模块II选通;译码模块I、译码模块II分别将线程选通模块发射的指令进行译码,并将译码后的结果分别发送给执行模块I、执行模块II;执行模块I、执行模块II,根据接收的译码后的结果,分别从寄存器堆I、寄存器堆II中读取数据,并将读取的数据发送给检错电路I、检错电路II;根据系统控制器的控制,执行相应操作;检错电路I、检错电路II,检测读取的数据是否发生单粒子翻转,并将检错结果发送给系统控制器;系统控制器,根据检错结果,控制执行模块I、执行模块II利用所述的读取数据执行当前指令,或者控制寄存器堆I、寄存器堆II用正确的数据替换发生单粒子翻转的数据,并将替换后的数据分别发送给执行模块I、执行模块II;或者控制执行模块I、执行模块II停止工作,同时控制取指模块重新读取该指令;根据比较模块通知的当前状态,控制取指模块重新读取当前指令;比较模块,将执行模块I、执行模块II执行指令后的结果进行比较,若结果一致,则将该结果发送给存储模块存储;否则,将当前状态通知系统控制器。
2、 根据权利要求1所述的基于同步冗余线程与编码技术的抗单粒子效应系统,其特征在于还包括写回模块,写回模块将存储模块存储的结果写回寄存 器堆I 、寄存器堆n。
3、 根据权利要求1或2所述的基于同步冗余线程与编码技术的抗单粒子效 应系统,其特征在于所述的系统控制器工作过程如下第一步,判断是否收到检错电路I、检错电路II发送的检错结果,若收到 该检错结果,则转第二步,否则,判断受否收到比较模块发送的当前状态信息, 若收到当前状态信息,则控制取指模块重新读取该指令;若未收到当前状态信 息,则继续等待;第二步,若检错结果表明执行模块I 、执行模块II从寄存器堆I、寄存器 堆II中读取的数据都未发生单粒子翻转,则控制执行模块I、执行模块II利用 读取的数据执行当前指令;若检错结果表明执行模块i、执行模块n从寄存器堆i、寄存器堆n中读 取的数据都发生单粒子翻转,则控制执行模块i、执行模块n停止工作,同时控制取指模块重新读取当前指令;若检错结果表明只有一个执行模块从其寄存器堆中读取的数据发生单粒子翻转,则先控制执行模块i、执行模块n停止工作,用另一执行模块读^c的正 确的数据替换该发生单粒子翻转的数据,并将替换后的数据分別发送给执行模 块i、执行模块n ,再启动执行模块i、执行模块n,由执行模块i、执行模 块n利用替换的数据执行当前指令。
4、 根据权利要求1或2所述的基于同步冗余线程与编码技术的抗单粒子效应系统,其特征在于所述取指模块从外部存储器中读取的指令需经过EDAC 纠错检错处理;从命中的CACHE中读取的指令经过奇偶校验处理。法由两个线程分五级流水同步执行,两个线程的共享资源为取指级、线程选通 级、存储级,冗余资源为译码级和执行级;方法步骤如下(1 )取指级从命中的CACHE或是从外部存储器中读取指令,并将读取的 指令緩存;(2)线程选通级读取步骤(1)中緩存的指令,将该指令緩存后发射;同时将所述的冗余资源选通;(3) 冗余资源中的译码级接收线程选通级发送的指令,并将该指令进行译码,译码后发送给执行级;(4) 冗余执行级根据所述的指令,分别从各自所在线程的寄存器堆中读取 数据,读取过程中,判断读取的数据是否发生单粒子翻转,若冗余执行级从寄 存器堆中读取的数据都未发生单粒子翻转,则冗余执行级分别利用读取的数据执行该指令,转步骤(5);若冗余执行级从寄存器堆中读取的数据都发生单粒 子翻转,停止两个线程流水线,从步骤(1 )开始重新执行;否则,先停止两个 线程流水线,冗余执行级将未发生单粒子翻转的数据替换发生单粒子翻转的数 据,再启动所述流水线,并分别利用读取的数据执行该指令,转步骤(5);(5) 存储级将冗余执行级执行结果进行比较,若结果一致,则存储该结果; 否则,表明发生单粒子瞬态,停止流水线执行,从步骤(1 )开始重新扭J亍。
5.<image>image see original document page 4</image>
6、 根据权利要求1所述的基于同步冗余线程与编码技术的抗单粒子效应方 法,其特征在于所述的两个线程的共享资源还包括写回级,写回级将步骤(5) 中存储的执行结果写回到所述的寄存器堆中。
7、 根据权利要求5或6所述的基于同步冗余线程与编码技术的抗单4立子效 应方法,其特征在于所述步骤(1 )中的取指级从外部存储器中读取的指令需 经过EDAC纠错检错处理;从命中的CACHE中读取的指令经过奇偶校验处理。
全文摘要
基于同步冗余线程与编码技术的抗单粒子效应系统及方法,通过对纠检错编码的研究和改进,使得该编码技术能够快速检测出寄存器堆中发生的单粒子翻转,同时将处理器同步双线程机制设计为冗余双线程机制,当检测到某线程的寄存器堆发生单粒子翻转时,将通过替换为另一个冗余线程的寄存器堆对应存储单元的数据,纠正发生翻转错误的寄存器数据;通过冗余双线程指令级同步执行结果比较机制,判断出流水线电路是否发生单粒子瞬变错误。当发生该错误时通过设计的冗余线程流水线重启机制,快速消除流水线单粒子瞬变错误。本方法较好的解决了处理器中寄存器堆多位单粒子翻转和流水线单粒子瞬变两种常发生而又难解决的问题。
文档编号G06F11/00GK101551764SQ200910078908
公开日2009年10月7日 申请日期2009年2月27日 优先权日2009年2月27日
发明者于立新, 彭和平, 丽 郝 申请人:北京时代民芯科技有限公司;中国航天时代电子公司第七七二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1