[sdiy] dsPIC33 question..
Eric Brombaugh
ebrombaugh1 at cox.net
Thu Oct 2 22:47:52 CEST 2008
karl dalen wrote:
> Well, you are most likely right but it depends what we
> meant by high performance DSP work? At Texas C6xxx performance?
Generally, yes. When I think 'high-performance DSP' I'm thinking along
the lines of ADI SHARC, TI C6X, Freescale DSP56k, etc. Anything with >
16-bit data and true MACs. By those standards, the dsPIC doesn't qualify
as high-performance. It does qualify as inexpensive, easy to use and
good enough for most stuff I do.
> Cortex is a bit faster then ARM7 its also easyier to program.
> If one wants fast short DSP routines one can place then in RAM
> and execute from there but yeat again as you say there are
> limitations, ther are many issues, but as Anti H once mentioned
> there are pleny of power in a ARM7 etc to do a complete
> 4 OSC + filter wavetable synth, so it all depends on what
> we meant by high DSP performance.!
Cortex is a different beast from ARM7 and isn't the comparison you
initially made. If you want to go back and state that "Cortex has way
more DSP power than a dsPIC" then we can start a new discussion. :)
That said, you'd also need to define which version of Cortex you're
comparing to. The Cortex M3 used in many of the embedded processors
available today doesn't have the same power as the Cortex A8 that's
found in the TI OMAP processors. Trying to compare a dsPIC to a Cortex
A8 would be about as useful as comparing a 6502 to a Pentium.
>> When it comes to DSP however they're seriously lacking in areas
>> where the dsPIC has better resources.
>
> Please, im interessted to hear your finds?
Let's look at a typical DSP operation - the FIR filter. This involves
repeatedly grabbing a new data value from a buffer, multiplying it by a
coefficient and adding the result to an accumulator. In an ARM7, each of
these operations (compute data address, load data, compute coefficient
address, load coefficient, multiply, add) requires a separate
instruction, as well as some overall looping control, for a total of
about 8 - 10 instructions per iteration. In a dsPIC, all of these
operations can be handled by _one_ instruction in a hardware repeat loop
that executes at the full processor clock rate. To give the same
performance in this (admittedly specialized) operation, the ARM7 would
need a clock rate of > 300MHz to out-do a dsPIC running at 40MHz.
Eric
More information about the Synth-diy
mailing list