说CoreMark之前,先说说它的前辈,当年业界很有名但却饱受争议的Dhrystone benchmark,可能这个名字一提出来好多人摸不到头脑,根本就没听过这个(这个正常,因为这个基准都是OEM厂商内部测试用的,咱没听过很正常,不要自卑哦,哈哈),不过提到DMIPS/MHz这个肯定大家伙都知道了吧,呵呵,没错,这个参数就是通过在CPU上运行Dhrystone benchmark得到的,也就是厂商用来吹嘘自己的CPU核有多牛的底气了。可能还有人不是很明白这个Dhrystone,那我就引用网上搜集过来的一个说法给大家解释一下:
Dhrystone 是诞生在上个世纪80年代的一个用来测试CPU性能的测试用例(benchmark),把这个benchmark在CPU上运行,然后看看每秒能跑多少次 这个程序,然后除以1757,从而计算出DMIPS的值,至于为啥要除以1757呢,这是因为这个是拿VAX 11/780(DEC当年的一款经典计算机)来做基准参考的,VAX 11/780每秒能执行1757次的Dhrystone benchmark。所以拿Cortex-M4核号称1.25DMIPS/MHz为例,它说明Cortex-M4这个IP每秒能跑1757*1.25*Freq=42196.25xfreq 次的Dhrystone程序,如果Freq为150Mhz的话,那么每秒能跑的Dhrystone程序的次数为4392.5*150=329437.5。
但是Dhrystone之所以饱受争议是因为它常常被半导体厂商滥用了,使它变的不是那么客观了,因为Dhrystone反映的是系统整体的性能,这就意味着它不单单是受CPU的性能影响还包括相应配套软件的性能,一些厂商拿来非常优化的OS或者Library来运行Dhrystone,自然得分就相应的高些了,所以就意味着一些不公平性。另外由于Dhrystone benchmark本身太小,因此能衡量的东西就太少, 反应不出CPU全面的性能。所以仍然是有需求就会有产出,呵呵,EEMBC(嵌入式微处理器基准协会)推出了一个免费的类似于Dhrystone的benchmark,称为CoreMark,也就是本篇的主角了,呼。。。说了这么多才说到正点,哈哈。
CoreMark是一项有趣和有用的基准测试,它的目标就是要测试处理器核心性能。CoreMark能分析并为处理器管线架构和效率评分,通过执行三个主要任务来测试常用运算的执行。重要的是,CoreMark测试的设计方式,能让处理器不受内存的影响。所以目前CoreMark已迅速成为量测与比较处理器性能的业界标准基准测试。CoreMark数字越高,意味着更高的性能,大家可以尝试的去看一下内核的性能参数评估,在能效那一栏,现在常常是伴随着CoreMark评分和Dhtystone评分的,即CoreMark/MHz和DMIPS/MHz。下图就是我从ARM官网上找到的Cortex-M4的技术规格,它的能效评分见蓝色划线处:
另外,如果大家想去瞅瞅其他CPU型号的Coremark评分或者想亲手测测自己手中CPU核的能效评分,可以到Coremark官网去瞧瞧,这是链接地址打开之后我们在首页即可以看到目前常见的一些CPU的coremark评分了,另外也可以从官网上下载coremark(需要注册)测试代码,根据说明自己亲测手中的片子,
本篇由于是简介性质的文章,所以前面文字叙述的有些多了,估计好多人耐不下心去看了,呵呵,那就索性先看看这两个图吧,相信会引起你继续看下去的兴趣的,还是很好玩的。由于时间的问题我没有亲测coremark代码下载,不知道还有哪些具体流程,所以本篇暂时权且当作扩展知识篇来看,过段时间等我自己有空了会尝试着下载Coremark代码测试下手中Kinetis的性能的,哈哈,我都有点迫不及待了。