
6-18
ColdFire CF4e Core User’s Manual
For More Information On This Product,
Go to: www.freescale.com
Instruction Execution Locations
FPU hardware structure is similar to the OEP. Two source operands are selected from a
variety of potential sources: memory read data, register operands from the OEP, and
operands read from the FPU register file or the fed-forwarded results from the previous
instruction. Recall the 68K/ColdFire floating-point instruction set architecture has eight
unique floating-point data registers in the FPU’s register file. Once selected, source
operands are loaded into the two operand registers at the end of OC2 and then broadcast to
the FPU’s four internal engines: FADD, FMUL, FDIV, and miscellaneous unit. FADD
executes all add, subtract, and compare instructions; FMUL performs all multiplication;
FDIV performs division, square root, and move operations; and the miscellaneous module
executes all other operations. If the destination is a FPU register, the appropriate output
result bus is selected and fed back to the FPU register file; if the destination is an integer
register or memory, results are registered and then sent to the OEP.
The EMAC’s structure differs slightly because the basic instruction (Acc = Acc + Ry*Rx)
format differs from constructs executed by the OEP and FPU. For the EMAC, the two
source operands (Ry,Rx) are selected in the OEP and sent to the EMAC. As execution
begins, the two operands enter a three-stage, 32x32 multiplier. The product is formed at the
end of the third stage. It is then combined with the accumulator in stage four, when the
accumulator is read from a register file and combined with the product; the result is then
written back. Stores of any accumulator access a second read port and the appropriate value
is sent to the OEP to be loaded into the destination location in the integer register file.
6.4 Instruction Execution Locations
Table 6-5 shows the OEP compute engine execution location for V4 instructions.
Table 6-5. V4 ColdFire Compute Engine Location
Instruction
1
<ea>
Oag
= Rn
Ex
Either
<ea>
Oag
= Mem
Ex
Either
<ea>
Oag
= Imm
Ex
Either
add.l <ea>y,Rx
x
x
x
add.l Dy,<ea>x
x
addi.l #imm,Dx
x
addq.l #imm,<ea>x
x
x
addx.l Dy,Dx
x
and.l <ea>y,Dx
x
x
x
and.l Dy,<ea>x
x
andi.l #imm,Dx
x
asl.l <ea>y,Dx
x
x
asr.l <ea>y,Dx
x
x
bcc.{b,w,l}
x
bchg {Dy|#imm},<ea>x
x
x
bclr {Dy|#imm},<ea>x
x
x
F
Freescale Semiconductor, Inc.
n
.