电源门控设计 —— UPF 能为你做什么,以及不能做什么!
电源门控设计 —— UPF 能为你做什么,以及不能做什么!
会议: SNUG San Jose 2009 作者: David Flynn, ARM Ltd (Cambridge, UK) 研发部门,兼 Southampton University 客座教授 页数: 29
摘要
电源门控 Power Gating 是一种降低便携式应用待机功耗的宝贵技术,它通过对子系统的电源轨进行开关切换来切断漏电功耗。硬件层面的电源门控现已在 Synopsys 设计和验证工具中得到良好支持,新的 UPF 感知设计流程能够在此基础上构建。然而,从系统级设计角度来看,仅推断电源门控、接口隔离和可选的状态保持是不够的。本文描述了电源门控的电源管理方法,同时充分考虑了时钟、复位、可测试性和安全电源时序 —— 基于硅验证的结果。
目录
1. 引言 ........................................................................................................................................ 4 2. 电源门控基础 ........................................................................................................................ 4 2.1 电源开关(Power Gates)........................................................................................ 5 2.2 钳位门(Clamp Gates)............................................................................................ 7 2.3 电源门控:开关与钳位结合 .................................................................................. 9 2.4 电源门控控制时序示例 ........................................................................................ 10 3. 实践与量产中的电源门控 .................................................................................................. 11 3.1 管理电源门控的开启冲击 .................................................................................... 12 3.2 解决电源门控网络可测试性 ................................................................................ 13 3.3 电源门控控制的请求/确认握手 ........................................................................... 14 4. 电源门控与复位、时钟和时钟门控 .................................................................................. 16 4.1 电源门控与复位 .................................................................................................... 16 4.2 电源门控与时钟/时钟门控 ................................................................................... 18 5. 电源门控与状态保持 .......................................................................................................... 20 5.1 状态保持电源门控控制时序 ................................................................................ 20 6. 工作示例:应用于 CPU 的电源门控 ................................................................................. 23 7. 结论:最佳实践 —— 以及 UPF 中需要注意的陷阱 ......................................................... 28 8. 参考文献 .............................................................................................................................. 29
1 引言
每一代 CMOS 工艺技术中,漏电功耗都在不断增长。[1] 这种漏电功耗不仅对电池供电或便携式产品构成严峻挑战,也日益成为需要解决的插座供电或外接设备中的问题,在这些设备中增加的漏电功耗会产生更多热量,通常需要专门的封装或冷却方案。[2][3]
极其需要增加机制来完全或部分切换漏电电源轨,以减少子系统不活跃使用时消耗的漏电功耗。UPF 统一功耗格式 规范 [4](UPF2)提供了能够在 RTL 设计上处理电源门控基本推断的能力。然而这需要谨慎,因为"黄金源"不再仅仅是配置后的 RTL,而是还叠加了通过电源意图(power intent)添加的功能。两者必须一起设计和验证。
- 第 2 章 描述电源门控的基础,为本文奠定背景,涉及 UPF 构造中用于门控电源和在接口处钳位信号的内容。 - 第 3 章 解决实际电源门控的复杂性,包括确保安全开启以及解决可测试性问题。 - 第 4 章 介绍管理复位、时钟和时钟门控的问题。 - 第 5 章 描述带电状态保持的电源门控的额外复杂性。 - 第 6 章 通过工作示例将所有这些内容汇总。 - 最后,第 7 章给出关于最佳实践方法和需要避免的陷阱的结论。
本工作源自 ARM 研发与 Synopsys 之间的合作,以及正在进行的"SALT — Synopsys/ARM Leakage Technology"计划。合作的成果和经验,尤其是第 6 章的内容,为本工作提供了基础。
2 电源门控基础
本章描述由新的 UPF 感知 EDA 工具链支持的"多阈值" CMOS 开关技术:
- 电源开关(Power Gates):Header 和 Footer 开关 - 在电源门控边界隔离接口的钳位(Clamps) - 控制电源开关网络和钳位控制网络的缓冲器树 - 在 UPF 中描述基本电源意图 - 基本电源控制时序
2.1 电源开关
在电源轨或地轨中插入串联晶体管,产生一个开关式的"虚拟"电源轨,用于为标准单元逻辑供电。[5] 这种晶体管并非理想或完美的开关:
- 它们会引入与通过电流成比例的一定开关电阻。因此需要是大尺寸器件,以最小化"虚拟"开关电源轨上的IR Drop 电压降,以支持"导通"电流。 - 作为大器件,它们也有固有的"关断"电流。为达到最佳的 ION/IOFF 比率,通常采用高阈值电压(HVt)晶体管。 - 控制电源开关网络和钳位控制网络的缓冲器树需要由非开关电源轨供电。 - 通常部署多个并联开关单元,以环状布置在外围或以棋盘格/行/列方式分布在电源门控区域内。 - 理想情况下,开关轨全部并联连接(例如通过物理网格),以允许开关之间尽可能大的电流共享。
基本的 Header 开关单元基于 PMOS 晶体管切换电源轨(图 1),需要低电平有效的使能信号(N_PWR)。基本的 Footer 开关单元基于 NMOS 晶体管(图 2),需要高电平有效的使能信号(PWR)。
Header 和 Footer 开关在不同工艺节点表现出不同的导通和关断效率,因此可复用设计需要对实现选择进行抽象。
2.1.1 缓冲控制电源开关
控制开关电源网络的缓冲器树需要非开关缓冲器以确保正确驱动。一种方法是在电源开关结构内部包含内部缓冲。图 3 概念性展示了 Header 开关的这种做法。在开关单元内部包含缓冲有面积成本,但能固有地管理单元内部的电源分布。
2.2 钳位门
对一组标准单元逻辑进行电源门控可以显著降低待机漏电功耗,但模块的任何输出会向与之接口的供电区域呈现浮空/非逻辑电平信号。因此,需要对接口进行逻辑隔离,以确保穿透电流不会在下游晶体管结构中流动,从而可能抵消所有漏电功耗节省。
- 电源门控输出是主要关注点。这类输出通常会随时间浮空到某个中间电压 —— 此时通过电源开关的关断漏电流等于电源门控单元的漏电流。 - 将这些输出钳位到定义好的逻辑电平是电源门控的要求。概念上,输出需要被逻辑强制到边界处的有效逻辑电平。 - 对电源门控区域的输入隔离关注程度要低得多。翻转输入会浪费一些功耗,但通常仅限于输入端口扇入的第一级输入阶段。
最简单的钳位样式是一个基本的晶体管开关"分流器",在模块被电源门控时对输出导通。对于 Header 开关电源轨(虚拟轨向地塌陷),自然选择下拉(图 5);对于 Footer 开关虚拟地实现,选择上拉(图 6)。
为了促进设计复用和工艺可移植性,强烈推荐使用"逻辑"钳位,即用特定值隔离接口,不论在特定工艺节点使用 Header 还是 Footer 实现方法。逻辑"AND"或"OR"功能钳位是首选(图 7 和图 8)。
钳位是必要的,但在高速设计中确实会引入负面影响。一个串联门可能会对近关键路径产生影响。
2.3 电源门控:开关与钳位结合
RTL 子系统的基本电源门控功能可概括为:定义开关电压区域、定义控制电源门控开关网络的电源控制时序信号、定义控制(输出)接口钳位的电源控制时序信号、定义输出的非活跃协议状态。
2.3.1 UPF 电源门控功能推断示例
create_power_domain TOP
create_power_domain A -elements { uBlock }
create_supply_port VDD -domain TOP
create_supply_net VDD -domain TOP
connect_supply_net VDD -ports VDD
create_supply_port VSS -domain TOP
create_supply_net VSS -domain TOP
create_supply_net VSS -domain A -reuse
connect_supply_net VSS -ports VSS
create_supply_port VDDA -domain A
create_supply_net VDDA -domain A
connect_supply_net VDDA -ports VDDA
create_supply_net VDDA_SW -domain A -resolve parallel
set_domain_supply_net TOP -primary_power_net VDD -primary_ground_net VSS
set_domain_supply_net A -primary_power_net VDDA_SW -primary_ground_net VSS
create_power_switch uswitch_PWR_A -domain A \
-input_supply_port {VDDA VDDA} \
-output_supply_port {VDDA_SW VDDA_SW} \
-control_port {N_PWR N_PWR} \
-on_state {on_state VDDA {!N_PWR}}
map_power_switch uswitch_PWR_A -domain A -lib_cell HEADBUF16_X1M_A12TL
2.3.2 UPF 钳位功能推断示例
set_isolation vsoc -domain A -isolation_power_net VDD \
-isolation_ground_net VSS \
-clamp_value 0 -applies_to outputs
set_isolation_control vsoc -domain A \
-isolation_signal N_CLAMP -isolation_sense low -location parent
2.3.3 UPF 推断的电源门控电路
图 9 概念性展示了结果电路:电源门控区域"A",N_PWR 控制电源开关,N_CLAMP 控制输出钳位。
2.3.4 UPF 电源状态表示例
add_port_state VSS -state {on 0.00}
add_port_state VDD -state {on 0.99}
add_port_state VDDA -state {on 0.99}
add_port_state uswitch_PWR_A/VDDA_SW -state {on 0.99} -state {off off}
create_pst pstA -supplies {VSS VDD VDDA VDDA_SW}
add_pst_state fullon -pst pstA -state {on on on on}
add_pst_state dormant -pst pstA -state {on on on off}
2.4 电源门控控制时序
电源下电序列:有序关闭子系统 -> 停止时钟 -> 钳位输出到静态非活跃状态 -> 关闭电源。上电序列:重新打开电源开关 -> 复位任何内部时钟状态 -> 禁用输出钳位以暴露初始重启状态 -> 重新使能时钟。图 10 展示了实现电源控制的波形示例。
3 实践与量产中的电源门控
本章描述开关电源门控系统上电和断电的现实复杂性,考虑物理开关电流冲击以及如何解决电源门控控制网络的可测试性问题。核心问题包括:
- 系统响应延迟:电源门控系统能以多快速度重新开启? - 电源完整性:电源门控冲击电流及其对 SOC 地/电源轨的影响? - 可测试性:如何测试缺失的开关(如断开的控制链)或卡住的电源开关?
3.1 管理电源门控的开启冲击
最小化电源门控子系统开启延迟是值得追求的目标,但必须考虑:待电源门控的区域多大、电源门控子系统放电了多少体电容和解耦电容。
为了最小化开启延迟,缓冲器树方法看起来是可取的(图 11)。然而,与优化最小偏斜的时钟树不同,有意地创建一个故意不平衡的树,具有更宽的开启时序分布反而是更好的选择。
使用"弱"电源开关网络先温和地将电压轨提升起来,然后使能提供低 IR Drop 电源的"主"开关网络,这一概念在 UPF 中易于支持,可以使用 PrimeRail 等工具进行开启电流分析。
3.1.1 UPF 多开关网络推断示例:添加第二个开关阵列(弱开关,N_START 控制)与主开关阵列(N_PWR 控制)并联。
3.2 解决电源门控网络可测试性
当推断电源门控时,RTL 控制设计中必须解决额外的需求:
- 电源门控控制(通常是状态机寄存器输出)必须是可控的 —— 在标准逻辑测试功能期间必须为"开" - 电源门控钳位控制必须是可控的 —— 在标准逻辑测试功能期间必须是"直通"的
3.2.1 可测试性 Verilog RTL 编码示例:
assign N_PWR_REQ = (test_mode) ? 1'b1 : PwrState[1]; // 强制 ON
assign N_ISOLATE_REQ = (test_mode) ? 1'b1 : PwrState[2]; // 强制 PASS-THRU
assign N_RESET_REQ = (test_mode) ? 1'b1 : PwrState[3]; // 取消断言
3.3 电源门控的请求/确认握手
为了构建可移植和可复用的设计,最好不在 RTL 中编码固定的精确周期数延迟。这里采用的方法是将电源网络控制缓冲视为一个或多个菊花链(缓冲)开关元素。
图 12 描述了所需的原理图功能。图 13 展示了时序波形。这种双向握手信号为电源门控子系统提供了清晰的系统级接口:
- 当 POWER_REQ 和(同步后的)POWER_ACK 都有效时,电源稳定,逻辑可用。 - 退出电源门控后,安全状态机"唤醒"时序理想上取决于(同步后的)POWER_ACK 有效和 POWER_REQ 有效。
UPF 请求/确认功能推断示例:
create_power_switch uswitch_PWR_A -domain A \
-input_supply_port {VDDA VDDA} \
-output_supply_port {VDDA_SW VDDA_SW} \
-control_port {N_PWR N_PWR} \
-ack_port {N_PWR_ACK N_PWR_ACK {N_PWR_REQ}} \
-on_state {on_state A {!N_PWR}}
4 电源门控与复位、时钟和时钟门控
本章介绍无法由 UPF 辅助文件处理的复位、时钟和时钟门控管理问题。
4.1 电源门控与复位
重用钳位控制作为任何将已丢失/损坏的电源门控寄存器状态的状态复位机制,看起来是理想且简单的(图 14 和图 15)。
4.1.1 RESET 钳位的问题:用 UPF 钳位结构推断状态重新初始化需要谨慎,因为 UPF 现在开始影响设计者在推断电源意图之前编写和理解的 RTL 行为。复位树和输出钳位缓冲之间的缓冲树延迟平衡可能潜在地导致静态时序分析的意外。
总结: - 理想上为输入(复位)和输出钳位维护独立的 UPF 推断控制输入。 - 当复位缓冲树延迟显著时需要小心处理,因为这使输出上的时序闭合平衡成为挑战。
4.2 电源门控与时钟/时钟门控
进一步扩展概念性控制信号时序的优化,在一个主 RTL 时钟不能为电源门控子系统独立控制的系统中,重用接口隔离信号来同时抑制时钟、重新初始化寄存器状态以及强制输出钳位看起来是有吸引力的(图 16 和图 17)。
4.2.1 CLOCK 钳位的问题: 不建议简单地在时钟上加与门。为了避免时钟波形截断,"使能"信号必须定时到时钟的适当相位(本文示例中的低相位,使用行业标准的上升沿时钟)。
"集成时钟门控"(ICG)传统上是在实现 EDA 流程中干净处理此问题的方法。
总结: - 为时钟使能和输出钳位维护独立的 UPF 推断控制输入。 - 为待电源门控的子系统提供显式的时钟使能暴露,以提供抑制本地时钟的最干净机制。 - 注 ki 在具有深度延迟时钟树的大型子系统上尝试使用此技术 —— 尤其是如果接近或大于 1/2 时钟周期。
5 电源门控与状态保持
本文不打算讨论带电源门控的状态保持(SRPG)[9] 的众多细节。只需说明电源门控控制时序需要进一步关注 —— 从 UPF 推断的任何状态保持都必须根据 RTL 系统设计和验证谨慎处理。
UPF 为设计者提供了通过辅助文件独立添加选择性状态保持的能力。这是非常危险的!完全有可能选择保留可能导致(子)系统死锁或将验证空间扩大数个数量级的任意寄存器状态。
对于在 Power Gating/UPF 实现中复用的遗留 IP 设计,唯一安全的选择是: - 全状态保持(Total state retention):这有效地建模了 RTL 设计者的意图,即每个寄存器的状态值在时钟事件之间是持久的。 - 零状态保持(Zero-state retention):这映射到已验证的显式初始化的 RTL 设计和复位/预置编码和时序。
对于新 IP 设计,强烈推荐: - "状态保持岛"在 RTL 层次化模块中显式编码。 - 时钟门控项没有来自非保持寄存器状态的组合输入。 - 在 RTL 中为保持和非保持状态编码独立的复位。
5.1 状态保持电源门控控制时序
基本控制状态机需要满足以下要求:复位控制必须独立于钳位处理;状态 SAVE 和 RESTORE 协议时序必须仔细添加;在保持状态无效且所有保持寄存器必须完全复位的启动情况下需要特殊的上电复位初始化时序。
图 18 展示了具有独立"SAVE"和"RESTORE"控制信号的状态保持区域的控制时序。图 19 展示了具有单一"采样和保持"控制接口(N_RETAIN)的替代样式。
UPF 状态保持推断示例:
set_retention A_ret -domain A \
-retention_power_net VDDA \
-retention_ground_net VSS
set_retention_control A_ret -domain A \
-save_signal {N_RETAIN low} \
-restore_signal {N_RETAIN high}
map_retention_cell A_ret -domain A \
-lib_cell_type DRFF
UPF 推断保持的问题总结: - 全状态保持匹配 RTL 设计和验证环境。 - 零状态保持简单。 - 强烈建议单沿时钟,避免专门的保持时钟门控锁存器需求。 - 选择性状态保持需要完全重新验证 PST 中支持的每个系统电源状态。 - 确保在实现保持的子系统(使用 PrimeRail 等分析工具)中特别小心地管理电源门控开启。
6 工作示例:应用于 CPU 的电源门控
本章将所有内容汇总到为 ARM 参考系统设计开发的工作示例中,其中 CPU 子系统被电源门控,有保持和无保持两种。
6.1 解决电源门控控制
为电源控制开发的控制状态机基本上实现了本文开发和描述的时序。为确保 RTL 编码可复用且不含硬编码的周期数,每个输出控制信号被视为请求信号。每个输出有一个等效的"确认"信号,表示有效的断言。所有输入提供同步器(图 20)。
6.2 解决安全开启
对相当复杂的带缓存 CPU 子系统采用了两阶段电源门控方法。在"SALT1"ARM926 项目 [7] 中(TSMC 90nm 1V "G" 工艺),在测试芯片中构建了诊断模式。图 21 展示了直接强制开启强电源门控的效果,图 22 展示了使用软启动时减少的电流尖峰。
6.3 解决可测试性
通过以下方式解决了可测试性:钳位信号在测试模式下被覆盖、电源门控控制被覆盖、复位对测试仪可控、"ACK"确认输出支持基本缓冲链完整性检查(图 23)。
6.4 解决电源门控拓扑
使用分布式电源开关网格拓扑比环式开关方法更为常见。图 24 展示了分布式电源开关网格拓扑。不是使用单一长"MAIN"电源控制开关链,而是实现多个平行链,这些链可以由共享的"PWR_REQ"外部驱动。
7 结论:最佳实践 —— UPF 中需要注意的陷阱
子系统电源轨切换以减少漏电功耗已被证明是降低便携式应用待机功耗的宝贵技术。在 RTL 设计上干净地叠加电源意图的能力现在已完全被当前 UPF 工具支持。
本文描述了电源门控背景下电源管理方法的原理和更实际的细节,充分关注了时钟、复位、可测试性和安全电源时序 —— 全部基于制造和硅验证的技术演示器。
UPF 中需要注意的陷阱总结: - UPF 可以推断基本电源门控,但设计时分析需要纳入适当的电源上电控制策略。 - UPF 以直接的方式推断基本接口输出钳位,但设计者需要指定要使用的静态/安全值。 - 电源门控网络能以多快速度开启需要同时关注 UPF 推断的结构和 RTL 控制器设计。 - 在设计跨越 UPF 和 RTL 分界的握手协议可以促进复用和技术可移植性。 - 电源门控不是即时的,也不像时钟门控那样透明。时钟在电源轨安全稳定且有效之前不能重启。复位可以明确处理,或者需要小心地与 UPF 推断的输入钳位一起断言。 - 状态保持电源门控需要特别谨慎。强烈反对通过 UPF 进行任意状态保持推断。 - 对于遗留 IP,"全状态保持"或"无状态保持"是可验证和可工作的选择。 - 以上所有前提是状态完整性不被所讨论模块的电源门控开启瞬态以及 SOC 上共享公共地或电源轨的邻近模块的瞬态所破坏。 - 强烈提倡单沿时钟,否则时钟门控构造将不得不推断保持锁存器以用于功能时钟门控。
致谢
特别感谢 Synopsys 的 Alan Gibbons,以及 ARM 的 John Biggs、James Myers、Sachin Idgunji 和 Leah Schuth 对 SALT 技术演示器计划的实践支持和承诺 —— 产生了一系列一次性成功的测试芯片。
8 参考文献
[1] ITRS 2000
[2] Kim N., et al., "Leakage current: Moore's law meets static power" IEEE Computer Vol. 36, 2003
[3] Mudge, Trevor, "Power: A First Class Architectural Design Constraint" IEEE Computer, 2001
[4] Accellera UPF Standard version 1.0, February 2007
[5] Mutoh S. et al., "A 1v multi-threshold voltage CMOS DSP" ISSCC 1996
[6] Biggs, J. Gibbons, A. "Aggressive Leakage Management in ARM-based Systems" SNUG Boston 2006
[7] Flynn, D., Gibbons, A. "Aggressive Leakage Mitigation in ARM Processor Based Systems" SNUG San Jose 2007
[8] Keating M., Bricaud P., "Reuse methodology manual: for system-on-a-chip designs" Kluwer 1998
[9] Flynn, D., Gibbons, A. "Design for State Retention: Strategies and Case Studies" SNUG San Jose 2008
图片索引
共 2 张图片(大量图表嵌入正文中),存放于 _images/ 目录。
本文包含 24 个图(图 1-24)和多个表格,覆盖电源开关单元、钳位单元、控制时序波形、状态机框图、电源门控拓扑等。