Tell me more ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

Like this one, which does 1.49 DMIPS/MHz. Even with pipelining there's still only 1 execute stage per cycle isn't it?

share|improve this question
The only typical superscalar thing in this microcontroller segment is MADD - multiply & add in single cycle. Although, it doesn't help much in Drystone. – BarsMonster Aug 21 '12 at 7:49
DSPs are microcontrollers, and they can have have hardware implementations of Fourier transformation, array multiplication, etc. Do they also count? Does this measurement apply here? Even very old DPSs could perform 8 multiplications on 16 different registers in one instruction. – vsz Aug 21 '12 at 11:35
5  
There are lies, damn lies, and benchmarks... – David Kessner Aug 21 '12 at 12:40

2 Answers

up vote 17 down vote accepted

DMIPS and MIPS are not the same. DMIPS stands for "Dhrystone MIPS", and it's a standard for comparing different microcontrollers/microprocessors' performances across different instruction sets. The standard is not so new anymore(*), so what the reference processor could do at 1 DMIPS/MHz in 1 second may take a more advanced controller 670 ms at the same clock speed, just because it will do some actions in 1 instruction whereas the other controller may need 2 instructions, or an instruction requiring more machine cycles.

A 16-bit architecture, for instance, will typically have a better Dhrystone performance than an 8-bit architecture, and a 32-bit, like the one you're referring to, even more.


(*) m.Alin refers to the more recent CoreMark benchmark. Note that this is written in C, so actually you're also including the compiler's performance in the result (just like Dhrystone, BTW).

share|improve this answer
But the Dhrystone results also depend on the compiler (it's also written in C), right? From Wikipedia: Major portions of Dhrystone are susceptible to a compiler’s ability to optimize the work away; thus it is more a compiler benchmark then a hardware benchmark – m.Alin Aug 21 '12 at 10:16
1  
@m.Alin - Sure, I didn't want to suggest otherwise. I'll clarify my answer. Thanks for the feedback. – stevenvh Aug 21 '12 at 10:18

DMIPS is a relative measurement rather than absolute. As opposed to MIPS, it actually measures how quickly the uC can do something useful instead of just how fast it executes instructions.

Like any benchmark it has it's limitations, but a simple way of looking at it is how quickly it can complete the benchmark code compared to a VAX 11/780 (a 1 MIPS machine)
So for example if your uC completes the benchmark 100 times faster than a VAX 11/780, you have a 100DMIPS machine. If it runs at 100MHz, then it's rated at 1 DMIPS/MHz.

Note that the advertised DMIPS is usually unattainable in normal use, especially on large uCs with flash speed, prefetch, wait times/misses, etc. Here is a good discussion of the PIC32 DMIPS performance. This link has some Dhrystone code for microcontrollers.

share|improve this answer
Your wikipedia link says that the Drystone standard is already 28 years old. Do you know if there are more up-to-date performance measuring tools? Thanks. – Federico Russo Aug 21 '12 at 8:48
3  
@FedericoRusso CoreMark – m.Alin Aug 21 '12 at 8:59
Thanks @m.Alin. – Federico Russo Aug 21 '12 at 9:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.