Signal processing applications are becoming more complicated, and so are the processors that run them. As a result, application developers rely on compilers and other tools more heavily than ever. This has made tools a decisive factor in processor-selection decisions. Indeed, differences in tools are a central consideration when choosing between a digital signal processor (DSP) and a general-purpose processor (GPP).
DSP vendors often take a go-it-alone approach when it comes to tools: In many cases, the only tool set available for a DSP is the vendor’s internally developed tool set. In contrast, GPP vendors often pay two or more third-party tool vendors to develop tool sets. And if the GPP is popular enough, tool providers will develop tools on their own initiative. As a result, developers using typical GPPs can choose from a wide selection of tools.
Although it expands users’ choices, paying a third party vendor to develop tools has some disadvantages. The processor vendor has a uniquely deep understanding of the processor. The processor vendor is also likely to have a superior understanding of its target applications and its customers’ needs. Both types of knowledge enable the processor vendor to optimize the tools in ways that third-party vendors would not, and to include useful features that third-party vendors would not. This is particularly true for DSP vendors, whose processors, target applications, and customers are typically specialized in some way.
On the other hand, there is little room for differentiation in generic tool components such as the compiler front-end, and processor vendors usually have no special expertise in these components. For such components, third-party offerings are often superior—and tool providers can often create these components faster than the processor vendor can.
Given these tradeoffs, it is not surprising that a few processor vendors are now mixing elements from these two approaches. In this hybrid approach, the processor vendor develops the tool components that benefit most from processor- and application-specific optimizations, such as the compiler back-end. Meanwhile, the third-party vendor focuses on the more generic components like the compiler front-end.
As tools become more important, processor vendors targeting signal-processing applications must take a hard look at their tool-development strategies. Ideally, their tools should offer the specialized features traditionally associated with DSP tools and the broad range of options traditionally associated with GPP tools. For many vendors, the best way to achieve both goals is to use a hybrid approach.