一种用于低功耗流水线的时序控制电路的制作方法

文档序号:10690682阅读:446来源:国知局
一种用于低功耗流水线的时序控制电路的制作方法
【专利摘要】本发明属于电子电路技术领域,具体的说涉及一种用于低功耗流水线的时序控制电路。本发明为基于错误传播的Razor电路设计提供了一种新的延迟错误纠正技术,其具体实现为一种新的低功耗流水线时序控制电路。当流水线出现延迟错误的时候,这个新的延迟错误纠正技术能够在只损耗一个时钟周期的为代价,将延迟错误纠正过来。而且出错信号只在相邻的流水线控制器之间传递,不存在需要在整个芯片上传递的全局信号,所以这个技术可以用在大规模的线性流水线上。本发明的有益效果为,相对于传统的触发器电路,本发明的流水线控制器电路与相匹配的Rff相结合,可以在保持电路工作频率不变的情况下,降低供电电压,使电路依然正确工作。
【专利说明】
一种用于低功耗流水线的时序控制电路
技术领域
[0001]本发明属于电子电路技术领域,具体的说涉及一种用于RazoH时间预测执行)低功耗电路的流水线时序控制电路。
【背景技术】
[0002]在今天,手机等移动电子产品已经成为了每个人必不可少的消费品,新的技术不断添加到这些移动电子产品上。新的技术的加入就意味着不断增加的功耗,然而受到电池技术的制约,为了使得这些移动电子产品能够有更长的续航时间,当今手机等移动电子产品不得不采用低功耗的电路技术。在这些产品上CPU、GPU等运算单元占据了大部分能量消耗。Razor电路技术是一种用于降低这些数字集成电路功耗的电路技术。它能在几乎不影响电路性能的情况下降低数字集成电路的功耗,这使得它成为了一个非常有潜力的电路技术。
[0003]如图1,在传统的流水线电路设计中,采用触发器存储组合逻辑的输出数据。而Razor电路通过将触发器替换为Razor flip-flop(时间预测执行触发器)简记为Rff。同时需要在原来的流水线上添加额外的流水线时序控制电路,如图2所示。Rff除了存储组合逻辑的输出,同时还具有检测数据延迟到来的能力,也就是检测Rff的数据数据输入端是否在延迟检测窗口(在时钟上升沿后的一段时间)内翻转的能力。流水线时序控制电路需要为Rff提供时钟等控制信号,以保证电路的正确执行。
[0004]如图3,在正常的情况下流水级A在T周期的上升沿发射新数据,经过组合逻辑,数据会在T+1周期的上升沿之前稳定下来,然后流水级B的RfT会在T+1周期的上升沿采样组合逻辑的输出,将组合逻辑的输出存储到Rff里面,同时输出给下一级流水线。
[0005]通过在保持电路工作频率不变的情况下,当把电路的供电电压降低之后,电路的延时会增加。对于有的指令由于执行速度很快,延时增加的不多,那么还是会在下一个周期的上升沿之前稳定下来,Rff能正常采样信号。但是对于有的指令由于在正常供电的情况下其延迟就已经接近一个周期,在降低供电电压之后其延迟将会增大,可能造成其运行周期超过一个周期。如图3,流水级A在周期T+1上升沿发射一个数据,经过组合逻辑,要超过T+2周期的上升沿才能稳定下来。如果采用普通的触发器在T+2周期的上升沿去采样这个数据,那么采样到的将是不稳定的数据,前面说过组合逻辑的输出超过T+2周期的上升沿才能稳定下来。所以就需要使用Rff去采样这个数据,Rff—般具有存储延迟到来的数据和检测并报告有数据延迟到来的功能。这个数据的延迟到来将会影响下一级流水线的正常的执行,具体地说就是这个延迟出来的结果将会占用后级流水线的执行时间,所以当出现数据延迟到来的时候需要作特殊的处理。所以当出现数据延迟到来的时候,需要流水线时序控制电路进入相应的延迟纠错模式,通过调节每一级流水线的时钟等控制信号使得流水线能够正确地执行。

