一种容软错误的粗粒度可重构阵列的制作方法
【技术领域】
[0001]本发明涉及容错处理器结构设计技术领域,尤其涉及一种容软错误的粗粒度可重构阵列。
【背景技术】
[0002]软错误(Soft Error)指集成电路由于粒子福射等原因造成的电路存储信息发生随机翻转的现象。在地面环境下,粒子辐射主要来源于封装材料中的铀和钍的放射性同位素残留、高能宇宙射线带来的中子辐射、集成电路磷硼硅酸盐玻璃材料中的硼10同位素等;在大气层外则还包括太阳风带来的大量带电粒子。软错误虽然不会直接造成集成电路的硬损伤,但它会严重影响电路的正常运行并造成数据的损坏。有研究指出,集成电路中软错误发生的概率可以达到栅穿等故障发生概率的5000倍以上,并成为航天器电子系统故障的首要原因。软错误对地面环境下电子器件的可靠性同样会造成影响,例如1976年在Cray-Ι大型计算机中首次观察到了软错误的发生,而最新的报道则显示对于当前的高端服务器来说软错误可达到每天发生一次的强度。随着工艺技术的进步,集成电路对于软错误日益敏感,最近的研究发现原来属于轻粒子领域本来无害的u介子对于65nm以下的先进工艺也会导致软错误。在近年的国际半导体技术路线图1TRS中,软错误一直被列为集成电路可靠性所面临的主要挑战之一。如上所述,不仅运行在空间等恶劣环境下的微控制器等器件,甚至包括民用领域运行关键应用的大型主机/服务器、高性能主干网络等的核心部件也必须考虑软错误防护的问题。
[0003]随着微电子工艺技术的发展,片上集成度快速提升,当前处理器架构的发展已经从追求主频的提升转向如何更好利用日益丰富的片上系统资源。可重构计算架构是异于传统冯诺依曼结构的一种计算架构,它通过静态或动态更改电路结构以及连接关系的方法来改变电路功能,这与通过改变所执行的指令流来改变功能的冯诺依曼架构形成显著区另IJ。静态的可重构架构目前主要以FPGA为代表,已经发展较为成熟,其最基本的处理元素是逻辑门,重构灵活性高,但具有需要大量配置数据、配置时间较长、运算功耗较高、芯片面积较大等缺点。与其对应的是动态粗粒度可重构计算架构(Coarse-Grain ReconfigurableArchitectures, CGRA),其所谓动态,指的是该结构可以在计算过程中间改变电路结构及功能,相比静态可重构的FPGA更为灵活;所谓粗粒度,指的是功能的改变至少以一个字节(8bit)及以上为单位的粒度,而不是像FPGA以位(bit)为单位的细粒度重构。粗粒度可重构带来的好处是配置信息的量会大大降低,从而降低了重构时的代价。可以说,CGRA拥有通用处理器(GPP)的灵活性和专用集成电路(ASIC)的高效性相比,其配置数据量大为减少,配置灵活性更强,应用开发难度更低,适宜应用在包括高效能计算、高速信号处理、数据密集与计算密集的领域。基于配置流的运行方式可以绕过国外的专利和技术壁皇。
[0004]CGRA的研究方兴未艾,应用领域逐步扩大,不过在传统的对可靠性要求极高的空间领域,仍然以传统的抗辐照加固微处理器和ASIC为主。为大量不同应用设计专门的抗辐照加固ASIC无论在时间上还是投入成本上都不经济,而微处理器在处理高吞吐量的应用时处理能力捉襟见肘。因而,近期西方国家已经开始了将CGRA引入空间等高可靠计算领域的尝试,并取得了初步的成果。
[0005]但是,粗粒度可重构架构在软错误方面的研究还是一个比较新的问题,相关研究很少。如Jafri S.M.A.H.等通过基于余3码的并行错误检测侦测软错误的发生,然后通过重新执行发生错误的操作来进行错误恢复(参见:Jafri S.M.A.Η., Piestrak
S.J.,Sentieys 0., Pi 1lement S.Design of a Fault-Tolerant Coarse-GrainedReconfigurable Architecture: A Case Study.11th Internat1nal Symposium onQuality Electronic Design (ISQED,10).2010:845-852)。他们对图 1 所示的 DART 架构改造,主要思路是利用余3码对数据存储器中的数据进行编码,然后将额外产生的编码位存储在数据存储器中,然后利用具有错误检测能力的RDP检测软错误是否已经发生,如果发生就重新执行刚刚产生软错误的操作。改造后的容错粗粒度可重构架构如图2所示,可以看出,其在顶部增加了产生余3码的模块以及检测位,中间的可重构单元RDP1-6都已经被替换成了具有自检测能力的可重构单元。其报告的硬件代价大约为18?98%,已经大大优于双模冗余带来的100%硬件代价,更不用说三模冗余的200%以上的硬件代价。再如Alnajjar D.等通过仔细设计的电路结构,可以灵活支持双模冗余DMR、三模冗余TMR等具有不同可靠性和代价的加固措施,提出如图3所示的容错粗粒度可重构架构的结构框图(参见:Alnaj jar D., Konoura Η., Younghun Κ., Mitsuyama Y., HashimotoΜ., Onoye T.1mplementing Flexible Reliability in a Coarse-Grained ReconfigurableArchitecture[J].Very Large Scale Integrat1n(VLSI)Systems, IEEE Transact1nson, 2013, 21 (12):2165-2178)。该可重构阵列被组织为一个二维网格形式的阵列架构,称为Cluster Array,网格中的每个单元称为一个Cluster ;每个Cluster内部包含四个执行单元,称为Cell ;每个Cell对应3个配置寄存器ConfMem。通过这些冗余的硬件资源,实现了对软错误的检测和恢复。以三模冗余(TMR)为例,其配置方案如图4所示。可以看出,在TMR下,通过大量的冗余解决了软错误检测和恢复的问题。首先,利用三个Cell将同一计算功能进行TMR,三个Cell的输出结果通过输出端的表决器表决得到一份正确的结果;具体到某一 Cell内部,其配置存储器同样进行了 TMR,然后配置信息通过表决器VC以及选择器Selector,只有表决后正确的配置信息才会进入执行单元进行执行,很好的保护了配置信息。当然通过改变配置方案,还可以支持其它代价更低的容软错误方案。
[0006]但是,上述的现有技术具有以下两个缺点:
[0007]1、延迟代价过高:以DART架构为例,其余3码的生成以及软错误检测电路都需要复杂的多级组合逻辑实现,错误检测出来后还需要重复执行以进行错误恢复,引入了过高的时间延迟;
[0008]2、硬件复杂度高,不够灵活:以DART架构为例,其存储器、算术逻辑单元ALU、乘累加单元MA都需要特殊设计,而当应用于对软错误防护无要求的环境时,这些额外的硬件电路仍会工作;而其它研究也才能在专门设计的TMR、DMR硬件资源引入硬件代价过高的问题。
[0009]因此,本领域的技术人员致力于开发一种容软错误的粗粒度可重构阵列,能容软错误、支持三模冗余TMR且延迟代价低、灵活性强、硬件代价低。
【发明内容】
[0010]为实现上述目的,本发明提供了一种容软错误的粗粒度可重构阵列,接收阵列的输入数据和阵列的配置信息,其特征在于,包括成m行η列排布的mXη个执行单元;
[0011]所述执行单元包括第一多路复用器、第二多路复用器、第三多路复用器、运算器和寄存器堆;在第i行的任意一个所述执行单元中,1 ^ i ^ m,
[0012]所述第一多路复用器、所述第二多路复用器和所述第三多路复用器的第一输入端皆用于接收所述阵列的输入数据;
[0013]所述第一多路复用器、所述第二多路复用器和所述第三多路复用器的第二输入端对应地与所述本地寄存器堆的第一、第二和第三输出端相连;
[0014]当2 < i < m,所述第一多路复用器、所述第二多路复用器和所述第三多路复用器的第三输入端分别地通过行交叉开关连接到第i_l行所述执行单元中的所述运算器的输出端;当i = 1,所述第一多路复用器、所述第二多路复用器和所述第三多路复用器的第三输入端皆空接;
[0015]所述第一多路复用器、所述第二多路复用器和所述第三多路复用器的控制端皆用于接收所述阵列的配置信息中的选择信号;
[0016]所述第一多路复用器的输出端连接到所述运算器的第一输入端,所述第二多路复用器的输出端连接到所述运算器的第二输入端,所述第三多路复用器的输出端连接到所述运算器的第三输入端;
[0017]所述运算器的控制端用于接收所述阵列的配置信息中的运算指令,并根据所述运算指令中不同位域的信息控制所述第一、第二、第三输入端的数据来源,所述运算器根据其所述第一、第二、第三输入端的输入和所述运算指令进行运算