静态功耗与动态功耗

2023-11-05

0. 功耗源

功耗的本质是能量耗散。由能量守恒定律可知,能量只能从一种形式转成另一种形式,能量的总量不变。芯片耗散的电能主要转化成热能。如果一颗芯片的功耗过大,容易导致工作时温度过高,造成功能失效,甚至晶体管失效。因此,减小芯片功耗是很重要的一个任务。静态功耗以及动态功耗是两个主要的功耗源。

1. 动态功耗

动态功耗来源于:
(1)当门翻转时,负载电容充电和放电,称为翻转功耗
(2)pmos和nmos管的串并联结构都导通时的有短路电流,称为短路功耗

1.1 翻转功耗

翻转功耗可以用如下公式表示:
P s w i t c h = α C V D D 2 f P_{switch}=\alpha C V_{DD}^2f Pswitch=αCVDD2f
α \alpha α 称为活动因子,是电路节点从0跳变至1的概率。时钟的活动因子为1,因为它在每个周期都有上升和下降。大多数数据的活动因子为0.5,每周期只跳变一次。
C称为负载电容。
有以下办法可以降低翻转功耗:
(1)使用门控时钟
降低活动因子是降低功耗的非常有效的办法,如果一个电路的时钟完全关断,那么它的活动因子和动态功耗将降为0。Verilog在设计寄存器时采用下面写法可以综合成一个带门控的寄存器。

input reg d;
always @(posedge clk or negedge resetn) begin
    if(~resetn) 
        q<= 1'b0;
    else if(enable)
        q<= d;
end

(2) 减小毛刺
毛刺会增大活动因子,有可能使门的活动因子增加到1以上。

(3)减小负载电容
电容来自于电路中的连线以及晶体管。缩短连线长度,良好的平面规划和布局可以使连线电容减小。选择较小的逻辑级数以及较小的晶体管可以减小器件的翻转电容。

(4)电压域
动态功耗与电压有平方的关系,降低电源电压可以显著降低功耗。将芯片划分成多个电压域,每个电压域可以根据特定电路的需要进行优化。例如,对于存储器采用高电源电压来保证存储单元的稳定性,对于处理器采用中等大小的电压,对运行速度较低的IO外围电路采用低电压。解决跨电压域信号传输的方法是使用电平转换器

(5)动态电压调整DVS
CPU处理不同的任务有不同的性能要求。对于低性能要求的任务,可以使时钟频率降低到足以按预定时间完成任务的最低值,然后使电压降低到该频率下工作所需要的最小值就可以节省大量的能耗。

在这里插入图片描述

(6)降低频率
动态功耗正比于频率,芯片只应当工作在所要求的频率下,不能比所要求的还要快。由前面小结可以,降低频率还可以采用较低的电源电压,大大降低功耗。

(7)谐振电路
谐振电路通过使能量在储能元件如电容或电感之间来回传送而不是将能量泄放到来减小翻转功耗。

1.2 短路功耗

短路功耗发生在当输入发生翻转时,上拉和下拉网络同时部分导通的时候。如果输入信号翻转速率比较慢,那这两个网络将同时导通较长的一段时间,短路功耗也会比较大,增大负载电容可以减小短路功耗,原因是负载较大时,输出在输入跳变期间只翻转变化很小的一个量。

短路电流一般为负载电流的10%。当输入边沿变化速度很快时,短路功耗一般只占翻转功耗的2%-10%。

2. 静态功耗

静态功耗主要来源于:
(1)流过截止晶体管的亚阈值泄漏电流(subthreshold leakage)
(2)流过栅介质的泄漏电流(gate leakage)
(3)源漏扩散区的p-n节泄漏电流(junction leakage)
(4)在有比电路中的竞争电流

在这里插入图片描述

2.1 亚阈值泄漏电流

亚阈值泄漏电流是晶体管应当截止时流过的电流。在90nm节点之前,泄漏功耗主要在休眠模式下才考虑,这是因为它与动态功耗相比可以忽略不计。但是在低阈值电压和薄栅氧的纳米工艺中,泄漏电流占到总工作功耗的1/3。

