《计算机组成与设计》 读书笔记1 ——性能

时间:2024-04-12 15:49:07

计算机组成与设计

本篇博客为 阅读《计算机组成与设计 硬件/软件接口》戴维 A 帕特森 约翰 L.亨尼斯 著 时所记录的笔记,部分内容直接摘自原书。

性能

性能的定义

性能的好坏并不是绝对的,而是相对于用户的需求而言。 如果用户需要的是运行速度更快的计算机,那对程序执行时间更少的计算机好,如果用户需要运行的是一个数据中心,分析大量的数据,那么吞吐率更大的计算机性能更好。 总而言之性能是相对于用户的需求而言

响应时间

响应时间也叫执行时间,是计算机完成某任务所需的总时间,包括硬盘访问,内存访问,I/O活动,操作系统开销和CPU执行时间等。

吞吐率

吞吐率也叫带宽,性能的另一种度量参数,表示单位时间内完成的任务数量。

主要考虑响应时间时的性能表示

如果只看响应时间,为使性能最大化,我们自然希望响应时间或执行时间最小化。所以对于某个计算机,性能的表达式为:
性能x=1/执行时间
《计算机组成与设计》 读书笔记1 ——性能
当我们说计算机X是计算机Y的n倍快时,其实是指:
《计算机组成与设计》 读书笔记1 ——性能

性能的度量

此处用时间来度量计算机的性能,即执行时间,完成某一项任务所花费的时间,需要时间最少的计算机最快。 一般以秒为单位

CPU执行时间

简称CPU时间,表示在CPU上花费的时间,而不包括等待I/O或运行其他程序的时间。
还可以分为用户CPU时间系统CPU时间
《计算机组成与设计》 读书笔记1 ——性能
通常的,当提及系统性能时表示的是空载系统的响应时间,体积CPU性能时,表示的CPU时间。

时钟周期

对于计算机设计者来说,他们需要考虑如何度量计算机硬件完成基本功能的速度。 而几乎所有计算机都是用时钟来驱动硬件中发生的各种事件,所以时钟间隔的时间称为 时钟周期, 时钟周期的倒数称为时钟频率
《计算机组成与设计》 读书笔记1 ——性能

CPU性能及其因素

我们在考虑CPU性能时通常针对的是CPU执行时间,但是影响CPU执行时间的因素很多,最基本的就是时钟周期数时钟周期时间。 如何将 这三者联系起来是关键,公式如下:
《计算机组成与设计》 读书笔记1 ——性能
从公式可以清晰的看出,如何设计者要提高性能,减少CPU执行时间,有两种选择,一个是增加CPU的时钟周期数,一个是增加时钟周期时间或减小时钟频率。

但影响CPU执行时间的并非只有这两个因素,还有很多,但这两个最基本。

例题:某程序在一台时钟频率为2GHz的计算机A上运行需要10秒。现在将设计一台计算机B,希望将运行时间缩短为6秒。计算机的设计者采用的方法是提高时钟频率,但这会影响CPU其余部分的设计,使计算机B运行该程序时需要相当于计算机A的1. 2倍的时钟周期数。那么计算机设计者应该将时钟频率提高到多少
《计算机组成与设计》 读书笔记1 ——性能

指令的性能

在计算机的实际运行过程中,运行的实际上是一条一条的指令,所以执行时间一定跟指令数有关,考虑指令数,执行时间就等于执行的指令数乘以执行每条指令的平均时间,这是非常好理解的。
一个程序需要的时钟周期数可写为:

CPU时钟周期数=程序的指令数 X 每条指令的平均时钟周期数。

执行每条指令所需的平均时钟周期数的平均值称为CPI。
《计算机组成与设计》 读书笔记1 ——性能
CPI提供了比较相同指令集的情况下不同实现方式执行快慢的方法。
看下面这道例题:
《计算机组成与设计》 读书笔记1 ——性能
这题中要比较的是哪台计算机的执行速度更快,即比较哪台计算机执行时间最小,根据公式
一个程序的CPU执行时间 = 一个程序的CPU时钟周期数x时钟周期时间
可知需要先求出CPU时钟周期数,时钟周期时间已知。而CPU时钟周期数的公式为
CPU时钟周期数=程序的指令数 X 每条指令的平均时钟周期数。
对于相同的指令集I,代入公式即可比较。

经典的CPU性能公式

到目前为止,我们已经知道CPU性能跟 指令数每条指令的平均时钟周期数(CPI)时钟周期时间 有关,通过上面公式很容易推导出:
《计算机组成与设计》 读书笔记1 ——性能
此处划重点:

性能的分量 测量单位
程序的CPU执行时间 程序执行的执行时间,以秒为单位
指令数 程序执行的指令数目
指令的平均执行的时钟周期(CPI) 每条指令的平均执行的时钟周期数
时钟的周期时间 每个时钟周期的长度,以秒为单位

表格中的概念要牢记。 并且正确理解这个公式:
《计算机组成与设计》 读书笔记1 ——性能
记住,唯一能被完全可靠测量的计算机性能指标是时间。 用户能够最直观感受到的也是时间,所以执行时间的快慢决定了用户的体验,要提高性能,就是减少执行时间,改变指令数,CPI,时钟周期时间,最终都是为了减少执行时间。

上述例子表明,只用一种因素(如指令数)去评价性能是危险的当比较两台计算机时,
必须考虑全部三个因素,它们组合起来才能确定执行时间。
如果某个因素相同( 如上例中的时
钟频率),则必须考虑不同的因素才能确定性能的优劣。因为CPI随着指令组合( instruction
mix)而变化,所以必须比较指令的条数和CPU,即使时钟频率是相同的。

下面来看下程序性能程序的性能与算法、 编程语言、编译程序、体系结构以及实际的硬件有的关系。下表概括了这些成分是如何影响CPU性能公式中的各种因素的。

《计算机组成与设计》 读书笔记1 ——性能

收益递减规律

在改进计算机的某个方面时期望总性能的提高并不会与改进大小成正比。意即随着每一次对性能的改进,所能提高的性能会逐渐变小,最后达到一个峰值。对性能越高的计算机,要提高性能需要做出的工作量就更大,而且可能收益甚微。
《计算机组成与设计》 读书笔记1 ——性能