时钟门控
降
低功耗最早并经试验证明切实可行的技术也许还是时钟门控。IC 设计中,动态功率的三分之一到二分之一消耗在了芯片的时钟分配系统上。Keating 称:“概念很简单:如果你不需要时钟运行,就把它 关掉。”今天,时钟门控有两种常用方法:局部和全局(图 4)。如果你通过一个复用器将送入触发器输出端的数据反馈到其输入端,则一般就不再需要时钟了。因此,你可以用一个可计时关闭信号的时钟门控单元替代反馈复用器,然后通过控制复用器的使能信号来控制时钟单元对信号关断的计时。

在数字设计的早期,设计者必须手工完成这个任务,现在任何一种称职的商用综合工具都可以自动完成。Keating 说:“工具现在都已经准备好了,它们会介入,自动寻找复用器,如果发现了一个反馈复用器,则换成一个时钟门控单元。当我们开始讨论32位寄存器时,用这种技术可以获得相当大的节省。”他指出,英特尔的工程师今年在SNUG(Synopsys用户小组)上展示了一篇报告,称用这种技术节省了43%的动态功率(参考文献2)。
另一种时钟门控的常用方法是全局时钟门控,它是简单地关闭整个块的时钟,一般是针对一个中心式时钟发生器模块。这种方法与局部时钟门控不同,它关闭了整个块的功能。由于它切断了整个时钟树,因此进一步降低了动态功耗。
功耗感知内存
另一种降低动态功耗和泄漏的常用技术是采用功耗感知内存。
这种技术最简单的形
式是:当一个内存阵列中有几段没有使用时,就切断它们的电源。这类技术的另一种形式是本体偏置内存。采用这种方法后,设计者能在某个内存不使用时对其反向偏置,基本上就是提升阈值电压,从而减缓泄漏。另一种越来越常见的技术是为内存使用多模式电源。此时,设计者采用多种电源模式的内存。很多设计都采用双功能的内存,这样,当 CPU 存取内存以读、写数据运行一个主应用时,内存接受全部存取以便为完成运行提供功率。而当不需要读、写内存时,设计者可以对内存编程,将其功率降档到某个水平,此时内存只获得足够维持其内存容量的功率。
功率门控/MTCMOS
也许低功耗设计中最热门的新方法要算功率门控和 MTCMOS(图 5)。与电压门控类似,功率门控也是当设计中一些块没有使用时,临时将其关断。与电压门控相类似的还有该技术的复杂性。Keating 说:“其它技术最好的地方是它们对设计工程师都非常透明。当我编写自己的 RTL 时,我不必考虑什么多阈值、多电压、时钟门控或功耗感知内存问题,因为下游自然有人会关心它。但采用功率门控,我就必须在 RTL 里予以关注。我得设计一个功率控制器,由它来控制我需要关断的那些块,以及关断时间,并且我还得考虑不同块运行时所需要的电压。”

过去有两种功率门控方法,即细粒度和粗粒度功率门控。在细粒度功率门控中,设计者要在每个栅极和地之间放一个开关晶体管。这种方法使设计者能在一系列功能不用时,将与地的连接切断。Keating 称:“库中每个单元都用这种技术。首先,人们确实喜欢用细粒度功率门控,因为它比较容易实现每个单元的电源特性,但它的问题是消耗的面积太大:约两倍至四倍。”设计者也可以对单元作混合和匹配,有些采用功率门控,有些则不用。需要高阈值电压的单元不使用功率门控。大多数情况下,这种功率门控带来的功率损失太大,很多设计小组更愿意采用粗粒度功率门控,此时设计者要建立一个电源开关网络,它基本上是一组开关晶体管,并行地将整个块打开或关闭。这一技术没有细粒度技术的面积问题,但很难在单元基础上作特性描述。
Sequence Design 的 Frenkil 称,现在设计业中正在兴起一种折衷的中粒度功率门控方法。他说,采用这种方法时,“功率门控单元将单独为各个小块供电……如果你查看一种高性能的 65nm 工艺,泄漏很容易达到总设计功耗的 40% ~ 50%。如果你设计一款高性能芯片,就必须应付巨大的泄漏量,因此人们要有多个独立控制的分立电源域。我曾见过一种规模适度的芯片,它有 20 个电源域;如果是先进的芯片,它们的电源域将超过 100 个。”这个数目无论用单纯的细粒度还是粗粒度技术都难于控制。Frenkil 认为,在所有技术中,功率门控是最有希望的。他说:“它能更多地降低泄漏,并且它将很好地适应未来,而像反向偏置这类技术则不能。”
EDA 供应商们一直狂热地尝试功率门控技术的自动化。现在有两个互相竞争的低功耗标准:UPF(统一功耗格式)和 CPF(公共功耗格式),两者的目的都是帮助设计小组更有效地实现功率门控方法。Keating 举例说,在 UPF 设计中,工程师仍然必须在 RTL 中设计功率控制器,但有几个工具,可以协助在设计中插入电源网格、隔离单元以及保留寄存器。Keating 说:“你不必在 RTL 中做这件事,而是使用一种 UPF 公共语言,并规定要被隔离块的一个确定数目。只要一行,就可以完成 RTL 许多行才能做到的工作。这些工具有足够的智能,它们获得这些指令,将指令插入到适当的层级。有些会在综合期间插入,另一些则在布局和布线时插入。”