Questions and answers Q&A

<< Go back to Documents

 

 

Why using a DSP board whereas a laptop computer seems so powerful?

 

As more and more specific devices have been replaced by standard computers running special software, this is everybody's question... Let's take the embedded electronics market as an example. Could one imagine having ten laptops in our car to deal with all the features? No, there are specialized microprocessors running optimized code to control the engine's ignition, for the cruise control, for the seat adjustment, for the windows, for the lights, for the air conditionning, for the navigation system, the power train, etc. Can one imagine holding a laptop under the arm to get an hearing aid? No, there is a very low power small DSP to handle it. In professional audio, even though computers are now used for recording and mixing, they are the user interface only. Indeed specialized DSP boards handle the signal processing workflow.

General purpose computers are slow to start, not responsive (and non determinsitic), drain a lot of power, make noise, are fragile, big, cannot stand extreme temperatures, and of course they need additional I/O outboard to interface to the real word!   

 

Why using a DSP whereas there are fast general purpose processors (GPP)?

 

Some would say that nowadays we could use a general purpose processor GPP at 1GHz and develop with a GNU tool chain to do anything. Many common operations of signal processing are done in hardware on a DSP, these would waste a lot of computing power to be implemented on a GPP. A lot of single cycle accessible memory is implemented on a DSP, whereas memory is "far" with a GPP design, which seriously slows down operations. Although GPPs feature cache memories and pipelines to accelerate processing, they require proper data preparation to be efficient, which means additional overhead. Moreover a GPP would drain a lot of power to get the job done. A fast GPP would heat up, need a fan unit, and generate greater electromagnetic interferences. Finaly precision issues: see next questions. In other words: a DSP is still more efficient and more relevant for signal processing. 

 

Why a proprietary graphical programming language whereas engineers are used to Matlab and C?

 

Simulation on PC is straighfoward. But when it turns to get the job done on an embedded system, for a real product, things are usualy much harder. When dealing at the board level or inside the DSP it is very hard to keep the ideas clear about what had to be done.

In the embedded DSP world, the only way to get the most of the hardware is to code in assembly. The learning curve is steep and it requires a lot of engineering time. Porting the project from concept/simulation to the embedded DSP platform is often the work of a specialist, and few companies have the ressources in-house. In any case software maintenance/upgrade is difficult. So we developed FIBULA, a graphical programming language which hides optimized assembly code behind the nice graphical function blocks of the diagram/program. There is no inefficient code generator, no inefficient C compiler, you get great lisibility, you get more done by a light hardware, this is just about good engineering!

 

Why a functional block language?


Digital Signal Processors have very specific architectural characteristics which make them particularly efficient for most signal processing tasks (MAC instruction, parallel instructions, modulo addressing, DMA channels, wired DO loops etc. ...). However this implies that several instructions are bound together in indivisible blocks, in order to preserve high performance. Furthermore required resources affected to each block instance such as memory, registers and DMA channels must have been properly reserved and initialized at the beginning of the program.
Conventional languages such as C / C++ are translated on an instruction by instruction basis and therefore fail in performance as compared to DSP native assembly language block programming.
Speed ratios between assembly and C higher than 10 can frequently be observed. The best language for a DSP is thus a set of basic functional blocks. You build your application simply by connecting them together and defining in which order they should execute.

 

Can I build my own functional blocks?


Sure, although commonly used functions in digital signal processing are already included with FIBULA as graphical function blocks, you may develop your own. You can build blocks from existing blocks, or design them from the textual FIBULA language or even from scratch in assembly. It may be desirable to build your blocks to interface to custom hardware or to develop algorithms that take advantage of the double 48bit precision.

 

Why getting the most of the hardware?

 

To build a complex signal processing system in the minimum size, power consumption, heat dissipation and EMI emission. As seen previously, assembly coded signal processing programs often lead to 10 times faster execution over C compiled code (see Papers) ; therefore using C may lead to employing 10 times faster DSP hardware to get the same processing done. It has to be noted that 10 times more powerful DSP chips than the one of SICORE simply do not exist to date! (not considering 16bit multicore DSPs). Another aspect is electrical power consumption: some other vendors' DSP boards featuring 2 floating-point DSP chips and external memory drain well over 5 times more current than SICORE for comparable potential processing power on the paper. Moreover, featuring more components, these DSP boards are thus larger, which does not allow 2 of them to be placed on a Eurocard mother board, whereas this is possible with 2 SICORE modules (= 4 DSP cores).

 

Why use a fixed-point instead of a floating-point DSP?

 

Fixed point DSP with 24bit path, 48bit precision and 56bit accumulators is a good balance. Memory usage is optimized by storing samples in 24bit, precision is optimized when necessary by working in 48bits and precision is always retained in recursive and MAC operations thanks to the 56bit accumulators. 

