2015-05-04 04:14 PM
Hi,
Let’s start with this example :
Let’s suppose I work with an STM32F407VGT6 microcontrollers which his System core clock is set at his maximum frequency which is 168MHZ.
According to the ARM website the CORTEX-M4 assembly instruction
MOV Rd, <op2>
takes one cycle to be executed. That’s mean this instruction is executed in 5.95ns??? is that correct ??
here’s how I did :
168MHZ = 168 000 000 pulses / secondeSo 1 pulses takes 1/168 000 000 = 5.95ns to be executed
thx.2015-05-04 04:34 PM
Basically that's how it works, things get a little murkier with slower buses, write buffers, FLASH memory and caches, etc.
2015-05-04 05:18 PM
thx for your answer.
If we take into account the frequency buses, flash latency, float point unit... etc this will give us the DMIPS value ?? right ?2015-05-04 05:30 PM
http://en.wikipedia.org/wiki/Dhrystone
suggests a synthetic benchmark containing no floating point math, as I recall. I guess if you worked your way through all the instructions in the benchmark, accounting for all the cycles, and contributions of the system you could come up with a number.