挑战功耗:低功耗ASIC设计技术

http://blog.ednchina.com/foy/333926/message.aspx

即使你正在设计的ASIC 或 SoC并非面向低功耗应用,但你仍需要熟悉低功耗设计技术,因为最新一代硅工艺技术本身就易于泄漏功耗。
  要 点
  在 45nm节点,泄漏的功率占IC总功耗的60%。
  代工厂现在能提供多种库,每种库有多个管理电源的阈值电压。
  EDA业已经划分为支持相似功耗标准的两个阵营:UPF(统一功耗格式)和CPF(公共功耗格式)。
  时钟门控是最老式的技巧,而功率门控则正在快速成为低功耗设计中最热门的技术。
  截止不久以前,低功耗数字 IC 设计一直是专家或专业 IC 设计者的领地。但是,大多数 IC 设计工程师今后都必须学习各种低功耗设计技术,因为越来越多的 ASIC和SoC(单片系统)将采用 0.13mm及0.13mm以下工艺。在0.13mm工艺时,代工厂开始在硅工艺中采用新的技术和材料如低k介质和铜以便提高设计的性能。采用更小的工艺尺寸、可比例缩放的阈值以及不可比例缩放的电压,能制造出更小、更快的IC,但也带来了一个很麻烦的副作用:泄漏,或静态功耗。在90nm节点上,功率管理开始成为一个重要的考虑因素,而在65nm节点上,必须采用低功耗设计技术。


  Synopsys的Mike Keating认为:“随着技术节点的逐步升级,显然我们必须降低VDD(电源电压),因为存在着一种二次关系:功耗与 V2DD成正比。如果我们只是缩小器件尺寸,而没有减小VDD,那么每一代的功耗密度都会加倍。这是不允许的,因此我们就要降低VDD。”

  当半导体行业在以往几个节点上降低电源电压时,同时也降低了晶体管的阈值电压,阈值电压能将漏源电流保持在某一水平,使 IC 对其输出电容器充电,因而提高了这些节点下 IC 的性能。但是,当业界在每个节点进一步降低阈值电压时,也迫使增加了亚阈值泄漏。Keating说:“随着我们缩减工艺尺寸,现在的栅极氧化层厚度已经非常薄,栅极泄漏呈指数增长。有时,在65nm和45nm时,最终动态功耗等于亚阈值泄漏电流,也等于栅极泄漏电流。此时我们遇到了一个大麻烦,我们有三个因素:动态功耗、亚阈值泄漏电流和栅极泄漏电流,它们都精确地指向同一点。”

  过去,每次工艺节点尺寸减小时,总功耗密度都基本保持不变。但在 2005 年,ITRS(国际半导体技术路线图)公布了一项研究,结果表明,在65nm节点上,动态功耗密度和泄漏功耗将分别增加 1.43倍和2.5倍。在45nm节点上,ITRS 预计动态功耗和泄漏功耗密度将分别增加 2 倍和 6.5 倍。实际上,对采用高速 65nm工艺的设计来说,一半功率损失在泄漏上。业内很多人相信,在 45nm节点上,IC 将有多达 60% 的功率损失在泄漏上(图 1)。Keating 称:“不久前,我们对功耗的处理方法是简单地在硅片上做各种折衷。这种选择差不多没用了。这些设计技术不再是选项,而是一种需求。”

  为应对功率管理问题,电子界正在几个方面采用新的低功耗技术和材料(图 2)。晶圆厂推出了多阈值、多电压晶体管;SOI(绝缘硅)和低 k 材料;本体或反向偏置;以及铜金属和 SiGe(硅锗)基材。同时,芯片架构和软件设计者则通过智能的硬件/软件折衷应对低功耗问题。如实现感知功耗的操作系统,在设计系统中引入更多的冬眠模式以及更多可选许可的内存存取。IC 设计者也采用各种技术降低自己设计的功耗。最常用的低功耗设计技术包括多阈值设计、多电压设计、时钟门控、可感知功耗的内存以及功率门控。

  Sequence Design 硅业务部门技术主管兼副总裁和总经理 Jerry Frenkil 指出,低功耗设计无非是如何减少这个功率方程中的一项或几项:动态功耗加泄漏功耗等于器件的总功耗。动态功耗是用户用一款器件完成预期目的时所消耗的功率,而泄漏功耗则是晶体管泄漏浪费的功率(图 3)。

  Kurt Keutzer 是加州伯克利大学的一名教授,也是《Closing the Power Gap Between ASIC & Custom: Tools and Techniques for Low Power Design》(弥合 ASIC 与定制芯片之间的功率间隙:低功耗设计的工具与技术,参考文献1)的共同作者和编辑,该书于今年 6月的设计自动化大会期间上市。他认为,多年来,客户与电路设计者采用了多种技术来降低设计的功耗。但他指出,今天典型ASIC的功耗可能是采用同一代工艺技术定制IC功耗的3倍到7倍。他与该书的另一位作者 David Chinnery 估计,通过采用低功耗设计技术,用户可以将自己 ASIC 设计的能效提高两倍到三倍。Keutzer 说:“重要的结果是 ASIC 设计者们正在公开大量的节能方法。”

  但低功耗设计中不存在一种放之四海而皆准的方法。该书的另一位撰稿人 Frenkil 称:“针对功率方程的不同部分有很多技术和不同的方法。它们通常都有某种类型的开销。有些可能没有开销,其它则会影响你的面积,还有一些可能影响你的速度。关于低功耗设计的一个关键是了解你所面对的影响,以及如何处理它。”确实,用户将不得不把这些技术综合和匹配使用,才能得到适合自己的低功耗方法。

