计算机组成原理 - 性能和功耗
什么是性能?我们一般这样定义:
1 | 性能 = 1 / 响应时间 |
除了响应时间,吞吐率也是衡量性能的一个指标。一般通过 CPU 的多核,或者水平增加机器来提示吞吐率,从而提高单位时间的任务处理速度。
CPU 时钟
Linux 下有一个 time 命令,可统计程序在 CPU 上到底花了多少时间。
1 | ➜ ~ time seq 100000 | wc -l |
total 即整个过程花的时间(Wall Clock Time)
user 即 cpu 运行程序,用户态的时间
system 即 cpu 运行程序,内核态的时间
由于 CPU 执行过程中不停的切换,可能中途去执行别的程序了,或者读取网络或磁盘数据,导致 CPU 时钟并不能准确反映程序的执行时间。
我们可以进一步拆解程序 CPU 执行时间。
1 | 程序的 CPU 执行时间 = CPU 时钟周期数 × 时钟周期时间 |
时钟周期时间,即 CPU 主频,比如我的电脑为 2.8GHz,可以先粗浅地认为,CPU 在 1 秒时间内,可以执行的简单指令的数量是 2.8G 条。这个数值越大,表示 CPU 性能越强。
CPU 时钟周期数,即 指令数 x 每条指令的平均时钟周期数(CPI)。
以上公式,继续拆解
1 | 程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time |
所以性能优化,主要三个地方
- 硬件方面,提高 CPU 主频
- 减少每条指令的平均时钟周期数(CPI)
- 减少指令数
功耗
CPU 主频是不是越高越好呢?
当然不是,提升主频,会增加功耗,带来耗电和散热问题。Intel i9 CPU 的主频配置也只不过是 5GHz 而已。
一旦功耗增加过多,CPU 散热跟不上,这时就需要降低电压,5GHz 主频的 Intel i9,CPU 的电压只有 1V 左右。
Title: 计算机组成原理 - 性能和功耗
Author: mjd507
Date: 2020-10-09
Last Update: 2024-01-27
Blog Link: https://mjd507.github.io/2020/10/09/Computer-Organization-2/
Copyright Declaration: This station is mainly used to sort out incomprehensible knowledge. I have not fully mastered most of the content. Please refer carefully.