It has to be noted that 32 floating point is "only" 24 bit precision (with 8 bit exponent) and does not compete!

Although simpler to program thanks to the automatic rescaling, 32bit floating-point DSPs lead to rounding errors that can quickly get significant in the final result since DSP is mostly about recursive computation. In audio this leads to audible artifacts (loss of details, pumping noise...), in measurement applications it may lead to loss of accuracy.

Therefore although the common belief is that floating-point makes programming easier, it is far from being easy to preserve signal resolution all the way. 

The only way to rival 48/56bit fixed-point precision with floating-point is to use double precision 64bit computation. And then, efficiency is the issue: large memory usage, available processing power drop, multiple DSPs needed, high power consumption...)

Finaly ADCs and DACs only accept fixed-point definition and thus, at the outputs, a scaling operation is inevitable with floating point DSPs.

 

It has to be noted that SICORE DSPs features absolute efficiency (see Documents and Q&A). The SICORE DSP core does a MAC  (multiply and accumulate) in only 1 clock cycle and also prepares the data for the next MAC at the same time. The instruction set and the core architecture are absolutely suited for signal processing. Given that the SICORE DSP features two cores that can work in parallel and even asynchronously, throughput is assured, effortless. 

High frequency, high MIPS or MFLOPS do not mean throughput. Beware of marketing!

 

References:

 

Sonic Solutions, James A. Moorer, from paper "48bit integer processing beats 32bit floating point [...]":

"Conclusion: [...] it is shown that sweeping the settings of a filter with time excites some aberrant behavior when the state variables are not normalized, even with 64-bit floating-point arithmetic. 48-bit integer is proposed as a compromise between economic realizability and ultimate precision. The increased headroom and guard bits allowed by the format provide enough precision to allow some extreme filter settings and still preserve a 24-bit result after several stages of processing"

 

SSL (ex. Sydec), Rob James presenting Mixpander in Resolution magazine 2007:  

"[…] bit scaling and headroom generation in floating point also requires a thorough headroom calculation if you do not want to lose resolution and level of detail. Since it will not clip in float that easy, this [preserving resolution] does not seem to be a major consideration for some developers. Wrong scaling in fixed point will clip, so developers are very careful with resolution considerations. This is why a lot of people claim that fixed point systems sound better. Developers just have to do it right."

 

TC Electonics, Thomas Valter, Product Manager, from TC forum :

"Basically, you can say that there are sooo much more than MIPS or FLOPS to take into consideration when
evaluating a certain processor for a product: for instance how much internal RAM the chip has, how it
accesses external RAM and which kind of external RAM is chosen for the product...
"

 

See White papers for more info

 

Who uses fixed-point DSPs in audio (or uses fixed-point arithmetic)?*

 

Professional audio

- Digidesign ProTools HD (defacto studio standard)

- TC Electronics (the most sought-after reverb units) 

- SSL -Sydec range- (studio mixing consoles)

- BSS (sound reinforcement, audio processing racks)

- Allen-Heath (sound reinforcement, mixing consoles)

- Rane (sound reinforcement, mixers, processors...)

- Dynacord (speaker cross over)

- European manufacturers' digital output microphones

- Yamaha (highly regarded rec/mixing consoles)

- Calrec (sound reinforcement mixing consoles)

- ...

Hi-end audio

- JMF Audio

- Meridian UK

- MSB

- ...

 

 

Music intruments

- Line 6 (guitar pedals)

- Gibson Firebird-X (electric guitar)

- TC Electronics (amplifiers and effects)

- Digitech -Vocalist-

- Kemper amps (guitar amplifiers)

- Rocktron 

- ...

Consumer audio

- Pioneer (AV decoders and surround sound)

- B&K (AV decoders and surround sound)

- Meridian UK

- BOSE

- Kenwood

- Orban Optimod (digital radio)

- ...

 

 

* All the brand-names and trademarks cited above are the property of their respective owners. Information gathered from freely available documents published by these brands, relative to current or past products. 

 

Who uses fixed-point DSPs in industry?

 

The most widely used DSPs are fixed point. They are found in high volume markets such as networking, video, telecom, medical and industrial control. They generaly feature a 16bit data path. With SICORE and its 24bit path, we target specialized markets, the same applications as those of floating-point DSPs, but with the advantage of more efficiency and scalability.

 

What is next?

 

FIBULA will include more function blocks and features with time. Regarding the hardware, the DSP chip we have chosen is an industry standard, used in automotive and is included in the manufaturer's product longevity program, with assured supply for a minimum of 10 years. 

However, we are already studying solutions for the future while keeping the same philosophy. Several options are open to us, we are studying them in the background. Hopefully something exciting would be made available when required.

 

 

<< Go back to Documents

 

 

© ELSI INGENIERIE 2003-2013, LF last rev. 19/08/13      Mentions légales     web: www.elsi-ing.com