CoreMark是用在嵌入式系统中用来测量CPU性能的基准程序。该标准于2009年由EEMBC(Embedded Microprocessor Benchmark Consortium 嵌入式微处理器基准协会)组织的Shay Gal-On提出,并且试图将其发展成为工业标准,从而代替陈旧的Dhrystone标准。代码使用C语言写成,包含如下的运算法则:列举运算(查找与排序),矩阵处理(基本矩阵运算)和状态机(用来确定输入流中是否包含有效数字),还有CRC(Cyclic redundancy check 循环冗余校验)。
CoreMark问题
CRC算法提供了双重的功能:它模拟了在嵌入式应用中经常见到的工作、它确保了CoreMark基准的操作准确,因为它提供了一项必不可少的确认机制。具体地说,为了保证操作准确,在链接表中添加了16位的CRC。
为了确保编译器在编译时不会预先计算结果,程序的每次计算均会即时得到一项数据,而此数据不会再编译时被得到。另外,在计时中,所有的代码均为基准自身的代码,而不是调用库中的代码。
CoreMark与Dhrystone
CoreMark与Dhrystone相似,这两款软件均为免费软件,而且由于其足够小,能够适用于大多数处理器,其中包括微控制器。CoreMark避免了编译器对得分的影响,并且CoreMark用的是实际的算法,而Dhrystone所用的为合成的算法。另外,在Dhrystone计时过程中应用到了库调用,而且库调用占用了大量的时间。对于所使用的库不同时,很难比较他们的得分,而CoreMark在计时过程中没有库调用。CoreMark建立了运行基准程序的规则和结果显示的规则。
结论
在CoreMark网站中寻找到CoreMark的结果和处理器的性能表。其结果由以下几部分构成:
-
在以0,0,0x66,size=2000这四项数据为种子时每秒钟迭代CoreMark的次数
-
编译器版本和标志
-
数据和代码配置参数
-
并行算法执行的类型和所处环境
本文翻译自维基百科CoreMark词条。