【发明内容】

[0006]本发明所要解决的,就是针对上述问题,提出一种用于低功耗流水线的时序控制电路。
[0007]为实现上述目的,本发明采用如下技术方案:
[0008]一种用于低功耗流水线的时序控制电路,该电路由第一上升沿触发器DQRNl、第二上升沿触发器DQRN2、第一低电平锁存器LAL1、第二低电平锁存器LAL2、第一与门andl、第二与门and2、第三与门and3、第四与门and4、第五与门and5、第六与门and6、第七与门and7、第一或门or 1、第二或门or2、第三或门or3、第四或门or4、第一或非门nor 1、第二或非门nor2、第三或非门nor3、第一反相器invl、第二反相器inv2、第三反相器inv3、第一缓冲器buf I构成;
[0009]所述第一反相器invl的输入接第二上升沿触发器DQRN2的输出端,其输出端接第一与门and I的一个输入端;
[0010]第一或门orl的一个输入端接外部输入端errslf,另一个输入端接外部输入端ierrpup,其输出端接第一与门andl的一个输入端;
[00?1 ]第一与门andl的输出端接第二或门or2的一个输入端;
[0012]第二与门and2的第二个输入端接外部输入端ierrpdwn,其输出接第二与门and2的一个输入端;
[0013]第二反相器inv2的输入端接第一上升沿触发器DQRNl的输出端,其输出端接第二与门and2的输入端;
[0014]第二与门and2的输出端接第一低电平锁存器LALl的数据输入端;
[0015]第一低电平锁存器LALl的时钟接外部输入端clk,其输出接第三或非门nor3输入端、第六与门and6输入端;
[0016]第三或门or3—个输入端接外部输入端errslf,另外一个输入端接外部输入端ierrpup,其输出端接第三与门and3的输入端;
[0017]第一或非门orl的一个输入端接外部输入ierrpdwn,另外一个输入端接第二上升沿触发器DQRN2的输出端,其输出端接第三与门and3输入端;
[0018]第三与门and3输出端接第一上升沿触发器DQRNl的数据输入端;
[0019]第一上升沿触发器DQRNl的时钟接外部输入端口clk,其复位端接外部输入端rstn,其输出端接第二低电平锁存器LAL2的输入端、第二或非门nor2输入端和第一缓冲器bufl的输入端;
[0020]第二低电平锁存器LAL2的时钟端接外部输入端clk,其输出端接第三或非门nor3的一个输入端和第七与门and7输入端;
[°021 ]第二或非门nor2的一个输入端外部输入端ierrpup,另外一个输入端接外部输入端errsIf,其输出端接第四与门and4输入端;第四与门and4的第二输入端接外部输入端ierrpdwn,其输出端接第二上升沿触发器DQRN2的数据输入端;
[0022]第二上升沿触发器DQRN2的时钟端接外部输入端clk,其复位端接外部输入端rstn,其输出端接第四或门or4输入端;
[0023]第三或非门nor3的输出端接第五与门and5的输入端;
[0024]第五与门and5的输入端接外部输入端clk,其输出端接外部输出端clkm;
[0025]第四或门or4的输入端接外部输入端口errs If,其输出端接外部输出端oerrpdwn ;[OO26]第六与门and6的输入端接外部输入端口 clk,其输出端接外部输出端elks、第三反相器inv3的输入端;第三反相器inv3的输出端接外部输出端erstn;
[0027 ]第一缓冲器buf I的输出端接外部输出端oerrpup ;
[0028]第七与门and7的输入端接外部输入端clk,其输出端接外部输出端restore;
[0029]其中,外部输入端clk是全局时钟;外部输入端ierrpup是来自下一级流水线,这个信号为高的时候标志着下一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端ierrpdwn来自上一级流水线,这个信号为高的时候标志着上一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端errslf为高的时候表示本级流水线出现延迟错误;外部输入端rstn表示全局复位信号,低电平有效;外部输出端clkm是Rff主锁存器的时钟信号;外部输出端c I ks是Rf f影子锁存器的时钟信号;外部输出端re s tore是Rff的restore(转存)信号;外部输出端erstn是Rff数据跳变检测器的复位信号;外部输出端oerrpup是给上一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求上一级流水线停止一个周期;外部输出端oerrpdwn是给下一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求下一级流水线停止一个周期。
[0030]本发明的有益效果为,相对于传统的触发器电路,本发明的流水线时序控制电路与相应的RfT相结合,可以在保持电路工作频率不变的情况下,降低供电电压,使电路依然正确工作。由于数字集成电路的功耗与供电电压成正比,供电电压下降就可以降低电路的功耗,对于一般的数字集成电路供电电压可以下降10%,功耗可以降低15%以上。
【附图说明】
[0031 ]图1为常规的流水水线结构图;
[0032]图2为基于Razor电路流水线结构图;
[0033]图3为Razor电路流水线时序实例图;
[0034]图4为一种可用Rff的结构示意图;
[0035]图5为Rff的时序图。
[0036]图6为本发明的低功耗流水线时序控制电路的示意图
[0037]图7为低功耗流水线时序控制信号的时序图
【具体实施方式】
[0038]下面结合附图和实施例,详细描述本发明的技术方案:
[0039]本发明为基于错误传播的Razor低功耗电路设计提供了一种新的延迟错误纠正技术,其具体实现为一种新的流水线时序控制电路。当流水线出现延迟错误的时候,这个新的延迟错误纠正技术能够在只损耗一个时钟周期的为代价,将延迟错误纠正过来。而且出错信号只在相邻的流水线时序控制电路之间传递,不存在需要在整个芯片上传递的全局信号,所以这个技术可以用在大规模的线性流水线上。这个流水线控制电路需要特定的Rff单元,其中一个可行的Rff单元的示意图如图4所示。
[0040]本发明的结构如图6所示,该电路由第一上升沿触发器DQRN1、第二上升沿触发器DQRN2、第一低电平锁存器LALl、第二低电平锁存器LAL2、第一与门andl、第二与门and2、第三与门and3、第四与门and4、第五与门and5、第六与门and6、第七与门and7、第一或门or 1、第二或门or2、第三或门or3、第四或门or4、第一或非门norl、第二或非门nor2、第三或非门nor3、第一反相器invl、第二反相器inv2、第三反相器inv3、第一缓冲器bufl构成;其中,[0041 ]外部输入端clk是全局时钟;外部输入端ierrpup是来自下一级流水线,这个信号为高的时候标志着下一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端ierrpdwn来自上一级流水线,这个信号为高的时候标志着上一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端errslf为高的时候表示本级流水线出现延迟错误;外部输入端rstn表示全局复位信号,低电平有效;外部输出端clkm是Rf f主锁存器的时钟信号;外部输出端elks是Rff影子锁存器的时钟信号;外部输出端restore是Rff的restore(转存)信号;外部输出端erstn是Rff数据跳变检测器的复位信号;外部输出端oerrpup是给上一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求上一级流水线停止一个周期;外部输出端oerrpdwn是给下一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求下一级流水线停止一个周期;
[0042]所述第一反相器invl的输入接第二上升沿触发器DQRN2的输出端,其输出端接第一与门and I的一个输入端;
[0043]第一或门orl的一个输入端接外部输入端errslf,另一个输入端接外部输入端ierrpup,其输出端接第一与门andl的一个输入端;
[0044]第一与门andl的输出端接第二或门or2的一个输入端;
[0045]第二与门and2的第二个输入端接外部输入端ierrpdwn,其输出接第二与门and2的一个输入端;
[0046]第二反相器inv2的输入端接第一上升沿触发器DQRNl的输出端,其输出端接第二与门and2的输入端;
[0047]第二与门and2的输出端接第一低电平锁存器LALl的数据输入端;
[0048]第一低电平锁存器LALl的时钟接外部输入端clk,其输出接第三或非门nor3输入端、第六与门and6输入端;
[0049]第三或门or3—个输入端接外部输入端errslf,另外一个输入端接外部输入端ierrpup,其输出端接第三与门and3的输入端;
[°05°]第一或非门orl的一个输入端接外部输入ierrpdwn,另外一个输入端接第二上升沿触发器DQRN2的输出端,其输出端接第三与门and3输入端;
[0051 ]第三与门and3输出端接第一上升沿触发器DQRNl的数据输入端;
[0052]第一上升沿触发器DQRNl的时钟接外部输入端口clk,其复位端接外部输入端rstn,其输出端接第二低电平锁存器LAL2的输入端、第二或非门nor2输入端和第一缓冲器bufl的输入端;
[0053]第二低电平锁存器LAL2的时钟端接外部输入端clk,其输出端接第三或非门nor3的一个输入端和第七与门and7输入端;
[0054]第二或非门nor2的一个输入端外部输入端ierrpup,另外一个输入端接外部输入端errsIf,其输出端接第四与门and4输入端;第四与门and4的第二输入端接外部输入端ierrpdwn,其输出端接第二上升沿触发器DQRN2的数据输入端;
[0055]第二上升沿触发器DQRN2的时钟端接外部输入端clk,其复位端接外部输入端rstn,其输出端接第四或门or4输入端;[OO56 ]第三或非门nor 3的输出端接第五与门and5的输入端;
[0057]第五与门and5的输入端接外部输入端clk,其输出端接外部输出端clkm;
[0058]第四或门0r4的输入端接外部输入端口errs If,其输出端接外部输出端oerrpdwn ;
[0059]第六与门and6的输入端接外部输入端口clk,其输出端接外部输出端elks、第三反相器inv3的输入端;第三反相器inv3的输出端接外部输出端erstn;
[0000]第一缓冲器bufl的输出端接外部输出端oerrpup;
[0061 ]第七与门and7的输入端接外部输入端elk,其输出端接外部输出端restore。
[0062]本发明的工作原理为:
[0063]本发明的流水线时序控制电路需要Rff单元配合工作。Rff由主锁存器、影子锁存器、数据跳变检测器三部分组成。主锁存器在时钟clkm为高电平期间将数据端D的数据打入主锁存器里面。影子锁存器在时钟elks为高电平期间将数据由数据输入端D打入影子锁存器。当restore为高电平的时候影子寄存器的数据将会被转存到主锁存器里面,为了避免信号冲突clkm和restore不会同时为高。数据跳变检测器是在时钟clkm为高电平期间对输入端D是否出现翻转进行检测,如果有翻转则会将QE设置高,没有则QE会保持为低。
[0064]如图2、5、7所示,在正常情况下,例如在T+1周期的上升沿,instrl的结果数据在T+I周期的上升沿之前就已经稳定下来了,直接在clkm的高电平区间存入主锁存器,直接输出到Q。其他的信号都是不动作的,即输入信号elks保持为低电平,restore保持为低电平,erstn保持为高电平,输出信号QS保持不变,QE保持为低电平。
[0065]当把电路的工作电压降低,以降低电路运行的功耗的时候。出现延迟较大的运算的时候,就会发生延迟错误,即有的运算需要超过一个周期的时间来完成运算。当出现延迟错误的时候,例如在在T+2周期的clkm为高电平期间,Stage B的instr2的结果数据晚来了,出现的效果就是在clkm为高电平期间数据输入端D出现了数据翻转,这个时候Rff里面的数据跳变检测器将会检测到这个数据的延迟到来,将QE置为高以表示检测到了数据的延迟到来,这种情况也可以称作是检测到了延迟错误。当检测到了延迟错误这种情况,流水线时序控制电路改变控制逻辑,进入相应的延迟错误纠正模式,RfT的时钟等控制信号将会改变。
[0066]当StageB检测到延迟错误的时候,即有QE为高的时候,这一级流水线将会进入纠错模式Ml,如图5和7所示。检测到数据延迟到来的流水级,clkm将会停止两个周期(即这里的T+3、T+4周期),在T+3周期elks激活一个周期,在elks为高的期间将数据存储到影子寄存器里面,同时erstn激活一周期产生一个短时间低电平用于将数据跳变检测器复位使得QE输出恢复为0,在T+4周期restore激活一周期将数据从影子锁存器转存到主锁存器里面,SP由QS转存到IT+5周期流水线就可以恢复到正常执行的模式。
[0067]当上一级流水线出现延迟错误的时候,如图2、5、7所示当流水级StageB在T+2周期出现延迟错误的时候,作为出错级的下一级流水级Stage C进会进入另外一种纠错模式,纠错模式M2。在纠错模式M2下,如图6,在T+3周期clkm将会停止一个周期,elks将会激活一个周期,erstn也激活一个周期。erstn激活一个周期是为了应对Stage C也同时出现了延迟错误,需要对数据跳变检测器进行复位。在T+4周期就恢复正常执行模式,在T+4周期不进行restore。
[0068]这样做的原因是SrageB在T+2周期出现延迟错误,Srage B在T+2周期输出的数据经过组合逻辑,到达Stage C。由于延迟的出现,Srage B在T+2周期输出的延迟加上组合逻辑的延迟过大,可能导致在T+3周期,Stage C不能正确地采样数据。所以在T+3周期Stage B与Stage C都停止一个周期,让组合逻辑能有足够的时间执行相应的运算。在T+4周期StageC就可以正确地采样instri+2的值了。
[0069]流水线时序控制电路就为流水线的执行提供正确地时钟等信号,也就是为Rff替工正确的控制信号。在这里最重要的信号就是控制Rff的时钟信号c lkm、elks、restore,数据跳变检测器的复位信号erstn,以及当出现延迟错误的时候在相邻流水线时序控制电路间传递的出错信号oerrpup、oerrpdwn ο
[0070]如图2、5、7,在T+2周期的时候StageB检测到了延迟错误,Stage B的流水线时序控制电路进入到纠错模式Ml ο同时在这个周期内向Stage B的下一级流水线Stage C的流水线时序控制电路发出errpdwn信号,Stage C的流水线时序控制电路在收到errpdwn的时候将进入纠错模式M2。流水线时序控制电路将会产生相对应的控制信号使得Stage B的Rff工作在纠错模式Ml ,Stage C的Rff工作在纠错模式M2。
[0071]由于StageB和Stage C都工作在纠错模式实际上相当于停止了一个周期。具体地说就是= Stage B是在T+4周期停止了一个周期,因为在T+4周期Stage B没有采样流水线的输出;Stage C是在T+3周期停止了一个周期,因为在T+3周期Stage C没有采样流水线的输出。因为这两个流水级都停止了一个周期,流水线的执行的时序被打乱了。所以需要别的流水线也停止一个周期,这样流水线的执行顺序才能得到恢复。
[0072]所以当进入纠错模式Ml的时候在要向上一级流水线传递一个errpup信号,使得的上一级停止一个周期。例如,在T+2的时候Stage B检测到延迟错误,进入纠错模式Ml,在T+3的时候向Stage C传递一个errpup信号,使得Stage A在T+4周期进入纠错模式Ml。当进入纠错模式M2的时候需要向流线的下一级传递一个errpdwn信号,使得的下一级停止一个周期。例如在T+3周期的Stage C进入纠错模式M2,在T+3向流水线的下一级传递一个errpdwm信号,使得Stage D进入纠错模式M2。
[0073]当同时接收到errpup信号和errpdwn的时候,进入纠错模式M2,同时停止出错信号的传播,即不再向周围的流水级发送errpup或errpdwn信号。
[0074]这样通过在出现延迟错误的时候,每一级流水线依次停止一个周期使得流水线恢复正常的执行。由于信号只需要在一个周期内传递到周围的流水线时序控制电路,不需要在一个周期内传递到所有的流水级,这就使得这个纠错方法适用于大规模流水线电路的设
i+o
【主权项】
1.一种用于低功耗流水线的时序控制电路,该电路由第一上升沿触发器DQRN1、第二上升沿触发器DQRN2、第一低电平锁存器LALl、第二低电平锁存器LAL2、第一与Handl、第二与门and2、第三与门and3、第四与门and4、第五与门and5、第六与门and6、第七与门and7、第一或门or 1、第二或门or2、第三或门or3、第四或门or4、第一或非门nor 1、第二或非门nor2、第三或非门nor3、第一反相器invl、第二反相器inv2、第三反相器inv3、第一缓冲器bufl构成;所述第一反相器invl的输入接第二上升沿触发器DQRN2的输出端,其输出端接第一与门and I的一个输入端; 第一或门or I的一个输入端接外部输入端errslf,另一个输入端接外部输入端ierrpup,其输出端接第一与Handl的一个输入端; 第一与门and I的输出端接第二或门or 2的一个输入端; 第二与门and2的第二个输入端接外部输入端ierrpdwn,其输出接第二与门and2的一个输入端; 第二反相器inv2的输入端接第一上升沿触发器DQRNl的输出端,其输出端接第二与门and2的输入端; 第二与门and2的输出端接第一低电平锁存器LALI的数据输入端; 第一低电平锁存器LALl的时钟接外部输入端clk,其输出接第三或非门nor3输入端、第六与门and6输入端; 第三或门or 3—个输入端接外部输入端err s If,另外一个输入端接外部输入端ierrpup,其输出端接第三与门and3的输入端; 第一或非门or I的一个输入端接外部输入ierrpdwn,另外一个输入端接第二上升沿触发器DQRN2的输出端,其输出端接第三与门and3输入端; 第三与门and3输出端接第一上升沿触发器DQRNl的数据输入端; 第一上升沿触发器DQRNl的时钟接外部输入端口 elk,其复位端接外部输入端rstn,其输出端接第二低电平锁存器LAL2的输入端、第二或非门nor2输入端和第一缓冲器bufl的输入端; 第二低电平锁存器LAL2的时钟端接外部输入端clk,其输出端接第三或非门nor3的一个输入端和第七与门and7输入端; 第二或非门nor2的一个输入端外部输入端ierrpup,另外一个输入端接外部输入端errslf,其输出端接第四与门and4输入端;第四与门and4的第二输入端接外部输入端ierrpdwn,其输出端接第二上升沿触发器DQRN2的数据输入端; 第二上升沿触发器DQRN2的时钟端接外部输入端clk,其复位端接外部输入端rstn,其输出端接第四或门or4输入端; 第三或非门nor3的输出端接第五与门and5的输入端; 第五与门and5的输入端接外部输入端clk,其输出端接外部输出端clkm; 第四或门or4的输入端接外部输入端口 errslf,其输出端接外部输出端oerrpdwn ; 第六与门and6的输入端接外部输入端口 clk,其输出端接外部输出端elks、第三反相器inv3的输入端;第三反相器inv3的输出端接外部输出端erstn; 第一缓冲器buf I的输出端接外部输出端oerrpup ; 第七与门and7的输入端接外部输入端clk,其输出端接外部输出端restore ; 其中,外部输入端clk是全局时钟;外部输入端ierrpup是来自下一级流水线,这个信号为高的时候标志着下一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端ierrpdwn来自上一级流水线,这个信号为高的时候标志着上一级流水线出现了延迟错误,请求这一级流水线停止一个周期;外部输入端errslf为高的时候表示本级流水线出现延迟错误;外部输入端rstn表示全局复位信号,低电平有效;外部输出端clkm是Rf f主锁存器的时钟信号;外部输出端elks是Rff影子锁存器的时钟信号;外部输出端restore是Rff的restore转存信号;外部输出端erstn是Rff数据跳变检测器的复位信号;外部输出端oerrpup是给上一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求上一级流水线停止一个周期;外部输出端oerrpdwn是给下一级流水线的信号,当为高的时候表示本级流水线出现了延迟错误,请求下一级流水线停止一个周期。
【文档编号】H03K5/13GK106059545SQ201610430318
【公开日】2016年10月26日
【申请日】2016年6月16日
【发明人】贺雅娟, 艾国润, 史兴荣, 刘俐宏, 甄少伟, 罗萍, 张波
【申请人】电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1