Motorola CPU32 Reference Manual page 334

M68300 series central processor unit
Hide thumbs Also See for CPU32:
Table of Contents

Advertisement

Every instruction must prefetch to replace itself in the instruction pipe. Usually,
these prefetches occur during or after an instruction. A prefetch is permitted to
begin in the first clock of any indexed effective addressing mode operation.
Additionally, a prefetch for an instruction is permitted to begin two clocks before
the end of an instruction, provided the bus is not being used. If the bus is being
used, then the prefetch occurs at the next available time, when the bus would
otherwise be idle.
8.1.7 Effects of Negative Tails
When the CPU32 changes instruction flow, the instruction decode pipeline must
begin refilling before instruction execution can resume.
Refilling forces a
two-clock idle period at the end of the change of flow instruction. This idle
period can be used to prefetch an additional word on the new instruction path.
Because of the stipulation that each instruction must prefetch to replace itself,
the concept of negative tails has been introduced to account for these free
clocks on the bus.
On a two-clock bus, it is not necessary to adjust instruction timing to account for
the potential extra prefetch. The cycle times of the microsequencer and bus are
matched and no additional benefit or penalty is obtained.
In the instruction
execution time equations, a zero should be used instead of a negative number.
Negative tails are used to adjust for slower fetches on slower buses. Normally,
increasing the length of prefetch bus cycles directly affects the cycle count and
tail values found in the tables.
In the following equations, negative tail values are used to negate the effects of
a slower bus. The equations are generalized, however, so that they may be
used on any speed bus with any tail value.
NEW_TAIL
=
OLD_TAIL
+
(NEW_CLOCK - 2)
IF ((NEW_CLOCK - 4) >0) THEN
NEW_CYCLE
=
OLD_CYCLE
+
(NEW_CLOCK -2)
+
(NEW_CLOCK - 4)
ELSE
NEW_CYCLE
=
OLD_CYCLE
+
(NEW _CLOCK - 2)
where:
NEW_TAIUNEW_CYCLE is the adjusted tail/cycle at the slower speed
OLD_TAIUOLD_CYCLE is the value listed in the instruction timing tables
NEW_CLOCK is the number of clocks per cycle at the slower speed
CPU32 REFERENCE MANUAL
INSTRUCTION EXECUTION
TIMING
MOTOROLA
8-7

Advertisement

Table of Contents
loading

Table of Contents