【计算机架构】如何计算 CPU 动态功耗

news2024/12/23 20:30:08

  

📜 本章目录:

0x00 动态功耗(Dynamic Power)

0x01 集成电路成本(Integrated Circuit Cost)

0x02 基准测试(SPEC CPU Benchmark)

0x03 SPEC功率基准测试(SPEC Power Benchmark)

0x04 Pitfall:Amdahl’s 定律

0x05 Pitfall:将 MIPS 作为性能指标


0x00 动态功耗(Dynamic Power)

电力趋势(Power Trends)

芯片在工作时晶体管处于跳变状态所产生的功耗,我们称之为 动态功耗 (Dynamic Power)。

在 CMOS 集成电路技术方中,动态功耗计算:功率 = 电容性负载 × 电压^2 × 频率

Capacitive load 为电容性负载,当 Frequency 增大时,可以减少 Voltage 降低功耗。

然而,当 Voltage 持续减小到一定程度,再减小将会导致静态功耗增大,无法有效散热。

The power wall:我们无法进一步降低电压,我们无法消除更多的热量。

⚡ 简化记忆:P=C\times V^2 \times F

Reducing Power:我们假设一个新的 CPU ,比旧 CPU 的 85% 的电容性负载 (capacitive load),

电压 (voltage) 降低15%,频率 (frequency) 降低 15。那么 根据公式 P=C\times V^2 \times F

