本文总结工具中进行leakage功耗计算的一般方法。

背景

leakage power在深亚微米下占比越来越高。在很多情况下,leakage power可能会占到芯片总功耗的30~50%。

即使在standby模式之下,leakage power也无法减少。

最有效的方法是关闭电源,但是并非所有应用场合都适用,因为启动的时间相对较长,也需要额外的面积来放置power switch。

之前我曾写过文章介绍leakage power的重要性。

这里稍作回顾。

动态功耗可以通过降频来调整。例如系统中主控芯片如果发现温度过高,可以降低频率,来减少散热压力。

而且动态功耗与温度无关,而是与频率,负载,电压相关。

但是leakage则相反,和频率无关,而与温度成指数关系。

Leakage power depends exponentially on temperature

想象一下,如果芯片中leakage占比较高的话,一旦某种原因,温度升高,可能leakage增大数倍。

而leakage的增大,进一步导致芯片温度的升高。

从而形成一个"温度-功耗-温度"的正反馈,导致芯片因过热而无法工作,甚至烧毁芯片。

leakage的计算

言归正传。

我们获得芯片的leakage power非常容易,可能只是一个命令。但是原理,可能并不是你想的那么简单。

以标准单元为例,leakage和标准单元本身的状态相关。

当stdcell有多个输入的时候,可能产生几十种状态,而每种状态leakage也是不同的。

stdcell lib中的leakage

这就涉及到了当我们进行leakage计算的时候,如何选择这些值。

以ICC2为例,

leakage power的计算方式分为三种

  • average

  • unconditional

  • state

当以average模式进行计算时,工具会将所有状态的leakage取平均值。

当以unconditional模式进行计算时,工具会在lib中找到一个跟cell的状态无关的leakage值来进行功耗计算。

mark

当以state模式进行计算时,则需要工具来判断cell所处的状态。某些状态可以通过set_case_analysis来推断。如果没有case语句,则按照每种状态出现的可能性相同来加权平均,最终值可能与average相同。

那么如果lib中没有leakage值怎么办?

你可以看一下lib的开头部分,还有个default_cell_leakage_power

如果用这个值产生的report,你有什么感想?

end

leakage计算中有很多假设和trade off,但这并不妨碍我们用这些值进行参考。

如果了解char-lib过程,你会发现,仅仅如何把total power分为dynamic power和leakage power,也并不是件容易的事情。

工程中,完成比完美更重要,何况完美并不存在。

扫码关注我

你可能不知道的leakage功耗计算相关推荐

  1. 国际计算机思维比赛,少儿编程领域中,你所不知道的国际计算思维大赛

    原标题:少儿编程领域中,你所不知道的国际计算思维大赛 孩子学习编程,除了培养编程思维和计算思维,也能为未来应对人工智能时代打下基础.今天给大家讲的的是Bebras国际计算思维大赛,请大家持续关注坚果学 ...

  2. 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT

    https://my.oschina.net/fdhay/blog/638631 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 2016-02-18 大房 大房说 本文是我将最 ...

  3. swift与OC之间不得不知道的21点

    2019独角兽企业重金招聘Python工程师标准>>> swift与OC之间不得不知道的21点 原文  http://www.cnblogs.com/dsxniubility/p/4 ...

  4. 你所不知道的setTimeout

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...

  5. 计算机键盘标注,你所不知道的 Windows 10 小诀窍:万能计算器、虚拟键盘、屏幕截图标注...

    原标题:你所不知道的 Windows 10 小诀窍:万能计算器.虚拟键盘.屏幕截图标注 Windows 10 里面有许多好用的小功能,只是藏得很深,平常你不一定会发现它,又或者可能是并没有特别标注出来 ...

  6. 你真的会玩SQL吗?你所不知道的 数据聚合

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  7. 关于PHP你可能不知道的10件事

    小编之前也曾报导过PHP开发人员容易忽略的几点精华,除了一些精华技术方法外,很多细微之处也是程序员们容易忽略的,下面我们为您总结了10个关于PHP你可能不知道的事情. 关于PHP更多内容,欢迎访问:P ...

  8. JavaScript 日期操作我不知道的事情

    平时对 Date 很多内容都一知半解,每次一用到 Date 就需要查资料,着实恼火. 故此文记录关于 JS 日期操作那些我不知道的事. 基础问题 Date.prototype.getTime() 返回 ...

  9. 71java并发编程不得不知道的几件事

    多线程编程从来都是一件比较困难的事情,调试多线程程序也相当困难,这种困难来自于线程对共享资源操作的复杂性 ( 包括对于资源操作的线程间的先后顺序 ) .对于 Java 来说,它封装了底层硬件和操作系统 ...

最新文章

  1. 3模型大小_分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道...
  2. linux安装mysql php_Linux 安装mysql和php
  3. [特征工程系列二]显性特征的基本处理方法
  4. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
  5. 一台机子上运行使用不同Java版本的多个tomcat
  6. Ansible 一步一步从入门到精通(一)
  7. C语言 共用体/联合体 union
  8. 计算机网络ppt_大学四年,我这样学操作系统和计算机网络,毕业后成为了别人眼中的大神(附书籍推荐)
  9. C# 中base和this关键字
  10. 介绍一些新手都能看的明白的基础破解教程
  11. 真实评测 i3 1115G4和i7 1165G7选哪个
  12. systemtap分析软raid io拆分问题
  13. SVN更新(update)文件时,报skipped, remains conficted时的解决办法
  14. linux下ace安装教程,linux下安装ACE开发环境
  15. 手机上怎么在线生成gif?1分钟教你手机图片合成gif
  16. 如何拆宏碁(acer)笔记本--个人动手更换风扇、清理灰尘
  17. 颜色的识别方法和探索 基于matlab
  18. 三维管廊大规模实时渲染方案
  19. hdu5445(两次多重背包)
  20. Swoft入门及技术指南

热门文章

  1. 如何在Sage X3 ERP中使用集装箱管理和物流跟踪
  2. gps与服务器协议,gps云服务器地址
  3. springcloud---微服务/微服务架构概念,优缺点。
  4. Photo 相册操作
  5. 在隐秘角落的小爽文有多火?40天内就收回所有成本?豆豆细说爽文大生意
  6. 2020 京东全民养红包 全民营业 自动任务 一键完成 一键抢红包
  7. 对Android手机系统日历数据增删改查操作详解
  8. linux kde. yum,yum安装gnome和kde桌面
  9. 基于 V2G 技术的电动汽车实时调度策略(Matlab代码实现)
  10. 工作中常用的免费API,赶紧收藏起来~