[Tinyos-devel] One should make limited use of the "%" operator
Philip Levis
pal at cs.stanford.edu
Thu Jun 25 12:44:24 PDT 2009
On Jun 25, 2009, at 12:06 PM, Eric Decker wrote:
>
>
> On Thu, Jun 25, 2009 at 11:54 AM, Philip Levis <pal at cs.stanford.edu>
> wrote:
>
> On Jun 25, 2009, at 11:42 AM, Vlado Handziski wrote:
>
> Speaking about optimization, and looking at your example snippet:
> For the msp430 platforms, it is always much more efficient to use
> word size array indices. The code is a lot simpler and some nasty
> gcc bugs can be avoided more easy.
>
> But this is platform independent code. The cost ratio of an
> inequality and jump compared to a hardware modulo is much less than
> a software modulo and an inequality and jump.
>
> Phil
>
> I'm not following the analysis because I'm not sure what is meant by
> hardware vs. software modulo. % on the MSP430 is implemented by a
> library routine that takes a significant number of instructions.
> Whereas the comparsion, jump, assignment take much fewer.
By "software modulo" I mean "a library routine." By "hardware modulo"
I mean an ALU that computes modulo, e.g., as the iMote2 has. The point
is that making an iMote2 do a compare and jump is not a big overhead
over a hardware modulo, while making an msp430 (or other MCUs) do a
software modulo is a big overhead over a compare and jump. But
starting to set the width of variables in platform-independent code
due to some particulars of a popular MCU's compiler (as Vlado
suggested) seems like a bad idea.
Phil
More information about the Tinyos-devel
mailing list