多阈值设计

  大约五年以前,当过高的功耗成为问题时,代工厂开始为低功耗和高速设计提供库。例如,TSMC(台积电公司)提供一个标准的(或名义的)库,一个高速库,还有一个低功耗库,每个库都有多种单元。如,TSMC 的每个库都包含低阈值电压、高阈值电压和 MTCMOS(多阈值CMOS)阈值电压单元。多单元库有助于设计者同时处理泄漏和动态功耗问题。今天的设计者采用多阈值设计,用多种类型单元处理泄漏功耗。Keating说:“因为我们已经跟VDD和VTH(阈值电压)打了这么多交道,所以我们知道不可能创建一个能用于整个设计的库,因为我们的设计是以速度为主,而对那些速度不重要的设计,我们希望减少泄漏。”

  多单元库通常包含至少两组完全相同的单元,它们有不同的阈值电压。较高阈值电压的单元比

较慢,但泄漏较少;而较低阈值电压的单元则正相反,它们比较快但泄漏高。Keating 说:“这是一种非线性关系。你放弃一些速度,就能非常显著地降低泄漏。”Frenkil 称一个高阈值电压的单元通常比低阈值电压单元的泄漏低 50%,而没有其它副作用,如面积的增大。

  对大多数应用,设计者一般会在第一轮综合时采用低阈值电压库,以获得最高性能并满足时序目标。然后他们确定设计中的关键路径,即设计中要求最高性能的一条或多条路径。接着,他们尝试确定不需要低阈值电压单元的区域,并换成高电压单元,以降低设计的总功耗和泄漏。Frenkil 指出,这种方法代表了最常用的多阈值设计技术,因为多数应用会把时序作为首要需求,低阈值电压库通过综合时运行较快,综合工具从这些库可以最终产生较小的设计区域。当高阈值电压单元占有较高比例时,综合工具运行时间较长,产生的设计区域较大。

  但是,在某些无线系统应用中,功耗是主要目标,而面积的增大则不太重要。在这些情况下,有些设计者会首先采用高阈值电压单元作综合,找到关键路径,然后用低电压单元换掉高电压单元,直至达到性能目标。


  多电压设计

  多阈值设计虽然通过采用多个库能帮助设计者减少设计的泄漏,但其它技术,如多电压设计,则有助于控制动态功耗。与多阈值设计类似,多电压设计使设计者能够在设计中找到对应工艺与规格最大电压的关键路径和关键块,不过,接下来设计者要降低较低功耗块的电压。Keating 举例说,一个处理器块可能需要 500 MHz 的时钟速度,但一个 USB 核可能只需要 30 MHz 就能符合 USB 协议要求,因此只要较低电压就能运行。所以,如果设计者只给 USB 核必需的功率,就可以大大降低设计消耗的总功率。为实现这种方法,设计者过去是在不同电压块之间放置电平转换器。Keating 说:“如果你的 IC 设计中有一个 0.9V 区,它要向一个 1.2V 区发送信号,则就要在两个区之间放一个电平转换器,以提升电压摆幅和控制时序。”

  尽管概念很简单,但实现却复杂得多。首先,设计者必须习惯于在一个内核上处理多个电压。Keating 称:“我们接受的工程师训练是一个芯片上只有一个电源,现在我们得应对一些复杂性。”另外在工具前端也有相当大的挑战。多数商用综合与物理设计工具都可以插入电平转换器,实现多电压,但建立 RTL 却是一个问题。Keating 称:“HDL 尚不存在一种描述电源连接的机制。”这种缺陷是 EDA 供应商们正在致力解决的一个领域,他们正试图实现一个低功耗标准。不幸的是,业界对两个相似标准还无法达成一致(见附文“EDA 业争论功耗标准”)。

  另一种来源于定制设计但正在进入 ASIC 设计领域的新方法,就是采用有电压比例缩放的并行机制。Chinnery 和 Keutzer 在他们书中描述了这种技术。Keutzer 称,人们起先认为它不实用,但现在获得了相当大的关注。Keutzer 说:“你可以用并行方法获得性能提高,然后按比例减小电压,以降低功耗和能量。如果你看动态功耗,电压显然是最大的获益方。那么,怎么样降低电压呢?假设有一个时序约束,如2ns,你首先要超过自己的时序目标。尤其是通过增加并行性,将关键路径降低到1.2ns。然后,可以缩小电压,放宽到所需的2ns 周期时间。电压下降给予的补偿远高于面积的增长。”

 时钟门控

  降低功耗最早并经试验证明切实可行的技术也许还是时钟门控。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 许多行才能做到的工作。这些工具有足够的智能,它们获得这些指令,将指令插入到适当的层级。有些会在综合期间插入,另一些则在布局和布线时插入。”

  如果使用这种方法,插入隔离保留触发器时可以采用手工或工具自动化方式。Keating 说:“当你关闭一个块时,其输出要连接到仍有供电的一个块,你必须关心这些下游功率节点的悬浮问题,它们会将阈值电压悬空,造成不必要的后端电流。你需要在这些输出上放置一些隔离单元,将该输出箝位到 1 或 0,这样就不会有悬浮电流问题。”

  这种方法还需要使用保留触发器。Keating 指出,关闭一个块带来了一个问题,即该块需要恢复或保持所有的状态。为实现这个目标,设计者可以使用保留触发器,其中,触发器的主要部分是低阈值电压(即快速但泄漏高),旁边是一个高阈值电压、低泄漏单元的气球式寄存器。Keating 说:“在你关断一个块之前,使触发器输出进入一个气球式寄存器。然后,除气球式寄存器以外的所有东西都断电以保存状态。当该块再次加电时,气球式寄存器将所有东西返送给主触发器,帮助该块快速上电。”


  EDA 的援助?

  Frenkil 指出,尽管 EDA 供应商能提供范围很广的工具,帮助设计者实现低功耗设计技术,但 EDA 业仍提供各种功率完整性工具,帮助设计者思考自己的设计决策对功耗的影响。功率完整性工

