Computer Hardware User's Guide

Clocking Memory Accesses
8-29
Pipeline Operation
8.5.2.3 Operations with Parallel Stores
The next class of instructions includes every instruction that has a store in parallel
with another instruction. Bits 31 and 30 for these instructions are equal to 1 1.
The instruction word format for operations that perform a multiply or ALU opera-
tion in parallel with a store is shown in Figure 8–5. If the store operation to
dst2
is external or internal, it is performed during H3. Two bus cycles are required for
external stores, but only one CPU cycle is necessary to complete the write.
If the memory read operation is external, it starts at the beginning of H3 and
latches at the end of H1. If the memory read operation is internal, it is
performed during H1. Note that memory reads are performed by the CPU
during the read (R) phase of the pipeline, and stores are performed during the
execute (E) phase.
Figure 8–5. Multiply or CPU Operation With a Parallel Store
31
1 1 Operation
src
1
d1
src
4
24 23 16 15 8 7 0
P d2
src
2
src
3
The instruction word format for instructions that have parallel stores to memory
is shown in Figure 8–6. If both destination operands,
dst1
and
dst2
, are located
in internal memory,
dst1
is stored during H3 and
dst2
during H1, thus completing
two memory stores in a single cycle.
Figure 8–6. Two Parallel Stores
31
11
src2
dst
2
24 23 16 15 8 7 0
src
1
dst
1
ST||ST 0 0 0
If
dst1
is in external memory and
dst2
is in internal memory, the
dst1
store
begins at the start of H3. The
dst2
store to internal memory is performed
during H1. Two bus cycles are required for the external store, but only one
CPU cycle is necessary to complete the write. Again, two memory stores
are completed in a single cycle.
If
dst1
is in internal memory and
dst2
is in external memory, an additional bus
cycle is necessary to complete the
dst2
store. Only one CPU cycle is neces-
sary to complete the write, but the port access requires three bus cycles. In
the first cycle, the internal
dst1
store is performed during H3, and
dst2
is writ-
ten to the port during H1. During the next cycle, the
dst2
store is performed
on the external bus, beginning in H3, and executes as normal through the
following cycle.