EasyManua.ls Logo

Freescale Semiconductor MC68881 - Page 310

Default Icon
409 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
8
types and values of the two operands can also affect execution time (in this context, data
type refers to the FPCP-extended precision representation of one of the five IEEE data
types: normalized, denormalized, zero, infinity, and not-a-numer). Because execution times
vary due to data values and type combinations, Tables 8-14 and 8-15 indicate the execution
time for
each
arithmetic operation with typical arguments, along with timing values for
special case operand types such as zero, infinity, etc.
8.1.3 Round/Store Result Phase
The execution time for this phase of an instruction is dependent on the mode of operation
that is programmed into the floating-point control register, as well as the value of the
result. For example, if the rounding precision is programmed to be extended, execution
is faster than if it is single. Also, if the result of a calculation overflows or underflows the
destination precision, then more time is required to handle that exception. In the following
paragraphs, the overall execution times for the arithmetic operations assume the best case
round/store phase time. Table 8-16 lists the values used to calculate execution times for
various rounding precisions and exception handling operations.
8.2 CONCURRENT INSTRUCTION EXECUTION
An important factor that should be considered when optimizing MPU and FPCP programs
is the amount of concurrent execution time that an instruction allows. It is also an important
consideration in calculating overall execution time.
Concurrency between MPU and the FPCP applies when the main processor executes MPU
instructions while the coprocessor completes execution of a floating-point instruction. The
MC68882 can execute two floating-point instructions concurrently, providing additional
concurrency not available in the MC68881.
Overlap time between instructions determines the degree of concurrency that is possible.
Overlap time is derived from the combination of the tail of an instruction with the head of
the next instruction, where tail and head are portions of the total execution time of an
instruction. The tail is the portion of the total execution time during which another instruc-
tion can be executed. The head is the portion of the total execution time that can be
performed while another instruction is completing. The overlap time of two consecutive
instructions is either the tail of the first instruction or the head of the second, whichever
is less.
The tail of a floating-point instruction is the time during which the MPU can execute a
subsequent instruction, It consists of the time during which the processor releases the
MPU to allow a subsequent instruction to begin. During this period, the coprocessor is still
performing the calculations .necessary to complete the current instruction.
In the case of the MC68881, overlap occurs only when the subsequent instruction is an
MPU instruction. Table 8-25 is used to calculate the portion of the MC68881 instruction
that can overlap with an MPU instruction. If the subsequent instruction is a floating-point
instruction, the MPU is requested to wait to execute it until the coprocessor finishes the
current instruction. That is, the head portion of the execution time for a floating-point
instruction executing in an MC68881 is zero.
FREESCALE
8-4
MC68881/MC68882 USER'S MANUAL

Table of Contents

Related product manuals