Current Issue
For the record 2/1/2012
MORE BLOG POSTS
EEMBC—the independent processor-benchmark organisation—has released its first item of “freeware”. Coremark is a benchmark that EEMBC’s President Markus Levy says will give a meaningful performance comparison between different processor cores and lowend microcontrollers.
EEMBC has developed a range of benchmarking tools that have focussed attention on different aspects of microprocessor performance, recently adding attributes such as power to a list of metrics that assess speed and throughput. Its strategy has been to establish a set of “typical” tasks—agreed upon amongst contributors who include processor vendors and users—that characterise a specifi c domain of operation. The organisation has then written benchmark code to exercise a processor using that set of tasks, yielding a performance metric. The code for these benchmarks has, up until now, been available to EEMBC member organisations or to subscribers under licence. As a vendor, you can evaluate your product using the benchmarks and can publish scores achieved under standard conditions; as a user, you can likewise compare different vendors’ products.
Now, with Coremark, Levy is seeking to displace the venerable Dhrystone benchmark as a rule-of-thumb guide to processor core performance. The key differentiators, Levy says, are that—unlike Dhrystone— Coremark runs “real” tasks; and, drawing on EEMBC’s experience with licensed code, it does so in a standardised fashion. Intended primarily for smaller MCUs, it does not exercise external memory access: Levy describes it as “a reliable, small benchmark that will [in the case of a more complex device] reside within the L1 cache. It takes up about 2kbytes; up until now, we have not had any EEMBC benchmarks that run on 8-bit machines.” He adds, “It is free, small and portable, and yields a single metric. Running it, a core does real work, whereas Dhrystone is now more a compiler benchmark.”
Coremark runs code that EEMBC structured to contain a realistic mixture of read/ write operations, integer operations, and control operations; it comprises computation tasks such as matrix manipulation to use MAC and math operations, linked-list manipulation to exercise the use of pointers, and state-machine operation to invoke a common use case of data-dependent branches. The code links the results from each module and carries out a further CRC (cyclicredundancy- check) computation. Only if the benchmark has been run under the prescribed standard conditions will the CRC give an output that validates the performance metric as one that you can use as a comparison. You can—perhaps to evaluate a processor in a way that is more meaningful for your own application—run the code with different seeds or starting conditions, but you will not then get the correct CRC. Levy says, “We do not claim that Coremark is typical of all applications, or even of any one application; but it does realistic work, in a defi ned environment, and that is a big step forward compared to anything that has been available [in open code] up to now.”
You can download the code —following registration—from the new www.coremark.org Web site, where there is also a discussion forum and a blog for users to exchange their experiences.
EEMBC, www.eembc.org.