亚阈值泄漏电流与多种因素有关。提高源极电压或应用一个负的体电压可以减小泄漏。泄漏电流还与温度有关,限制芯片温度对于控制泄漏至关重要。另外,通过两个或更多个串联晶体管的泄漏电流会应堆叠效应(stack effect)而大大减小。例如两输入与非门,两个NMOS堆叠在一起。

2.2 栅泄漏电流

栅极泄漏电流发生在一个电压加到栅上时(例如当门导通时)载流子遂穿通过薄栅介质的情况下。泄漏电流与介质厚度有极强的关系。工艺中通过选择合适厚度的介质将栅泄漏电流限制到一个可接受的水平上。泄漏电流还取决于栅极电压。通过使晶体管堆叠起来并使截止晶体管靠近电源/地线可以使栅泄漏电流减小。

2.3 结泄漏电流

结泄漏电流发生在源或漏扩散区处在与衬底不同电位的情况下。结泄漏电流与其他泄漏电流相比时通常都很小。

2.4 竞争电流

静态CMOS电路没有任何竞争电流,但其他某些电路甚至在静态时本身就会吸取电流。电流模式逻辑和许多模拟电路也会吸取静态电流。这样的电路应该在休眠模式时通过禁止上拉或电流源工作来关断他们。

2.5 降低静态功耗办法

(1)电源门控
减小静态电流最容易的方法就是关断休眠模块的电源。这一技术称为电源门控。
(2) 多种阈值电压和栅氧厚度
有选择的应用多种阈值电压可以使具有低Vt晶体管保持性能而又使具有高Vt晶体管的其他路径减少泄漏。
大多数纳米工艺的逻辑管采用薄栅氧,IO晶体管采用厚的多的栅氧以使它们能够承受较大的电压。
(3)可变阈值电压
通过体效应可以调制阈值电压。在休眠模式下应用一个反向体偏置减小泄漏。在工作模式下利用一个正向体偏置来提高性能。
(4)输入向量控制
由前面可知,堆叠效应和输入排序会引起亚阈值泄漏和栅泄漏的变化。因此,一个逻辑模块的泄漏与门的输入有关。输入向量控制是当模块置于休眠模式时,应用一组输入图案使模块的泄漏最小。这些输入向量可以通过寄存器上的置位/复位输入端或通过扫描链加入。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

