Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Processing Speed


  • Please log in to reply
4 replies to this topic

#1 Afshin

Afshin

    Member

  • Members
  • PipPip
  • 18 posts
  • LocationCanada

Posted 02 November 2012 - 08:50 PM

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?

#2 pounce

pounce

    Member

  • Members
  • PipPip
  • 12 posts

Posted 03 November 2012 - 12:13 AM

Is your 100msec entirely cpu bound or are you doing some IO etc?

#3 ErikN

ErikN

    Advanced Member

  • Members
  • PipPipPip
  • 119 posts
  • LocationNew York, NY

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.

#4 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

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

#5 Afshin

Afshin

    Member

  • Members
  • PipPip
  • 18 posts
  • LocationCanada

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

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.