So far, we’ve looked at the positive aspects of DSP.
But, technology, however good, is not without its share of challenges, whether
it is the technology itself or it is the implementation. Let’s take a look at
some of the issues that the DSP industry is facing.
In our discussions with people from the DSP industry, the one common problem
that they all cited was making Digital Signal Processors as easy and friendly to
program as the general-purpose microprocessor. Making DSP easier to use,
increasing comfort levels with DSP and making available off the shelf software
will make DSP take off in a big way. Right now, DSP technology intimidates most
people as it is considered to be for absolute techies.
So, the next challenge is to grow the install base of software programmers by
several orders of magnitude. This, I’m sure, sounds like music to most
programmers out there. Like we mentioned in our career
article on DSP, all it takes is very good knowledge of assembly level
programming and C. For that matter, even C++ appears to be used nowadays but the
bottom line is assembly level programming. And, most DSP programmers swear by
it. So what are the qualities that a DSP engineer needs to have?
Profile of a DSP engineer
A DSP person needs to understand signal processing algorithms, real time
programming and time constraints. Unlike C or Java developers who have ample
resources at their disposal, a DSP engineer has to keep in mind system
constraints like limited memory and processor speeds for real time applications.
Taking the example of a C program itself, even if the program takes a second
longer to run, it doesn’t pose a problem. But, a DSP programmer cannot afford
to take such liberties. To maintain the quality of service, signals need to
processed and delivered in real time, imagine you’re talking on the cell phone
and the other person hears what you are saying after a delay. So one has to have
the ability to develop DSP
applications with limited resources.
Hardware
Coming back to the challenges, from the hardware point of view, the big
question is how to extract more processing power, add more features and at the
same time lower the costs. With fall in prices, hitherto unthought of
applications are suddenly being made possible. With the increasing number of
applications and complexity, processing power is one thing that you can’t have
too much of. The answer to this problem could be that one needs to develop more
innovative architecture, by which we can push the envelope on performance.
Another challenge is reducing the power consumption and thereby increasing the
battery life. Here again architectural schemes need to be thought out by which
power consumption can be further reduced. For example, certain blocks can be
switched off when not in use or circuit design techniques can be improved upon
to reduce power consumption. Here power becomes another area that has to be kept
in mind for optimization.