Projects

DSP

You are not Member of this Project.
Project Owner : VANITHA G
Created Date : Tue, 04/10/2011 - 18:48
Project Description :

   Digital signal processor

A Digital Signal Processor chip found in a guitar effects unit.

A digital signal processor (DSP) is a specialized microprocessorwith an architecture optimized for the fast operational needs of digital signal processing.[1][2]

Contents

Typical characteristics

Digital signal processing algorithmstypically 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 vable.http://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/DSP_block_diagram.svg/500px-DSP_block_diagram.svg.png

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.

 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-coderoutines are commonly packaged into libraries for re-use, instead of relying on advanced compiler technologies to handle essential algorithms.

Hardware features visible through DSP instruction sets commonly include:

  • Hardware modulo addressing, allowing circular buffersto be implemented without having to constantly test for wrapping.
  • A memory architecture designed for streaming data, using DMAextensively and expecting code to be written to know about cache hierarchies and the associated delays.
  • Driving multiple arithmetic units may require memory architectures to support several accesses per instruction cycle
  • Separate program and data memories (Harvard architecture), and sometimes concurrent access on multiple data busses
  • Special SIMD(single instruction, multiple data) operations
  • Some processors use VLIWtechniques so each instruction drives multiple arithmetic units in parallel
  • Special arithmetic operations, such as fast multiply–accumulates(MACs). Many fundamental DSP algorithms, such as FIR filtersor the Fast Fourier transform(FFT) depend heavily on multiply–accumulate performance.
  • Bit-reversed addressing, a special addressing modeuseful for calculating FFTs
  • Special loop controls, such as architectural support for executing a few instruction words in a very tight loop without overhead for instruction fetches or exit testing
  • Deliberate exclusion of a memory management unit. DSPs frequently use multi-tasking operating systems, but have no support for virtual memoryor memory protection. Operating systems that use virtual memory require more time for context switchingamong processes, which increases latency.

Program flow

Memory architecture

