Verilog设计(一):时钟门控

时钟门控(Clock-Gating)一直以来都是降低微处理器功耗的重要手段,主要针对寄存器翻转带来的动态功耗。

时钟门控的设计

    如何更加有效地设计时钟门控对于最大限度地降低功耗,同时保证处理器的性能至关重要。多核多线程微处理器中,多个功能部件可能不是同时工作的,对于无执行任务的功能部件就可以将其时钟关闭,减少其随时钟翻转进行多余的内部寄存器翻转,从而降低产生功耗的浪费和热量聚集。

对于需要控制的寄存器,在一定的情况下关闭寄存器的传输功能,阻止无用的数据进入下一级逻辑,避免引起一连串不必要的逻辑翻转,达到降低功耗的可能。为最大限度地插人Clock-Gating控制逻辑,需要通过多种方式结合的办法,在电路中插人更多的Clock-Giatgn控制,最大限度地插人门控时钟设计,关闭更多的空闲功能部件,降低功耗。

关闭寄存器的传播功能通常可以通过“回写”结构来实现(如图1),以使能信号en为控制信号在前继输人data-in和本级寄存器输出data-out之间进行选择,如果不需要传播数据时,就可以使输出保持为data-out而不引起后继部件的翻转。这种方式可以以最小的面积和功耗代价实现对寄存器传输功能的关闭。

图一:回写结构寄存器

 

但是,回写结构只是在功能上实现了关闭传播和降低后继组合逻辑功耗的作用,但在时钟功耗上并没有较大降低,因为在回写结构关闭传播功能后lock信号仍始终在翻转。为更大限度地降低功耗,引人寄存器的Clock-Gating设计(如图2),将使能信号en作用于lock上与回写结构相比较,在关闭数据传播后,图1和图2中用斜线标注的部件的动态功耗将被节省掉。

图二:Clock-Gating结构寄存器

clock一Gatign控制逻辑也会产生一定的功耗(图2中用点阴影标注的部件功耗),因此不是越多的Clock-Gating控制逻辑就越好,例如,在需要添加Clock-Gating控制的寄存器文件中,如果被控制的clock信号所连接的寄存器位数较小,得到的动态功耗降低还不足以抵消添加控制逻辑所增加的功耗。所以,通常对于需要进行Clock-Cating的寄存器文件的位宽有一定限制(一般不低于3一8位),保证能有效地降低时钟功耗。

时钟门控逻辑的优化

通常在设计的初级阶段,由于设计者功耗分析手段的缺乏,往往无法考虑具体工艺技术带来的技术差别,所以基本都采取非工艺相关的方式进行手工功耗分析,无法全面的掌握clock功耗的分布情况。在设计的后续阶段,在对设计进行直接分析或在时序分析的基础上,通过采用各种组合的优化技术,可以对Clock-Gating控制逻辑进一步加以优化

1.向前追溯优化

      通过时序分析,向前追溯优化可以带来新的功耗降低,即如果在本级寄存器有Clock-Gating控制逻辑,而下一级寄存器没有相关的Clock-Gating控制信号en的情况下(如图3(a)所示),此时在下一级也通过延迟一个时钟周期的Clock-Gating控制信号en(t+l)对下一级寄存器时钟关断进行控制(如图3(b)),可以更多地降低功耗。在产生新的控制信号en(t+l)时,需要注意将前一级控制信号en与时钟clock实现同步,以保证控制关断的正确性。

图3:向前追溯优化后结构

 2.组合逻辑向前追溯优化

        而实际中的电路结构更为复杂,特别是控制信号en(t+l)的产生就需要根据具体情况具体分析。如图4(a)所示,控制信号en0和en1对与逻辑门的两个输人前继in0和in0的寄存器时钟进行控制,为了降低下一级寄存器的时钟功耗,需要通过将en0和en1相或得到新的控制信号对下一级的寄存器时钟进行控制,降低功耗(如图4(b)所示。

图4:组合逻辑向前优化

同样,越复杂的组合逻辑所需要的控制信号产生逻辑也会越复杂,可能带来的代价也会越大,所以需要对降低的动态功耗和增加的部件功耗加以权衡,上文中关于Clock-Gating的位宽限制在这里将会变得更加严格,一般要在寄存器位宽较大时考虑该措施。

3.向后追溯优化

      更进一步,向后追溯同样也能得到另一种新的功能消耗降低可能。即在本级寄存器有Clock-Gating控制,而上一级寄存器没有相关的Clock-Gating控制的情况下,通过一定的逻辑得到较本级Clock-Gating控制的信号en提前一个时钟周期的更早的Clock-Gating控制信号en(t-1),用于控制上一级寄存器时钟的关断,降低其动态消耗,而且还能降低两级寄存器之间的组合逻辑部件的动态消耗

 

  • 8
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值