DIGITAL SIGNAL PROCESSING FAQ 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.


http://www.symres.com/support/faqdsp.htm