
ColdFire Core
MCF5272 ColdFire
®
Integrated Microprocessor User’s Manual, Rev. 3
Freescale Semiconductor
2-3
For register-to-memory operations, the stage functions (DS/OC, AG/EX) are effectively performed
simultaneously allowing single-cycle execution. For read-modify-write instructions, the pipeline
effectively combines a memory-to-register operation with a store operation.
2.1.1.2.1
Illegal Opcode Handling
On Version 2 ColdFire implementations, only some illegal opcodes (0x0000 and 0x4AFC) are decoded
and generate an illegal instruction exception. Additionally, attempting to execute an illegal line A or line F
opcode generates unique exception types. If any other unsupported opcode is executed, the resulting
operation is undefined.
2.1.1.2.2
Hardware Multiply/Accumulate (MAC) Unit
The MAC is an optional unit in Version 2 that provides hardware support for a limited set of digital signal
processing (DSP) operations used in embedded code, while supporting the integer multiply instructions in
the ColdFire microprocessor family. The MAC features a three-stage execution pipeline, optimized for 16
x 16 multiplies. It is tightly coupled to the OEP, which can issue a 16 x 16 multiply with a 32-bit
accumulation plus fetch a 32-bit operand in a single cycle. A 32 x 32 multiply with a 32-bit accumulation
requires three cycles before the next instruction can be issued.
shows basic functionality of the MAC. A full set of instructions are provided for signed and
unsigned integers plus signed, fixed-point fractional input operands.
Figure 2-2. ColdFire Multiply-Accumulate Functionality Diagram
The MAC provides functionality in the following three related areas, which are described in detail in
Chapter 3, “Hardware Multiply/Accumulate (MAC) Unit
•
Signed and unsigned integer multiplies
•
Multiply-accumulate operations with signed and unsigned fractional operands
•
Miscellaneous register operations
X
+/-
Operand Y
Operand X
Shift 0,1,-1
Accumulator