静态功耗与动态功耗 的相关文章

  • unity3D 物体跟随移动

    脚本挂载移动的物体上 public class Player MonoBehaviour public float Speed 4 Use this for initialization void Start Update is calle
  • c++打怪小游戏——修仙之路1.5

    这次我们要出示的程序是修仙之路1 5版本的 这个程序在c 打怪小游戏 修仙之路1 0多加了好几个功能 这次我们在这个程序中多加了一些代码 我们为下面的优化多准备一个头文件 include
  • MAVEN在IDEA中的应用

    idea集成maven插件 settings gt 输入maven gt 选择本地maven安装路径 配置文件以及本地仓库的路径 创建非web的maven工程 创建工程 gt 选择maven 下一步之后填写项目的坐标 类似于全类名 下一步之
  • Zotero win10/mac/iPad三台设备同步

    刚入坑Zotero 发现同步功能很强大 刚好手上有三台设备 就试着捣鼓了下 最终结果不错 记录一下 参考来源 https sspai com post 64283 少数派 用 Zotero 坚果云搞定多设备文献管理 https blog c
  • 虚拟机中linux_server搭建

    linux server environment 1 Installation in vmware workstation 1 1 steps 略 普通的虚拟机系统安装模式 2 linux 中存储设备的使用 linux 中所有存储设备都是通
  • 华为云服务器无法ssh连接&&可以公网ip访问

    基本是SSH服务没有打开的原因 在华为的配置里面默认打开了22号端口 但是需要修改ssh配置文件 首先从华为云服务管理界面远程登录进去 然后会看到 然后登陆之后修改ssh的配置文件 sudo vi etc ssh sshd config 将
  • Scrapy 爬虫完整案例—从小白到大神(银行网点信息为例)

    采用selenium界面抓取信息 需要渲染界面 并且也是单线程操作 效率极低 一晚上只爬去了一个工行的数据 突然想到了分布式爬虫 安装 Scrapy pip版本过于老旧不能使用 需要升级pip版本 输入python m pip instal
  • OpenCV学习三十三:pointPolygonTest 检测点是否在轮廓内

    opencv函数 pointPolygonTest C double pointPolygonTest InputArray contour Point2f pt bool measureDist 用于测试一个点是否在多边形中 当measu
  • 云计算知识点

    一 理解云计算 一 云计算的基本概念 1 定义 云计算是以服务的形式 按需向用户提供计算资源的一种模式 它是分布式计算的一种特殊形式 引入了效用模型来远程供给可扩展和可测量的资源 2 基本要点 提供IT资源 包括计算 存储以及网络资源 提供
  • 用MATLAB实现雅克比迭代、高斯-赛德尔迭代以及超松弛迭代

    文章目录 前言 一 解线性方程组的方法 二 解线性方程组的迭代法及其代码实现 1 迭代法的收敛性 2 基本参数设置 3 雅克比 Jacobi 迭代 4 高斯 塞德尔 Gauss Seidel 迭代 5 超松弛 SOR 迭代 总结 前言 近期
  • 在opencv3中的机器学习算法

    在opencv3 0中 提供了一个ml cpp的文件 这里面全是机器学习的算法 共提供了这么几种 1 正态贝叶斯 normal Bayessian classifier 我已在另外一篇博文中介绍过 在opencv3中实现机器学习之 利用正态
  • 线性回归实现人脸识别——ORL数据集

    今天写一个比较简单的机器学习例子 使用线性回归实现人脸识别 使用的数据集是ORL数据集 算法描述 输入 图片矩阵img 标签信息label 测试图片test 对每一个类 第一步 从图片矩阵中读出来一类图片 划分为训练集 X 与测试集 y 第
  • 求 1-10 的奇数之积,偶数之和。

    i 1 even sum 0 偶数 odd sum 0 奇数 while i lt 10 循环10次 if i 2 0 even sum even sum i else odd sum odd sum i i 1 print 1 10偶数之
  • React-从0到1搭建一个React项目(一)

    文章目录 架构介绍 第三方组件库 项目准备 环境准备 使用create react app初始化项目 创建项目目录结构 安装第三方库 利用工作之余的时间学习了react 今年一回来 部门要在公众号上面开发一个积分商城 于是准备让我用reac
  • 嵌入式Linux设置开机自动运行程序(基于BusyBox init)

    文章目录 目的 BusyBox init启动流程 inittab rcS 和 rcK 设置开机自动运行程序 总结 目的 开机自动运行程序 或者说系统启动时自动运行程序 这是经常会需要用到的功能 这个功能通常依托于 init 程序实现 ini

