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。