Digital signal processing algorithms typically require a large number of mathematical operations to be performed quickly and repetitively on a set of data. Signals (perhaps from audio or video sensors) are constantly converted from analog to digital, manipulated digitally, and then converted again to analog form, as diagrammed below. Many DSP applications have constraints on latency; that is, for the system to work, the DSP operation must be completed within some fixed time, and deferred (or batch) processing is not viable.
A simple digital processing system
Most general-purpose microprocessors and operating systems can execute DSP algorithms successfully, but are not suitable for use in portable devices such as mobile phones and PDAs because of power supply and space constraints. A specialized digital signal processor, however, will tend to provide a lower-cost solution, with better performance, lower latency, and no requirements for specialized cooling or large batteries.
The architecture of a digital signal processor is optimized specifically for digital signal processing. Most also support some of the features as an applications processor or microcontroller, since signal processing is rarely the only task of a system. Some useful features for optimizing DSP algorithms are outlined below.
[edit] Architecture
By the standards of general purpose processors, DSP instruction sets are often highly irregular. One implication for software architecture is that hand-optimized assembly is commonly packaged into libraries for re-use, instead of relying on unusually advanced compiler technologies to handle essential algorithms.
Hardware features visible through DSP instruction sets commonly include:
• Hardware modulo addressing, allowing circular buffers to be implemented without having to constantly test for wrapping.
• A memory architecture designed for streaming data, using DMA extensively and
References: 1. ^ Yovits, Marshall C. (1993). Advances in computers. 37. Academic Press. pp. 105–107. http://books.google.com.sg/books?id=vL-bB7GALAwC&pg=PA105. 2. ^ Liptak, Béla G. (2006). Instrument Engineers ' Handbook: Process control and optimization. 2. CRC Press. pp. 11–12. http://books.google.com/books?id=TxKynbyaIAMC&pg=PA11.