I
clock period
even
though
the functional unit time
may
be
more
than
one
clock period. This segmentation
is
made
possible
by
capturing
and
holding
the information arriving
at
the unit or
moving
within the
unit
at
the
end
of every clock period.
Twelve
functional units are
identified
in
this
manual
and
are
arbitrarily
described in four groups: address,
scalar,
vector,
and
floating
point.
The
first
three groups
each
act in conjunction with
one
of the three
primary
register
types,
A,
S,
and
V,
to support the address,
scalar,
and
vector
modes
of processing available in the
CRAY-1.
The
fourth group,
floating point,
can
support
either
scalar
or vector operations
and
will
accept operands
from
or deliver
results
to S or V
registers
accordingly.
ADDRESS
FUNCTIONAL
UNITS
The
address functional units perform 24-bit integer arithmetic
on
operands
obtained
from
A
registers
and
deliver the
results
to
an
A
register.
The
arithmetic
is
two's
complement.
Address
add
unit
The
address
add
unit performs 24-bit integer addition
and
subtraction.
The
unit executes
instructions
030
and
031.
The
addition
and
subtraction are
performed in a
similar
manner.
However,
the two's
complement
subtraction
for the
031
instruction
occurs
as
follows.
The
one's
complement
of the
Ak
operand
is
added
to the
Aj
operand.
Then
a
one
is
added
in the
low
order
bit
position of the
result.
No
overflow
is
detected in the functional
unit.
The
functional unit time
is
two
clock periods.
Address
multiply unit
The
address multiply unit executes instruction 032,
which
forms
a 24-bit
integer product
from
two
24-bit operands.
No
rounding
is
performed.
The
result
consists of the
24
least
significant
bits
of the product.
The
functional
unit
does
not detect overflow of the product.
The
function unit time
is
six clock periods.
2240004
3-11
E