Re: 66MIPS 8bit microcontroller




"Mark Borgerson" <mborgerson@xxxxxxxxxxx> wrote in message news:MPG.211401ccee6b193c98a596@xxxxxxxxxxxxxxxxxxxxxxxxx
In article <M9sqi.3418$vi3.669@xxxxxxxxxxxxxxxxxxxx>,
Wilco_dot_Dijkstra@xxxxxxxxxxxx says...

"Everett M. Greene" <mojaveg@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:20070727.79EEEE8.7C0E@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
"Wilco Dijkstra" <Wilco_dot_Dijkstra@xxxxxxxxxxxx> writes:

http://www.tezzaron.com/OtherICs/Super_8051.htm

A software floating point implementation on this 8-bit core might take around
200 cycles on average for addition/multiply, so getting a factor 3 speedup
from the floating point hardware sounds feasible. Not very impressive indeed.

I think you'll find that float operations on an 8-bit micro are
going to require much more than 200 cycles. Addition will be of
the order of 1000 cycles and multiply/divide/sqrt nearer 3000.

The FP libraries I wrote for ARM take less than 30 cycles for float add/mul,
and divide takes 60. Yes 8-bitters are slow, but few are 50 times slower!

An 8-bit core will need about 4-5 times as many instructions, so as long as you
can use mostly 1 or 2 cycle instructions you can stay below 200 cycles. Without
a multiply instruction float mul will need up to 400 cycles. Float division can easily
be done within 500 cycles as it is as complex as multiply (Jonathan Kirwan wrote
a float divide for MSP taking 255 cycles).

Remember that the MSP430 series have 16-bit data registers. I would
expect the MSP430 floating point to take fewer cycles than a true
8-bit processor.

24-bit arithmetic takes 2 instructions on a 16-bit CPU and 3 on an 8-bit CPU, so
you'd expect fewer than 50% extra instructions. I used a factor of 2 to be safe, so
division within 500 cycles is easy, and 400 should be feasible on some 8-bit CPUs.

IIRC, cycle times on a floating multiply are dependent on the
mix of 1s and 0s in the operands, so the cycle times are not
fixed.

Cycle timings of few functions are fixed, that was why I was quoting worst case
numbers. Floating point has a large number of special cases, most of which are
much faster than the worst case.

Wilco


.



Relevant Pages