Historically, DSP processors have been the default choice for signal processing applications because they could efficiently process classical signal processing functions like FIR filters and FFTs. But those capabilities aren’t enough any more. Signal processing applications still include demanding real-time filtering and frequency transforms, but these algorithms are increasingly combined with processing that is fundamentally different.
For example, algebraic signal processing computations are now more finely interleaved with decision-making code. Instead of chugging along on big FFTs, today’s DSP applications require the processor to make frequent switches in program flow. For example, in video compression algorithms, the outcome of one fairly quick computation often dictates what the algorithm will do next. For DSP processors with deep pipelines, frequent branches can cause big performance hits; most DSP processors don’t incorporate branch prediction, which is used by many general-purpose processors to reduce the cost of branches.
Memory access patterns have also changed. DSP processor architects traditionally have shunned caches because they aren’t effective for the streaming data access patterns common in signal processing code, and because they introduce non-deterministic execution times—which are bad news for applications with hard real-time constraints. Instead, DSP processors have relied on sophisticated DMA controllers to pre-fetch data under software control. But as signal processing algorithms become more complex and incorporate more decision making, data access patterns have become less predictable. As a result, caches have become increasingly common in DSP processors—reducing the distinction between DSPs and general-purpose CPUs.
Today’s signal processing applications also show much greater variation in data types. Traditionally, most DSP processors provided strong support for 16-bit fixed-point data, and little support for anything else. This made sense for telecom applications, which primarily processed speech and baseband signals. Today’s applications, however, may process many types of signals—not just speech or baseband, but also image, video, and audio, for example. And increasing use of compression and error-correction algorithms means that signal processing applications are just as likely to process 1-bit and 12-bit values as they are to use 16-bit data. Unfortunately, most DSP processors aren’t equipped to process a wide variety of data formats.
The changes in signal processing applications are significant. DSP processor vendors must meet these new demands while still addressing the old ones—or risk being marginalized in their own markets.
Add new comment