CPU性能计算
2、计算机系统设计的定量原理
1)只加快经常性事件的速度:使经常性事件的速度尽可能处理快,而对不经常发生处理得慢也不会对系统性能有太大影响。
2)Amdahl定律:系统中某一部件由于采用某种更快的执行方式后整个系统性能提高与这种执行方式的使用频率或总执行时间的比例有关。
Fe=(改进前可改进部分占用的时间)/(改进前整个任务的执行时间),即改进部分所占比例。
Se=(改进前改进部分的执行时间)/(改进后改进部分的执行时间),即改进部分的加速比
则:
1.:
Tn=To(1-Fe+Fe/Se)
其中,To为改进前的整个任务的执行时间
2.改进后的整个系统加速比为:
SP=To/Tn=1/[(1-Fe)+Fe/Se]
例1 假设将某系统的某一部件的处理度加快到10倍,但该部件的原处理时间仅为整个运行时间的40%,则采取加快措施后整个系统的性能提高多少?
解:由题意知:Fe=0.4,Se=10,根据Amdahl定律,SP=1/(0.6+0.4/10)=1/0.64=1.56.
Amdahl定律告诉我们:一项改进措施可以使整个系统的性能提高多少;为了改进性能价格比,如何合理分配系统资源.
例2 采用哪种实现技术来求浮点数平方根FPSQR 操作对系统的性能影响较大.假设FPSQR操作占整个程序执行时间的20%.一种使采用FPSQR硬件,使FPSQR操作的速度加快到10倍.另一种是使所有浮点数据指令的速度加快,使FP指令的速度加快到2倍,还假设FP指令占整个执行时间的50%.请比较这两种方案.
解:分别计算这两种设计方案所能得到的加速比:
SFPSQR=1/[(1-0.2)+0.2/10]=1/0.82=1.22
SFP=1/[(1-0.5)+0.5/2=1/0.75=1.33 -------更好
3) CPU性能公式
CPU的性能取决于三个要素:
①时钟频率f(或时钟周期t);
②每条指令所花的时钟周期数CPI;
③指令条数IC
一个程序所花的CPU时间(T)可以表示:
CPU时间(T)=CPU时钟周期数(CPI×IC)*时钟周期长(t)
每条指令的平均时钟周期数:
CPU时钟周期数=((CPIi*Ii )
CPU时间(T)=时钟周期长度*((CPIi*Ii )
CPI=((CPIi*Ii )/ IC=((CPIi*Ii /IC)
Ii是第i种指令的执行次数
Ii/IC是第i种指令所占比例
例3如果FP操作的比例为25%,FP操作的平均CPI=4.0,其它指令的平均CPI为1.33,FPSQR操作的比例为2%, FPSQR的CPI为20。假设有两种设计方案,公别把FPSQR操作的CPI和所有FP操作的CPI减为2。试利用CPU性能公式比较这两种设计方案哪一个更好(只改变CPI而时钟频率和指令条数保持不变)。
解:原系统的CPI=25%×4+75%×1.33=2
方案1(使FPSQR操作的CPI为2)系统
CPI=CPI原-2%×(20-2)=2-2%×18=1.64
方案2(提高所有FP指令的处理速度)系统
CPI=CPI原-25%×(4-2)=2-25%×2=1.5
我们也可以根据以下公式计算出方案2系统的CPI
CPI= 75%×1.33+25%×2=1.5
显然,提高所有FP指令处理速度的方案要比提高FPSQR处理速度的方案要好。
方案2的加速比=2/1.5= 1.33
例4假设这两台机器的指令系统中,执行条件转移指令需2个时钟周期,而其它指令只需1个时钟周期。
CPUA:采用一条比较指令来设置相应的条件码,由紧随其后的一条转移指令对此条件码进行测试,以确定是否进行转移。显然实现一次条件转移要执行比较和测试两条指令。条件转移指令占总执行指令条数的20%。由于每条转移指令都需要一条比较指令,所以比较指令也将占20%。
CPUB采用比较功能和判别是否实现转移功能合在一条指令的方法,这样实现一条件转移就只需一条指令就可以完成。由于CPUB在转移指令中包含了比较功能,因此它的时钟周期就比CPUA要慢25%。
现在要问,采用不同转移指令方案的CPUA和CPUB,那个工作速度会更快些?
解:CPIA=0.2×2+0.8×1=1.2
TCPUA=ICA×1.2×tA
CPUB转移指令为20%÷80%=25%
CPIB = 0.25×2+0.75×1=1.25
由于CPUB中没有比较指令,因此ICB = 0.8×ICA。
t B = 1.25tA
TCPUB = ICB×CPIB×tB