CPU性能及其度量因素
我们在使用计算机,或者编写程序时,都希望通过一定的参数去度量计算机或者程序的性能。时间常用来度量计算机性能。完成任务所需时间越少,计算机越快。这是我们期望看到的。时间是唯一能够被完全可靠测量的计算机性能指标。
时钟频率、时钟周期、时钟周期数
我们都知道计算机中一个重要的性能指标:主频,又叫时钟频率,单位一般是Hz。若一台计算机的主频是4.0GHz,则表示一秒可以完成4.0G个时钟周期。
时钟周期长度是时钟频率的倒数。
时钟周期是计算机中最基本的、最小的时间单位。单位一般是秒。计算机的时钟频率是4.0GHz,则时钟周期是
1
4
×
1
0
9
=
2.5
×
1
0
−
10
s
\frac1 {4 \times 10^9}=2.5 \times 10^{-10}s
4×1091=2.5×10−10s
通俗来讲,时钟周期数是完成所有指令所需时钟周期的个数。这个时间是离散的,不连续的时间间隔(这一点很好理解,因为通常计算机完成一个程序的指令时中间会穿插其他程序的指令)。
程
序
的
C
P
U
执
行
时
间
=
程
序
的
C
P
U
时
钟
周
期
数
时
钟
频
率
程序的CPU执行时间 = \frac {程序的CPU时钟周期数} {时钟频率}
程序的CPU执行时间=时钟频率程序的CPU时钟周期数
该公式表明,硬件设计者可以通过减少程序执行时所需的CPU时钟周期数,或减少时钟周期长度来提高性能。
CPI
我们知道,计算机是通过执行指令来运行程序的,因此执行时间依赖于程序中的指令数。
CPI(Clock cycles Per Instruction),每条指令的时钟周期数。
表示某个程序或程序片段执行时,平均每条指令所需的指令周期数。我们由CPI可以得到CPU时钟周期数的计算公式:
C
P
U
时
钟
周
期
数
=
程
序
的
指
令
数
×
C
P
I
CPU时钟周期数 = 程序的指令数 \times CPI
CPU时钟周期数=程序的指令数×CPI
常见的CPU性能公式
我们将
程
序
的
C
P
U
执
行
时
间
=
程
序
的
C
P
U
时
钟
周
期
数
时
钟
频
率
程序的CPU执行时间 = \frac {程序的CPU时钟周期数} {时钟频率}
程序的CPU执行时间=时钟频率程序的CPU时钟周期数
和
C
P
U
时
钟
周
期
数
=
程
序
的
指
令
数
×
C
P
I
CPU时钟周期数 = 程序的指令数 \times CPI
CPU时钟周期数=程序的指令数×CPI
结合起来,得到CPU时间的另外一个计算公式:
C
P
U
时
间
=
指
令
数
×
C
P
I
×
时
钟
周
期
长
度
CPU时间 = 指令数 \times CPI \times 时钟周期长度
CPU时间=指令数×CPI×时钟周期长度
再将时钟周期长度用时钟频率替换,得到公式:
C
P
U
时
间
=
指
令
数
×
C
P
I
时
钟
频
率
CPU时间 = \frac {指令数 \times CPI} {时钟频率}
CPU时间=时钟频率指令数×CPI