Technical data

Optimizing with MACRO-32
The data from a store instruction is internally buffered in the chip. This
offers the advantage of allowing cache hit load instructions to issue and
complete while the write executes over the XMI.
3.4.3 Memory Management Okay (MMOK)
When a memory reference occurs, control is turned over to memory
management until an MMOK is returned indicating that all memory
references were successful. An algorithm is used to predict when MMOK
will be returned, to determine when new instructions can be issued. For
every vector element a new last element virtual address is calculated
based on the current element virtual address, the number of remaining
elements, and the stride. Every element virtual address is compared to
the calculated last element virtual address to determine whether both
reside in the same two virtual page window. If they do reside within the
same two pages and if the current virtual address has been successfully
translated, then MMOK is asserted. If not, then the generation of virtual
addresses continues.
3.4.4 Gather/Scatter Instructions
An array whose subscript is an integer vector expression is "indirectly
addressed." Indirect addressing appearing on the right side of an
assignment statement is called a gather operation; on the left side it
is known as a scatter, as shown in the following:
DO 80 I = 1,95
J = IPICK(I)
A(I) = B(J) + C(K(I)+3) * D(I)
80 CONTINUE
Array A requires a scatter operation. B and C require gathers.
Loops that contain references to a scattered array or stores into a
gathered array [have potential for data dependency, as shown in the
following:
DO 10 I = 1,N
A(I) = B(I) + C(I) / D(ID(I))
B(IB(I)) = X(I) * Y(I)
D(I) = E(I)**2
G(JG(I)) = 2. * G(NG(I))
10 CONTINUE
Potential data dependency exists for arrays B, D, and G.
3–14