【计算机基础Ep15】黑皮书:《计算机组成与设计——硬件/软件接口》内容梳理(六)
第一章 计算机抽象及相关技术
1.6性能
1.6.1性能的定义
要素:
响应时间(response time)——
定义:也叫执行时间(execution time),是计算机完成某任务所需的总时间,包括硬盘访问、内存访问、I/O活动、操作系统开销和CPU执行时间等;
适用范围:个人计算机用户会对降低响应时间感兴趣;
吞吐率——
定义:也叫做带宽(band-width),性能的另一种度量参数,表示单位时间内完成的任务数量;
适用范围:服务器更关注吞吐量。
关系:往往相互影响。
相对性能: 公式——

——X的执行速度是Y的n倍。
1.6.2性能的度量
衡量标准:时间,需要时间最少的计算机是最快的。
时间分类:
挂钟时间(wall clock time):也叫响应时间(response time)、运行时间(elapsed time),表示完成某项任务所需的总时间,包括了磁盘访问、内存访问、I/O活动和操作系统开销等一切时间;
CPU执行时间(CPU execution time):简称为CPU时间,只表示在CPU上花费的时间,而不包括等待I/O或运行其他程序的时间;
注意:用户所感受到的是程序的运行时间,而不是CPU时间。
定义:
系统性能(system performance):空载系统的响应时间;
CPU性能(CPU performance):用户CPU时间;
本章重点放在CPU性能上;
时钟周期数(clock cycle,或称滴答数、时间滴答数、时钟数、周期数)——
背景:计算机用户更关心时间,计算机设计者考虑如何度量计算机硬件完成基本功能的速度;
含义:计算机一个时钟周期的时间,通常是指处理器时钟,并在固定频率下运行;
时钟频率:时钟周期的倒数。
1.6.3CPU性能及其度量因素
将用户关注的性能指标(时间)与设计者关注性能指标(时钟周期数)联系起来,公式——

——硬件设计中减少程序执行所需的CPU时钟周期数或缩短时钟周期长度,就能改进性能。
1.6.4指令性能
编译器明确生成了要执行的指令,且计算机必须通过执行指令来运行程序,因此执行时间必然依赖于程序中的指令数,公式——

——指令平均时钟周期数(clock cycle per instruction):表示每条指令所需的时钟周期平均数,缩写为CPI,根据所完成任务的不同,不同的指令需要的时间可能不同,CPI是程序的所有指令所用时钟周期的平均数,在指令系统不变的情况下,一个程序执行的指令数是不变的。
1.6.5经典的CPU性能公式
用指令数(程序执行所需要的指令总数)、CPI(指令平均时钟周期数)和时钟周期长度来写出基本的性能公式——

——将三个影响性能的因素进行了分离,可以比较不同的实现方案或评估某个设计的替代方案。
注意:时间是唯一对计算机性能进行测量的完整而可靠的指标。
测量方式:
CPU的执行时间:运行程序;
时钟周期长度:计算机说明书;
指令数:
体系结构仿真器;
处理器中的硬件计数器。
结论:只用一个因素去评价性能是危险的——
比较两台计算机时必须考虑全部三个因素,它们组合起来才能确定执行时间;
如果某个因素相同,则必须考虑不同的因素才能确定性能的优劣;
因为CPI根据指令分布的不同而变化,所以即使时钟频率是相同的,也必须比较指令总数和CPI——指令分布(instruction mix):在一个或多个程序中,对指令的动态使用频度的评价指标。
影响性能的软硬件组分:
算法:指令数、CPI;
编程语言:指令数、CPI;
编译器:指令数、CPI;
指令系统体系结构:指令数、时钟频率、CPI。