DIGITAL SIGNAL PROCESSING FAQ ANSWERS
Home >
FAQ Index >
Digital Signal Processing Answers
This page contains answers to frequently asked questions about our
DSP products and about digital signal processing in general.
For a list of the questions, please return to the main
FAQ
index page. If you still have questions after reading this page,
email them to
info@symres.com
and we'll be glad to answer them for you.
Q: What is DSP ?
DSP stands for Digital Signal Processing. You will often see the term
used loosely in the industry for anything that processes digital
signals, but technically it has a specific meaning.
A DSP chip is a processor that has a dedicated hardware multiplier
and pipeline optimized for inner product calculations. Multiplying
two numbers together digitally is a complex process, much more so
than other arithmetic operations like addition. In fact sometimes as
much as 70% of the silicon in a DSP chip is given over to the
multiplier!
In addition to the multiplier, DSP chips are equipped with a pipeline
so they can perform a multiply/accumulate operation in a single
instruction cycle. The collection of operations required for a
multiply/accumulate is referred to as a MAC pipeline, and is the core
calculation in computing an inner product. DSPs in addition have most
of the features of general purpose microprocessors and can also
execute general programs.
Inner products are the foundation of important numerical calculations
like convolutions, FIR filters, matrix multiplies and etc. The fact
that these operations can be performed at very high speed in real
time has been a significant advance in computing.
Many of the numerical operations performed by a DSP can also be done
with a general purpose microprocessor lacking a MAC pipeline. But
because it is highly pipelined, the DSP has more horsepower on
computations involving inner products. Most DSPs fetch two memory
operands, perform the multiply, accumulate the result and save it to
memory, all in the same instruction cycle! Even if a general
microprocessor was capable of performing each of these steps in
single clock cycle (which they are not), the DSP would still have 5
times the performance, because it is pipelined.
Q: Why are floating point DSPs easier to use than fixed point ?
DSP chips can be divided into two categories, fixed and floating
point. Fixed point processors basically handle only integer numbers.
This is a big limitation! Not only must you make sure your numerical
process can be represented with integer arithmetic, you must also
constantly guard against overflow.
The repeated accumulations that are done as part of an inner product
calculation get large. If the calculation overflows at any point, the
result becomes meaningless. Many fixed point DSP processors are
designed for 16 bit integers. A dynamic range of 0 to 65536 is not
very big. For this reason as a workaround you will see some fixed
point DSPs that have 24 bit or wider accumulators.
An even better solution though is to use floating point. Then you can
have a dynamic range spanning approximately 2**256 = 77 orders of
magnitude. Typically, programmers using a floating point processor do
not worry about overflow, and can compute inner products and FFTs of
much longer length. A general rule of thumb is that fixed point DSPs
are limited to inner products and FFTs of about 512 points, while
there are no such limits for floating point.
Of course fixed point DSPs have their advantages. They are lower in
cost, and if you can use a 16 bit integer device, may save on the
memory your algorithm requires. For these reasons, they are popular
for dedicated special purpose embedded applications. General purpose
DSP is invariably best done with floating point processing.
Q: What are algebraic assembler mnemonics ?
If it has been awhile since you've done assembler programming, things
have changed! The most recent trend has been to use algebraic
mnemonics for the instruction set, and free format for the input
syntax. What this means is now assembler code looks a whole lot like
C!
For example, suppose you were adding two number in a traditional
assembler syntax. You might have an instruction like: add r1,r2. In
algebraic mnemonics you just write r1 = r1 + r2; When this is coupled
with symbolic memory references and register names, assembler
programming gets a lot easier.
The SR DSPASM DSP32C assembler takes the algebraic syntax one step
further and augments it with C like control statements. If then else
blocks read just like they do in a high level language.
Algebraic mnemonics are being used more and more in the industry as a
superior syntax for the low level instruction sets. Many claim it as
their innovation, however the approach was pioneered and developed at
AT&T Bell Labs.
Q: Do your DSP products have any digital input/output capabilities ?
Our DSPSMT and DSPMOD boards feature a high speed 32 bit
parallel port. This port is capable of reading or writing 32 bit
words at the rate of 12.5MHz, (ie a 50 MB/sec IO bandwidth).
These boards are ideal for anyone who needs
to do buffered high speed digital IO with the PC.
Return to the
FAQ Index
for links to more answers.
|