VECTOR
PROCESSING
All
operands processed
by
the
CRAY-1
are held in
registers
prior
to
their
being processed
by
the functional units
and
are received
by
registers
after
processing.
In
general, the sequence of operations
is
to load
one
or
more
vector
registers
from
memory
and
pass
them
to functional
units.
Results
from
this
operation are received
by
another vector
register
and
may
be
processed additionally in another operation or returned to
memory
if
the
results
are to
be
retained.
The
contents of a V
register
are transferred to or
from
memory
by
specifying a
first
word
address in
memory,
an
increment for the
memory
address,
and
a length.
The
transfer
proceeds beginning with the
first
element of the V
register
and
incrementing
by
one
in the V
register
at
a
rate
of
up
to
one
word
per clock period depending
on
memory
conflicts.
A
result
may
be
received
by
a V
register
and
re-entered
as
an
operand to
another vector computation in the
same
clock period. This
mechanism
allows for "chaining"
two
or
more
vector operations together.
Chain
operation allows the
CRAY-1
to produce
more
than
one
result
per clock
period.
Chain
operation
is
detected automatically
by
the
CRAY-1
and
is not
explicitly
specified
by
the
programmer,
although the
programmer
may
reorder
certain
code
segments
in order to enable chain operation.
There
may
be
a
conflict
between
scalar
and
vector operations only for the
floating point operations
and
storage access.
With
the exception
of
these
operations, the functional units are
always
available for
scalar
operations.
A vector operation will
occupy
the selected functional unit until the
vector
has
been
processed.
Parallel vector operations
may
be
processed in
two
ways:
1.
Using
different
functional units
and
all
different
V
registers.
2.
Chain
mode,
using the
result
stream
from
one
vector
register
simultaneously as, the operand to another operation
Using
a
different
functional
unit.
Parallel operations
on
vectors allow the generation of
two
or
more
results
per clock period.
Most
vector operations
use
two
vector
registers
as
2240004
1-6
E