具可完成电压降分析、电压降级时序分析、噪声容限分析以及电源总线排列。很多供应商提供低功耗工具,从各个角度解决问题。据 Keutzer 说,EDA 业已经充分地解决了一些问题。例如,EDA 业可以提供一些工具,以简化 ASIC 设计者实现微型架构技术(如流水线);更有效地布放时钟网络;以及更有效地使用透明闩锁。但他也指出,没有一款 EDA 工具可以解决所有的功耗问题。Keutzer 说:“这不是玩本垒打,这里有大量信号。”

  设计者必须熟悉各种低功耗设计技术,还应了解哪个工具可以帮助自己实现功耗目标。EDA 业正试图向市场上推出更健全的工具,帮助设计者控制功耗。最后,供应商希望提供各种设计流程,使设计者能够在时序、功耗、信号完整性之间作出权衡,最终甚至会包括热分析(参考文献 3)。顶级半导体公司、设计所和 EDA 供应商都在尝试建立一种公共的功耗格式。但是,即使拥有现在广泛的 EDA 工具,以及初步的集成式低功耗流程,EDA 业仍要做很多工作,才能最终解决功耗问题。


参考文献
1. Chinnery, David, and Kurt Keutzer, Closing the Power Gap between ASIC & Custom: Tools and Techniques for Low Power Design , ISBN: 978-0-387-25763-1, Springer, June 2007.
2. Pokhrel, Khem C, “Physical and Silicon Measures of Low Power Clock Gating Success: An Apple to Apple Case Study,” proceedings of Synopsys Users Group, San Jose, CA, 2007.
3. Santarini, Michael, “Thermal integrity: a must for low-power-IC digital design," EDN, Sept 15, 2005, pg 37.

附文:EDA 业争论功耗标准
  EDA 业正在对设计者面临的功耗挑战作出响应。但是,要及时地克服低功耗障碍,似乎需要 EDA 供应商们对一种公共功耗格式达成一致。不幸的是,业界在此分成了两个阵营:一部分小型 EDA 公司在 Si2(硅集成倡议)的赞助下,追随 Cadence 的 CPF(公共功耗格式);而 Synopsys、Mentor 和 Magma 则支持 Accellera 的 UPF(统一功耗格式)。最近,两种格式似乎要在 IEEE 旗下合并,但业内的派别争斗至少暂时摧毁了取得进展的希望。有意思的是,曾经接触过两种格式的人都表示,UPF 和 CPF 大约有 85% 功能是一样的。但是,各个 EDA 公司都在保护自己的格式,希望能成为事实上的工业标准,从而在一种新的工具领域获得市场份额。

  现在看来,似乎用户和 EDA 供应商将不得不支持两种格式。业界和设计者以前已经用 Verilog 和 VHDL 完成了工作,两者都是可行的 HDL(硬件描述语言)。不过对设计者和供应商来说,使用和支持两种格式会造成混乱、错误、延迟和更多的工作量。一家供应商指出,支持两种格式意味着他的公司必须向工程师分配不同工作,以保证他的工具能支持两种格式。这种要求减少了工程师针对明天挑战创造新工具的时间。

posted @ 2011-05-21 20:55  Hello Verilog  阅读(1774)  评论(1编辑  收藏  举报