Digital Signal Processing Reference
In-Depth Information
referred to as a von Neumann architecture. The operands are of fixed point type,
resulting in less chip surface for the arithmetical operations in comparison with
conventional floating point.
This architecture is motivated by the often used finite impulse response (FIR)
filter. The core of this algorithm consists of the inner product of two vectors. For
performance reasons the elements of these vectors are of fixed point type and both
vectors are stored in two separate memories so they can be accessed simultaneously
on a Harvard architecture. One of these memories can be filled with samples taken
by an analog-digital (AD) converter. Such samples are also easily represented as
fixed point values.
Figure 1 uses the Embedded C syntax to show the elements in the architecture.
Two pointers px and py are defined to point to two separate memory spaces X
and Y. These two memories X and Y contain, for this example, the two vectors and
the multiply/accumulate (MAC) unit multiplies two values and adds the product
to an accumulator register. Often these X and Y memories can only be filled
with data through some Direct Memory Access (DMA) hardware. This means that
these memories are not part of the global generic memory of the processor. If
the architecture also supports zero overhead loops, then the inner product can be
computed with one cycle for each pair of elements in the vectors. Zero overhead
loops are supported by special hardware on the processor. With one instruction this
hardware is set up to iterate a predetermined number of times. This way costly
branches at the end of a loop body are avoided.
The key elements in this architecture are the following:
￿
Zero overhead loops
￿
Multiply/accumulate unit
￿
Separate memories
￿
Fixed point types
Zero overhead loops can be recognized relatively easy by a compiler, as can the
operations for the MAC unit. For these features of the architecture no language
extensions are required. It is a lot harder to distribute data appropriately over
separate memories and virtually impossible to recognize fixed point operations
written in standard ISO-C. Embedded C is an extension of ISO-C allowing the
programmer to specify these last two elements in the application program in a
portable way.
3
Fixed Point Types
As described in Sect. 2 , most DSP architectures support fixed point types as
an efficient alternative for floating point. Also the samples taken by an analog-
digital converter are easily represented as fixed point values. In the Embedded C
report therefore two new and related arithmetic types are introduced, Fract and
Accum . The names of the types start with an underscore and capital to prevent
pollution of the name-space of existing programs. Such names are reserved by the
 
Search WWH ::




Custom Search