CoreMark介绍

本文为CoreMark记录。

CoreMark介绍

CoreMark是用来衡量嵌入式系统中中心处理单元(CPU,或叫做微控制器MCU)性能的标准。该标准于2009年由EEMBC组织的Shay Gla-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。目前CoreMark已经成为测量与比较各类处理器性能的业界标准基准测试。CoreMark得分越高,意味着性能更高

CoreMark源码

CoreMark软件使用C语言编写,是一个免费使用,易于移植的基准测试程序。CoreMark的源码可以在CoreMark的官网或者官方GitHub代码仓库获取。

CoreMark测试内容

CoreMark的模拟工作负载主要包含几种常用的算法:

  • 矩阵操作,模拟常用的运算;
  • 链表操作,模拟指针的各种用法;
  • 状态机操作,模拟程序分支运行操作;
  • 循环冗余校验(CRC),嵌入式系统常见的功能。

CoreMark测试结果说明

CoreMark输出结果为Iterations/Sec,这和CPU主频相关,所以但我们评判一个处理器的性能时,会将其对齐到每MHZ,即实际我们看的分数是 Iterations/Sec /MHZ,即最后需要的结果是跑分/(CPU时钟频率/1MHZ)--coremark/Mhz

  • 对比整体性能使用Iterations/Sec
  • 对比不同CPU性能使用coremark/Mhz

例如国民N32H787 Coretex-M7内核600MHZ主频下,TCM运行coremark跑分是2595.175186,那么每MHZ结果是:2595.175186/(600/1) = 4.325 coremark/Mhz。Coretex-M7 ARM官方给出的coremark为5.01,有差距是因为coremark测试还和编译器、编译优化配置、运行的内存频率速率、cache等等有关。

2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 16256128
Total time (secs): 13.871896
Iterations/Sec   : 2595.175186
Iterations       : 36000
Compiler version : GCC
Compiler flags   : High Speed; No size constraints
Memory location  : STACK
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0xcc42
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 2595.175186 / GCC High Speed; No size constraints
 / STACK
MSI->PLL, 600M=====================CM7:CoreMark_ITCM_DTCM(Nov 12 2025 - 14:17:52)=====================

各类处理器CoreMark参考

EEMBC 认证实验室提供了各类不同型号的CPU、MCU CoreMark分数参考,这些数据经过了EEMBC 认证实验室认证,网址如下https://www.eembc.org/coremark/scores.php

posted @ 2025-11-13 18:03  沐多  阅读(23)  评论(0)    收藏  举报