Manufacturing Industry

DSP Software Crunch

Electronic News, Nov 1, 1999 by Charles Small

According to DSP programmers and engineers, these critical portions of the algorithm must be hand-coded in assembly language and iteratively hand-tweaked. This process is time consuming not only because assembly language is being used, but also because, again, the large sets of test data must be applied to the algorithm for each iteration of the tweaking process.

Some of the problems inherent in using C for DSP programs arise from the fact that C was developed years ago on long-obsolete minicomputers. Although these machines are now forgotten, some of their hardware characteristics are hardwired into the very structure of C. And the hardware characteristics of DSP processors are wildly different from these old minicomputers. So some standard C programming practices do not work or are ill advised for DSP programs. And ANSI-standard C language elements to not exist that translate C code into some of the special operations that a DSP processor can execute.

However, DSP programming does have some resemblance to old-fashioned programming. In the early days of computing, memories were small and processing cycles were precious. So considerable effort was expended by very smart, very expensive people to make programs as small and efficient as possible. For the most part, the old parsimonious programming ethos has gone out the window. Today for PC applications, because of increasing power and decreasing costs of PCs, applications programmers are more than happy to throw hardware at inefficient, bloated programs.

In the DSP world, this cavalier approach cannot be used. DSP processors use expensive, high-speed memory, so programs must be compact to minimize parts count. DSP programs must be fast to keep up with real-time data streams, therefore DSP programs must be tightly coded. In many applications, there is great pressure to squeeze the last bit of performance out of the DSP processor.

Where to Find Code Developers?

Staffing compounds the problem of developing DSP programs. DSP programming is a rare skill and experienced programmers are in short supply. The abilities required are so unusual that even experienced DSP-development managers cannot tell if potential new hires will become good DSP programmers or not by interviewing them. DSP programming is math intensive so a candidate should be good at math. Good DSP programmers generally have either a computer-science or electrical-engineering background but a candidate's having either degree is far from guaranteeing that he or she will be a good DSP programmer.

Vendors of DSP software, processors and cores are perfectly aware of the DSP software crunch and a number of remedies are being advanced.

The tools that DSP code developers use need to have some special attributes. Because the inputs and outputs of algorithms are huge sets of data, some means of visualizing the data must be provided. After all, one long list of numbers looks pretty much like another. So DSP program-development tools often now include interfaces that transform these lists of numbers into waveforms that can be viewed much as an engineer views signals on an oscilloscope or a doctor views heartbeats on an EKG printout. And visual programming languages are available that produce self-documented algorithms in the form of block diagrams and directed graphs.

 

BNET TalkbackShare your ideas and expertise on this topic

Please add your comment:

  1. You are currently: a Guest |
  2.  

Basic HTML tags that work in comments are: bold (<b></b>), italic (<i></i>), underline (<u></u>), and hyperlink (<a href></a)

advertisement
Click Here
advertisement
  • Click Here
  • Click Here
  • Click Here
advertisement

Content provided in partnership with Thompson Gale