VISVESVARAYA TECHNOLOGICAL UNIVERSITY, BELGAUM
TITLE A Seminar Report On HOW DIGITAL SIGNAL PROCESSORS ARE DIFFERENT FROM MICROPROCESSORS By Aamodh.K
(USN:4JC09EC001), Abhilash Krishnamurthy (USN: 4JC09EC002) Adarsh Datta (USN: 4JC09EC003) Ajay Shekar (USN: 4JC09EC005)
V Sem. B.E.: Electronics E lectronics and Communication As a part of EC520: Digital Signal Pro cessing
SRI JAYACHAMARAJENDRA COLLEGE OF ENGINEERING, MYSORE – 570 006 (Autonomous) 2011-2012
0
INTRODUCTION
A digital signal processor (DSP) is a specialized microprocessor with an architecture optimized for the fast operational needs of digital signal processing. Digital signal processing algorithms typically require a large number of mathematical operations to be performed quickly and repetitively on a set of data. Many DSP applications deal with real-world analog signals (such as sound, light, analog voltage, analog current, temperature, pressure). Since a DSP can only process digital signals, there is a need to convert analog signals first into digital data before they can be processed by a DSP. After processing, there is again a need for the DSP to convert these digital data back into the original real-world analog signal format. In such applications, the DSP must be supported by an analog-to-digital converter (ADC) and a digital-to-analog converter (DAC), which will perform the required analog-digital and digital-analog conversions, respectively as shown in figure 1[4].
Figure 1: Simple digital signal processing system 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 Digital Signal Processor is required to do the following Digital Signal Processing tasks in real time • Signal Modeling Difference Equation Convolution Transfer Function Frequency Response • Signal Processing Data Manipulation Algorithms Filtering
1
SO, HOW ARE DIGITAL SIGNAL PROCESSORS DIFFERENT FROM MICROPROCESSORS ?
A DSP is a highly-specialized device that's equipped with a multitude of mathematical functions specifically intended for processing a digital signal, whereas a microprocessor is designed to be a general purpose device.Both a microprocessor and a DSP can execute instructions, accept input digital data, perform operations on them, and output digital data. The fundamental difference between a DSP and a microprocessor is what their built-in processing capabilities were designed for[5]. A microprocessor would be able to handle many different applications, such as word processing, spreadsheets, databases, and, well, even digital signal processing. 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[6]. 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[1].
Figure 2: Data Manipulation Vs. Mathematical calculation.
Figure 2 lists the most important differences between these two categories. Data manipulation involves storing and sorting information. For instance, consider a word processing program. The basic task is to store the information (typed in by the operator), organize the information (cut and paste, spell checking, page layout, etc.), and then retrieve the
2
information (such as saving the document on a floppy disk or printing it with a laser printer). These tasks are accomplished by moving data from one location to another, and testing for inequalities ( A=B, AB THEN ...). Second, if the two entries are not in alphabetical order, switch them so that they are (A ⇄B). When this two step process is repeated many times on all adjacent pairs, the list will eventually become alphabetized[1]. In comparison, the execution speed of most DSP algorithms is limited almost completely by the number of multiplications and additions required. For example, Fig. 3 shows the implementation of an FIR digital filter, the most common DSP technique. Using the standard notation, the input signal is referred to by x[ ], while the output signal is denoted by y[ ]. Our task is to calculate the sample at location n in the output signal, i.e., y[n]. An FIR filter performs this calculation by multiplying appropriate samples from the input signal by a group of coefficients, denoted by: a0, a 1, a2, a3, …, and then adding the products. In equation form, y[n] is found by:
This is simply saying that the input signal has been convolved with a filter kernel (i.e., an impulse response) consisting of: a0, a1, a2, a 3. Depending on the application, there may only be a few coefficients in the filter kernel, or many thousands. While there is some data transfer and inequality evaluation in this algorithm, such as to keep track of the intermediate results and control the loops, the math operations dominate the execution time.
3
Figure 3: FIR digital filter
In addition to preforming mathematical calculations very rapidly, DSPs must also have a predictable execution time. Suppose you launch your desktop computer on some task, say, converting a word-processing document from one form to another. It doesn't matter if the processing takes ten milliseconds or ten seconds; you simply wait for the action to be completed before you give the computer its next assignment[1]. In comparison, most DSPs are used in applications where the processing is continuous, not having a defined start or end. For instance, consider an engineer designing a DSP system for an audio signal, such as a hearing aid. If the digital signal is being received at 20,000 samples per second, the DSP must be able to maintain a sustained throughput of 20,000 samples per second. However, there are important reasons not to make it any faster than necessary. As the speed increases, so does the cost , the power consumption, the design difficulty, and so on. This makes an accurate knowledge of the execution time critical for selecting the proper device, as well as the algorithms that can be applied[1]. A DSP is also very similar to a microprocessor as far as architecture is concerned, i.e., it has many parts that are also seen in a microprocessor, such as data and address buses, an Arithmetic-Logic Unit (ALU), a
4
program control unit, assorted flags and registers, etc. It also has its own native instruction set, which defines what it can be programmed to do. Programming DSP's is no longer complicated too, with the existence of various development kits in the market that support DSP software development using high-level programming languages such as C[1]. The performance of the processor is measured based on the following five criteria. • Cycle count • Execution time • Energy Consumption • Memory use • Cost-performance FEATURES THAT ACCELERATE PERFORMANCE IN DSP
* Single-cycle multiply-accumulate capability; high-performance DSPs often have two multipliers that enable two multiply-accumulate operations per instruction cycle; some DSP have four or more multipliers * Specialized addressing modes, for example, pre- and post-modification of address pointers, circular addressing, and bit-reversed addressing * Most DSPs provide various configurations of on-chip memory and peripherals tailored for DSP applications. DSPs generally feature multiple-access memory architectures that enable DSPs to complete several accesses to memory in a single instruction cycle * Specialized execution control. Usually, DSP processors provide a loop instruction that allows tight loops to be repeated without spending any instruction cycles for updating and testing the loop counter or for jumping back to the top of the loop * DSP processors are known for their irregular instruction sets, which generally allow several operations to be encoded in a single instruction. For example, a processor that uses 32-bit instructions may encode two additions, two multiplications, and four 16-bit data moves into a single instruction. In general, DSP processor instruction sets allow a data move to be performed in parallel with an arithmetic operation. GPPs/MCUs, in contrast, usually specify a single operation per instruction.[8]
5
POWER CONSIDERATIONS
Power has been a major concern especially in hand held devices like mobile phones etc. Power dissipation is lowered as parallelism is increased with the use of multiple functional units and buses. As a result the power usage is reduced when memory access is minimized. An optimum code density also saves power by scaling the instruction size to just the required amount. The burst-fill instruction cache in the Texas Instruments' TMS320C55x family is flexible enough to be optimized based on the code type. This mechanism improves the cache hit ratio and reduces memory accesses. The core processor can also dynamically and independently control the power feeding the on chip peripherals and memory arrays. If these arrays and peripherals are not used, the processor switches them to a low power mode and brings them back to full power when an access is initiated without any latency. Additionally the power is saved based on the supported data types as well. The TMS320C5x family of DSPs supports only integer operations instead of floating point operations in ‘C64x and ‘C67x family, there by compromising on increased code complexity and reduced performance[2].
COMMERCIALLY AVAILABLE DSP CHIPS
There are currently four major companies that produce DSP's, namely, Texas Instruments, Analog Devices, Motorola, and Lucent Technologies. Examples of commercially available DSP's include: - Analog Devices' ADSP-21xx: 10 to 50 MIPS 16-bit fixed-point DSP's; 40-bit accumulator; 24-bit instructions; - Analog Devices' ADSP-2106x ("SHARC"): 40 MIPS, 32-bit floating point DSP's; - Lucent Technologies' DSP32xx: 32-bit floating-point with 40-bit accumulator and 16/24-bit fixed point DSP's; - Motorola's DSP568xx : 20 MIPS 16-bit fixed-point DSP's; - Motorola's DSP96002: IEEE format floating-point DSP with two complete 32-bit data and address buses; - Texas Instruments' TMS320C1x: Low cost fixed-point DSP's with 16 bit data, 32-bit registers; - Texas Instruments' TMS320C8x: Multiple 50 MHz 32-bit fixed-point processors combined with a RISC supervisory processor in a single multi-chip module.[7]
6
APPLICATIONS OF DSP : 1. digital sound and image processing 2. digital communications 3. consumer electronics (e.g., mobile phones, faxes, computer peripherals such as modems and sound cards, and digital systems such as DVD players and digital TV) 4. medical electronics 5. industrial and automation electronics[7]. IMPORTANT DIFFERENCES BETWEEN DSP AND MICROPROCESSOR DIGITAL SIGNAL PROCESSOR
Fast signal processing operations( complex addition and multiplication). It mainly used for performing mathematical operations like addition, multiplication which are frequently made use of in signal processing applications. Performs parallel operations. (Harvard architecture)
MICROPROCESSOR
Performs serial processing (Von Neumann architecture)[3] Chips are relatively cheap.
Chips dissipate a lot of heat.
Along with mathematical operations, it makes use of datamanipulation operations which are used in other applications.
Chips are costly.
Slow signal processing operations.
Used for radio frequency(RF) algorithm implementation due to its speed.
Chips donot dissipate much heat. Not used in RF applications.
7
CONCLUSION
DSPs have seen tremendous growth in the last decade, finding use in everything from cellular telephones to advanced scientific instruments. Increasing microprocessor clock speeds have enabled designers to incorporate them in applications that once required a DSP. Also, the trend toward multicore processors enables general-purpose CPUs and DSPs to be incorporated into a single chip. But still, a microprocessor is not as good as a DSP when it comes to serious DSP applications. However, it may not be long before high speed microprocessors and microcontrollers replace digital signal processors even in signal processing applications.
REFERENCES
[1] Bhavik Shah, “Digital signal processors: Current Trends and architecture”, IIT Bombay, Department of Electrical Engineering, credit seminar report, November 14, 2006, pp 1-5 . [2] Texas Instruments, Digital signal processors vs Universal Microprocessors, ESIEE Paris, September 1996. [3] Bruno Paillard, An Introduction to Digital Signal Processors, University of Sherbrooke, January 27, 2002, pp 22-25. [4] “Digital Signal Processor”, http://en.wikipedia.org/wiki/Digital_signal_processor [5] “Digital Signal Processing”, http://en.wikipedia.org/wiki/Digital_signal_processing [6] “Microprocessor”, http://en.wikipedia.org/wiki/Microprocessor [7] “Digital Signal Processors (DSP's)”, http://www.siliconfareast.com/dsp.htm [8] “What is the difference between a DSP and a Microprocessor?”, http://www.bdti.com/Resources/Comp.DSP.FAQ/Part3
8
9