Texas Instruments recently introduced what it calls "the first floating-point digital signal controller (DSC)." (The term DSC is relatively new in the industry; it refers to a low-cost embedded processor that combines DSP and microcontroller characteristics.) The new chip family, the TMS320F2833x, is based on the company's mature 32-bit fixed-point microcontroller architecture, the 'C28x, but adds a floating-point unit that can perform (among other operations) one 32x32-bit floating-point multiplication per cycle.
Initially the family will include three members. The "F" in the name indicates that the chips contain flash memory (up to 512 KB); on-chip peripherals include a 6-channel DMA controller, a 16- or 18-channel PWM controller, and a 12-bit A/D converter. 'F2833x chips are expected to sample in September 2007, with prices ranging from $13 - $20 in 1K quantities. The chips target digital motor control, power supply, sensor, and automotive applications. The block diagram for an 'F2833x family member is shown in Figure 1.
Figure 1: TMS320F28335 block diagram. Diagram courtesy of TI.
The new chips operate at up to 150 MHz, which is the same maximum clock rate as the fixed-point 'C28x. TI claims, however, that the new chips offer a 50% performance boost over the 'C28x. The reasoning here is that the increased dynamic range associated with using a floating-point data type reduces the number of instructions needed to implement many algorithms. For example, with floating-point data, there's no need to perform signal scaling, and no need to check for overflows.
The actual speedup will vary depending on the specific application, but TI's 50% figure is a reasonable one—and that's a significant bump up. Plus, using a floating-point processor has another big advantage: it means that algorithms originally developed using floating-point data (on a PC using MATLAB, say) won't need to be converted to fixed-point implementations in the final product. As we've written about before, the float-to-fixed conversion process is not simply a matter of changing data types; it typically requires a complete overhaul of the software and tends to be time-consuming and error prone.
So if floating-point is all that, why aren't all DSCs using it?
In signal processing applications, floating-point processors are much less common than fixed-point processors because their relatively complex arithmetic circuitry tends to make them more expensive, more power-hungry, and less speedy than fixed-point chips. Motor control applications typically don't need particularly fast processors, but they do tend to be highly cost- and (sometimes) power-sensitive. For these reasons, floating-point processors are quite rare in this domain. Furthermore, for cost, speed, and power reasons, many low-cost fixed-point microcontrollers and DSCs use 16-bit data. The fixed-point 'C28x is an exception; it uses 32-bit data. This difference made it relatively straightforward for TI to add 32-bit floating-point capabilities. As you'd expect, the 'F2833x is binary compatible with the 'C28x, though of course 'C28x software that's run on the 'F2833x as-is won't see any performance improvement.
Competitors to the 'F2833x include DSCs and microcontrollers from Microchip, Freescale, and Infineon. The closest match is Infineon's TC11xx, a 150 MHz, 32-bit microcontroller with a floating-point unit, based on the TriCore architecture. (This chip is probably the true first floating-point DSC, though Infineon doesn't refer to it as such.) Microchip's dsPIC DSC family and Freescale's DSP5685x DSC family both use 16-bit fixed-point data and have lower top clock speeds than the 'F2833x (40 MHz and 120 MHz, respectively). But they're also a lot cheaper—both start at around $2-3 in 10K quantities. (These chips are comparable to TI's 16-bit, 40 MHz 'C24x microcontroller, which has similar pricing.)
The 'F2833x DSC is not nearly as fast as mainstream floating-point DSPs, such as TI's own 350 MHz, dual-MAC 'C67x and Analog Devices' 400 MHz, dual-MAC SHARC family. It's not necessarily cheaper, either—in 10K quantities, a low-end 'C67x costs about $5.75, while a low-end SHARC costs about $5. But these processors don't provide the on-chip integration needed for motor control and other target DSC applications—and their architectures are significantly more complicated and harder to program.
TI's combination of floating-point data type and control-oriented peripherals will likely appeal to many system developers who need a processor that lies between the low-end fixed-point DSCs and the higher-end, more-complex floating-point DSPs. Though the $13-$20 price tag will rule these chips out for very cost-sensitive apps, we expect there to be plenty of others that will want to use that additional horsepower to create more efficient motors, add new features, or conserve energy.
Add new comment