Data operations

  • Saturation arithmetic, in which operations that produce overflows will accumulate at the maximum (or minimum) values that the register can hold rather than wrapping around (maximum+1 doesn't overflow to minimum as in many general-purpose CPUs, instead it stays at maximum). Sometimes various sticky bits operation modes are available.
  • Fixed-point arithmeticis often used to speed up arithmetic processing
  • Single-cycle operations to increase the benefits of pipelining

Instruction sets

History

Prior to the advent of stand-alone DSP chips discussed below, most DSP applications were implemented using bit-sliceprocessors. The AMD 2901bit-slice chip with its family of components was a very popular choice. There were reference designs from AMD, but very often the specifics of a particular design were application specific. These bit slice architectures would sometimes include a peripheral multiplier chip. Examples of these multipliers were a series from TRWincluding the TDC1008 and TDC1010, some of which included an accumulator, providing the requisite multiply–accumulate(MAC) function.

In 1978, Intel released the 2920 as an "analog signal processor". It had an on-chip ADC/DAC with an internal signal processor, but it didn't have a hardware multiplier and was not successful in the market. In 1979, AMI released the S2811. It was designed as a microprocessor peripheral, and it had to be initialized by the host. The S2811 was likewise not successful in the market.

In 1980 the first stand-alone, complete DSPs – the NECµPD7720and AT&TDSP1– were presented at the International Solid-State Circuits Conference'80. Both processors were inspired by the research in PSTNtelecommunications.

The Altamira DX-1 was another early DSP, utilizing quad integer pipelines with delayed branches and branch prediction.

The first DSP produced by Texas Instruments(TI), the TMS32010presented in 1983, proved to be an even bigger success. It was based on the Harvard architecture, and so had separate instruction and data memory. It already had a special instruction set, with instructions like load-and-accumulate or multiply-and-accumulate. It could work on 16-bit numbers and needed 390 ns for a multiply–add operation. TI is now the market leader in general-purpose DSPs. Another successful design was the Motorola56000.

About five years later, the second generation of DSPs began to spread. They had 3 memories for storing two operands simultaneously and included hardware to accelerate tight loops, they also had an addressing unit capable of loop-addressing. Some of them operated on 24-bit variables and a typical model only required about 21 ns for a MAC. Members of this generation were for example the AT&T DSP16A or the Motorola DSP56001.

The main improvement in the third generation was the appearance of application-specific units and instructions in the data path, or sometimes as coprocessors. These units allowed direct hardware acceleration of very specific but complex mathematical problems, like the Fourier-transform or matrix operations. Some chips, like the Motorola MC68356, even included more than one processor core to work in parallel. Other DSPs from 1995 are the TI TMS320C541 or the TMS 320C80.

The fourth generation is best characterized by the changes in the instruction set and the instruction encoding/decoding. SIMD extensions were added, VLIW and the superscalar architecture appeared. As always, the clock-speeds have increased, a 3 ns MAC now became possible.

Modern DSPs

Modern signal processors yield greater performance; this is due in part to both technological and architectural advancements like lower design rules, fast-access two-level cache, (E)DMAcircuitry and a wider bus system. Not all DSP's provide the same speed and many kinds of signal processors exist, each one of them being better suited for a specific task, ranging in price from about US$1.50 to US$300

Texas Instrumentsproduces the C6000series DSP’s, which have clock speeds of 1.2 GHz and implement separate instruction and data caches. They also have an 8 MiB 2nd level cache and 64 EDMA channels. The top models are capable of as many as 8000 MIPS (instructions per second), use VLIW (very long instruction word), perform eight operations per clock-cycle and are compatible with a broad range of external peripherals and various buses (PCI/serial/etc). TMS320C6474 chips each have three such DSP's, and the newest generation C6000 chips support floating point as well as fixed point processing.

Freescaleproduce a multi-core DSP family, the MSC81xx. The MSC81xx is based on StarCore Architecture processors and the latest MSC8144 DSP combines four programmable SC3400 StarCore DSP cores. Each SC3400 StarCore DSP core has a clock speed of 1 GHz.

Analog Devicesproduce the SHARC-based DSP and range in performance from 66 MHz/198 MFLOPS(million floating-point operations per second) to 400 MHz/2400 MFLOPS. Some models support multiple multipliersand ALUs, SIMDinstructions and audio processing-specific components and peripherals. The Blackfinfamily of embedded digital signal processors combine the features of a DSP with those of a general use processor. As a result, these processors can run simple operating systemslike μCLinux, velOSity and Nucleus RTOSwhile operating on real-time data.

NXP Semiconductorsproduce DSP's based on TriMediaVLIWtechnology, optimized for audio and video processing. In some products the DSP core is hidden as a fixed-function block into a SoC, but NXP also provides a range of flexible single core media processors. The TriMedia media processors support both fixed-point arithmeticas well as floating-point arithmetic, and have specific instructions to deal with complex filters and entropy coding.

Most DSP's use fixed-point arithmetic, because in real world signal processing the additional range provided by floating point is not needed, and there is a large speed benefit and cost benefit due to reduced hardware complexity. Floating point DSP's may be invaluable in applications where a wide dynamic range is required. Product developers might also use floating point DSP's to reduce the cost and complexity of software development in exchange for more expensive hardware, since it is generally easier to implement algorithms in floating point.

Generally, DSP's are dedicated integrated circuits; however DSP functionality can also be produced by using field-programmable gate arraychips (FPGA’s).

Embedded general-purpose RISC processors are becoming increasingly DSP like in functionality. For example, the ARM Cortex-A8and the OMAP3processors include a Cortex-A8 and C6000 DSP.

 [DSP Applications]

What is DSP?

In the strict sense of the term, digital signal processing refers to the electronic processing of signals such as sound, radio, and microwaves. In practice, the same characteristics that make Digital Signal Processors (DSPs) good at handling signals make them suitable for many other purposes, such as high-quality graphics processing and engineering simulations. DSPs are essentially fast number-crunchers which also happen to be small, fairly low-cost, and with fairly low-power consumption. Any place you need speed, but could not put a Pentium because it is just too darn big and needs a heat-sink and fan to keep it from melting, is a good candidate for one or more DSPs. Just about any embedded product application that involves rapid numeric processing is a candidate for a DSP.

From Analog to Digital

Classical DSP applications work with real-world signals, such as sound and radio waves that originate in analog form. Analog means the signals are continuous; they change smoothly from one state to another. Digital computers, on the other hand, treat information discontinuously, as a discrete series of binary numbers. This permits an exactness of measurement and control impossible in analog systems. The goal of digital signal processing is to use the power of digital computation to manage and modify the signal data. Therefore, the first stage in many DSP systems is to translate smooth real-world signals into a "bumpy" digital approximation. While a sound wave can be depicted as an undulating line, its digital representation looks more like an ascending and descending staircase. This translation is accomplished by an Analog-to-Digital Converter (ADC). In essence, ADCs work like a movie camera, clicking off a series of snapshots that, when strung together, approximate the continuous flow of actual events. The "snapshots" taken by ADCs are actually a series of voltage measurements that trace the rise and fall of the analog signal, like points in a connect-the-dots drawing. If the ADC has done its job well, the data points give a detailed and accurate rendering of the signal. After a certain amount of clean-up work (to remove extraneous frequencies, among other things), the ADC passes its digitized signal information to a DSP, which does the bulk of the processing. Eventually, when the DSP has finished its chores, the digital data may be turned back into an analog signal, albeit one that is quite different from and much improved over the original. For instance, a DSP can filter the noise from a signal, remove unwanted interference, amplify certain frequencies and suppress others, encrypt information, or analyze a complex wave form into its spectral components. In plainer language, DSPs can clean the crackle and hiss from music recordings, remove the echo from communications lines, make internal organs stand out more clearly in medical CAT scans, scramble cellular phone conversations to protect privacy, and assess seismic data to pinpoint new oil reserves. Of course there are also DSP applications that don't require Analog-to-Digital translation. The data is digital from the start, and can be manipulated directly by the DSP. An example of this is computer graphics where DSPs create mathematical models of things like weather systems, images and scientific simulations.

Blinding Speed

At its heart, digital signal processing is highly numerical and very repetitive. As each new piece of signal data arrives, it must be multiplied, summed, and otherwise transformed according to complex formulas. What makes this such a keen technological challenge is the speed requirement. DSP systems must work in real time, capturing and processing information as it happens. Like a worker on a fast-moving assembly line, Analog-to-Digital converters and DSPs must keep up with the work flow. If they fall behind, information is lost and the signal gets distorted. The Analog-to-Digital converter, for instance, must take its signal samples often enough to catch all the relevant fluctuations. If the ADC is too slow, it misses some of the action. Imagine trying to film a football game with a movie camera running at one frame per minute. The film would be incoherent, missing entire plays in the intervals between frames. The DSP, too, must keep pace, churning out calculations as fast as the signal data is received from the ADC. The pace gets progressively more demanding as the signal gets faster. Stereo equipment handles sound signals of up to 20 kilohertz (20,000 cycles per second, the upper limit of human hearing), requiring a DSP to perform hundreds of millions of operations per second. Other signals, such as satellite transmissions, are even faster, reaching up into the Gigahertz (billions of cycles per second) range.

DSPs versus Microprocessors

DSPs differ from microprocessors in a number of ways. Microprocessors are typically built for a range of general purpose functions, and normally run large blocks of software, such as operating systems like Windows or UNIX. Although today's microprocessors, including the popular and well-known Pentium family, are extremely fast--as fast or faster than some DSPs--they are still not often called upon to perform real-time computation or signal processing. Usually, their bulk processing power is directed more at handling many tasks at once, and controlling huge amounts of memory and data, and controlling a wide variety of computer peripherals (disk drive, modem, video display, etc). However, microprocessors such as Pentiums are notorious for their size, cost, and power consumption to achieve their muscular performance, whereas DSPs are more dedicated, racing through a smaller range of functions at lightning speed, yet less costly and requiring much less space (size) and power consumption to achieve their purpose. DSPs are often used in "embedded systems", where they are accompanied by all necessary software (stored in onchip ROM or offchip EEPROM), built deep into a piece of equipment, and dedicated to a group of related tasks. In computer systems, DSPs may be employed as attached processors, assisting a general purpose host microprocessor.

Different DSPs For Different Jobs

One way to classify DSP devices and applications is by their dynamic range. The dynamic range is the spread of numbers, from small to large, that must be processed in the course of an application. It takes a certain range of values, for instance, to describe the entire waveform of a particular signal, from deepest valley to highest peak. The range may get even wider as calculations are performed, generating larger and smaller numbers through multiplication and division. The DSP device must have the capacity to handle the numbers so generated. If it doesn't, the numbers may "overflow," producing invalid results. The processor's capacity is a function of its data width (i.e. the number of bits it manipulates) and the type of arithmetic it performs (i.e., fixed or floating point). A 32-bit processor has a wider dynamic range than a 24-bit processor, which has a wider range than 16-bit processor. And floating-point chips have wider ranges than fixed-point devices. Each type of processor is suited for a particular range of applications. 16-bit fixed-point DSPs such as typically used for voice-grade and telecom systems (such as cell-phones), since they work with a relatively narrow range of sound frequencies. On the other hand, hi-fidelity stereo sound has a wider range, calling for a 16-bit ADC or 24-bit ADC, and a 24-bit fixed-point DSP like the Motorola DSP563xx series. In this case, the ADC's 16-bit or 24-bit width is needed to capture the complete high-fidelity signal (i.e. much better than a phone); the DSP thus must be 24 bits to accommodate the larger values resulting when the signal data is manipulated.) Applications requiring still greater dynamic range include image processing, 3-D graphics, and scientific and research simulations; such applications typically a 32-bit floating-point processor.

DSP Evolution

Just a decade and a half ago, digital signal processing was more theory than practice. The only systems capable of doing signal processing were massive mainframes and supercomputers and even then, much of the processing was done not in real time, but off-line in batches. For example, seismic data was collected in the field, stored on magnetic tapes and then taken to a computing center, where a mainframe might take hours or days to digest the information. The first practical real-time DSP systems emerged in the late 1970s and used bipolar "bit-slice" components. Large quantities of these building-block chips were needed to design a system, at considerable effort and expense. Uses were limited to esoteric high-end technology, such as military and space systems. The economics began to change in the early 80s with the advent of single-chip MOS (Metal-Oxide Semiconductor) DSPs. Cheaper and easier to design-in than building blocks, these "monolithic" processors meant that digital signal processing could be cost-effectively integrated into an array of ordinary products. The early single-chip processors were relatively simple 16-bit devices, which, teamed with 8- or 10-bit ADCs, were suitable for low-speed applications, general-purpose coders such as talking toys, simple controllers, and vocoders; (voice encoding devices used in telecommunications).

Things that have DSPs

Some typical and well-known items which contain one (or many) embedded DSPs:

  • the biggie: cell phones
  • fax machines
  • DVD players and other home audio equipment
  • your car (for example: the anti-lock braking system)
  • computer disk drives
  • satellites (they have a lot)
  • the "switch" at your local telephone company (more than a lot)
  • digital radios
  • high-resolution printers
  • digital cameras

Applications Using Signalogic DSP Products: Some Examples

As Signalogic has grown and matured beyond basic DSP development tool products, we have found ourselves increasingly involved in customer-specific applications of DSP. Besides company growth, from these deeper involvements comes improvement to our DSP development tools, new DSP products, and increased knowledge of the overall DSP field. Some recent examples of applications in which Signalogic has been a co-development partner:

 

You are not authorized to access this content.
You are not authorized to access this content.
You are not authorized to access this content.
You are not authorized to access this content.
You are not authorized to access this content.