CoreMark 1.0 介紹
CoreMark 是由 EEMBC(Embedded Microprocessor Benchmark Consortium)組織于 2009 年推出的一款用于衡量嵌入式系統 CPU 或 MCU 性能的標準基準測試工具。它旨在替代陳舊的 Dhrystone 標準(Dhrystone 容易受到各種libc不同庫的影響),成為工業界衡量處理器性能的新標準。
測試內容:
CoreMark 的代碼使用 C 語言編寫,包含以下幾種算法:
- 列表操作:用于測試處理器的內存訪問和數據結構操作能力。
- 矩陣運算:測試處理器的數學計算能力。
- 狀態機:評估處理器在復雜邏輯控制中的表現。
- CRC 校驗:用于驗證數據完整性。
這些算法綜合評估處理器在不同場景下的性能。
性能衡量: - CoreMark 的得分越高,表示處理器的性能越好。
- 它的設計方式盡量減少了內存對測試結果的影響,從而更準確地反映處理器本身的性能。
適用性:
CoreMark 適用于各種嵌入式系統和微控制器,廣泛用于硬件設計、性能評估和優化。
我們以兆訊MH2103為例,采用CoreMark 1.0來評估其性能:
有關MH2103為可以參考文章:MH2103芯片資源介紹
第一次采用MDK5,AC5編譯器編譯,得出成績是:2.56CoreMark/MHz(CoreMark1.0)
這個成績視乎并不理想,AC5已經在2017年被ARM官方拋棄(停止維護),轉而支持AC6,那我們也用AC編譯器來跑一跑看看效果如何?
測試工程切換到AC6編譯器,同樣的代碼,AC6開優化-Ofast+LTO,工程編譯選項配置如下:
看看結果:
cormark1.0 跑分635.93,換算一下約為635.93/216=2.94CoreMark/MHz(CoreMark1.0),是不是提升非常明顯?
參考arm官方的理想數據(不考慮Flash讀寫延遲,純MCU內核運行),雖然還有一點差距,但是考慮到時間運行代碼是在Flash內部,這個成績已經非常不錯了。
但是對比兩次運行結果,AC6相較于AC5編譯器,成績提升約15%,還是非常明顯,所以建議后續開發的時候,切換到AC6編譯器來,以最大化的發揮該息芯片的性能。
兆訊MCU支持ARM-2D
視頻為arm2d運行在MH2103的實際效果,320x240的分辨率,各種圓弧繪制,效果,圖像旋轉等都有較好的效果,充分說明了這顆高主頻(216M,cortex-M3內核)的芯片在現實應用方面的強勁能力。