\frac{P_{new}}{P_{old}}=\frac{C_{old}\times 0.85\times (V_{old}\times 0.85) ^2\times F_{old}\times 0.85}{C_{old}\times V_{old}^2\times F_{old}

=0.85^4=0.52

Suppose a new CPU has 80% of capacitive load of old CPU and 10% valtage reduction. How much power reduction with new CPU?

Old CPU  Voltage: 5.3V    ClockRate 1GHz
New CPU Voltage: 3V      ClockRate 2GHz

动态功耗主要包括两部分,即动态开关功耗(P_{\textrm{sw}})和短路功耗(P_{\textrm{sc}})。

动态开关功耗是在逻辑门进行开关事件时产生的功耗,即在 CMOS 逻辑门输出节点电压在逻辑转换过程中由于充电和放电引起的功耗。

在充电过程中,输出节点电压从 0 到 V_{\textrm{DD}} 完全转换,其中一半的能量会以热的形式在 PMOS 管导通时被消耗,从而形成动态开关功耗。因此,动态功耗主要由逻辑门的输出电容引起。

另一方面,当 CMOS 逻辑门在有限的上升沿和下降沿(slew)输入电压的驱动下进行开关时,PMOS 和 NMOS 晶体管会在短时间内同步导通,从而在电源和地之间形成一条直流通路,产生短路功耗,这部分功耗被称为短路功耗(PSC)。

需要注意的是,这只是计算 CPU 动态功耗的一个简化公式,实际情况可能会更加复杂,因为现代CPU在设计上会包含更多的功耗管理技术和优化措施,例如动态电压频率调整(DVFS)、体系结构层面的功耗优化等。因此,在实际应用中,需要考虑更多因素来准确估计 CPU 的动态功耗。

0x01 集成电路成本(Integrated Circuit Cost)

\textrm{Cost per die }= \frac{\textrm{Cost per wafer}}{\textrm{Dies per wafer}\times\textrm{ Yield}}

\textrm{Dies per wafer} \approx \textrm{Wafer area}/\textrm{Die ares}

Yield=\frac{1}{[\, 1+(\textrm{Defects per area} \times \textrm{Die area}/2)\, ]\, ^2}

与面积和缺陷率的非线性关系:晶片成本和面积是固定的,缺陷率由制造工艺决定,晶片面积由结构和电路设计决定。

0x02 基准测试(SPEC CPU Benchmark)

\sqrt[n]{\prod_{i=1}^{n}\textrm{Execution time ratio}_i}

用来衡量性能的程序,是实际工作负荷的典型代表。标准性能评估公司(SPEC):开发CPU、I/O、网络等方面的基准。SPEC CPU2006:

  • 执行部分程序所需的时间
  • 可忽略I/O,因此重点关注CPU性能
  • 相对于参考机器进行归一化
  • 总结为性能比的几何平均值
  • CINT2006(整数)和CFP2006(浮点)

用于 Opteron X4 2356 的 CINT2006:

0x03 SPEC功率基准测试(SPEC Power Benchmark)

不同工作负荷水平下的服务器耗电量,性能:ssj_ops / sec,功率: 瓦特 (焦耳/秒)

\textrm{Overall ssj}\_ \textrm{ops per Wat}=\frac{\sum_{i=0}^{10}\textrm{ssj}\_\textrm{ops}_i}{\sum_{i=0}^{10}\textrm{Power}_i}

X4 的 SPEC power_ssj2008:

0x04 Pitfall:Amdahl’s 定律

Amdahl's Law(阿姆达尔定律)是一种计算性能的定律,用于衡量在提升计算系统性能时,对某一部分进行优化的效果。它由计算机科学家 Gene Amdahl 在1967年提出,被广泛应用于计算系统的设计和性能优化。

改进计算机的一个方面,并期望在整体性能上有相应的改善:

T_{\textrm{improved}}=\frac{T_{\textrm{affected}}}{\textrm{improvement fator}} + T_{\textrm{unaffected}}

💬 例子:multiply accounts for 80s/100s,How much improvement in multiply performance to get 5× overall?

20=\frac{80}{n}+20

Can't be done!

谬误: 闲置时的低功率

回顾一下X4的功率基准:在100%的负载下: 295W,在50%的负载下: 246W (83%),在10%的负载下: 180W (61%)。

谷歌数据中心:大多在10%-50%的负载下运行,在100%的负载下,不到1%的时间。

考虑设计处理器以使功率与负载成正比

0x05 Pitfall:将 MIPS 作为性能指标

在计算机体系结构和处理器设计中,MIPS(Million Instructions Per Second)是一种常用的性能指标,用于衡量处理器的性能。MIPS表示在一秒钟内能够执行的百万条指令数,因此MIPS值越高,表示处理器在单位时间内执行的指令越多,性能越高。

MIPS: 百万条指令每秒(Millions of Instructions Per Second)

不考虑:计算机之间ISA的差异、指令之间的复杂性差异。

\textrm{MIPS}=\frac{\textrm{Instruation count}}{\textrm{Execution time}\times 10^6}

=\frac{\textrm{Instruation count}}{\frac{\textrm{Instruation count}\times CPI}{\textrm{Clock Rate}}\times 10^6}=\frac{\textrm{Clock Rate}}{CPI\times 10^6}

(在一个特定的 CPU 上,不同的程序的 CPI 是不同的)

然而,需要注意的是,MIPS并不是唯一的性能指标,它只关注处理器执行指令的速度,而忽略了其他因素,如处理器的微架构、流水线深度、缓存层次结构、并行度等对性能的影响。因此,在实际应用中,综合考虑多个性能指标,如 IPC(Instructions Per Cycle)、CPI(Cycles Per Instruction)、时钟频率、功耗等,可以更全面地评估处理器的性能。

📌 [ 笔者 ]   王亦优
📃 [ 更新 ]   2022.3.
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

📜 参考资料 

C++reference[EB/OL]. []. http://www.cplusplus.com/reference/.

Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .

百度百科[EB/OL]. []. https://baike.baidu.com/.

比特科技. Linux[EB/OL]. 2021[2021.8.31 xi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/442437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vs2022下配置zxing cpp环境

生成zxing 下载zxing,zxing-cpp-master https://github.com/zxing-cpp/zxing-cpp Cmake生成项目,点Generate,把OpenCV_DIR修改了,NameValue没有报红就点Generate。然后点Open Project打开项目。 打开项目后,右击解决…

赋值法写基础解系中解向量

赋值法写基础解系中解向量 (一)背景引入 通常解方程组时,将系数矩阵化为行阶梯型,进而可化为行最简型 (说一嘴:行最简型是指阶梯口元素全是1,该1所在列全其余全为0;广义行阶梯的阶梯…

maven作用讲解---以及怎么配置阿里的maven镜像

目录 Maven介绍 传统的java项目的结构和maven的对比 传统 Maven的项目 如何配置阿里 maven 2. 修改 Maven介绍 传统的java项目的结构和maven的对比 传统 Maven的项目 如何配置阿里 maven (1) 把 D:\program\JavaIDEA 2020.2\plugins\maven\lib\maven3\conf\settings.xml…

DNS服务

DNS服务 使用背景 在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域…

锐捷常用命令

所有交换机和无线控制器开启SSH服务,用户名密码分别为admin、admin1234;密码为明文类型,特权密码为admin 以S5为例: S5(config)#enable service ssh-server S5(config)#username admin password admin123 S5(config)#line vty 0 4 S5(co…

【C++ 十】STL基本概念、STL六大组件、STL容器、STL算法、STL迭代器

STL 的诞生、STL 基本概念、STL 六大组件、STL 容器、STL 算法、STL 迭代器 文章目录 STL 的诞生、STL 基本概念、STL 六大组件、STL 容器、STL 算法、STL 迭代器前言1 STL 的诞生2 STL 基本概念3 STL 六大组件4 STL 中容器、算法、迭代器5 容器算法迭代器初识5.1 vector 存放内…

vue2数据响应式原理(4) 递归侦测对象所有属性,解密vue响应式对象__ob__是干什么的

我们上文写的这个方法 并不能很好的侦测对象所有的属性 或者说 不能比较简介的侦测所有属性 在实际业务中 对象里面套对象 也不是什么很少见的事 例如这样 这种 我们用上一种方法 就很麻烦了 所以 我们需要了解新的方法 要完成完整的属性监听 我们就需要一个工具类 这个类的…

js+css实现简单的弹框动画

效果图 只是一个简单的演示demo,但是可以后面可以优化样式啥的 刚开始元素的display为none,然后,为了给元素展示时添加一个动画,首先要添加样式类名show,让它覆盖display:none,变得可见。然后,添…

Day951.认知负载 -遗留系统现代化实战

认知负载 Hi,我是阿昌,今天学习记录的是关于认知负载的内容。 一、怎样理解认知负载? 作为开发人员,不管是不是工作在遗留系统上,一定面临过来自业务方或项目经理的灵魂拷问: 为什么这个需求这么简单&…

车载网络 - Autosar网络管理 - 跳转状态

四、Autosar网络管理跳转状态 网络模式对应报文状态 Autosar网络管理报文各个状态对应的网络管理报文和应用报文的发送和接收状态。 网络模式 网络管理报文 应用报文 收发类型 发送报文 接收报文 发送报文 接收报文 总线睡眠模式(BSM) No Yes No NA 准备总线睡眠模…

探索Whisper语音识别

问题一:python多版本切换 背景:有了anaconda环境 还有一个c盘的不知道什么东西 我准备下载一个python3.9.9 去官网 然后安装,安装之前一定要把原来的python卸载干净。 3.9.9安装不上,我用3.10 切换的话,就是去环境…

总结828

学习目标: 4月(复习完高数18讲内容,背诵21篇短文,熟词僻义300词基础词) 学习内容: 暴力英语:回环诵读之前的文章,背150个单词,背《冰与火之歌》-守夜人誓词 高等数学&…

《Effective C++》读书笔记(二):构造/析构/赋值运算(条款05~条款12)

目录 1. 条款05:了解C默默编写并调用哪些函数 2. 条款06:若不想使用编译器自动生成的函数,就该明确拒绝 3. 条款07:为多态基类virtual析构函数 4.条款08:别让异常逃离析构函数 5.条款09:绝不在构造和析…

Vue CLI 服务

使用命令 在一个 Vue CLI 项目中,vue/cli-service 安装了一个名为 vue-cli-service 的命令。你可以在 npm scripts 中以 vue-cli-service、或者从终端中以 ./node_modules/.bin/vue-cli-service 访问这个命令。 这是你使用默认 preset 的项目的 package.json&…

2023红明谷杯部分WP

0x00 签到 一直点就能得到flag 0x01 Dreamer 拿到题感觉有点儿懵 先下发靶机看一眼 梦想家CMS,好嘛,我直接一手查找官网 直接一手演示中心碰运气 哎嘿嘿,运气不错进去了,突然想起之前有位大佬写的关于Dreamer CMS的代码审…

【Linux网络设置】

目录 一、查看网络接口信息1.1、查看所有活动的网络接口信息1.2、查看指定网络接口信息 二、查看主机名称2.1、hostname命令2.2、永久设置主机名 三、查看路由表条目route命令 四、查看网络连接情况4.1、netstat命令4.2、ss命令 五、测试网络连接ping命令 6、跟踪数据包tracerr…

CorelDRAW2023最新版本配置及新功能介绍

从简单的线框到令人称叹的水平,使用CorelDRAW Graphics Suite 2023开始您的设计之旅:一套完整的专业图形设计应用程序,用于矢量插图、布局、照片编辑等。CorelDRAW平面设计软件通常也被叫做CDR,CDR广泛应用于排版印刷、矢量图形编…

关于电脑出厂时间查询工具的构思

在做一个单位的计算机盘点、管理的时候,很容易遇见需要知道电脑的采购时间,或者出厂时间。这个信息能够帮助管理人员决定电脑是否该按定期报废制度进行报废或更换。 目前为止,作者接触过的各类电脑,没有看到过哪台电脑有专门的一…

windows系统中安装目标检测平台detectron2

更多内容,欢迎访问老五笔记 detectron2是Facebook研发并开源的目标检测平台,包含了大量业内最具代表性的目标检测、图像分割、关键点检测算法等。Detectron2基于新版的Pytorch进行更新,包含了更大的灵活性与扩展性。​ 笔者将在本文中介绍如…

IS220UCSAH1A利用电子和空穴两种载流子导电的,所以叫做双极型电路

IS220UCSAH1A利用电子和空穴两种载流子导电的,所以叫做双极型电路 美国的通用电气公司(General Electric Company,以下简称 GE)想要称霸整个工业互联网,但却失败了。为什么呢? 多年来,GE 一直在…