CPU Performance Index


CPU性能公式

CPU性能取决于三个要素

  • 时钟频率$f$(时钟周期$T=\frac{1}{f}$)(也就是CPU的主频)
  • 每条指令平均时钟周期数$CPI$
  • 指令条数$IC$

🤔 $f=4.1\mathrm{GHz}$,则该CPU每秒可以完成$4.1\times 10^9$个时钟周期

一个程序执行所需的CPU时间如下($N$为CPU时钟周期总数):

$$
t_{CPU}=\frac{N}{f}=NT
$$

如果一个程序的指令条数为$IC$,则每条指令的平均时钟周期数$CPI$有:

$$
CPI=\frac{N}{IC}
$$

因此一个程序的CPU时钟周期总数$N$可表示为:

$$
N=CPI\times IC=\sum{CPI_i\times I_i}
$$

其中$CPI_i$表示指令$i$的平均时钟周期数,$I_i$是指令$i$在程序中的条数。

因此CPU时间可表示为:
$$
t_{CPU}=NT=T\sum{CPI_i*I_i}
$$

$$
CPI=\frac{\sum{CPI_i\times I_i}}{IC}=\sum{CPI_i\times\frac{I_i}{IC}}
$$

其中$I_i/IC$表示指令$i$在程序中所占的比例(操作的比例)。

一道例题

例题:在一个程序中,如果浮点操作FP的比例为$25%$,FP的CPI为$4$,其他指令的CPI为$1.33$。浮点开平方根操作FPSQR比例为$2%$,FPSQR的CPI为$20$。如有两种方案,分别把FPSQR操作的CPI和所有FP操作的CPI均减至$2$,试利用CPU性能公式分析这两种方案的优劣

解:我们需要计算该程序的CPU时间,来分析该两种方案的优劣。

对于两个方案的$CPI$:

$$
CPI_0=\sum{CPI_i\times\frac{I_i}{IC}}=4\times0.25+1.33\times0.75=2 \\
CPI_1=\sum{CPI_i\times\frac{I_i}{IC}}=CPI_0-( CPI_{FPSQR0}-CPI_{FPSQR1})\times0.02=1.64 \\
CPI_2=\sum{CPI_i\times\frac{I_i}{IC}}=CPI_0-(CPI_{FP0}-CPI_{FP1})\times0.25=1.5
$$

又由于:

$$
t_{CPU}=T\sum{CPI_i\times I_i}=T\times IC\times CPI
$$

且对应于同一台计算机上的统一程序$T,IC$是相同的。

因此有$t_{CPU1}>t_{CPU2}$,即后者是更优策略。

CPU性能优化策略

根据$CPU$性能指标可知,有3种优化策略:

  • 提升时钟频率(依赖于更先进的工艺)
  • 降低CPI(即对应精简指令集计算机RISC)
  • 减少指令的条数(即对应复杂指令集计算机CISC)

Author: Luminolt
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Luminolt !
  TOC