Hi! The P90 performs much better than the Etrax because it has a math coprocessor built-in, whereas the Etrax does not. So while the P90 can do a floating point calculation in hardware, using only a handful of instructions, the Etrax has to use integer-based instructions, which of course takes a lot more time. It *may* be possible to make it slightly faster, but it is probably quite optimized already.
If you need to do heavy floating point math, you might want to take a look at a board that has an ARM uC from Cirrus logic, because some of these have a floating point coprocessor built into the uC. These uC's can run a full linux implementation as well. Also, you should consider using integer math instead of floating point, where possible. For example, if you want to store the number 123.456789 you can use floting point, but you can also scale it up 1 000 000 times and store it as 123456789 in an integer variable, as long as you remember the real position of the decimal point. I've used this method successfully by storing, for example, a voltage in mV instead of volts. This might not work on your application though. But if it does, it can save you a lot of cpu-time. Regards Tobias --- In [email protected], "Jono Woodhouse" <[EMAIL PROTECTED]> wrote: > > Does anybody know how to get Floating Point operations faster in the > FoxBoard, or if there are some tweaks to increase the performance of > libm (math library)? > > I've compiled nbench (http://www.tux.org/~mayer/linux/bmark.html) for > the fox and these are the results compared to a benchmark Pentium 90 > (With 256KB L2 Cache): > MEMORY INDEX : 0.152 > INTEGER INDEX : 0.203 > FLOATING-POINT INDEX: 0.002 > > > As you can see the floating point is only performing 2% as good as the > P90. The Memory Index (15%) and the Integer Maths Index (20%) I can > live with, but we have a project in mind that will be using Floating > Point operations quite a bit. > > Cheers > Jono > www.capefox.com > www.capesoft.com >
