今天的内容还是从《Verilog高级数字系统设计技术与实例分析》里来的。16、17章主要讲了如何减小功率,但是内容有点浅,只是一个大概的对概念的科普。
功率控制主要可以划分为两类:一个是本地硬件级别,另一个是整个系统级别的。于数字IC前端来说,前者应该是学习的重点。功耗可以用 P = KFCV^2 来表示。K是常量,F是工作频率,C是电容,V是电压。由此,我们可以有针对性地去控制减小某些参数,与此同时仍然能够保证实现电路中逻辑电平中1和0。
针对频率F,可以采用降低频率的同时增大数据路径宽度;或者动态地按需调整频率,另外还有门控时钟,都是通过直接调整频率来降低功耗的技术手段。
针对电容,可能只能够把希望寄托在工艺部门。通过不断地减小逻辑门的尺寸,使其电容负载相应减小。然而这也会带来工作频率的增加,虽然对性能而言是好事,但是也一定程度上增加了功耗。
如果采用降低工作电压的方法来节能,带来的弊端有,其会降低逻辑门的工作速度;另外,也导致了逻辑1和0之间的电压差减小,降低了噪声容限,使其更容易被干扰。然而,类似于频率,我们同样可以动态调整工作电压来达到节能的目的。此外,也可以针对芯片上不同的部分使用不同的电源阱,例如分为用于主题逻辑的内核电源和用于外围的辅助电源。针对不同的工作状态可以选择是否打开内核电源(例如无计算任务时)。
关于系统的功率管理,有一些相关的标准或者规范。例如ACPI(Advanced Configuration and Power Interface),它对系统、系统下的设备以及相关链路的工作状态进行了划分,每种工作状态下都有不同的用电需求。通过对系统工作状态的划分,可以规范地控制各个设备的活动情况及其电源的供电情况。从而达到减小功耗的目的。