4 data representation, 5 mac opcodes, 4 data representation -14 3.3.5 mac opcodes -14 – Motorola ColdFire MCF5281 User Manual

Page 92: Section 3.3.4, “data, Representation

Advertising
background image

Enhanced Multiply-Accumulate Unit (EMAC)

3-14

Freescale Semiconductor

As with change or use stalls between accumulators and general-purpose registers, introducing intervening
instructions that do not reference the busy register can reduce or eliminate sequence-related store-MAC
instruction stalls. A major benefit of the EMAC is the addition of three accumulators to minimize stalls
caused by exchanges between accumulator(s) and general-purpose registers.

3.3.4

Data Representation

MACSR[S/U,F/I] selects one of the following three modes, where each mode defines a unique operand
type:

1. Two’s complement signed integer: In this format, an N-bit operand value lies in the range -2

(N-1)

< operand < 2

(N-1)

- 1. The binary point is right of the lsb.

2. Unsigned integer: In this format, an N-bit operand value lies in the range 0 < operand < 2

N

- 1. The

binary point is right of the lsb.

3. Two’s complement, signed fractional: In an N-bit number, the first bit is the sign bit. The remaining

bits signify the first N-1 bits after the binary point. Given an N-bit number, a

N-1

a

N-2

a

N-3

... a

2

a

1

a

0

,

its value is given by the equation in

Equation 3-3

.

Eqn. 3-3

This format can represent numbers in the range -1 < operand < 1 - 2

(N-1)

.

For words and longwords, the largest negative number that can be represented is -1, whose internal
representation is 0x8000 and 0x8000_0000, respectively. The largest positive word is 0x7FFF or (1 - 2

-15

);

the most positive longword is 0x7FFF_FFFF or (1 - 2

-31

).

3.3.5

MAC Opcodes

MAC opcodes are described in the ColdFire Programmer’s Reference Manual.

Remember the following:

Unless otherwise noted, the value of MACSR[N,Z] is based on the result of the final operation that
involves the product and the accumulator.

The overflow (V) flag is managed differently. It is set if the complete product cannot be represented
as a 40-bit value (this applies to 32

× 32 integer operations only) or if the combination of the

product with an accumulator cannot be represented in the given number of bits. The EMAC design
includes an additional product/accumulation overflow bit for each accumulator that are treated as
sticky indicators and are used to calculate the V bit on each MAC or MSAC instruction. See

Section 3.2.1, “MAC Status Register (MACSR)”

.

For the MAC design, the assembler syntax of the MAC (multiply and add to accumulator) and
MSAC (multiply and subtract from accumulator) instructions does not include a reference to the
single accumulator. For the EMAC, assemblers support this syntax and no explicit reference to an
accumulator is interpreted as a reference to ACC0. Assemblers also support syntaxes where the
destination accumulator is explicitly defined.

value

1 a

N

1

(

)

2

i

1

N

+

(

)

ai

i

0

=

N

2

+

=

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

Advertising
This manual is related to the following products: