降低功率消耗的低功耗技术:频率改变、门控时钟、功率阱隔离等
功率控制方法从整体上划分为两类:一类是本地硬件级别的,另一类是系统级别的。
第一类方法在本地硬件层面上,需要找到各种可能的方法并加一车车、验证和分析,最大限度地降低其功耗。这类方法通常称为功率降低或功率降低方法。典型的功率降低方法有:本地门控时钟技术、本地低主频、宽数据总线技术。
第二类方法涉及操作系统、软件、处理器、芯片组、存储器、I/O设备管理,以一种相互作用、相互协调的方式进行,通常称为功率管理。典型的方法:改变系统状态(S3、S4)进行功率管理,如进入S3状态的时候,除了RAM,所有I/o和cpu都被断电,这也被称为PC的睡眠模式。
首先我们需要知道影响功率消耗的主要因素,进而去思考怎么减少功率消耗。
1、功耗分析·:
Power=KFCV2
其中,K表示常量、F表示频率、C表示电容值,V表示电压。
公式分析:一个ASIC或SOC由大量的逻辑门(AND、OR、NOR、XOR等)和触发器构成,数字系统使用二进制逻辑,即逻辑值为1和0.逻辑门的输出值随输入逻辑的变化而不断发展。在实际的门电路中,存在输出负载电容,输出为1的时候对电容进行充电,使得达到逻辑电平1,输出为0的时候需要对电容放电,使得称为逻辑电平0.这种充放电的操作过程中,一部分功率以热能的形式消耗掉。
从公式我们可以得出一个结论:如果能够在减少负载电容、降低工作频率和工作电压的情况下,仍然能够实现逻辑0和逻辑1,我们就能够降低功耗。
另外从《数字电子技术基础》书上关于CMOS反相器的功耗特性:
来源于我另一篇博客:https://blog.csdn.net/qq_38374491/article/details/114277203

2、低功耗技术
从公式可以看出,我们可以从频率、电容、电压这三个方面来降低功耗,一个整体的认识如下(目录)
2.1频率
(1)降低频率、增大数据路径宽度
(2)动态频率调整
(3)零频率/门控时钟
2.2电容
减少电容负载
2.3电压
(1)动态改变工作电压
(2)零操作电压
(3)电源阱和隔离

具体而言:
2.1频率
从公式可以看出,功耗和频率是成正比的,工作时钟频率越高,功耗越高。单纯从降低功耗的角度来说,可以降低工作频率。但是呢?工作频率同时也和系统性能有关。频率越高,则系统的处理能力越强。因此通过降低工作频率来达到降低功耗的措施和增加频率提高系统性能存在直接的矛盾。在现实生活中,我们需要根据具体的应用场景,在功耗和性能上进行折中,选择一个最适合的某一应用场景的频率。
例子:对于桌面系统,比如服务器,使用外部交流电,对设备的功耗要求不是十分苛刻,而用户希望工作频率越高越好。对于嵌入式设备和移动设备(手机、平板计算机、笔记本计算机)中,通过电池供电,设计的目标是在保证合理性的情况下尽可能延长电池的使用时间。因此设计者就应该选择让处理器工作再较低的工作频率上,使得设备保功耗较低。
(1)降低频率,增大数据路径宽度
在很多情况下,以较低的工作频率仍然可以达到相同的性能(吞吐率)。此时所采用的方法主要是采用不同的处理器架构或者数据路径宽度。在I/O设计中(PCIe)内部数据路径宽度可以加倍,同时工作频率降低为原来的一半,此时数据吞吐率仍然保持不变。
但是这种方法也有弊端:传输延时会增大,所消耗的逻辑门数量可能会增大。对于延时要求苛刻的西药,如交换机或多个处理器之间的通信(传递的多为控制信息),采用高频率、低位宽的数据通道更合适。对于一些只是进行数据搬移的,对延时要求不苛刻的,比如嵌入式PCIe设备,宽数据通道、低频率更适合。
(2)动态频率调整
一旦设计者确定了系统架构和数据内部数据通道宽度,系统的最大操作频率就确定了。然而工作频率可以根据需求动态进行调整:比如,根据系统性能要求,运行低速运行的时候就降低工作频率,需要高速运行的时候就提高工作频率。
例子1:一台笔记本电脑,我们使用外部交流供电的时候可以高性能运行(此时更关注性能),当使用电池供电的时候可以自动切换为低主频运行(此时更关注功耗)。
例子2:对于PCIe来说,通过软件可以降低其工作频率,1GHz的GEN3可以降低为500MHz的GEN2,或者250MHz的GEN1.这种降频是软件和硬件协调的结果,不涉及整个系统。
(3) 零频率/门控时钟
数字系统的工作频率是否可以为0?从而不会发生电容充放电,也就是没有功率消耗呢?从本地硬件电路层面上看,当没有电路操作时,时钟也可以完全停止,从而硬件逻辑门没有功率消耗。此时通常会使用时钟门控技术,采用时钟门控技术时,源时钟没有停止,但是进入本地逻辑门的时钟在与门的控制下保持为0.具体如下图所示:

