IBM 709, 7090 General Information Manual

~~
General
Information
Manual
iii
709·7090
Data
MINOR
REVISION
(August, 1960)
This
edition,
Form
D22-6508-2, is a
minor
revISIon of
the
pre-
ceding
edition
but
does
not
obsolete
Form
D22-6508-1.
The
principal
change
in
this
edition
is
the
addition
of
a section
on
1401
operation
on
page 31.
© 1959, 1960 by Internatio.nal Business Machines Corporation
INTRODUCTION
Binary
Notation
Octal
Notation
Magnetic
Cores
CENTRAL
PROCESSING
UNIT
Stored
Program
. Assembly Programs . Computer
Operations
Information
Paths
Indexing
and
Indirect
Addressing
Sample
Problems
. Operator's
Consoles.
.
INPUT-OUTPUT
COMPONENTS
Magnetic
Tape
Storage.
Auxiliary
Equipment
.
Data
Synchronizer
IBM
755
Tape
Control. Multiplexor Data
Channel
. . External
Signal
Direct
Data
Feature
.
Magnetic
Drum
Storage
Punched
Cards
Card
Reader
Card
Punch
.. Printer Cathode
Ray
Tube
Equipment
SHARE
Organization Programming
System
FORTRAN
AUTOMATIC
CODING
SYSTEM.
APPENDIX
Contents
5
6
6
7
10
10
13
15
16
18
20 22
24 24
30
31
35 35
36
37 37 37
39 40
41 41
42
44
44
44
46
47
IBM
7090
Data
Processing System
IBM
709·7090
Data Processing System
Data
processing
sy~tems
are
finding new
application
in
virtually
every
phase
of
science, business,
and
in-
dustry.
Rapidly
expanding
scientific investigations in-
volve
many
complex
calculations.
The
vast
amount
of
data
constantly
being
used
in
aircraft
industries,
government
agencies,
and
business establishments
of
all kinds
demand
machines to
compute,
select,
and
correlate
data
at
electronic speeds.
Figure I shows
the
kind
of
problem
that
computers
are solving for scientists today.
Many
similar
prob-
lems
are
encountered
and
solved
in
the
scientific field;
however,
the
computer
is
adaptable
to business
appli-
cations as well.
The
computer
can
be,
and
is,
used
for payroll,
material
inventory,
or
any
of a great
num-
ber
of
other
business
problems
requiring
prompt,
accurate results.
In
the
sample
problem,
the
computer
calculates
the
density
and
velocity
of
air
at
each
of
the
mesh-points
shown.
From
these
data,
engineers
can
evaluate
the
lifting
power
and
drag
of
the
wing
section. By solv-
ing a number
of
these problems,
an
optimum
new
wing design is developed.
The
mathematical
formulas used are:
4.
p=
f (p)
Figure 1. Aircraft
Application
Equations
1, 2 and 3 are
replaced
by difference
equations
over a network
as
shown
in
the
figure.
This
difference system
and
equation 4 form
a set
of
simul-
taneous
non-linear
algebraic equations.
These
are
solved
on
the
computer
by
repeating
calculations,
called
an
iteration
method.
In
this
one
typical prob-
lem,
there
are
800 equations,
100
iterations, 80,000
operations
per
iteration,
and
8,000,000
operations
per
solution.
Figure 2 shows a comparison,
in
time, between
man-
ual
methods
of
solution
and
solution
by computers.
The
times
are
approximate.
This
comparison
shows
that
computers
of
today now have
the
ability
to solve
problems
that
cannot
be solved
in
a lifetime
of
man-
ual
labor.
One
of
the
first things to be considered
in
a com-
puter
system is
an
understanding
of
the
functions
of
its various components. A simplified
computer
sys-
tem consists
of
three
main
units
as
shown
in
Figure
3.
In
a typical
computer
system, several types
of
input-
output
devices
are
needed.
These
may be
units
such
~
r\
\ Pencil and paper {
15
years
Desk
calculator
80 weeks
IBM
701
2 minutes
IBM
704
30 seconds
IBM
709
25 seconds
IBM
7090
5 seconds
Figure
2.
Time
Comparison
of
Computation
Methods (Approxi-
mate)
Introduction
5
Figure
3.
Main
Computer
as
punched magnetic punched
An
ing
information
unit,
A storage
"remember"
card
or
paper
card
recorders,
input
component
usually called
unit
all called orders) to then
used
to tell
data
is
to be executed.
The
central
tion
to accomplish all
tions
and
adapt
to
processing
a section to modify
the
processing tablished procedure. A of
the
central
puter
in example determine result
of this test,
processing
its
operation
of
one
if a number
Components
readers, a device to
tape, a
telephone
and
is
any
printing
device
into a computing
the
must
input
the
computer.
the
computer
central
also be
data
unit
processing
provided
and
These how
has
arithmetic
or
to
variations
control
by
making
of
these decisions
section is also a
unit
and
logical decisions.
is positive
the
computer
can
read
or
write
on
or
teletype line,
equipment.
capable
and
data
of
feed-
handling
unit.
to store
or
instructions (also
instructions are
the
processing
an
arithmetic
and
logical opera-
of
sec-
change instructions
within
the
es-
part
directs
the
com-
An
would
be a test to
or
negative. As a
take
a different processing course for each alternative. Simple tests may be
The
output
recording
ing
unit
combined
the
has
to
components
resultant
operated
make
data
upon
complex
are
any devices
after
it.
logical decisions.
capable
the
central
process-
of
The
decimal system, by most serves well for
people
early
counting computers designed neers
and
businessmen, be designed to use
system
binary puters shorthand Octal
but
bols 0
starts
with
ever, there
of
numbers?
The
reason circuits; therefore, is
binary
method
notation
has
no
relation
The
binary,
and
1 to
in
the
same
a 0
for
zero
are
is
is used
or
no therefore necessary to take binary tem. to position. A a 2 an
order
time a is
Octal
the
system
This
left
that step is to place a I and
start
binary
in
the
decimal system.
analogous
every
as
follows:
Binar)
8 4 2 1
0
1
0 100 1 1 0
0
1
o 0 - 8 1 0 o 1 - 9
ten
manner
time
is
reached.
Decimal
=
0 1
2 1 1 - 3
-
-
4
- 6
Notation
with
its
in
their
purposes.
to
assist
that
current
the
in
nature.
of
writing when
to
the
The
discussing
internal
"base two" system, uses
represent
manner
and
more
is
taken
10
all
as
then
a I for one.
symbols to be used.
the
same step
at
again
with
is
equivalent
Counting
with
a carry to
a two is reached
Counting
Binary
84
1 0 1
11
ten
digits, is
training.
Why
This then
mathematicians,
the
digital
mathematics
computers
of
octal system
long
binary
numbers.
the
computer,
computer
the
two sym-
quantities.
in
the
ten
in
in
the
a 0
in
instead
in
the
2 1
=
-
1
=
Counting
decimal system
At
two, how-
at
two
the
decimal
next
position
in
the
this respect to
is
continued
the
next
of
binary
Decimal
1
5
7
learned
system
should
engi-
binary
use
com-
is
circuits.
It
is
in
the
sys-
original
in
higher
every
system
a
Binary
The scientific familiar it
is possible
ing
What
of convenience. Decimal
is
However, fingers familiar
rather
the
6
Notation
common
systems
most
than
decimal system.
IBM
decimal
world
that
its use is that,
are
numbering
familiar
had
our
instead
with a numbering
ten,
709-7090
is a
for
more
and
primeval
of
ten, we
and
notation
familiar
of
one.
hardly
some purposes,
convenient.
system
to
use
notation
is
understood
ancestors developed
would
system based
we
might
the
This
questioned. However,
is
is
probably
consequently
commercial
notation
other
entirely a
used
and
is so
number-
matter
because
by most people.
eight
be
more
on
eight,
question
It
has
already require mal
is
and string mitted hand
about
numbers
not a problem
writing, these
of
ones
from
method
fills this need. Because
it
binary,
another
is
4, 5,
numbers
by inspection.
8.
This
6,
and
means
7. relationship lent
to
one
bines
what
binary
with
been
pointed
three
times as
to express
to
the
computer
the
binary
and
zeros
one
individual
is necessary.
of
can
be
converted from
The
there
are
There
is
that
are
three
octal position.
has
been
shown
the
octal
numbers.
out
many
equivalent
numbers cannot
to The its simple
base
eight
no
8's
binary
The
concerning
that
binary
numbers
positions as deci-
number.
itself,
but
in
talking
are bulky. A
be effectively trans-
another.
octal
Some short-
number
system
relationship
one
system
of
the
octal system
symbols:
or
9's. positions following
The
0,
1,
important
are
equiva-
table
decimal
This
long
to to
2,
3,
com-
and
BINARY
OCTAL
DECIMAL
0
0 0
1 1 1
10
2
2
11
3
3
100
4 4
101
5 5
110
6 6
III
7 7
At
this
point
a carry to
the
next
higher
position
of
the
number
is necessary, since all
eight
symbols
in
the
octal system have
been
used.
1000 1001
1010 1011
10
II
12 13
8 9
10
11
As
far
as
the
internal
circuitry
of
the
computer
is
con-
cerned,
it
only
understands
binary
ones
and
zeros.
The
octal system
is
used
to
provide a shorthand
method
of
reading
and
writing
binary
numbers
so
that
the
contents
of
a register,
when
shown
on
the
operator's
panel,
may
be
read
directly.
This
is
shown
in
Figure 4,
using
a 36-digit
binary
number.
Reg;
ster contents (b; nary)
Octal
value
Figure
4.
Binary
Representation
of Register
Contents
Magnetic
Cores
The
main
storage
medium
for
many
computers
is
the
magnetic
core.
Each
magnetic core is a
ring
or
doughnut
shaped
piece
of
ferromagnetic
material.
The
cores "remem-
ber"
information
indefinitely,
and
can
recall
it
in
a
few
millionths
of
a second.
When
a wire
is
inserted
through
the
hollow
center
of
a core (Figure
5),
an
electrical
current
passed
along
the
wire sets
up
a mag-
netic
field
around
the
wire.
This
field magnetizes
the
core.
When
the
current
is removed,
the
core
remains
magnetized.
a
current
is
passed
along
the
wire
in
Core
Is
Set
Figure
5. Magnetic Core Action
the
opposite
direction,
the
magnetic
field set
up
around
the wire is reversed.
When
this occurs,
the
core
is
said to have
"flipped"
or
changed
its mag-
netic state. A
"sense" wire
is
inserted
through
the
core
and,
when
the
core flips, a small electrical voltage
is sent along
the
sense wire.
This
voltage
may
then
be amplified
and
used
in
the
computer
(Figure
6).
Computer
Figure 6.
Flipping
of a Magnetic Core
As
with
the
magnetic core, all
computer
elements
are
able
to
represent
two states.
These
two
distinct
states
provide
the basis by
which
these elements
hold
information.
For
this reason,
the
elements
are
called
bi-stable elements.
For
example,
one
state
may
be
interpreted
as
the
digit
0;
the
other,
as
1.
Similarly,
the
elements may be used to represent:
plus
or
minus,
on
or
off,
yes
or
no,
and
so on. Several of these ele-
ments are shown
in
Figure
7.
The
IBM
709
and
7090
Data
Processing Systems use
high-speed core storage units.
Each
unit
is
divided
into
distinct sections called locations.
Each
location
is
uniquely
identified by a
number
assigned to it.
This
identifying
number
is
called
an
address because
just
as
a street address denotes
the
precise
location
of
a
particular
building
on
that
street, this
number
de-
liD
..
State
Figure
7.
Bi·stable
Computer
Elements
Introduction
7
Number 1500
Figure
8.
Core Storage
Unit
notes the location of a
particular
item
of
data
inside
the core storage
unit
called a
"word"
(Figure
8).
Each word is
further
subdivided
into
elements
called
bits. Each
bit
has a value
of
either
a 0
or a 1.
Thus.
the bits
(36
in
each word)
are
the basic units
of
information
in
the computer. Figure 8 also shows
S6
"planes"
or
"stories"
in
the core storage "building."
The
operation
of locating a word
in
core storage may
be compared to the
operation
of
an
elevator
in
an
office
building.
The
elevator picks
up
passengers from
each floor;
in
core storage,
one
bit
of
information is
read
or
stored from each plane.
In
actual computer
operation, all
36
bits are read, stored,
or
operated
upon
simultaneously, one from each plane.
As
previously stated, one word contains
36
bits
of
information. Core storage contains two types of
words:
1.
A word
upon
which arithmetic
or
logical oper-
ations are to be performed
is
called a data-word.
2.
A word
interpreted
by the
computer
as a code
to
"order
or
instruct"
it
to perform a
particular
operation
is
called an instruction-word.
8
IBM
709-7090
Figure 9. Instructions
and
Data
in
Core Storage
Both types of words are combinations of
36
zeros
and
ones.
An
instruction is able to "direct"
the
computer
to perform some type
of
operation, e.g., read. write,
add, subtract,
or
test for zero.
If
a
data
word were
incorrectly used
as
an
instruction, the computer
might
perform
an
illegal
operation
depending
upon
the
data
bit
configuration.
Data
words form records. fields,
amounts, results,
and
so
on. Figure 9 is a schematic
of core storage
with
both
types
of
words contained
in
separate locations.
Core storage
units
are available to provide the com-
puters
with
a capacity
of
4096, 8192,
or
32,768 word
locations of
36
information
bits each. As a decimal
digit is expressed by three
of
these bits, a total of
II
significant decimal digits may be expressed by each
word.
In
BCD coding (alphamerical characters),
one
word contains six numerical
or
alphabetic characters.
Thus,
the 32,768 words of core storage may contain
the binary equivalent to
360,448 decimal digits of stor-
age
or
the BCD representation of 196,608 characters.
The
actual capacity of storage is thus directly related
to the type of coding used.
Figure
10
shows the three core storage units
that
are available for the 709
and
7090
Data
Processing
Systems.
The
IBM
737
Core Storage, used
with
the 709
system, has 4,096 words
of
storage.
The
IBM
738
and
the
IBM
7302 Core Storage have 32,768 words
of
stor-
age
and
are used
with
the
709
and
the 7090 systems,
respectively.
Figure
10.
IBM Core Storage
Units
Introduction
9
Central Processing
Unit
The
central processing
unit
can
be divided
into
two
basic parts,
information
processing elements
and
exe-
cution
controls.
The
information
processing elements
are normally referred to
as
the
arithmetic
section.
The
execution controls are called simply
the
control
section.
The
arithmetic
section
is
the
computer's problem-
solving
unit.
The
operations
of
addition, subtraction,
multiplication,
and
division, as well as shifting, trans-
ferring,
and
storing
of
results are executed
in
this
section. Figure
11
shows a few of
the
operations per-
formed
in
the
arithmetic
unit.
The
control section guides the
computer
through
the
operations necessary to complete
the
various in-
structions.
The
execution
of a group
of
instructions may be
compared to
compounding
a chemical formula.
The
arithmetic
section would be
the
laboratory where the
compounding
takes place;
it
would
call
on
core stor-
age for materials needed to
produce
the
result.
The
control section would follow directions given
in
the
formula.
It
would instruct
the
chemist as to
what
ingredients to mix, how
long
to
mix
them,
and
in
what
order
they should be combined.
Of
necessity, then, the control section contains a
device called
the
"instruction
sequencer."
This
de-
vice locates
the
proper
instruction to be executed;
then, while
the
instruction
is
being executed, this de-
vice sets
up
the
conditions for
the
next
instruction.
At
different times
in
the program,
the
next
instruction
to
be
executed may
depend
on
the result of a test in-
struction, for example,
whether
an
error
indicator
is
on
or
off (Figure
12)
.
The
arithmetic
operations which computers are
capable
of
performing
treat
each
part
of
a word
in
014623
ADD
541034
555657
12345
Sub.
11111 01234
':"_
,,'_"'~"~
Unit
Control
Un
i t
Figure
II.
Arithmetic
Operations
10
IBM
709·7090
12345
SHIFT~
~
~
STORE
3416
Arithmetic Section
"test the indicator!!
error
indicator«.t-.
"if
the indicator
is
on obtain the next instruction-from location
1000.
If
the indicator
is
off obtain the next instruction
from
location
2000."
"the
indicator
is
on,
put 1000 into the instruction sequencer"
"get
the instruction located
at
address 1000 and
execute
it."
- - - -
COntral
se~iia;;
- - - - - - - - - - - - - - - - -
--
11000!;nstructian sequencer
Figure
12.
Conditional
Testing
and
Transferring
core storage as
either
a 1
or
a
O.
Thus, a computer
word
consists
of
36 zero
and
one
digits
and
is said to
be
expressed
in
the
"binary
system."
An
example
of
a
binary
word
as
it
appears
in
the
arithmetic
unit
is
001101110010011011001001111001001001 which is sim-
ply
a string
of
zeros
and
ones. By
doing
its arith-
metic
in
the
binary system,
the
computer
is able to
achieve
greater
speeds
and
efficiencies
than
would
otherwise be possible.
Normally,
in
solving a problem,
the
numerical
data
are
originally
entered
into
the
computer
in
decimal
or
IBM
card
coding.
The
computer
is
then
instructed
to translate
the
data
into
binary form, go
through
the
desired computations,
and
then
translate
the
results
back
into
decimal form (Figure 13). However,
data
may be
entered
into
the
computer
in
any form desired
by the programmer.
Instruction
0011010101111
ADD
11010001111,00
10000011101011
PRINT
Central
P(ocessing
Unit
Figure
13. Decimal
and
Binary
Data
Flow
Stored
Program
The
work accomplished by the
computer
in
solving
a
problem
or
processing
data
consists
of
executing
many
instructions
at
high
speed.
To
solve a problem,
it
must
first
be
reduced to equations
or
instructions
that
the
computer
is capable
of
performing.
The
en-
tire set
of
instructions used
in
solving a
problem
form
a program for
the
computer. Because these instruc-
tions are
held
in
the computer's storage
unit,
it
is
called a stored program system.
Normally, instructions
are
taken
from
sequentially
ascending locations
of
core storage. However,
the
exe-
cution
of
instructions does
not
necessarily have
to
occur
sequentially.
It
is possible,
when
control
or
transfer
instructions
are
given, for
the
computer
to
alter
the
process
of
sequential
execution
and
to
indi-
cate
some
particular
location
in
core storage contain-
ing
the
next
instruction
word
to
be
executed.
In
this
way,
the
execution
of
any
instruction
or
block
of
in-
structions
may
be
repeated
as
often
as desired.
For
some
control
instructions,
whether
the
next
in-
struction
is
taken
in
sequence
or
from
some
other
specified location
may
depend
on
the
result
of
a test
(Figure
12).
In
this case,
the
control
operations
pro-
vide
the
program
with
decision-making abilities.
The
logical
path
followed by
the
program
(that
is,
the
precise sequence
of
instructions to
be
executed) may
be
controlled
by a series
of
tests
applied
at
various
points
in
the
program.
Doing
this gives a
stored
pro-
gram
the
ability
to
change
its course of execution.
These
conditional
operations
increase
immeasurably
the
scope
of
the
system's
application.
Most
computer
instructions
have
an
address
part
indicating
the
location
in
core storage
subjected
to
some
arithmetic
or
logical
operation.
This
address
part,
or
field, always occupies
bit
positions
21
through
35 (Figure 14)
in
an
instruction
word.
Address
part
I
s,
I
Figure
14. Address
Part
of
an
Instruction
The
15-bit address field is large
enough
to
hold
the
number
32,767 -
the
largest address
in
core storage.
This
number
expressed
in
the
binary
system is simply
15
consecutive ones (Figure 15) .
II
III
I I
11111
11111
S,1
2021
35
Figure
15. Address
Part
Showing
Maximum
Address
In a data
processing system
with
8,192 words of
core storage,
the
largest address (8191)
is
contained
in
only
13
bit
positions
of
the
instruction
word.
The
contents
of
the
two left-most positions
of
the
address
field
are
ignored
during
the
execution
of
an
instruc-
tion
to
decode
an
address. Similarly, a
computer
with
4,096 words
of
core storage uses
only
bit
positions 24
through
35
as
its address field.
The
operation
part
of
an
instruction
normally
is
not
fixed
in
length
but
may
vary
depending
upon
the
instruction
itself.
Figure
16
shows
the
bit
pattern
for
an
instruction
specifying
the
addition
of
the
contents
S,1
35
Figure
16.
Add
Instruction
of
core storage
location
0001.
When
this
instruction
is
executed
by
the
computer,
the
contents
of
core loca-
tion
0001
are
added
to
the
contents
of
the
accumulator
register.
For
example, assume
that
the
accumulator
contains
the
number
+1.
If
the
number
in
location
0001
is
+2,
the
result
of
executing
the
ADD
instruction
(Fig-
ure
17) is a 1
bit
in
positions 34
and
35,
and
0 bits
in
all
other
positions
of
the
accumulator;
(II
is
the
binary
expression for
the
sum,
3).
The
first
position
of
the
word
is
used
to express
the
sign
of
the
amount
or
result.
Instruction
(Add)
location 1
(+2)
000000000000000000000000000000000010
, ,
AC
before
(+1)
a a a
000
a a a a 0 a
000
a a 0 a 0 0 a 0 0 0 a 0 0 a
00
a 0 a
01
,
AC
after
(+3)
1010000
a 0 0 0 0 0 a a 0 0 0 a a 0 a a a 0 a 0 0 a
00000
a a 1
Ii
s 1
J5
Figure
17.
Execution
of
an
Add
Instruction
A register is defined
as
a device
with
the
ability
to
accept
data,
hold
them,
and
transfer
the
data
to
an-
other
register
or
device.
The
registers
are
given dif-
ferent
names according to
their
functions.
Thus,
the
accumulator
register
"accumulates"
arithmetic
results.
The
multiplier-quotient
register
holds
either
the
mul-
tiplier
or
the
quotient
in
an
arithmetic
operation.
On
all
arithmetic
operations,
the
sign positions
of
the
registers
in
use
are
automatically
adjusted.
The
accumulator
register has 38 positions.
They
allow
the
register to
handle
a 35-bit
word
with
its
sign.
Two
extra
positions, P
and
Q,
are
provided
to
keep
track
of
overflow conditions.
If
two 35-bit
num-
bers
are
added
together,
it
is possible
that
the
result
would
be
larger
than
35 bits, as
shown
in
Figure
18.
The
accumulator
is
used to
hold
one
factor
during
arithmetic
operations.
The
other
factor usually is
Accumulator
register
Storage register
Combined in
the
adder
and
returned
to
the
accumulator
register.
S Q P I
35
! ! ! 1 000000000000000000000000000000000 1
1100000000000000000000000000000000111
Q P 1
35
I !
Ii
000000000000000000000000000000001001
!
iIi
000000000000000000000000000000001001
S Q P 1
35
}1igure 18.
Accumulator
Overflow
Condition
Central
Processing
Unit
11
Accumulator register before a
left
shift.
5 Q P 1 35
I ! ! :100000000000000000000000000000000001
5 Q P
1-----------35
Accumulator register I I I i I
after
a left shift
of
I
11
100000000000000000000000000000000000
one
place.
Figure
19.
Accumulator
Shifting
held
in
the
storage register.
The
two factors
are
com-
bined
in
another
register-type device called
the
adder.
The
adder
consists
of
35-bit positions
and
the
two
extra
ones, P
and
Q.
Thus,
any overflow
out
of
posi-
tion
1 will
be
placed
in
position
P. Likewise, any
overflow
out
of
position P will
be
placed
in
position
Q.
An
overflow
out
of
position Q will, however, be
lost.
Information
in
the
accumulator
may be shifted to
the
right
or
to the left.
a left shift is involved,
an
overflow
condition
may
be
recorded
in
the
same man-
ner
as
in
an
arithmetic
operation
(Figure
19).
Not
only
is
the
entire
number
shifted
to
the
left,
but
zeros
are
inserted (position 35)
in
the
positions vacated.
Thus,
no
matter
what
the
content
of
the
accumulator,
if a left
shift
of
37
or
more
places is executed,
the
contents
of
the
accumulator
are
replaced by zeros.
Information
may also
be
shifted
into
the
accumu-
lator
from
the
MQ
register,
one
bit
at
a time,
or
from
the
accumulator
to the
MQ,
one
bit
at
a time.
The
effect is to create a register
that
is
74 positions
in
length,
38
positions for the
accumulator
and
36 for
the
MQ
register.
The
multiplier-quotient
(MQ)
register has
36
posi-
tions.
During a multiply
operation,
this register con-
tains
the
multiplier;
during
a divide,
it
receives
the
quotient.
The
register
can
store
and
shift a full
36-
bit
word.
In
addition
to shifting
right
or
left,
in
the
same
manner
as
the
accumulator,
it
can
also
"ring
shift."
That
is, bits shifted
out
of
the
sign position
enter
position
35
(Figure
20)
.
In
addition
to its
arithmetic
and
shifting functions,
the
MQ
register serves
as
a sending
and
receiving regis-
ter
for some
input-output
operations.
For
the
709
system, this means
that
information
coming from
the
magnetic
drum
or
going to
the
drum
and
CRT
equip-
ment
passes
through
the
MQ
register.
When a word
is
entered
into
or
taken
from a loca-
tion
in
core storage, a storage reference is said to
be
51
35
MQ
register before 111111000000000000111000111000111
000
a
ring-shift
of
three
places.
51
35
MQ
register
after
shift 11110000000000001110001110001110001111
Figure
20.
MQ
Register
"Ring
Shift"
12
IBM
709-7090
made.
This
operation
is non-destructive.
That
is,
the
contents
of
that
location
are
left
unaltered
after
the
operation.
However,
if
the
storage reference causes
new
information
to
be
entered
into
a location,
the
prior
contents
of
that
location
are
automatically re-
placed
by
the
new
information.
Only
one
such storage reference
can
be
made
during
any single
computer
cycle.
The
basic
computer
cycle
(or
internal
speed) for
the
709 is 12 microseconds
long
(12
millionths
of a second).
The
basic cycle for
the
7090 is 2.18 microseconds.
Normal
computer
operations
start
with
an
instruc-
tion
(I) cycle.
This
cycle does
the
following:
1.
It
obtains
the
instruction
to
be
executed from
the
core location designated
by
the
instruction
counter.
2.
It
locates
the
operand
(number
to
be
worked
with
or
upon),
if
any, as specified
by
the in-
struction's address
part.
An
example
would
be
the
instruction
ADD 0002 (add
the
contents
of
storage location 0002 to
the
contents
of
the
accumulator
register), shown
in
Figure
21. All
data
handling
concerned
with
storage
and
the
central
processing
unit
is accomplished
in
parallel.
This
means
that
all operations
are
concerned
with
a full
word
of
36 bits.
As
an
example, refer to Figure
17
where
an
ADD
operation
is performed.
Even
though
the
numbers
involved use
only
a few bits
of
the
entire
word,
the
remainder
of
the
word
is filled
with
zeros
and
all 36
positions
of
both
words
are
then
added
in
one
opera-
tion.
Thus
the
time
required
to
add
two
I-bit
num-
bers is
the
same
as
the
time
required
to
add
two
36-
bit
numbers.
This
principle
of
parallel
operation
is
one
of
the
basic differences between
the
709
and
7090 computers
when
compared
with
the
705 system series, which is
said
to
operate
serially (normally om;
position
or
character
at
a time) .
(ADD 0002) =
~
Instruction Register
5torage Register
~
Address Register
Adders
1-+004121503051
I (number in accumulator)
Accumulator
Register
Figure
21. Schematic, Decoding
an
Add
Instruction
The
instruction
ADD 0002
is
brought
from
core
storage
into
the
storage register.
At
this
point,
the
operation
part
is sent to
the
instruction register
to
determine
the
type
of
operation
to be executed.
At
the
same time,
the
address
portion
of
the
storage reg-
ister is
taken
to
the
address register so
that
the
proper
core storage
location
(operand) is
added
during
the
next
storage reference cycle.
All
numbers
in
Figure
21
are
shown
in
octal
notation.
The
next
cycle,
referred
to as
an
execution
cycle,
is used
when
a reference to core storage is
required
to
obtain
another
word, e.g., a
number
to be added.
Assume
that
the
address register has
the
address
of
the
core storage location to be added.
During
this second
(reference) cycle, the contents
of
that
storage location
are
brought
from core storage to
the
storage register,
and
then
to
the
adders.
At
the
same time,
the
pre-
vious
number
in
the
accumulator register
is
taken
to
the
adders. A
new
number
is
formed
in
the
adders
and
is
then
placed
back
in
the
accumulator
register
(Figure
22).
The
operation
is
now
finished
and
the
computer
is
ready
to execute
the
next
sequential
instruction.
The
type
of
operation
just
described is
called
fixed
point
arithmetic
or
integer
arithmetic.
The
computer
can
also
perform
operations
in
floating
point
arithme-
tic. A
complete
set
of
floating
point
instructions
is
provided
to
increase
the
range
of
numbers
used
and
to
reduce
programming
time.
In
integer
arithmetic,
the
size
of
the
numbers
used
is fixed by
the
design
of
the
computer
(36-bit
word
size) . By
using
floating
point
arithmetic, a larger
num-
ber
may
be
expressed
and
operated
upon,
because a
part
of
the
word
is used to express
the
exponent
(char-
acteristic)
and
another
part
of
the
word
is
used
for
the
fraction
(mantissa).
A
comparison
of
number
size shows
that
the
largest
number
the
computer
can
use
with
fixed
point
opera-
tion
is
I X
1011.
This
is
equal
to 100 billion.
With
floating
point
operation,
however, 3 X
10
35
is
the
larg-
Instruction Register
+132540020425 (number
from
location 0002)
+1
32540020425
Accumulator
Register
Storage Register
Address
Reg
i ster
(number
from
location 0002)
(previous
number
in accumulator)
(resulting number
in
accumulator)
Figure
22. Schematic,
Performing
an
Addition
I
Characteristic
Fraction
51
8 9
35
Figure
23.
Floating-Point
Word
Format
est
number.
This
number
is too
high
to be expressed
in
common
language
terms.
In
the
computer,
a floating-point
number
is stored
in a word
as shown
in
Figure 23.
The
fraction
is
con-
tained
in
bit
positions 9
through
35
with
the
sign of
the
fraction
contained
in
position S of
the
word.
The
characteristic
is
contained
in
bit
positions 1
through 8 and
is
formed
by
adding
+128
to
the
ex-
ponent.
For
example,
an
exponent
of
-32
would
be
represented
by a characteristic
of
128-32
or
96.
An
exponent
of
+ 1
00
would
be
represented
by a charac-
teristic
of
100+128
or
228.
Most
integer
arithmetic
instructions
have
a floating-
point
counterpart
instruction.
Thus,
it
is
possible to
ADD
or
to
perform
a floating-point ADD
(FAD).
To
summarize, a floating-point
binary
number
(X)
may be
represented
as
a signed
proper
fraction (B)
times some integral power (b) of
2.
Examples:
X
B
2
b
-.001
=-.100
X
2-"
.100
.100
x
2"
l.l00
.110
X
2'
110.000
.110
X
2
3
Assembly
Programs
The
writing
of a complete
program
for
the
computer
in
its
machine
language
would
be
rather
awkward.
For
example, to
write
only
the
one
instruction
re-
quired
to
subtract
the
contents
of
core
location
0003
from
the
contents
of
the
accumulator
register
requires
the
recording
of
36 zeros
and
ones,
as
shown
in
Figure
24.
This
instruction
can
be
written
as
SUB
0003, a
more
convenient
form
of
expressing
the
instruction.
The
writ-
ing
of
instructions
in
this form is
an
improvement
over
the
system
of
writing
36
zeros
and
ones.
In
addi-
tion
to
reducing
the
amount
of
information
which
must
be
written,
it
has.
more
meaning
to
the
reader.
Namely,
"subtract
the
contents
of
location
0003."
However, to
determine
the
entire
machine
operation,
the
programmer
or
person
reading
the
program
must
Operation
Address
Figure
24.
Subtract
Instruction
Central
Processing
Unit
13
know
what
is stored
in
location 0003.
To
assist
the
programmer,
the
use
of
symbols
can
be
extended
to
in-
clude addresses as well as
the
operation
part
of
an
in-
struction.
Assuming
that
the
net
pay
for a payroll calculation
is
stored
in
location 0003,
the
instruction
might
now
be
written
as
"subtract
net."
This
clarifies to the pro-
grammer
the
operation
to be performed,
and
also
what
quantity
is involved.
Thus,
symbolic
programming
employs instruction-by-instruction coding
in
a lan-
guage
that
is a representation
of
the
basic language
of
the
computer
itself.
The
computer
can
execute instructions only
if
,they
are stored
in
machine language.
Thus,
the
instruction
"subtract
net"
must be converted to
the
basic
machine
language before its execution.
One
way
of
doing this
would be to
manually
convert all symbolic instruc-
tions to machine language before
entering
them
into
the
computer.
This
obviously would be a laborious
task. A more practical solution
is
to have
the
com-
puter
perform
the
conversion.
This
is accomplished
through
use
of
a symbolic assembly program.
An
assembly
program
performs
the
necessary trans-
lation
or
conversion from
the
symbolic language to
the machine language.
At
the
same time,
the
program
assigns absolute core storage locations to
the
imtruc-
Convert
the
Instructi on
"SUBTRACT NET"
Becomes
000100000010000000000000100000000
No
Yes
Print
and
punch
the
resulting
program
Figure 25. Flow
Chart
of
an
Assembly
Program
14
IBM
709-7090
tions
and
data
contained
in
the
symbolic program.
Figure
25
shows a flow
chart
of
the
process involved
when using
an
assembly program. Assume
that
the
instructions to
be
assembled are
on
punched
cards
and
that
the
assembly
program
itself is
on
a magnetic tape
(assembly tape) .
The
assembly
program
normally provides certain re-
strictions
upon
the
length
and
type
of
symbols
that
may
be used by
the
programmer.
It
assigns
an
abso-
lute
core storage location for
the
first symbolic instruc-
tion
and
increases this location by
one
for each sub-
sequent
instruction decoded.
In
this manner, the de-
coded
program
instructions are assigned sequential lo-
cations. Space
is
provided for
the
data
that
are a part
of
the
assembled program. Normally,
the
constants
and
other
data
are placed
at
the
end
of
the
symbolic
program
and
are assigned sequential locations
that
follow
the
instruction area.
During
assembly,
the
first reference to a symbolic
address assigns this address to
an
absolute storage lo-
cation. Any subsequent references to this symbolic ad­dress will also be assigned
the
same address.
The
man-
ner
in
which
the
assembly proceeds is described below.
Each
symbolic
instruction
is
read
from
the
card
reader
into
the central processing
unit.
The
"sub-
tract"
portion
of
the
first instruction is
matched
against
the
contents
of
the
assembly tape
and
is de-
coded
into
the
proper
bit
configuration for a
subtract
operation
000100000010.
The
"net"
portion
of
the
instruction
is assigned a location
in
core storage
that
is
not
being
used.
This
bit
configuration (assume
000 100000000)
is
then
inserted
into
the
address
portion
of
the
decoded
subtract
instruction.
The
full instruc-
tion
word
(000100000010000000000000000 I 00000000),
both
operation
and
address parts,
is
then
written
as
the
first instruction
on
the
program
tape.
The
original
"subtract
net"
is stored
so
that
it
may
appear
in
the
final
printing
of
the
program.
The
assembly
program
then
tests to
determine
if
more instructions
remain
to
be
decoded.
If
there
are more,
the
above
process
is
repeated
until
all symbolic instructions have
been
decoded
and
written
on
the
program
tape.
When
the
assembly process is complete,
the
resultant
as-
sembled
program
is
printed,
together
with
the
original
symbolic instructions.
The
print-out
takes
the
follow-
ing
form:
SYMBOLIC
INSTRUCTION
DECODED
MACHINE
EQUIVALENT
SUBTRACT
NET
000100000010000000000000100000000
When
the
printing
process is complete,
the
assembly
program
furnishes the
programmer
with a group
of
punched
cards
containing
the
machine
language
trans-
lation
so
that
if
the
program
is used again,
the
as-
sembly process
need
not
be
repeated.
Computer
Operations
The
format
of
the
instruction
word
is, for
the
most
part,
a precise one.
Although
slight
variations
exist,
in
general
the
format
is
as
shown
in
Figure
26.
Operation
part
Flag
Tag
Address part
I I I I
5,
1
11
12-13 18-20
21
35
Figure 26.
Instruction
I'onnat
The
operation
part
usually
is
contained
in
positions
S,
1-11
of
the
instruction
word.
In
the
following text
and
in
program
writing,
an
alphabetic
code
is
used
to
identify
the
instruction
operation
rather
than
the
full
name
of
the
instruction.
Thus,
the
code
CLA
signifies
CLear
and
Add,
or
SUB
means SUBtract.
If
the
numeri-
cal
machine
language
code is to be used,
it
is given
in
the
octal system.
For
example,
+0500
is
the
code
for
the
clear
and add
operation;
+0402
denotes subtrac-
tion.
All
abbreviations are simply
shorthand
methods
used to
reduce
the
manual
task
of
writing a program.
The
flag
part,
or
flag bits, is
contained
in
positions
12
and
13
of
the
word.
It
specifies
that
indirect
ad-
dressing is
to
take place.
This
operation
may
be
per-
formed
only
on
instructions
that
use
index
registers.
Both
indirect
addressing
and
the
use
of
index
registers
are
explained
later
in
the
text.
The
tag
bits
are
contained
in
positions 18, 19,
and
20.
They
specify
which
index
registers
are
to
be used.
Only
a few
instructions
may
not
use
indexing.
The
address
part
of
the
instruction
is
contained
in
positions
21
through
35
of
the
word.
It
tells
the
com-
puter
the
location
or
"operand"
that
is to be
used
with
the
instruction.
In
the
case
of
shifting
operations,
the
address
part
contains
the
number
of
places to
be
shifted.
For
other
instructions,
the
address
part
may
be a
part
of
the
operation
itself. Such a case
would
have
the
address
part
expressed as a four-digit num-
ber; read-1200 means
the
reading
operation
will
take
place
and
the
1200 will tell
which
input-output
unit
is
being
used.
In
this case,
the
tape
unit
numbered
0
on
data
channel A would
be used.
In
executing
the
instruction
ADD
1000,
the
computer
assumes
that
the
augend
is
in
the
accumulator
and
the
addend
(the
number
being
added) is specified
by
the
address
part
of
the
ADD
instruction.
The
sign
of
the
numbers
(S
position) is,
of
course, considered
dur-
ing
an
add
operation.
When
two
numbers
of
the
same
magnitude
are
being
added,
the
sign
of
the
result
is
taken
from
the
number
in
the
accumulator.
ACCUMULATOR
+6
-6
+
+
STORAGE
-6
+6
=
=
RESULT
IN
ACCUMULATOR
+0
-0
The
clear-and-add
(CLA)
instruction
is
similar
to
the
add
instruction
except
that
the
accumulator
is
cleared to zeros
and
the
contents
of
the
location
speci-
fied by
the
address
part
of
the
CLA
instruction
are
placed
in
the
accumulator.
Add
magnitude
(ADM)
is
another
similar
instruc-
tion.
Its
operation
is
the
same
as
ADD
except
that
the
sign
of
the
number
is
ignored
and
the
number
is
treated
as positive.
Other
arithmetic
instructions are
treated
in
a like
manner
since all
arithmetic
processes
are
accomplished
by
addition,
and
complementing a result
where
neces-
sary.
Subtraction
occurs
in
the
following
manner:
7 = 000111
Number
in
Accumulator
5 = 000101
Number
to
be
Subtracted
(Operand)
111000
Complement
of
Number
in
Accumulator
+ 000101
111101
Recomplement
the
Result
(No
High-Order
Carry)
000010
This
is
the
answer, 5
subtracted
from 7 = 2.
Multiplication
is accomplished by testing
the
low-
order
position
of
the
multiplier
and
adding
the
multi-
plicand
if this low-order position is a
1.
After
each
test,
the
answer is shifted
one
place
to
the
left.
This
is
repeated
until
there
are
no
more
numbers
in
the
mul-
tiplier.
5 = 000101
Multiplicand
X3=
000011
Multiplier
000101
000101
000000
15
= 00001111
Product
Division is accomplished
in
a like
manner
but
shift-
ing
occurs
in
the
opposite
direction. By
shifting
a
binary
number
one
place
to
the
left,
the
result
is
the
same as
multiplying
by 2. A
number
shifted
one
place
to
the
right
has
been
divided
by
2.
A
group
of
word
transmission
instructions
is also
provided.
These
instructions
are
concerned
with
the
movement,
at
high
speed,
of
words
or
parts
of
words
from
one
location
or
register
to
another.
In
particu-
lar,
information
may
be
either
stored
or
taken
from
locations
in
core storage
and
various registers
in
the
central
processing
unit.
Since
the
word
transmission
instructions
are
concerned
with
the
movement
of
data,
they
are
used
frequently.
The
store
(STO)
instruction
stores
the
contents
of
the
accumulator
in
the
location specified by
the
ad-
Central
Processing
Unit
15
Loading...
+ 36 hidden pages