Generally Speaking, if running an application on netduino plus with 48Mhz processor takes 100 msec to run (assuming all operations are internal and cpu related), if we change the board to a Netduino Go with a 168Mhz processor, how much can we expect the new processor decrease the processing (running) time?
Processing Speed
Started by Afshin, Nov 02 2012 08:50 PM
4 replies to this topic
#1
Posted 02 November 2012 - 08:50 PM
#2
Posted 03 November 2012 - 12:13 AM
Is your 100msec entirely cpu bound or are you doing some IO etc?
#3
Posted 03 November 2012 - 06:13 AM
There are more differences than raw clock speed.
The Atmel chip on the Netduino Plus executes code in Thumb mode (for code space optimization). In this way the DMIPS for that chip is 0.9/MHz.
I believe the Go can use Thumb2 code which is more efficient for execution while still having a smaller code footprint. I believe the DMIPS rating is 1.25/MHz.
If the Go is still running Thumb code then it will have the same DMIPS as the Netduino and in this case it's a simple matter of increased clock speed.
If your program is purely computational (CPU bound) then the time to execute should decrease directly proportional to the instruction set efficiency and speed increase. Exceptions would be any situation you're waiting on threads to switch since I believe the time slices in the NETMF are set at 20ms. If you're not using all the time you are given for your time slice, you could be wasting cycles and you won't see as much of a speed increase.
Bottom line is it's really hard to figure out performance difference from a pure math perspective. You'll really just need to benchmark your application.
- Afshin likes this
#4
Posted 03 November 2012 - 11:41 AM
The average speed boost of Netduino Go (STM32F4 @ 168MHz) versus Netduino (SAM7X @ 48MHz) seems to be around 4x for applications.
Technical speed comparison
SAM7X runs both THUMB (THUMB16) and ARM code. When in THUMB mode it runs at 0.7 DMIPS/MHz (33.6 million instructions per second); when in ARM mode it runs at 0.9 DMIPS/MHz (43.2 million instructions per second).
STM32F4 runs in THUMB2 mode, at 1.25 DMIPS/MHz (210.0 million instructions per second).
Summary
So you may see up to 625% the speed with Netduino Go, but 400% is a good general rule of thumb.
That said...as Erik mentioned, it depends on what you're doing in your application. If you're reading/writing serial data you may not see much difference. If you're doing a bunch of computations, it'll probably be about 4 times as fast or so.
Chris
Technical speed comparison
SAM7X runs both THUMB (THUMB16) and ARM code. When in THUMB mode it runs at 0.7 DMIPS/MHz (33.6 million instructions per second); when in ARM mode it runs at 0.9 DMIPS/MHz (43.2 million instructions per second).
STM32F4 runs in THUMB2 mode, at 1.25 DMIPS/MHz (210.0 million instructions per second).
Summary
So you may see up to 625% the speed with Netduino Go, but 400% is a good general rule of thumb.
That said...as Erik mentioned, it depends on what you're doing in your application. If you're reading/writing serial data you may not see much difference. If you're doing a bunch of computations, it'll probably be about 4 times as fast or so.
Chris
- Afshin likes this
#5
Posted 05 November 2012 - 05:00 PM
Thanks Erik and Chris for your answers. They helped me to understand it better.
Pounce, I assumed cpu bound processes.
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users