MIPS: Million Instructions executed Per Second
DMIPS: Dhrystone Million Instructions executed Per Second
MFLOPS: Million Floating-point Operations Per Second
MIPS,DMIPS,MFLOPS是常用的CPU性能评估标准。注意MIPS只适合评估标量机,而MFLOPS比较适用于衡量向量机的性能。
1. MIPS
每秒执行了多少百万条指令
2. DMIPS
D是Dhrystone的缩写,他表示了在Dhrystone这样一种测试方法下的MIPS,Dhrystone是一种整数运算测试程序。
用DMIPS来衡量CPU性能存在很大的缺陷。DMIPS并非字面上每秒百万条指令的意思,而是运行一个叫Dhrystone的基准程序时表现出来的相对性能高低的单位,很多场合人们也习惯用MIPS作为这个性能指标的单位。因为基于程序的测试容易受到恶意优化的干扰,并且DMIPS指标值的发布不受任何机构的监督,所以使用DMIPS进行评估时要慎重。
ARM一直采用比较保守的值作为CPU的DMIPS的标称值。DMIPS另外一个缺点是不能测量处理器的数字信号处理能力和Cache/MMU子系统的性能。因为Dhrystone测试程序不包含DSP表达式,只包含一些整型运算和字符串处理,并且测试程序偏小,几乎可以完整地放在Cache里面运行而无需与外部存储器进行交互。这样就难以反映处理器在一个真实系统中的真正性能。
DMIPS的计算方法:Dhrystone tries to represent the result more meaningfully than MIPS (million instructions per second), because MIPS cannot be used across different instruction sets (e.g. RISC vs. CISC) for the same computation requirement from users. Thus, the main score is just Dhrystone loops per second. Another common representation of the Dhrystone benchmark is the DMIPS - Dhrystone MIPS - obtained when the Dhrystone score is divided by 1,757 (the number of Dhrystones per second obtained on the VAX 11/780, nominally a 1 MIPS machine).
对于同一个计算程序,在不同的指令集(如CISC和RISC)的机器上所产生的指令数是不一样的,此时用MIPS来比较就失去意义了,而用DMIPS来比较就有意义。在同相同指令集的机器上所产生的指令数是一样(当然编译器和libc也是一样的情况下),用MIPS来比较就有意义。
3. MFLOPS
是一种基于浮点运算的CPU测试程序,当然,这种测试的结果也以 MFLOPS来加以表示,代表了CPU处理浮点运算的能力。
4. 总结
CPU性能评估采用综合测试程序,较流行的有Whetstone 和 Dhrystone 两种。Dhrystone主要用于测整数计算能力,计算单位就是DMIPS。采用Whetstone 主要用于测浮点计算能力,计算单位就是MFLOPS。