MIPS和CPI
1.MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。
存在的问题:
MIPS是指令执行的速率,规定了性能和执行时间成反比,越快的计算机具有越高的MIPS值。从表面看,MIPS既容易理解,又符合人的直觉。其实,用MIPS作为度量性能的指标存在三个问题。
首先,MIPS规定了指令执行的速率,但没有考虑指令的能力。我们没有办法用MIPS比较不同指令集的计算机,因为指令数肯定是不同的。
其次,在同一计算机上,不同的程序会有不同的MIPS,因而一台计算机不会只有一个MIPS值。例如,将执行时间用MIPS、CPI、时钟频率代入之后可得:
MIPS = 指令数/(执行时间 * 10^6) = 指令数 / (指令数 * CPI / 时钟频率 * 10^6) = 时钟频率 / (CPI * 10^6)
上图显示了SPEC2006在Intel Core i7上的CPI最大值和最小值是相差5倍的,MIPS也是如此。
最后一点,也是最重要的一点,如果一个新程序执行的指令数更多,但每条指令的执行速度更快,则MIPS的变化是性能无关的。
2.CPI(Clock cycle Per Instruction)表示执行某个程序的指令平均时钟周期数,可以用来衡量计算机运行速度。
CPI=TC/IC (IC[instruction counter]表示某个程序的所有指令的条数;TC表示执行某个程序所花费的时钟周期)
--------------------------------------------------------------------------------------------------来自百度百科