Datasheet

Table Of Contents
Enhanced Multiply-Accumulate Unit (EMAC)
Freescale Semiconductor 3-13
3.3.3 EMAC Instruction Execution Times
The instruction execution times for the EMAC can be found in Section 2.3.5.6, “EMAC Instruction
Execution Times”.
The EMAC execution pipeline overlaps the AGEX stage of the OEP (the first stage of the EMAC pipeline
is the last stage of the basic OEP). EMAC units are designed for sustained, fully-pipelined operation on
accumulator load, copy, and multiply-accumulate instructions. However, instructions that store contents
of the multiply-accumulate programming model can generate OEP stalls that expose the EMAC execution
pipeline depth:
mac.w Ry, Rx, Acc0
move.l Acc0, Rz
The MOVE.L instruction that stores the accumulator to an integer register (Rz) stalls until the
program-visible copy of the accumulator is available. Figure 3-9 shows EMAC timing.
Figure 3-9. EMAC-Specific OEP Sequence Stall
In Figure 3-9, the OEP stalls the store-accumulator instruction for three cycles: the EMAC pipleline depth
minus 1. The minus 1 factor is needed because the OEP and EMAC pipelines overlap by a cycle, the
AGEX stage. As the store-accumulator instruction reaches the AGEX stage where the operation is
performed, the recently updated accumulator 0 value is available.
Load Accumulator
Extensions 23
move.l {Ry,#imm},ACCext23 Loads the accumulator 2,3 extension bytes with a 32-bit
operand
Store Accumulator
Extensions 01
move.l ACCext01,Rx Writes the contents of accumulator 0,1 extension bytes into a
CPU register
Store Accumulator
Extensions 23
move.l ACCext23,Rx Writes the contents of accumulator 2,3 extension bytes into a
CPU register
Table 3-8. EMAC Instruction Summary (continued)
Command Mnemonic Description
DSOC
AGEX
mac
mac
EMAC EX1
EMAC EX2
EMAC EX3
EMAC EX4
mac
mac
mac
move
move
movemove
Three-cycle
regBusy stall
Accumulator 0
old
new
mac
MCF5282 and MCF5216 ColdFire Microcontroller User’s Manual, Rev. 3