1 introduction to the mac, 1 introduction to the mac -2 – Motorola ColdFire MCF5281 User Manual

Page 80

Advertising
background image

Enhanced Multiply-Accumulate Unit (EMAC)

3-2

Freescale Semiconductor

Figure 3-1. Multiply-Accumulate Functionality Diagram

3.1.1.1

Introduction to the MAC

The MAC is an extension of the basic multiplier in most microprocessors. It is typically implemented in
hardware within an architecture and supports rapid execution of signal processing algorithms in fewer
cycles than comparable non-MAC architectures. For example, small digital filters can tolerate some
variance in an algorithm’s execution time, but larger, more complicated algorithms such as orthogonal
transforms may have more demanding speed requirements beyond scope of any processor architecture and
may require full DSP implementation.

To balance speed, size, and functionality, the ColdFire MAC is optimized for a small set of operations that
involve multiplication and cumulative additions. Specifically, the multiplier array is optimized for
single-cycle pipelined operations with a possible accumulation after product generation. This functionality
is common in many signal processing applications. The ColdFire core architecture is also modified to
allow an operand to be fetched in parallel with a multiply, increasing overall performance for certain DSP
operations.

Consider a typical filtering operation where the filter is defined as in

Equation 3-1

.

Eqn. 3-1

Here, the output y(i) is determined by past output values and past input values. This is the general form of
an infinite impulse response (IIR) filter. A finite impulse response (FIR) filter can be obtained by setting
coefficients a(k) to zero. In either case, the operations involved in computing such a filter are multiplies
and product summing. To show this point, reduce

Equation 3-1

to a simple, four-tap FIR filter, shown in

Equation 3-2

, in which the accumulated sum is a past data values and coefficients sum.

Eqn. 3-2

X

+/-

Operand Y

Operand X

Shift 0,1,-1

Accumulator(s)

y i

( )

a k

( )y i k

(

)

k

1

=

N

1

b k

( )x i k

(

)

k

0

=

N

1

+

=

y i

( )

b k

( )x i k

(

)

k

0

=

3

b 0

( )x i

( ) b 1

( )x i 1

(

) b 2

( )x i 2

(

) b 3

( )x i 3

(

)

+

+

+

=

=

MCF5282 and MCF5216 ColdFire Microcontroller User’s Manual, Rev. 3

Advertising
This manual is related to the following products: