【技术综述】层次化的低功耗设计方法

简介: 本文从低功耗设计的必要性、功耗来源和层次化的低功耗设计方法三个方面,概括性的介绍了IC设计中的低功耗技术,由于本文内容主体是对参考文献[1]和[2]的汇总提炼,因此文中对涉及这两篇文献的内容未做引用标注。

1 低功耗设计的必要性

随着十多年前“Dennard Scaling”定律的终结3,晶体管体积缩小带来了功耗密度的增加。因此伴随芯片集成度的提高、门级规模的增大和性能表现的提高,芯片的功率消耗也随之增加,由此功耗优化问题越来越受到开发人员的重视。综合考量,降低芯片功耗的必要性主要体现在以下几个方面:

  1. 散热成本:在芯片的工作过程中,电能以热量形式消耗。为保证芯片正常的工作温度,芯片功耗的增加对封装技术和散热方式提出了更高的要求,同时也增加了芯片的散热成本;
  2. 体积:功耗增加需要搭配更大的散热设备,从而增大了芯片产品的体积;
  3. 电源成本:功耗增加缩短了端侧设备的电池有效供电寿命;
  4. 可靠性:功耗增加带来的芯片环境温度提升会降低芯片的可靠性;

2 功耗来源

充分的了解功耗来源,才能从策略上有效的降低功耗。芯片的功耗来源依据晶体管的工作状态分为静态功耗和动态功耗,具体含义如下:

  1. 静态功耗:又称“待机功耗”,是指电路在没有信号反转时,晶体管中漏电流造成的功耗;
  2. 动态功耗:是电路在工作时(翻转时)所消耗的能量,对于CMOS电路它又分为开关功耗和短路功耗,用公式描述如下:

image.png

在大规模IC设计中动态功耗占主要地位,典型应用中占到总功耗的80%。动态功耗中短路功耗部分的短路时间较短,此部分功耗可以忽略,因此降低动态功耗无非是从降低Vdd、fclock、CL和Ptrans等的角度出发,由此也会引入在不同设计层次上对低功耗设计的考量。

3 层次化的低功耗设计方法

低功耗设计方法涉及系统级、逻辑级和物理级等不同的设计层次,层次越高对功耗降低就可能越有效,下图是在各抽象层次上降低功耗方法的总览图:

image.png

针对每个抽象层次上的部分低功耗设计方法的具体介绍如下:

3.1 系统级低功耗技术

  1. 软硬件划分:采用基于高层次建模的方式进行软硬件划分,高抽象级模型有助于合理高效的分配计算任务到软硬件中,从而降低无效的计算消耗;
  2. 整合领域专用模块搭建异构计算平台:将通用SOC与领域专用模块融合,实现领域计算任务的高效部署,从而从系统级降低功耗;

3.2 体系结构级低功耗技术

  1. 动态电压频率调节:针对运行中的芯片,依据不同的计算场景动态调整芯片的供电电压和工作频率,实现计算性能和功耗之间的平衡;
  2. 多电压供电:对不同模块根据其性能要求不同采用不同电源供电,设计需要在模块间额外增加power rails和level shifters;
  3. 门控电源:最常用的体系结构级低功耗技术之一,依据门控层次分为细粒度电源门控和粗粒度电源门控,后续将会有博文针对此项技术展开详细介绍;
  4. 门控时钟:是在寄存器不工作时(即使能信号无效时),使能时钟无效,从而时钟树上对应buffer及register都不会再有动态功耗;

3.3 寄存器传输级低功耗技术

此层次上核心降低功耗的思路是通过逻辑优化,减少信号跳变次数,典型应用场景如下:

  1. 总线反转:在当前数据与下一个数据之间的汉明距离大于N/2(N为总线位宽)时,就将下一个数据反向后传播,以减少总线上出现转换的位的数量;
  2. 状态机编码风格:采用独热码而非二进制码来编码状态机的状态,从而简化译码逻辑,进而减少信号跳变次数;
  3. 去掉逻辑云:在操作大规模逻辑云(包括宽加法器、乘法器等)时,往往会在需要时才将其打开;

3.4 晶体管级低功耗技术

调整衬底偏置:降低MOS管衬底偏置可以提高动态电流从而提高电路工作速度,但是衬底偏置和静态漏电成指数反比关系,因此衬底偏置的调整既是对速度和功耗之间的权衡,又是对动态功耗与静态功耗之间的权衡;

4 参考资料

[1]. Arora, Mohit . The Art of Hardware Architecture[M]. Springer New York, 2012. [2]. Keating M, Aitken R, Flynn D, et al. Low Power Methodology Manual: For System-on-Chip Design[J]. 2007. [3]. Hennessy J,Patterson D. Computer Architecture-A Quantitative Approach-Sixth Edition[M]. Morgan Kaufmann Publishers Inc. 2018. [4]. Patterson D . 50 Years of computer architecture: From the mainframe CPU to the domain-specific tpu and the open RISC-V instruction set[C]// Solid-state Circuits Conference. IEEE, 2018.

文章来源:芯片开放社区
文章链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180fKD1nhm&id=625743087469068288

相关文章
【EDA】 Verdi 使用笔记
【EDA】 Verdi 使用笔记
3147 0
【EDA】 Verdi 使用笔记
|
10月前
|
传感器 监控 自动驾驶
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
776 0
|
11月前
|
机器学习/深度学习 算法 数据处理
模型预测笔记(二):结合SMOTE来进行数据不均衡处理实操
这篇文章介绍了SMOTE算法,这是一种通过合成新样本来处理数据不均衡问题的技术,旨在提高模型对少数类别的识别能力。
496 1
|
Perl
awk命令中逐行处理
awk命令中逐行处理
282 3
|
算法
算法】位运算——常见位运算基础操作总结
算法】位运算——常见位运算基础操作总结
319 0
算法】位运算——常见位运算基础操作总结
|
文字识别 PyTorch 算法框架/工具
【Python】已解决:Python正确安装文字识别库EasyOCR
【Python】已解决:Python正确安装文字识别库EasyOCR
2363 0
|
Android开发
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
232 0
|
消息中间件 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——云原生中间件
带你读《云原生架构白皮书2022新版》——云原生中间件
990 92
|
应用服务中间件 Linux nginx
OBS+Nginx+VLC推拉流
【2月更文挑战第6天】推拉流分为推流和拉流。推流就是将client端的视频画面推送到流媒体服务器;拉流就是另外一个client端从流媒体服务器获取视频画面。
853 0
OBS+Nginx+VLC推拉流