and answers Q&A
Go back to Documents
using a DSP board whereas a laptop computer seems so powerful?
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.
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!
using a DSP whereas there are fast general purpose processors (GPP)?
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
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.
a proprietary graphical programming language whereas engineers are used to
Matlab and C?
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
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.
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.
getting the most of the hardware?
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).
use a fixed-point instead of a floating-point DSP?
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.
to be noted that 32 floating point is "only" 24 bit precision (with 8 bit
exponent) and does not compete!
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.
although the common belief is that floating-point makes programming easier, it is far from being easy to preserve signal resolution all the way.
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
ADCs and DACs only accept fixed-point definition and thus, at the outputs, a
scaling operation is inevitable with floating point DSPs.
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.
frequency, high MIPS or MFLOPS do not mean
throughput. Beware of marketing!
Solutions, James A. Moorer, from paper "48bit integer processing beats
32bit floating point [...]":
[...] 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"
(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."
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..."
papers for more info
uses fixed-point DSPs in audio (or uses fixed-point arithmetic)?*
Digidesign ProTools HD (defacto studio standard)
Electronics (the most sought-after reverb units)
-Sydec range- (studio mixing
- BSS (sound reinforcement, audio processing racks)
Allen-Heath (sound reinforcement, mixing consoles)
(sound reinforcement, mixers, processors...)
Dynacord (speaker cross over)
manufacturers' digital output microphones
(highly regarded rec/mixing consoles)
(sound reinforcement mixing consoles)
6 (guitar pedals)
Gibson Firebird-X (electric guitar)
Electronics (amplifiers and effects)
Kemper amps (guitar amplifiers)
Pioneer (AV decoders and surround sound)
B&K (AV decoders and surround sound)
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.
uses fixed-point DSPs in industry?
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.
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.
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