Tuesday, November 07, 2006

Removing the "Black Magic"Level

By now everyone knows that the digital signal processor (DSP) is the enabling technology behind the ubiquitous digital revolution. Although you may not even be aware of using them, DSPs are embedded in almost every product you use on a daily basis, consider: digital cellular phones, fax machines, high-speed modems (V90 and xDSL), handheld communicators, digital audio players and so forth. Just think about it for a moment -- it would be impossible to implement such products without DSP techniques and DSPs -- a dull life indeed!
Although DSPs are embedded in almost everything, using and designing with DSPs is not particularly straight forward. It requires knowledge of communications theory and detailed mathematics rather than computer science. Because DSPs do the repetitive and complex mathematical designing, they are considered by many engineers more of an art than a science -- to be exact, DSP technology is thought of as "black magic."
The truth is that designing with DSPs is indeed complex and not necessarily intuitive -- there really is an element of black magic to it. Part of the problem lies in the fact that over the years engineers and programmers have striven to simplify their lives through the use of high-level languages such as C/C++ for the tasks of designing with and programming processors. This high-level language design approach works particularly well for x86 and RISC processors -- nowadays almost no one designs and programs in assembly language.
No so with DSPs. Because almost all DSP tasks are real time (think of a cellular phone -- instantaneous, real-time communications), DSP programs are still written in assembly; thus the stigma of black magic. Using C/C++ high-level language isolates the engineer from the underlying physical system, not so for assembly language. Programming in assembly absolutely requires that the engineer has an intimate knowledge of the system, the DSP architecture, the algorithms used, the critical paths in the system and the time-critical portions in the algorithms (indeed, DSP designs are done in the time domain, not in the frequency domain.)
So how does one remove the black magic? DSP cores may be the answer. These cores are designed a priori to be used as coprocessor to a host engine -- for example, a Pentium for PC applications or a RISC for embedded applications.
In addition to being a coprocessor to the RISC, the DSP core comes along with a library of preprogrammed, common and most often used DSP routines (FFT, IFFT, FIR, IIR, Taylor Series, convolution ... ugh!, and so forth); each is designed and optimized by experts, and they are accessible by way of C-language function calls from the host processor.
Nice, but what does it mean? Simple, designer's nirvana! Because the DSP cores are a coprocessor to the host processor and are accessed through C-language calls directly from the host, this effectively hides the complexity of using DSPs from the designer. Think about it for a moment -- what this means is that the engineer can now develop the applications program for both the host processor and the DSP completely in the C-language, without touching DSP assembly code. This is a major and significant achievement in designing with DSPs. The bottom line: no more black magic.
www.dhyansanjivani.org
yantraguru@hotmail.com

0 Comments:

Post a Comment

<< Home

 

free html hit counter

BLOGGER
Google
 
Web www.dhyansanjivani.org
www.mahayantra.blogspot.com www.infoarticle.com