Jump to content

Coremark: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m clean up, removed: ® (3) using AWB (7159)
pr prod at CoreMark
Line 1: Line 1:
#redirect [[EEMBC#CoreMark]]{{R from merge}}
{{orphan|date=December 2009}}
{{R from spelling}}

'''CoreMark''' is a free [[benchmark (computing)|benchmark]] application that targets the [[central processing unit]] (CPU) core. It was developed by Shay Gal-On and released as an industry standard by [[EEMBC]] in 2009. CoreMark's primary goals are simplicity and providing a method for testing only a processor’s core features. Each iteration of CoreMark performs the following algorithms: list processing (find and sort), [[Matrix (mathematics)]] manipulation (common matrix operations), [[state machine]] (determine if an input stream contains valid numbers), and [[Cyclic redundancy check|CRC]].

==Goals==
# Freely available [[C (programming language)]] source code.
#* Enable easy adoption.
# Small (no more than 2K data size and no more than 16K code size).
#* Enable use on any processor, including 8b microcontrollers.
# Easily Portable C code (big/small endian, 8b/16b/32b/64b processors).
#* Portability is a key issue for embedded devices.
# Self checking.
#* Help porting to new devices.
# Use real algorithms.
#* While the benchmark is synthetic like any benchmark, using real algorithms helps make it more relevant.
# Every operation must derive from a value that is not available at compile time, and result in a value that must be computed.
#* [[Compilers]] are getting smarter, but the target of the benchmark is to test the processor. Since writing portable code in [[assembly code]] is not feasible, CoreMark aims to at least make sure compilers cannot remove parts of the benchmark by pre-computing the results at compile time, or avoiding computation due to results not being used.
# All code used within the timed portion of the benchmark is part of the benchmark itself (no [[Library (computing)]] calls).
#* To make sure results are comparable.
# Establish specific run and reporting rules, and verify those in the code where possible.

==Internal structure==
Each iteration of CoreMark performs the following algorithms:

* List processing (find and sort)
* Matrix manipulation (common matrix operations)
* State machine (determine if an input stream contains valid numbers)
* CRC (used in multiple stages to keep a unique value alive and force computation to happen during run time)

==CoreMark vs. Dhrystone==
CoreMark draws on the strengths that made Dhrystone so resilient - it is small, portable, easy to understand and free.
Unlike Dhrystone, CoreMark has specific run and reporting rules, and was designed to avoid the well understood issues that have been cited with [[Dhrystone]].

==Results==
CoreMark results can be found on the CoreMark web site, and on processor data sheets.
Results are in the following format:

'''CoreMark 1.0 : N / C [/ P] [/ M]'''
* N Number of iterations per second with seeds 0,0,0x66,size=2000)
* C Compiler version and flags
* P Parameters such as data and code allocation specifics
* M - Type of [[Parallel algorithm]] execution (if used) and number of contexts

'''For example: ''' CoreMark 1.0 : 128 / GCC 4.1.2 -O2 -fprofile-use / Heap in TCRAM / FORK:2

== References ==
[http://www.newelectronics.co.uk/article/18634/EEMBC-launches-MIPS-busting-benchmark.aspx EEMBC launches MIPS busting benchmark], New Electronics magazine, Graham Pitcher, August 2009.<br />
[http://community.edc.intel.com/t5/Hardware-Blog/Roving-Reporter-Benchmarks-An-inside-look-at-CoreMark/ba-p/1300 Roving Reporter: Benchmarks: An inside look at CoreMark], Intel Embedded Design Center -
Hardware Blog, Don Dingee, OpenSystems Media, by special arrangement with Intel ECA, August 2009.<br />
[http://www.arm.com/news/25152.html ARM Announces Support For EEMBC CoreMark Benchmark], ARM Holdings plc, June 2009.<br />
[http://www.elektroniknet.de/home/news/n/d/coremark-open-source-benchmark-von-eembc/ CoreMark - Open-Source-Benchmark von EEMBC], elektronik net.de, Andrea Gillhuber, February 2009.

==External links==
* [http://coremark.org CoreMark homepage]
* [http://groups.google.com/group/coremark User group for CoreMark]
*[http://www.eembc.org/ Official EEMBC website]

[[Category:Embedded systems]]
[[Category:Computer benchmarks]]
[[Category:Computer benchmarks]]

Revision as of 00:15, 14 December 2010

Redirect to:

  • From a merge: This is a redirect from a page that was merged into another page. This redirect was kept in order to preserve the edit history of this page after its content was merged into the content of the target page. Please do not remove the tag that generates this text (unless the need to recreate content on this page has been demonstrated) or delete this page.