本文整理了arm cortexA 系列的CPU的相關信息,以便在芯片選型時提供幫助。
Cortex-A發布時間
Cortex-A 支持的位數及架構
Cortex-A 系列的芯片
ARMv7-A內核的比較
從DMIPS/MHz角度的cpu性能比較
A5(1.57) < A7(1.9) < A8(2.0) < A9(2.5) < A12(3.0) < A15(3.5~4.1) < A17(4.0)
ARMv8-A內核的比較
從DMIPS/MHz角度的cpu性能比較
A35(1.78) < A53(2.24) < A57(4.6) < A72(4.72) < A73(~6.35) A55,A75,A76暫時未知
A55比A53 15%功耗提升,18%性能提升;
A75比A73 16-48%性能提升;
A76 提升了25%的整數運算能力,提升了35%的浮點運算能力,內存帶寬提升了90%相對A75,性能上是A73的兩倍。
big.LITTLE
big.LITTLE是一種節能省耗技術,最高性能的ARM CPU核心與最高效的ARM CPU核心相結合,以更低的功耗提供最好的工作性能,最快的處理任務速度。
那什么時候使用什么核?由kernel的scheduler實現決定,包括三種方式:集群切換(Clustered switching),CPU遷移(CPU migration),HMP(Heterogeneous multi-processing)
集群切換,只能同時全開大核或同時全開小核,最高性能 = 單個大核性能 X 大核個數;實現最簡單,切換靈活度低。
例如,A57和A53構成big.LITTLE,調度器一次只能全開4cores的A57 或者 全開4 cores 的A53
CPU遷移,每個大核與每個小核構成虛擬核心,每個虛擬核心同時只允許打開一個大核或一個小核,最高性能 = 單個大核性能 X 大核個數;切換靈活度中等。
例如,A15與A7組成big.LITTLE,每一組A15和A7看作一個虛擬核心,每個虛擬核心中的core在某個時刻只有一個運行。
HMP,所有核心可同時全開,最高性能 = 單個大核性能 X 大核個數 + 單個小核性能 X 小核個數;實現起來最復雜,切換靈活度高。
簡要的列出支持big.LITTLE的CPU:
A7 LITTLE
A15 big
A17 big
A32 LITTLE
A35 LITTLE
A53 big/LITTLE
A57 big
A72 big
A55 big/LITTLE
A75 big
A76 big
A73 big
DMIPS/MHz
MIPS
MIPS(Million Instruction Per Second)表示每秒執行多少百萬條指令,如10MIPS,表示每秒一千萬條指令。
MIPS/MHz
表示CPU在每MHz的運行速度下可以執行多少個MIPS,如10MIPS/MHz,表示如果CPU運行在1MHz的頻率下,每秒可執行一千萬條指令,如果 CPU 運行在 5MHz 的頻率下,每秒可執行五千萬條指令。
超標量運行
以前計算機大部分都是"單線程"工作模式,就是說在1MHz工作頻率下(1秒鍾震盪1M次周期,而且取指、譯碼、執行操作只能串行運行),計算機1秒鍾處理的指令不會超過1M條,因為每秒中它只能計算1M次而很多指令不是1次就能完成的,而現在的計算機都使用了多級流水線結構,取指、譯碼、執行……可以並行運行,就是說在1個計算周期(次)計算機能夠執行超過1條以上的指令,這樣,在1MHz的運行頻率下,它就能得到超過1MIPS的執行效率了。
DMPS/MHz
DMIPS是“Dhrystone MIPS”的縮寫
DMIPS是一個測量CPU運行一個叫Dhrystone(整數運算)的測試程序時表現出來的相對性能高低的一個單位(很多場合人們也習慣用MIPS作為這個性能指標的單位)。
因為基於程序的測試容易受到惡意優化的干擾,並且DMIPS指標值的發布不受任何機構的監督,所以使用DMIPS進行評估時要慎重。例如對Dhrystone測試程序進行不同的編譯處理,在同一個處理器上運行也可以得出差別很大的結果。
DMIPS的簡單推算公式:
DMIPS = DMIPS/MHz * 主頻(MHz) * 核心數
例如,RK3288是Quad-core ARM Cortex-A17, up to 1.8 GHz,那么,DMIPS=4x1800x4=28800