Previous | Next --- Slide 28 of 60
Back to Lecture Thumbnails
evs

I'm a little confused about how this hardware is different from a regular CPU with different instructions. Is the only difference that DSPS have special fetching and decoding Units? How does this speedup execution?

leo

Kunle mentions that DSPs can be used for certain algorithms - are there special properties an algorithm needs to make use of a DSP?

Also, why can't a compiler be configured to generate instructions for the DSP rather than x86 or ARM? Are DSP instructions so complex that a compiler cannot easily create them from higher-level languages?

parthiv

@leo The algorithms that Kunle mentioned, FIR (Finite Impulse Response) filters and the FFT (Fast Fourier Transform) are some of the foundational algorithms in digital signal processing. Perhaps the two most important algorithms for DSP. FIR filters are in essence a convolution so they are an application of multiply-accumulate which I am guessing DSP hardware is extremely efficient at. Implementations of FFT can also depend heavily on multiply-accumulate performance so having hardware optimized for that is quite beneficial. At the end of the day, DSP hardware could be quite useful in a phone for tasks like noise cancellation for the mic or converting accelerometer/gyro measurements into the orientation of the phone.

One of the interesting things I found w.r.t. your second point about a compiler being able to generate DSP instructions: it seems that a lot of important DSP algorithms are packaged as hand-written assembly routines since using the hand-written, highly-optimized routines is easier than creating a compiler that can generate the most efficient code. When you're talking about real-time stuff, saving microseconds probably helps.

Please log in to leave a comment.