2.2电容
减少电容负载:
随着逻辑门的逻辑值在1和0之间切换,其所驱动的电容负载在不断被充电和放电,通过发热消耗热量。随着硅技术在工艺上不断缩小,逻辑门的几何尺寸变得越来越小,其电容负载也越变越小。如果操作频率相同,工艺尺寸越小则逻辑门消耗的功率越小,但是由于此时相同芯片面积上能够集成的逻辑门数量更多,能够工作的频率更高,功率消耗反而增加了。
工艺改进可以在相同频率下降低功率,或者在相同功耗下提高工作频率。但是工艺改进也会带来芯片制造成本的增加。
2.3电压
从公式可以看出,功耗和电压的平方成正比,因此降低电压相比较于降低电容和频率有更大的帮助。但是降低工作电压存在两个不利因素:
第一:逻辑门的工作速度和工作电压成正比例关系,也就是降低工作电压后,逻辑门的工作速度也会降低。(追求速度(性能)和降低功耗存在直接的矛盾);
第二:降低了电路的噪声裕量。逻辑1和逻辑0分别对应不同的实际电平值。当工作电压降低时,逻辑1和逻辑0之间的电压差也会降低,也就是降低了噪声裕量。更小的噪声可能使门电路***扰,造成逻辑错误。
(1)动态改变工作电压
CPU中采用了能够动态调整工作电压的技术(如Intel的阶梯速度技术)。当CPU运行负荷降低或系统性能要求降低时,它能够降低CPU的工作电压。当需要高性能运转时,其工作电压可以恢复过来。
(2)零操作电压
通过关闭电源可以将电路的工作电压降低为0。
例子:系统中的某些元件在某些工作状态下可以完全被关闭。例如,计算机系统在S3状态下,IO设备、硬盘和CPU的电源可以被关闭,只保留对RAM的供电,与系统运行相关的线索和信息被保留在RAM中。
在移动设备芯片组的设计中,采用另一种功率节约的方案,芯片被分割成不同的电源阱。芯片的主体逻辑以内核电压工作,少部分逻辑使用辅助电源供电。如果芯片当前没有操作或短期内不会有操作,对内核的供电可以完全关闭,辅助逻辑仍然保持正常供电,这部分逻辑维持着唤醒逻辑的运行或保存着芯片重新进入工作状态所需要的状态信息。当芯片进入正常工作状态,唤醒逻辑请求恢复对内核电路的供电。
具体例子:LAN设备在没有数据包传输的时候会进入悬浮模式(芯片内核电压被关闭),当检测到有数据包输入时,它恢复对内核的供电以及数据包进行处理并将其发送给CPU。USB、PCIe设备都采用这种机制来降低功耗。由于停止了对内核逻辑的供电,在悬浮状态下设备消耗的功率非常少。
(3)电源阱和隔离
芯片被分割为不同的电源阱:内核阱和辅助阱。芯片的主体逻辑部分使用内核电源供电而小部分逻辑采用辅助电源供电。芯片上采用不同电源供电的逻辑门被布置在芯片的不同区域,因此被称为阱。
这部分有两个关键点:
关键点1:当内核电源被关闭后,所有从内核域输出进入辅助域的信号都会处于悬浮状态,其电平是未知的。这些悬浮的输入会造成大量的漏电流,可能会烧毁芯片。
措施:对所有横跨电源阱的信号进行一个简单测试。这些信号会进入一个与门,与门的一个输入端连接需要通过的信号,另一个输入端连接一个被称为core_powergood的信号。这个信号有悬浮的电源阱中的电路驱动,当内核逻辑处于加电状态时其为1,当内核电源关闭时,其为0.也就是core_powergood为0时,与门输出为确定值0,此时会防止电流泄露。
关键点2:对于垮电源阱信号非常关键的问题是电平转换。当不同电源阱的供电电压不同时,其逻辑0和逻辑1的电压门限是不同的。可能存在,在一个电压域中的逻辑0在另一个电压域中被认为是逻辑1.因此,需要使用一种特殊的电平转换电路单元进行跨时钟域信号的传递。

以上内容来源于书《Verilog 高级数字系统设计技术与实例分析》
除了书上的低功耗技术外,还有静态低功耗技术、RTL优化等措施可以降低功耗。可以参考这篇博客:
https://blog.csdn.net/wangkai_2019/article/details/106854081?spm=1001.2014.3001.5501%EF%BC%8C%E8%B0%A2%E8%B0%A2%EF%BC%81