EasyManua.ls Logo

Cray CRAY-1 - Scalar Functional Units; Scalar Add Unit; Scalar Shift Unit

Default Icon
216 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
SCALAR
FUNCTIONAL
UNITS
The
scalar
functional units perform operations
on
64-bit operands obtained
from
S
registers
and
in
most
cases deliver the
64-bit
results
to
an
S
register.
The
exception
is
the population/leading zero count unit
which
delivers
its
7-bit
result
to
an
A
register.
Four
functional units are exclusively associated with
scalar
operations
and
are described here.
Three
functional units are
used
for both
scalar
and
vector operations
and
are described
under
the section
entitled
Floating Point Functional Units.
Scalar
add
unit
The
scalar
add
unit performs
64-bit
integer addition
and
subtraction.
It
implements
instructions
060
and
061.
The
addition
and
subtraction are per-
formed
in a similar
manner.
However,
the two's
complement
subtraction
for the
061
instruction
occurs
as
follows.
The
one's
complement
of the
Sk
operand
is
added
to the
Sj
operand.
Then
a
one
is
added
in the
low
order
bit
position of the
result.
No
overflow
is
detected in the
unit.
The
functional unit time
is
three clock periods.
Scalar
shift
unit
The
scalar
shift
unit
shifts
the
entire
64-bit contents of
an
S
register
or
shifts
the double 128-bit contents of
two
concatenated S
registers.
Shift
counts are obtained
from
an
A
register
or
from
the jk portion of
the
instruction.
Shifts
are
end
off
with zero
fill.
For
a double
shift,
a
circular
shift
is
effected
if
the
shift
count
does
not exceed
64
and
the i
and
j designators are equal
and
non-zero.
The
scalar
shift
unit
implements
instructions
052
through
057.
Single
register
shift
instructions,
052
through 055, are executed in
two
clock
periods. Double-register
shift
instructions,
056
and
057, are executed
in three clock periods.
2240004
3-12
E

Table of Contents