Customizable processors were all the rage at this year’s Embedded Processor Forum. Vendors from Tensilica to Toshiba touted customizable processors as the ultimate solution for DSP applications from voice-over-IP to MPEG-4 video compression. In the view of these companies, processors with fixed instruction sets are forever bound to be jacks-of-all-trades, but masters of none. A better approach, they argue, is a flexible instruction set that designers can fine-tune to do one thing well.
These vendors have a point: in most signal-processing applications, a few key functions occupy a huge chunk of the processing time. These critical functions are usually fairly simple, yet they often map poorly to standard instruction sets. Hence, minor instruction-set tweaks can result in enormous payoffs in speed, memory use, and energy efficiency. As was demonstrated at the Forum, adding a few custom instructions can improve a processor’s performance on key functions by tens or even hundreds of times.
Unfortunately, this promised land of super-efficient hardware lies on the other side a foreboding development desert. Customizing a processor requires development of a custom chip, and the cost and difficultly of developing custom chips has been rising steadily, moving this option out of the reach of many product developers. Another cause for concern is the fact that customizable processors need customizable development tools—tools that must be rebuilt whenever the user adds new instructions. While neither of these problems is insurmountable, they add layers of complexity and opportunities for things to go wrong.
Perhaps the greatest weakness of customizable processors is their very specialization. The individuality of each implementation hinders third-party software support and code reuse. Another key trade-off arises from the need to lock in instruction-set customizations early in the product design process. If the application mix changes late in the design process—or after production begins—the benefits of prior customization may be lost.
Despite these concerns, the potential performance of customizable processors will continue to draw adventurous designers. True, customizable processors force product designers to make tough trade-offs, but so do industry-standard fixed instruction-set architectures. After all, making trade-offs is the essence of engineering.
Add new comment