Chapter 6. Instruction Timing
6-7
Instruction Timing Overview
Note the following regarding AltiVec instruction latency:
In non-Java mode, all VFPU instructions are pipelined as shown in Figure 6-2.
In Java mode, all VFPU instructions need an additional execution cycle before
they can get to the completion stage; however, they can still forward their result
to subsequent dependent instructions at the end of the fourth execution cycle as
in non-Java mode
All VSIU instructions have a one-cycle latency, except
mfvscr
and
mtvscr
,
which may need additional execution cycles because of execution serialization.
The complete (complete/write-back) pipeline stage maintains the correct
architectural machine state and commits it to the architectural registers at the proper
time. If the completion logic detects an instruction containing an exception status,
all following instructions are canceled, their execution results in rename registers are
discarded, and the correct instruction stream is fetched.
The complete stage ends when the instruction is retired. Two instructions can be
retired per cycle. Instructions are retired only from the two lowest CQ entries, CQ0
and CQ1.
¥
The notation conventions used in the instruction timing examples are as follows:
FetchAlthough it is not shown in these Tgures, the fetch stage includes the
time between when an instruction is requested and when it is dispatched from
the instruction queue. The latency associated with accessing an instruction
varies greatly, depending upon whether the instruction is in the BTIC, the
on-chip cache, the L2 cache, or system memory (in which case latency can
be affected by bus speed and trafTc on the system bus, and address translation
issues). Therefore, in the examples in this chapters, the fetch stage is usually
idealized, that is, an instruction is usually shown to be in the fetch stage when
it is a valid instruction in the instruction queue. The instruction queue has six
entries, IQ0DIQ5.
In dispatch entry (IQ0/IQ1)Instructions can be dispatched from IQ0 and
IQ1. Because dispatch is instantaneous, it is perhaps more useful to describe
it as an event that marks the point in time between the last cycle in the fetch
stage and the Trst cycle in the execute stage.
ExecuteThe operations speciTed by an instruction are being performed by
the appropriate execution unit. The black stripe is a reminder that the
instruction occupies an entry in the CQ, described in Figure 6-3.
CompleteThe instruction is in the CQ. In the Tnal stage, the results of the
executed instruction are written back and the instruction is retired. The CQ
has eight entries, CQ0DCQ7.