Back in the early days of embedded digital signal processing software, floating-point processors were expensive. As a result, they were reserved for a few lucky engineers doing prototyping work and developing equipment for low-volume, price-insensitive applications. Everyone else used fixed-point processors. In addition to being cheaper, fixed-point processors were faster and more energy-efficient. But fixed-point processors also require more work: Algorithm developers usually write floating-point code when developing algorithms on their workstations. The process of migrating an algorithm from using floating-point math to using fixed-point–while still getting the desired results–is often complex and time-consuming.
Many of us who’ve been around the industry a while still think this way: floating-point processors are only for low-volume, cost-insensitive applications. But times have changed. And I think it won’t be long before floating-point processors will be the norm for the vast majority of embedded DSP applications.
Several strong trends support this prediction. For one thing, the price difference between comparable fixed- and floating-point processors is shrinking, both in relative and absolute terms. For example, Analog Devices offers members of its floating-point SHARC DSP processor at prices as low as $6. And several chip companies have stated their intentions to field low-cost microcontrollers based on ARM’s Cortex-M4 core, which can include an optional floating-point unit.
A second important trend in favor of the widespread adoption of floating-point processors has to do with the process of converting a set of algorithms from floating-point to fixed-point math. It sounds simple, but for applications that use sophisticated algorithms, migrating from floating-point to fixed-point math is a complex undertaking. In some cases, the effort required to perform this conversion can equal the effort required to develop the algorithm in the first place. And the migration process requires a specialized set of skills that appears to be becoming rarer. Many design teams lack the time or skills required for this work. As applications and algorithms become more complex, while design teams remain roughly the same size, or even shrink, the incentive to avoid dealing with fixed-point math will increase.
Even in long-established DSP application domains populated by highly skilled engineers, floating-point is starting to become the norm. For example, earlier this year Texas Instruments made the first public disclosures of a new multi-core SoC targeting wireless base stations. Although TI did not give details of the new DSP processor core that will target this SoC, TI did disclose that the core will have heavy-duty floating-point capabilities. TI has seen the writing on the wall: In wireless base stations, as in many other applications, increased algorithm complexity (for example, matrix inversions used in multiple-antenna applications) coupled with intense time-to-market pressure make floating-point processors more and more valuable.
Another factor at play here is the increasing use of general-purpose CPUs for digital signal processing workloads. As digital signal processing workloads increasingly mix with other kinds of workloads, and as general-purpose CPUs offer stronger DSP capabilities, system designers more often have the option of foregoing a DSP processor and doing their DSP work on a CPU. And today’s high-performance CPUs often have strong floating-point performance. (For example, Freescale recently announced that it is resurrecting the AltiVec SIMD capabilities that it had dropped from its high-end CPUs.) Since high-end general-purpose processors increasingly compete with high-end DSPs, high-end DSPs will be at a disadvantage if they lack strong floating-point capabilities.
Ten years from now, will fixed-point processors still be used in DSP applications? Sure, for a few applications where there are extreme requirements for energy efficiency or cost (wireless headsets come to mind), a fixed-point processor will still be the right choice. But I believe that the vast majority of DSP applications will be running on floating-point processors before long.
Add new comment