the sixth step as the round/store phase. The following paragraphs discuss the factors that
affect the execution time of an arithmetic instruction during each of these phases.
8.1.1 Instruction Start-Up Phase
The factor that affects execution time most heavily during this phase of an instruction is
the location and format of an external oprand. The three possible locations for an input
operand are:
1. In a floating-point data register,
2. In a main processor data register, and
3. In external memory.
If an operand resides in a floating-point data register before an instruction starts, no data
movement operation is required to prepare it for the calculation phase, and thus, the start-
up phase is very short. If an operand resides in a main processor data register, the FPCP
uses the evaluate effective address and transfer data response primitive to request it from
the MPU. In this case, the MPU does not generate any operand memory cycles, and the
operand is transferred to the FPCP with a single bus cycle, The FPCP then converts the
signed integer or single precision floating-point number to extended precision and pro-
ceeds to the calculate phase.
For the third operand location case, execution time can vary widely due to two separate
mechanisms, the addressing mode and alignment of the operand in memory, and the dat~]
format and value of the operand. The addressing mode used to locate an operand affects
execution time in a straightforward manner due to the fixed nature of effective address
calculations by the MPU. For example, if the addressing mode used is address register
indireCt, (An), then no instruction prefetch words and one long-word indirect address fetch
may be required to calculate the final address of the operand. Then, once the operand is
located, up to three long word fetches may be required to transfer the operand to the FPCP.
The execution times for these operations are quite predictable (i.e., there are no data
dependencies involved), although they are affected by instruction stream alignment, MPU
cache hits, memory access times, memory width, and operand alignment. As mentioned
earlier, certain assumptions are made with regard to these factors (for the purposes of this
discussion) so that the tables in this section may be simplified. In order to include the
effects of these factors, refer to the MC68020 user's manual or the MC68030 user's manual
for more information regarding bus operation.
The second mechanism that can affect execution times for operands in memory is the data
format. For the integer and binary floating-point formats, the execution times for conver-
sions required to prepare the operand for the calculation are relatively free from data
dependencies. However, for the packed decimal floating-point format, execution times can
vary significantly due to the value of the input operand.
8.1.2 Calculation Phase
This is the most volatile portion of an instruction with respect to execution times. The main
factor that affects the calculation time is the operation to be performed (e.g., a sine operation
requires far more time than an add operation), but for a given operation, the execution
time is data dependent. For the monadic operations, the data dependency is limited to the
type and value of the input operand; for the dyadic operations, the combination of the
MC68881/MC68882 USER'S MANUAL FREESCALE
8-3