随机推荐

  • Log4Net记录日志级别

    level 中的级别 表示记录那些情况下的日志
  • 安装Catia显示无法启动服务器,win10catia r20应用程序无法正常启动的解决办法

    catia r20是一款用于模具设计的专业软件 能够给用户提供十分完善的建模技术 但近日有用户却反映说自己的win10正式版电脑出现了catia r20无法正常启动的情况 那我们要怎么解决这一问题呢 下面小编就来为大家分享关于win10ca
  • spring cloud系列学习(十一、额外篇-建多模块项目-maven的聚合和继承)

    一个项目有很多模块 每个模块都会用到一些公共的依赖 这些公共的依赖若交由各个模块独自管理 若每个模块同一个依赖的版本号不一致 会造成很比问题 打包和开发测试环境下对同一jar包不同版本号的处理可能不一致 造成运行时和测试时结果不一致项目升级
  • Retrofit 接收字符串

    在Retrofit1 9中 GsonConverter是默认包含在包里面的并且会在RestAdapter创建的时候自动创建 结果就是 如果返回的是Json字符串将会自动地被转换为数据存取对象Data Access Object DAO 但是
  • Android 屏幕适配方案

    http blog csdn net lmj623565791 article details 45460089
  • 【元宇宙】临界质量,元宇宙的关键要素

    考虑到电气化和移动技术的普及过程 我们可以自信地说 元宇宙不会突然到来 同时 也不会有明确的 元宇宙之前 beforeMetaverse 和 元宇宙之后 afterMetaverse 阶段一它们只是对应着生活发生改变的历史时期 一些高管认为
  • 面向对象----类变量小坑

    先看一段代码 class A name a def init self pass a A print a name print 10 b A b name b print b name print a name print 10 c A c
  • 开发一个自定义“套壳“浏览器的开源方案--TlC_Browser

    目录 一 项目概述 二 技术选型 三 项目介绍 项目名称 TlC Browser 开发语言 VB6 浏览器内核 webview2 项目目的 在vb6调用h5 实现自定义的浏览器 参考资料 https github com sysdzw We
  • stable-diffusion-webui Restore faces Error

    stable diffusion webui Restore faces Error https github com AUTOMATIC1111 stable diffusion webui issues 1513 我认为这与损坏的安装有
  • redis多字段分页排序

    1 redis有序集合 sorted set 是在 Sets 的基础上增加了分数设置作为排序依据 所以除了具备 Sets 的特性外 还可以进行排序 它提供了一个 score 属性 正好可以用来做排序依据 2 单字段排序 用户类 Data N
  • @Autowired的实现原理

    1 了解 Autowired 在这之前你得了解SpringIOC容器的相关知识 含义 Autowired表示某个属性是否需要进行依赖注入 可以写在属性和方法上 注解中的required属性默认为ture 表示如果没有对象注入给属性则抛出异常
  • linux中kvm配置文件,如何在linux中通过kvm安装虚拟机

    8种机械键盘轴体对比 本人程序员 要买一个写代码的键盘 请问红轴和茶轴怎么选 在centOS中通过kvm安装虚拟机 环境搭建 虚拟机安装 按照常规步骤安装即可 唯一需要注意的点是需要在cpu选项处 将虚拟化选项全部打开 查看配置 查看硬件是
  • Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)

    指纹识别这个名词听起来并不陌生 但是实际开发过程中用得并不多 Google从Android6 0 api23 开始才提供标准指纹识别支持 并对外提供指纹识别相关的接口 本文除了能适配6 0及以上系统 主要还提供6 0以下设备适配解决方案 指
  • 如何使android应用开机时自动启动,如何使APP开机自启动

    方案一 将app做成系统应用 直接安装在 system app 目录下 具体步骤为 1 在AndroidManifest文件中 添加 android sharedUserId android uid system 例如 image png
  • 万字长文详述ClickHouse在京喜达实时数据的探索与实践

    1 前言 京喜达技术部在社区团购场景下采用JDQ Flink Elasticsearch架构来打造实时数据报表 随着业务的发展 Elasticsearch开始暴露出一些弊端 不适合大批量的数据查询 高频次深度分页导出导致ES宕机 不能精确去
  • 利用555定时器的双电源电路原理

    参考电工天下电路原理图 致敬 555单电源变双电源电路 以下是电路图 时基电路555接成无稳态电路 3脚输出频率为20KHz 占空比为1 1的方波 3脚为高电平时 C4被充电 低电平时 C3被充电 由于VD1 VD2的存在 C3 C4在电路
  • Android/Linux EAS优化-schedtune

    Linux cgroups机制中的cpu cpuset schedtune子系统 跟linux android进程调度策略有关 记录下各项功能参数的用法 SchedTune SchedTune是一项与CPU调频相关的性能提升技术 它实现为一
  • matlab如何保存csv文件,Matlab:将输出写入csv文件

    我有一些数据 包括我想将它们存储在csv文件中的字符串和数字 作为函数输出的数字存储在1x20的数组中 所以在csv文件中 我希望有21列 因此 csv文件中的第一列应该是字符串 接下来的20列具有1x20数组中的信息 我怎么能这样做 我使
  • 使用InitializingBean实现策略模式

    1 创建SpringBoot项目 2 创建抽象类AbstractThreeHandler public abstract class AbstractThreeHandler implements InitializingBean Auto
  • 静态功耗与动态功耗

    文章目录 0 功耗源 1 动态功耗 1 1 翻转功耗 1 2 短路功耗 2 静态功耗 2 1 亚阈值泄漏电流 2 2 栅泄漏电流 2 3 结泄漏电流 2 4 竞争电流 2 5 降低静态功耗办法 0 功耗源 功耗的本质是能量耗散 由能量守恒定