1960 12_#18 12 #18

1960-12_#18 1960-12_%2318

User Manual: 1960-12_#18

Open the PDF directly: View PDF PDF.
Page Count: 359

Download1960-12_#18 1960-12 #18
Open PDF In BrowserView PDF
Proceedings of the

EASTERN JOINT _COMPUTER CONFERENCE

December 13-15, 1960

New York, New York

Sponsors:
THE INSTITUTE OF RADIO' ENGINEERS
PrQfessional Group on Electronic Computers
THE AMERICAN INSTITUTE OF ELECTRICAL ENGINEERS
Committee on Computing Devices
THE ASSOCIATION FOR COMPUTING MACHINERY

Vol. 18

Price $300

PRIOR NJCC CONFERENCES

NUInber
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

Conference
Eastern
Eastern
Western
Eastern
Western
Eastern
Western
Eastern
Western
Eastern
Western
Eastern
Western
Eastern
Western
Eastern
Western

Location
Philadelphia
New York City
Los Angeles
Washington
Los Angeles
Philadelphia
Los Angeles
Boston
San Francisco
New York City
Los Angeles
Washington
Los Angeles
Philadelphia
San Francisco
Boston
San Francisco

Date
Dec. 10-12, 1951
Dec. 10-12, 1952
Dec. 4-6, 1953
Dec. 8-10, 1953
Feb. 11-12, 1954
Dec. 8-10, 1954
Mar. 1-3, 1955
Nov. 7-9, 1955
Feb. 7-9, 1956
Dec. 10-12, 1956
Feb. 26-28, 1957
Dec. 9-13, 1957
May 6-8, 1958
Dec. 3-5, 1958
Mar. 3-5, 1959
Dec. 1-3, 1959
M~y 3-5, 1960

PROCEEDINGS OF THE
EASTERN JOINT COMPUTER CONFERENCE

PAPERS PRESENTED AT
THE JOINT IRE-AIEE-ACM COMPUTER CONFERENCE
NEW YORK, N. Y., DECEMBER 13-15, 1960

Sponsors
THE INSTITUTE OF RADIO ENGINEERS

Professional Group on Electronic Computers
THE AMERICAN INSTITUTE OF ELECTRICAL ENGINEERS

Committee on Computing Devices
THE ASSOCIATION FOR COMPUTING MACHINERY

Published by
EASTERN JOINT COMPUTER CONFERENCE

© 1960 by

National Joint Computer Committee

ADDITIONAL COPIES
Additional copies may be purchased from the following sponsoring
societies at $3.00 per copy. Checks should be made payable to anyone
of the following societies:
INSTITUTE OF RADIO ENGINEERS
1 East 79th Street, New York 21, N. Y.
AMERICAN INSTITUTE OF ELECTRICAL ENGINEERS
33 West 39th Street, New York 18, N. Y.
ASSOCIATION FOR COMPUTING MACHINERY
14 East 69th Street, New York 21, N. Y.

The ideas and opinions expressed herein are solely those of the authors, and are
not necessarily representative of, or endorsed by, the EJCC Committee or the
National Joint Computer Committee.

Manufactured in the U.S.A. by the Fifth Avenue Lithographic Associates, Inc., New York, N. Y.

Harry H. Goode
July 1, 1909-0ctober 30, 1960
Harry H. Goode, Professor of Electrical Engineering at the University of Michigan and a prominent leader in the activities of the
National Joint Computer Committee and several societies active in the
computer field, died in an automobile accident on the morning of October 30, 1960. His loss will be deeply felt by all who knew him through
his teaching, his frequent lecture appearances, &is- many publications,
his work in professional societies, his consulting activities, his stimulating participation in conferences, or directly through his warm friendship.
Professor Goode was born in New York City on July 1, 1909. He
received the B.S. degree in history from New York University in 1931,
and later earned the Bachelor of Chemical Engineering degree from Cooper Union in 1940
and the M.A. in Mathematics from Columbia University in 1945. His early professional work
was in statistics, and in 1941 he became Statistician-in-Charge for the New York City Department of Health. During the war years he was a research associate at Tufts College and worked
on applications of probability to war problems and also on the acoustic torpedo problem. From
1946 through 1949 he was on the staff of the Office of Naval Research at the Special Devices
Center, Sands Point, Long Island. Here he progressed through successive responsibilities to be
head of the Special Projects Branch. His work during this period was on flight control simulation and training, aircraft instrumentation, anti-submarine warfare, weapon system design, and
computer research. Through his O.N.R. work he was actively associated with such pioneering
computer projects as the Whirlwind computer at M.LT., the Cyclone computer built by Reeves
Instrument Company in New York, and the Typhoon computer built by R.C.A. Laboratories
for the Navy.
In 1950 he joined the Willow Run Research Center of the University of Michigan, serving
first as head of the Systems Analysis and Simulation Group, next as Chief Project Engineer,
and then as Director of the Center. Under his direction the Research Center carried forward
a broad program of research, including system design, computers, radar, infra-red, and acoustics,
and in the process doubled its size to 600 people. He guided the efforts of the Center through
problems in air defense and battle area surveillance, and was instrumental in establishing the
basis for the ground system for the Bomarc missile.
In 1954 he was appointed Professor of Electrical Engineering at the University of Michigan,
and in 1956 his wide range of interests brought a dual appointment as Professor of Electrical
Engineering and as Professor of Industrial Engineering. In 1958 he served for a year as Technical Director of the Systems Division of' the Bendix Corporation, maintaining a fractional
appointment in the University so that he could continue to teach his newly introduced course
on System Design. A little over a year ago he returned to full-time teaching and research
activities in the Department of Electrical Engineering.

iii

In addition to his wide range of services to the University of Michigan, Professor Goode
served as a consultant to industry and government, and was active in professional society affairs.
He brought to problems a keen insight and a rare ability for stripping away the non-essentials.
His advice was highly valued and widely sought. Among the firms for which he consulted
were the United Aircraft Corporation, the Bendix Corporation, the Auerbach Electronics Corporation, the DuPont Corporation, the Ford Motor Company, the Burroughs Corporation, the
Texas Company, and the Franklin Institute. He served the government on projects of the
National Bureau of Standards, the Post Office Department, the Air Force, and the House of
Representatives Appropriations Committee. For the Air Force, he was chairman of the W-117L
Committee on Advanced Reconnaisance; and for the House Committee, he served as a member
of the Study Group on Missile Reliability.
He served his profession as a member of the Administrative Committee of the IR.E. Professional Group on Electronic Computers from 1953 to 1956, as a member of the Computer
Advisory Committee of the Society of Automotive Engineers, and as a member of a subcommittee of the A.I.E.E. Committee on Feedback Controls. His most important service in this
area was as chairman of the National Joint Computer Committee of LR.E., A.I.E.E., and
A.C.M. In this latter role, he played an important part in the formation and formulation of
the charter of the International Federation of Information Processing Societies.
Professor Goode was a member of many societies - The Association for Computing
Machinery, the American Mathematical Society, the Mathematical Association of America,
and the Institute for Mathematical Statistics. He was a Fellow of the American Association
for the Advancement of Science and a senior member of the Institute of Radio Engineers. He
was also a member of Sigma Xi, Eta Kappa Nu, and Mu Alpha Omicron.
His many published papers touched upon statistics, simulation and modeling, vehicular
traffic control, and system design. His major published work is the book "System Engineering,"
of which he was senior author with R. E. Macho!. The book was an outgrowth of the very
successful and valuable course which he introduced at the University of Michigan under the
title, "Large Scale System Design."
Professor Goode's broad experience with computers and his participation in national computer functions led to his participation as one of the group of eight Americans who visited
Soviet computer establishments in 1959.
Our profession has lost one of its most outstanding members-a man of rare versatility,
talent, vigor, and vision.

iv

FOREWORD
box office a diffe~ent picture emerges. Many of
these critics think that the primary benefit of
such a conference is the opportunity to meet ones
friends (or competitor s) in the halls and lobbie s
to exchange views and to pass on the latest inside information. At this conference we heeded
their advice and made an effort to assist this kind
of communication.

This volume contains the paper s presented
at the 1960 Eastern Joint Computer Conference
(the 'eighteenth Joint Computer Conference). In
order to make the Proceedings available at the
conference these pages were reproduced directly
from the authors' manuscripts by photo offset.
The papers which are presented here were
selected from among 130 that were submitted.
On the basis of 1, OOO .. word summaries Elmer
Kubie and his Program Committee selected
those which seemed of exceptional significance,
originality, timeliness and interest.

After each session there was a discussion
period of a new kind. There was some
space
available at the rear of the auditorium, and in
this space each speaker was stationed at a particular spot so that people could ask him questions.
These spots were to serve also as focal points
for the gathering of groups of people whose
interests were aroused by the paper s. Not only
could they talk to each other and to the speaker
but also they had the opportunity to form luncheon and dinner groups of people with congenial
interests.

A study of the records indicates that when
judged by the box office, the programs of the
EJCC seem to fill a need. The following graph
shows the attendance at recent meetings and
predicts the 1960 attendance from the known
growth in Boston, assuming that the growth in
New York would be at the same rate. The graph
also shows an alternate interpretation of the data
according to which there is no geographical effect
and really the situation is deteriorating. If the
first interpretation is correct, there is no hotel
in New York that can hold the EJCC. This is the
reason for the choice of the combination of the
Hotel New Yorker and the Manhattan Center
Auditorium. However, there is hope for a better
future since the projected Americana West Hotel
will be lar ge enough.

For nearly a year the committee member s
have worked with me on preparations for the
conference. I take this opportunity to thank them
for the many hour s of hard work and the lar ge
contribution they have made.

When the Joint Computer Conferences are
judged by the critics' notices rather than by the

Nathaniel Rochester
General Chairman

4,000
~
l,)

Z

3,000

-- .... -

Philadelphia

-<
~
~

E-t
E-t

-<

2,000

l,)
l,)

(Alternate
Pr edic tion)

Boston

to,

~

•

Washington
(Records Incomplete)
1,000
1955

1956

1958

1957

v

--

NATIONAL JOINT COMPUTER COMMITTEE

Chairman

Vice Chairman

Mr. H. H. Goode >!c
Department of Electrical Engineering
University of Michigan
Ann Arbor, Michigan

Dr. Morris Rubinoff
Moore School of Engineering
University of Pennsylvania
Philadelphia, Pennsylvania

Sec retary- T rea surer
Miss Margaret R. Fox
National Bureau of Standards
Department of Commerce
Connecticut Ave. & Van Ness St.
Washington 25, D. C.
AlEE Representatives

IRE Representatives
Mr. Harry H. Goode '60 - '61
Department of Electrical Engineering
University of Michigan
Ann Arbor, Michigan

Dr. Morris Rubinoff '60 - '61
Moore School of Engineering
University of Pennsylvania
Philadelphia, Pennsylvania

Mr. Frank E. Heart '60 - '61
Lincoln'Laboratories
Rm. B-283
Post Office Box 73
Lexington 73, Mass.

Mr. R. R. Johnson '60 -'61
Computation Laboratory
General Electric Co.
Phoenix, Arizona

Dr. Willis H. Ware '59 - '60
The RAND Corporation
1700 Main Street
Santa Monica, California

Mr. Claude A. R. Kagan '59 - '60
Engineering Research Center
Western Electric Company, Inc.
Box 900
Princeton, New Jersey

Dr. Werner Buchholz '59 - '60
IBM Product Dev. Laboratory
P.O. Box 390
Poughkeepsie, New York

Mr. Stanley Roger s '59 - '60
c/o Convair, Box 1950
Mail Zone 7-08
San Diego 12, California

ACM Representatives

Ex-Officio Representatives

Mr. Paul Armer '60 - '61
The RAND Corporation
1700 Main Street
Santa Monica, California

Dr. Harry D. Huskey
University of California
Department of Mathematics
Berkeley, California

Mr. Walter W. Carlson '60 - '61
Design Division
E.!. du Pont de Nemours
Wilmington 98, Delaware

Mr. R. A. Imm
International Business Machines
Corporation
Rochester, Minnesota

Mr. J. D. Madden '59 - '60
System Development Corp.
2500 Colorado Avenue
Santa Monica, California

Dr. Arnold A. Cohen
Remington Rand UNivAC
St. Paul 16. Minnesota

Dr. H. R. J. Grosch '59 - '60
415 East 52nd Street
New York, New York
Headquarters Representatives
Dr. J. Moshman
C.E.I.R.
1200 Jefferson Davis Highway
Arlington 2, Virginia

* Deceased

Mr. R. S. Gardner
Assistant Secretary
American Institute of Electrical
Engineers
33 West 39th Street
New York 18. New York

vi

Mr. L. G. Cumming
Technical Secretary
The Institute of Radio Engineers
1 East 79th Street
New York 21, New York

EASTERN JOINT COMPUTER CONFERENCE COMMITTEE

General Chairman. • • • • • • •

• Nathaniel Rochester, IBM Corp.

Assistant to General Chairman

• Robert J • Haughey, IBM Corp.

Program

• Elmer Kubie, Chairman, Computer Usage Co.
Dr. Julius Aronosky, Socony Mobil Oil Co.
George R. Briggs, RCA Laboratories
Charles Doersam. Potter Instruments
Felix Kalin. International Telephone and Telegraph Co.
Roy Reach, Minneapolis-Honeywell Regulator Co.
Fred Warden, International Telephone and Telegraph Co.
Daniel M. McCracken

Publications • • • • • • • • • • • • • • Clem J. Rachel, Chairman, Remington Rand Univac,
Division of Sperry Rand Corp.
Noel K. Zakin. Remington Rand Univac, Division of Sperry
Rand Corp.
Richard T. Kanter; Remington Rand Univac, Division of
Sperry Rand Corp.
Publicity

• Jack Heaney, Chairman, Sylvania Electric Products, Inc.
James Lanigan, Sylvania Electric Products. Inc.

Exhibits

• Alan D. Meacham, Chairman, Gille Associates
Donald A. Boell, Gille Associates

Registration.
Hospitality

Hotel

.

• • • • • • . • • • • • • • • •

Jack Behr, Chairman, Packard Bell Computer Corp.
• Robert P. Fopeano, Chairman, Bendix Computer Division
of the Bendix Corp.
• Robert J. Williams, Chairman, IBM Corp.
W. W. Ward. IBM Corp.

Finance. • • • • • •

• A. I. Schott, Chairman, The National Cash Register Co.

Local Arrangements

• Benjamin W. Leavitt, Chairman, General Telephone &t
Electronics Laboratories
Allen L. Brown, New Canaan Research Center, Inc.

vii

TABLE OF CONTENTS
Page
"A Logical Machine for Measuring Problem Solving Ability"
by Charles R. Langmuir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

"A Method of Voice Communication With a Digital Computer"
by S. R. Petrick and H. M. Willett . . . . . . . . . . . . . . . ~ . . . . . . . . . . . . . .

11

"FILTER - - A Topological Pattern Separation Computer Program"
by Daphne Inne s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

,tRedundancy Exploitation in the Computer Solution of
Double-Crostics" by Edwin S. Spiegelthal. . . . . . . . . . . . . . . . . . . . . . . . . .

39

"A Computer for Weather Data Acquisition"
by Paul Meissner, James A. Cunningham and Claude A. Kettering ....

57

'tA Survey of Digital Methods for Radar Data Processing lt
by F. H. Krantz and W. D. Murray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

"Organization and Program of the BMEWS Checkout Data
Processor" by A. Eugene Miller and Max Goldman . . . . . . . . . . . . . . . . .

83

ItHigh Speed Data Transmission Systems"
by R. G. Matteson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

97

Itparallel Computing With Vertical Data"
by William Shooman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

III

"TABSOL -- A Fundamental Concept for Systems-Oriented
Languages" by T. F. Kavanagh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

117

3.3

ItTheory of Files It by Lionello Lombardi . . . . . . . . . . . . . . . . . . . . . . . . . . .

137

3.4

ItPolyphase Merge Sorting -- An Advanced Technique"
by R. L. Gilstad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

143

"The Use of A Binary Computer for Data Processing"
by Gomer H. Redmond and Dennis E. Mulvihill . . . . . . . . . . . . . . . . . . . .

149

"High Speed Printer and Plotter"
by Frank T. Innes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

153

itA Description of the IBM 7074 System"
by R. R. Bender, D. T. Doody and P. N. Stoughton . . . . . . . . . . . . . . . .

161

ItThe RCA 601 System Design"
by A. T. Ling and K. Kozar sky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

173

1.1

1.2

1.3

1.4

2. 1

2.2

2. 3

2.4

3.1

3.2

3. 5

4.1

4.2

4.3

( Continued)

ix

TABLE OF CONTENTS, continued
Page

4.4
4. 5

5. 1

5.2

5.3

5.4

5.5

6.1

6.2

6.3

6.4

6.5

"Associative Self-Sorting Mern.ory"
by Robert R. Seeber, Jr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

179

"UNIVAC - - RANDEX II - - Randorn. Access Data Storage Systern."
by G. J. Axel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

189

'tData Proces sing Techniques in Design Autorn.ation 't
by Dr. Williarn. L. Gordon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

205

"Irn.pact of Autorn.ation on Digital Corn.puter Design't
by W. A. Hannig and T. L. Mayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

211

"Calculated Waveforrn.s for the Tunnel Diode
Locked-Pair Circuit" by H. R. Kaupp and D. R. Crosby ............ .

233

"On Iterative Factorization in Network Analysis by
Digital Corn.puter" by W. H. Kirn., C. V. Freirn.an,
D. H. Younger, and W. Mayeda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

241

"A Corn.puter-Controlled Dynarn.ic Servo Test Systern."
by V. A. Kaiser and J. L. Whittaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

255

"Hot- Wire Anern.orn.eter Paper Tape Reader ,t
by John H. Jory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

267

ItUse of a Digital/Analog Arlthrn.etic Unit Within a
Digital Corn.puter" by Donald Wortzrn.an . . . . . . . . . . . . . . . . . . . . . . . . . . . .

269

,tpB-250 -- A High Speed Serial General Purpose Corn.puter
Using Magnetostrictive Delay Line Storage"
by Robert Mark Beck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

283

liThe Instruction Unit of the Stretch Corn.puter"
by R. T. Blosk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

299

"The Printed Motor: A New Approach to Interrn.ittent
and Continuous Motion Devices in Data Processing
Equiprn.ent" by R. P. Burr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

325

LIST OF EXHIBITORS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . See Back of Book

x

1
1.1

A LOGICAL MACHINE FOR MEASURING
PROBLEM SOLVING ABILITY

Charles R. Langmuir
The Psychological Corporation

Summary
The magnitude of costs incurred by assigning unsuccessful or even marginal personnel to
tasks involving EDP systems design and programming justifies a much greater effort in the selection of personnel than the use of conventional aptitude tests implies. A small desk-top
machine named the Logical Analysis Device is described, its logical organization is explained,
and its operation as a method of observing and
testing an individual's problem solving abilities is illustrated. Some comment describing
the wide variation of performance among several
hundred college graduates employed in various
professions is included but the principal emphasis is given to data pertaining to the performance characteristics of persons in computer
and data processing activities. The application
of the device is clearly indicated at the point
of evaluating final candidates for assignment to
tasks requiring a high order of logical and analytical talent.

*****
The talents, interests and aptitudes of individuals who become effective computer programmers are probably basically similar in all the
many varieties of EDP installations. In making
this statement, I do not mean to suggest that
all persons who are happy, successful, contributing workers in the computer profession are all
alike. Any such notion is patently absurd. I
do mean to indicate that there are certain essential characteristics which are common among
persons who are able to live peacefully, in comfort, and perhaps in joy, with modern computing
ma9hinery and the extraordinary variety of problems in which the machinery becomes involved. A
principal purpose of this paper will be the amplification of the idea in the opening sentence
including a statement of what the fundamental
characteristics of successful computer programming personnel are, and a description of a
method of observing, indeed, even measuring, an
individual's status with respect to these characteristic abilities.
When a computer installation is established
in a univerSity environment, individuals who
like this kind of thing seem to gather around it.
They simply gravitate to their center of attraction. After a time, and often quite a long time,
they either weed themselves out or they get into
a suitable orbit. To a less obvious degree, the
same kind of self-selection of computer person-

nel takes place in a scientific computing center,
including perhaps computer installations in industrial organizations which are primarily concerned with computing and data processing in the
so-called scientific categories.
In the business-type organization where the
computer installation is primarily concerned
with the processing of commercial paper work and
reports,the development of the personnel situation is somewhat different. There may be an initial surge of enthusiastic interest when the decision to install a computer is first announced,
but this is only superficially comparable with
the gravitation of personnel characteristic of
scientific institutions.
The difference between the university or
scientific-type installation and the commercial
or business-type installation becomes apparent
in examining the effects of the weeding-out process. In the business data processing operation,
weeding out of ineffective personnel is accompanied by much difficulty and all the pain that abnormal personnel readjustments call forth in business organizations. In addition to the organizational disruptions that occur, there are very
large dollar costs involved. These costs quickly
become great enough to justify the attention I
will suggest should be given to the initial selection of personnel.
When the personnel department calls you,
the supervisor, to announce that another candidate has appeared for the opening in the programmi,ng department, an important and costly decision is implied. When you hire your man for
training in this activity, you commit the organization to an investment not less than $5,000,
more likely $20,000 and perhaps a good deal more.
If, at the end of six, nine or twelve months,
you find your candidate is not going to make it,
the investment is a loss. If the man is marginal, a yet larger investment is required before
you will find out what the return may be.
Obviously then, if it is possible to identify the characteristics that are required for
successful accomplishment of the tasks involved
in utilizing a computer, it is economically important to employing organizations to know what
procedures ~an be effectively used. I shall focus my attention upon the characteristics I believe to be essential and shall present these
generally with an emphasis upon data proceSSing
rather than scientific computing. The abilities
I shall discuss are not those that involve spe-

2
1.1

cialized educational background and knowledge of
particular subjects such as college mathematics
or physical sciences. The academic background I
postulate as necessary is only that which we accept as the common heritage of the educated person in the modern world. On the basis of experimentally observed facts, we may have to reconsider the question whether certain intellectual
elements of importance in computer work are as
much a part of the common heritage as we would
like to believe.
What are these characteristics? First,
there is certainly some minimum ability to read.
Or to be more abstract, the ability to cope with
verbal notation. A second requisite is ability
to deal effectively with quantitative concepts
and numerical notation. It is certainly no detriment to a person to be able to handle literal
notation, but facility with algebraic manipulation is not included as essential. There is,
third, the ability to see relations, to see order in sequences, and perhaps the ability to enrich the understanding of details by seeing analogies and abstract classifications involving
order, symmetry and the permeation of common
characteristics in a background of seemingly independent elements.
During the last thirty or forty years, psychologists have developed efficient ways of testing individuals for their ability in these dimensions, particularly the first two, the ability
to read and the ability to handle numerical problems. It is, therefore, no problem to evaluate
applicants for computer programming opportunities
with respect to these abilities. We can certainly find out whether they can read well enough
to handle the language in a machine manual, and
we can find out if they are able to handle numbers in Simple arithmetic problems. The third
element, namely, the ability to see abstract relations, is not so well understood, but there
are tests available. The tests I speak of are
conventional paper and pencil instruments quite
widely available on the professional market and
well known in schools, colleges and employment
offices. One such test has been specifically
prepared by a computer manufacturer for use in
testing applicants for training as programmers.
Such tests have proved adequate for the initial elimination of candidates. They can be
economically used for screening among many applicants to eliminate those who are inadequate in
verbal or numerical reasoning abilities, and
probably to identify individuals whose verbal
ability reaches a high level but who have difficulty dealing with the abstract kind of content
or representations of a non-verbal character.
There is, however, abundant evidence that such
screening tests are not sufficient. Many individuals score above whatever cutting point we
may choose but still lack some crucial abilities
required for successful work in programming.
What are these crucial elements?
Certainly one is an acceptance of the idea

that systematic, logical, analytical processes
can converge on a solution to problems involving
complex logical relations especially in those
problems contaiping elements of dependent serial
order. A second crucial characteristic goes beyond the simple acceptance of analytical processes as a mode of problem solving but involves some
minimum power in utilizing analytical procedures.
Sufficient power is necessary to cope with a
multiplicity of elements and an ability not only
to analyze a problem into its elementary components but to synthesize the bits of information;
an ability to put the bits and pieces together
into a whole and to do so not by accident and not
by chance but with full understanding of the ultimately closed system.
There are, of course, other desirable abilities and traits of personality -- some that we
notice after the fact and that we have no success
whatever in forecasting. There are the individuals who simply get ideas. Things occur to them.
We do not see the mental machinery in operation
and we cannot find out much about it afterwards.
We call it intuitive creativity, and we are very
grateful for it when it occurs. But this rare
characteristic is out of reach, and I do not include it now within the domain of practical human engineering and certainly not in the incessant and mundane activity of routine personnel
selection.
It is possible, however, to obtain a quite
objective, very reliable estimate of a person's
ability to use logical methods in solving logical problems. The procedure involved presents
an individual with a logical problem, fully defined with respect to the rules of its logic;
one which is simple enough to comprehend in a
brief time interval, yet is complex enough to
represent a real challenge, and presented in a
form which makes observation of the performance
not only objective, but detailed in its step by
step development. By the simple device of presenting an individual with a sequence of several
problems graded in a series of increaSing complexity, we are able to observe both his characteristic preferences as shown by his choice of
problem solving procedures and his power in synthesizing final solutions to problems.

The Logical Analysis Device is a simple logical machine which can be used to observe objectively the performance of a person in'manipulating logical concepts and solving logical problems. The portion of the equipment of interest
is the operators display panel shown in Figure 1.
The operator is the person whose problem solving prowess is being tested. The examiner, who
must be a person qualified by experience and
training, presents an opening explanation with
demonstration. The full explanation requires
ten to fifteen minutes and incorporates a carefully organized demonstration with a practice exercise as part of the familiarization program.

3
1.1

The ~ic elements of a demonstration with
working equipment in real time cannot be simulated in any written material, but the following description does define the logical nature
of the problems and suggests, at least by implication, some of the dynamic elements that are revealed in individual performance records.
In the upper left corner of the display
panel, therel is an indicator light labeled TIME.
It is a cloci which shows the passage of time in
alternating intervals like day and night. The
light is on for three seconds and off for,three
seconds and then on again and so on continuously.
There are nine numbered lights arranged in a circle and one 'light in the center.
Next to each light in the circle, there is
a push button switch. ~Be switches are manual
inputs. Each switch has the effect of turning
on its associated light subject to an important
restriction. Each light is either a, day worker
or a night worker; it can be turned on at any
time during one or the other, but not both time
phases. When it is turned on, it will stay on
until the end of its active time phase. At the
end of its active phase, it will extinguiSh and
remain extinguished until it receives another
input signal.
The target light in the center has no associated manual input switch. It can be turned on
only as the consequence of some configuration of
the signal lights in the circle being on. Certain crucial information about the possibilities
is supplied by an information diagram. The arrows on the diagram link pairs of ·lights. The
existence of an arrow, as the one from light 3
to X, the target light, is information that
light 3 bas some effect on X. The relation is
not reversible,. i.e., in the example illustrated
the arrow from 1 to 8 states that 1 has an effect on 8 but 8 has no effect upon 1.
Any effect will occur at the end of the active time interval of the activated light and
will continue to hold through the following time
interval. For example, if the logical relation
is simple cause-effect, then turning on number 1
in its active period will cause number 8 to come
on in the following time interval. It is logically necessary that the lights at opposite
ends of any arrow be active in opposite time intervals.

There are three different logical relations
that may exist. The first is mentioned above-simple cause-effect - namely, turn this light on
and after a while the other light will come on,
and this one will go off. Obviously, any arrow
can be tested by experiment to find out if it
represents this effector relation.
A second relation is the combinor. If two
arrows converge on one light as 9 and 2 converge
on 1, neither one may be sufficient to turn on
1 but in combination they may. The existence of
this combining relation can be tested experi-

mentally, but the experimentation requires _a li ttle more planning and a little more logical sophistication-to be analytically complete than
does the simple try it and see experiment to
prove the simplest effector relation.
The third and last relation is the preventor. A light which has a preventor relation to
another negates the effects of any effector or
combinor relations upon the same light. The
fact that an arrow represents the preventor relation can be experimentally demonstrated but
planning and correctly executing the experiment
requires a greater logical precision than the
tests for the other relations. In the example
illustrated in Figure 1, lights 3 and 8 combine
to turn on the target but 3 and 8 and 7 do not
turn on the target. By such a sequence of
trials, we ascertain that 7 is a preventor and
the complete configuration necessary for turning on the target is 3 and 8 and not 7.
All the arrow relations can be investigated
and their specific nature, i.e., which one of
three, can be determined by experimental observation. In many cases the facts about a relation can be determined by logical deduction.
Hypotheses may be formulated on the basis of
partial information and tested.
Additional rules of the system are clarified, e.g., the existence of every relation in
a problem is represented by an arrow in its diagram; an arrow represents one and only one relation; when a light goes out the machine reverts
to its prior state and remembers nothing; and,
all problems are soluble. Thus, the logical
system is closed and completely defined. The
only facts the operator does not have explicitly defined in advance are the specific relations represented by the arrows.
After the system has been tully defined and
demonstrated, the7problem solving task is specified in three steps. First, find out what combination of lights turns on the target, i.e.,
investigate t~ arrows to the center. Second,
investigate the other arrows and thusdetermtDe
what relation each represents. Third, using the
information derived by logical deduction and experiment, synthesize a way of turning on the center light by some operations limited to the three
red buttons, numbered 4, 5, and 6 at the bottom
segment of the circle. Success on this last
step is the solution of' the problem. The operator, however, has complete freedom to choose
his method of procedure. He may skip over the
first steps as outlined if he wishes.
The operator works on the task in isolation
but he has immediate access to the examiner for
consultation; paper and pencil are supplied for
notetakingJ and he has a written summary of the
rules of the system for reference.
When the solution has been attained or after a suitable time if the problem is not
solved, the examiner interrupts the work and by

4
1.1

questioning ascertains the individual's comprehension of the logical structure of the problem.
In this quizzing process, the problem is reviewed in detail, and the effectiveness of the
back solution as a general method is demonstrated again.

Figure .2

If the problem was solved with explicit
clarity of understanding of the logical relations, the examiner presents a new problem of
greater complexity. If the problem was not
solved or was solved without evidence that the
logical structure was understood, a new problem
at the same level of complexity is presented.
This elaborate procedure is carried through
consistently and in as standardized a manner as
possible. The fUnction of the examiner is, in
fact, that of a non-directive instructo~ or demonstrator. The purpose of the carefUl and re-petitive instruction is to minimize and, if posSible, eliminate any bias in the evaluation of
the ultimate performance that might be caused by
accidental "sets" or rigidity in persisting with
an inappropriate initial choice of method. For
example, an individual who is interested in probability concepts may decide that an effective approach could ignore any analysiS of the information diagram as suggested by the examiner. The
solution involves only three switches, and he may
conclude that the possibilities are exhaustively
covered by a small number of experimental trials.
In such an instance, it is the task of the examiner to provide the operator with an easy opportunity to adopt a new approach. If an individual persists in using ineffective methods, we
are at least able to say that his rigidity is
no~ a consequence of lack of exposure to more effective procedures.

the logical structure. They are analogous to
noise in a circuit. They are indeed logical relations, they obey all the rules, but they are
irrelevant because they have no inputs other
than the manual switches. Thus, if an operator
makes a careful study of the information given
and applies the rules of the system, he will be
able to deduce that these three arrows can be
ignored.
Now look at Figure 3.
Figure 3

The whole process is demonstrated with the
problem represented in Figure 2. By experimental trial, the operator can discover that 9 and not
3 gives X. Light 3 is a preventor. In any order
that he chooses the operator can ascertain that
1 gives 3
2 gives 3 and 9
3 prevents X
4 gives 8
5 gives 3 and 9
6 gives 7
7 gives null result
8 gives null result
7 and 8 combine to give 9
9 gives X
Note the expreSSion "can ascertain." The operator has been shown effective methods, but this
fact does not mean that he will choose to use
them.
With this information which represents the
total logical structure of the problem, it is
easy to determine that the combination 4 and 6
will initiate a sequence of events that will
turn on the target light. Any attempt to use
light number 5 to activate 9 directly will set
up the preventor. Note also that the arrows from
lights 1 and 2 represent irrelevant elements in

The arrow diagram in this illustration is
the same as the one illustrated on the Display
Panel in Figure 1. The arrows in this diagram
are coded so that a Single solid line represents an effector, paired lines represent a combinor and crossed lines represent a preventor.
(This information is not supplied to the operator in actual practice. It represents the in-

5
1.1

formation he would be able to get by experiment
or deduction, or both.) The condition for the
target is clearly 8 and 3 and not 7. Byexamining the other information, it is readily seen
that light number 6 cannot be a part of the final sOlution. It provides a way of turning on
3 but it also turns on the preventor 7. Light
number 4 turns on 3 directly. We now ba'\l'e half
the solution, we need only to find out how to
turn on light number 8. By tracing the arrows
back, 8 to 1, and from 1 to the combinors 2 and
9, and from these lights back to light 5, we
see that the solution will involve the operation: turn on 5, wait, and turn on 4 at the
time 1 comes on.

Figure 4

Z-4

Z-3

Z-2

Z-1

ZERO

TIME

In actual experience with this problem, the
most usual first attempt at a solution involves
pressing buttons 4 and 5 simultaneously. The
result is not successful. The operator has to
become aware of the problem of phasing his operations on the lights. In the more complex
problems in the series, the operator has to get
similar, but more sophisticated insights. The
rules of the system are invariant, but the complexity of specific problems varies widely.
There are five levels of complexity in the
complete series of problems: the two demonstrated above which are used as learning exercises
and three levels beyond these.
It is an interesting demonstrable fact that
with such a simple logical structure it is possible to develop complexities sufficient to differentiate among college educated adults on an
ordered scale of 15 categories. The most difficult problem contains sufficient complexity to
provide ample opportunity to observe the methods
of work and the effective power of persons as
skilled in logical performance as top-notch programmers, logical designers, and systems analysts.
Almost every operator takes notes of some
kind. It is conceivable that some effects associated with the kind of notation system adopted
might introduce chance variation in the performance. The procedure~minimizes evaluation errors from this source by presenting a very powerful notation system to the operator after he has
had the experience of working the first two problems. The standardized system is shown as in
Figure 4. When in~tially written out, the arrows are undifferentiated. As information is
verified by experiment or deduction, the arrows
are coded. By logical analysis applied to this
convenient reorganization of the information diagram, it is possible to derive optimum sequences
of experiments that will converge on a solution.
Much repeated experience with the presentation of the notation system reveals a significant
finding. A large proportion of operators do not
make effective use of the recommended or any
other notation. Examiners get a strong impression that taking notes is some form of academic
"doodling," a kind of behavior that is approved

in the circumstances, whether effectively functional or not.
Evaluation of Performance
The LAD procedure incorporates a number of
elements of interest in psychometric technique.
The presentation is uniform, almost rigorously
standardized without being formally "canned."
The system strives to minimize the variability
of performance attributable to the examiner's
presentation. The individual's step by step performance is recorded by a remote printer. As a
consequence of this technique, the operator works
in isolation without any anxiety-inducing interactions resulting from the presence of an observer. The problems are real, logical structures and do not contain the tricky elements
characteristic of puzzles. The increasing complexity of the series of problems is achieved
without any change in the initially established
logical rules of the system. Parallel forms of
the problems at each level of complexity are
available. It is an interesting and important
fact that individual operators do not recognize
parallel form problems as logically identical,
even when they work them in succession. The
problems are specific configurations of a completely defined logical system. Successful solution of the problems is not dependent in any
way on substantive knowledge not within the experience of every educated adult.
The scoring of a completed problem-solving
session on LAD leads to a rating assigned on a
15 point scale from A+, A, A-, etc., down to E+,
E, and E-. This scale covers a range of performance from extremely powerful and efficient solutions to performances so ineffective that we are
unable to conceive of a performance that could be
demonstrably worse. The E rating indicates that

6

1.1
the operator was not able to achieve any success
with the least complex problem after 90 minutes
of repeated instruction and experience with parallel forms. The E- rating is reserved for operators who never catch on to the idea that one
light may be related to another. Such a record
occurs less than once in a thousand trials. The
entire E category, including E and E+ ratings,
represents very poor performance. About 4% of
our sample of employed adults fall in this category.
The first phase of the scoring procedure is
largely clerical. A count is made of the total
number of operations performed on each problem.
The total time worked on each problem is computed from the calibrated printed record. The
individual elements of the performance are serially numbered in the order in which they appeared in time. This standardized information abstracted from the original serial record is tabulated in an organized form that enables the examiner to see at a glance the basic elements of
the operator's record on each problem.

or better. The same statistical results describe
the comparison of ratings arrived at independently over an interval of a year or more. These
findings are important in considering the validity of the LAD procedure as a method of describing individuals. The examiners are able to reach
a scale of some kind of absolute judgment which
does not include individual bias and does not
drift with temporal effects over long or short
intervals. This happy result is not the normal
expectation in tasks that involve elements of
subjective judgment.
Experimental Results
Table 1 shows the results of scoring the performance records of 1109 adults employed in a
variety of occupations and 175 college students.
For simplicity, the subdivisions of the literal
categories have been grouped.
Table 1
Distribution of LAD Ratings
N=1284

These clerical procedures reduce considerably the amount of information a rater must consider, but the amount retained has proved to be
too formidable for any mathematical or mechanical
computation of a final score. The rater still
must consider the abstracted record and decide
on the basis of all the factors present which
point on the rating scale best describes the total performance. In addition to the highest
level of complexity successfully handled, and
the speed and the economy of effort in terms of
numbers of operations, the rater will consider
the approach to a major area. He will consider
whether the operator's approach is logically
sound. He will seek evidence that the operator
grasped the import of the results of his operations. Were all the major problem areas explored? Was the order in which they were explored logical? Were many repetitions required
before the operator planned his next experiment?
The possibility of answering such questions
about a person's problem solving efforts is a
unique aspect of the LAD performance record.
The ability of the rater is central to the
succesS of the system. The rater must be trained,
must be fairly logical himself, and must have had
enough experience with LAD procedure to apply the
generalizations about problem solving which are
contained in the ratings. It is an important,
experimentally observed, fact that the subjective
elements of the evaluation procedure are easily
maintained in statistical control. Different
examiners working independently in evaluating a
single series of performance records will, of
course, report different scores at least occasionally. The magnitude and variability of tneir
differences describes the reliability of the scoring process. In many hundreds of records, accumulated over a period of three years, the differences between raters exhibit a mean of zero and
a small variance. The correlation between pairs
of raters evaluating the same records will be .95

x

f

A

211

16

B
C

285
518
220
50

22

D

E

40
17
4

The typical or median value in the sample
is 8, equivalent to the letter category, C. The
variation within and between the sub groups that
comprise the total is large. The highest scoring group, a programming staff in an industrial
scientific computer department, obtained a median
score of 2, equivalent to an A rating. The lowest scoring groups obtain median scores of 11,
equivalent to a D rating.
These data provide background information
and nothing more. They describe the variation
we can expect to observe when we test people
with problems of this kind. They do not contain any evidence that performance in the miniscule problem solving situation is related to any
characteristics of people working in real life
situations. The possibility that important correlates may exist between behavior observed in
the test situation and behavior in the real
world is strongly suggested by the apparent similarities between reactions to difficulties in
LAD problems and behavior in the more complex
problems met in such real tasks as control engineering, designing logical circuitry, laboratory trouble shooting and computer programming.
In the LAD problems we-frequently observe
individuals who get "stuck in a rut." They exhibit a lack of flexibility that makes it very
difficult for them to abandon an ineffective approach. Other very typical difficulties include
overlooking side effects, miSinterpreting data,
abandoning systematic procedure under stress of
frustration, ignoring the outcome of experiments

7
1.1

which yield null results, jumping to conctusions
and assuming hypotheses are true, disregarding
alternate possibilities, forgetting or distorting
objectives, adopting a superficially logical but
actually absurd appr-oach, unnecessary or pointless repetition and preoccupation with redundant
or even random busy work. We have all observed
some of these characteristic barriers to optimum
performance in ourselves occaSionally and quite
frequently in others. These and other elements
in problem solving behavior frequently observed
in LAD testing are obvious analogies to actual
vocational tasks. Their existence provides a
rational basis for the hypothesis that behavior
exhibited by an operator's work with LAD exercises is an expression of stable, individual,
personal characteristics and that these characteristics which can be observed systematically in
the LAD procedure will also be characteristic
elements in the individual's working environment.
If the hypothesis is true, it should be possible
to find differences in LAD performance for groups
of people employed in real work which requires
dramatically different abilities even though it
is impossible to obtain reliable observation of
the important component elements in the individual's performance in the job.
Experimental data which meet the requirements
of dramatic difference in required abilities are
presented in Table 2.
Table 2
Comparison of Programmers
and Insurance Salesmen
X

Salesmen

Programmers

A
B
C
D
E

0

22

51
56
51
29

.B

--1

57

190

4
19

N

Both groups are of comparable age. The
median programmer scores well up in the upper
half of the LAD scale (Md.n=B). The typical man
in the sales group scores in the lower half
(Md.n=DI- ) • Some individuals in each group have
certainly made a mistake in their commitment to
their vocational choice. If we were able to
identify them with assurance, the difference between the groups would be larger.
The difference between the groups is not a
Simple difference in problem solving power. A
detailed review of the records shows a striking
qualitative distinction in the procedures used
by most members of the sales group. There is a
popular conception that workers in tasks that
depend heavily upon inter-personal relations
utilize some special kin~ of logic--a peopleoriented as contrasted with a problem-oriented
thinking proceSs--sometimes thought of as intui-

tive and divergent as contrasted with objective,
logical and convergent. On LAD this different
mode of planning or decision-making procedure is
observed with great frequency among peopleoriented people as exemplified by sales representatives, including engineering sales, counseling psychologists and administrators in personnel management.
The typical performance of individuals in
this group is broadly described as non-analytic.
Almost everyone begins work on a LAD problem by
seeking, more or less systematically, the configuration of circle lights that activate the
target. We interpret the sequence of operations
involved in this phase of the task as an analytical informat.ion-seeking mode of attack. After
this basic elementary step has been accomplished,
the order of operations mayor may not be clearly
seen to be an orderly systematic extraction or
information which progressively reduces the number of unknown elements in the problem structure.
When this kind of logical sequence is observed,
we say the o~ator persisted in the analytic
mode _. However, such an obvious pattern may not
appear. In this case, we cannot classify the
mode of attack simply from knowled8e of the sequential order of the experimental operatiOns performed. The decision whether the mode is analytical or non-analytical depends upon the subsequent utilization of whatever information is
retrieved, and the operator's understanding of
the logical structure of the exercise at the end
of the working time. Non-analytical methods of
working LAD problems are accompanied by lack of
precision in identifying the structural elements
in the simpler problems and failure to achieve
solution at the more complex levels.

If the analogues between elements or LAD
performance and characteristic attributes seen
in programming skill are closely similar to aptitudes that are critical for c~ter work,
there should be an observable relation between
ratings of LAD performance and supervisor's ratings of the merit of individuals who have programming responsibility. The direct experimental
verification of the fact of such a relation is
not as simple a matter as it would seem at first
glance. Computer installations are young institutions. They differ widely in function,
type of data processed, administrative ~ganiza­
tion, equipment, and experience with personnel.
There are no standards for evaluation of merit
on the job that are comparable from grOup to
group, and the typical group is too small to provide within itself evidence that is reliable in
the statistical sampling sense. Nevertheless,
it has proved possible to obtain some correlations between LAD ratings and supervisor's rank...
ings of individuals.
In five groups numbering 15 to 25 individuals in each, the correlation between the LAD
examiI1er's ranking and the supervisor's ranking
varied from .45 to .81. In two of these groups
the individuals were ranked a second time after
an interval of two years on the Job. In one of

8
1.1
these organizations, the correlation between the
supervisor's original ranking and his ranks assigned two years later was Rho=.50. The original and the follow-up correlations with LAD
ranks were .70 and .74. In the other group, the
original rankings supplied by a manufacturer's
instructor at the end of an extended training
program correlated .81 with LAD. The on-thejob ranking two years later correlated .80.
In four groups of smaller size varying from

6 to 8 members, similar correlations appear.
The typical values vary around Rho=.7. Higher
values may be expected in groups that range
widely from excellent to inferior. Lower values
are expected in homogeneous groups where the submarginal workmen have been eliminated. It has
also been found that correlations are higher in
groups where the ranking has been supplied by
supervisors who are themselves experienced working programmers.
The fact that the rank order evaluations of
performance on the job are not comparable across
groups makes any attempt to use the correlation
statistics in a practical regression equation
rather hazardous. On the other hand, correlation findings strongly support the view that the
LAD procedure could be used effectively in the
practical business of selecting the most promiSing among applicants and also for ascertaining
what proportion of an applicant group is likely
to meet some minimum standards of job performance
after training.

The first step in accomplishing this objective has been taken by establishing quite arbitrary, subjectively arrived at, specifications
of minimum acceptable LAD performance. After
analysis of the LAD record with special attention to the analytical elements characteristic
of the performance, we classify the individual
into one of four categories: 1. Highly recommended; 2. Recommended; 3. Marginal; and 4.
Not recommended. Stated in more elaborate language, the category Highly Recommended means
"This man will learn the computer rapidly. He
will not have difficulty or be confused by the
rigorous logical elements in understanding and
utilizing machine language and machine commands.
After formal instruction he will continue to
learn on the job from his senior colleagues and
from the day to day experience in office routine.
He will advance rapidly to assume independent responsibility for substantial programming tasks.
Most of the individuals who ultimately become
'creative programmers' will develop from this
category." The Recommended category means about
the same but with less rapid development, less
efficient de-bugging, less assurance of attaining
status of independent responsibility and less
likelihood of becoming an outstanding contributor to the organization.
Statements in this non-quantitative joboriented language are, of course, ambiguous to
some extent, but they seem to be meaningful to
supervisors responsible for computer operation.
However, it is extremely important to keep in

mind that such statements are forecasts of things
to come if appropriate training and opportunities
are made available. Since they are predictions,
they may be in error. Before the classification
of applicants can b~ acted upon automatically,
it is necessary to determine the truth value of
the statements.
It would be ideal to identify 1,000 persons
in each category, provide the programming opportunities, and then two or three years later count
heads and evaluate the work of the supervisors.
Real life circumstances do not make this experiment possible and the best approximation we ha~e
been able to achieve so far are less than definitive.
SUMMARY QE ~-UP RESULTS
Installation A
Report

!

LAD

Supervisor'~

6

HR

10

R

1 disappointment, 5 achieved
independent responsibility
All good but surely not so good
as BR's
Do not get the idea

9

NR

Installation B

5

HR

2

R

1

M

6

NR

1) slow but capable; 2) very
effective; 3) high powered;
4) top man in charge; 5) can't
get to know him
1) effective programmer, chief
debugger; 2) effective, flexible
Effective within limits and
under supervision
All comments negative or evasive
Installation C

8

R

All satisfactory. We decided
to take no chances.
Installation D

6
3

BR
R

1

M

All very
All good
the lIR's
Not much
to learn

effective
but not as good as
imagination and slow
new developments

Installation E
6

3

R
M

1

NR

Estimates correct
1) marginal; 2) outstandingly
effective
Estimate correct
Installation F

5

HR

11

R

3
5

M

NR

3 outstanding, creative;
2 very good
2 outstanding, excellent; 7
good but not the best; 1 adequate; 1 mediocre
2 solidly good; 1 mediocre
2 mediocre; 3 poor programmer

9
1.1
The informality and non-comparability of
these supervisor's evaluations precludes the possibility of combining the results in a single
table of probabilities. The data do, nevertheless, suggest the magnitude of errors of two
kinds. Errors of the first kind occur when a
person who is predicted as Highly Recommended
proves to be a disappointment. This kind of
error for the Highly Recommended and Recommended
groups has occurred with small relative frequency.
Errors of the second kind, namely, discovering
excellent performance on the part of marginal
and not recommended candidates are less well
defined in the data possibly because there is

greater ambiguity and greater difference of
opinion and much reluctance connected with declaring disparaging evaluations.
Errors of the second kind, which reject a
candidate erroneously, are of much less economic
consequence to the employing organization,
whereas errors of the first kind involve losses
of important magnitude.
The writer concludes from the evidence so
far accumulated that the effort involved in using the LAD procedure results in a significant
economic pay-off.

Fig. 1. The Logical Analysis Device Operator's Display Panel

11
1.2

A METHOD OF VOIOE OOMMUNIOATION WITH A DIGITAL OOMPUTER
S. R. Petrick and

H. M. Willett

Air Force Cambridge Research Laboratories, AFRD
Bedford, Massaohusetts

Summary
A pattern recognition procedure for achieving
automatio identification of spoken words has been
developed and instrumented using an eighteen
channel voooder and a general purpose medium
soale oomputer, the AFCRL Cambridge Computer.
The process depends upon the representation of a
spoken word by a sequenoe of ootal digits whioh
describe the amount of instantaneous power in
eaoh of eighteen frequenoy bands at time intervals
of 1/50 second. Essentially, recognition is
aohieved by matohing suoh a digital representation
of a spoken word asainst a set of stored word
"masks", one for each wo-rd to be reoognized.
To develop such a set of masks (giving the
oomputer a particular vocabulary) the speaker
repeats a word several times. A mask is then
oomputed whioh optimizes a certain reoognition
parameter. The speaker must then type into the
oomputer the printed word he wishes associated
with his spoken word. This process oan then be
repeated to add other desired arbitrary words to
the oomputer's vooabulary. At present, using the
Cambridge Computer whioh has only 1600 magnetio
drum storage registers, this vooabulary is limited
for most purposes to 83 spoken words and requires
about one and one half seoonds per vooabulary
word for reoognition.
If the speaker's own voioe is used to
prepare masks of the words he wishes to be
reoognized, correct identifications are made
with almost 100 peroent aoouraoy. In other
oases the degree of success is highly dependent
upon the partioular individuals involved.
Other programs and prooedures which have
been tested, all dependent upon the basic word
reoognition faoility, inolude:
1.
The voioing of a word in one
language followed by its typewriter assooiation
in a seoond language, resulting in a orude word
for word maohine translator.
2.
A routine whioh enables a speaker
to say a sequenoe of words (from the set zero,
one, ••• , nine. plus, minus, times, braoket,
equals) whioh are followed by a print out of
the words spoken and the value of the expression
defined.
3.
A speaker reoognition program
whioh identifies the talker with appropriate

oomments as well as the word he spoke.
4.
An adaptive program whioh enables
the oomputer to automatically reorient itself to
a new speaker's voice.
Introduotion
The reoognition of digitalized speeoh
signals has reoeived oonsiderable attention in
recent years l,2,3,4,fi,6,7,8,9 for two good
reasons. First, many data processing problems
would be most oonveniently supplied with input
of a vocal nature. Examples are plentiful if
the vooal input-is sufficiently aocurate,
economioal, and general in application,1e., free
from limitations suoh as individual speaker
differences or i~bility to aooept oontinuous,
unsegmented speech. Applioation is, of oourse,
limited, if the vooal input does not meet the
previously specified qualifioations, but is not
necessarily precluded. This paper will present
the oapabilities and limitations of one possible
procedure for vocal oommunioation with a general
purpose digital oomputer, and it will be left for
the reader to supply the applioations, if any, of
interest to him which seem feasible.
A second explanation of the reoent interest
in speech pattern reoognition is that the
ourrent vogue fOr researoh in th& pattern
recognition area of artifioial intelligence
requires researoh vehioles. The ability to sort
unknown events or objects, eaoh described by a
set of numbers, into olasses or oategories defined
only by samples of their known members is basio
to maohine learning. Spoken word reoognition is
a partioularly good researoh vehiole in this field
beoause it can provide a wealth of useful data
for analysis and testing, because equipment exists
for producing digitalized speeoh, and because
there is a large relevant fund of knowledge in
the speeoh field whioh is of value.
Description of "EqUipment Used
On the Ohoioe of Input Data
Reoognition of any pattern by means of a
digital computer, whether arising from a speech
souroe, a printed page, or elsewhere, depends
upon finding a digital representation of eaoh
event whioh is to be considered. The digital
representation may oontain enough information
to synthesize an approximation of the original

12
1.2

event or objeot, or it may merely oonsist of
enough information to insure separation from
other members of the population with whioh we
are dealing. If we are interested in doing the
best possible job in a particular pattern
recognition applioation, the latter case is to
be preferred. Indeed, if we know or can
determine which charaoteristics to measure as
basic input data, the subsequent pattern
recognition prooedure can be made extremely
simple. In this case a short truth table is all
that is neoessary. This approaoh has been
applied, apparently very suooessfully, to
printed character recognitionlO , and it is also
being considered by several groups [or
application to speech reoognition. The truth
table approach, however, requires that the
pattern recognition be essentially done by
measuring equipment, carefully oonstructed to
solve & particular problem by ingenious human
designers. This approach is, therefore, not of
primary interest to researohers in pattern
recognition. However, for many praotical
applioations the best available measurements of
an object we wish ~o reco~ize will still
require truth tables of prohibitive size and
thus depend upon application of more sophisticated
pattern reoognition procedures. Speeoh
recognition seems to be one of these problems.
The data used in this study were of the
previously .entioned, highly redundant variety.
This is known because the digit stream of
numbers supplied to the computer have been
reassembled by a speech synthesizer into
intelligible speeoh. In faot, this equipment
about to be desoribed was oonstruoted as &
means of reduoed bandwidth voioe oommunication
with a human listener. The primary reason
these data were chosen is that they were
readily available. The degree of suooess of
the rather simple pattern reoognition method
of this paper on suoh redundant data would seem
to indioate a great promise tor rapid advanoement in oral communication with a digital
computer in the near future.
Speeoh Digitalizing Equipment
The first voooder was developed about
twenty years ago at Bell Telephone Laboratories
to investi~te improved methods of speech
transmission. In recent years, the military
servioes have sponsored oonsiderable reasearch
in speeoh bandwidth oOIllPresl.iOn..- in order to
squeeze more channels into the radi~ __spectrtlDl.
The voooder is basically a device which
converts spoken utteranoes to time - frequency
patterns of speotral energy. The particular
voooder used in this studl de~~~poses sound
energy into eighteen se~ents of the audiO
speotrum using a like number of bandpass
filters. 11,12 The output from eaoh of these
filters passes to a corresponding speotrum
analyzer whioh measures the power density of
the sound in its assigned frequenoy range.
The output from each speotrum analyzer is then

fed to an eleotronic time multiplexer whioh
samples the analyzer outputs at the rate of fifty
times per second. Eaoh of these magnitudes is
then converted into a three bit binary number.
It is thus seen that speech is converted to a
sequence of eighteen digit octal numbers at the
rate of fifty such numbers or speeoh "patterns"
per seoond. Figure 1 shows a block diagram of
this digitalizing equipment and ~igure 2 shows
a typical analog speech spectrograph and the
corresponding-digitalized speeoh patterns.
Digital Computer Usage
The patterns from the vocoder are read
directly into the AFCRL Cambridge Computer
through a real time data register. Each 1,"ittyfour bit patterh is deoomposed into 8ix nine
bit units whioh sequentially enter this ten bit
real time input register. The Cambridge
Computer is a 1600 word magnetio drum maohine,
a prototype of the Univao Solid State cromputer,
and its serial nature barely allow8 it to store
the input data as they arrive with no time
remaining for any simultaneous computation. It
is only possible to discard initial null patterns
and to count the number of patterns to be aooepted.
The limited storage of the Cambridge Computer
permits taking about fourteen seconds of speeoh
if storage is to be completely filled with data
or a lesser amount if data is to be processed
immediately.
In real time word recognition the speeob
input has been neoessarily limited to two seoonds
of speech during which an isolated word is to be
spoken. Upon storage of this data the oomputer
uses a set of empirioal" rules to determine the
boundaries of the digitalized spoken word,
eliminating extraneous baokground noise and
a~lowing for possible periods of silence within
a word. The data are next ~ime normlized so
that eaoh spoken,word is represented by a fixed
number of equally spaoed patterns. and the ootal
digits of these patterns are unpaoked and
oonverted to BOD d~gits. At this point the
computer is ready to use this digitalized version
of a spoken word tor either learning or
recognition.
Ope~ting Cha~cteristics

Of The System

The word recognition prooedure of this
paper oonsists of two modes, learning and
recognition. In the learning mode the speaker
pushes a button, initiating speech intake by the
computer, and speaks a word into tbe microphone.
After this procedure is repeated a predetermined
number of times, usually only onoe more, the
computer requests a type-in of the word which
has just been spoken. Following this labelling,
a mask or template is computed whioh cba~oterizes
this typed word. When this mask isaored in the
computer memory, the word it denotes is added to
the vooabulary of words which can be recognized.
After each mask is computed, the system is ready
for the next new word to be spoken.

13
1.2
When operating in the recognition mode with
a vocabulary comprised of previously computed
word masks, the talker asain pushes a button
and speaks his word. The computer identifies
and types this word, and the system is ready
to accept another spoken word. This recognition
is a~co~plished b~ selecting (us~ng the lis~_o£
stored masks) that word whose mask most closely
resembles the unknown word for which identifioation
is desired.

Alternatively, one could employ individual
thresholds for each mask, or a single
threshold for all masks, or perhaps a
combination of the above procedures. All of
these have been investigated, and some suffice
in one application but have disadvantages in
others. The procedure used in each application
will be inoluded in the discussion of that
a pplica tion.
Word Recognition Conclusions

Word Recognition Yethod Employed
The previous section used several phrases
including "which oharaoterizes this typed word"
and "most closely resembles" which must be
precisely explained. A number of ohoices could
be made as to how masks should be determined and
how they should be matched, and one cannot know
a priori which choices are best for the
application in question, digitalized word
recognition. The particular method used by the
authors which will be detailed below is only one
of many plausible alternatives. It would
admittedly not suffice for many pattern
recognition applications, but it has proved
useful in dealing with speech.
If we denote by Xij the i ~ speotral
comj)onent of the J th repetition of some word.
and if we denote by Yi the i th
speotral
component of a stored word mask, the criterion
ohosen for measurin~ the agreement_between
Xij and Yi is given by

N

C =

(L
1

=1

N

L(Xi - Y i) Z

Xl Y i) /
i

=1

If we sum over the various repetitions of that
word which are available for mask determining
purposes, and if we ask that the function
N

Q

= (I

M

N

M

L Y i Xi j ) / L L( Y i-Xi j ) Z

1=1j=1

1=1j=1

be maximized, we can find those mask oomponents
Yi which do this. The details of this
maximization will not be exhibited here, but
the desired components are given by
M
N
M
Yf = (.
X ij ) 2
X ij 2) /
~J = 1
i = 1 j = 1

I

M-

(L L

Ml.,(LX)2
i
1 j
1 ij

=

=

This mask is the desired optimal template in
the previously defined sense for use with
criterion C in effeoting a deoision procedure.
There are several reasonable decision
prooedures which could be used. In dealing
with a fixed vocabulary one oould oompute C
for each mask using an unknown word and then
ohoose the mask whioh produoed the largest C.

Results. Having specified the recognition
procedure to be used, the next question is, how
well does it work? Yore specifically, how well
does it work as a function of those parameters
at our disposal? These results were presented
orally13 at the Ootober meeting of the Acoustical
Society of America and they are currently being
assembled for written Qublication so merely the
highlights will be given here. Figure 3 shows
the effect of vary~ng the time normalization to
18, 9, 5, and 3 patterns per word. The restricted
vocabulary here consists of the -decimal digits
zero through ten, four samples were used in
computing each mask, the same speaker's voice
was used for both learning and recognition but
no utterance was so used for both, nine male
speakers are represented, all eighteen frequ~ncy
channels were retained, and the decision prooedure
was merely to select the decimal digit whose mask
produced the largest value of the previously
defined criterion C. The ratio of selection
indicated in figure 3 is the average ratio of the
vaiues of C for the best and next best words.
L _

Figure 4 shows the effect of ohannel merging
on word recognition. Adjacent channels were
averaged to give nine, six, and three frequency
channels for each of the time normalizations of
nine, five, and three patterns per word. The
other~pecifications as to vocabulary, etc. are
the same as already given for figure 3.
Figure 5 shows four typical oonfusion matrices
illustrating recognition of phonetically similar
words. The number n in a particular row and
column implies that the word in that column _s
s~oken and identified as the word in tha~ row
n times. One speaker was used throughout and
otherwise the specifications of the previous two
figures apply. Similar matrices exist ~or a
number of other frequency-time normalization
combinations and their principal results are
displayed in figure 6.
Summarizing briefly, very few recognition
errors are made if enough bits are retained and
if a single speaker is used both for mask making
and for subsequent recognition. If, however,
different individuals are used for learning and
recognition, the results are highly dependent
upon the individuals in question. Perro~rnanoe
varies from nearly perfect to consistently in
error for certain people and words. One solution
to this difficulty is to make up composite masks
from several good speakers. This has been found

14
1.2

to inorease performanoe but is not easily
meohanioally aooomplished sinoe a speaker may say
oertain words fine for the purpose of universal
recognition but say others quite ambiguously for
this purpose. Another solution is the adaptive
program to be described in the next section. It
will be seen, however, that this prooedure has
oertain limitations, and in these cases the
fastest way to insure good performanoe for a
partioular speaker's voioe is to make masks from
his voioe. Fortunately, this is easily acoomplished
for an arbitrary vocabulary by speaking directly
those words whose recognition is wanted.
Limitations.
In addition to the previously
enumerated accuracy limitations there are other
restrictions of the method of this paper which
should be carefully stated. One of these
concerns storage requirements. Using five
patterns per word and nine frequency channels,
six Cambridge Computer words of storage were
reserved for every desired vocabulary word.
Because of the Computer's limited storage, only
500 storage registers are available for mask
storage, limiting the computer vooabulary to 83
such vocabulary entries. The remaining Cambridge
Computer storage is used as follows: 200 registers
for the recognition program, 200 words of
temporary storage for the unknown input word and
100 registers for its time and tre~u~~c~ normalization, 200 storage registers for the real time data
input program, 200 registers for decoding the
scrambled input bits and converting them to BCD
characters, 100 registers for elimination of
coughs and background noise, and 100 registers
for storage of alphabetic responses.
Of course, if more storage were available,
input durations of more than two seconds would be
feasible, assuming real time recognition were not
possible on a word at a time basis. Words must
still, however, be spoken in isolation or else
continuous speech must be segmented into words.
Work on the segmentation problem is presently
under consideration by various groups.14
A final limitation that will be mentioned is
computation time required. This depends, of
course, upon the number of masks in storage.
Using the rather slow drum oomputer of this study
about one and one half seconds per stored
vocabulary word (5 patterns - 9 channels) are
required. This figure would be cut by a faotor
of about 100 if a computer of IBM 704 speed were
used. If we are satisfied with successive words
oocurring no faster than every n seconds, we
could then aohieve real time recognition on a
word at a time oontinuous basis for a vooabulary
of about 66n words.
Demonstration Programs
Basic Word Recogni1t>n Program.
It has been
seen that the basic recognition computer program
previously described allows one or more speakers
to build up a working arbitrary vooabulary with
a minimum of time and effort merely by speaking
each word into a microphone several times.

Initially, the oomputer requests the user to
type the number of patterns per word he wants
for time normalization and to also ~ype the
number of word repetitions to be used for the
computation of eaoh mask. When this information
has been supplied, the first word may be spoken.
Prooessing of each repetition of a word takes
about three seconds. Following the computer's
request for alphabetic labelling of a spoken
word, the mask and oorresponding alphabetics
are punched out on paper tape. The system is
then ready for the next word to be spoken. When
masks have been made for all desired vooabulary
words, recognition can proceed for those words.
The limited storage of the Cambridge Computer
necessitated separate programs for mask making
and subsequent reoognition. Aooordingly, to
proceed, the recognition program and desired
vooabulary must be read into the oomputer.
Channel merging, if desired, can be aooomplished
while the data are being entered into storage.
The deoision procedure used for this
demonstration program seleots a word immediately
provided the value of C i~masks produoes is
higher than a given absolute threshold. If no
decision is mad~ in this manner, the word whose
mask produced the highest C is seleoted
providing this value is greater than a lower
threshold. If the best choice is below this
minimal threshold, the computer requests that
the word be repeated asain. The thresholds
were empirically selected, and values were found
which produo~d very tew requests for word
repetitions and virtually no false identifications.
Language Translation Program.
In order to
effeot a orude word tor word translator from some
spoken language to a different written language
it is obviously only necessary to ohange the
alp~betics used for displaying_words reoognized.
This was done as a demonstration for the authors'
Laboratory Chief using the German decimal digits
null through zehn as spoken input and English
numerals for printed response. Suffioient
similarity was found between the German
pronunciation of the demonstratee and demonstrator,
whose voioe was used to produoe the masks, to
permit translation for both without error. This
exeroise was, of oourse, limited to a relatively
small sample Size, and while it may not prove
muoh about the effeotiveness of the word
reoognition prooedure of this paper, it would
seem at least to indicate that the author in
question's German pronunciation couldn't be too
bad.
Speaker Recognition Program.
It was observed
that the indices C obtained were oonsiderably
higher when the same individual was used for both
mask computation and subsequent recognizing. This
was exploited to effect speaker reoognition of
individuals speaking from a restricted vocabulary.
In one exercise nine male and seven female voioes
were used to produce masks for the words "one",
"two", and "three". Nine frequency channels,
five time samples per word, and four word
repetitions were used for each of the forty-eight

15
1.2
masks. Different word repetitions were utilized
for the recognition phase. ~ch of the sixteen
speakers spoke, "one", "two", and "three" several
times, and the choice of speaker and digit spoken
was made solely by selecting the largest value of
the index C. Figure 7 shows the results of this
study. The numbers in each box indicate the
sample size and percent of successful
identification.

= n/d from the mask whioh maximizes Q, we
should find that C approximates Q beoause
n/d =-= 11' / d
_ if nand dare clOSG
in value to nand d. This reasoning prompts
us to consider BQ, 0 < B < 1
as a
threshold against which C may be compared. The
other constant A was added to BQ strictly for
empirical reasons.

Encouraged by these results, a speaker
recognition program was written for demonstration
purposes, using the previous forty-eight word
masks. With this program an unknown speaker says
his word into the computer and obtains one of the
following types of responses: "That was John
Jones speaking the digit three; I don't know who
you are, stranger, but you spoke the digit two'
I don't have the slightest idea. who you are or'
what you said; speak more distinctly and repeat
your word again, please." The remaining
possibility, "I don't know what you said, John
JOnes, but I recognize you", is not currently
allowable but is under active consideration and
it appears to be feasible with at least a f~ir
degree of success.

If index C does not exceed any threshold
A + BQ. the best ohoioe of one, two, or three
is made for each speaker, and if at least p of
the speakers agree on the same choice, this digit
is seleoted and the speaker is assumed to be
someone not represented by a stored mask. If
less than p speakers agree upon the digit
spoken it is assumed that a word other than one,
two, or three was spoken. Finally, word repetition
is requested only when some probable source of
trouble is detected in the input program such as
improbable length of the spoken word.

The decision procedure used for the above
program is the following. Each of the
categories involving both a specific speaker
and spoken word are selected only if their
associated value of the criterion C exceeds a
threshold of the form A+ BQ where A and B a;re
constants and Q is a number associated with each
mask and computed at the same time as the mask.
This is actually the same maximal Q whioh was
previously defined. It can be shown that the
maximal value of Q is given by
Q =

II

2.(

K.J"M

-1 )

f f

M
X
) 2.
where K2.=
X/, /
ij
i::.1j=1
j i=l j
1
and this expression is the one which was used to
compute Q. The primary reason for using Q is
empirical, but it was suggested by the fol£owing
qualitative thinking: ,Q is of the form

~ (I

=

(n1 + n2. + ••• + n M ) / ('\ + d2. + ••• + ~)
and if each of the M word repetitions in the
sample are sufficiently similar, each nj
and
dj will not differ excessively from
n =

(M-

j~ 1

nj )/M

and

Under these assumptions we can approximate
by

n

MI d

M

or""lf

Q

I d.

If we now compute a value of the criterion

C

Scope Display Program.
One of the
distinctive output features of the Cambridge
Computer is a large 19 inoh three color (red,
blue, green, and combinations thereof) scope
display unit. This was used to allow easy visual
scanning of spectral word representations. The
horizontal axis is the time axis and the vertioal
axis is used for frequency. At any interseotion
the color of the point denotes magnitude of
spectral energy with several color ooding ohoioes
available. Input may be either from punohed
paper tape or real time from the microphone. This
program was ~ound to be of value not only for
quickly insuring that all equipment involved is
working all right initially, but also for
diagnosing exoessive noise and obtaining useful
information about the structure of oertain digital
word representations. For example, in examining
the similar words bit and beat for one speaker it
was discovered that he inserted a prominant period
of silence before the final stop oonsonant in the
word beat but did not do so for the word bit. This
indicates machine separation of those two words
for that speaker was based on more than the phonetic
vowel difference between -e- and i
Arithmetic Expression Evaluation Program.
This program utilizes a vocabulary
consisting of the decimal digits zero through
nine and the operation symbols plus, minus,
times, bracket,and equals. The decision
procedure used is the same as that for the
previously described basio word reoognition
demonstration program.
In using this program the speaker makes up
a meaningful arithmetio expression from the
allowable input words. Each word is sequentially
recognized and symbolically stored until the word
"equals" is enoountered.
At this point the
expression is evaluated, multiplioation first
and then addition and subtraction in cases not
speoified with brackets. The entire expression
understood by the oomputer is then typed followed
by its computed value. Examples run on the

16
1.2

computer include:

2+2 [13-5]*6 -

4
48

123+456*3-2*[26-23]+35*[165-166]-4
1446

-

314*[1327-64*21]*[129*4+62*72*2-89*43]
+[43*2196]-17-[26-24*3+4]*[7-9] -29889219

Adaptive Reorientation Program.
While the
method of this paper was found to be very
successful when the same speaker's voice was
used for both mask computation and word
recognition, results are less consistently
successful when different voices are involved.
To eliminate this difficulty, two adaptive
programs were written, both designed to convert
a set of masks made from one speaker's voice to
a set corresponding more closely to a new speaker.
One of these programs requires the use of an
operator to make certain decisions and the other
program operates independently of an~ human
intervention. In both cases the masks of words
taken from one or a group of speakers constitute
the computer's vocabulary. An unknown speaker
then says a word which mayor may not be
represented in the vocabulary.
In the first case, the ratio of the highest
value of the agreement index C for this word to
the next highest C is taken, and this value,
R, is compared against a set of thresholds. If
R exceeds the hi2hest th~eshold. the comDuter
prints the recognized word and awaits the next
word. If R fails the highest but exceeds the
next lower threshold, the computer prints its
choice and asks the operator to indicate if this
choice is right or wrong. If the correct choice
is made, a fraction fl of the word is averaged
into the mask for that word. If, however, the
wrong choice is made, the operator types the
actual word spoken into the machine. The
computer then scans its vocabulary to see if that
word is represented. If the word is already on
the vocabulary list, a larger fraction f2' is
averaged into the mask. If, however, the word is
not found. it is added to the end of the
vocabulary, thus becoming the mask representation
of that word.

word be repeated. If a word is missed more than
once, the fraction of the word which is averaged
into the mask is increased. After n misses,
the computer either stops or, at the option of
the user, discards its earlier attempts and
replaces the mask by the last repetition of that
word.
The second learning program, as mentioned,
operates without human intervention. Again the
ratio R is computed from the two highest values
of the agreement index C. Similarly, if R
exceeds this program's highest threshold, no
adjustment is made. However~f R fails to
exceed the lower threshold, the word is rejected
and no adjustment is made. In any other case,
the fraction of the word to be averaged into the
masks is determined from the value of R obtained.
This fraction is taken to be 3/4 when R equals
the lower threshold and decreases linearly as a
function of R to zero when R equals the
higher threshold.
The results obtained from running both
adaptive programs seem to indicate that the
programs are of practical value as a means of
obtaining new masks only when the initial
agreement is substantial. With operator
intervention, of course, successful conversion
is always achieved. but if a minimum of human
participation is required, the making of new
masks from scratch is to be preferred. The
other adaptive program mayor may not converge
successfully to the new speaker's voice. One
approach which might improve the performance of
both programs involves the previously mentioned
use of composite masks made from several good
speakers.
As an example of a typical attempt to
convert from one speaker's (WO) voice to
another's (AP) and back without operator
assistance the following run is presented. A
mask for the single word "one", "two", and
"three" spoken by WO. The procedure here being
followed using taped input words is to repeat
the identical utterance if R lies between the
two thresholds. The two values chosen as
thresholds here were two and ten.
Step
1
2
3
4

5
6

If neither threshold is exceeded, the
computer asks the operator to identify the word.
Again the vocabulary list is scanned and the
proper mask, jf' found, is adJus ted by a still
larger fraction f 3 • Also, if the word is not
found, it is added to the vocabulary.
If the mask has been adjusted (i.e.,in any
case except the first where the highest threshold
has been exceeded), the computer asks that the

7
8
9

10
11
12
13
14
15
16
17

Speaker
AP
AP
AP
AP
AP
AP
WD
WD
WD
WD
WD

AP
AP
AP
AP
AP
AP

utterance
5
6

7
7
8
8
6
7
8
9

10
5
5
6
6

7
8

R
1.63
1.84
2.31
) 10
3.21
) 10
1.8
1.65
1.5
1.99
1.54
6.0
)10
5.72
)10
)10
)10

17
1.2

In steps 1 and 2 AP's utterances did not
produoe enough agreement with WO's "one" to
exoeed the threshold two. Accordingly no action
was taken. The next utterance (utterance seven
in step three), however, gave R = 2.31 causing
the first mask modification to be effected.
Repeating this same utterance now gave a value
of R in excess of the upper threshold (step 4).
Step 5 again modifies the mask. In steps 7
through 11 WO is speaking "one", but recognition
is too poor to oause any mask modification. in his
favor. In steps 12 through 17 AP's utterances
are again repeated until no more modification is
made.

4.

D. B. Fry and P. Denes, "Experiments in
Mechanical Speech Recognition," Informtion
Theory (Butterworths Scientific Publications,
London, 1956), pp. 206-212.

5.

D. B. Fry and P. Denes, "On Presenting the
Output of a Mechanical Speech Recognizer,"
Journal of the Acoustical Society of
America, V 1. 29 (1957), pp. 364-367.

6.

G. W. Hughes and M. Halle, "On the
Recognition of Speech by Machine,"
Proceedings of the June 1959 International
Conference on Information Processing, Paris,
(Butterworths Scientific Publications,
London, 1960).

Conclusions
The method of this paper seems feasible
for those applications where words are spoken
in isolation by a speaker whose voice was used
to prepare msks. These masks may be made
rather easily and retained for each talker who
wishes to be able to communicate orally with
the computer. The limited storage capacity of
the Cambridge Computer restricted the size of
the vooabulary possible at anyone time.
However, the observed discrimination between
phonetically similar words seems to indicate
that words could be recognized from a larger
vocabulary. Use of a large scale computer and
a 500 word vocabulary is presently under
consideration.
Acknowledgments
The authors are grateful to C. P. Smith
and his group who developed the vocoder system
employed and operated this equipment whenever
speech data was taken. The scope disnlav
program and real time input program were
wrl~~en Dy F. H. CoOk, who also assisted in
designing input equipment necessary to read in
real time da ta •
References
1.

X.H. Davis, R. Biddulph, and S. Balashek,
"Automatic Recognition of Spoken Digits,"
Journal of the Acoustical Society of
Amerioa, Vol. 24 (1952), pp. 637-642 and
Communioation Theory (Butterworths
Scientific Publications, London, 1953),
pp. 433-441.

2.

J. W. Forgie and G. W. Hughes, " A RealTime Speech Input System for a Digital
Computer," Journal of the Acoustical
Socieity of America, Vol. 30 (1958},p.668.

3.

D. B. Fry and P. Denes, "Mechanical Speech
Recognition," Communication Theory
(Butterworths Scientific Publications,
London, 1953), pp. 426-432.

7.

M. V. Ma~hews and P. Denes, "Spoken Digit
Recognition USing Time-Frequency Pattern
Matching," Journal of the Acoustical
Society of America, Vol. 32 (1960), p. 914.

8.

H. F. Olson and H. Belar, itA Phonetic
Typewriter," Journal of the Acoustical
Society of America, Vol. 28 (1956) pp. 10721081.

9.

G. Sebestyen, "Automatic Recognition of
Spoken Numerals," to be abstracted in
Journal of the Acoustical Society of
America, V 1. 32 (1960).

10. "The Voracious Eye", Time Magazine, Vol.
LXXVI No. 10, Sept. 5, 1960, pp. 69-70.
11. C. P. Smith, "Speech Data Reduction,"
AFCRC-TR-57-lll, ASTIA Document No.
AD117290, May 1957.
12. C. P. Smith, "An Approach to Speech
Bandwidth Compression," Proceedings of
Seminar on Speech Compression and ProceSSing,
AFCRC-TR-59-198, Vol. 2, Sept. 1959.
13. S. R Petrick and H. M. Willett, " Digital
Automatic Word Recognition Procedure," to
be abstracted in Journal of the Acoustical
Society of America, Vol. 32 (1960).
14. J. W. Forgie and C. Forgie, "Segmentation
Scheme for Use of a Speech Recognition
Computer Program," to be abstracted in
Journal of the Acoustical Society of
America, Vol. 32 (1960).

t-'~
1\:)0:>

CONVERSION OF VOICE SPECTRUM PATTERNS TO DIGITAL WORDS
CLOCK
ANALOG
VOLTAGES
(0 - 25 CPS)

SPECTRUM

ANALYZER

..... SYNC

r-.....
i'

OUTPUT IS A SERIAL DIGITAL
REPRESENTATION OF TH.E
VOICE SPECTRUM PATTERNS
. NORMALIZED IN AMF LITUDE .

..........

i'
..........

VOICE
I ~PUT

--

18 CHANNEL
VOCODER

,

ELECTRONIC

I..........

..........

COMMUTATOR

I..........
I..........

i"'-

(DIODE
MATRIX)

-

ANALOG/DIGITAL

--

"MULTIVERTER"
41'

...........

f"'.,

""

""'-

""'r-.....
f"".,
,f

r

VOICE AMPLITUDE ANALOG VOLTAGE
VOICE PITCH ANALOG VOLTAGE
Fig.!.

-

-

-

o

't

......
~

~

i

f

...,

!,V

N

0'

~

(J1

~ ~

0

N

0'

~

(J1

:

2
43.33

52

5
5

6. 4 3
6. 4

5

5.

.....

4 4 •

5 •

6 3 •

2.

CJ)

2
3
2 2
2

fTI

2

2

2

24
24
24

CI)

"'"i

~

2
• 33
• 34

til

...,

~

~

~

:354 5

...,®
..N

3
2
2
2

~

"V

• 2
• 3

3

:u

;=
(JI

co

•

2.
.~~4 3 ••
.'+ 4 2
.3 4 2 •

5. 4
5. 6 3
3. 7 5
• 6 7
• 57

• 24
• 24
• 34

•

•

• 3

• 2

2

• 2

• 2
. 2

•
•

• q 1 2 •
• 2 6 2 •

• 42

3

2

2

2
•

2 : 4 6
6 2 • 5 3

• 1 6

33

I:

3 q

•

: 4

4

55

• 55 4 •
• q5 5 3.
•

3

4
4
4
Ii 4

24.44.42
2.24.53

•

•

4
5
5
5

:

• 2

...,

4
4
4
4

:
•
•
•
•

• 3

"

" 24
• 24
" 24
" 2~
4

: 4 4
• 3 4

:~

• q6 5 •
• 26 q 2.

5

5
5
1
6
• 4 6
• 4 5
•
• 3
• 3
• 3

3 4 :
2 4 •
2 3 •
2 2 •

• 44
• 53
.252
2.43
2.
3.4
2.
3.3 3

.....

=t
~ •~

q

4 2. 2 5 3 •

• 23

2

5

4 5 • 6 3 •
45.53.2
4q.54.2
4 4 • q 4 •

233
2

~

2

2 2 • 5
3 3 • 3

2.

4.

2

22
23

2
2

5 4 •
q 4 • 4

4

• 24

c::::
~

: 2

• 52
" 3
3
3
" 23

~

~.

2
3
3
3
3
3
33.44.3
• 2 5 5 •

" 42
• 42
42

<:)

-..,

3: 5 5 4 :
4. 5 5 4 •
4. 5 5 4 "
5. 3 q 4 •
3 5.
4 4 •
5 3.
3 4 •

2
2

~

~

0

~.

...,

o

FREQUENCY

O't

~__~__~____~__~__~I

no,

o
o

..

UI

I\)

2

2
2
2

2
2

7 2 •
7 •
7 2 •

~ Qj

0

-

~

<.n

FREQUENCY

()

I\)

v"

=-:

"'TJ

CI)
(;"1

61

A
0

-0

CJ)

20
1.2

WORD RECOGNITION OF
DECIMAL DIGITS
EFFECT OF TIME NORMALI·ZATION

NUMBER OF
PATTERNS
PER WORD

SAMPLE

0/0

S I%E

SUCCESS

R AT 10
OF SE LECTION

18

218

99.5

6.4

9

97

100

6.9

5

104

99.2

10.3

3

43

95

4.5

Fig. 3.

21
1.2

WORD RICOINITION 0' DlcaMAL DIIITI
EFFECT OF CHANNEL MERGING
ON
NUMBER OF

PATTERNS
PER WORD

WORD

NUMBER OF
FREQUENCY
CHANNELS

RECOGNITION
SAMPLE
S I ZE

SUCCESS

0/0

RATIO OF
SELECTION

9

9

77

98.7

9

6

77

96

7.6

9

3

76

96.1

5.1

5

9

77

100

11.1

5

6

77

94.8

9. I

5

3

75

93.5

5.4

3

9

77

94.7

10.0

3

6

77

93.5

6.8

3

3

78

86

00

Fig. 4.

10.14

~tv
tv tv

CONFUSION MATRICES
ILLUSTRATING RECOGNITION
OF PHONETICALLY SIMILAR WORDS

S PO KEN

IW I-

ca:1~ti 1&11&1

BAT
BATE
BEAT
BET

CD CD CD CD
4

1&1
I- I-

iii

~6

00
CD CD

:

TIME SIrrMPLES
18 FREQUENCY CHANMELS

...

...

I:
I-LIJ Ica:
~
o
C!)
... Ica:~ LIJ LIJ - r 0 0 5
CD ID ID ID CD CD CD
CD CD

C!);:) l-

~g

;:)

CD

BAT
BATE

4

4
4
4
4

4

BOUGHT
BOUT
BUT

4

4
4
4

3
4 I

3
4

BOUT
BUT

4

4

4

I

SUCCESS RATE 100 %

SUCCESS RATE

3 TIME SAMPLES
3 FREQUENCY CHANNELS

....

I-

.... I-~ 1-1ca:o ;1WW
0 0 ::>;:)
CD CD aiai CD CD gg

'" I-ca:
~~

BAT
BATE
BEAT
BET
BIT
BITE
BOAT
BOOT

I

;:)

Ol IDCD CD CD CD CD

CD

BAT
BATE
BEAT

I

3 4

3 I
I

t
3
I 4
3

BOUT
BUT

3

SUCCESS RATE 68.18 %

....
;:)

0

2

3

I

;:)

2

I 3

I

I

• I
4
I

,

I

I

3

I

I

3 I

I 3

SUCCESS RATE 27.27 %

Fig. 5

....

CD CD

I

BITE
I
BOAT
BOOT
BOUGHT

4 3

.... C!)x
i 8CD

0

2

BET
BIT

I

2

BOUGHl
BOUT
BUT

ca: .... .... LIJ~
~ ....
lemented, the
new status of the puzzle is verified. What this
rather poorly chosen word connotes is a check of
each word in the puzz1e, wherein poor threeletter combinations and invalid short words are
noted disapprovingly, and good two-and threeletter combinations and full words receive due
reward, "gold stars" being marked down for theJl'

43
1.4

in a special record. I will have more to sfq
about these gold stars when I discuss the key
process of action scoring. After the gold stars
have been handed out. the program glances over
the puzzle to see if, perchance, all the characters have been filled in. If they have not, the
next stage of the decision process is initiated
by the re-entry of the program to the uppermost
box on the fLOW chart. The little boxes lying
off the path I have just beaten were discussed
earlier when I spoke of the negative actions open
to the program.
It is almost time to discuss ~he heart of
the Decision-Sequencer, namely, the scorlng
process and its associated verification process.
First, though, I should like to answer an objection which might be raised at about this pOint.
I am presumably claiming that my consistency
criterion allows me to rank finished DoubleCrostics as to their acceptability. This is
certainly implied by my use of a numerical score
which I compare with a threshold to determine
if a finished puzzle is acceptable. Why then, it
might be asked, do I not simply try all the combinations of the given definienda, and accept the
best scoring configuration as the solution, thus
rendering all this scoring and verification
folderoi nugatory? In fact, the objector might
add, if you would only guarantee that the correct
definiendum is included in every definienda list
then you could also dQ away with all your guesswork. Dropping now my role of Devil' s Advocate,
let me answer the second point by noting that,
in the bread and butter type problems which I'm
working towards, the analog of the correct
definiendum. is not, and cannot, always be included in the relevant list. As to the exhaustive approach suggested in the first part of the
objection, I have the law of exponential growth
on my side. For example, I shall presently show
you the solution process for a Double-Crostic
somewhat more challenging than the example I first
,showed.. There are only 18 definiens for this
puzzle, one of which had three definienda on its
list, the other 17 having only two definienda
each. This is a total of only 37 definienda,
but the number of combinations which I would have
to try in accordance with my critic's suggestion
is something over 393,000. In the particular
solution process I shall sketch later, 33 positive
actions were taken, four of which were incorrect
and were subsequently cancelled by four negative
actions. The total machine time for this solution process, including a detailed tape printout
at each stage, was about 30 seconds. There seem.q
then to be some point in employing to folderol
which we are about to discuss.
In the scoring process, an essentially qualitative value judgment is given quantitative
form. This is by no means equivaJ.ent to a transition from subjectivity to objectivity. The best
one can do is to minimize the area in which subjectivity operates and to limit the scope of its

activities in that area. In the concrete case
of Double-Crostic solution, subjectivity impinges
in two WfrJ'S on the scoring process: it affects
the choice of the factors deemed to be relevant,
and it enters into the assignment of relative
weights to those factors. In setting up the
earlier Decision-Sequencers, I allowed my intuition free plfq in both these directions. I
"felt" that the relevant factors, in scoring some
action for a given word, were the total length
of that word, the number of characters, already
f{lled in that word and the number of gold stars
already accumulated by that word. I then multiplied these numbers by seemingly "reasonable"
coefficients, as a function of the particular
type of action being scored, and then added a
fudging factor, again as a function of the type
of action. Oddly enough, I still managed to
solve some Double-Crostics this way. However,
having no coherent rationale for this scoring
scheme, I certainly had no clues as to how it
might be generalized so that I might apply it to
the problems in which I was really interested.
Furthermore, while I could applaud my intuition
when the program solved a Double-Crostic, I could
not explain the cases where the program failed.
I could, of course, blame my intuition, but
this would hardly have been constructive criticism. In the seventh, definitive, DecisionSequencer, the choice of relevant factors is
dictated by a coherent underlying philosophy,
and the assignment of weighting coefficients,
while still arbitrary to a certain extent, is
nonetheless constrained by considerations stemming from this same philosophy. I use the term
"philosophy" because the concepts are general
ones, and must be properly specialized so as to
apply to the given concrete case. I cannot pretend to you that the general philosophy has
been worked out fully. I shall therefore
restrict myself here to its specific application
to Double-Crostic Solution.
Viewed cold-bloodedly, a Double-Crostic is
seen to consist of two sets of hypothesis sets,
each Text word and each definiendum being considered a hypothesis. Initially, some of these
hypothesis sets may be vacuous, and the nonvacuous ones need not contain the correct entry.
It is assumed, rather vaguely, that an "adequate"
number of hypothesiS sets do contain the proper
entry. An acceptable final state will be one
where exactly one hypothesis will have been
chosen for each hypothesis set, where some reasonable proportion of the final hypotneses will
have occurred as initial hypotheses in their
respective hypothesis sets, and where each final
hypothesis will be a good English word. The
first reqUirement, of course, simply restates the
obvious fact that no "puzzle is conmlete that
does not have all its characters filled in. The
second requirement imposes the need for one of
the threshold values which I have previously
discussed. The third requirement can be phrased
somewhat more discursively as follows: only

44
1.4

some tiny percentage of Text words less than four
characters in length may not match up with dictionary entries; no definiendum may give rise to
too few good two-letter or too many poor threeletter combinations on the Text side of the
puzzle, while a similar constraint is imposed on
the Text words concerning their effect on.the
Definition side of the puzzle. A human puzzlesolver certainly imposes more constraints on
the final solution than those I have enumerated.
For instance, he would presumably reject a fourletter combination such as D E X C since no
English word contains this particular sequence
of letters. The Decision-Sequencer, however,
does not check for four-letter combinations, and
would find the two triples D E X and E X C to be
perfectly legitimate. Similarly, the machine
would not take exception to the phrase YOU
I S, although most Double-Crosticians might.
The point here is that what is redundancy for
the goose can be startling news to the gander.
It is in the verification portion of the Decision
Sequencer that redundancy factors are checked.
It is in the scoring portion that the decisions
are made which will tend to give the greatestfield of action to the verification process at
each step. That is, all other things being equal,
the scoring process will, or at any rate should,
present the verification process with the most new
two-and three-letter combinations, short words
and full words as possible. Sheer numbers alone
cannot be used. Two pairs of letters, for
instance, are not nearly as potent as two
triples. On the other hand, two triples are not
fifty times as potent as two pairs. Thus, while
the relative weights of these two factors can
be chosen somewhat arbitrarily, the range of
variation is not particularly great.
It should be clear that any scoring process
will automatically tend to fulfill the first
two requirements on the solution, since the
actions which are scored are all positive actions,
entailing the filling in of more characters, and
are all based on the use of hypotheses which
lie in the original hypothesis sets. The burden of meeting the third requirement, the one
specifying that the final result will be "good"
English, falls on the verification process
primarily. Apart from the final glance at the
puzzle in which the progrgm reassures itself that
the chosen hypotheses have been sufficiently
"fruitful", it is the verification section which
does the lion's share of "error" detecting. Thus,
if efficiency were not an operational requirement, the entire scoring pro.cess could be
replaced by a random number generator for the
selection of the next action to be implemented.
Efficiency, however, is a major requirement,
perhaps the major requirement. How, then, do we
construct an efficient scoring procedure? First,
as noted, earlier, we try to present the verification process with that action which, when
implemented, will provide the greatest sum of
weighted redundancy factors, everything else

being equal. Second, we analyze these other
things which may or may not be equal. One of
these things is the gold star count already
compiled by the relevant hypotheses. For
example, if several cammon characters of a given
definienda set had already been filled in,
leading to all sorts of nice two-and threeletter combinations on the Text side of the
puzzle, it would presumably be safer to guess one
of the definiendum of this set than to guess a
definiendum of another set which had thus far
been unproductive. Another cogent factor is the
length of the possibility list of each of the
contending hypothesis sets. The contention here
is that, all other things again being equal.
the shorter possibility list should be attacked
first. The reasoning here, as you will see, is
somewhat tenuous. Given two hypotheSiS sets,
one with two entries on its possibility list,
the other with three entries, we might argue as
follows. We do not know whether either list
contains the correct entry. Therefore, we might
just as well assume, for the sake of argument,
that the correct entry is contained on each list.
If we are fortunate enough to choose the correct
entry from the list we select, then it will have
made no difference which list we chose. If our
choice of entry is not correct, however, we can
hope that the verification process will cause
its erasure sooner or later. If we erase one
possibility from the two-entry list, we are
presumably left with the unique correct entry.
If, on the other hand, we erase one possibility
from the three-entry list, ve still have to
make a choice between the remaining entries.
To this argument we must add the consideration
that each positive action on one side of the
puzzle will entail a corresponding reduction in
the possibilities open to the hypotheSis sets on
the other side, since the numbers of partial
matches will, in general, be decreased. Thus,
the sooner a correct choice is made on the
Definition Side, the sooner will correct choices
be possible on the Text side, leading to more
correct choices on the Definition side, etc.
One final factor must be taken into account
in the scoring process. It is natural, and
probably correct, to assume that some kinds of
actions are inherently preferable to others.
Specifically, choosing a unique possibility, or
filling in common characters, would be preferred
to guessing a definiendum, no matter how JDBJlY
high-frequency characters it contained. Since
the correct definiendum is not necessarily
included in the original definienda list and
since, on the other side of the fence, the Text
dictionary is not complete, the first category of
actions can certainly not be considered as sure
things. This same uncertainty, of course, attaches
to the hypothesis set from which any guessed entry
is selected. It still seems reasonable, therefore, to give higher score to the relatively more
warranted actions.

45
1.4

The scoring process for a given action and
a given hypothesis set can now be summarized.
The puzzle is scanned t'o see what new redundancy
factors would be engendered by the action, and
each such factor is properly weighted. The sum
of all these weighted redundancy factors is then
suitably modified by the number of gold stars
already accumulated by the given hypothesis set,
the length of the set's possibility list, and a
warranty factor, which is a function of the type
of action being scored. In the case of the
action to seek common characters one slight additional modification is necessary. If an action
to guess a word of n unfilled characters is
made, then all n of-these characters will be
filled in by the action. On the other hand, an
action to seek common characters in a word with
n unfilled characters will lead to at most n-l
characters being filled in, and may result in no
characters at all being added. It is therefore
necessary to multiply the raw score for a common
character action by the expected proportion of
characters that will result. This proportion
can be determined empirically if intuition fails.
If I were to apply the philosophy underlying
Decision Sequencer 7 to some other problem area,
I would proceed about as follows. I would first
determine the hypothesis sets relevant to the
problem, together with the available means for
changing these hypothesis sets during the solution process. I would next decide on the actions
that could be ~aken in selecting one hypothesis
from a given set, and on the criteria for determining the a priori impossibility of a given
action at a given stage of the solution process.
Third, I would determine what redundancy factors
relating the hypotheses I would or could use,
and what relative importance I should attach
to each such factor. Finally, I would have to
decide on the stop rules, i.e., I would have
to specify when the solution process was to be
considered either successfully completed or
impossible to complete. I cannot, at tHis date,
report on whether this prescription has cured,
or killed, any patients, I hope to report the
former at some later date.
As a sort of appendix, I should like to
present a few selected moments from t~ree actual
solution processes. The first could not be
completed by the program. The second and
third could, which is the reason why I conclude
the paper with them. The next slide (Figure 5)
shows the puzzle status at a point when any
red-blooded American could finish it with his
left hand tied behind his back. Prior to this
point, the program had made four different bad
guesses which it was subsequently able to catch
and erase due to the exorbitant number of poor
three-letter combinations that had ensued. At
the point which now concerns us, the program
suffered from the paucity of lexical information
with which I provided it. The program was aware
of only one six-letter word which matched with

T R
H and was just unaware that the sixth
letter coUld have been, let alone should have
been, the letter S. It therefore completed
this word with its unique possibility,
T R P H Y. The program was unable to rectify
this particular error so that, after some thrashing about in which some earlier correct choices
were despairingly erased, the program ground
to a halt with the solution carried to the point
shown on the next slide (Figure 6). The Text
does have a certain piquancy, but it is undeniably incorrect. Two points are to be noted in
connection with this failure. This first is
that it could have been avoided had I taken
slightly greater pains in providing the program
with its basic lexical and grammatical lore.
The second point is that the solution process,
before being stalled, had proceeded extremely
rapidly. The definienda lists provided for
this solution process contained over 145,000
combinations. The correct status shown on the
previous slide had been arrived at after
seventeen positive decisions had been made,
including the four erroneous ones which had been
corrected prior to the point in question. I am
therefore not too discouraged by this particular
failure.

°

still, I find success particularly encouraging. The next slide (Figure 7) shows the
status of the target Double-Crostic just before
erasure of the fourth, and final, error made by
the program. As in the previous case, the
dictionary was inadequate, allowing the incorrect
unique partial match CON SUM E R to be filled
in, rather than the correct word
CON SID E R which was not included in the
dictionary. Fortunately, CON SUM E R gave
enough poor three-letter combinations on the
Definition side of the puzzle to warrant its
erasure. Since the erasure of any character
automatically leads to the erasure of all
characters to whose filling in the erroneous
character made some contribution, the erasure
of CON SUM E R led to the Significantly
stripped-down status shown in the next slide
(Figure 8). It was clear sailing from this
point on, however, so that fifteen decisions
later the final, and correct, puzzle status was
reached, as shown on the next slide (Figure 9).
Although the program remains oblivious to the
extra redundancy involved, the first letters of
the correct definienda here do spell out the
name of the author of the Text fragment and the
title of the source, to wit, the Memoirs of
Harry Truman (Volume I, page 189 to be exact).
If I may be forgiven for repeating myself, this
puzzle was solved by means of 29 correct decisions
and 4 incorrect ones which were subsequently
rectified.
In this particular solution process, the
verification section was particularly stern, in
that a definiendum would be erased if it
engendered only two poor three-letter cambina-

46
1.4

tions or just one inadmissible short text word.
Out of curiosity to see what, would happen if I
went to the other extreme, I disabled this
portion of the verification section completely,
thus allowing all triples and short words to be
considered admissible. This left the program,
as its sole error-detecting capability, its
facility for rejecting final configurations which
were not minimal.ly consistent. The next slide
(Figure 10) shows the final configurations which
were presented for inspection When the previous
Double-Crostic was used as a target. The fifth
time around the correct configuration was
presented and was accepted. As in the previous
case, four incorrect decisions had been made
here, but only 20 correct decisions had to be
made. I would not like to generalize on the
relative merits of the two forms of errordetection on the basis of such a minuscule
sample. I think it fair though to conclude, on
the basis of all the testing I have performed,
that the combination of redundancy factor
checking ~d cons:is tency inspection, taken in
conjunction with scoring by weighted sums of
redundancy factors, as modified by list length,
gold star count, warranty factor and expectancy factor, will provide effective deCision
sequencers in more urgent, if less entertaining,
problem areas than Double-Crostics. Time will
tell.

BorE: PermisSion to refer to Double-Crostics
granted by saturday~; permission to quote
from the Memoirs of Harry Truman granted by
Time, Incorporate~ - - - - -

47
1.4

FIGURE 1 -- Double-Crostic 1 (Original Status)

Definitions
In style

A.

B.

9

21

b

22

~

10

15

23

27

17

29

Common ailment

C.

D.

11

1

Concerning
Personal

E.

Weakling

F.

Asian spot

G.

Text

IS "3 "7 14 -S
20

2

28 13

25

19

12

Happy time

~

5 16

26

48.
1.4

FIGURE 2 -- Double-Crostic 1 (Final status)
Definitions
A.

In style

M

11

0

9

D I
21 b

B.

Common ailment

G 0 U T
22 ""4 10 15

C.

Concerning

R

D.

Personal

E.

Weakling
Asian spot

17

D
29

S

0

I

L

H

20 2
G.

Happy time

H

E
23 27

IS 3
F.

S

"1 25

y

F

T

Y

A

S

A
~

7 14 -g
2B 13

25

0 U T H
19 12 "5 IT>

I

F

Text

S
1A

H
2F

0 0 T
3E 4B 5G

T
H
S
I
15B IbG 17D l8E
D
E
A
H
2bA 27C 28F 29D

OK 7E

Y

0

BE 9A

0
D
L
19G 20F 2lA.

U
S
T
1lA 12G 1314' 14E

M

U

lOB

G

R

A

Y

22B

23C

24F

25G

49

1.4

FIGURE 3 -- Possible Positive Actions as a Function
of Word Parameters
Status of Word

Blank

Number of Entries

Text

Partially Filled
Def.

Text

Def.

Completely Filled
Text

Der.

on Possibility
List
Zero

X

One

X

Fill
Unique
Entry

Fill
Unique
Entry

More Than One

X

Seek
Common
Characters;
Guess

X

X

X

Fill
Unique
Entry

X

X

Seek
Common
Characters;

Seek
Common
Characters;

X

X

Guess (h-f
Word or
h-f characters).

Guess

X

X

~CJ1
~o

FIGURE 4 -- Decision Sequencer '7, Simplified Flow Chart

1

From Initial Pass

~

Score possible
actions; sort
by score.

,...

Fetch highest
scoring action.

-

I

1

Erase
~~

no more

Are erasures
called for?

"
Can It do

Try to implement
action.

!

I

Erase

1

No

'roo many
errors

\If

Verify puzzle
status.

Is puzzle
completely
filled?

Yes

I

Yes
No

HALT ....

,

51
1.4

FIGURE 5 -- Double Crostic 2, Intermediate status

Definitions
A.

N

B.

COWBELL

C.

HALVES

D.

FODDER

E.

T HI RD

F.

TEETHE

G.

HELMET

H.

TRUANT

I.
S

J.

A

E

- -

--

Text
WE

HOLD

EVIDENT
U A L.

H E S

THAT

TR
L

H

MEN

T 0

ARE

B E

C R

SELF
TED

52
1.4

FIGURE 6 -- Double Crostic 2, Final Status
Definitions
A.

S

B.

COWBELL

C.

HALVES

D.

FODDER

E.

THI R D

F.

TEETHE

G.

HELMET

'H.

TRUANT

0 0 N

I.

EAYE

J.

SD

T

UP

Text
WE

HOLD

EVIDENT
USUAL

THESE
THAT

TROPHY
OLD

MEN

T 0

ARE

B E

C R

SELF
TED

53
1.4

FIGURE 7 -- Double Crostic 3, First intermediate Status

Definitions
A.

HEGEMONY

J.

B.

ABACUS

K.

E

C.

RETCH

L.

M D

D.

R A BID

M.

ETHICS

E.

- --

--

N.

MO

F.

TON I C

G.

R

H.
I.

ANATHEMA

o. - - -

SIN

I

--

P.

INITIATE

UTMOST

Q.

REVISIT

MNEMONIC

R.

U

E

Text
I

CONSUMER

THE

o MIT

S E

AC

IVITIE

TH

NG

I

o

METHODS
ON

E

B

AMERICA

T

N
E
I N

B

U S

THE

MERICAN
M

ITS

T

UNAM
DAY.

RICA

54
1.4

FIGURE 8 -- Double Crostic 3, Second Intermediate
Status
Definitions

A.

HEGEMONY

J.

ANATHEMA

B.

ABACUS

K.

- - --

C.

RET C H

L.

D

D.

- - - -- - - --

M.

F.

------

O.

------

G.

R

SIN

P.

I N

M

Q.

REVISIT

R.

-

E.

H.
I.

-- S
0
- --

- - -

N.

MNEMONIC

T

--

--

-- E

Text
NS

E

THE

--

I

-

-- MER

M

T

-

-- R

THE

-- E

CAN

AC

UNAM

RIC

A

I N

OM

- ---

V

I

o

-- NG

I

S

s

HOD S

M

A Y.

E

N

B

T

E

55
1.4

FIGURE 9 -- Double Crostic 3, Final Status

Definitions
A.

HEGEMONY

J.

ANATHEMA

B.

ABACUS

K.

NEED

C.

RETCH

L.

MIDDIES

D.

RABID

M.

ETHICS

E.

YOUTH

N.

MOUTH

F.

TONIC

O.

OCEAN

G.

RESIN

P.

INITIATE

H.

UTMOST

Q.

REVISIT

I.

MNEMONIC

R.

SITE

Text
I

CONSIDER

UNAMERICAN
AMERICA

THE

METHODS

ACTIVITIES
IN

ITS

TO

USED
BE

BY
THE

THE
MOST

DAY.

(Memoirs of Harry S. Truman, Volume I, ,page 189.)

HOUSE

COMMITTEE

UNAMERICAN

THING

ON
IN

56
1.4

FIGURE 10 -- Double Crostic

3.

Four Final Configurations Successively Rejected

by the Consistency - Checking Section

1.

I CONSIDIS TDE METHIDS USED EY THE HOISE CONMRTl'EE
ON UNAMORISAN ACTIVITIES CO RE TEE MOST EOAMERICAN
THINM IN TVERICA IN ITR NEN.

2.

I CONSIDES THE MErr'HODS USED EY THE HOISE COMMR'Iil'EE
ON UNAMERISAN ACTIVITIES CO RE TEE MOST ENAMERICAN
THING IN TVERICA IN ITR NEY.

3.

I CONSIDES THE METHODS USED EY THE HOISE COMMRIiI'EE
ON UNAMERICAN ACTIVITIES CO BE TEE MOST UNAMERICAN
THING IN TVERICA IN ITS NAY.

4.

I CONSIDES THE METHODS USED EY THE HOUSE COMMRTTEE
ON UNAMERICAN ACTIVITIES TO BE THE MOST UNAMERICAN
THING IN TMERICA IN ITS NAY.

57
2.1
A COMPUTER FOR WEATHER DATA ACQUISITION
Paul Meissner, National Bureau of Standards, Washington, D. C.
James A. Cunningham, National Bureau of Standards, Washington, D. C.
Claude A. Kettering, U. S. Weather Bureau, Washington, D. C.
Summary
A need for improved reporting of weather
data has been brought about by the requirements
of modern, high-performance aircraft, together
with the advent of high-speed computers for use
in weather forecasting. Manual methods of
recording meteorological observations introduce
an undesirable time delay, increase the chance
of error, and limit the frequency of observations. A solution to this problem lies in the
use of automatic data processing equipment for
the recording, pre-processing, and transmission
of the information. Under the sponsorship of
the U. S. Weather Bureau, the National Bureau of
Standards has developed a specialized computer for
use as a research tool in exploring this concept.
Introduction
The National Bureau of Standards in cooperation with the U. S. Weather Bureau has developed
a specialized digital computer for use by the
Weather Bureau as a prototype in the development
of automatic weather stations. This computer
receives data from weather-sensing instruments
and processes these data through such functions
as sampling, comparing, selecting a maximum, and
arithmetic operations. The results operate local
and remote displays, and are transmitted via
teletypewriter to a central forecasting station
and to other airport weather stations. Values
of two quantities recently developed as aids to
air safety--runway visual range and approach
light contact height--are given by the machine
through automatic table look-up.
Increased use of weather reports by the
general public and the aviation industry, and
others, has placed a demand on the Government
to provide more frequent and more accurate
weather data from active airports and remote
locations. It has been obvious that this demand
could best be met by the development of automatic
meteorological equipment rather than by increasing
the number of observers. One can readily appreciate the advantages of having automatic weather
stations capable of operating unattended for long
periods. Such stations could be established in
regions not normally habitable, but which might
nevertheless be important from a meteorological
standpoint. Even at _naed s,taticas, the use of
automatic equipment offers many advantages.
Station personnel are freed from routine-observations, yet readings can be taken more frequently, with less chance for error, and
transmitted with less delay. A single eight-hour
shift might suffice for the personnel, at locations
now requiring continuous attendance. The United
States Weather Bureau has, therefore, supported
the development of automatic weather stations
since the end of World War II.

The first of these stations to be developed
and operated in service was used in the British
West Indies and transmitted a limited amount of
meteorological information to Miami, Florida, by
radio, during the hurricane season. As telemetering techniques were developed, it was
possible to increase the amount of data transmitted. Further development has provided
stations now in use, which transmit weather
observations on demand into the National Weather
Network.
These stations demonstrated the practicabi11ty of automation in collecting meteorological
data, but provided no computing capability and
insufficient versatility to meet changing
requirements of the meteorologist. In order to
provide a complete report automatically, certain
computing and decision-making capabilities are
required. These requirements, and those from
other Government Agencies, have led to a joint
project between the United States Weather Bureau
and the Data ProceSSing Systems Division of the
National Bureau of Standards, in which meteorologists and engineers have worked together to
develop an Automatic Meteorological Observing
System with both operational and research
capabilities. The present equipment, designated
AMOS IV, is built around a small, specially
designed general-purpose computer, to which have
been added the required input-output facilities.
Requirements of the Automatic Station
Consider the tasks which must be performed
by an automatic weather station. The station is
equipped with a number of weather-sensing instruments which furnish weather data, in a variety of
forms. Data from the instruments must be suitably
processed to obtain the desired information, and
this must be made available in the correct form
for display and transmission. It is necessary to
assemble the information, together with any
additional material, such as the station code
and remarks, in the correct format for several
different output messages. These messages, are
to be available for the teletypewriter transmission upon receipt of command signals.
In a few cases, instrument readings could be
sampled directly, converted to teletypewriter code,
and transmitted. However, in many cases, the
desired quantities are not suitably represented
by the instantaneous instrument readings. Hence,
varying amounts of processing are required. In
previous AMOS prototypes, the required intermediate
proceSSing has been achieved through the use of a
variety of separate devices. In some cases,
requirements have developed to the point where
computer-type equipment is required, although
individually the various instruments do not fully
utilize the circuit capabilities.

58
2.1
It became apparent that the overall hardware
could be reduced through the use of a central data
processor which could be t~e-shared by the various
instruments. The use of an internally-programmed
machine for this purpose greatly increases the
versatility of the automatic station, permitting
more sophisticated processing of data from all
instruments. The meteorologist is afforded the
opportunity to arrive at optimum data-processing
routines, comparing different procedures simultaneously, if desired. Changing requirements may
be met simply by preparing new programs; thus,
there is an inherent guard against obsolescence.
For illustrative purposes, a number of quantities of interest and the associated instruments
will be described, together with the form of output obtained and the processing required.
Transmissivity
Transmissivity of the atmosphere is measured
by a transmissometer. A horizontal beam of light
of known intensity is directed at a detector
several hundred feet away. The amount of light
received controls the pulse rate of an oscillator.
The pulse rate varies from nearly zero, for heavy
obscuration, to about 4000 pulses per minute with
a very clear atmosphere. A small background count
may be obtained with no light at all; by periodically turning off the source this background count
may be obtained and subtracted as a correction
factor. The transmissivity data is used in two
forms. For some uses it is expressed as a percentage of the maximum obtainable value. Thus, a
pulse rate of 3000 ppm would indicate a transmissivity of 3/4, or 75%. On the other hand, the
corresponding visibility in miles is not a linear
function and is different in the daytime than at
night. A pulse rate of 3000, for example, represents a visibility of 1.5 miles in the daytime
and 2.4 miles at night.
Wind Speed
Wind speed data is received from an
anemometer in the form of a pulse rate. The
anemometer produces 5 pulses per second for
each knot of wind speed. There are three quantities which we wish to derive from the pulse
rate; these are:
(1)
(2)
(3)

the peak one-second gust occurring
over the past ten minutes,
the one-minute average wind speed,
the ten-minute average wind speed,

Temperature
Temperature is measured by a bridge circuit
which is kept in balance by means of a servooperated slide wire. The servomechanism also
operates contacts, to furnish a read-out of three
decimal digits and sign. Each digit is represented by a contact closure on one of ten wires.
Temperature data is transmitted as read, and in
addition is used as a correction factor for certain
other data.
Pressure
Pressure is sensed by a mercurial barometer
which has a small magnetic float riding on the
top of the mercury column. A servomechanism
maintains the position of a sensing coil with
respect to the float, and operates contacts
s~ilar to those of the thermometer.
A readout of four decimal digits is obtained. Several
quantities are of interest in addition to the
current pressure. For aviation use an alt~eter
setting must be obtained. This can be obtained
electrically, by means of additional contacts,
but can also be handled by the computer via table
look-up or calculation. The pressure must be
converted to an equivalent sea-level value, and
this requires a temperature correction using two
temperature values spaced 12 hours apart.
Pressure tendency is another calculation and
consists of examining three values taken at hourly
intervals. From these a coded value for the trend
is obtained.
Cloud Height
Cloud height data is obtained from a ceilometer. A beam of light from a rotating searchlight is projected on the clouds and the amount
reflected is measured by a photocell. Cloud
height is obtained by triangulation, using the
distance between the searchlight and the detector,
together with the angle of the searchl ight when a
cloud signal is received. In order to obtain
cloud height automatically, it is necessary to use
two circuits, one which watches for peaks in the
photocell signal, while the other keeps track of
the searchlight angle. Whenever a cloud signal is
indicated by the photocell, the corresponding
angle is stored in a buffer register. Height can
be obtained from the angle by table look-up or
calculation. It is desirable to store a number
of cloud observations and scan the stored data to
answer such questions as the following:
(1)

These quantities are to be updated each
minute.
(2)

(3)

At what height was the predominant
cloud activity observed over the
past ten minutes? (This interval
should be programmable.)
What were the lowest and highest
levels at which a significant number
of cloud occurrences were observed?
(The number should be programmable.)
How many cloud observations occurred
below a specified critical height?
(This height should be programmable.)

59
2.1
Additional Instruments
Other instruments which may be included are
the following:
(1)
(2)
(3)
(4)

Sky cover detector, for the fraction
of sky obscured by clouds;
Photoswitch, for indicating background light level;
Weather vane, for wind direction;
Weather element detectors, for snow,
rain, hail, etc.

In addition, some quantities are set in as
manually operated switches, such as obscuration
type, whether snow or homogeneous fog; and, in
the case of airports, runway and approach light
settings.

l~is is a transcendental equation, and a
very fast computing speed is required because of
the iterative nature of the solution. The ALCH
value should be updated once· per minute. The
use of table look-up requires about 18 tables,
each having about 90 three-digit numbers. The
tables are determined more or less empirically,
and vary from one location to another. It was
concluded in the present case that table look-up
would be preferable, using magnetic drum storage
for these and other look-up tables. The RVR
determination is similar to that for ALCH, but
not quite so complex, in that only ground
conditions need be considered, and only a single
number need be prepared, rather than the two
probability levels required for ALCH. The RVR
determination uses the following inputs:

(1)
ALCH and RVR
Two quantities which have not been covered in
the discussion of individual instruments are
Approach Light Contact Height (ALCH) and Runway
Visual Range (RVR). These quantities are of
importance in landing aircraft under conditions
of reduced visibility, either because of ceiling
conditions, or ground obscuration. ALCH is the
height at which the approach lights will be
visible to the pilot. Actually, a high and low
value are displayed for ALCH, since there is a
statistical uncertainty to this kind of data.
The higher value is the height at which there is
a 20% probability of seeing the lights; the lower
value corresponds to a 90% probability. Since
the lights may be obscured either by clouds or by
the presence of fog or snow, a variety of inputs
, are required for the ALCH determination. The
inputs are;
(1)
(2)
(3)
(4)
(5)

cloud height data from the c'eilometer,
transmissivity, as indicated by the
transmissometer,
snow or homogeneous fog, as indicated
by an observer,
background illumination (day or night
conditions) from the photoswitch,
approach light intensity from the
approach light switch setting.

If either the transmissometer or the ceilometer indicate that limiting conditions may be
present, a determination of ALCH is made. If both
conditions are present, the results are compared
and the lowest value is displayed. The actual
determination can be mad~ either by table look-up
or by calculation. The equation, however, is based
on Allard's Law, which takes into account the
complex manner in which the human eye responds to
different light levels.

(2)

(3)

transmissivity,
background illumination (day or
night conditions),
runway light setting.

The expression for RVR, in terms of Allard's
Law is given below, for purposes of illustration:
V

C = 2! Log TR - Log Va
C is a constant based upon prevailing
conditions,
V is the desired RVR va1~e, and ranges
R
from 1000 feet to .6500 feet or greater,
~ is the transmissometer reading,
R is the transmissometer baseline
(generally 500 feet).
It can be seen that the above equation
cannot be solved explicitly for VR; hence, a
lengthy calculating procedure would be required.
For this reason, table look-up was chosen. About
9 tables are required for the RVR determination.
From a consideration of the various input
devices, it is possible to compile a list of
capabilities which are desirable in the input
portion of the automatic station. These would
include the following:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)

sampling,
counting,
averaging,
timing,
comparing,
analog-digital conversion,
peak-value detection,
contact senSing,
code conversion.

60
2.1
Many of these operations could be done either
by the input circuitry or by the data processor.
The choice is determined by the relative convenience, and the time available. It is desirable,
wherever possible, to receive data from the
instruments in the simplest possible form. This
simplifies the instrument and leaves the data
processing to be performed within the computer,
capitalizing on the advantages of digital operation.
It has been demonstrated repeatedly that the central
data processor portion of a computer complex is
much more reliable than the associated peripheral
equipment. Furthermore, the computer can be monitored, and repairs facilitated, through the use of
test and diagnostic routines, whereas the instruments are often difficult to check and to repair.
Description of the AMOS IV System
It can be seen that the machine needed for
the automatic weather station is highly specialized, with a number of unusual characteristics.
The salient features are listed below:
(1)
(2)
(3)

(4)

(5)

(6)

(7)
(8)

The machi~e must accommodate a number
of input devices, all furnishing data
continuously.
Extensive stored tables are needed for
empirically determined data which
varies from station to station.
A short word length is sufficient,
sinee the data comes primarily from
physical instruments; three digits and
sign appear sufficient, relying on
double-precision methods for those few
cases where needed.
A comparatively slow circuit speed is
acceptable, working in conjunction with
the magnetic drum, which rotates at a
moderate speed for long life ,and
reduced cost.
The machine needs only a limited
arithmetic capability, in view of the
extensive stored tables; it can perform
addition and subtraction, with other
operations available through programming.
The machine must transmit teletypewriter
messages at high and low speeds, independently of each other and of the data
processor.
Provision must be included for operating
local and remote displays.
The machine must concurrently process
input data, transmit teletypewriter
messages, and perform data processing.

For purposes of discussion the machine may be
analyzed in two sections: The 'input-output portion,
and the central processor. The input-output circuitry is concerned with collecting the instrument
outputs, pre-processing them where necessary, and
making the data available to the processor. This
portion also rec~ives data which the processor has
assembled in special output tracks and prepares the
appropriate teletypewriter messages. The input-

output circuitry is wired for specific tasks
although considerable latitude has been left
for modifications and additions. The central
processor is internally programmed and is controlled by an automatic typewriter which also
can be used as a form of display. A block
diagram of the AMOS IV system appears in Fig. 1.
Input from Instruments
The method of receiving input data from the
weather-sensing instruments is a compromise
between the use of separate pre-processing devices
and use of the central processor. In order to
avoid excessive interruption of the central
processor, varying amounts of circuitry have been
assembled, depending on the form of the input
data, to pre-digest the instrument signals for
most efficient use by the processor. Once the
data has been prepared in suitable form, generally
as contact closures or storage in flip-flop
registers, it is entered into the computer via an
input-data track on the magnetic drum. This track
is equipped with two heads~ one addressable by the
central processor and the other wired to the input
circuitry. Since the track can store 100 words,
there is an input capacity of 100 instrument readings, a quantity considerably in excess of present
requirements. The address of each word identifies
the reading, and the addresses therefore, are used
to callout the appropriate subroutines when new
data appears in the various word locations. The
input devices are sampled sequentially by means of
commutating pulses obtained from a decoding network attached to an address counter. It is
possible with this scheme to sample any instrument within 1/30 second of the time that a desired
reading is obtained. If readings were obtained
at the rate of 30 per second, however, the central
processor would quickly be overloaded; actually,
it is sufficient to sample most instruments a~
intervals of once per minute or longer. The ceilometer is the most frequent with readings at 6
second intervals.
'
In addition to an address counter and decoding network for obtaining commutating pulses,
the input circuit has a one-word shift register
which serves as a buffer be~een the inst~uments
and the input recording circuit. Data words from
sampled instruments are inserted in the register
by means of a parallel transfer, up to 13 bits at
a time (three decimal digits and sign). The
number representation need not be binary-coded
decimal, since the computer can perform code
conversion, if required.
Among the quantities requiring more
extensive pre-processing, the transmissometer is
illustrative. Here, a pulse rate of 0 to 4000
ppm is to be counted and expressed as a 3 digit
number. New values should be available once per
minute, so a one-minute time base 1s used. The
incoming pulses are shaped and passed through a
two-stage binary counter which reduces the rate

61
2.1
by a factor of four. Thus, the maximum (clear
atmosphere) pulse rate will yield a one-minute
count of 999, which can be expressed with one
data lvord. (A gating circuit inhibits counts
beyond 999 to prevent overflow, should a higher
counting rate inadvertently occur).
The end of a one-minute sampling interval
is indicated by a pulse from a timer which counts
drum revolutions, since the drum is driven by a
synchronous motor. Thus, the drum is always in
a known position, and there is a minimum of delay
in sampling the desired reading and transferring
it to the drum. The counter is inhibited during
the sampling and resetting interval. (One-third
millisecond is required for sampling, 20 microseconds for settling time after reset. No
significant information would be lost during
this short time).
Utilization of Input Data
Utilization of input data by the central
processor is handled by a "watchdog" routine.
Whenever a subroutine is completed, 'the processor
proceeds to scan the input channel, starting at
the beginning. Wilen an instrument~eading is
noted it is read into a register and the address
is noted. The address is keyed to a subroutine
which directs the handling of the new reading.
It may simply be placed in memory for future use,
or inserted into an output message channel. More
generally, however, there are several operations
including perhaps a few calculations. A key step
in the subroutine is the insertion of a nonsense
word which could never be a valid instrument
reading, and will be disregarded during the next
"watchdog" scan. This will permit the "watchdog"
routine to pick up the next succeeding instrument
reading in the input channel.
Teletypewriter Output
The teletypewriter out~uts involve the
buffering of data, which comes from the drum at
a high rate, dOlVU to the desired message speed.
In addition, data words must be reorganized into
teletypel~iter characters, ·including the addition
of start and stop pulses, and the generation of
space 'and sign characters. Two independent teletypewriter outputs are required, 'with different
codes and message formats. The low-speed output
is nominally 100 words per minute, while the highspeed output is in the range of 750 to 1500 'tvords
per minute. Several different message lengths are
required at the higher speed, requiring that the
circuitry be capable of skipping unwanted portions
of the message. Since the messages are to be
combinations of data prepared by the computer and
alphanumeric remarks and text inserted by hand,
several tracks have been allowed on the drum

for this information. Certain tracks,
addressable by the computer, contain the
numerical data. Other tracks may be written
into only from the automatic typewriter, and
are used for the remarks. These are all dualhead tracks, with one set of heads being used
to insert data, either from the processor or
the typewriter, while the other set is used to
read out the information.
The low speed circuitry is fairly straightforuard, since there are several drum revolutions
in the time required to transmit the contents of
one machine word. Thus, it is only necessary to
provide a one-word buffer register, which in turn
transfers its contents through an encoding matrix
to an output shift register. As soon as the
buffer register is empty, an address circuit
proceeds to watch for the next consecutive word
from the drum, which is then read into the buffer.
Each machine word, consisting of three decimal
digits and Sign, is transmitted as five characters:
sign, three digits, and space. Remarks are stored
as five-bit teletypewriter characters, two per
machine word.
The high-speed circuitry is complicated by
the fact that the contents of several machine
words are transmitted during a single drum
revolution. This was handled by spacing the
data around the drum so that the next word would
be available just as the last one was transmitted.
To assure synchronism between the teletypewriter
and the drum, a clock track on the drum is used
to furnish the teletypewriter pulses.
It can be seen that the various dual-head
tracks are the means by which simultaneous input,
output and data processing functions are performed. In order that these various heads may
handle data in a manner c9mpatible with the
central processor, it is necessary that each
pair of heads be equally spaced. A second set of
sync pulses, delayed by an amount equal to the
spacing bet~een heads, has been provided.
Data Processor Section
The data processor portion of the AMOS IV
system is constructed as a separate enti~y which
can be replaced at a later date, should a more
powerful computer be required. The processor is
built around a magnetic storage drum having 100
general storage channels and a number of dual head
registers. The general storage channels contain
stored instructions, subroutines, diagnos~ic
routines, and look-up tables. The dual-head
registers are used for the handling of input data
from instruments and for output information to the
displays and to the teletypewriter lines.

62
2.1
The processor uses a binary-coded decimal
number representation with a word length of three
decimal digits and sign. A parity bit is added
for a memory check, giving a word length of 14
bits. There are 100 words per channel, making
a total of 10,000 words, and this number can be
expanded to 20,000 through the use of additional
heads. The drum operates at a conservative rate
of 1800 RPM; non-return-to-zero recording is used,
with a recording density of 120 bits per inch.
Thus, the machine operates at a bit rate of 50 kc.
The computer is an internally programmed,
single-address machine with about 21 operations.
The operations are listed in Table I. The
operations have been grouped together and coded
according to function for convenience in programming. The operations are generally quite
similar to other small machines. The memory scan
operations (60, 64, 69) are specifically desiged
to optimize table look-up. Thus, table look-up
may be performed with fewer instructions and with
only one drum revolution. The index register
should be called an alternative addressing
method. When an address is placed in the index
register by one of the memory scan operations, it
will be transferred to the instruction register
only when a non-decimal combination of bits
appears in the word-select portion of the instruction register.
An instruction utilizes two consecutive
words from memory, providing six decimal digits
and two signs. This is shown in Fig. 2. Two
digits are required for channel identification
and two for the word location within a channel.
In order to allow for ease in the programming of
address modification, the word address uses
the first two digits of the first w'ord, while the
channel location uses the second t,~ digits of
the second word. The operation code is divided
between the two words, using the remaining two
digits and the included sign.

An automatic typewriter with punched paper
tape is used as the primary input-output means
for the processor. In addition to its use with
the processor, the typewriter may be used offline, for the preparation and verification of
punched paper tapes.

Construct;lon
The machine is constructed from a series of
transistorized building blocks previously
developed at the National Bureau of Standards.
Three factors were emphasized as the main
considerations in designing these packages:
reliability, cost, and versatility.
Reliability
(1)

The circuits are designed to permit
wide variations from the nominal
values of the characteristics and
parameters of the components.

(2)

The electrical outputs
of the packages can be
circuited to ground or
voltage supply without
of the components.

(3)

Pin-type connectors with high-pressure
contacts are used rather than printedcircuit edge-type connectors.

(4)

Signal swings are at least 6 volts,
with a collector supply of -12 volts.

(5)

All connectors have gold-plated pins.

(6)

All back panel wiring is by taper pins
for ease and convenience in making
external connections. Taper pins also
eliminate solder joints.

from most
shortto the negative
damage to any

Economy
The processor has three basic modes of
operation. The normal mode allows the machine
to automatically sequence through the instructions
until a halt code is encountered in the instruction register. The machine halts on any take-in
or print-out operation for which the sign of the
instruction is negative. A breakpoint mode is
used for program debugging or machine maintenance.
In this mode, the machine will halt for any
instruction having a negative sign. A singlestep mode of operation is included, and is used
primarily for machine diagnosis or program
debugging. In single-step operation the machine
performs a single operation and halts. A complete
operation consists of executing an instruction
and bringing the next instruction from memory.
All the registers and major portions of the machine
are displayed on an indicating panel.

(1)

"Entertainment"-type germanium
transistors are used throughout the
circuitry.

(2)

The wide tolerances permit using
unselected "off-the-shelf" components.
However, transistors and diodes are'
tested for open or short circuits before
assembly into the packages.

(3)

All connections, including those to the
connector, are made by dip-soldering the
board.

63
2.1
Versatility
(1)

Two triggering gates are included ,~ith
each flip-flop circuit to permit
connecting the package as either a
counter or a register ~lithout having
to use additional gates from some
other package.

(2)

The bases of the transistors on flipflop circuits are accessible at the
connector so that an unlimited number
of additional input gates can be
connected.

These packages have been in use over a
period of several years in a number of units of
laboratory equipment. The high reliability
which they have demonstrated has been very
gratifying.
Approximately 500 of these packages,
with an average of three transistors each, are
contained in the central processor portion,
with about 400 additional packages in the
input-output portion. The packages are contained in drawers which in turn are mounted on
slides, permitting practically all maintenance
to be accomplished from the front.
Conclusion
It should be emphasized that the Al10S IV
System is intended as a research tool for
exploring the use of automatic data processing
in the handling of weather data. Emphasis has
been placed on versatility, in view of constantly
changing meteorological requirements. It is
felt that the experience gained from the use of
a limited number of AMOS IV systems should permit
the formulation of much more realistic designs
and specifications for future automatic weather
stations based on the use of automatic data
processors.

64
2.1
T.ABL~

1

b}10S IV Data Processor Instructions

Code

Operation
Take in ten words from type\«iter starting with memory location a
Take in two words from typevlt'iter starting "lith memory location a

~.

02

09

Take in full channel of words from typewriter into memory channel

~.

10

Print or punch out ten words from memory starting \yith a

~.

12

Print or punch

~.

19

Print or punch out full channel of ''lords from memory channel

21

Read one word from memory location a

~

and place into A register.

22

Read one word from memory location a

~

and place into 13 register.

31

Take word from A register and place into memory location a

~.

32

Take word from 13 register and place into memory location a

~.

41

Add contents of A register to contents of memory location a ~ and place
answer into 13 register.
Subtract the contents of memory location a ~ from A register and place
answer into 13 register.
Shift contents of A register right 4 bits.

00

42
45

o~t

tvl0 words from memory starting ,.:ith a

~.

51

If 13 = O~ jump to contents of a ~ for next instruction.
If overflow occurs, jump to contents of a ~ for next instruction.

59

If 13 < 0, jump to contents of a

50

Memory scan instructions.

60

~

~.

for next instruction.

Contents of A register are compared '-lith vlords

in channel ~.
When (aA~) = (A), place a

64
69

in I register; stop at first occurrence.
A
When (a~) > (A), placeaA in I register; stop at first occurence.
Seek largest word in channel ~j place a portion of address in I register.

73

Transfer bits described in

93

Read out three words from memory starting with location a
display registers.

~

from register 13 to register A.
~

into output

•..........................................................................

•
••

,~~:~V : 1
"

••

'" I f f
f
f f

":,,,,~,
"',, " "

,,~~"";
'"

f
f

,

I I

I ~

f

,,:""/"

f

//" "/""

I

// /"

"/,~"

I

I

dJ ltJ
CEILOMETER

TO-A
TRANSMISSOMETER

ILLUMINATION

NOTE:
APPROACH LIGHTS
SETTING

CONCURRENT PROCESSING, INPUT, TELETYPEWRITER
OUTPUT, AND TYPEWRITER OPERATION.

Figure I. Block Diagram of AMOS IV With Approach Visibility Configuration

1\:)0\

~CJl

66
2.1

DATA WORD
14 BITS

-------------~-~--------~

-------- ----------

PARITY

10 2

10'

~

10°

SIGN

INSTRUCTION
TWO

CONSECUTIVE

DATA

WORDS

--------------- -----.......
WORD

CHA~NEL

OPERATION

CL

_---'---_.--------...--.....
+

~~------~-~--~-----------------~--~------------DATA WORD
DATA WORD
AT ODD ADDRESS

Figure

2.

Word

Format

AT

of

the

EVEN

AMOS

IV

ADDRESS

Computer.

67
2.2

A SURVEY OF DIGITAL METHODS FOR RADAR DATA PROCESSING
F. H. Krantz and W. D. Murray
Burroughs Laboratories
Paoli. Penna.

Summary

This paper reviews the growing number of
declassified techniques for automatic processing of radar data by digital means. Emphasis
is placed upon signal time-sampling and quantization. integration methods. rejection of stationary targets. radar trigger manipulation.
and treatment of radar beacon code data. These
techniques are discussed individually and are
also shown combined in a hypothetical radar
data processor design.

Introduction

Radar. a new technology of World War II.
has become an almost common part of our modern life but continues to be the subject of new
applications. new methodology and new techniques. In its first decade. the radar system
consisted of the radar itself. a cathode ray tube
display and a human operator. As the technology matured and radar targets gained new capability. the need for extracting more information from the radar signal at a more rapid rate
grew. Thus. in the past decade. the increased
performance of the radar has been accompanied
by the growth of the associated field of radar
data processing.
The first radar data processors used analog
techniques in an attempt to automatically reproduce those operations performed by the human.
More recently. the pressure for increased automation. coupled with the requirement for automatic communication of radar information over
long distances. has resulted in the introduction
of digital techniques for radar data processing.
It is the purpose of this paper to outline the
principles of digital radar data processing and
to demonstrate examples of application of digital
techniques to this field.
The expert in digital computer technology
will immediately recognize most of the digital
mechanizations and will observe that in radar

data processing these usual digital techniques
are applied. sometimes in completely different
form. to this new problem area. It should be
noted that most of the applications described
herein. while shown for the radar problem. are
equally applicable to other problems in extraction of information from a signal in presence of
noise. Typical are the fields of SONAR. infrared detection. magnetic detection and communications.

The Basic Radar Problem
In general terms. the radar data processing problem is one of information extraction;
that is. it is desired to extract from the radar
signal the maximum amount of real information
and at the same time to exclude extraneous information introduced by noise and other targetlike phenomena. For the purpose of the present
discussion. the Simplified pulse radar system
of figure 1 wilt be the vehicle to which radar
data processing is applied.
The pulse radar consists of a transmitter
which periodically transmits a burst of energy
of prescribed pulse duration at a prescribed
carrier frequency. This burst of energy will
strike targets and some portion will be returned
in the direction of the radar equipment. The
character of the returning signal will have been
modified by the addition of a doppler frequency
component proportional to target velocity.
The amplitude of the returned signal is a
function of effective cross sectional area of the
target. On successive radar returns this amplitude might vary due to changes in cross sectional area.
In addition to target returns there will be
returns due to clutter caused by precipitation.
by objects on the ground. and by such effects
as aurora. Each of these clutter-reproducing
objects will impose its own effective doppler
frequency on the signal and. in general. these
doppler frequencies are lower than those for

68
2.2

the usual real target. The real target is further
obliterated by effects of noise in the radar receiver or by interference generated by some
other electronic equipment, either hostile or
friendly. The noise and many of the interfering
signals have random frequency and amplitude
distributions, a characteristic frequently used
in radar data proceSSing for their elimination.
In the radar receiver the frequency of the
signal is reduced from that of the basic carrier
to some intermediate frequency by comparison
with a reference oscillator. Information on
amplitude of the returning signal (the envelope
of the IF signal) is presented at the output of an
amplitude detector as "normal" video. Range
of the target is represented as the time of occurrence of the pulse. Although much of the
radar data processing is applied to the normal
video signal, the phase information contained
in the IF is also useful in evaluation of target
velocity. We will not be concerned here with
the high frequency characteristics of the returning pulse which are used for more sophisticated forms of discrimination based on target
signature.
From the information received from the
radar equipment, it is necessary to extract
information on real targets. The general objective is to obtain through radar data processing the maximum sensitivity to weak targets
while maintaining a minimum rate of generation
of false targets. The characteristics of a real
target which are different from those of noise
and clutter are used in the processing of the
radar data. Among these are that a real target
will correlate in range pOSition and in radial
velocity from pulse to pulse during the time that
the radar illuminates the target, and that real
targets will, in general, have a greater doppler
velocity than will signals due to clutter.
Analog Detection Based on Signal Amplitude
In the early pulsed radar systems information was processed by presentation on a cathode
ray tube display to a human observer. The typical display will sweep an electron beam from
the center of the display at an angle equal to that
of the radar antenna at a uniform speed and at a
sweep repetition rate coincident with the radar
prf. The beam is intensity modulated so that
the light output on the surface of the display will
be proportional to amplitude of the raw video
signaL

A real target will appear at the same range
position for several successive radar pulses,
and thus, will appear as a short arc on the display. Random noise, which does not correlate
in range, will generally appear as isolated spots
randomly distributed over the surface of the
display. These separate characteristics of targets and noise are used to discriminate between
the two. In the simple radar system, the integration is performed in the memory of the human operator assisted by the relatively long
perSistence of the display phosphor. This
method is quite sufficient for the separation of
strong targets and weak noise, particularly
when the observers attention need only be devoted to one or two targets on the face of the
display.
Electronic techniques are sometimes used
to augment the integration process in a device
known as the video integrator. This device
consists of one or more delay lines, each adjusted to the radar pulse period. The outputs
of delay lines, each modified by a suitable
decay factor, are added and their sum is used
to intensity-modulate the PPI display. A typical video integrator is shown in figure 2. Although the video integrator increases the capability to discriminate between targets and
noise, its characteristics of essentially exponential decay are not completely matched to the
energy distribution across a radar beam width.
Thus, the optimum discrimination between target and noise signals is not obtained.
A typical display from a simple radar system is shown in figure 3. The problems of
extracting information on a large number of
targets to high accuracy in the presence of
noise are readily apparent, and the need for
more advanced processing techniques is demonstrated.
Digital Detection Based on Signal Amplitude
Digital methods for radar data proceSSing
start by quantizing the analog raw video Signal
in amplitude and range. As will be demonstrated
later, it is possible to quantize in amplitude to
as many as a-bits, but for Simplicity in demonstration of digital detection techniques, simple
I-bit encoding will be considered here. The
inputs to the quantizer (figure 4) are the raw
video from the radar receiver and a range timing reference generated by a digital clock. An
output pulse is transmitted whenever the input
signal is of amplitude larger than a fixed or
automatically adjusted threshold (clip level) at

69
2.2

the time of occurrence of a range reference
pulse.
The clip level is established by consideration of sensitivity required and false alarm rate
reduction pos sible through later statistical integration processes. For the typical groundbased~ long-range radar equipment~ the clip
level is established at an amplitude such that at
100/0 of the range timing pulses an output pulse
will be generated. This very low clip level~
permits detection of targets of very small radar
cross section at extremely long ranges. The
automatic adjustment of clip level based on long
time sampling of the quantizer output is used to
compensate for variations in gain of amplifiers
in the radar equipment and in the quantizer.
The range reference clock frequency selection is based on requirements for range accuracy
and range resolution in the radar. In order to
provide maximum sensitivity and maximum resolution consistent with duration of the radar
pulse, a range reference period equal to the
pulse duration is typical. Thus~ range resolution and accuracy of from 1/4 mile to several
miles are found in the usual systems.
Following the quantizing process statistical
detection is performed to eliminate signals due
to noise while retaining those caused by targets.
The simplest digital integrator, the exponential
detector shown in figure 5, operates exactly as
does the video integrator described above. In
each range increment a target history is maintained by adding the new signal (either 1 or 0)
to the sum of the previous signals multiplied by
a constant less than unity. The size of the constant is determined by azimuth reaolution and
target sensitivity objectives. When the sum
contained in a register exceeds a preselected
threshold~ detection criteria have been met and
an output indicates presence of a real target at
that range. This indication is maintained until
the "end target" threshold is greater than the
register sum. The growth of the signal output
of the exponential detector and the decay of
such output after the radar beam has passed
through the target for the case of a radar output
of square characteristics are also shown in figure 5. The non- symmetry of the output signal
and the mismatch with the radar beam make
this type automatic detector less than>optimum
in detection probability, noise rejection and
azimuth determination.
The more advanced sliding window detector
increases detection sensitivity and azimuth determining accuracy. In this detector demonstrated in figure 6, a record of target return is

maintained for each radar pulse through the
radar beam width. The outputs of each pulse
position of the record are summed and compared with a detection threshold and when this
threshold is exceeded, start of target is called.
At a later time when the sum of target histories in the radar beam width is less than the detection threshold, end of target is called. The
symmetry of the output of this device and the
match with the ideal radar beam are shown in
figure 6.
Although the sliding window detector offers
improved performance over the exponential detector. the equipment required in its implementation for a radar with many transmitted pulses
per beam width is Significantly larger.
In order to obtain performance approaching
that of the sliding window detector, with equipment more closely apprOximating the exponential detector, a new statistical detector known
as the moving sum detector has been deve loped.
In this detector ~ (figure 7) a feedback loop is
used to add the latest target amplitude to those
of previous targets as in the exponential detector but the decrement is taken as the average
amplitude over N main bangs. N may be as
long as the integrating period or may be less
in order to achieve maximum azimuth accuracy.
All of these automatic detectors require
the use of memory in order that target history
can be maintained. These memories are usually range-organized. That is, each range
interval is represented by a prescribed me mory word and at completion of proce ssing of a
detect ed target, the position in memory of such
detected target establishes its range. Although
ferrite core memories are also used~ the range
organized memory can be most easily demonstrated as implemented on a drum surface as
shown in figure 8. Here a number of individual
drum channels (or bits in each memory word)
are used for the data proceSSing function. The
drum rotation rate is automatically coupled to
the radar pulse repetition frequency; thus any
radar range is represented by one position (or
one word location) on the drum surface. A recirculating drum system with a positive erase
bar is usually used in this application.
History of target signals is maintained by
reading information from memory heads spaced
by one pulse period from the write heads by
writing back the previous history continuously
as new target signals are introduced. In the
sliding window detector~ for example, information read from detector channel No. 1 is written

70
2.2
back into detector channel No.2, from No. 2
into No.3, etc. Thus, at any instant of time,
information appearing under the read heads is
a target history for that range interval over the
prescribed number of previous radar pulses.

Azimuth Determination
To determine azimuth of detected targets a binary representation of antenna direction must be
maintained. Although this can be done using a
binary code wheel device in the antenna pedestal, it is more usual to have a pulse transducer,
with each pulse representing an increment of
antenna rotation, feed an azimuth counter which
is cleared to zero at the time the antenna passes
through a north reference position. Thus, the
azimuth counter maintains a continuous record
of antenna orientation. The detector operating
curves of figures 5, 6, 7 show that the center
of a target is represented by the average of the
azimuth at start of target and end of target corrected for some offset introduced by the detector.
A typical method for accomplishing azimuth
determination is to add one to a sum maintained
in the azimuth channels of the memory (figure
8) whenever the statistical detector output is
greater than the detection threshold in each
range increment. At "end of target" 1/2 of this
sum is subtracted from the number in the azimuth counter. The azimuth offset correction,
which is fixed for the statistical detector used,
is then applied to obtain an accurate digital representation of target azimuth. It is in this
process that the symmetry of the detector output is important in obtaining azimuth accuracy.
In the computation of target azimuth by the
method described above, information on target
strength or azimuthal extent is automatically
available. This target characteristic, known
also as "run length, " is of importance in separating real targets from targets produced by
clutter.
Target Buffer Memory
In cases where automatic communication of
target information is required, problems may
be imposed by bandwidth limitations of communications equipment. Since the data processor described thus far operates in real radar time, it
is possible for targets to be detected at a rate
much greater than the average rate over a radar

rotation. It is not economically practical to
build a communications system de signed to operate at the maximum rate and a queuing problem
is introduced. If a target buffer memory is included in the radar data processor, it is possible
to design the communications system with an information rate equivalent to the average target
detection rate and still minimize the los s of target information due to communication line saturation. This memory may be provided as a
part of the statistical detector memory wherein
target storage locations are included in each
range interval or through a separate buffer memory where targets are inserted as they are detected and are removed as space is available in
the communication facility. Although the first
method is wasteful of memory space in that a
large number of unneeded memory locations are
provided, it is efficient in a drum memory where
separate drum tracks are relatively inexpensive
when added to the basic drum required for the
detection and azimuth calculation process. In
the case of a ferrite core detector memory,
however, memory cost goes up more rapidly
with an increase in memory location requirements
and it is often more economical to add a small
independent random access buffer memory. For
a typical ground radar environment, where probability of loss of targets due to saturation must
be minimized, the radar data processor will include buffer memory for two targets per range
interval in the case of the first type of buffer or
will include 25 or 50 memory locations in the
case of the independent buffe r memory.
PRF Control

In many applications, devices are required
to selectively adjust the period between radar
triggers in order to achieve certain desirable
performance characteristics. Among the advantages obtained are interference rejection, extension of the basic radar range, and elimination of
loss in sensitivity in proceSSing of the target
doppler frequency shift. Each of these is briefly discussed below.
When a radar operates in the vicinity of
other similar radars, as frequently occurs in
military zones, it may happen that pulses from
a neighboring radar are received in one's own
radar and appear as point targets. When this
situation is particularly aggravated, dense
spirals are formed on the radar presentation
and considerable excess data is created. Periodic or random variation in the radar trigger
of one's own radar, when followed by range realignment and integration of the video, will

71

2.2

In a constant PRF radar the basic range of
the radar is limited by the distance whieh a
pulse can travel and return in the time between
radar triggers. By coding or otherwise manipulating the interpulse pe riods so as to achieve
various pulse separations. echoes from beyond
the basic range of the radar can be recognized
and detected without range ambiguity.

and cloud banks will give rise to a very large
number of returns which obscure the radar picture for the manual observer and create very
objectional quantities of excess data in automatic
data processing systems. (See figure 3.) A
variety of techniques have been studied which
have as their objective the elimination of these
clutter returns without degradation to the system
sensitivity for moving targets. Many of these
solutions have been only partially successful.

Various techniques for the elimination of
stationary objects while retaining mOving targets are totally dependent upon the doppler shift
in the echo from the moving object to carry out
the required discrimination. In a pulsed system
such as radar. however. targets traveling at a
speed such as to move one r-f wave length between pulses will be indistinguishable from stationary objects. Controlled variation of the
radar intra-pulse period will permit recognition
of moving targets under all conditions without
sacrifice in the ability to reject stationary objects and clutter.

An early technique having as its primary
objective the control of excess data utilized an
operator to manually map out the clutter areas.
One equipment for this purpose (shown in figure
10) consisted of a Plan-Position Indicator (PPI)
display over which was suspended a photomultiplier tube sensitive to the ultra-violet layer of
the PPI phosphor. Mapping is accomplished by
the application of an opaque inking fluid to the
clutter areas to be removed. Although this system was particularly simple to implement using
digital techniques, all true targets within the
map area were eliminated with the clutter.

In practice. the equipment needed for PRF
control and the subsequent manipulation of target data is particularly simple and straightforward when carried out with digital methods.
The Simplest technique for control of the intrapulse period is to make use of a feedback counter. Using this logical configuration to select
various delay lines to be inserted in the trigger
generation circuitry. a number of values of delay are readily obtained. A complete system is
shown in figure 9.

A second fairly straightforward technique
eliminates clutter on the basis of its lower relative
strength. One approach uses as a measure of
strength the instantaneous amplitude of the video
return and, by comparison with a preset reference level. rejects all signals of less than the
reference strength. The reference level is selected on the basis of empirical data to permit
strong point targets to be passed by the comparator circuit.

effectively eliminate this form of interference.

Methods for realignment of the radar echoes
in range for integration and other purposes depend upon the type of mem.ory employed. In
systems utilizing a magnetic core memory, no
special provisions need be made other than synchronizing the flow of data through the memory
to the radar trigger. Where the memory is a
magnetic drum. servoed to the average PRF.
the drum inertia prohibits rapid adjustment of
the drum speed to follow the changes in interpulse period so that complementary delay lines
in the receiver chain are needed to realign the
receiver video. The conversion of video to digital form prior to range realignment achieves a
number of desirable economies in the engineering of the complementary delays.

Clutter Rejection
In many radar installations the presence of
large distributed reflectors such as land masses

A second approach determines target strength
on the basis of number of returns received from
the target as the radar beam sweeps across it.
The returns are counted and on the basis of prior
statistical data, targets exhibiting too few or too
many hits are rejected, leaving only those targets
which have been previously shown to be point targets. This method requires the implementation
of counters in each range element. but this is particularly simple when implemented in conjunction
with the circuitry for azimuth estimation.
A third technique is essentially a refinement
of the one just previously mentioned in that total
number of hits received from a unit area are
counted and used to set the system sensitivity
level. By this means the detection level can be
made just slightly greater than the instantaneous
background so that all clutter is effectively eliminated. Targets in the clear or targets stronger
than the clutter background are accepted by the
system. This technique can be most easily implemented digitally as a part of any of the digital
sweep integrators previously described.

72
2.2

A fourth approach to clutter rejection and
the only one giving detection capability for targets weaker than the clutter utilizes the difference in velocity between clutter and targets to
achieve the required discrimination. This system. frequently called MOving Target Indication
or MTI, makes use of the doppler shift in the
reflected energy created by the moving target
and was until recently implemented by analog
techniques. Digital methods, however, have
been applied to this problem, resulting in elimination of bulky delay lines and achieving high
reliability, freedom from field adjustment, and
greater flexibility, while preserving equivalent
performance. Modifications of the digital technique can be made to measure radial velocity
on each detected target.

Encoders for these purposes can be designed to achieve an encoding capability of eight bits
in three to four microseconds. One encoder implementation which has proven successful depends
upon comparison of the analog video signal with
sixteen reference levels, subtraction of the largest number of integral levels possible from the
signal while maintaining a net positive balance
and a second comparison of the residue with a
second set of sixteen reference levels. This encoder has demonstrated the capability cited above
and is free from short and long term drifts and
environmental limitations.

The digital approach to MTI is shown in
figure 11. This Simplified diagram shows a
system for sensing either the x or y component
of the target vector, means for encoding this
quantity to a number of binary digits, a small
memory to delay this data one inter-pulse period,
and a digital subtractor; the purpose of the system is to compare successive values of the target amplitude or its components. MOving targets
will exhibit a periodic variation in their amplitude components at a frequency given by the
equation for doppler shift. These targets will,
therefore, produce a non-zero difference between successive echo amplitudes and in subsequent circuitry will produce a detectable data
processor output. Stationary targets having no
periodic variation in amplitude will produce a
theoretically zero output from the subtractor
and will, therefore, be eliminated from further
data processing. Systems of this general form
have the ability to detect moving targets whose
return echo strength is over 40 db weaker than
the surrounding clutter.

Air Defense and more recently air traffic
control are both heavily dependent upon means
auxiliary to the radar for the precise identification of targets. Toward this end there has been
very considerable development of cooperative
devices carried in aircraft which, when interrogated by a special transmitter associated with
the primary radar, respond with a distinctive
identifying code. Detection, verification and
interpretation of the received code train is most
successfully carried out through digital techniques.

Video Amplitude Encoding
Several special situations may occur in
radar data processing where high speed encoding of video amplitude to high accuracy is required. The digital MTI system previously described is one such case; other cases arise in
conjunction with stacked-beam radars which
measure range, azimuth and height on each detected target. The height output is conventionally an analog voltage which must be encoded
with great accuracy and high speed for further
data processing. Encoding may also be required
in those cases where only a few hits are available on each target, dictating maximum retention
of all amplitude information in the integration
process.

Beacon Code Detection

The principle digital components of this system, (called beacon or secondary radar), are
timing circuits to generate various special pulse
patterns for interrogation, and code-train processing circuits which a) eliminate spurious
replies; b) achieve correlation of the beacon data
with the radar echo from the same target; and
c) interpret the code train for parity errors and
for special codes used to indicate emergency,
special aircraft, etc. The beacon data processing system is typically composed of high fidelity
delay lines having a multiplicity of taps and conventional computer elements operating at relatively high speeds. (See figure 12.) Equipment
currently under development to meet the exacting
identification requirements of air traffic control
may have as many as one hundred thousand electronic components.
Complete System DeSign
A hypothetical radar and its data processing
system can be constructed to show the application
of digital techniques in a fairly standard application. The radar transmitter chain is shown in
figure 13. In this figure, the basic transmitter
pulse repetition frequency is determined in the

73
2.2

trigger pulse generator on the left. Delays
under the control of the PRF jitter network produce variations in radar inter-pulse period
which are predictable but which will not repeat
for an arbitrarily large number of radar trigger
periods. The jitter pulses are then applied to
a modulator which fires the final stage of the
radar transmitter producing pulses of high frequencyenergy. A beacon transmitter chain produces coded interrogation pulses for transmission by a second antenna mounted upon the primary radar.
The receiving and data processing systems
are shown in figures 14 and 15. At the upper
left the incoming radar information is divided
between two channels - one the so-called normal
channel and the other the MTI channeL In the
normal channel the radio frequency signal is
first converted to an intermediate frequency.
then to video. and then quantized to produce
standardized ONES or ZEROS depending upon
whether the target return is greater or less
than a reference level automatically set in the
digital quantizer. In the MTI channel the RF
information is converted to an intermediate
frequency. then applied to a phase detector
which has an an output either the x or y component of the target vector. This component is
encoded. delayed and applied to a digital subtraction network as previously described for
a digital MTI. The subtractor output is reduced
to a one-bit code and is then in all respects
identical to the output of the Normal quantizer.

beam-splitting logic which finds the center of the
set of returns received from a point target as it is
swept by the radar beam. The center is encoded
by gating an azimuth counter to achieve a digital
word for target azimuth. Range information on
the target is readily obtained from the memory
by gating a range counter on the basis of the pOSition of the target in the range-organized memory.
Information on target range and azimuth
taken from the prime radar and target identity taken
from the beacon response are passed with other
information on special target characteristics to
a buffer memory to await transmission to the
next user. The transmission media may be any
low bandwidth system of which ordfnary telephone
lines are typical. Digital words. one per target.
may be transmitted at rates in the order of 25 to
50 targets per second. Word-forming logic between the buffer store and the output section of
the data processor arranges the range. azimuth.
identity, and other information in prescribed
order, carries out parity checks and generates
the timing waveforms for actuation of the output
function.
Summary

In summary. a variety of digital techniques
have been very briefly described to indicate the
breadth of the application of digital methods to
radar data processing. While many specific
. techniques remain under military classification.
the general principles of digital implementation
Simultaneously with the reception of target
of data proceSSing functions are well understood
information from the prime radar. the response
of the target to beacon interrogation is also reand have in a number of instances given dramatic
proof of their high reliability. ease of maintenance.
ceived. After suitable demodulation from radio
and adaptability to modification and evolution. and
frequency through intermediate frequency to
in many cases provide functions and performance
video. the code train is standardized in ampliwhich have no counterpart in analog circuit techtude and timing. integrated to remove spurious
replies, checked for parity, and caused to pronology. It is anticipated that with an increase in
dependence on radar by both military and civil
duce a signal which is additively mixed with the
aviation. the number of installations of digital
radar video to achieve a high detection probability
data processors will increase many fold and that
at the integrator output. Suitable timing of the
beacon trigger with respect to the radar trigger
the art of digital processing of radar data will
insures registration of the radar return and
steadily advance toward the solution of many of
beacon response from the same target.
the complex problems still confronting the radar
designer.
As shown in figure 15, the Normal and MTI
signals are then gated on a range basis so that
the MTI signal is selected for short ranges where
clutter is prevalent and the normal video, exhibiting a slightly higher sensitivity, is selected
for the longer radar ranges. The resulting signal is then passed to the binary sweep integrator
which effectively eliminates false alarms produced by receiver noise and enhances system
sensitivity. The integrator output actuates a

74
2.2

RADAR
TRANSMITTER
AMPLITUDE
DETECTOR

RAW VIDEOS
TO
FURTHER DATA
PROCESSING

RECEIVER
PHASE
DETECTOR

ENVELOPE OF
TRANSMITTED PULSES"",
SIGNAL
STRENGTH

ENVELOPE OF
RECEIVED PULSE

~14---6
r l 4 - - - --

t--.....I
T

I 4 - - r-

-----..j.1

6

t----.-I

TIME

Fig.!. Basic Radar System.

VIDEO IN - - - - - - .

DELAY LINE

VIDEO OUT
VIDEO IN

-

(T)

1- k

Fig. 2. Simplified Video Sweep Integrator.

VIDEO OUT

75
2.2

Fig. 3. Typical PPI Display.

THRESHOLD

SAMPLE
AND
INTEGRATE

RADAR RECEIVER VIDEO
QUANTIZED VI DEO

QUANTIZER

RANGE TIMING

..1lJ1J1.JLIU"l

Fig. 4. Digital Quantizer for Radar Video.

~

76

2.2
THRESHOLD

.
QUANTIZ ~
OUTP UT

( Xi )

· Tf

L-

X~
16

~

DELAY
(T)

START TAR GET

.-

~ COMPARATOR

-

ADD

~

J

END TARG ET

~

,~~

XiOl1

_11111111111111111111111111111111111111111111111111111I111I

nT
16

(n+m)T

TIME

---------------- - - - - - - - - - - - - - - - - - - - - - - - - - - THRESHOLD

Sj

TIME'

Fig. 5. 16-Hit Digital Sliding-Window Integrator.

i

=L

Sl

XJ

J= l-15

QUANTIZER
OUTPUT

(Xd

~

Si

Xi

I'---_....IWWIIIII

1I.u.wu.u1
III IIII l.u.wu.ulll
II II 11w.u.u.w1111ll111w.u.u.w1111ww.w.1II
11lll 1II.111W.LLLILIIIIIII_

_

TIME

16 - - - - - - - - - - - - - - - -

Si.

THRESHOLD

TIME

Fig. 6. 16-Hit Digital Sliding-Window Integrator.

51 = Xi +S(i-1)

1

-16

SN

N

L

SN=
XJ
J= N -15

Xi

•

~--=

ADD
4• •

~ 4~

~

4.

} Si

--..-

.-

SUBTRACT ~

DELAY

~

~~~~·~~-1~~~'~

(T)

~ ~
·

16

~

~

~

SNT

~

~

STORAGE ~

I
Xi

~

---'

GATE

~

"~I---.....I

..

~--~.~--

1"""1

~IT--"""
NT

1

o

I

I11111111111111111111111111111111111111111111111111111III II

TIME

16

THRESHOLD (
----

S

oI

41111111111 """" 1111'''"111'' "" 1111" 11111 11111111 11111111 II 111111111111 II 1111111111).

Fig. 7. 16-Hit Digital Moving Sum Integrator.

NT

TIME

~--l

t-.:)--l

78
2.2

Fig. 8. Drum Memory for Radar Data Processing.
I

~

TRIGGER
PULSE
GENERATOR

SELECTABLE
RADAR
TRANSM ITTER
DELAY

I---

4~

-

RADAR
RECEIVER

...

QUANTIZER ~

COMPLEMENTARY
DELAY
4

~

,
To

D~['A

PROCE SSING
JITTER
PROGRAMMER

Fig. 9. Digital J itter-Dejitter System.

79
2.2

Fig. 10. Manual Clutter Mapper.

VED~ DETECTOR
PHASE ~

RECEI
VIDE ~ Afy1~

j~

FROM

ANALOG
-TODIGITAL
ENCODER

[
CORE
Ml:MORY
o LAY
(T)

REFERENCE 10.. pSC I LLATOR
Fig. 11. Digital MTI System.

---

~
~
~
~

III

".""

TPUT
SUBTRACTR ~

80
2.2

BRACKETS
./13 CODE BITS

illl

~
I

I
!

I
I
I

I
I
I

I
I

I
I

I
I

I
I

I
I

I
I
I

~
I
I

I

I
I

..
14----2O'3jJ~s- - - -....1

1+3-~
jJs

REPLY CODE

INTERROGATION PULSE
PATTERN
PULSE

~C>---1

BEACO
VIDEO
IN

S TAN

DELAY LINE (20.3jJs)

DARDIZE~
,

I

,•,,

.

r

,,

I

~• COlBRACKET
NCI DENCE

I

I

• r

READ-OUT GATE

INTEGRATION

I

>--~

-~
~~

CODE >--~
~~
BIT
COMPARE =~
>--~

1<1

a

TO
FROM
MEMORY

~~
~~

Fig. 12. Elementary Beacon Data Processing System.

RADAR TRANSMITTER CHAIN
TRIGGER
PULSE
GENERATOR

r--+

VARIABLE
DELAY

~

MODULATOR

r.

LU LU
TRANSMITTER---....

t
JITTER
CONTROL

~}

- - - - - - - - - - - -....
--

TO
RECEIVER

SYNCHRONIZER

INTERROGATION

CODE
GENERATOR

,L
.......

BEACON TRANSMITTER CHAIN
TRIGGER
PULSE
GENERATOR

r--.

MODULATOR

r--. TRANSMITTER . . . - - - - - -

Fig. 13. Radar and Beacon Transmitter Systems.

NORMAL CHANNEL

I

2nd.
DETECTOR

1 sf.
DET

J.l

•
l-BIT
QUANTIZER

I

,DEJITTER

I

.

QUANTIZED
NORMAL
VIDEO

MTI CHANNEL
PHASE
DETECTOR

AID

~

E NC. I---T-v'41

DELAY
(T)

•

QUANTZD

SUBTRAClOR

1+ MTI

VIDEO

FROM
~ REFERENCE
TRANSMITTER
OSC.

-

FROM
JITTER CONTROL

1st.

2nd.

DET

DETECTOR

•

RADAR
- - BEACON
PULSE·
STANDARDIZER
L....
''-D-E-L-AY---'
LINE
BRACKET
COINC.

INTEG. I

CODE BITS

Fig. 14. Preliminary Video Processing.

•

• DETECTED

READ-OUT
GATE

BRACKETS
CODE
BITS

~CX)

r-." .....

~CX)
~~

BEACON
COD
BITS
TRIGGE

~

RANGE
OSCILLATOR

NORM L
MTI
BRACK

rs

r.
..-....

RANGE
COUNTER

FROM_~

COUNTER

AZIMUTH
COUNTER

H

MIXER

....

.....

•

INTEGRATOR

a

DETECTOR

~

Ai: : BUFFER
EST. I STORE

....

"

V

WORD
FORMATION

I

~J
OUTPUT
TRANSMITTER

Fig. 15. Final Video Processing.

-

OUTPUT

83
2.3
ORGANIZATION AND PROGRAM
OF THE
BMEWS CHECKOUT DATA PROCESSOR
A. Eugene Miller
Senior Member, Technical Staff
Auerbach Electronics Corporation

Introduction
The Ballistic Missile Early Warning System
(BMEWS) Checkout Data Processor (CDP) is probably the first medium-size digital processor
to perform the real-time, on-line checkout of
an entire operational radar detection. and
processing system. This paper is the first to
describe the unique organization of the BMEWS
CDP and the unusual structure of its program.
It also states many of the detailed characteristics of the CDP. The Checkout Data Processor
has several modes of operation. As a point of
reference, the mode which inserts a "realistic"
sequence of events into BMEWS is focused upon
in the following discussion.
The CDP has two functional memories; one
for storing constants and instructions and one
for storing data. The means for jointly using
these two memories and still maintaining the
flexibility associated with single memory
machines is brought out. The features tailored
in the CDP for efficiently handling its problem
are emphasized. They include real-time program
interrupt signals and a complex Input-Output
System. This Input-Output System, as well as
communicating with over a dozen other digital
data handling devices, has more than 250
separate addresses.
The structure of the CDP program is the
other area focused upon by this paper. The
material covered describes the three separate
programs which run in an interwoven fashion.
This interweaving and the effect of the realtime program interrupts are brought out.

Max Goldman
Manager, Checkout, Monitoring,
and Electrical Integration, BMEWS
Radio Corporation of America

produce a report. Each report is transferred
to the missile impact predictor which stores
and correlates the various radar dat, take-off
reports. On the basis of these reports, the
missile impact predictor prepares various
reports such as a report containing the values
of the parameters associated with an observed
missile trajectory.
The CDP controls the insertion of a
simulated sequence of returns into the front
end of BMEWS. At the same time, the test tag
is issued to the appropriate radar data takeoff to indicate that the return is simulated.
The test tag remains with the data throughout
the system to differentiate test information
from real information. As the radar data
take-off correlates the simulated returns,
the report that is produced and sent to the
missile impact predictor, is also sent to the
CDP.
The missile impact predictor uses the
data take-off reports to produce reports of
its own. These reports are also sent to the
CDP.
Organization of the CDP
It is convenient to consider the CDP as
being composed of five major subsystems;
Wired-Core Memory, Coincident-Current Memory,
Arithmetic and Logic Unit, Input-Output
System, and Control System. A block diagram
of the CDP subsystems and their interrelation
is illustrated in figure 2.
Wired-Core Memory

This paper is the first comprehensive
public description of this major subsystem of
the Ballistic Missile Early Warning System.
Role of the CDP in the BMEWS
The BMEWS Checkout Data Processor has the
primary purpose of determining the operability
of BMEWS by inserting either test patterns or
a "realistic" sequence of events into the
system, and then evaluating the BMEWS on the
basis of its response.
Figure 1 illustrates the way the CDP fits
into the BMEWS. In the normal or real situation, a radar data take-off collects radar
returns on a target and assembles these to

The Wired-Core Memory, which is a form of
the Dimond ring translator, stores the program
and constants used by the CDP. It contains
4,096 storage locations. A Wired-Core Memory
was chosen for two reasons; namely, speed and
reliability. Figure 3 illustrates the instruction word format as it appears in WiredCore Memory. Since the CDP has two diverse
types of memories, the locations of each of the
types of memory are called by different names.
The Wired-Core Memory locations are called
"locations" and the Coincident-Current Memory
and input-output locations are referred to
as "addresses".

84
2.3
Bits XQ, X1t and X2 are used to specify the
operation modification. Four configurations of
XO, and Xl, and X2 are interpreted as follows:
when XQ is zero the operation is specified by
X3 through X7 with Xs through X19 specifying
the accompanying address or location. Bit X2
is the parity bit associated with X3 to X7.
Three other configurations of XQ, and Xl and
X2 when Xo is one specify an operation to be
performed with a constant. In these cases X4
to X21 are used to specify the constant. These
bits are actually transferred into the arithmetic unit as data.

Coincident-Current Memory. The Arithmetic and
togic Unit also directly sends information to
the Output System. The data derived from the
addressable inputs or sent to the addressable
outputs are used in essentially the same way
as data sent to and from the Coincident-Current
Memory. For example, one input address contains the azimuth position of one of the radars.
The contents of this address can be read into
the accumulator as though it were data from
the Coincident-Current Memory.

In the normal operations, i.e., when the
operation modifier indicates that X3 through X7
is to be interpreted as the operation and not
part of a constant, X20 through X22 are used l to
indicate which of the index registers are to
be used with the instruction. There are three
independently used index registers. There is
one exception to the above statement in which
X20 through X22 indicates a specific bit in the
accumulator which is to be tested.

The Coincident-Current Memory of the CDP
is composed of 1,024 addresses. This memory
has several functions. One of these functions
is to act as an input buffer for various realtime asynchronous input sources. There are
buffers for data reports from the radar data
take-offs and reports from the missile impact
predictor as well as information from an
input magnetic tape. Also, there is an output
buffer which is used to store information required in simulating RF returns. When a data
word is required by or available from an outside source, the program is interrupted for a
memory cycle during which time this data word
is removed from or stored in an allocated
address in the Coincident-Current Memory. The
interruption occurs without the knowledge of
the program.

One of the tailored features of the CDP is
concerned with performing table lookups of
constants stored in the Wired-Core Memory. The
sequence of instructions is initiated by a
normal instruction which performs two functions.
The first function is to store the location of
the next instruction in a fixed address of the
Coincident-Current Memory. The second function
is to jump to the address specified in the instruction itself. This address may be modified
by the various index registers. The jump leads
to an instruction which contains an operation
modification. This operation modification adds
the constant specified in the instruction into
the arithmetic unit and then control is transferred to the location specified by the fixed
address in Coincident-Current Memory. This
same technique can also be used to enter and
leave sub-routines as well as perform table
lookups.

Coincident-Current Memory

Other functions of the Coincident-Current
Memory include storing intermediate results
and control information developed and used
within the program. Also, the indirect address
feature and standard address feature previously
mentioned are facilitated by the use of
Coincident-Current Memory.
Input System

Arithmetic and Logic Unit

The Input System can be considered as composed of two diverse parts. There are demand
inputs which supply information such as the
radar position vector and console commands, and
asynchronous inputs which supply magnetic tape
information and system reports. Each separate
demand input is associated with a particular
address. As was stated previously, these
addresses can be read or acted upon in a normal
fashion. There are over lS0 addressable inputs which fall into 36 different classes of
information. The Input System has the facility
for communicating with well over a dozen other
digital data handling devices including a pair
of IBM 7090's.

The Arithmetic and Logic Unit contains an
accumulator and associated registers and control
circuits for carrying out addition, multiplication, subtraction, division, shifting, masking,
and so forth. This unit obtains input data by
directly addressing the Input System or via the

The asynchronous inputs are stored in the
Coincident-Current Memory by interrupting the
program control over the memory for single
read-write cycles. Beside information from
the input magnetic tape, the CDP receives, by
means of this Coincident-Current Memory

Another feature added to the instruction
repertoire to give desired flexibility in using
the Wired-Core Memory is an indirect jump. This
instruction, in Wired-Core Memory, specifies an
address in the Coincident-Current Memory which
contains the location in the Wired-Core Memory
to which control should be transferred. Thus,
variable linking can be accomplished by changing
the contents of the Coincident-Current Memory
address involved.

85

2.3
interrupt feature, 12 different types of mesages from other processors in the system with an
average of six to seven items per message type.

built-in priority system to handle simultaneous input-output requests as well as the
address control for storing the data.

Output System

Another feature, also previously mentioned,
is the incorporation of a timer in the Control
Unit to establish the sampling period for
measuring the variable frequency oscillator
outputs. This is a two-phase timer that
allows the sampling of the VFO output to take
place for a fixed period of time followed by a
period of time during which no sampling takes
place. This dead period is used by the program
to compute the necessary corrections and also
to apply new inputs to the VFO's.

The Output System has the same dicotomy as
the Input System. There are over 75 addressable
outputs which fall into about 15 classes. A
major portion of the Output System is associated with a target simulator which actually produces the simulated returns and accompanying
test tags. Figure 4 shows one of the target
generators of the target simulator. An output
address is associated with a digital-to-analog
converter (DACON) which is used to control the
amplitude of the desired output signal. Another DACON, which is loaded by the program,
controls a variable frequency oscillator (VFO).
The modulator controls the amplitude of the
output signals generated by the VFO. The range
value is placed into a counter by the program at
some time prior to the initiation of the radar
main bangle At the beginning (leading edge) of
the main bang, an oscillator is connected to
this counter providing an output at an appropriate time to simulate a return at the range
desired. This counter output lasts for the
duration of the desired return. As a result,
the output of the target generator is a pulse of
the correct amplitude and frequency at the desired time to simulate the return from a target
at the corresponding range. It is worth noting
at this point that the CDP acts as the controlling element in a feedback loop for the
variable frequency oscillator. The output of
the VFO is fed into a counter for a fixed period
of time. This average frequency is sampled by
the program to produce a new value to obtain the
desired frequency. The new value is placed into
the digital to analog converter which controls
the VFO. This subject will be discussed in a
later paragraph.
A summarizing fact which further indicates
the unusual complexity of the Input-Output
System is that there are more than 1,300 connections for the addressable inputs and outputs
alone.
Control Unit
The Control Unit, besides containing the
facilities usually associated with control
functions of internally stored program digital
computers, has five features used in interesting
ways. The first of these features, which was
mentioned previously, is the ability to recognize signals from the Input-Output System.
These signals indicate to the Control Unit that
a memory cycle is to be usurped for asynchronous
input-output reasons. The Control Unit has a
1. Reference to a radar main bang is confined
to the leading edge. Reference to an interpulse period is defined as the time between
successive main bangs.

One of the more highly tailored features
of the CDP is the three index registers and
their use. The discussion of these index registers is included in the Detailed Characteristic Section. Other features associated with
the Control Unit are the inclusion of a
special tag register and the presence of program interrupt signals which relate to the
occurrance of the radar main bang. These
features are discussed in the Programming
Section.
Detailed Characteristics
A binary numbering system is used in the
BMEWS CDP with a data word length of 18 bits
plus one bit for parity. Accessing an instruction from the Wired-Core Memory and
modifying the address by index registers requires four microseconds. There are two
memory accesses per instruction: one memory
access of the Wired-Core Memory for the instruction itself and another access from the
Coincident-Current Memory or input-output
address. In either case, 8.8 microseconds is
involved in the access and manipulation of
data for basic instructions. Therefore, an
instruction such as an addition requires 12.8,
microseconds to complete; including the instruction access and modification of the
address by index registers.
The CDP uses 27 out of the 32 possible
instructions facilitated by the five bits
of the operation code. There are also the
three operation modifications for use with
constants.
The.Wired-Core Memory contains 4,096 23-bit words. The Coincident-Current Memory
contains 1,024 - 19-bit words. Both memories
use a binary addressing system and all data
and instructions are addressable by words.
The CDP contains three index registers - a
three-bit register, a four-bit register and a
five-bit register. The contents of each of
these registers are logically added to the
address contained within the instruction.

86
2.3
There is no time penalty associated with the
use of the index registers. The index registers
mix into an address in the following fashion:
3 Bit Reg.

Xs

5

Bi~

Reg.

X9~~X14 X~5 X~IX17

XiS X19'

4 Bit Reg.
There are specific operations which use
indirect addressing only. There ~s no time
penalty associated with such operations, that is,
they require 12.8 microseconds to carry out.
The BMEWS CDP is capable of simultaneously
carrying out input operations while performing
arithmetic computations. For example, the
program performs a single instruction which is
a start-tape command. The program then ignores
the tape input operation, while performing
arithmetic operations, until an appropriate
time when an inspection of the tape input buffer
reveals the required information.
Information is stored on the input magnetic
tape as 6-bit characters plus a parity bit
(character parity is odd). There are 120
characters to a tape record: .IThree 6-bit characters are assembled by the Input System to
form one 18-bit CDP word. Thus, the input
magnetic tape buffer size (in Coincident-Current
Memory) is 40-CDP words. The Input System
supplies an entire word to Coincident-Current
Memory during each transfer operation. The
nominal tape reading speed is 15,000 characters
per second.
The output console printer is controlled
by a 40-bit buffer which is addressable by the
CDP. These 40-bits are composed of ten 4-bit
characters. The printer operates at twenty
10-character lines per second.
The clock rate of the CDP is 1.25 mega~
cycles. It contains about 8,000 transistors
and between 40,000 and 50,000 diodes. The
CDP is mechanized by NOR type transistor-diode
logic.
Structure of the CDP Program
The CDP program must carry out the func~
tions associated with several checkout modes.
Each of the modes is designed to evaluate the
BMEWS from a slightly different point-of-view.
Some modes insert "realistic" raids into the
BMEWS while other modes insert test patterns
into the BMEWS. The CDP program is composed
of three parts; the simulation program, the
evaluation program, and the executive program.
These programs are used in all of the checkout modes.
Each of the programs is composed ~f routines. The mode determines which routines of
each program are to be used for the processing.

Figure 5 illustrates the organization of the
CDP program. The processing proceeds from
the executive program to the simulation program and back to the executive progra~. From
the executive program the processing then
proceeds to the evaluation program. The
soli~'lines are used to indicate a programmed
connection between separate programs. The
dotted lines connecting the evaluation program
to ~he executive program signifies an automatic
transfer caused by the program interrupt
feature.
The program interrupt feature is best
explained in relation to figure 6 which illustrates the CDP program timing. At each radar
main bang the CDP program is interrupted and
control is transferred to the executive program. This interrupt should only occur during
the evaluation program. A special tag register, previously mentioned under the Control
Unit, carries an identification of the program
which is in proces~. The executive program
after the transfer of control has taken place,
caused by the program interrupt, inspects the
contents of the tag register to insure that
the interrupt occurred during the evaluation
program. The executive program stores the
interrupted state of the CDP when the interrupt
occurred, and then interprets the mode and sets
up various linkages required for the mode if a
mode change has occurred. Control is then
transferred to the appropriate simulation
routine.
When the scheduled simulation routines
have been completed, control is transferred
in a programmed fashion back to the executive
program. The executive program determines
where in the evaluation program to resume
processing and sets up the state of the CDP
for the resumption. The evaluation program
is then resumed. As will be seen shortly, the
evaluation program is essentially a non-ending
program so that it continues processing until
the next program interrupt signal.
The executive program coordinates the information flow between the simulation and
evaluation programs. The executive program
accomplishes this task by having its routines
perform such functions as determining the mode
and inspecting to see that the program interrupt signals are in the proper sequence,
connecting the proper simulation and evaluation
routines used in a given mode, and determining
the malfunction of the CDP by inspecting the
contents of error registers, etc.
The simulation program is composed of
routines which generate information defining
the signals to be injected into the system.
This information is used to control the
checkout target simulator which actually
creates the signals and sends them into the
front end of the BMEWS. The routines of the

87

2.3
simulation program are of such nature that they
must be completed by specified times in order to
be of use. Therefore, these routines are synchronized by the program interrupt signals.
The simulation program performs three
major functions. These are:
(1)

Determines the system status (connections between BMEWS major subsystems) ,

(2)

Controls the target simulator.

(3)

Prepares the values for the parameters
of anticipated messages for use by the
evaluation program.

The evaluation program processes the information received by the CDP from the BMEWS
in order to evaluate the operability of BMEWS.
There are also evaluation routines used to
organize information to be printed, out; this
infbrmation is pertinent to the evaluation of
the operability of BMEWS. Likewise, there is a
routine in the evaluation program for determining CDP failures. Evaluation routines, unlike the simulation routines, do not have to
be kept in step with events of each main bang
period, but must only meet time requirements
in the large. The evaluation program, once
started, continues from evaluation routine to
evaluation routine until interrupted by a
program interrupt signal.
The evaluation program is divided into
three priority classes of routines; routines
corresponding to a given mode of operation of
the first class precede those of the second
class which in turn precede those of the third
class within a main bang period. The highest
priority classes are always initiated in each
main bang period (or continued if it has been
interrupted, see below). This highest priority
class is initiated by the executive program
after program interrupt 1 (see figure 6). The
three sets of evaluation routines are called
Class I, Class II, and Class III with the
highest priority being Class I, the next priority Class II, and the lowest priority Class III.
Thus, the uninterrupted processing sequence
would have the Class I routines processing
all their applicable data, followed by the
Class II routines processing all their applicable data followed by the Class III routine.
The Class III routine (error detection routine)
is a non-ending routine, Le., the "end" of
the routine leads back to the beginning.
The CDP program is organized to begin the
processing of a given class of evaluation
routines at the point of interruption of the
interrupted routine of that class. If a given
evaluation process was not interrupted then
processing begins at the first routine of that
class.

Figure 5 illustrates the organization of
the three classes of the evaluation routines
in the CDP program. The possible returns to
the evaluation program are shown inside the
executive program. Note that there is a path
from each interrupt to the starting of the
Class I routines each main bang.
The evaluation program performs three
major functions. They are:
(1)

Process messages received from the
rest of BMEWS - using anticipated
values from the simulation program.

(2)

On the basis of (1) - turn on
appropriate console lamps and
pr!ntout appropriate information.

(3)

Check the operation of the CDP
itself.

The evaluation of system reports is
illustrated in figure 7. The evaluation
routine picks up the value for each of the
parameters in the received report and subtracts the corresponding anticipated value.
A new message is composed which contains the
message type, the target tag, the anticipated
value for each of the parameters and the
calculated difference between the received
value and this anticipated value. This new
message is a candidate for printout. The
criterion for printing the message is that
the deviation of the value for at least one
of the parameters is larger than the specified
tolerance. If all of the deviations are
within the specified bounds, normally, the
message is discarded. However, subject to a
switch setting on the console, all such printout candidates can be printed-out for the
purpose of data collection. An out of
tolerance deviation is marked appropriately
to identify this situation to the operator.

Summary
A program interrupt occurs at the beginning of the radar main bang (figure 8). This
interrupt causes the executive program to
store the state of the CDP and proceed into
the simulation program. The simulation
routines, which are carried out at this time,
control the variable frequency oscillators
of the target simulator and check to see that
the BMEWS status has remained stable. That
is, there has been no change in the way the
major subsystems of BMEWS have been linked
together. The completion of these two
routines returns the program to the evaluation
program by way of the executive program.
The evaluation program inspects the
Coincident-Current Memory for information
coming into the area reserved as system
report input buffers and, if information has

88
~3

been received, compares these reports with
anticipated reports also stored in the Coincident-Current Memory by the simulation program.
The evaluation program is eventually interrupted
by program interrupt 1. Console switches are
inspected to see that the CDP is still to remain
in the present mode or change modes. The
simulation program is then initiated.
The simulation routine which is carried out
at this time calculates the inputs required by
the target simulator at the end of this main
bang to simulate returns following the subsequent main bang. This calculation is based
upon the system status, the particular position
of the various beams, and target data which had
~reviously been stored in the CoincidentCurrent Memory by the magnetic tape portion of
the Input System. 'The simulation routine,
prior to start~ng its calculation, initiates
the reading of a record from the input magnetic
tape for use during the next inter-pulse period.
Data used in this inter-pulse peri04 had been
read in during the previous inter-pulse period.
The results of the calculation of this simulation routine are stored in Coincident-Current
Memory ready for transfer to the target simulator at an appropriate time.
The evaluation program is then re-entered
via the executive program. Here the executive
program restarts the Class I routines if they
had not just been interrupted. If they had
just been interrupted by program interrupt 1,
the interrupted situation is resumed. Again
the evaluation program continues until the
next program interrupt occurs. At this point,
the executive program leads to the simulation
routine that transfers the information previously calculated for the target simulator
into the target simulator.
The target simulator must be quies~ent
during the period of time that the program
transfers new parameter values into the range
counter. Therefore, the maximum range that
can be simulated is limited by the period of
time associated with this transfer. In
actuality, program interrupt 2 marks the end
of time when the target simulator is capable
of producing a simulated return during the
ma~b~.

Thus, each main bang, data taken from the
input magnetic tape during the previous main
bang and stored in Coincident-Current Memory
is used together with system information to
produce control information for the target
simulator. This information is transferred
into the target simulator at the end of the
main bang. During the next main bang, while
this same calculation prpcess is being repeated,
the target simulator inserts into the system,
if required, simulated RF returns and corresponding test tags. This process dontinues
main bang interval after main bang interval.

The radar data take off correlates the inserted signals and issues reports to the
missile impact predictor. These same reports
are shipped to the CDP and stored in the
appropriate area of the Coincident-Current
Memory. The evaluation program continues
to inspect this portion of the CoincidentCurrent Memory sensing for such reports.
When a report is received, it is evaluated
by using the anticipated report produced by
the simulation program. If an out of tolerance
situation is discovered, information is shipped
out to the operator by means of the printer.
Radar data take off reports are collected
by the missile impact predictor and used to
produce various other reports. These reports
are shipped to the CDP and stored in the
Coinc~dent-Current Memory.
In a similar
fashion, the Checkout Data Processor compares
these reports with anticipated reports
and indicates to the operator the result
of such processing. In this way, the Checkout
Data Processor using its equipment and its
program in an interwoven fashion, generates
simulated RF returns, injects these returns
into the front end of BMEWS, receives the
effect that these signals have on BMEWS,
and on the basis of these effects, evaluates
the operability of the overall system.
Finally, the checkout device, being a major
part of BMEWS, evaluates its own operability.

Radar
Data
Take Off
/
/

Missile
Impact
Predictor

x
/~'------~------"

Radar
Data
Take Off

Simulated
RF Return

CDP

Figure 1.

CDP in the BMEWS

!'=I 00

CJJ\O

90

2.3

Wired-Core
Memory

r------I
I
I

I

I
I

Arithmetic
Logic
Unit

I

I r--- --I II

I '--------

I

CoincidentCurrent
Memory

I
I

I
I
I

L ___ _

Figure 2.

Input-Output System

Organization of the CDP

rG
T

Operation Parity

Operation

I

Address Modifiers

~

Address or Location

\
If

Ii

I

XO Xl X2 X3 ,X4 Xs X6 X7 Xs X9 XIO XII Xl2 Xl3 Xl 4 XIS Xl6 Xl7 XIS Xl 9 X20 X2 l,X 22
Constant

Operation Modification

Figure 3.

Parity for Constant

J

Wired Core Memory Word Format

~-.o

tAl"""

!'l\O
wr--J

Amplitude (A)

A
C

o
N

Frequency (f)

D
A

Modulator

C

o
N

-----.1

~TJDL

O--R

Average
Frequency

Range (R)

Counter

Counter

Figure 4.

Target Generator

~

I

I

I

I

'\

Simulation
Program

~v

,-

JII'

I~

~~

"

..".

."

I~

"'

Executive
Program

11\

'1\

'1\

I
I

I

I
I

I

I

,~

I

Class I
Routines

,......

~

Figure 5.

I

,~

I

Class II
Routines

......

"

I
I

Class III
Routines

Evaluation
Program

Organization of the CDP Program

t-.:II,O

WW

94
2.3

Radar Main
Bang

Executive
Program

o-

Program
Interrupt

Simulation
Routine(s)

Executive
Program
Evaluation
Program
Executive
Program

1 - Program
Interrupt

Simulation
Routine(s)

Executive
Program
Evaluation
Program

2 - Program

Executive
Program

Interrupt

Simulation
Routine(s)

Radar Main
Bang

Figure 6.

Executive
Pro2ram
Evaluation
Program

o - Program
Interrupt

CDP Program Timing

95

2.3

Message Test
Target
Number (N)

Target
Number (N)

~

RA

RDTO
Range

RR

RA

Range Rate

AR

AA

P

SA

Signal

Anticipated
Report

Print Out
Candidate

~

>

yes . . . .

,

Print
Out

For any P?
No

\V
Discard
Message

Figure 7.

6A
EA

EA

SR

D,

~A

6R
Azimuth
AA
Elevation

ER

Received
Report

N
RA
6~

Evaluation Process

~E

SA
68

o

Executive
Program

r-

I

Simulation
Routine(s)

~

Executive
Program

~
.....

(1) t1
(1)
o p.
t1 I

a

"
t1
.....

(Jq

c::

t1
(1)
(X)

C"l

c:::o

Simulation
Routine(s)

::s ::s

..... rt
rt t1

o

~

en

I

C:::rt

::s

::r'

..... 13

I
I

rt(1)
rt

.....
o

~

~

~

Executive
Program

g;--~......
C"l
O'"d

S
~

Evaluation
Program

I
I

(')

en
to<
en
H

t1
0(1) .....
::sCI.I t1~ ::srt
Ort(1)
C"l '"d

~0t1

(1) t1

CI.I~

en
.....

ac:

H
~

~t1
~(Jq

I

rt (1)
rt

o

t1

~

--fo------t__..,I
~ --- -- -- -- -Executive
Pro~ram

H

~

o

' SimulatIon
Routine.(s)

t::I:;d

""~~
(1)rtp.
H'I
H'I

~

~

t1

""
H

~t::I:;d

""~~
(1)
r't P.

Executive

~

Pro~ram

~

t1

Evaluation
Program

~---------------o

:;den
t'%j .....

:;d~

(1)

~

r1' ~
r1'

c::

t1

::s

(1)
p.

£.~

96

97
2.4

HIGH-SPEED DATA TRANSMISSION SYSTEMS
R. G. Matteson
Stromberg-Carlson
a Division of General Dynamics Corporation
Rochester, New York
Introduction
For many years data and messages
have been transmitted from point to
point over slow speed data communication systems by telegraph. There is a
rapidly growing increase in the use of
centralized data processing equipment
in large corporations however, making
increasing demands upon existing data
communication systems. Development has
been carried out at Stromberg-Carlson
during the past few years toward increasing the capabilities. of the
standard telephone facility for the
transmission of data at higher speeds
and with greater reliability. It, is
felt that this equipment will have
widespread use in the business data
field, the scientific field, the automatic control field, and for military
data communication systems. Typical
components required for the transmission
of data ove~ tetephone lines at high
speed include input/output eqUipment,
buffer converters, modulatorldemodulators, and of course a transmission path.
Stromberg-Carlson has developed a
modulator/demodulator unit using a
unique modulation prinCiple specifically
designed for minimizing the effects of
the various types of distortion and
interference associated with wireline
systems. In addition, an installation
has been completed for the Convair
Division of General Dynamics Corporation which transmits data in the form
of punched card information over a
telephone line more than 200 miles long,
and records the information on magnetic
tape in a format compatable with IBM
704 programming.
Applications
Since the processing of data by
digital computers is becoming common
practice throughout many types of
endeavors, the applications for the
transmission of data at high speed
over standard telephone facilities

appears to be very wide spread. Some
of these areas will be discussed in the
following paragraphs.
Many corporations are facing a
decision today between large computers
at a central location in the corporation
or many small computers geographically
separated at the various divisions. If
a centralized computer facility is required for performing all the various
operations and data processing for a
corporation, the data must be transmitted from remote divisions of the corporation into the central data processing
center. For a moderate size corporation
this data can reach significant proportions and can only be transmitted by
air mail or many slow speed data transmission systems operating in parallel
at the present time. The availability
of equipment to transmit data at higher
speeds over telephone facilities which
are normally available for telephone
communications will assist in solving
the data handling problem. For the
cO,rporation which decides to use individual smaller computers at each division,
data transmission can still be of considerable benefit. For these corporations, high speed transmission of data
can mean faster reporting between divisions and the possibility of using remote computers if theJocal computer
becomes overloaded during peak operations.
Many corporations are looking towards automatic data collection, data
acquisition and transaction recording
systems to accelerate the over-all data
proce'ssing and reporting cycle. These
systems will be used for such things as
the compiling and accumulation of data
concerning job moves, stockroom transactions, job change~, inspection results
and attendance recording. This data may
be recorded for several manual input
units at an intermediate collection
point. The data must then be transmitted from this intermediate collection
point to a central collection agency

98

2.4

(Figure 1). For a sizeable corporation,
the amount of data transmitted into the
central recording facility will be considerable. Transmission must therefore
occupy a minimum of t~me in order to be,
able to submit all da~a from each of the
intermediate collection facilities, requiring high-speed transmission of data
over standard wireline facilities.
Some types of businesses such as
banks and insurance companies have
requirements for large data retrieval
systems. In this case, a central file
of information, upon receiving an
inquiry from a remote station, will
transmit the data requested in the inquiry. In this example, the amount of
data transmitted during the inquiry is
small, but the amount of data transmitted during the reply by the data
file may be large indeed depending upon
the particular application. In order to
satisfy a number Qf independent inquiries in a reasonable amount of time, data
will have to be transmitted at high
speed over wireline facilities.
For the solving of scientific problems, large scale computer facilities
are required in order to handle the more
complicated problems expected. For some
of the large computer facilities required, it is economically impossible to
duplicate a facility at remote corporation installations. In this case,
remote facilities can use a large scale
computer facility for the solution of
scientific problems by transmitting the
program and input data by high-speed
data transmission systems to the central
computer facility (Figure 2). The problem solution can then be transmitted
back to the originating site.
It is also occasionally possible to
break down a large problem into subproblems which can be worked independently by separate computer facilities.
In this case, various computers throughout a wide-spread corporation can be used
for solving parts of the same problem
by means of high-speed transmission of
data over telephone facilities.
The solutions to scientific problems transmitted over the high-speed
data transmission system can be tabulated, reported or plotted by the use of
direct on-line high-speed printing equipment.

For applications where digital
computers are useQ in the automatic
control of process or operating conditions, much data is transmitted between
the operating system and the computer
control system. In the case of process
control computers, the requirement is
for the transmission of measured values
of the operating system, the transmission of control signals to change the
operation of the system and the transmission of data to various indicators
allowing manual supervision of the
operation of the system.
Operation of organizations such as
gas and pipe lines, and railroads requires the transmission of operating
data over long distances. This data
can be economically transmitted at
high-speed over the same wire-line facilities normally used for voice communication.
Many requirements exist for the
transmission of considerable amounts
of data for military systems. Militarysystems such as the SAGE (semiautomatic ground environment) system for
the detection, tracking and interception
of enemy aircraft requires data to be
transmitted between acquisition sites,
control centers, and intercepter centers.
With the military striving for
higher speeds under tactical conditions,
automatid displays and even the computer
analysis of tactical situations provides
a requirement for the transmission of
digital data.
Logistic Systems such as the Air
Force COMLOGNET System will be used to
transmit a tremendous amount of data
concerning logistic information throughout the Air Force.
EqUipment ReqUirements
Any generalized Data Communication
System can be broken down into input/
output components, buffer converter components, modulator/demodulator components, and the transmission path (Figure 3).
The input/output eqUipment may
consist of punched tape, punched card,
or magnetiC tape readers, manual input

99 '
2.4

keyboards, FLEXOWRITER, or electric typewriter equipment. The input/output equipment can also consist of the buffer
storage portions of general purpose computer installations.
The buffer converter unit at the
transmitting terminal of a data transmission system must accept the data from
an input device, and transform this data
into the proper format for application
to the modulator unit. This may require
parallel to serial conversion, temporary storage, and level changing. The
buffer converter may also change the language of the data as in the case of card
to tape transmission. Also, it may be
required to add checking information to
the transmitted signals. At the receiving terminal of the Data Transmission
System the buffer converter must accept
the data from the demodulation unit and
convert it into the proper format for
recording on the output device used.
This operation may mean serial to parallel conversion, temporary storage, and
the generation of additional format information such as inter-record and interfile gaps normally required for preparing
magnetic tape for IBM computers.
Error circuitry is required at the
receiving terminal improving or at least
indicating the reliability of data transmission. Errors can be detected by checking vertical and horizontal parity bits
in the transmitted data, and indicating
these to the operator at the receiving
terminal. This gives a measure of transmission reliability but does nothing to
correct the matter. In the event of an
error circuitry can also be included to
cause automatic retransmission of the
previous block of data. Using this
techniq~e, the final received and recorded data will be more reliable by several
orders of magnitude than if automatic
retransmission were not used. Another
technique can be used which would correct
certain types of errors in the transmitted data at the receiving terminal without requiring retransmission. By storing
a complete block of data and checking
horizontal and vertical parity signals,
single bit errors in the transmitted
message can be corrected automatically.
Alternatively, if the information is destined for computer data processing, a
program can be incorporated into the
data processing routine to perform the
same function, thereby simplifying the
data transmission system.

The telephone line which wi~l transmit voice information satisfactorily will
not necessarily transmit data reliably;
for example, impulse noise of very short
duration may cause bits of information to
be changed, added or deleted in the data
being transmitted which could have serious
consequences in the business data applications. Similarl y, a frequency translation will have serious effects on some
types of data modulation techniques,
but will hardly be apparent during voice
transmission. Certain minimum requirements for line characteristics must be
satisfied depending on the type of modulation/demodulation equipment used in
the system.
Equipment Description
Data transmission equipment 'which
has been developed at Stromberg-Carlson
will be described as examples of the components mentioned in the preceeding sections.
A tape transmission terminal suitable for tape to card, card to t~pe, and
tape to tape systems is shown in Figure
4. A tape transport has been selected
for low cost, reliable operation. The
buffer converter is designed to accept
data from the tape transport, convert it
to a serial form, and provide control and
synchronization signals to the receiving
terminal. These and oth'er functions of
the buffer converter are shown in Figure
5. The end of the file is automatically
recognized by the buffer converter and the
tape transport is turned off. In the event
of an error recognized at the receiving
terminal, the retransmission signal is
recognized by the buffer converter and
the data record in error will be retransmitted by reversing the tape transport
and transmitting that record over again.
The receiving portion of the buffer
converter converts serial input data to
parallel data for recording on the receiver tape transport. The data is synchronized to the incoming data by resetting
the character bit counter with a start of
record character. End of record gaps
occurring on the transmitted tape will
also be placed on the receiving tape. At
the end of a file of data, the receiving
tape transport will be stopped.
A modulator/demodulator model SC301 is used to modulate the serial

100
2.4

train of data in a form for reliable
transmission on telephone facilities at
2400 bits per second. The SC-30l converts the input binary information to a
trinary form which then amplitude-modulates a subcarrier signal.' Advantages
of using a trinary, rather than binarY.
baseband signal in~lude the following~·2
(a)

Elimination of low frequency
components, reducing noise
bandwith and easing requirements for transmission circuit characteristics.

(b)

Constant average power level
in transmitted signal.

(c)

Permits use of bistable detector, rejecting noise impulses of one polarity.

At the receiving terminal, the
signal is demodulated and regenerated
to form the original binary information.
A free-running multivibrator is synchronized to the incoming data to provide a clock signal at the synchronous
rate of data transmission. A photograph
of th~ SC-301 in a separate cabinet is
SROwn in Figure 6.
A telephone handset is sunplied on
the front panel of the data
communication terminal for intercommunication capability. This enables the
operators to coordinate the transmission
of data at the beginning and the end of
the transmission. A self-test capability
allows the operators to check out the
transmission link before the start of
transmission. Amplitude and time delay
equalizers are also provided with the
terminal as required to compensate for
characteristics of. the telephone facility.
A card data transmission terminal
is shown in Figure 7. This unit can be
used to transmit data between itself and
another card terminal, a tape terminal,
or a computer input terminal. This terminal has been designed to read punched
cards at the rate of 100 cards per minute. The terminal is similar to the
tape transmission terminal described
above except for the addition of a card
buffer module. The card buffer will
store all of the data on one card as
received on a row by row basis. The
buffer will then feed the data character by character into the buffer converter, which then performs functions similar
to that performed by the tape terminal
buffer converter.

The third type of data transmission
terminal developed at Stromberg-Carlson
is for transmitting data from computer
to computer. This type terminal is
shown in Figure 8 and is exactly the
same as the card transmission terminal
except that the card reader and the
card buffer are not required. The
buffer converter accepts data from the
buffer storage unit of a computer exactly as it would from the card buffer
unit. At the receiving terminal, the
data is provided to the buffer storage
unit of the receiving computer.
Since the tape, card, and computer
data transmission terminals all have
standard outputs, they can be used interchangeably with each other to form
tape to tape, card to card, card to tape,
computer to computer, tape to computer,
etc. systems. A card to tape system
has been installed at the Convair Division of General Dynamics Corporation to
transmit data over a 200 mile telephone
line between Pomona, California and San
Diego, California. This system enables
Convair personnel in Pomona to utilize
an IBM 7043Camputer facility located in
San Diego..
In addition, an SC-3000
high speed communications printer can
be used directly on line at the receiving terminal to print out data.
A new type of tape transport is
being developed for use in specific
applications for data transmission and
data collection systems. This tape
transpor~ will operate in two modes, a
stepping, asynchronous mode or a continuous, synchronous mode. In the stepping mode, the transport can be used
with a FLEXOWR1TER, manual keyboard, slow
speed punched card device or other equipment operating asynchronously. In this
mode the unit can be used to record or
reproduce data character by character
for data recording, collection, and
acquisition applications. In the continuous mode, the transport can be used
as a substitute for the tape transport
discussed previously in connection with
the tape transmission terminal.
The transport can therefore be used
to store data asynchronously and accumulate it over a period of time. The
unit can then be rewound and used to
supply the data at high speeds into a
data transmission system. In this
application a telephone facility can be
used for voice communications most of
the time, since data can be transmitted
at high speed during a small portion of

101
2.4

the day. A block diagram of the tape
transport is shown in Figure 9.
Conclusion
The applications for data communication systems have been discussed.
Equipment requirements have been discussed and examples of equipment meeting.
those requirements which have been developed by Stromberg-Carlson have been described. A special tape transport has
been described which has been developed
to meet a particular requirement in data
transmission systems, where it is desired
to accumulate data at a slow asynchronous
rate and deliver it at a rapid, synchronout rate so as to obtain full time usage
of a telephone facility.
The general approach being taken at
Stromberg-Carlson in the development of
card to tape, tape to tape, and card
to card systems 1s to arrive at a complete line of components which can be
interconnected in flexible fashion to
meet a variety of requirements for
specific data transmission applications.
References:
1.

J. L. Wheeler, "High-Speed Digital
Data Transmission", IRE Fourth National Aero-Com Symposium, Rome, N.Y.,
October 22, 1955.

2.

J. L. Wheeler, "Preparation, Transmission and Distribution of InformatiDn in an Automatic Data Communition System Utilizing Telephone Facilities", A:I:EE Empire District No.1,
1959 Spring Meeting, Syracuse, N. Y.,
April 29, 1959.

3.

F. DaVid, C. J. Zarcone, R.L. Wolfr,
"Card-to-Magnetic-Tape Data System",
AlEE Conference Paper CP60-917, 1960
Summer General Meeting, June 21, 1960.

4.

J. L. Wheeler, "Telephone Line Input
to an reM 704 Computer", IRE Sixth
Annual Communications Symposium, Utica,
N. Y., October 4, 1960.

102
2.4

WORK
STATION
A

WORK
STATION

B

STOCKROOM
A

INTERMEDIATE
COLLECTION
POINT

INSPECTION
STATION
A

TIMECLOCK

DATA COLLECTING SYSTEM

Fig. 1. Data Collecting System

COMPUTER
FACILITY

TEST
SITE
B

TEST
SITE

A
COMPUTER
INSTALLATION

TEST
SITE

ENGINEERING
LABORATORY

C

SCIENTIFIC DATA

Fig. 2. Scientific Data

r-.;>-

•

0

~w

t-:) t-'

·0
~~

Ir=

J

DATA TRANSMISSION TERMINAL
INPUT /
OUTPUT
DEVICE

.......

....

_

~

BUFFERCONVERTER

....

r-

.......

MODULATOR /

"''''

DEMODUL~ ..,
J

----------

________

c
M
DE

-----.: ----:p~1'\'\
1'f\~NSt.A\SS\ON

-I

DATA TRANSMISSION TERMINAL
JULATOR /
JDULATOR

....

~

......

BUFFERCONVERTER

....
.....

......
...

L
GENERALIZED DATA COMMUNICATION SYSTEM

Fig. 3. Generalized Data Communication System

INPUT /
OUTPUT
DEVICE

.:J

105

2.4

Fig. 4. Tape Transmission Terminal

106
2.4

Buffer-Converter Functions

Receiving

Transmitting
Parallel/Serial Conversion

Serial/Parallel Conversion

Generate SOR & EOR Characters

Check Lateral &

Synchronize Data Transmission Rate
and Tape Transport

Generate Retransmission Signal in
Event of Errors

Detect End of File

Synchronize characters to incoming
Data

Cause Data Record to be Retransmitted Upon Receiptof Error
Signal from Receiver

Generate EOR Gap
Detect End of File

Provides Intercom Capability

Provides Intercom Capability

Fig. S. Buffer-Converter Functions

Fig. 6. SC-301 Binary Data Transceiver

Longitudina~

Parity

lO7
2.4

Fig. 7. Card Transmission Terminal

108
2.4

Fig. 8. Computer Transmission Terminal'

109
2.4

.... DATA

......-

....

BUFFER

.....
~

.....

TAPE
~~

CONTINUOUS
DRIVE

CONTINUOUS
DRIVE
MODE

~~

"
CLOCK

... DATA
.,.

.....

BUFFER

-~

.....

AUTOMATIC
SPEED
CONTROL

.....

TAPE
~~

STEP-DRIVE
MODE
STEP COM MAND

.....

STEPPING
DRIVE

Fig. 9. Tape Transport Block Diagram

111
3.1

PARALLEL COMPUTING WITH VERI'ICAL DATA
William Shooman
System Development Corporation
Santa Monica, California

Summary
A novel technique called Vertical Data Processing (VDP) for the manipulation of data in digital
computers is presented. Multiple data are processed simultaneously one bit at a time using Boolean
operations. Many classes of problems appear adaptable to this technique.
A hypothetical VDP computer which embodies
both VDP and conventional techniques is proposed
and its advantages discussed.
Introduction
In the continuous quest for increasing the
speed of Electronic Data Processing Machines, two
distinct procedures are available. One is to
improve the hardware technology; the other is to
improve computer organization. This paper is concerned with the latter.
A novel technique for the simultaneous manipulation of multiple data in digital computers is
presented. This technique is called Vertical Data
Processing (VDP), in contrast to conventional
methods which will be referred to as Horizontal
Data Processing (HOP). Data organization for VDP
is described and a VDP machine defined. It is
shown that the time taken to perform VDP operations
is not a function of the number of numbers being
processed.

memory. These numbers are expressed in the computer by a mtrix of bits. In the usual matrix
(UM) each of the r numbers resides in one computer word, or row of the matrix. We have
investigated the advantages of expressing the
numbers by a matrix other than the UM; that is,
by the transpose of the UM (UM!'). In the UM!'
each number resides in a column of the matrix;
consequently, each of its bits is in a different
computer word. Since the computer has direct
access to computer words only, it is not possible
to obtain directly one of the r numbers. Instead
all r numbers are simultaneously processed one
bit at a time by means of the logical operations,
'and', 'not'} 'inclusive or', and 'exclusive or'.
It is clear that Boolean functions can be developed to perform the usual operations of conventional computers (a~ for example, has been done
for serial computers).
The VDP Machine
A VDP machine will now be defined as a
machine which has the hardware to perform computations directly by addressing the data orthogonally. A program simulating a VDP machine
which processes data in UM!' form was checked out
on the 709. The set of simulated instructions
included the arithmetic and logical operations
usual to HOP machines.~ The algorithm used for
the simulated add instruction is now shown.
Add Algorithm and Timing

A VDP machine which processes vertical data
is shown to have certain limitations which are
eliminated by a hypothetical computer design.
General specifications for the hypothetical
mchine (called the Orthogonal Computer) are
given. Descriptions and algorithms for several
VDP instructions (one of which is an add instruction) are given.
VDP logic is shown to be strikingly different
from that of HOP. Masks play the role of decision
functions with the result that there is virtually
no branching in VDP. VDP is applied to the follOWing specific problems; 1) an FICA computation,
2) finding the rank of a number in a sequence of
numbers, and 3) the translation of mnemonic operation codes to their mchine language representation. Time comparisons for VDP and HOP are made.
For these problems VDP ranges from 32 to 660 times
as fast as HOP. Finally a cost estimate for the
Orthogonal Computer is presented and some possible
input/output limitations are noted.

Given two sequences of numbers (A.) and (B.)
(1 S;

j ~

J

r), we want to compute the r sums S.
J

A. + B.. For the sake of simplicity we will asJ
J
surne that each number consists of precisely n
bits and is non-negative. Let (al j a 2 .••• a j)'
,
,J
n,
(b . b 2 .••• b .), and (s . sl .' •• s .) be
l,J
,J
n, J
0, J
,J
n, J
the binary representation of (A.), (B.), and (S.)
J

J

J

respectively. To compute Sj' we give an algorithm to compute si . (i = n, n-l, ••• l).
,J
Let
s.1,J. = a.1,J·0 (b i , j

e

C

i ,J.);

Data Organization for VDP
Suppose that we are given r numbers in

J

=

1

See Instruction List in Appendix.

c n,J.

= o·
J

112
3.1

Where CD stands for exclusive or and y. for
sive or.

~­

It is clear that all r sums can be simultaneously computed using this algorithm, if r is
equal to or less than the bit length of the
computer word. In a VDP machine such an add is
executed in 3~ + 1 memory accesses. The number of
memory accesses is a function of n (bit length of
the numbers being processed) only; in particular,
it is not a function of r (the number of numbers).
This important property is inherent in all ~P instructions and will be the basis for a hypothetical
computer design.
Limitations of Data in UMT Form
One limitation of the simulated VDP machine
is that the number of numbers that can be simultaneously processed is restricted to the bit
length of the computer word. Another limitation
is that data must be input in either the UMT form
(that is, vertically) which creates some difficulty; or in UM form and then transposed. Also, data
undergoing VDP is not suitable for HOP be9ause of
the data organization, although it is clear that
some ope~tions can be more efficiently performed
in BDP (for example, suming two numbers). These
limtations can be eliminated by a new computer
design.
The Orthogonal Computer
Consider a hypothetical machine consisting of
a conventional (BDP) ,machine of wor(l length L,
with the added capability of being vertically
addressable in some limited region of memory;
specifically in K nonoverlapping blocks, each
block consisting of R consecutive memory registers.
The vertical addtessing is to be restricted so
that an addreasable column consists of precisely
R bits and is contained in one of the blocks. Consequently there are exactly~times L addressable
columns. The central processor is to contain a
number of vertical registers (each register containing R flip-flops) and VDP hardware relating
these registers to the K blocks. While a computation is being performed in some of the K blocks,
input-output (I/O) may be going on in other blo.cks.
If data are input to a subset of the K blocks in
UM form, processJ.ng in parallel by means of vertical addressing satisfies the definition for a VDP
machine. This machine will be referred to as the
Orthogonal Computer.
Timing for an Add in the Orthogonal Computer
Suppose we have two sequences of numbers (Ai)
and (B i ) (l S i ~ R), each number of bit length n
and non-negative, and we want to compute the'R
sums Si = ~i + Bi • Let (Ai) and (B i ) be in one
or more of the K blocks (depending on the ratio
of n to L) in UM form. Let (ai,l ai,2 ••• ai,n)'
(bi,l bi ,2·.· b i,n)' and (si,O si,l· •• si,n) be the
binary representation of (Ai)' (B i ), and (Si)

Using vertical addressing and the
indicated change in subscript notation, it is
clear that the simulated add algorithm presented
above can generate the R sums (S.) in a subset of
the K blocks. The number of mem5ry accesses is
still 3n + 1. In HOp, 8 times R memory accesses
are generally required to obtain the Si' Consequently, for this type of add instruction, ,with
R equal to (on the order of) 1000, the Orthogonal
Computer r~ges from 55 (n = 48) to 500 (n = 5)
times as fast as HDP. It is to be noted that both
the VDP and. HDP mode may be used on the same data
in the Orthogonal Computer since data are input
in UM
~espectively.

form.

VDP Logic
VDP and HOP differ strikingly in their overall logical flow. THERE IS ESSENTIALLY NO BRANCHING IN VDP. Let us consider· a,'branch point in an
HDP program. Suppose that r numbers (A ) 1 ~ i ~ r
are being processed. Let the branch point partition the r numbers into two classes Cl ~nd C ,
2
(k numbers in Cl and therefore r - k in C~ such
that if Ai is in Cl , then Ai is to be processed
by computation Tl , and similarly if Ai is in C2,
then Ai by T2 • Figure 1 shows the branch in HDP.
In HOP the question must be asked for each Ai and
correspondingly one of the computations Tl or T2
performed. Assuming that as many as r numbers can
be simultaneously processed by VDP, a method is
now described whereby only the results of computation Tl on the numbers in Cl and of T2 on the
numbers in C are obtained.
2
Masking
Whenever a bit is written in memory during
any VDP operation, the bit must pass through a
gate. A gate is represented by a zero or one.
A gate is open (allowing pass through) if its
representative is a one. If its representative
is a zero, the corresponding bit location in
memory is left undisturbed. A string of representatives (bi ) 1 ~ i ~ r is called a mask. At
that point in VDP corresponding to the branch
point in HDP, a mask is generated such that b
i
is a one, if and only if the answer to the question for Ai is yes. Tl is now performed on all
r numbers USing the mask, which represents r
gates (k of which are open). Consequently, only
results of Tl on numbers in C are written in
1
memory. The mask is then complemented, resulting in a mask of.r gates (r - k of which are
open) • This mask is used similarly in the T2
computation on all r numbers, so that only results
of T2 on numbers- in C are written. Figure 2
2
shows the sequence of VDP operations.

113
3.1

'Compare 2:.' Used to Compute Rank

'Compare' Description and Algorithm
A set of instructions called 'compare' plays
a significant role in VDP on various levels. A
description of 'compare >' and its algorithm is
now given.
We are given r + 1
sequence (Ai)l ~ i ~ r,
again suppose that each
Qf bit length n. Let C
in binary form.

Let C

numbers consisting of a
and a cons:tant C. We
number is non-negative and
and the (Ai) be represented

= Cl C2 ··.C n'

and Ai

= ai,l

ai,2 ••• ai,n(1 ~ i ~ r). Let C' =
where Ct is the least significant
'Compare >' is to generate r bits

Cl C2 •••.ct (t'Sn),
zero bit of C.
(b ), such that
i
b i is a one, if and only if Ai > C. To compute
the r bits, we give the algorithm to compute the
th
i
bit. Let b =
i
ai,l *1 {a1 ,2 *2 [ ••• (ai,t_l *t-l ai,t)···]}'
using C' as follows. If the j th bit of C' is a
zero (1 S; j ::. t-l), *. is interpreted as inclu..Jl
-sive or; if it is a one, *j is interpreted as and.
Since the data is address;d orthogonally, it is
clear that all b (l ~ i ~ r) can be generated
i
simultaneously, provided that r is not too large.
The .number of memory accesses needed to execute
'compare >' in a VDP machine is t + 1 (t is the
bit length of C').
'Compare>' Used as Mask Generator
The following example shows how 'compare >'
is used efficiently in generating masks to be used
as decision functions. Suppose that we are computing the FICA deductions in a payroll program.
For each payroll period, 3% of total income is
deducted and accumulated for FICA until the accumulated total is equal to $144. Let r accumulated totals and $143.99 play the respective
roles of the (Ai)l ~ i ~ rand C in the 'compare>'
algorithm above. A sequence of r bits is generath
ted such that the i
bit is a one if and only if
th
the i
accumulated total is greater than $143.99.
This sequence of bits is complemented and then
used as the mask in the incrementing computation.
Consequently, only those totals that are less
than $144 are incremented. $143.99 is represented by 14 bits, the least significant six of which
are ones. Therefore t = 8 for this 'compare >'
and we need 9 memory accesses in order to execute
the instruction. For this problem, each time
'compare >' is performed in VDP, r comparisons
would be necessary in HDP. About 6 memory accesses are generally needed to perform a comparison.
For this function, the Orthogonal Computer is
approximately 660 times as fast as HDP for
r

= R = 1000.

Another interesting use for 'compare' is
given by the following example. We are given a
sequence of r numbers (Ai)l ~ i ~ r, nonnegative and of bit length n. We want to find
the number (k) of numbers in (Ai) that are less
than a particular number Aj in the sequence.
This number k is frequently referred to as the
rank of Aj in the sequence (Ai). To obtain the
rank of A ., we let the (A.) and A. play the resJ
1
J
pective roles of the (Ai) and C in the 'compare >'
algorithm, with an exception. Let a a ••• a be
n
l 2
the binary representation of A.. Let A! =
<
J
J
a l a ••• a t (t - n), where at is the least Sig2
nificant one2 bit of A.. This change results in
J

a 'compare:?' rather than 'compare > ' . The
generated r bits are then complemented obtaining
r bits such that the ith bit is a one, if and
only if Ai < Aj • These r bits therefore consist
of exactly k one bits and r, - k zero bits. The
execution time for an instruction giving the
count of the number of one bits in a given register should be equivalent to about two memory
accesses. Consequently, the time to compute rank
in the hypothetical machine should be approximately
equivalent to t + 3 memory accesses. In HDP, if
the (Ai) are not sorted, r - i comparisons are
necessary to compute rank. Assuming that r = R =
1000, the Orthogonal Computer ranges from more
than 115 (t = 48) to about 635 (t = 5) times as,
fast as HDP in computing rank in an unsorted
sequence.
VDP Applied to Compilers
Every compiler has within it an assembly
process. Let us suppose that a given machine has
N operation (op) codes. Let R mnemonic instructions be in one of the K blocks of the Orthogonal
Computer. The assembler must translate the instruction list from the menemonic to machine language. The result should be R machine language
instructions in another of the K blocks. Let
O. (1 ~ j ~ N) be the binary representation of
J

the jth mnemonic op code.

For each j, we perform

'compare =', comparing OJ against all R op codes.
The j th 'compare =' generates a mask (b.) 1 ~ i ~ R ,
1

such that b is a one, if and only if the op code
i
of the i th mnemonic instruction is equal to 0 .•
J

Using the machine language representation of OJ
as a constant, we perform 'constant

ins~rt'

on

2In the 'compare >' algorithm, Ct of C' is the
least significant ~ bit of C.

114
3.1
all R op codes using the mask. The' constant
insert' instruction duplicates a constant, R
times in a given block. Consequently, because
of the masFo, only those op codes that are equal
to O. are translated to the machine language
J
representation of 0.. After N 'compare ::;:' and
J
N 'constant insert' are performed, each of the
R mnemonic op codes will have been translated into
its corresponding machine language repr~sentation.

Orthogonal Computer. If K were as small as 3
(with a reasopable R), there would be few problems
for which the machine would ~ be severe1y I/O
limited. Flexibility with which ~o combat the I/O
problem increases with increasing K, for fixed R;
so does the cost of the machine. As R increases,
VDP computing time remains constant, but 'I/O time
per block and the cost of the machine increases.
These are some of the considerations involved in
choosing R and K.

If the mnemonic op code consists of three
6-bit characters, and the corresponding machine
language representation requires twelve bits (for
example, the 7090), then the number of memory
accesses required in VDP for the op code translation is 32N. In HDP, a search j s performed in
a table of N op codes, with an approximate average
of log2N comparisons for each op code. Approxi-

Acknowledgements

mately 8(10g2N) +15 memory accesses are needed to
find and translate each op code. For N = 60, and
R = .1000, the Orthogonal Computer is about 32
times as fast as HDP.
storage Econornoc by Packing Data
We" order the K blocks of the Orthogonal Computer, and also the L columns in each block from
most to least significant bit. We now linearly
order all KL addressable columns by demanding that
the last column in any block (excepting the last
block) directly precede the first column of the
next block. We can now think of these KL columns
as a matrix of R rows and KL columns. Suppose
that we have t sequences of data to process
(Ar) (1 $ i ~ R; 1 S j ~ t). For each j, let nj
be the bit length of the data in (Ar)'
t

E

j=l

n

j

.

Let N

=

It is clear that no generality is lost

in VDP, if the t sequences are packed into any
consecutive N of the KL columns, provided that N
is not too large.

This paper is the outgrowth of an idea originally conceived by GeEald Fine of the System Development Corporation. To rrry knowledge, Mr. Fine was
the first to foresee the possibilities of organizing data vertically. He initiated the VDP project
at SDC a little over a year ago. Thomas N. Hibbard,
who was a member of the project interested me in
VDP. Mr. Hibbard also did some of the early development work. It is a pleasure to acknowledge rrry
indebtedness to these two individuals.
The author also wishes to thank the members
of the Staff of the Center for Research in System
Sciences at SDC for their general assistance; in
particular, J. N. A. Hawkins who consulted on the
cost and engineering aspects of the Orthogonal
Computer, and Richard Brouse, Donald P. Estavan,
and Seymour Ginsburg for their constructive criticism.
Appendix
The Orthogonal Computer Instruction
A typical instruction consists of an op code,
three addresses (Ai)' and three parameters (Pi)'
Pi specifies the bit length of the corresponding
operand at Ai' Each Ai refers to one of the KL
addressable columns, to one of several vertical
flip-flop registers, or to a specified horizontal
register of flip-flops, say, the HDP accumulator4.
Some of the instructions do not use all the fields.
Instruction List

Cost of Orthogonal Computer

Timing5

Arithmetic
Preliminary investigation has begun in estimating the cost of the additional capabilities of
the Orthogonal Computer. The results are now
presented.
1
A memory consisting of 2 5 core locations,
each of bit length 48, was arbitrarily assigned
to the HDP computer whicp was used as a base for
the Orthogonal Computer. The estimate is that an
additional 35% to 45% of the cost of the HDP computer would be incurred for R = 512 and K = 16.
I/O LimitationSS
Computing is so fast using VDP, that input/
output limitations may be an acute problem for the

Add
Add magnitude
Substract
Substract magnitude

SA computer is said to be I/O limited, if a significant portion of machine time is spent waiting (i.e., not computing), while input/output is
being performed.
4

The HDP accumulator holds the constant used in the
'compare' instructions; it also permits adding,
substracting, mUltiplying, and dividing the numbers of a block by a constant.
5The approximate number of memory accesses exclusive of those necessary to fetch the instruction.

115
3.1

Instruction List (continued)

VDP

Multiply
Multiply magnitude
Multiply and accumulate
Divide
Divide magnitude
Compare

?

Compare greater than
Compare equal
Compare equal to or greater
than

The larger of
P and P
2
l

GENERATE
MASK FOR YES

PERFORM Tl
USING MASK

Move column
Constant insert
Logical
And
Inclusive or
Exclusive or
One's complement
Count ones

2
2

COMPLEMENT
MASK

2
2
1

PERFORM T2
USING NEW MASK
FIGURE 2

HDP

CQUESTION
YES
1,

COMPUTATION
Tl

'.

NO

COMPUTATION
T2

FIGURE 1

117
3.2

TABSOL
A FUNDAMENTAL CONCEPT FOR SYSTEMS-ORIENTED LANGUAGES
T. F. Kavanagh
Manufacturing Service s
General Electric Company
New York, New York

Summary
Lack of efficient methods for thinking
-through and recording the logic of complex information systems has been a major obstacle
to the effective use of computers in manufacturing businesses. To supply this need, this
paper introduces and describes "decision
structure tables, " the essential element in
T ABSOL, a tabular systems -oriente.d language
developed in the General Electric Company.
Decision structure tables can be used to describe complicated, multi-variable, mu1tiresult decision systems. Various approaches
to the automatic computer soiution of structure
tables are presented. Some benefits which
have been observed in applying this language
concept are also discussed. Decision structure tables appear broadly applicable in information systems design~
In addition, they are of intere st because they revise many earlier notions on
problem formulation and systems analysis
technique. Decision structure tables will be
an available feature in GECOM, General
Electric's new General Compiler, which will
be first implemented on the GE 225.

Introduction
Progress in computers can be broadly divided into two categories. First there is
the work that essentially accepts computers
for what they are, and directs its energies toward further refinement of the original hardware, and operating technique. Research to
improve recording density on magnetic tape
would certainly fit this description. In the
second category are the efforts to advance by
developing new areas of application. This latter work is directed toward generalizing the
concepts and hardware, so that they apply to
an ever -increasing span of problems and situations. Obviously, both groups are vital; but
it was this second stimulus -- the desire to

expand the area of economic application -which motivated the research reported in this
paper. While the earliest beginnings can be
traced as far back as June, 1955, the primary
research effort started in November, 1957,
under the title of the Integrated Systems Project. Leadership was assigned to Production
Control Service, a component in General Electric's Manufacturing Services. The basic purpose of the Project was to probe the potential
for automating the flow of information and
material in an integrated business system.
Then, as now, computers were making
significant contributions in many areas. Unfortunately, one of these areas was not, as some
would have it, in the operation and control of
manufacturing businesses. Important advances
were made in specific applications such as order processing payroll, and inventory recordkeeping; but these represented only a smeU1 percentage of the total information processing and
decision-making in even the smallest manufacturing firm. Still these early successes were
very important. They developed confidence in
computer performance and reliability; but even
more, they encouraged systems engineers and
procedures perf!lonne1 to continue computer applications research. Similarly, management,
under growing foreign and domestic competition,
rising costs, and a seeming explosion in paperwork requirements, saw intuitively -- or perhaps
hopefully -- that computers offered a possible
approach to improved productivity, lower costs
and sharply reduced cycle times. It was in this
environment that the Integrated Systems Project
began a compreh.ensive study of the decisionmaking and the information and material processing required to transform customer orders
into finished products - - a major part of the
total business system for a manufacturing firm.
The Decision-Making Pr.ob1em
Once underway, it was soon apparent

118

3.2
that there was an enormous aInount of decisionmaking required to operate a business. Indeed,
the number and complexity of these decisions is
perhaps the most widely underestimated and Illisunderstood characteristic of industrial information systems today. Tens-of-thousands of elementary decisions are made in the typical manufacturing business each working day. All are
necessary to guide and control the many functional activities required to design products, purchase raw material, manufacture parts, assemble products, ship and bill orders, and so on.
The typical factory is a veritable beehive of decisions and decision-makers; for eXaInple:
"What size fuses shall we use on
this order for XY Z Company?" -a product engineer's decision.
"What is the time standard for
winding this armature coil? "a manufacturing engineer's
decision.
"What test voltages shall be
applied? 11 - - a quality control
planner's decision.
"What should be the delivery
promise on this customer IS
order? II - - a production control
planner I s decision.
"How much will this model cost. "_an accountant's decision.
This list of elementary day-to-day
decisions could be expanded to cover all business activities. If this were done, the list
would cover hundreds of sheets of paper before
each activity listed all the decisions for which
it was responsible. Moreover, some of these
decisions are repeated Inany tiInes each day for
various sets of conditions. In the end result,
one cannot help but be iInpressed with the multiplicity of these detailed choices and selections.
But more importantly, making these decisions
costs money, in many cases more money than
the direct labor required to make the product.
In addition, business performance is greatly
affected by the speed and accuracy with which
this decision-making is carried out.
Composing a detailed list of these
elementary business decisions is more than an
academic exercise. For one thing, such an
analysis of an actual operating business will
demonstrate conclusively that these elementary
decisions are handled quite rationally (which is
somewhat contrary to popular opinion.) One

must be careful not to be wsled by quick, superficial explanations which gloss over fundaInental
reasoning. In our present-day manual systems
which emphasize files of quick answers, the
logic behind the decision is often left unrecorded. As a result it is easy to lose contact with
their rational nature, and frequently we tend to
feel these decisions are substantially more intuitive than is actually the case. At times, some
persistent as well as penetrating analysis (often
through extensive interviewing of the operating
personnel presently on pte job) is required to
uncover the true paraIneters and relationships
on which operating decisions are really based.
This arduous work is more than justified, for it
e$'tablishes a sound conceptual foundation for
automation, and hence the practical application
of the concepts and techniques developed in this
paper. Thus, once it is established that these
operating decisions are rational, it should follow
that they can be structured in a consistent logical fraInework. Such a structure is presented
in this paper.
Operating vs. Planning Decisions
At this point let us define terIllinology
a little more precisely, and stress that we are
speaking about the detailed, elementary decisions
required to "operate" a business as opposed to
"planning" one. First, a decision in its simplest form consists of selecting o}1.e unique alternative froIn an allowed set of possible actions.
Operating decisions are defined in the context
of this paper as selecting the appropriate CO\lrse
of action in accordance with given problem conditions to operate the business successfully.
Operating decisions may be assumed to be made
under "conditions of certainty. II The solution
for a specific set of problem conditions will always be the same. Under these preIllises, the
action or outcome decided on can always be predicted. In a pragmatic sense, the decision-making process may be classed as "causal"; that is,
B may be said to follow from A. For eXaInple,
an engineerls decision to install fuses might
follow from a customer's requirement for independent circuit protection.
The relevant factors or parameters
affecting the decision can also be determined.
The relationship values are known. For example, in most homes, the current carrying
capacity of the house wiring is the only parameter value one needs to know to select an
appropria.te fuse. In an industrial application,
however, the values of at least three additional
parameter s a.re usualLy required: voltage, time
and type of fuse mounting. The strategy and the
alternate outcomes are known; that is, the per-

119
3.2
missible fuses are known. To continue the illustration' the fuse selection may be li:mited to
tho se carried in the stockroom; otherwise the
bounds of the operating decision system are exceeded and the decision-maker would appeal to
a higher authority.
To approach the analysis of operating
decisions from another viewpoint, it might be
compared to a linear progra:m:ming problem,
and as will become evident, a linear program.:ming solution might be considered as somewhat
of a mathematical bound for the class of decision-making systems under discussion.
These operating decisions are quite
apart from the planning decisions of a business.
The "planning", "ad:ministrative" , or "policy"
decisions in a business are basically those
prior commitments which per:mitted all the assumptions about operating decision systems in
the preceding paragraphs (1. e. certainty, causality, known relationships, etc.) Some exa:mples of planning decisions are:
"Shall fuses, circuit breakers, or
both be used on the product line?" - a product engineer's planning
decision.
"Should this group of parts be
made on the screw machine or
from die casting s ? 'I - - a manufacturing engineer I s planning
decision.
"Should this component be inspected
before or after the milling operation? "- - a quality control planning
decision.
"What rule shall be used to determine the correct order quantity?" - a production control planner IS
decision.
"What is an appropriate cost -ofmoney? "- - an accountant's planning decision.
The se are typical planning decisions
made in designing an operating decision system.
To make the distinction clear, consider the design engineer who is motivated by cost considerations to put fuses on the economy part of the
product line, while specifying circuit breakers
on more deluxe models. Or consider the production control planner who selects one of the
co:m:mon square root formulas for deter:mining
a11 order quantities. Once he puts this decision

rule in the operating system, order quantities
for every part will be deter:mined using this
square root formula with specific value s for
cost, lead ti:me, usage shelf life, etc., appropriate to the specific item being ordered.
Assu:ming the operating decision system is automatic, and this is the intention, the production
control planner need not make any order quantity deter:minations himself. Rather he will be
watching the measures of operating system performance (inventory level, number of shortages,
ordering costs, etc.) to see how well his decision rule is working. Incidentally, it1s worth
noting that the production control systems designer will be using a "cost-of-money" figure
supplied by accountants and an annual requirements figure projected by salesmen. Of course,
the objective of this fundam.ental decision analysis is to suggest a conceptual scheme which will
per:mit automating all the routine operating decision-ma.kir1.g required to direct a business,
thus permitting the engineers, planners, and
other technical advisors, to concentrate on doing a better job in design.
Specifying Decision Systems
But great difficulties still remain. As
already pointed out, operating decision systems
are invariably large and complex, containing
multi-variable, multi-result decision problems
with sequence of solution difficulties thrown in
on the side. One serious problem. which arises
qu.ickly is the actual developm.ent of the decision
logic itself. Num.erous techniques have been
proposed ranging from. precise, legalistic verbal statem.ents to com.plex m.athem.atical equations. Among the se however, it appear s that
m.atrix-type displays and flow charts are the
most common. The matrix-type displays
appear under a variety of nam.es: collation
charts, tabulated drawings,. standard time data
sheets, etc. For exam.ple, engineers have frequently used collation charts to show direct relationships between end-product catalog numbers
and component identification numbers. Typically, however, co11ation charts are a tabulation
of past decisions rather than a description of
the logic used to derive them.. Matrix-type displays often suffer from. redundancy and frequently become large and unwieldy as operating tools.
Similarly, they m.ake no allowance to sequential
decision-m.aking.
Flow charts handle this sequence problem. very nicely. This graphic m.ethod describes
a decision system. by the extensive use of sym.boIs for "m.apping" the various operations. A
variety of flow chart techniques are used in
factory methods and office procedures work.

120
3.2
They are particularly effective in relatively
straightforward, sequential decision chains but
run into difficulty when describing multi-variable, multi-result decision processes. As an
illustration, ·£low charts have been used extensively to docum.ent the detailed logic of computer programs; but some harried computer programming supervisor s still maintain that the
best way to transfer program knowledge is to
reprogram the job. The difficulty of interpreting someone else's flow charts is certainly one
of the major trials in today's computer technology.

In addition to these more popular tools
numerous other diagramm.ing or charting techniques have been useful in limited problem areas.
However, the basic problem remained: there
was really no effective, uniform method for
thinking about and specifying decision systems
as complex as those required to operate a business •. To help solve this problem, the Integrated Systems Project developed a new technique
which combines key characteristics of earlier
methods and adds some new features of its own.
This new technique is called the decision structure table. The balance of this paper will describe what decision structure tables are, how
they work, and the results of their use in
General Electric.
Structure Table Fundamentals
Structure tables provide a standard
method for unambiguously describing complex,
multi-variable, multi-result decision systems.
Thus, each structure table becomes a precise
statement of both the logical and quantitative
relationships supporting that particular elementary decision. It is written by the functional
specialist in terms of the criteria or parameters
affecting the decision and the various outcomes
which may result.
A structure table consists of a rectangular array of terms, or blocks, which is further
subdivided into four quadrants, as shown in
Figure 1. The vertical double line separates the
decision logic on the left from the result functions
or actions which appear on the right. The horizontal double line separates the structure table
column headings or parameters above from the
table values recorded in the horizontal rows below. Thus, the upper left quadrant becomes
decision logic column headings, and is used to
record, on a one per column basis, the names
of the parameters (P Oj ) effecting the decisions.
The lower left quadrant records test values (Pij)
on a one per row basis, which the decision para-

meter identified in the column heading may have
in a given problem situation. The upper right
hand quadrant records the names' of result functions or actions to be performed (R. Oj ) as a result of making the decision, once agiln on a one
per column basis. Similarly the lower right
quadrant shows the specific result values (rij)
which pertain, directly opposite the approprfate
set of decision parameter values. Thus, one
horizontal row completely and independently
describes all the values for one decision situation.
There is, of course, no limit to the
number of columns (decision parameters and
result functions) in any given structure table.
Even the degenerate case where the number of
de'cision parameters goes to zero is permissible. Also there is no limit on the number of
decision situations (rows). Thus, the dimensions (columns by rows) of any specific structure table are completely flexible, and are a
natural outgrowth of the specific decision being
described. A series of these structure tables
taken in combination is said to describe a decision system.
Rather than become further involved in
abstract notation, let's consider some actual
illustrations to develop an insight into the nature
of structure tables. For example, the oversimplified illustrative structure table in Figure
Z. states that an elementary decision on transportation from New York to Boston in the afternoon
is (according to the person'who developed the
decision logic) a function of three decision parameters: Weather, Plane Space, and Hotel Room.
Weather has only two value states, Fair or Foul;
Place Space is either OK or Sorry; and Hote-l-Room can be Open or Filled. In terms of resuIts, ~ or Traina;e-the only permissible
means of Transportation. Following the illustrative problem, we see by inspection that the
solution appear s in the second row. Therefore,
'Train is the correct value for Transportation,
Other Instructions are Cancel Plane, and this
is the End of the decision problem.
The intent of this simple structure
table is to provide a general solution to this
particular decision situation, and if the problem
of afternoon trips to Boston ever arises (and one
assumes that it frequently does), then an operating decision can quickly be made by supplying
the current value of Weather, Plane Space, and
Hotel Room, and, of cour se, solYing the structure table. Solving a structure table consists
of examining the specific values assigned the
decision parameters in the problem statement
and comparing or "testing" these values against

121
3.2
the sets of decision parameter values recorded
in the structure table rows. Testing proceeds
cohunn by column froIn the first decision paraIneter to the last (left to right) and thence row
by row (top to bottoIn). If all tests in a row are
satisfied, then the solution is said to be in that
row and the correct result values appear in the
same horizontal row directly opposite to the
right of the double line. When a test is not satisfied, the next condition row is examined.
When a particular structure table' has
been solved, it is often necessary to Inake Inore
decisions. To specify what decision is to be
Inade next. the last result colUInn of the structure table tnay be assigned as a director to provide a link. to the next structure table. Notice
the last row in the illustrative structure table
whlch specifies that-for any value of Weather,
with no Plane Space, and no Hotel ROOIn, the
decision-Inaker is directed to solve the next
structure table, Transportation, New York-Boston, a. In. - - which is another structure table
describing how to select a Ineans of transportation in the Inorning.
In a sitnilar fashion, the systeIns designer would use a whole systeIn of structure
tables to describe a Inore realistic operating
decision probleIn. He cOInpletely controls the
contents of each table, as well as its position in
the seque'nce of total probleIn solution. He Inay
decide to skip tables, or, if desired, he Inay resolve tables to achieve the effect of iteration.
In any event, the entire systeIn of tables, just
as each individual structure table, will be solved using specific decision parameter values appearing in the probleIn stateInent. In other
words, solving a set of structure tables consists
essentially in re-3.:pplying the systeIns designer's
operating decision logic.
Having cOInpleted this quick and very
siInpUfied introduction to structure tables, let
us now return to consider each structure table
eleInent in greater detail. This will provide a
deeper insight into the power of the structure
table technique, as well as a better understanding of how they are used to describe operating
decision systeIns. The illustrations are drawn
froIn actual operating decision probleIns.
Structure Table Tests
COInparisons· or tests between probleIn paraIneter values (pv) and decision paraIneter test values (tv) need not be siInple identities, such as those used in the previous illustration. Actually the prob1eIn parameter values
Inay be cOInpared to the decision test values in

anyone of the following ways in any structure
table block:
EQ

pv = tv

prob1eIn value is equal to
test value.

GR

pv:> tv

probleIn value is greater
than te st value.

LS

pv

< tv

NEQ

pv

f.

GREQ

pv .) tv

problem value is greater
than or equal to test value.

LSEQ

pv

$.

problem value is less than
or equal to test value.

tv

tv

proble.IXl value is less
than test value.
probleIn value is not
equal to test value.

This broad selection of test types (or
relational operators as they are known technically) greatly increases the power of individual
structure tables and sharply reduces size. It
perIDits testing li.tnits or ranges of values -rather
than only discrete nUInbers. In Figure 3, TABLE
1000 uses several difference test types to bracket continuous and discontinuous intervals. Also
note in Figure 3, that the relational operator
may be placed in the test block immediately preceding the test value, or in the column heading
imm.ediately following the decision parameter
name. When this latter notation is used, the
relational operator in the column heading applies
to all test values appearing immediately below.
Test values are not li.tnited to spe<;i£ic
nUInbers on alphanumeric cOD;stants (indicated
by quotation tnarks); a test block may also refer
to the contents of any name. In this case of
cour se, the current contents of that named field
are compared to the problem parameter value
in accordance with the test type. For example,
TABLE 1005 in Figure 3 tests the current value
of INSUL~ TEMP against MAX- TEMP to Inake
certain that insulation temperature ratings are
satisfactory.
In addition to the se simple cOInparisons
it is also possible to formulate compound structure table blocks involving two decision parameters or test values using a relational or logical
operator.
The following logical operators tnay be
used:

OR

first test value or the
second test value.

122
3.2
AND

pV AND pV

I

2

NOT

fir st problem value and
second problem value.

cates that the result value
appearing in (or named by)
the solution row is to be
assigned or placed in the
field named in the column
heading.

fir st test value and not
second test value.

Also the truth or falseness of a compound decision parameter or test value statement can be te sted with the symbols:

T

true

F

false

Lastly, any arithr.netic expression
may be used in place of a parameter name, and
complicated blocks involving several names and
operators are also permitted. Although in this
latter case, it is worth noting that the language
capability far surpasses any requirements experienced to date in formulating operating decision systems.
In writing structure tables, the situation often arises where, except for one or two
special situations, one course of action is adequate for all input values. The concept of an
"all other" row was introduced to avoid enumerating all possible logical combinations of the
decision parameter values. The "all other" concept can be verbalized as follows: "if no solution
has been found in the table th.us far, the solution
is in this last row regardless of the problem
values." While this greatly reduces table size,
it also implies that the problem was stated correctly and does indeed lie within the boundaries
of the decision system. The related concept of
"all" which appears in the Transportation: New
York-Boston, p. m. can be similarly verbalized:
Ilregardiess of the problem value proceed to the
next column." It was introduced so that a given
table need not contain all permissible states of
any given decision parameter and also to handle
the case where a test in a given column had no
significance. In all the above situations the appropriate structure table blocks are left blank
signifying no test.

IICALCULATE II -

which is implied by the use
of an equal sign after a name
appearing as a result value.
This indicates that the results
of the formula evaluation named in the structure table block
should be assigned to the field
named as the re sult function
in the column heading.
Actually this is not the only
way to perform calculations
as any arithmetic expression
may be used as a result value.

PERFORM -

which performs the data processing or arithmetic operations referred to in the label
appearing in the result value
block. When this is completed, the next result function
is executed.

GO -

links the structure table to
the label appearing in the
re sult value block. There
is no implied return in a
GO function.

Most of these result functions are illustrated in Figure 3 and Figure 4. In Figure 4,
for example, TABLE 2000 assigns the alphabetic
constant IIFLAT-STRIP" to ASSEMBLE. In the
first and third result columns, arithmetic expressions appear as result values. In TABLE 2005
the implied CALCULATE is used for formula
evaluation. TABLE 2005 also uses the PERFORM function to solve TABLE 2008 or carry
out some other data processing operations depending on the particular solution row. TABLE
2005 is linked by the GO operation to TABLE
2010, 2015, 2020.

Structure Table Results
Similarly structure table results are
not limited to assigning alphabetic constants or
numeric values to the result functions or actions
named in column heading s to the right of the
double line. Actually there are four result functions:
IIASSIGN" -

which is implied when a
named field appears as a
result function. This'indi-

TABLE 1005 in Figure 3 shows an
interesting use of the GO function. After the
winding has been specified in TABLE 1000,
assumedly on a lowest cost basis, the product
engineer evidently wants to check the insulation
temperature rating with the maximum expected
operating temperature. If the insulation temperature rating should turn out to be greater
everything is fine and the decision-maker proceeds to TABLE 1007. If not, first TYPE-N
and then TYPE-T insulation are specified to

123
3.2
supercede TYPE-F, thus getting progressively
higher insulation temperature rating s by redirecting the structure table to solve itself.
Frequently, a result function-or action
will not have a value for all rows. This is common when several result functions are determined by the same structure table. In this situation
the phrase "not exist" has been used in verbalizing and the structure table block is left blank.
The use of formulas as structure
table results can greatly reduce the size of the
table. As an illustration, suppose that a given
result function has twenty-six values (10, 12,
14 16, ... 60). Ostensibly, the structure table
to select the appropriate result value would have
twenty-six rows. This decision could be reduced
to one row by calculating the re sult value as
some function of the decision parameter as
shown in Figure 6. Obviously, all result relationships are not so conveniently proportional
but a surprising number of result functions can
be described with simple linear ~nd exponential
expressions. The curve fitting problem can be
greatly simplified by using structure table rows
to break the curve into convenient intervals that
can be represented by such simple mathematical
expressions.
Preambles and Postscripts
Each structure table is preceded by a
heading which identifies the table by number and
indicate s its dimensions in terms of decision
parameter columns, result function or action
columns, and value rows. Tables may be numbered from TABLE I to TABLE 9999999 and
allowance is made for up to 999 decision parameter or result functions. Provision is also
made for 999 condition rows.
Following the heading is a NOTE which
may contain any combination of alphabetic or
numeric characters. The NOTE may be used to
give the structure table an English name and
provide a verbal description of the decision being made. Subsequent to this any labels naming
expressions or arithmetic calculations referred
to by "CALCULATE" or PERFORM operators in
the body of the structure table may be defined.
For example, note the definition of TIME , v 1 and
TIME I\" 2 in TABLE 2005 of Figure 4. The structure table proper follows BEGIN.
If no solution row is found in the structure table proper, or if the structure table has
executed all results or taken all actions without
reaching a GO function then control is passed
to the area directly below the structure table.

Here are recorded any special instructions pertaining to that particular decision. Of particular
note is the situation where no solution row has
been found. Such a failure is regarded as an
"error." In certain types of decision systems,
this may be exactly what the systems designer
intended. However, error conditions most often
indicate a failure of the decision logic to c;ope
with a certain combination of input values. The
systems designer should set up to notify himself
whenever such an error occurs by designing an
error routine which will provide him with a
source language printout identifying the table
that failed and the problem being solved at the
time. With this problem printout and the source
language structure tables, the systems designer
has all the data he needs to trouble shoot the
system in his own terminology. Thus, each
structure table should be followed by the statement: IF NOT SOLVED GO
~--~~-------~~
In this way any structure table
failures will always be uncovered. Frequently, the situation
arises, as mentioned earlier, that regardless of
the solution row, the next structure table solved
is the same. In this case the statement:
GO
. may be written after or
below the preceding error statement, to serve
as a wUversallink to the next structure table.
The areas immediately preceding and
suc ceeding the structure table proper may also
be used for input-output, data movement, and
other data processing operations.
The Dictionary
The precise name and definition of
each decision parameter and result function are
recorded in a "dictionary. II This dictionary becomes an important planning document in the
systems engineerls work for it provides the
basic vocabulary for communicating throughout
the entire decision system. The dictionary
should note a parameterls minimum and maximum values, as well as describe how it behaves.
If the parameter is non -numeric in nature, the
dictionary should record and define its permissible states. Significantly, the systems engineer formulates both the structure table and the
dictionary using his own professional terminology.
The dictionary will also prove useful
in compiling and editing structure tables for
computer solution. It also follows that problems
presented to the resulting operating decision
system must also be stated in precisely the
same terms as the structure tables. To those
as yet uninitiated to the perversity of computers,
this may seem a simple matter; unfortunately,

124
3.2
it is not. Interestingly however, one of the
more promising application areas for structure
tables appears to be in stating the logic for compilers and edit programs.
Summary
The foregoing description of decision
structure tables is not meant to be a fully definitive language specification. The intention is to
introduce the reader to the decision structure
table concept and to discuss their characteristic s in sufficient detail to provide the reader with
enough understanding to evaluate their inherent
flexibility and application potential. Many additional features are available which aid in formulating concise, complete decision structure
table systems and also to facilitate input-output
operations, but the reader will find that the
fundamentals already described are adequate
for structuring most operating decision logic.

Automatic Solution of Structure
Table Systems
Decision structure tables have proven
to be an excellent method for analyzing or formulating the logic of complex industrial information
systems, but after taking such great care to precisely record each elementary decision in this
highly structured format, it is only natural to
speculate on the possibility of solving structure
tables automatically with an electronic computer.
Before plunging into the computer world, however, it is worth noting that some systems engineers have had very favorable experience using structure tables on a manual basis -- especially as a problem analysis technique, and also
in limited applications in manual clerical systems.
Numerous methods for solving structure tables automatically suggest themselves.
First, the tables could be coded by hand. Such
an approach would use structure table s as a direct substitute for flow charts. Actually this
really isn't as bad as it initially sounds. Many
benefits would accrue from making this precise
readable format the standard method for stating
decision logic. It also offers the possibility that
a series of macro -instructions could be developed, thereby permitting untrained personnel to
code tables without detailed knowledge of computers or programming. However, this approach
suffers some distinct disadvantages in comparison with the other alternatives outlined below.
Second, a generalized interpretive
program could be written to solve any structure

table. This offers the possibility of using a
translator to work directly from keypunched
structure tables without any manual detail coding. This approach makes economical use of
memory since the basic programming to solve
any table appears only once and the structure
table itself offers a compact statement of decision logic. This reduces the amount of reading
time required to bring the problem logic into the
computer. File maintenance via recompiling
structure table tapes also appears quick and
simple. However, interpretive programs usually run more slOWly; and this implies some
penalty in total machine running time.
A third approach would be to create a
structure table program generator in which an
object computer program would be generated
from the source structure tables. This approach
would provide faster computer running time s
for :maxi:mu:m efficiency. A generator progra:m
would probably require :more co:mplicated coding
than an interpretive translator. In addition, the
generated object program would not be as concise as the structure tables themselves. However, where co:mputer running tiIne is of paramount concern, this approach has considerable
appeal.
Because of the available ti:me and
:money, all the early efforts of the Integrated
Systems Project toward auto:matic structure
table solution were essentially interpretive. It
is interesting that a si:mple, yet adequate, tabular systems-oriented language could be provided in this way for so:mewhat less than a man
year's effort. Si:milarly work to date in the
area of formula calculations indicates that a
comprehensive syste:m of mathematical notation
like that required for scientific work is probably
not necessary in :many operating business decision systems. Initial efforts on the IBM 702.
were followed with experimental TABSOL languages for the IBM 305, IBM 650 and the IBM 704.
The se applications to different computer s represented more than simple extrapolations to different pieces of hardware. In each an effort was
:made to expand capabilities of the language. In
addition, the peculiarities of the equipment were
explored, since one great concern was to free
the user fro:m a programming syste:m usable on
one and only one computer. As you :might suspect' this wasn't always completely possible on
the smaller computers, lacking tape or core
:memories. Nevertheless, the most recent
Manufacturing Service effort on the IBM 650
produced a language with named fields, indexing, a two-address arithmetic, co:mpletely
generalized structure table for:mats, and considering the alphabetic restrictions of the

125
3.2
equipment, remarkably flexible output formats.
Although "these experimental languages
proved quite adequate, one could not help but
look toward the tremendous power of one of the
more conventional languages. For one thing.
the prospects for structure table application in
other problem areas brightened. and it seemed
reasonable that this power would be desirable in
future work. Further our own tabular systems
language development had brought us to the point
of direct competition with the major language
efforts already underway. Here General Electric's Computer Department entered on the
scene. The Computer Department was developing a new concept in compiler building for use
with General Electric computers. The first
version of this new General Compiler, called
GECOM, will be available to GE 225 users in
May, 1961. It is designed primarily around
COBOL, with some of the basic elements of
ALGOL. and is now to contain all of TABSOL.
To state the results of joining TABSOL with
GECOM simply, it places the power of a fullfledged language at the command of every structure table block. Within General Electric, we
obviously have a very high regard for the contribution of decision structure tables in information
systems design. Significantly, the same committees who developed COBOL are now actively
investigating tabular systems-oriented languages
as the language of the future. By drawing on the
CODASYL work and utilizing the extensive research and development experience already
available within General Electric, the Computer
Department expects that GECOM will provide
users with a system compatible with both the
present-day common business language, COBOL.
and also the tabular systems-oriented language,
TABSOL. Incidentally, the decision structure
tables appearing in Figures 3, 4 and 5 are written in conformance with GECOM specifications.

Applications of Structure Tables
As somewhat implied in the illustrations a substantial amount of experience has
been gained in applying structure tables to a
wide variety of operating decision-making problems over the past three years. But perhaps the
most interesting experience, at least from the
researcher's point of view, was the very research work which spawned decision structure
tables themselves. Earlier, it was mentioned
that the Integrated Systems Project undertook a
careful study of the essential information and
material processing required to directly transform customer order s into finished products.
For example, the product must be engineered

prior to shipment, but the payroll, though revered by all of us can well be done at some qther
time, out of the main flow of events. Using this
rough rule of thumb, the following activities
were studied (Figure 7): order editing, product
engineering, drafting, manufacturing methods,
and time standards, quality control. co st accounting, and production control. These activities account for a fairly substantial portion of
the business system. Normally, they would include 100% of the direct labor and 100% of the
direct material as well as about 50% of the overhead. All the production inventory investment
lies within the scope of this system and obvious1y most of the plant and equipment investment.
Fortunately, the inputs and outputs to this system are simple and well-defined: the customer
order comes in and the finished product goes out.
With this in mind, it was possible to treat all
activities within these bounds as one integrated,
goal-oriented operating decision system and
develop decision structure tables accordingly.
Working with a small product section in one of
the Company's Operating Components, a significant portion of the functional decision logic was
successfully structured. Further the resulting
structure tables were directly incorporated into
a computer-automated operating decision system
which transformed customer orders for a wide
variety of finished products directly into factory
operator instructions and punched paper tape to
instruct a numerically programmed machine
tool. This prototype system was demonstrated
to General Electric management in November.
1958. Starting at the beginning, (Figure 8) the
computer system edited the customer order and
using the product engineer's design strU'cture
tables, developed the product's component char-acteristics and dimensional details. These in
turn were used in the manufacturing engineer's
operation structure tables to develop manufacturing methods and determine time standards.
And so the flow of information cascaded down
through the various business functions computing the quality control procedures, the product
costs and the manufacturing schedules; eventually issuing shop paperwork and machine program tapes.
Since the completion of this work
further research and development of the structure table concept was conducted in a variety of
functional areas for different kinds of businesses
in General Electric: defense, industrial apparatus, and consumer-type products. In addition.
structure tables have been used in entirely different applications such as compilers. They
also appear to hold great promise in complex
computer simulation prog rams.

126
3.2
specialists and systems engineers.
Structure tables also go a long way
toward solving the difficult systems
documentation pro blelll.

Benefits of Structure Tables
As a result of these efforts, we have
COllle to believe that the decision structure table
is a fundalllental language concept which is
broadly applicable to lllany classes of information processing and decision-lllaking problellls.
They offer many benefits in learning, analyzing,
£orlllulating and recording the decision logic:

1.

Structure tables force a logical,
step-by-step analysis of the decision.
First the parallleters affecting the
decision lllUSt be specified; then suitable results lllUSt be formulated. The
nature of the structure table array is
such that it forces consideration of
all logical alternatives, even though
all need not appear in the final table.
Similarly, the precise structure table
forlllat highlights illogical statements.
This simplifie s manual checking of
decision logic. The decision logic
emphasizes causal relationships and
constantly directs attention to the
reasons why results are different.
Personal design preferences can be
resolved and intelligent standardization can be fostered.
This is no lllean capability. Indeed,
it was very instructive to witness the
developlllent of methods and tillle
standards logic in parallel with the
development of the engineering logic
during the initial Integrated Systellls
Project study. Through analysis of
the decision structure tables written
by the various functional specialists,
everyone was able to achieve an insight into the product and the business
rarely obtained in so short a period
of tiIne. The facts of life in product
design, factory methods, and standardization were brought into the open
very rapidly.

2.

Structure tables are ea$i1y understood
by hUlllans regardless of their functional background. This does not
iInply that anyone can design or create
new structure tables to describe a
particular decision-making activity;
but it does mean that the average
person, with the aid of a dictionary,
can readily understand someone
else's structure tables. Thus, structure tables form an excellent basis for
communication between functional

3.

Structure table format is So simple
and straightforward that engineers,
planners, and other functional specialists can write structure tables
for their own decision-making problems with very little training and
practically no knowledge of computers or progralllm.ing. Given a few
ground rules, regarding formats and
dictionaries, the structure tables
written by these functional people
can be keypunched and used directly
in operating decision systems without ever being seen by a computer
programmer. This cuts computer
application costs as well as cycle
tiInes.

4.

Structure table errors are reported
at the source language level, thus
permitting the £uD.ctional specialist
to debug without a knowledge of computer coding.

5.

Structure tables solved automatically
in an electronic computer offer levels
of accuracy unequalled in manual
systellls. Note, however, that any
such mechanistic systellls lose that
tremendous ability of humans to
compensate for errors or discrepancies.

6.

Structure tables are easy to maintain. Instead of changing all the
precalculated answers in all the
files, it is often only necessary to
change a single value in a single
table. For example, when changing
the material specified for a COlllpOnent part under current file reference systems, it would be necessary
to extract, modify and refile all
drawings and parts lists calling for
any variation of the component part.
U sing structure tables, it would only
be necessary to alter those structure
tables which specified the component
material.

SU1ll1llary

In closing, we recommend that the
reader demonstrate the effectiveness of decision

127
3.2
structure tables to himself by "structuring" a
few simple decisions. For example, write a
structure table which will enable your wife to
decide how to pack your suitcase of any business
trip. Perhaps a simple business decision such
as those mentioned earlier would provide a more
instructive example. The first structure tables
are usually difficult to write, because most of
us do not, as a general rule, probe deeply into
the logic supporting our decisions. However,
once this mental obstacle is overcome, "structuring" facility develops rapidly. If the reader
will take the time to "structure" a few decisions
and actually experience the deeper insight and
clarity which this technique provides, then decision structure tables need no apologist, they
will speak for themselves.

Acknowledgement
In contrast to most technical papers
which essentially document only the work of the
author, this discussion reports on the efforts of
over seventy-five General Electric men and
women. In particular, credit is due Mr. Burton
Grad, who though no longer with General Electric, was a principal originator of the decision
structure table concept. Mr. Malcolm C. Boggs,
Mr. Daniel F. Langenwalter, Mr. Herbert w.
Nidenberg, and Mr. Theodore E. Schultz representing Service Components and personnel from
some fifteen different Operating Components
within General Electric have contributed toward
bringing these ideas to their present state of
development and application. Acknowledgement
is also due Mr. Charles Katz of General Electric's Computer Department who was instrumental in joining T ABSOL and GECOM.

128
3.2

Decision
Structure Table

.•. a re ctangular
array of terms,
or blocks •..

. . • vertical
dou ble line ....

Results or
Functions

Decision
Logic

Column headings
... horizontal
double line •••
Table Values

.... structure
table
values •••

POI

POZ

P

Pll

P 12

PZl
P 31
P41

ROI

ROZ

R03

R04

P13

r

r

r

r

P2Z
P 32

PZ3
P33

P42

P43

r2l
r
31
r41

Figure 1

03

1l

lZ

r22
r
32
r42

13

14

rZ3
r33

r24
r 34

r43

r44

129
3.2

Problem Statement:

Select Transportation, New York - Boston, p. m.
Weather: Foul
Plane Space: OK
Hotel Room: Open

Decision Structure Table:

Transportation, New York - Boston, p. m.

Weather

Plane
Space

Hotel
Room

Transportation

Fair

OK

Open

Plane

Foul

OK

Open

Train

Sorry

Open

Train

OK

Filled

Sorry

Filled

Other InNext
structions Decision

End
Cancel
Plane

End
Cancel
Plane

Solution:
If the value of Weather is Foul, and
the value of Plane Space is OK, 'and
the value of Hotel Room is Open,
Then
the value of Transportation is Train, and
the value of Other Instructions is Cancel Plane, and
the value of Next Decision is End.

Figure 2

End

NY -Bost.
a.m.
NY-Bost.
a. m.

w~

•

W

r-Jo

TABLE 1000. DIMENSION C4 A5 RIO.
NOTE TABLE FOR DETERMINING DETAIL VARIABLE PART CHARACTERISTICS FOR A
LINE OF SENSING COILS IN ACCORDANCE WITH CUSTOMER END PRODUCT
SPECIFICA TIONS.
INSUL
BEGIN.
INSUL
UNITS EQ
VALUE
VALUE TURNS
RESIST
SERVICE E
GR 180
LS 450
2.6*TURNS "TYPE-F"
"MAMP"
"DC"
O. ~/I

.

"DC"
"DC"
"DC"
"DC"
.

"MVLT"
"MVLT"
"VOLT"
"VOLT"

"AC"

"WATT"

GREQ
GR
GREQ
GR

45
150
0.9
300

LSEQ 150
LSEQ 330
LSEQ 300
LSEQII00

26
13
60
120

.008
.002
.002
.. 002

1.84
0.46
39.0
137.0

"TYPE-F"
"TYPE-F"
"TYPE-F"
"TYPE-F"

150
150
150
150

230

• 002

150.0

"TYPE-N"

200

IF NOT SOLVED GO ERROR"'COIL.
MOVE "COPPER" TO MATERIAL.
GO TABLE 1005.
END TABLE 1000.
TABLE 1005. DIMENSION C2 A3 R3.
NOTE TABLE TO MAKE CERTAIN THAT INSULATION TEMPERATURE RATING EXCEEDS
MAXIMUM OPERATING TEMPERATURE.
BEGIN.
INSUL
MAX"" TEMP
INSUL
INSU·L"'-' TEMP
GO
LSEQ INSUL"-'TEMP
GR INSUlJvTEMP
"TYPE-F"
GR INSUL-vTEMP
I
"TYPE-N"
IF NOT SOLVED GO ERROR'VCOIL.
END TABLE 1005.

"TYPE-N"
"TYPE-T"

Figure 3

200
250

TABLE 1007
TABLE 1005
TABLE 1005

TABLE 2000. DIMENSION C3 A3 R4.
NOTE TABLE TO SPECIFY VARIABLE FACTORY OPERATION CHARACTERISTICS FOR THE
INITIAL SENSING COIL WINDING FROM PART CHARACTERISTICS.
BEGIN.
SUPPOR TN TYPE EQ

MATERIAL

EQI

TURNS

tlSTARTkW I

" TABED-HOLE"
"COPPER"
TURNS
LS 100
2
" FLAT-STRIP"
"COPPER"
GREQ
100
" FLAT-STRIP"
TURNS/2
"COPPER"
" FLAT-STRIP'I
"ALUMNM"
TURNS
IF NOT SOLVED GO ERROR"'-"COIL. GO TABLE 2005.
END TABLE 2000.

I FINISH..vW

ASSEMBLE

"FLAT-STRIP"
"FLAT-STRIP"
'12 FLT-STRP'I

I

TURNS-2
TURNS/2

TABLE 2005. DIMENSION C2 A3 R3.
NOTE TABLE TO CALCULATE TIME STANDARD FOR PREVIOUS OPERATION.
TIME~l = 125*DIA*TURNS.
TIME"'2 =' 1000*DIA/SQR T (TURNS).
BEGIN
__ ~_GO
TURNS
TURNS
PERFORM
nME
LS 15
TURNS + 0.88
TABLE 2010
SETUP
GREQ 15
LS 100
TABLE 2015
TIME~l =
SETUP
GREQ 100
TIME-v2 =
TABLE 2020
TABLE 2008
IF NOT SOLVED GO ERROR4ICOIL.
GO TABLE 2005.

Figure 4
wI-'

•

W

t--:) I-'

w~

•
W
t-.Jt-.J

TABLE 1010. DIMENSION C2 Al R3.
NOTE COIL QUANTITY DETERMINATION.
BEGIN.
SERVICE EQ UNITS NEQ "WATTS" COII.rvQUAN
"AC"
"DC" OR flAC"
"DC"
IF NOT SOLVED GO
END TABLE 1010.

T
F
ERROR~COIL.

0
QUAN
2*QUAN
GO TABLE 1100.

TABLE 1500. DIMENSION C4 A3 RIO.
NOTE COIL LOAD DATA AND CYCLE TIMES.
BEGIN.
~ERVICE EQ
UNIT EQ
~CY EQ IINSP EQ
"AMPt)" UR "MAMPI'

"AC"

"AC"

"WATT"

1

In C-O MLTT

1

'COML"

"DC"
2
"AMPS" OR "MAMP"
2
"DC"
"VOLT" OR "MVLT"
"DC"
"AMPS" OR "MAMP"
1
IF NOT SOLVED GO ERROR-vCOIL.
MIN..... DATE = TODAY + MIN..vCYCLE.
NORMNDATE = TODAY + NORM~CYCLE.
GO TABLE 1510.
END TABLE 1500.

'I

"COML"
IIICOML"
"GOVT"

Figure 5

NORM-"'CYCLE IMIN4-CYCLEI COIL.-vLOAD
15
11
QUAN
15
11
2. 2*. QUAN
15
15
20

9
9

16

o. 9~c

QUAN
0.9* QUAN
1.4* QUAN

TABLE 1510. DIMENSION C2 A2 R3.
NOTE COIL PROMISE DATE DETERMINATION.
BEGIN.
COIL~LOAD

LSEQ
CUST DATE
CUM-vCAP (NORM.vDATE)1 GREQ NORM-1.IDATE
CUM.-vCAP (MIN"-'DATE)
GREQ MIN-vDATE
CUM""CAP (CUSTNDATE)
IF NOT SOLVED GO OVERLOAD.
END TABLE 1510.

Figure Sa

PRO:MISE
CUST"",DATE
CUST.iV DATE
CUST""DATE

GO
NORM""LOAD
RUSH....,LOAD
EMER~LOAD

W ......

•

W

[\.JW

134

3.2

P

R

0

10

1
2
3

12

P

P

R

14

16

·.
·.
·.

·
·
0

·

0

25

(2*p)

+ 10

o •

25

60

.0.

o
The use of form.ulas as structure table results can
greatly reduce structure table size, as shown by the si:mple
straight line expres sion above. Structure tables :may also be
used to partition cOIIlplicated curves into convenient seg:ments
as shown below.
0

/

- - - ---

II----i
!J

-

••

-- 1--=

-~ ~-- -- 1----~

I

r-

0

,1

V

0

I

,

I

PI

Pz

1>3

Figure 6

p

P

R

+a

0

PI

Ix

PI

P2

m.x

P2

P3

nx

.

+b
+c

135

3.2

PRESENT MAIN LINE SYSTEM

~

A

CUSTOMER ORDER

--------

REFERENCE

~.MO

EDIT

~ INFORMATION

____

~ PLANNING

J1%.

~

~

fB

CARDS

I

PRODUCT COST
FILES

V

PLANNING
AND WAGE RATE

~_

COST
~ DETERMINATION

~ ~INVENTORY

/~~

tm

CARDS
W////////~

~ORDER
/"/'l FI LES

=~I'&', VENDOR
....

OPERATOR

tI

MA:AL

Figure 7

~~~~&:~\~

MACHINES ~

136
3.2

INTEGRATED MAIN LINE SYSTEM

;z == ~

CUSTOMER ORDER

~------------~

ORDER TRANSLATION

TRANSLATION LOGIC

ORDER EDIT
PRODUCT DETAILS

PRODUCT DESIGN
STRUCTURE

METHODS AND
TIME STANDARDS

MANUFACTURING
OPERATION
STRUCTURE

QUALITY
PROCEDURES

QUALITY CONTROL
STRUCTURE

PRODUCT COSTS

COST STRUCTURE

I I

III

...

0

MAN, MACHINE AND
MATERIAL TIMING

MANUFACTURING
CONTROL STRUCTURE

VENDORS
SUPPLY
MATERIALS

MACHINES:
AUTOMATIC
OPERATOR RUN
• PARTS. SHIPMENT
• ASSEMBLIES • AUDIT

Figure 8

U

~

PROGRAM
~
TAPE
INSTRUCT .

137
3.3
THEORY OJ' !'ILES

*

Lionello Lombardi
University of California at Los Angeles

SUlJIDI8ry

The theor,r of files is a tool for the
logico-mathematical treatment of automatic nonnumerical data processing problems, such as
machine accounting, information retrieval and
mechanical translation of languages. The main
result which has been obtained sofar from the
application of the theory of files is the formulation of a Simple pattern to which the data
flow of any information processing procedure
conforms, regardless of how many files are involved. The flow of each file can be controlled
and coordinated with the flow of the other files
by means of five boolean parameters, called
'indicators' •
A specially designed Algebraic Business
Language exploits this result for the purpose
of programming digital data processing systems.
This paper also probes into the impact of the
theory of files upon the logical design of digital information processing systems.

velopment of suitable techniques, allowing the
adoption of reliable procedures and collapsing
the amount of work necessary for carrying
them out. We believe that this can be done,
and that the appropriate language for analy'ziDg
coordinated papervork can only be mathematics.
The purpose of the theor,y of files is to support this belief.
Today the theor,y of files, whose basic
definitions are stated inl, has been applied
only to investigation of a specific area of
paperwork control: the area of systems analysis,
namely of the analySis and definition of those
procedures which can be carried out by automatic data processing systems. The specific
problem of non-numerical data processing has
been emphasized, the main reason for this being
the Widely spread prejudice that this field
cannot possibly be approached scientifically.
Available Computer Languages

Introduction
The first step of any initiative yielding
to the scientific knowledge of a new field consists of the definition and development of a
language and of a notation able to describe the
phenomena which characterize such a field. In
particular, the adaptation and the adoption of
one specific language - the mathematical language - has been successfUl in several areas
where the need for a scientific investigation
existed.
That aspect of human activity which seems
to be growing the fastest (in such a way that
it sometimes threatens to minimize the importance of all the others) is the control of
paperwork. Paperwork is one of the most impressive products of civilized society; its relevance with respect to the other activities
swells with the progress of our econo.my and
technology in a way which is liable to jeopardize this progress itself. Paperwork is generally carried out by machines; however, the work
of organizing, coordinating, defining and describing it is still performed by humans. '!'he
proportion of the total available manpower that
it absorbs grows dangerously with the wealth
and sophistication of our SOCiety, '!'he phenomenon of paperwork control has reached the
stage where it should be investigated scientif- .
iCally, hope~ to repeat the success that
c~arable scientific approaches yielded when
they were applied to other fields, in terms of
promoting the knowledge, suggesting the de-

A wide selection of computer languages
designed with the aim of providing tools for
automatizing the programmer's work is available
today; however, it seems that none of these
languages can help the systems analyst. We
think that the main shortcoming of such languages (which range from Simple assemblers to
autocoders able to handle macros, and to such
languages as the IBM Commercial Translator,
COBOL,J'ACT, now-Matic or AIMACO), are all deSigned according to the ~attern that we called
'v. Nf!1llDIUlll Language' in : a v. Neumann language4 is a language in which a phenomenon is
described by means of a sequence of statements
divided in two categories - 'executable' statements and 'descriptive' statements - in such
a way that the statements of the first category can be put into a one-to-one correspondence
with a f'lowchart 5 of the procedure involved by
the phenomenon represented.
SUch a language can be used successfUlly
for describing l~outs of information supports
and sequences of actions, namely procedures
Unfortunately such l.a.ngua.gEB cannot possibly
provide for a synthetical and compact definition of the compound of logical conditions to
which ~ action is subjected, nor for the
synthesis of a coordinated flow of information.
lor instance, if we consider a language such as
COBOL and we try to use it for representing
integrated data proceSSing procedures, the follOwing shortComings come to light:
G•

138
3.3
(1)

(2)

Each statement has the form "IF condition
THEN action", vhere the action denotes a
sequence of steps and the condition denotes
a boolean expression. Nevertheless the
execution of the action is only apparently
fullY controlled by the condition, in the
sense that the value 'true t of the condition is necessar,y but not sutficient tor
the execution ot the action. Such execution
depends also upon the path ot the control
through the procedure description, i.e, on
the result ot several tests, same ot which
may have preceded by far the action in
. question. Since the possible path ot the
control are m;yriad.l then.. for determining the
circumstances under which a certain action
is to be executed, one should carefully
trace through all ot the procedure description. It is usually not practicallY teasible even to identify such circumstances,
nor to correlate an action to the original
input information. What is needed is a
language by which all of the conditions
affecting an action are compounded into a
unique statement: such a language aould not
possibly contain any control statements,
and consequentlY could not possibly be a
v. Neumann language.
Most documents are selt-explaining, as tar
as their patA between different procedures
is concerned. However, one ot the big
problems in systems analYsiS is the determination of when and under which circumstances a document is entered into or issued
trom a procedure. This Yell known problem
of efficientlY coordinating the data flow
becomes one of the main issues ot systems
a.nalysis whenever one vants to save computer time by increasing the degree of procedural parallelism. In COBOL, li~e in any
other v. Neumann language, the f'low of information can only be controlled by means
ot input-output statements, and by a proper
organization of the control statements, i. e,
by caretuJ..ly planning the flow of the machine control through the procedUre description. In such easy applications as
payroll, where the degree ot parallelism
cann6t possiblY be high, COBOL can be used
successfully. On the contrary, consider
applicatiOns in which, for the sake ot
saving computer time, several fUnctionally
independent procedures that relate only by
the tact that they operate on sets ot tiles
which are sorted with respect to the same
key- (1.e., they are equiordered), are run
in parallel: then the use ot such a language leads to long and exceedingly involved descriptions. Even in same conwaratively simple applications, where tor
exampleJ billing and accounts receivable (or
ordering and accounts payable) are run in
parallel, together with the updating of a
master tile and with the preparation ot
data to be used later by the management
(such as notes tor exceptional cases, re-

quested reports, or totals), COBOL can compare favorably to some of the available
autocoders as a programming language. However, it does not seem to be an appropriate
analysis language for such applications.
In cases vhere the degree of parallelism is
high and the data floy is complex, slich a
language should be discarded.

(3) Last and least, it appears that the use of
same type of kindergarten English, vhose
adoption seems to be due to the objectionable assumption that it is more readily
understood by top executives than any more
appropriate technical notation, is an obstacle to the use ot COBOL even as a programming language, because it yields comparativelY long procedure descriptions. However,
this last shortcoming is really irrelevant,
primarilY because it atfects COBOL onlY as
a programming language. Further this shortcoming can be removed easily tr0lll the language without a:ny major change in the logic
ot its translators. It has also been a
cammon experience ot individuals programming with COBOL that after a fey statements
one drops the English of the language and
uses abbreviations, especially for such
phrases as "IS GREATER THAN".
BaSic Ideas
In addition to the trend which finallY led
to COBOL, two independent ideas vere developed
in the past tew years. Both aimed at the creation of a system language suitable for describing non-arithmetic data processing procedures.
The first philosophy can be summarized as tollows: t We must algebrize the non-numerical procedures, in order to be able to applY to them 6
successful algebraic languages such as Fortran t
The other can be expressed in this vs:r: 'The
major problem in non-arithmetic data processing
is the one ot detining and COOrdinating the
data flow: betore ve can design a system language, we should discover and tormulate the
laws ot the data flow'.
The theory of f'iles is but a syntheSiS of
these two ideas: from a methodological standpoint the theory of files consists of expressing
and a.nalyzing algebraicallY the lays ot the data
flow.
'rhe starting point in the t'heory of :tiles
was the remark that if ve consider the merger
between two files ot records as a sum,while the
merger ot them with selection of all those records whose key is not present at least once in
both files as a product, then, under certain
circumstances, sets of equiordered files can be
reduced to boolean algebrae of files. In such
an algebra the most common file handling operations can be defined by simple algorithms: for
exampleJa k-~ sorting-by-merging procedure
(either tixed or variable length-sequence) is
represented as a recurrent summation of k files.

139
3.3

From a file-theoretical standpoint, a procedure is broken down into a sequence of PULSES,
at whose beginning new records are (logically)
entered, during which calculations are performed, and at whose end all the compl.etely
processed records are (logically) filed. Only
records whose keys all have the same value are
considered in a pulse. A sequence of pulses
during which all the records of all the files
involved in a procedure, whose keys equal a
certain constant, are processed, is called a
PHASE of the procedure.
!he language that we propose for describing procedures is the Algebraii BuSiness
LaDguage (ABL). It is described in , where the
basic concepts of the theory of files are defined mathematica.lly. In its siq>lest version,
an .A:BL procedure description consists of a
sequence of 'conditional. expressions', namely of
sets of executive orders ('actiOns') subject to
boolean expressions ( , conditions' ). 1'!lere are
no control statements, and the conditional expressions are to be considered sequentiaJJ.y8,
1. e., from the first to the last.

II can be accomplished si~ly by performing a
precedence analysis and a simplification of the
procedure deSCription. (Notice that this would
not be easy in a v. Neumann language).
In order to discuss point I, let us consider separately input-output.
Input. The pattern which maximizes the
input-parallelism is unique for arr:r phenomenon
of the kind we are considering. More preCisely,
it consists of the following:
1) No more than one record per each file
is entered during any: pulse.
2) Consistently vi th 1), a record belongi~
to any file 7 is entered as soon as it
is both logically available and all the
records pertaining to the current phase,
belonging to any one of the files which
precede 7 in the logical order, have
been entered.
3) A phase is over at the end of its pulse
during which the last record pertaining
to it is entered.
4) Logical input is only performed at the
beginning of the pulses.

Optimization.
Simplification. In each procedure, a LOGICAL ORDER ot the files involved must be given
by the anaJ..yst.
Definition 1: "Let us denote by DD the data
description of a given problem; then two procedures are 'DD - equivalent' if they both transform arty input organized according to DD into
the same output".
Definition 2: "A procedure P is called
DD - optimized' if, i1n the space {DD, p} of
all the procedures which are DD - equivalent to
P, P both
a) Max1:m:izes the parallelism of logical
input-output
b) Minimizes the amount of internal processing".
From an applicative standpoint, only' DD optimized procedures should be considered:
notice that the maximization of the parallelism
ot the physical input-output flow can be obtained only on the basis of a logical one whose
parallelism is maximized.
l(ow two pulses are

independent as
far as internal processing is concerned, and
two phases are alw~s independent as far as
input-output is concerned: consequently, in
order to DD - optimize a procedure, it is sufficient to
I) Ma.x1m1ze the parallelism of the logical
input-output within the pulse.
II) 1I1n1m1ze the amount of internal processing wi thin the phase.
alw~s

Since ABL is a sequential language, point

Since the input pattern is unique tor any
procedure of the type we consider, the analyst
is not burdened with the control of the input:
he can just forget about it. The only' ~ in
which the analyst using ABL can control input
is by designing the logical order of the files
properly.
ouput. Unlike input, which is :f'ulJ.:y
standardized and automatiC, output is entirely
and directly controlled by the analyst. In
fact, the conditions under which documents are
to be issued al~s depend upon the particular
phenomenon considered. Furthermore, the determination of these conditions can otten be
considered as the major single factor in the
representation of this phenomenon. Since it
is important to have these conditions compounded in a single synthetic expression tor
each output file, the output of each file is
controlled by a J'LOW CONTROL EXPRESSION, conSisting of the name of the file in question
followed by a boolean expression denoting the
condition under which a record of this file
is to be issued.
Indicators. The boolean variables used for
writing a procedure description (which are
compounded into boolean expressions in ABL,
while they consists of sets of parts of different statements in any v. Keumann language) may
have three origins:
a) They may be generated by comparison
between numeric, alphameric or boolean
entities.

140
3.3
b) They may be determinations of conditional variables.
c) They may be references to the current
configuration of the data now.
While no need arises for a special discussion of the conditions of the first two categories, we may point out that vhen any v. Neumann
language representation of a procedure is used,
such references are generated by means ot careful constructions and comparisons of keys. The
theory of files suggests that the layouts of the
keys of the files are given as part of the data
deSCriptiOns, and that the keys of the records
are constructed and related automatically to
each other as part of the I-~ operations: consequently, these operations are not under the
control ot the analyst. Since references to the
current status of the data flow are otten necessary for making decisions which condition the
phenomenon considere~'ABL must have a provision
for giving to the analyst complete information
about it. The configuration of the data flow
never changes during any pulse, and from a filetheoretical standpoint it can be fully characterized by stating the occurrence or omission of
five conditions for each one of the files involved. This can be done by means of INDICATORS,
five boolean variables per each file, whose value
never varies during any pulse.
Let us explain intuitively what each indicator of a file F stands for:
1) the 'EXISTENCE INDICATOR' of F denotes
the logical presence of a record of F.
2) The 'LEFT DERIVATIVE' and the 'RIGH'l'
DERIVATIVE' of F characterize those
records of F whose key has a value
which is dif:f'erent from the value of
the keys of all the preceding [foll~,
respectively] records of !'.
3) The 'INPtJ'lI - OUTPUT INDICATOR' of l'
by being "on" denotes those pulses
where a record of F is entered or issued.
4) The 'NON CONFOIOO:n INDICATOR' of F
characterizes those records of F which
are incomplete or non-conforming.
Four further indicators, which are CODDD.on
to all files, are available in each representation of a phenomenon for denoting its initiation and closure. No other information regarding the data flow is needed in any DD optimized procedure/in whose description the
indicators can be used without any distinction
from the other boolean variables.
The setting and resetting of the indicators (i.e., the 'indicator logic') is performed automatiCally according to the rules
stated inl (section 3), where the laws of the
automatic data flow control-in particular of
the input mechanism - are stated in terms of
relations between the indicators. The set of
values of the indicators in each pulse is a
synthesis of the data flow'control related to it,

and is obtained as a subproduct of the logical
operations involved by the input and output.
Though the analyst can neither set nor
-.reset any indicator, an indicator can be used
anywhere in the procedure description: in particular in the nov Control ExpreSSions.
Hardware and
Se~ential

~lementation

Languages

Like a mathematical synthesisot a physical
phenomenon can be stated by means of a sequence
of equations, so the theory of files allows one
to express a mathematical synthesis of a data
processing phenomenon in ABL by means ot a sequence ot condi tional expressions. In both
cases the sequence is considered fram the first
e~ation (or conditional expreSSion, respectively) to the last one. '.rhe flow control expressions are conditional expressions where the
action consists of issuing a record. Neither
the equations of an algorithm nor the conditional expressions of a non-arithmetic procedure
description are in a one-to-one correspondence
Wi th the steps of any path that a machine
con.trol would follow in order to carry them
out. Unlike any v. Neumann language, ABL is
'se~ntial' and.
asynchronous Wi th respect
to the ~ the procedures described are implemented. 0l1r study shows that languages having
this structure are generally more suitable than
v. Neumann languages for approaching data procESsing phenomena scientifically.

It one vants to utilize the theory of files
not just as a method of investigation but also
as a tool for the automation of systems analYs1s,
he must be able to develop mechanically sequential outlines into flow chart~ 1. e., into procedures. More precisely, one should be able to
transform the sequential representation of any
data processing phenomenon into a DD optimized
flow chart. Apparently this transformation
can quite easily be made because of the standard input scheme, and of the fact that each
conditional expression completely determines
one specific issue of the procedure, like the
presence of a record in an output file or the
value of a certain field of an output record,
etc. A difficulty arises when we consider the
interrelationship between the indicators of the
various files; for exampl~, the condition-part
of a certain conditional ~xpression, say EA.,
may depend upon the setting ot an indicator of
an output file whose records are filed under .
the control ot another :now Control ExpreSSion,
say EB, which comes af'ter EA in the sequential
description. Conse~ently, the sequence ot
operatiOns must be properly arranged in order
to avoid unnecessary look-aheads. Such rearrangements should not be performed by the
analYst, ·who should only be concerned With the
statement of the information processing effect
of the phenomenon, rather than With procedural
considerations or with any simplification of

141
3.3

the correlation among expressions. This simplification should be carried out by the machine,
together with the entry and removal of auxiliary
conditional expressions and with the optimization of the arithmetic for.mulae. This last
operation should not be bounded to the optimization of each single for.mula within itself, but
should consist of analyzing the relations between different expreSSions in order to avoid
unneeded repetitions. The study of Semapraxis
codifies the eflorts of analysists toward the
intelligent utilization of computers for such
machine simplifications. In particularlO by
Feldstein enunciates such details.
The ABL representation of a phenomenon can
also be mechanically checked against tautologies
and contradictions which may depend on an erroneous analysis of the phenomenon itself; for
instance, in the above example, if the phenomenon is coherently stated, EB should depend
neither directly nor indirectly on EA.
Special Devices.
Most stored program data processors are
provided with an operating system which includes efficient buffered input-output subroutines. Same data processors-the IBM 7070-74,
for example - have specific features (scatterread-gather-wri te, highly parallel memory bus,
block transmission with rearrangement, etc.)
which allow the programming of very efficient
I-¢ routines, including the necessary key logic.
In accordance with the adoption of same new
ideas in the design of machinery, (consider for
instance the non-arithmetic processor of the
IBM Harvest, Or the systems with a Fixed+Variable structure9 ) it is sometimes convenient to
wire such routines.l which become parts o;r modules
of the hardware.
When a system bas to carry out procedures
represented in ABL a similar alternative arises
for the indicator logic,which will be programmed for standard systems and built for more advanced and specialized ones.
A third case where the issue of a comparison between wired and programmed t giant commands' varies with the modernity and specialization of design of the basic hardware is related
to the handling of the compact and flexible
t table operations t with whose use ABL provides
the analyst (seel , section 2).
'rhe implementation of ABL is significantly
conditioned by the hardware considered: it
appears more difficult to carry it out for standard, strictly stored-program computers than for
more advanced ones. The generation of a program on the basis of an ABL representation is
more direct in the last case; we think that this
is due to the great deal of overlap among the
ideas which l~d the engineers to such advances
in systems design and those which yielded the
theory of files.

However, the indicator logic is new only
as a method. Most control statements and logical operations written by programmers using
COBOL or symbolic machine languages should be
considered as a clumsy, approximative and only
partially satisfactory replacement for a clean,
universal and fully automatic indicator logiC.
Let us conclude by pointing out that the
advantages of adopting sequential languages
does not seem to be bounded to the use of large
scale data processing systems. On the contraryl
such languages appear to be intimately related
to the nature of non-numerical data processing
phenomena, regardless of their implementation;
for example, a sequential language quite similar
to ABL proved to be well suited for representing
procedures to be carried out by very simple,
externally programmed data processors3.

'*The preparation of this paper was sponsored by the Office of Naval Research. Reproduction in whole or in part is per.mitted for any
purpose of the United States Government. The
author also wishes to express his gratitude to
M. Alan Feldstein for his help in the preparation of this paper.
References
1.

L. Lombardi, "Mathematical structure of NonArithmetic Data Processing Procedures"
(Forthcoming in J.A.C.M.).

2.

L. Lombardi, "System Handling of Functional
Operators" (Forthcoming in J.A.C.M.) •

3.

L. Lombardi, "Inexpensive Punched Card
Equipment" (Forthcoming.) •

4.

H. Goldstine, J. v Neumann, "Planning and
Coding for an Electronic Digital Computer"
(LA.S., 1948).

5.

IBM Staff', "Flow Charting and Block Diagramming TechniqueS' (c20-Bo08).

6.

Notice that Fortran is also a "v. Neumann
language" •

7.

seel , section

8.

Another t sequential language twas conceived
independently of us by C. B. Tompkins with
the collaboration of M.A. Melkanoff and J.D.

4.

SWift.

9.

G. Estrin, "Organization of Computer Systems
- The Fixed plus Variable structure Computer"
(Proc. of the 1960 WJCC).

10. M.A. Feldstein, "Semapraxis" (Forthcoming~.

143
3.4

POLYPHASE MERGE SORTING -- AN ADVANCED TECHNIQUE
R. L. Gilstad
Minneapolis-Honeywell Regulator Company
Electronic Data Processing Division
Wellesley Hills, Massachusetts
The Challenge
Designers of generalized library sort
packages for the current and future generations
of computers are faced With the challenge of
developing new techniques that provide more
effective use of these computers. The major
concern in developing efficient sorting routines
in the past has been the internal sorting techniques, that is, the methods of manipulating the
data wi thin the memory of the computer. Precise
methods must, of course, be devised for each new
computer design but, due to the extensive effort
in this area in the past, few new internal sorting techniques have been introduced for, what
are in computer terms, generations.
Emphasis is now being given toward more
effective use of the tape drives used by a sort
routine. Progress toward this end was reported
in the paper "New Merge Sorting Techniques It ,
presented by B. K. Betz at the September 1959,
ACM Conference. The paper then presented
described in theory an advanced merging technique, originally called the !tN-lIt technique,
now a proven method better known as the Cascade
sorting technique.
The intention of this paper is to introduce
a new merging technique, polyphase sorting. The
following section describing the application of
the Cascade sorting technique is included to aid
in the understanding of the evolution of the
polyphase sorting technique and to prepare for
certain comparisons later in this paper between
the various sorting techniques. A complete study
of the changes in merge sorting would, of course,
include a description of the process that is
referred to in this paper as normal merge sorting and that has such names as two-w~ merge
sorting and three-w~ merge sorting. Because of
the extensive use of normal merge sorting techniques, this paper assumes a general understanding of them by those interested in this subject.
Cascade Sorting
The Cascade Merge Sort, available exclu~
sively in the Honeywell 800 automatic programming packages, is a two-segment program, the
first part of which is an internal sort that
creates strings of ordered items. The internal
sorting method that has proven to be most advantageous to Honeywell for generalized sort generators uses the "tag bin It concept which transfers
internally only a tag representing each item
stored in memory, instead of transferring the
entire item. Further, the "replacement" sorting

method is added, which creates strings of
ordered items substantially longer than the number of items stored in memory. This method, in
fact, provides strings averaging twice the number of items stored in memory for randomly
ordered input data and longer strings if any
pre-ordering exists in the input file.
The only real difference between the internal sort, hereafter called the pre-sort, for
Cascade sorting and normal sorting is the manner
of distributing the strings onto the work tapes
used by the sort. Normal merge sorts require
that the strings be distributed alternately on
two work tapes for a two-w~ merge sort, or on
three tapes for a three-way merge sort. The presort for a Cascade sort distributes the strings
of sorted records onto all but one of the work
tapes available to the sort. The ideal distribution at the completion of the pre-sort is such
that there are fewer strings on each succeeding
tape. The exact distribution is based on one of
several sequences, depending on the number of
tape drives being used. The sequence for the
three-tape sort is the Fibonacci sequence:

1,1,2,3,5,8,13,21•••••••• ,
while the sequence for a four-tape Cascade sort
is the sequence:

1,1,1,2,3,5,6,11,14,25,31••••••••
If the pre-sort for a four-tape Cascade sort
creates 14 strings, the distribution of strings
on the three work tapes would be six strings,
five strings, and three strings.
The determination of the distribution of
strings by the pre-sort can be in the form of a
pair of counters for each tape being used as an
output tape. One counter for each of the tapes
contains the ideal distribution for one merge
pass, while the second counter contains the total
number of actual strings written on each tape.
Strings are written onto each tape until the pair
of counters for that tape are equal. When all of
the counters are equal for one ideal distribution,
the ideal distribution counters are updated to the
values for an additional merge pass. The flow of
the distribution process and the use of the
counters is shown for the pre-sort for a fourtape Cascade sort in Figure I.
The second segment of the Cascade sort is a
merge sort, during which each pass over the file
begins with an N-1 ~ merge (where N is the
number of tapes available to the sort) that continues until the work tape with the least number

144
3.4

of strings is depleted. As each tape is depleted,
the way-merge is decreased by one until the pass
is concluded by a one-way merge (copying),
depleting what was the longest work tape.
Many methods for demonstrating the flow of
information through a merge sort have been developed and used, none of them to the satisfaction
of this writer. A picture does, however, replace
a thousand words, so a Cascade sort is pictured
in Figure II using numbers representing the number of strings on each tape at each step of the
sort.
The power of this sort technique is derived
from the fact that a larger percentage of the
file is merged during the most powerful waymerge than is merged during the later phases of
the pass; more specifically, for a four-tape
sort, 52% of the file is merged during the threeway merge, 36% is merged during the two-way merge
and only 12% of the file is involved in the copy
portion of the pass. A normal four-tape merge
sort is continually performing a two-way merge,
giving it a merging power of 2. The Cascade sort
for a like number of tape drives has a merging
power of 2.3. That is, it reduces the number of
total strings by a factor of 2.3 each pass.
A further advantage of the Cascade sort,
which is implied above, is that an odd as well as
an even number of tape drives, and as few as
three, can be used to full advantage.
The sort routines described above assume a
read-backward merge sort, which eliminates the
need for rewinding during the sort, but which
requires the copy portion of each pass in order
to reverse the order of the remaining strings on
the long work tape. (A read-backward sort must
switch the strings from ascending order to descending order on successive passes.) The same
Cascade method is available for a read-forward
merge, which must, of course, rewind certain
tapes during and between passes. This allows the
elimination of the copy portion of each pass, as
all of the strings are always in ascending
order. In order for a read-forward Cascade sort
to retain a time advantage over normal readforward merging, tape rewinding must be a faster
process than the tape reading process. All of
the comparisons between normal merging and
Cascade sorting involving rewinding are based on
the Honeywell 400, which has a 3 to 1 ratio of
rewind speed over reading speed.
Polyphase Sorting
Further advancement in the efficient use of
the tape drives used by a sort has developed
from the Cascade sort. This new sorting technique is called the polyphase sorting.
The polyphase sort, like most merge sorting
methods, is a two-segment program, a pre-sort
segment and a merge segment. Again the pre-sort
distributes the ordered strings onto all but one

of the available tapes, based upon one of several
sequences. The sequences for the various tape
drive configurations are as follows:
3-tape 1,i,2,3,5,8,13,21 ••.•••• (It is noted that
this is the same sequence as for a 3-tape
Cascade sort. Indeed, a .3-tape readforward Cascade sort is the same as a 3tape polyphase sort.)
4-tape 1,1,1,2,2,3,4,6,7,11,13,20,24 •••••••
5-tape 1,1,1,1,2,2,2,3,4,4,6,7,8,12,14,15 •••••••
6-tape 1,1,1,1,1,2,2,2,2,3,4,4,4,6,7,8,8,12,14,
15,16 ••••••••
During the merge segment of a polyphase sort,
a continuous N-l way merge is performed. At the
beginning of the polyphase merge segment, the N-l
way merge is performed until the tape with the
least number of strings is depleted. At this
point, instead of switching to an N-2 way merge
as in the Cascade sort, an N-l way merge is continued, merging additional strings from the tapes
not yet depleted, with strings from the tape just
created. Because this process is continued
throughout the merge, there is no point that can
be called a complete pass over the file. Instead,
there are a series of phases, wherein some strings
from a number of previous phases are merged
together.
The four-tape polyphase sort example in
Figure III shows the effect of this technique
through an entire sort. The numbers given in the
example represent the number of strings at each
of the various phases of the sort.
Comparing the Merges
The power of a polyphase sort is not easily
discernible or readily comparable to other sorting techniques, due to the fact that the phases
described above cannot be compared directly with
the passes of the other techniques. A normal
two-way merge sort, for example, processes the
entire file being sorted during each merge pass
and in so doing, reduces the number of strings
by one-half. Another way of stating this is that
during each merge pass the length of each string
is doubled. This is abbreviated by stating that
a two-way merge pass has a power of two. Each
step shown in the polyphase sort example processes
only a portion of the file. Therefore, while it
can be determined from the tables in Figure IV
that a four-tape polyphase sort has a power of
1.88 per step as compared with a power of 2.0 for
a normal sort using four tape drives, the polyphase is significantly faster because it processes only 62% of the file during each step as
compared to the 100% processed during each step
of a normal sort.
Figure I contains two tables which show the
total number of strings that are merged together
for the given number of steps of the merge sort

145
3.4

for four- and six-tape normal, Casoade, and polyphase sorting. The tables also give the peroentage of file prooessed for eaoh step (phase).
This peroentage is the average for a number of
phases in the case of polyphase sorting, the
speoifio values varying slightly from phase to
phase.
Further oomp1ications in the oomparison of
the power of the several sort teohniques include
the internal maohine speeds, the amount of simultaneous operation, whether the sort must ino1ude
tape rewinding, and if so, the relative rewinding
speed of the tape meohanism. Figure V relates
normal, Casoade, and polyphase sorting as performed on a oomputer capable of reading baokwards
and performing all prooessing at full tape speed.
The figures for the polyphase sort have been
equivalenoed to the same peroentage of file processed as for the normal and Casoade sorts.
Figure VI desoribes graphioally the relationship of the power of the three sorting teohniques. The graph shows the number of passes
over the file required to merge a given number of
strings together into one string with four tape
drives.
No attempt has ~en made to date to implement a read-backward polyphase sort. The delay
in doing so is caused by the neoessity to alternate asoending and descending strings on eaoh of
the work tapes during the pre-sort. This alternation of strings destroys the advantage of a
variable length string pre-sort whenever some
degree of pre-ordering exists in the input to the
sort routine. Pure random input data would be
sorted faster with a polyphase sort, but experienoe indicates pre-ordering to some extent
exists on the majority of files to be sorted.
Read-Forward Merging
Merge sort routines for oomputers that allow
only read-forward tape operations must rewind a
oertain percentage of the file between suoceeding
steps of the merge. A normal two-way merge, for
example, rewinds the entire file after each pass
of the merge, but, because the file is distributed
evenly on two tapes that can be rewound simultaneously, the rewind time for eaoh pass is onehalf of the time to rewind the entire file.
A read-forward Cascade sort rewinds a larger
percentage of the file eaoh pass than does a normal sort, but retains a time advantage beoause it
does not process the entire file eaoh pass. A
four-tape, read-baokwards Cascade sort performs a
three-way merge over 56% of the file, then must
rewind the newly created output tape and the
input tape that was depleted. The rewind of the
depleted input tape, which del~s the operation,
is over 19% of the file during the first pass.
The Cascade sort then performs a two-way merge of
34% of the file and rewinds the same percentage
of the file. The remaining 10% of the file on
the third tape becomes input to the next pass and

is not prooessed during the our rent pass. After
the three-way merge on the seoond and all suoceeding passes, the input tape to be rewound ino1udes
information used during the three-w~ merge and
two-way merge of the previous pass as well as
during the three-way merge of the ourrent pass.
This amounts to 56% of the file. Normally, therefore, the Cascade sort processes 90% of the file
and rewinds 90% of the file during eaoh merge
pass.
A read-forward polyphase sort rewinds the
same percentage of the file that it prooesses
each phase. A four-tape read-forward polyphase
sort processes and rewinds 62% of the file during
eaoh phase. As did the Casoade sort, the polyphase sort depends upon a faster rewinding process than merging process to maintain its full
advantage over normal sorting.
Conclusion
The two new merge sorting techniques pre- .
sented here are now working programs, proven to
be the tools for a more effioient computer operation. Cascade sorting provides the effioiency
for read-baokward operations. Polyphase sorting
provides the effioiency for read-forward operations and in the future oan provide the efficienoy for read-baokward operations in cases
where the file to be sorted has been determined
to be in random order.
There is one hardware prerequisite which
should be mentioned, whioh is neoessary to obtain
the full advantage of Casoade and polyphase sorting. If reading and writing are to be simultaneous, the sort must be able to read from one
tape and write on another in aQY oombination
involving the tapes used by the sort.
It is worth noting that improved approaohes
to the common, everyday oomputer problems are
still being found in an era where the emphasis is
on new uses for computers and new designs for
computer hardware.

146

3.4

Ideal Distribution Counters
(Total Number of Strings)

Distribution of Strings
(Successive String Numbers)

Tape A

Tape B

Tape C

Tape A

Tape B

Tape C

One merge pass

1

1

1

1

2

3

Two merge passes

3

2

1

4,5

6

Three merge passes

6

5

3

7,8,9

10,11,12

13,14

Four merge passes

14

11

6

15-22

23-28

29-31

Fig. 1. String Distribution for a Cascade Sort

Tape A

Tape B

Tape C

Tape D

14

11

6

o

Output from pre-sort

o

6

After three-way merge of 6 strings

2-

(6)

After two-way merge of 5 strings

(5)

(6)

After copy of 3 strings

8

3

o

o

End of first pass

o

2

3

After

2

o

1

After two-way merge of 2 strings

(2)

1

o

After copy of 1 string

three-w~

merge of 3 strings

End of second pass
2

1

o

1

1

o

1

(1)

After two-way merge of 1 string

o

1

(1)

(1)

After copy of 1 string

After three-way merge of 1 string

End of third pass
1

o

o

o

After three-way merge of 1 string
End of sort

Note:

All numbers represent the number of strings on each tape at each
step_ The underlined numbers are the output at each step_
Fig. 2. Cascade Sorting.

147
3.4

Tape A

Tape" B

Tape C

13

20

24

7

11

13

4

6

After three-way merge of 7 strings

2

After three-way merge of 4 strings

7
3

l±

1

2

2

1

1

Tape D
Output of pre-sort
After three-way merge of 13

5 trings

After three-way merge of 2 strings
1

After three-way merge of 1 string
After three-way merge of 1 string

1

Fig. 3. Polyphase Sorting.

Table B -- Six-tape Sorts

Table A -- Four-tape Sorts
Steps
1
2
3
4
5
6
7
8
9
10
11
12

% of file
processed
per step

Normal

Cascade

Polyphase

2
4
8
16
32
64
128
256
,12
1024
2048
4096

3
6
14
31
70
157
353
793
1782
4004
8997
20,216

3
5
9
17
31
57
10,
193
3,5
653
1201
2209

100%

100%

Steps
1
2
3
4
S
b

7
8

Normal

Cascade

Polyphase

3
9
27
81
243
729
2187
6561

15
,5
190
671
2353
8272
29,056

5
9
17
33
65
129
2,3
497

% of file
processed
per step

100%

,

100%

55%

62%

Fig. 4. Number of Strings Merged.

Table of power of read-backward sorts with a tape limited operation.
Power of
Normal Sorting

Power of
Cascade Sorting

Power of
Polyphase Sorting

3 tapes

1.5

1.61

1.80

4 tapes

2

2.30

2.79

5 tapes

2.5

2.94

3.44

6 tapes

3

3.62

3.86

Number of Tapes
Used by Merge

Note:

The power of a sort, as used here, is the factor by whiCh
the number of strings decreases for each full read time
of the file being sorted.
Fig. S. Power of Three Sorting Techniques.

148

3.4

'lit
CD

0
W

(!)

0:
W

:E
C\I
rt)

C/)
(!)

~

0:
t-

en

lL

0

!e

0:
W

m
:E
:::>
Z

Fig. 6. Comparison of Three Sorting Techniques.

149

3.5
THE USE OF A BINARY COMPtJrER FOR DATA PROCESSING
By:

Gomer H. Redmond, Manager, Corporate Systems and
Procedures Department, Chrysler Corporation
Dennis E. Mulvihill, PH.D, Senior Consultant,
Touche, Ross, Bailey & Smart

Summary

On the other hand, the decimal mode machine
arguments center around the following:

Considerable discussion has been generated
concerning the use of binary computers for purely
data processing functions rather than decimally
oriented machines. The purpose of this paper is
to present a case for the use of binary machines
for data processing based on our experience at
Chrysler.
Based on experience gained by the Chrysler
Corporation, the paper discusses the need for
the establishment of a consistency of concept
for all phases of problem organization and
solution.
Specific advantages inherent in binary
machines are pointed out, along with some of the
pitfalls which would result if the consistency
of concept is not maintained.
In their treatment of this subject, the
authors also sound a warning to those concerned
with the development and use of generalized business oriented languages that certain abilities of
binary machines have not been exploited in these
programs.
In ~eir·conclusion, the authors state that
the abilities of binary-type machines will become
more indispensable as management techniques,
extant to~, become more sophisticated and
acceptable.

*

*

*

There is an unresolved controversy as aired
in past issues of the A.C.M. Communications,
journals, sympoSiums, conclaves, and sundry other
learned gatherings as to the superiority or inferiority of binary or decimal mode computers in a
data processing situation. Both have enjoyed
sufficient success in the field to warrant a further look at the controversy.
Let ~s examine some of the arguments offered
for each type of computer. The binary mode machine is said to have the following attributes:
1. Scaling ability allowing information
representation to be in any format;
2. Arithmetic circuitry is more efficient
in design and speed;

3.

Compactness of data in memory;

4.

Tape compression factor.

1. No transformation required between
internal and external representation;
2. Machine language is readily understood
by people;

3. Variable length fields are more advantageous to business-type problems.
The above points, from both sides, can be
well taken; however, the arguments have been
abstracted from the environment in which business data processing is being used, that is, the
productive use of data processing as a means to
efficient business management. This is the
arena where efficiencies and deficiencies of data
processing machines can be appraised.
The virtues (and vices) of decimal and
binary mode machines have been discussed since
man first im,plemented computer hardware, and the
argument will continue until the perfect machine,
whatever that might be, is developed and marketed.
I do not intend to discuss the theoretical
virtues of either type of computer. I will discuss the controversy in terms of Chrysler's experiences with both types. In the automobile
industry, Chrysler has pioneered in the use of
EDP. One of the first IBM 702' s was installed
in our Service Parts Center in 1954. Since then,
we have added seven IBM 650's, one UNIVAC I, one
UNIVAC File I, and two IBM 709's, one of which
has recently been replaced by an IBM 7090. In
addition, an H-Boo will be installed next spring
and four IBM 1401' s will be installed in the next
few months.
At Chrysler, data processing equipment is
selected on the basis of providing the best equipment for the systems in which it will perform.
And so it is with all practitioners in the field
of data processing. At some point in the game,
users must choose between the two modes, binary
or decimal. The success:f'u.1 outcome of their venture will depend on their effective use of the
equipment regardless of the mode inherent in the
selected hardware. It is to this effective use
that this paper is aimed, and, by our experience
at Chrysler, to prove that more effective use can
be made of' a binary-type computer for data processing applications of the magnitude of those on
the computer in Chrysler's Corporate Information
ProceSSing Center (C.I.P.C.).

ISO
3.5

Chrysler's 7090 installation, C.I.P.C., is
used primarily for business data processing, as
was its predecessor, the 709. Included in the
list of applications are the following major jobs:
Vendor Releasing
17,000 Item, Bi-Monthly;
Hourly Payroll
65,000 Employees, Weekly;
Production Reporting
20,000 Orders Daily;
Warranty Claims & Payments
100,000 Monthly.
We have operated C.I.P.C. for the past year and
one-half with the binary mode computer and will
continue to rely on this type of machine indefinitely.
Since our frame of reference is the 709/90,
our specific examples are in terms of these two
computers, but I believe much of what will be
said will apply to any binary-type machine of
this magnitude commercially available now or in
the future.
The earlier binary-type machines, of the
701/704 Vintage, could not be used efficiently as
data processors. There was a problem in the
translation of decimal data to biliary for internal processing and vice versa for output operations. Coupled with this, and really quite significant, is the fact that serially-organized
machines could not perform data transfer operations without interlocking the central processing
units. The desire for business-oriented systems
to share computers with their Engineering counterparts, along with other pressures, finally led
the various equipment manufacturers to equip
their newer binary machines with the ability to
perform I/O functions in parallel with internal
processing. It is, therefore, the binary-type
machine with the ability to perform I/O in parallel with internal processing that will be considered here.
In planning to use any large-scale computer
for data processing, it is important that sufficient study be performed in all phases of the
system design, programming and installation. In
planning the use of a large-scale binary machine
for data processing, it is very important, let
me say it again: very important, that a consistency of concept be formed early in the systemdesign phase and maintained throughout all phases
to problem solution.

This consistency of concept, if you will, is
to think in binary for a binary-mode computer. To
exploit the logical power of the binary-type
machines, binary techniques must be used. There
is a great danger in utilizing a binary-mode
computer by applying data processing problems
conceived in the decimal mode. Although with

their flexibility, binary machines can be used
in this manner, it is inconsistent with the organization and logiC inherent in the computer and
carries a penalty of more involved programming
and, in many cases, longer running times.
There is a natural tendency to use decimal
representation in record formats; if a binarytype computer is to be used the consistency of
concept should dictate that "abbreviated binary"
representation be established wherever possible.
For straight numeric representation this should
afford a thirty per cent improvement over decimal
representation.
Although the 709 and 7090 can perform data
conversion much more efficiently than earlier
binary machines, the time required to convert
from decimal to binary and back to decimal can
be significant in a large data processing application. Our payroll, in the next few months will
increase to over 100,000. An evaluation of the
desirable mode of representation for our payroll
master file indicated that there was a saving of
34 minutes on the 709 in each payroll run, if the
master file were binary rather than decimal.
.
The representation of information in binary
not only applies to magnetic tape and internal
operations but to other I/O media. The use of
binary-type data, external to the computer, can
be quite significant, where portions or all of a
standard tab card can be utilized in "Chinese
binary" type codings expanding the information
content of the card upwards to 12 times its normal alphameric capacity. At Chrysler, this characteristic of the binary mode machine has been
most significant in our production scheduling and
reporting system. As you may realize, there is
considerable amount of information that must be
coded for each automobile for production reporting. The many accessories and option combinations must be reported in order to accurately
record production. It would be a gross understatement to say that this information could not
be represented in Hollerith in a single punched
card. Using a binary representation we are able
to obtain a maximum of 340 option and accessory
codes in 34 columns of a single card. The balance
of the card in Hollerith gives us a total of 386
segments of information in a single card. This
ability of card stretching is not limited to
binary machines--but only recently has this ability been adapted to the decimal machines and then
at some added cost of hardware and programming
effort.
In many, if not all, data processing problems
conditional tests must be made prior to processing
input or output data. Binary coding techniques
allow single bits to operate as flags or indicators, and single words or strings of bits to
contain all of the necessary conditional flags to
efficiently operate on the problem at hand. In
the decimal machine this ability has been restricted to using individual characters which require
several bit positions f~~ a single flag. Quite

151
3.5

recently some decimal machines have allowed access to bits, but even now there is considerable
processing and programming effort involved. Bit
manipulation inherent in binary machines affords
the programmer with the ability to perform
Boolean algebra techniques which become significant in terms of economical use of memory, program simplification and job running times.
The bit manipulation ability of binary
machines permits the programmer and in effect the
program, to perform subtle logical tricks of
character, instruction and operation modification
in a minimum of time. This ability is particularly useful in housekeeping operations, table
construction, address modification and decisionmaking functions. Very significant gains have
been obtained in table construction in our Vendor
releasing and production reporting systems. The
original system for vendor releasing called for
a two dimens ional master file. One dimens ion in
parts number sequence and the "other" which was
part within major assembly sequence. Originally,
it was necessarY to sort one file to the order of
the other and then sort the extended output for
summarization and publication of the requirements.
At the present time, the forecast for all
assemblies is placed in memory in a variable
length table. This variable length table is controlled by a bit coded basic finder table. The
advantage in this case is the effective use of
memory in the binary mode machine. We know 9f no
decimal oriented memory that could handle this
table. The resultant saving on the 709 from this
change was a reduction of processing time from 7
hours to 65 minutes.
Related to the comparison of bJnary and
decimal modes of information representation is
the variable and fixed word length characteristics. The binary is typically fixed word oriented.
The decimal mode computer on the other hand has
been both variable and fixed word length. One
argument frequently offered for the decimal mode
computers has been in terms of those with a variable word length. Yet, the use of the term
"variable word length" with most of these machines
may be a misnomer. Many so-called variable word
length machines, operating character by character,
examined closely are nothing more than fixed wordlength machines operating with short "six-bit"
words. As a result, the argument on this point
is reduced to size-of-word not variable-versusfixed-word length.
The fixed word binary machine at first glance
does not have the address flexibility possessed by
variable word length machine. But our experience
with the 709 and 7090 proves otherwise, there are
in the 709/90 word four addressable segments; the
decrement, tag, address and prefix which facilitate packing and unpacking with a minimum cost in
instruction time. Most other binary mode machines,
I believe, have similiar abilities, along with
semi-automatic or automatic masking operations
and half-word logic.

There is no question that variability is a
desirable attribute in a computer, but only in
terms of bits not characters. Tbis value of
considering infor.mation in terms of bits is most
significant in dealing with indicative information.
I would agree that for the representation
of quantitative and indicative information in
most data processing applications 36 bits is too
large a word, but as stated above a "six-bit"
word is also too large.
Another powerful ability of the binary machine is its ease of accepting varying formats of
coded information. Anything which can be represented by bits can be handled by a binary machine.
Thus far, this has been limited because the input/
output devices attached to computers were oriented
toward the decimal type machine. This ability
becomes quite significant when communications
schemes link remote operating locations with a
variety of equipment to centralized data processors. Format restrictions, in the centralized
machines, would require that all equipment be
compatible as far as information structure. But
with the flexibility of bit coding, a binary
machine can be programmed to handle all forms of
bit coding. In some of the newer super-scale
systems this ability has been further developed
to allow the hardware to perform operatiOns in
the more popular coding formats, including binary,
octal, bcd, bch, telegraph 5, 6, 7 and 8 level
coding. The next generation machines will partake
of the flexibility now existent in present day
binary machines.
The measure of effectiveness for any computer
is to a large extent dependent upon the programmer, the program, the compiler and operational
system.
In the case of programmers , it is frequently
alleged that there is an aptitude difference between those operating on binary mode and those
on decimal mode machines. This allegation is
carried to the point that the type machine rather
than the type of problem is the major determinant
in the selection of programmers. Programmers, in
the Chrysler context, are those individuals responsible for translating business systems, which
are frequently lacking exact definition, to computer systems. At Chrysler, the work performed
in C.l.P.C. is business data processing, and
therefore, most of our programmers are business
systems oriented.' The presence or absence of
mathematical backgrounds in our programming staff
offers no correlation to the effectiveness of
resulting programs. One conclusion we have drawn
is that programmers first-machine-training has a
great deal of bearing on their success as programmers of binary-type machines. Programmers
originally trained on binary equipment tend to be
better able to adapt to any machine, whereas the
converse does not necessarily hold.
In the case of programming, much has been

152
3.5

said with regards to the increased effort required for binary-type machines over decimal machines.
Granted that instruction repetoires for the former
are usually more extensive than those of comparable decimal machines. The restrictiveness of the
instruction lists in decimal machines may necessitate more involved programming for large complex
business systems. On the other hand, microprogramming ability inherent in binary machines
allows a more precise ~pproach to the solution of
complex functions. We realize that subtleties in
binary techniques are not readily discernible to
the neophyte programmer, thus the learning curve
may be some'What longer, but the results are more
significant in terms of programming efficiency.

puts at Chrysler's disposal the means to a vastly
improved business management system.

Significant gains have been made in the
field of generalized compilers, both in the
scientific and commercial areas. We are heartened by the progress that has been made in the
compiler area to date, but are not placing our
programming effort "on-the-line" with these until
the specifications call for, where pOSSible, a
binary approach to problem solution. The user
must be wary of sacrificing program effectiveness
for programming efficiency.

In the Sales area, dealer order and retail
sales information which serves as input to our
Production Reporting and Scheduling application
will be edited, and condensed to serve as further
input to a sales forecasting system, which is now
in the simulation stage.

In the specific area of generalized business
compilers, we "WOuld like to sound a warning to
those of you with binary machines who hope to
utilize these to great advantage over your present
programming methods. It is apparent to us that,
to date, little effort has been expended in the
generalized compilers to sufficiently utilize
binary techniques which will provide efficient
programs such as we have conceived and implemented
in lower-level coding systems.

Included in Chrysler's programming standards,
are general rules which inhibit the use of generalized sub-routines where tailored routines
would better serve to improve program efficiency.
The use of true macro-generators which produce
effective routines is preferred over the library
call and copy type sub-routines.
It is apparent to us that the role of scientific computation in operations research projects
is dependent upon an inexpensive, well-structured,
data collection system, where data collection is
not the major objective but a planned by-product
of routine, clerical data processing applications.
Many companies have moved head-long into the
field of OperatiOns Research only to find that
specific information was not available or could
only be obtained at great cost. With the Corporate Information ProceSSing Center at Chrysler we
have centralized the flow of information on several major systems. Data is now available on the
personnel, production, sales and inventory system
in the same format and collected automatically
from the routine data processing operatiOns now
on the computer. In this respect the utilization
of these centrally located files for operation
research type analysis along with the proven
scientific capabllities of a binary type machine

Specifically, in the analytical area, Chrysler is currently supplying the Industrial Relations Dept • with personnel and payroll data on
the characteristics of the total hourly-rated
work force. This information was formerly collected on the basis of a 5i sample. Even with
lO~ of the data, with less time and effort necessary to prepare and compile the needed data for
our negotiatiOns it will be more efficient and
factual. The ease of retention and accessibility
of historical data also makes the application of
other OR projects in the personnel area feasible.

It is interesting to
collected as a by-product
Reporting application and
will be utilized as input
Programming system, tying
major applications now in
tions.

note that the data is
of the Produetion
the resultant forecasts
to our Production
together two of the
our centralized opera-

other OR projects currently under stud;y are
in the manufacturing area, concerned with man
assignment and assembly line balanCing, and in
the financial area where Cash budgeting and
Finance Company simulations are in the otting.
Both of these studies require extensive data
which has been extrapolated from current data
processing applications.
Although we have all played lip service to
the concepts of management by exception techniques, there is every reason to believe that the
data processing function will assume greater responsibilities in the area of management decision
and the requirement for large volumes of data output will decline. Furthermore, as data processing
applications move from the performance of routine
clerical functions to the integration of operations research type solutions of management problems, the computational and logical abilities of
binary machines will become more indispensable.

153
4.1
HIGH SPEED PRINTER AND PLOTTER
Frank T. Innes
Briggs Associates, Inc.
Norristown, Pennsylvania
Summary
The Model 1063 High Speed Printer
and Plotter is a magnetic tape fed device for high speed plotting up to 6000
points per second in ten simultaneous
plots, at the same time it prints annotations for grid lines and draws the
grid lines, all with the output paper
moving at 10 inches per second.

available digital modules are used in
the control logic areas. In the other
parts of the machine where circuits
are used by the hundreds special purpose modules were built. Worst case
design with extreme derating of components was employed in combination
with rather eclectic logic.

The machine may also be used
simply as a high speed printer. In
this mode, it can print 4000 lines per
minute with 100 characters per line.

Each circuit area was examined
from the point of view of least cost.
As a consequence, the machine is a
mixture of diode logic, diode-transistor logic, and resistor-transistor
logic.

Design Philosophy
General
The general design philosophy
for this machine was to produce a
highly flexible off-line device which
would minimize programming requirements and machine time for the
IBM 7090 computer which generally prepares the input tapes. Since it was
early recognized that the required
generality would require the machine
to have quite substantial high speed
printing capabilities, it was specified that the machine be capable of
operating simply as a printer. The
success with which this philosophy
has been implemented is indicated by
the fact that soon after delivery
the customer modified the machine to
accept tapes produced directly by
his analog-to-digital format conversion equipment without any computer
processing; thus it operates valuably as a semi-quick look recorder.
Likewise as a printer, it is used
on a routine basis to print tapes prepared for conventional IBM printing
equipment. The customer is now making
minor additions so that the machine
will perform binary to octal conversions; in general this will completely
eliminate such operations on the computer.
Detailed Design
The detailed design naturally
stressed reliability and ease of maintenance using readily available components. Since this machine was built
on a limited budget, cost was a very
important object also. Commercially-

Overall Logic
A very general block diagram of
the machine is shown in Figure 1.
There, it is apparent that the machine
is really two machines, having a
common input and output. When printing only is to be accomplished, only
the print section is used.
When annotated plotting is to be done, the
machine starts off as a printer, allowing the title block to be composed at
the programmer's discretion. When the
first record containing data points
occurs, then the machine switches control of printing to the plot section
where it remains until the graph in
question is complete. With this mode
of control, it is a simple matter to
coordinate the annotation data with
the grid lines_ If it is desired to
establish a time reference with a grid
line, the necessary command is placed
on the tape next to the appropriate
data point; if it is desired also to
annotate this line, then the alphameric data with a print command are
placed there also. The machine then
operates to route the data in such
fashion that the required alphameric
data is waiting for the print command
when it occurs.
Subject to minor
programming restrictions, all these
operations are done without interfering with the steady flow of data required for a time history plot.
Output Device
The output device for this
machine is a Hogan Laboratories Model
HPP-110 multiple stylus recorder.

154
4.1

This unit is a facsimile type recorder
wherein a mark can be made on moist
electrolytically-treated paper by
application of an appropriate current.
The HPP-IIO has 1024 writing styli
which press II-inch wide paper against
a reciprocating steel strip with paper
moving at five or ten inches/second.
In the process of plotting or printing
currents are applied through the styli
to the bar; the electrolytic process
involved removes metal from the bar
and leaves it in the paper; the duration and magnitude of this current are
such as to produce highly uniform.
elementary dots approximately one onehundredth inch in diameter. Wear on
the stylus assembly is abrasive only;
currently, about 30,000 feet of paper
have been proces~ed without degradation of marking capabilities.
Output Circuits
Requirements
The HPP-110 is provided with its
own direct-coupled power amplifiers
one each for the 1024 styli. It is
readily apparent that some means must
be supplied to provide signals of the
proper magnitude and duration for the
power amplifiers. Plotting requirements call for 1000 such circuits; detailed consideration of the logic revealed that separate printing circuits
must be supplied also in addition to
auxiliary inputs for drawing of grid
lines.
The specification of two paper
speeds also leads to two signal duration requi~ements.
Since the same
elementary dot must be produced at
either speed, provision had to be made
for inexpensive variable duration control, explicitly for 0.5 milliseconds
and for 1.0 milliseconds.
Circuits
The actual output circuit card is
shown in Figure 2. The basic element
is the NOR flip-flop with a 2-input
diode gate on-the set input. The
upper row of five units provides for
five out of the 1000 possible plot
points with the diode gate forming the
second level of a 1000 point binary
decoder.
The lower four units correspond
to the first four elements in the
seven styli that are used for a column
of printing: three corresponding units
on the next card provide a total of
seven, which gives the space dimension

to the 7xll space time matrix used to
form alphameric characters. The diode
gates on these flip-flops are used for
column selection in conjunction with a
column counter.
In the general case, the outputs
of two flip-flops are buffered together' to drive the power amplifier.
Other innuts to the diode buffer provide grid line drawing capabilities
under either tape or patchboard control.
Signals to energize particular
styli are of nominal ten-microsecond
duration, ~ither from the print
section character generator or from
the plot decoder.
Signals to de-energize are applied to the reset inputs.
In the case of printing, the column
counter selects a particular column
whose styli are energized depending
upon the state of the character generator. The flip-flops correspond1ng to
this column are then turned off by an
unconditional output from the column
counter fifty columns later; since the
column counter operates at either 50
or 100 kc, the required 0.5 or 1.0
millisecond durations are automatically generated.
A similar operation determines
the duration of the point to be plotted; however, this is done under
patchboard cont~ol since it may be
necessary to plot line segments rather
than elementary dots, particularly
when the plotting rate is low.
Plot Section
Plot data and associated control
characters are stored in small coincident current memory buffers from
whence information is transferred to
the plot section under control of the
plotting rate clock. Ten bits out of
the twelve possible in two IBM tape
frames are used to specify a point to
be plotted. The occurrence of a plotting rate clock pulse triggers the
readout of data from the memory, a
read cycle being required for each
tape frame.
If the two frames are
recognized as a data point, then the
ten bits are assembled in the plot
register from whence they are decoded
and used to set the appropriate output
flip-flop.
If a control character is
recognized, it is decoded and the
appropriate action taken; at the same
time another pair of memory read
cycles is initiated until a data point
is found.
If more than one plot is
programmed, the above process is re-

155
4.1
peated until the preset number o£ simultaneous data points has been extracted;
although "simultaneous" data points are
actually plotted at 20 microsecond intervals, the distance between such
points on the output graph (0.2 mils)
is naturally not distinguishable to the
naked eye.
As noted above, provision is made
so that various mark lengths can be
selected by the operator.
Likewise,
the operator must speci£y number o£
simultaneous plots and plotting rate.
Plotting rate capabilities vary £rom
1000 to about 16 points per second per
curve, allowing great latitude in expanding or contracting the time scale
with the same input tape and paper
speed.
Print Section
A block diagram o£ the print
section is shown in Figure 3: its
essential parts are the recirculating
bu£fer, the character generator, the
column counter and the trace counter.
The heart o£ this section is the
character generator which stores, in
wired £orm, the particular selection
o£ dots in the 7xll dot matrix corresponding to each o£ the 56 characters.
The character generator is divided
into eleven sections corresponding to
the eleven rows in the matrix; the
rows are selected by the trace counter
which advances one step £or each scan
o£ the column counter across all 100
columns. The recirculating bu££er is
synchronized with the column counter
to select, on the basis o£ the IBM
BCD codes stored therein, the proper
group o£ dots £rom the character generator £or each character on each trace.
Thus, during the £irst trace, the topmost portion o£ each character in each
column is placed on the paper with the
process repeating until the £ull character is printed.
Character generator outputs drive
all columns simultaneously with the
column counter being used to determine
the proper column.
Normally characters
are printed in succeeding columns
starting with the £irst, in the order
in which they appear on tape.
Column
counter outputs are, however, also
brought out to a patchboard where
characters may be rearranged in any
desired manner and where provision is
also made to repeat any character once.
This £acility makes it possible to
minimize BCD data on tape during plotting, space codes in e££ect being
supplied by the patchboard.

A special feature o£ the print
section lies in the brute £orce design
o£ the character generator, there being
one speci£ic diode corresponding to a
given dot in a given character. This
approach to the character generator
was the cheapest under the circumstances, but in combination with great
redundancy in the 7xll matrix character,
it has the merit that the loss o£ a
diode is scarcely noticeable even to
the close observer.
Input and Tape Organization

The tape is organized generally
in records, either straight BCD £or
printing only or combined BCD and
Binary £or annotated plotting. The
IBM 36-bit binary word is divided into
three l2-bit groups with 10 each required to speci£y a data point. Control characters are provided on the
tape and indicate how data is to be
interpreted and control its routing
either to plot or print input bu££ers.
A record may include up to 71 data
points and up to 100 BCD characters.
Tape operates at 150 inches per second
with 200 bits per inch.
Plot Section
Since the tape operates startstop in order to provide £lexibility
in the machine as regards paper speed
and plotting rate, then two bu££ers
must be supplied in the plot section
to guarantee the required steady flow
o£ data; in general, one is being
£illed while the other is being emptied.
Circuitry and logic would allow the
processing o£ 10,000 data points per
second; however, tape characteristics
and bu££er size limit the maximum to
about 6000.
Print Section
Two bu££eTs are also provided in
the print section in addition to the
recirculating bu££er discussed above.
1£ the machine were to operate simply
as a printer, these bu££ers would be
unnecessary.
Operation o£ the machine
as a printer-plotter with generality
and ease o£ programming appears to demand the presence o£ the two print input bu££ers: other arrangements were
considered and £ound to place severe
limitations either on the program or
on the per£ormance o£ the machine.

156
4.1
Reliability and Performance
Reliability of the machine has
been excellent. Precise statistics
are available only for a period of 300
hours.
During this period, there has
been but one component failure, a
transistor.
\Vhen the number of components is considered - 9000 transistors, 12,000 diodes, about 40,000
other components - this is quite a
good record.
Likewise, the performance has
been excellent; except for the transistor failure noted above, maintenance has been limited to the routine
care necessary to the proper performance of the tape transport and occasional adjustment of the recorder
mechanism.
Acknowledgments
I wish to acknowledge at this
time the contributions of G. Conklin,
R. Hench, R. Hibbs and C. Spindler of
the General Electric Company. Without their vision and support, this
machine would not have existed.

157

4.1

~ £:] ~
TAPE
'~A~---t CHECK
.~ ~
TIMING

BUFFER
~ INPUT

a

~

CONTROL

EVEN PRINT ~
BUFFER

ODD PlOT
BUFFER
....-IIfI~J'--.._

......

ODD PRINT
BUFFER ___---'1~liii0.'-------1

EVEN PLOT
BUFFER

r
PLOT

~REGISTER

PRINT

PRINT

~~1""""" CONTROL

+

MASTER ...__--.a.
,. CONTROL· CHARACTER-----.-~_....._.......
t
GENERATOR
PRINT
a
~ FORMAT
I

PLOT
CONTROL

____

-

PLOT
DECODER

PRINT DATA

I

I

ROUTING

I
STYLUS
PREAMP
I

MULTIPLE

STYLUS

RECORDER
Fig. 1. Block Diagram.

CONTROL

•~­
c.n

2
PLOT
INFO

I

PLOT
DURATION

PLOT
INFO

3
PLOT
INFO

o0

o0

DOD

-0:1

!5

4
PLOT
INFO

PLOT
INFO

o0

o0

r'41---t-I~-----t-l~----~I-t-----.!bt-----~-.f°_---..,
i

,

,

,

,

~

~
TYPE 1

L....&>

II

i

:-

I

.lJ)

L.o

r2
I~

~.

L3~2t23t3t-I~-~-27&--17t--28t--18t-~21---lt-'-3bt---20t-J
PRINT
OUTPUT
PRINT
OUTPUT
PRINT
OUTPUT
PRINT
OUTPUT
\ BY TEN}. OUTPUT
ALL STYLI ~ ' "
I
INFO
2
INFO
!
INFO
4
INFO
5
1
COLUMN
2
!
4
5
PRINT DURATION
ENABLE
Fig. 2. Output Circuit.

CLOCK
AND

.....
.....
-

......

CONTROL

RECIRULATING ..
14----~.------------------.
BUFFER
12

,..--I

•

__ 14

TRACE

DECODER

COUNTER 14

64

II

•
CHARACTER
GENERATOR

COLUMN COUNTER 14-

•
CHARACTER
77

GATES

II GROUPS OF 7

DECODER

"

TO COLUMN SELECTION
EITHER DIRECT OR
THROUGH FORMAT
~TCH BOARD

•

TO COLUMN OUTPUT FUPFLOPS OF 100 COLUMNS
Fig. 3. Print Section.

~

•

.......

CJ1

....... \0

160
4.1

161
4.2
A DESCRIPTION OF THE IBM 7074 SYSTEM
R. R. Bender, D. T. Doody, P. N. Stoughton
Product Development Laboratory, Data Systems Division
International Business Machines Corporation, Poughkeepsie, New York

Summary
A new data processing system, the IBM
7070 1 , was described at the 1958 Eastern Joint
Computer Conference. Recent progress has
resulted in the creation of an expanded family
of 7070 systems, exemplified by the announcement of the IBM 7074 system.
The 7074 represents a dramatic new approach to data processing system growth, and
is the second major step in the 7070 data system
family. It is not an entirely new system, but
rather an improvement within the 7070 framework. It enables a customer whose workload
has outgrown his 7070 equipment to upgrade his
system over a weekend, thus achieving multiplied performance without reprogramming and
without excessive disruption of his operation.

Thruput or job performance considers, in
addition to instruction-execution time, the time
expended in magnetic-tape input/output operations. A typical mix of commercial jobs--ineluding sorting, merging, high and low activityfile maintenance, and editing- -provides the
basis for this comparison.
Floating point performance is measured
on the basis of a typical group of arithmetic and
logical instructiohS encountered in many scientific problems. It is essentially a measure of
internal speed.
Functional Units
Physically, the 7070 family is made up of
the following functional units which are packaged
in IBM standard modular system (SMS) frames:

Specifically, the increased performance
is achieved by use of:
1. A new, high-performance arithmetic
and program unit called the 7104 high-speed
processor.
2. Improved-performance storage units,
the 7301 models 3 and 4, which operate on a
four-J.Lsec cycle instead of the six-J.Lsec cycle
used with the basic 7070.

These units are substituted for their counterparts in the 7070 system.
Compared to a two -channel 7070 system
using 729 IV tape drives, a 7074 of the same
configuration has the following performance
characteristics:
Internal performance on
commercial work

6 x 7070

Thruput or job performance
on commercial work

2 x 7070

Floating point performance
on scientific work

10 x 7070

Internal performance is a mea.-sure of instruction-execution time. It is measured on the
basis of the mix of instructions executed in a
group of programs considered typical of commercial applications.

7070
Arithmetic &
processing unit

7601
(2 modules)

High-speed
processor
Storage, 6 -J.Lsec

7074

7104

7301, 1 & 2

Storage, 4-J.Lsec

7301, 3 & 4

Core control and
power distribution

7602

7602

Basic timing &
control

7600

7600

T ape control unit

7604

7604

Tape transports

729 II or IV

729 II or IV

The 7601 arithmetic and processing unit
and the 7104 high-speed processor perform arithmetic, logical, and other stored-program operations under the control of a single -address type
of instruction. Some other features are: ninetynine indexing words; variable field length by the
use of field definition; automatic block transmission of data within core storage; automatic
priority processing; extensive checking; and
simultaneous read, write, and compute.

162
4.2
The 7301 storage units are available in
models of 5000 or 9990 words. They provide
parallel access to ten digits (one computer word)
at each storage reference.
The 1604 tape -control units provide for
transmission of data between tape storage units
and core storage. Two independent data channels can be provided by each 7604 unit.
The 729 tape transports are available in
two models. Model II can operate at data rates
of 15, 000 and 41,000 six-bit characters per
second. Model IV can operate at data rates of
22,000 and 62,500 six-bit characters per second.
Up to forty tape transports, in any combination
of models, are available on the system.

Some example s are:
7070

7074

One -digit true add

48 J.Lsec

10 J.Lsec

Ten-digit true add

72 J.Lsec

10 J.Lsec

924 J.Lsec

56 J.Lsec

Conditional branch

36 J.Lsec

6 J.Lsec

Unconditional branch

24 J.Lsec

4 J.Lsec

212 J.Lsec

16 J.Lsec

1019 J.Lsec

60 J.Lsec

Multiply (IO-digit
multiplier)

Floating add
Floating multiply

The above listing is by no means exhaustive.
Many other devices -- including punched-card
devices, printers, and manual inquiry stations -are also available.
These units are the building blocks of the
IBM 7070 family. Proper selection of processor,
memory, and tape drives provides the ability to
tailor a data processing system to a wider variety
of customer requirements (both commercial and
scientific) than ever before possible.
System Growth
The IBM 7074 system may be ordered directly from the factory, or it may be "grown"
from a 7070 in the customer's office. The necessary changes can be made by a team of field
engineers over a weekend.
Referring to Figure 1, the 7104 high-speed
processor is substituted for the two 7601 modules
which are removed and returned to the factory.
The 7301 storage unit is converted from a
six-J.Lsec cycle to a four-J.Lsec cycle by a change
to high-speed circuitry.
One slide, containing storage controls, is
removed from the 7602 core control unit and returned to the factory. New storage-control circuits are provided in the high-speed processor.
Program Compatibility
The 7104 high-speed processor uses the
same instruction set as the 7601, although it
processes individual instructions three to twenty
times faster.

Since the instruction formats are identical,
programs written for the 7070 may be used on
the 7074 without change. Furthermore, they
will operate at full efficiency on the 7074.
This compatibility is important for rapid
and simple change -over from 7070 to 7~74. In
addition, all 7074 customers -- newcomers as
well as those changing over from the 7070 -have at their disposal the entire 7070 program
library of the GUIDE organization, and IBM
applied programs for the 7070.
Processor Organization
The 7104 high-speed processor, like the
7601 'arithmetic and processing unit, operates
on the basis of a word of ten decimal digits and
sign. Coding is 2 of 5, so that a word consists
of 53 bits. Sign is plus, minus, or alpha and is
represented by three bits in 2 of 3 code. Alphanumeric information is represented by two decimal digits, so that an alphanumeric word contains
five characters, while a numeric word contains
ten digits.
When written on magnetic tape, an alphanumeric word fills five six-bit characters. Numeric words are written as ten six-bit characters
except that up to five high-order zeros are eliminated. This makes for very high tape efficiency.
The 7104 high-speed processor differs
from the 7601 arithmetic and processing unit in
that the 7601 performs arithmetic operations in
a serial-by-decimal-digit manner while the 7104
performs full-word parallel arithmetic.

163

4.2
In the 7601 (see Figure 2) each digit is
moved through the adder in one four-fJ.sec, cycle
and is stored back in the arithmetic register on
the following cycle, during which the next digit
is moved through the adder. A full ten-digit add
requires eleven cycles or 44 fJ.sec for completion
(assuming that recomplementing is not required).
To this must be added instruction and operand
access time as well as indexing time if required.
Total time for a ten-digit true add (not indexed)
is 72 fJ.Sec.
In the 7104 (see Figure 3) the full-word
adder cycle requires two fJ.sec for completion.
Instruction and operand access time results in
a total time of ten fJ.sec for the nonindexed add
instruction. This time is valid for any field
size up to ten digits. Thus, add speed has been
improved from three to seven times, depending
upon field size.
Items of interest are:

1. Skew registers which provide the functions of field control and shift.
2. Three accumulators which provide speed
in floating point operations.
3. Validity checking on all buses.
4. Complete program compatibility with
7070 (uses 7070 instruction set).
The information bl,ls is one computer -word
wide (ten decimal digits and sign 53 bits). The
address bus is four digits (20 bits) wide, and the
arithmetio buses are eleven decimal digits wide.

=

Circuits and Packaging
The high arithmetic speeds are made possible by the use of saturating -drift -transistor
NOR circuits. Packaging is accomplished. in a
new package known as the SMS twin card, which
provides over three times the density of logical
elements achieved in the 7601 processor of the
IBM 7070. This density permits the 7104 to
contain in one module all of the logic previously
packaged in two and one-half modules.
Figure 4 compares the new SMS twin card
with the SMS single card used in the 7601. Up
to .44 transistors may be packaged on one twin
card as compared to a maximum of eleven on the
single card. The use of NOR circuits further
increases the logical density in the SMS twincard system. Vertically mounted components
of the twin cards provide more efficient cooling.
The component tips are welded to the bronze

support clips at the upper end, and are soldered
to the printed wiring of the card at the lower end.
The bronze support clips contribute to cooling by
providing a heat -sink effect; these clips also provide an additional dimension of modularity for
automated production and for field repair of cards.
Support-clip sections can be stocked and card
repairs made in the field by replacement of clips,
thus contributing to more economical maintenance.
Figure 5 shows additional details of the SMS
twin card.
Cards are mounted in an IBM standard
modular system (SMS) frame, which contains
two slides, each composed of two pages. Each
page contains four chassis, each of which in turn
can contain 100 SMS twin cards.
Figure 6 shows an SMS sliding-gate module,
covered. One such module contains the 7104
high-speed processing unit, and measures 29 1/2
in. wide by 56 in. deep by 69 in. tall.
The sliding gates pullout toward the front
as shown in Figure 7.
Each gate opens into two pages in which
are mounted the SMS single or double cards. The
pages or gates are accessible for service from
both sides. Covers over the cards contain the
flow of cooling air.
Figure 8 depicts the organization of a page
or gate of the module. The four chassis, each
of which can contain 100 SMS double or 200 SMS
single cards and a number of edge connectors,
are shown from the rear or panel-wiring side.
It is the SMS system which makes possible
the modular growth from the 7070 to the 7074.
Replacement of one or more of these frames with
functionally similar units of higher performance
is possible without re -engineering every unit of
the system.

References

1. For a description of the IBM 7070,
see lIThe IBM 7070 Data Processing
System It presented by Robert W.
Avery, Stephen H. Blackford, and
James A. McDonnell at the Eastern
Joint Computer Conference, December 1958.

oj:>.

7070 SYSTEM

7600
TIMING

~

•
0\
t'V oj:>.

7602
POWER
DIST
CORE
CONTROL

7601 NO.1
7301
STORAGE
(6 p.sec)

7601 NO.2
7604
TAPE
CONTROL

A AND P
UNIT

I

CORE
CTRL

,

,

~

A AND P
UNIT

1

CONVERT

7600
TIMING

7602
POWER
DIST

7301
STORAGE
(4 posec)

...

r

-

7104
HIGH
SPEED
PROCESSOR
-

-

Fig. 1. System growth.

-----~

7604
TAPE
CONTROL

...

---

- --

RETURN
TO
FACTORY

FROM
FACTORY

INFORMATION

~ 10

~~

.

BUS 10 DIGITS

A •

STORAGE

~

4

~

.

ARITHMETIC BUS 10 DIGITS
4 •

~

~

I

C~

t

~

••

t

~ t

~

ARITH. REG.
INSTR. REG.

~

:CANNER

rI

t

t

~

AUX. REG.

h

ACC. I

..
.....

I

.SINGLE!
DIGIT
ADDER
,

4-

_0

~~

ADDRESS BUS 4 DIGITS

I

, r
ACC.2

I

I

~
....

,

ACC.3

ONE DIGIT
Fig. 2. 7070 information flow.

~I-'

•

0\

~CJ1

~

I-'

•
0\
t-:l 0\

4

~

~

~

ARITHMETIC BUS II DIGITS
~

J

n~

~~

• J"

SKEW
ARITH. REG.I

4

~

~

AUX. REG. I II
~~

.

J

il
~~

II

10 DIG.

A~D~R

I

II

I REG.
~~

-

II

~I

I I

ACC.2

4

~

SKEW

1r i r

~

~

I~

kibl,l

IIII

eLJ
~

INFORMATION BUS 10 DIGITS
~~

TO STORAGE

I COUNTER

;!f

<1

J~

~

ADDRESS BUS 4 DIGITS

Fig. 3. 7074 information flow.

~~

S BUS II DIGITS

I

I

ACC.3

• a

167

4.2

Fig. 4. SMS twin card and SMS single card.

168

4.2

Fig. S. SMS twin card detail.

169
4.2

Fig. 6. SMS functional module.

170

4.2

Fig. 7. SMS module with slide out.

171
4.2

Fig. 8. SMS module page - rear view.

173
4.3

THE RCA 601 SYSTEM DESIGN
A. T. Ling and K. Kozarsky

Electronic Data Processing Division
Radio Corporation of America
Camden, New Jersey

One of the differences found among computer systems is whether emphasis is on word orientation or on
character orientation. Pertinent design considerations
not only include memory depth, but also capability for
handling symbol-controlled operations and relative
speeds of word and character operations. Emphasis
placed on either word or character orientation tends
to dictate a principal area of effective application. An
important objective of the RCA 601 System is to perform efficiently over a very wide application base and
economically combine the speed of parallel word processing with the logical flexibility of variable character
operations.
The RCA 601 System is a generiC name which,
properly speaking, refers to a Class of systems. This
is due to a very generalized design approach which will
be illustrated by the system logic design description
of the RCA 601 System in the following discussion.
Specific elements have been selected from numerous
possibilities to constitute the presently offered product
line. The objective here is far from academic in that
this approach provides, first, an exceptional ability
for custom fitting of system elements for a specific
user. Second, it tends to delay the inevitable onset of
obsolescence by permitting rev lsion of systems elements to increase performance or modify the orientation of the system according to the contemporaryfashion in data processing.
These, of course, are supplementary to the common objective of commercially available systems, a
cost-to-performance ratio in conformity with the vintage of the hardware. The host of sagacious decisions
required in the selection of such appropriate components as tranSistors, packaging, and memory at optimum points of their cost vs. speed considerations,
will not be elaborated but can be assumed by the
reader.

A.

THE RCA 601 SYSTEM

The RCA 601 System stresses a generalized system logic design in the computer. The main frame is
a fast processing unit which includes a 1. 5-microsecond memory. Its design features provisions for
uniting other system elements into an integrated system by means of standard interfaces. A unique modular packaging concept is used for these system elements
to allow efficient and flexible system combinations. A
system diagram is shown in Figure 1. The all-solidstate elements of the computer system include a main
frame processing llnit, memory units, an arithmetic
unit, and transfer channels. The main frame processing unit includes a 56-bit word memory module, a fast
basic arithmetic unit, an input-output control, and a
console transfer channel. Facilities for operating any

combination of other elements comprising a single system are provided by three channels - the memory
channel, the control channel, and the input-output
channel.

CONTROL
CHANNEL

HIGH SPEED
ARITHMETIC
UNIT

-----------,

I

I
I

ARITHMETIC
UNIT
MEMORY
MODULE

I

I

BASIC
CONTROL
UNIT
INPUT
OUTPUT
CONTROL

1..,-----

CONSOLE
TRANSFER
CHANNEL

I
I
I
I

I
I
I

________ J

MAIN FRAME

FIGURE 1. RCA 601 SYSTj:M DIAGRAM

Additional memory modules via the memory channel are available to operate as asynchronous, independent units. In the RCA 601 System, asynchronism
means that the occurrence of an event begins upon fulfillment of a set of machine status requirements, and
terminates as soon as its own requirements are fulfilled. A high-speed arithmetic unit can be added via
the control channel to comprise an expanded computer.
This unit operates at higher speeds than the main frame
arithmetic unit and performs full-word-binary and decimal-floating-point arithmetic.
Remaining elements consist of transfer channels
which are links to peripheral devices via the inputoutput channel. Peripheral devices are available in
card readers and punches, high-speed printers, paper
tape readers and punches, and magnetic tapes. Flexible combinations of these devices within very broad
constraints may be selected to operate on-line with the

174
4.3
system. Two sets of tape stations are native to the
RCA 601 System - providing the choice of 100-kc. or
180-kc. decimal digit nominal transfer rates.

ELEMENTARY OPERATION "TRANSFER"
TIME~

St.p I Sot Up (SI)

St.p 2 Control Bus (C,)
St.p 3 Data Transmission (01, Tt)

B.

HARDWARE FEATURES

The generalized system logic design includes
unique features such as elementary operation mechanization, an asynchronous control system, a generalized
arithmetic unit transfer channel input-output control,
and an asynchronous memory system.
A unique feature of the 601 system is the manner
in which its instructions are implemented.. Instructions
are broken down into small component parts called
"elementary operations". A sequence of elementary
operations comstitutes the logical steps comprising a
machine instruction; thus, the elementary operation
corresponds to an instruction in much the same manner
as an instruction corresponds to a routine. Instructions
are performed by evoking these elementary operation
sequences and executing them one at a time. Thus, by
simply changing or adding elementary operation sequences,
the instruction complement may be added to or changed.
This open-ended design of instruction complement enables the customer to adopt new techniques in his computer operation as they are needed.
Asynchronism in operation timing is a convenient
tool for modular variability in which a configuration of
system elements is not fixed. The control system,
arithmetic unit, and data transmission employ this teclrnique. To illustrate this feature, let the succ'essive
elementary operations, "transfer" and "set", be considered. The "transfer" elementary operation calls
for the transfer of the information from one specified
register to another within the computer. The "set"
elementary operation transfers data from a memory
location into a specified register. As shown in an exaggerated form in Figure 2, the "transfer" operation
involves steps 1, 2, 3, and 4. The asynchronous aspect of the control system is illustrated between steps
1 and 2 and the occurrence of step 4. The "transfer"
elementary operation terminates just after the data
transmission (step 3) has started so that the next operation may begin. Thus, steps 5 and 6, which are the
set up and memory addressing for the next "set" operation, ~)Ver1ap with the relatively long transmission. The
asynchronous aspect of data transmission via the data
busses is indicated by steps 3, 6, and 8. There is a
unique detection circuit on the busses to detect echoes
from the receiver register and terminate the transfer
by the generation of a terminate pulse, T. In this way,
data transmission time depends on the physical configuration of the source and sinks involved. Note that
steps 6 and 3 overlap in time because separate busses
are involved; if the same bus is used then step 6 should
be interlocked to prevent its initiation until the T signal
is generated.
The RCA 601 System memory storage employs a
word format, even though the data format is extremely
flexible. The majority of data manipulation involves
logic with certain arithmetic properties. An efficient
and compact design is made by generalizing the basic
arithmetic unit to include data handling functions as
well as arithmetic operations. Operands that can be

ELEMENTARY OPERATION "SET"

StopS Sot Up (S:zl
St.p 6 Add,. .. Memory (A , T';

2

St.p 8 Doto Transmission (0], 13>
Stop 9 End(E2)

FIGURE 2. ILLUSTRATION OF ASYNCHRONOUS OPERATION ANO OVERLAP

manipulated may be in character, half-word, or word
format. Wired-in arithmetic operations include the
full range of add ,subtract ,multiply , multiply and accumulate, and divide, for fixed-point decimal operands
and for the majority of fixed-point binary operands.
By the addition of a high-speed arithmetic unit, basic
system speeds of certain operations are increased and
floating-point arithmetic is added to the instruction
complement. A further feature of the basic arithmetic
unit design is its built-in ability to accommodate variable size characters. Four different character sizes,
namely lengths of 3, 4, 6, and 8 bits, may be directly
addressed and manipulated. A character length register is used to deSignate the size of character in all
character operations. This register can be loaded
and re-Ioaded with appropriate deSignators during a
program by half-word set-register instructions. Operations other than character handling operations are
not affected by this register. The variable size character handling ability together with the general symbol
reoognition feature allows the RCA 601 System to handle a large variety of codes. A block diagram of the
basic arithmetic unit is shown in Figure 3. The adder
operation is an asynchronous circuit with respect to
carry propagation. That is, as soon as the carry
propagation subsides, the adder operation is terminated.
Peripheral devices in the RCA 601 System are
handled by control buffer packages called transfer
channels. These transfer channels work on-line with
the input-output control of the main frame by an. automatic instruction interrupt technique. The inputoutput channel is a general, standardized interface.
Thus, looking out from the input-output control, proper operation is maintained, regardless of the number
or the complement of the transfer channels in operation. This allows a generous flexibility in the makeup as well as the size of the input-output system. This
transfer channel concept, coupled with a general, allpurpose input-output instruction complement, makes
an efficient and economical way of coping with future
development of peripheral and custom devices. The
transfer channels are logically complete for independent and simultaneous operation with the main frame.
Additions of transfer channels mean potential additiqns
in amounts of simultaneity. The amount of simultaneity is automatically regulated by a built-in artificial,
simple calculation called speed-weight. The transfer

175
4.3
not to affect proper performance of these high-speed
circuits, wiring techniques become complex. Wire
lengths must be kept to a minimum. This is particularly true in the main frame processing unit. High
transistor packing density is specified in step with the
contemporary state of mechanical component packaging.
Despite preventative maintenance, computers occasionally become inoperative due to component or mechanical failure. Ready access directly to the internal construction means easier servicing with a minimum loss of
costly computer time. A basic requirement achieved in
the RCA 601 System package is that both the wiring side
and the plug-in side may be opened for serviCing without
affecting the operating status of the computer. Means
have been designed to make it easy to tap any point on
this wiring for observation.

FIGURf 3. BASIC ARITHMETIC UNIT BLOCK DIAGRAM

channel concept also makes it possible for the operating console to operate interpretively, and communi-.
cate with the computer without having to stop operatIOn.
A key feature in the RCA 601 System is the highspeed memory. Each 56-bit word is accessed in 0.9
microseconds and the complete address-read-write
cycle is l.5 microseconds. The memory operation is
logically controlled and asynchronous. Separate commands to operate the three memory logical steps (address, read-out, and write-in) are directed from the
control system. Thus, its operation is integrated
with the control system. Overlapped operation is possible when more than one module is present. Generally three modes of operation can be accomplished:
1. Address and read-out.

2. Address and write-in.
3. Address, read-out and write-in.
The design approach here is basically conservative. The application of commercially existing components and proven techniques to solve the problem of
this advanced equipment design have been used rather
than depending on the development of new compon~n~s.
The design objective was to make the cost competitive
with presently available memory systems that are up
to eight times slower. The design stresses were on
cost, reliability, and simplicity, taking into account
the expected maintenance problem. The storage elements used are magnetic cores. The core size chosen
has an I. D. of 18 mils; an O. D. of 30 mils, and a
thickness of 10 mils. This small size is chosen for
performance as well as for compactness of mechanical packaging. The circuit design simplifies the wiring complexity that is required in most magnetic core
memories.
The product design of high-speed computers
must deal with problems arising from multitudes of
short pulses with extremely fast rise times. In order

Transfer channels, additional memory units, and
future expansion units are packaged in modules which
are installed in universal racks. A unique channeljumper technique is used. These channel-jumper cables thread through the entire system in a manner illustrated in Figure 1.

c.

PROGRAMMING FEATURES

One vogue in the majority of recently-announced
computing systems is the relative brevity of program
statement contrasted to systems currently in common
use. Factors contributing to these concise programs
include powerful, well-integrated order codes, complex address-modification capability, flexible addressing schemes and variable instruction length.
Provision for variable length data has been made
in early electronic machines and the similar motivations of efficient memory utilization and the elimination of "filler" material have extended this to include,
also, those bits, in memory, which direct the control
unit of the machine. In the RCA 601 System, "variable instruction length" means that instructions may
be either 1, 2, 3, or 4 half-words in length. 1 A unit
data length in the RCA 601 System is either a word
(or half-word) or a character. One of these, the halfword of 24 information bits, is the unit length for
instructions.
Generally an instruction half-word is an operation half-word that may have as many as three address
half-words appended to it. A distinction has to be
made between the number of addresses contained in an
instruction and the number of addresses utilized as an
integral part of the execution of an instruction. Each
instruction type utilizes a fixed number of these address registers, e. g., a MOVE will utilize two address
registers, MULTIPLY utilizes three, a DO instruction
utilizes none at all, etc., and frequently those are the
number of addresses written in that instruction. However, the address registers utilized by an instruction
have their contents augmented by one data-length unit.
This value of the address register is often the appropriate value of the register for the operation of the
next instruction. In particular, this occurs when the

1Input-output instructions are the exception to this
statement.

176
43

data of interest is stored in contiguous arrays in memory. In such a case, when an address register contains the desired value, then that address need not be
written in the program statement. Three bits termed
"assumed bits" in the operation half-word of an instruction specify whether or not address half-words
for each of three address registers are written following the operation half-word. Thus, a lesser or a
greater number of addresses than used by the instruction may be written. When fewer addresses are used,
the remaining addresses are said to be "assumed";
when additional addresses are used, they merelycause
the address registers to become loaded. The stepping
of the address registers in conjunction with assumed
addressing is really equivalent to automatic address
modification by unity, with, however, several advantages over address modifiers: no address modifiers
are used up for this purpose; no time is lost to accomplish the address modification; no space is required in
the program for the address; and no time is required
to access the address.
Another place in which explicit addresses are not
written occurs when the accumulator is being used in
arithmetic operations. Again three bits in the operation half-word specify whether any or all ofthe operands
refer to the contents of the accumulator. Thus, a single half-word suffices to instruct the accumulator to
double itself, an ADD instruction with all three addresses assumed, and the accumulator specified as
each of the operands. Figure 4 illustrates some of
these features.
A unique and substantial addressing flexibility is
incorporated in the address half-word. The 24-bits of
this half-word, shown in Figure 5, are divided as follows: an address part of 19 bits; 15 for addressing
215 words; a 16th to address half-words; and three
additional bits to address characters within the halfword. The 20th bit is used to designate indirect addressing. The four remaining bits are used to address
any of eight address modifiers.

24 BITS

m mrnm

ill

Increment

Address
Modifier

Address
Modifier

m························~

x ........................

xxx

mJ
xxx

X

(15)
Word Address
Indlrftl

Address

Haff·Word
Address

Choracter
Address
or
Control
Sits

of
Indirect
Addressmg

or
Address
Modlflcahon

FIGURE 5. ADDRESS HALF·WORD

Seven of the address modifiers are a full word in
length, where the left half-word is the value part applied to an address when selected, and the right halfword is an increment part selectively added to the
value part. This selectivity is gained by providing two
addresses for each address modifier, one of which
causes an automatic incrementing to take place. This
accounts for the generous use of four bits to select
eight address modifiers.
Applying both address modification and indirect
addressing to an address would normally require an
arbitrary order of precedence. However, in the RCA
601 System whenever an indirect address is specified,
it selects another half-word in which is contained
another address. Therefore, the three bits used for
character addressing in this case, might be superfluous, but are used instead for the following:
1. To defer application of the address modifier
with the indirect address to the direct address.
This can permit dual address modification
on the direct address.

2. To inhibit address modification on the direct
level.
3. To inhibit subsequent indirect addressing.
EX. h 1;-'

Of

DO n

B. ASSUME!)

Go

C' ASSUMED
IN CONSECUTIVE WORDS
ADD

A. ASSUMED

C ACCUMULATOR
TOTAL PROGRAM> THREE HALF·WORDS
DO n

C' ASSUMED

Go

MULTI ACC Ju ASSUMED
B, ASSUMED
C' ACCUMULATOR
TDT AL PROGRAM> FOUR HALF·WORDS

DO n

A: ASSUMED

B' ASSUMED
C. ASSUMED

Figure 6 illustrates the possibilities with this
octal digit for the case of only a single level of indirect
addressing.
Indirect addressing and the flexible application
of address modifiers provide considerable facility in
working with address lists. Lists of addresses can
be generated by magnetic tape read instructions which
list the addresses of special symbols (designated by
the programmer) in memory, as well as the information itself. It is then possible to eliminate much data
movement by utilizing the address lists.

MUL TIPLV B' ACCUMULATOR

c:

ACCUMULATOR

TOTAL PROGRAM> THREE HALF·WORDS

FIGURE 4. ASSUMED ADDRESSING AND STEPPING OF ADDRESS REGISTERS

Efficient data encoding is carried a step further
in the character handling capability ,of the RCA 601
System. It has been mentioned that four different
character sizes (lengths of 3,4, 6 and 8 bits) may be
directly addressed and manipulated. Thus, sequences
of decimal digits are normally handled in four-bit
characters, alphanumeric data in six bit characters,
etc., providing efficient tape and memory storage.

177

4.3

BITS OF ADDRESS HALF·WORD

_4_

-.!.. J! 1-

ADDRESS k

AMI

B

ADDRESS B:

NJ.2

C

ADDRESS B+(AMI):

AM3

D

where linkages between programs occur such as to
permit maintenance of input-output rates.
Figures 7 and 8 present a brief description of the
characteristics and representative times of the current
RCA 603 Computer in the RCA 601 System.

d PERMITS:
INDIRECT ADDRESS TO BE

1)B
OR 2) B+ (AMI)

DIRECT ADDRESS TO BE

I) C+ (AM2)

2) C+ (AM1)
3) C+ (NJ.I) + (AM2)
OR 1) D+ (AM3)
2) D+ (AMI)
3) D+ (AMI) + (AM3)

MEMORY MODULE SIZE

8192 WORDS, 56 BITS EACH
UP TO 4 MODULES

OPERATION TIMES·

MICROSECONDS

A + B-C, l·WORD
ACCl'MULATOR

6.6

+ B-ACCUMULATOR, I-WORD DECIMAL

3,2

A x B-C, l·WORD DECIMAL (NO ZEROS)

69.4

A -B, 10 WORDS

32.0

A-B,6 6-BIT CHARACTERS

15.1

A-B,6 4-BIT CHARACTERS

11.3

BRANCH

0.5

DO

1.5 to 3.0*

INSTRUCTION ACCESS AND INTERPRETATION TIMES
FIGURE 6. CONTROL OF INDIRECT ADDRESSING AND ADDRESS MODIFICATION
ACCESS

2.5 to 7.0*

INDIRECT ADDRESSING

1.7

INDEXING

2.9 to 3.5*

INPUT·OUTPUT CONTROLS

The RCA 601 System features sets of indicators
to provide a parallel decision making ability concurrently with the running program. Conditions sensed
include: arithmetic underflow and overflow; error
conditions; unsuccessful scanning operation; result
positive, negative or zero; and a binary indicator specifying such information as whether a logical connective
yielded zero. A programmer-set mask is associated
with each indicator to permit or inhibit an automatic
branch whenever the condition is encountered. This
feature permits minimizing the length of repetitive
loops by eliminating, each time, expllcit senSing for
rare conditions.

UP TO 16 SIMULTANEOUS INPUT-OUTPUT OPERATIONS

* DEPENDS ON PROGRAM SEQUENCE

FIGURE 7. MAIN FRAME COMPUTER

CARDREAD

600 CARDS PER MINUTE

PUNCH

100 CARDS PER MINUTE

PAPER TAPE

When one of these automatic jumps does occur,
storing of relevant registers takes place automatically,
assuring ability to restore the status of the machine
whenever control is returned to the interrupted point.
In particular, one of the conditions which will cause
an automatic jump to occur is the termination of an
input-output operation. The format of an input-output
instruction differs from the rest of the order code, including up to 5 address half-words. One of these address half-words contains an address to which control
is to be transferred when the operation is complete.
This permits an effective multi-programming scheme,

READ

1000 CHARACTERS PER SECOND

PUNCH

300 CHARACTERS PER SECOND

PRINTER
120 CHARACURS PER LINE

600 LINES PER MINUTE

MAGNETIC TAPE
lS0-KC DECIMAL DIGIT RATE
100-KC DECIMAL DIGIT RATE
SO-KC DECIMAL DIGIT RATE

FIGURE S. PERIPHERAL DEVICES

179
4.4
ASSOCIATIVE SELF-SORTING MEMORY
Robert R. Seeber, Jr.
Product Development Laboratory, Data Systems Division
International Business Machines Corporation
Poughkeepsie, New York

Summary
A cryogenic associative memory is proposed
in which the status of a memory word is determined, with respect to an interrogating word,
on a high, low or equal basis. Thus the bracketing pair of words is determined, allowing the
interrogating word to be inserted between them,
a "dummy" register holding it temporarily. A
double-shuffle operation moves the other words
to make room for the new word in proper sequence.
Introduction
One of the major problems that occurs in the
use of a computer, particularly in business
uses, lies in the sorting of data. The importance of this problem can be judged on the
basis of the hundre~s of pages of description
of sorting routines that have been written.
Programs are in some cases many thousands
of instructions in length. Heretofore, the
attack on the sorting problem has been almost
entirely on the programming level. In this
paper is proposed a memory system organization to achieve sorting within the memory.
By the use of associative memory principles,
extended to facilitate sorting, a new approach
to sorting is developed. Words to be sorted
enter memory in random order but each is
placed within memory in its proper relationship to previously sorted words.
Associative Memory
Associative memory may be defined as memory in which a word of data is retrieved on the
basis of part or all of the data content of the
word. Words are stored in vacant registers
and subsequently are recovered not by naming
the location of a register but rather by naming
a portion of the word as an identifier. This
identifier or tag may in some cases be a portion added to the data word for the identification purpose. However, in the more general
case, which we call a fully associative memory, the data word can be retrieved by using
selected portions of the word itself as its identifier; in this case, the remaining portions are
masked out. Thus the knowledge of the exact

storage location in the physical sense may be
completely immaterial to the operation. A
more detailed explanation of a simple associative memory was given in an earlier paper. 1
Sorting with an Associative Memory
The use of an associative memory reduces
somewhat the need for sorting, particularly
in the case where sorting is used to provide
means for locating particular words by their
ordered identifier or argument, as is usual
in table look-up operations. Since an associative memory allows direct access by these
identifiers, sorting for these purposes is not
necessary. But for other purposes, particularly for sorting output lists, sorting is required. This may be done by an associative
memory by arranging to retrieve in order all
possible combinations of the given identifier.
For example, if we have a 3-decimal digit
identifier and want to retrieve 965 different
data words identified by this 3-digit code, we
can set up a counter to provide us with all
combinations running from 000 through 999
to act as identifiers for the 965 words. The
efficiency will be quite high, requiring 1000
retrieval tries to produce the actual 965 retrievals in order. However, this system
breaks down in the more frequent case of the
identifier not so densely. coded. For example,
a 10-decimal digit part number code may have
only a few thousand different parts which would
require 10 10 retrieval tries to recover in order.
Since sparsely populated codes seem to be the
more general rule, particularly in business
problems, a means for actually sorting the
words would be very desirable.
Proposed System
In a general associative memory a simultaneous comparison is made between an entry word
and all of the word registers in the memory to
determine the match or non-match status of
each word. This is done by providing comparison circuits between the entry register and
each of the word registers such that an equal
or unequal status is determined. This has
previously been done for the purpose of retrieving a matched word from memory. For

180
4.4

writing into memory in order, we now add the
requirement that these comparison circuits
be extended to provide a comparison indication on high, low or equal for each of the word
registers. This then will supply us with enough
information so that we can determine where
within a previously sorted sequence a newword
should be inserted. Additional registers called
dummy registers are supplied between each of
the word registers. This allows an incoming
word to be placed between the proper two words
in memory; then, by a double-shuffle transfer
cycle, the words in memory are shuffled to
ente r the new wo rd in to its prope r plac e.
Figure 1 is a block diagram showing this
arrangement. At the top there is an entry
register where data words are coming infrom
some other portion of the computing system.
Comparison circuits from this entry register
extend through all of the word registers and
each of the word registers supplies indication
as to whether it is low, high or equal to the
word in the entry register. From this information, the dummy register lying between
the two word registers which bracket the word
in the entry register can be selected and the
word then can be transferred from the entry
register to that dummy register. On this
same half cycle, all the words in word registers above the selected dummy register move
up to the respective dummy registers immediately above each of those word registers.
On the next half cycle, while a new word is
entering the entry register, the words in dummy registers move up to word registers immediately above those dummy registers, thus
leaving the words in memory again in word
registers in proper order including that word
just entered.
Means are provided for exiting one word from
dummy register 1, that is, the forward exit
register, as the memory fills up. That is, as
the memory fills up, earlier words are pushed
out the top. In this case, the echo register
retains the information of the word just exited.
Another mode of operation is provided so that
words coming in through the entry register
may be accepted in inversely sorted order.
In this case, as the registers fill up, words
are pushed out the bottom through the backward exit register; this inverse function may
be useful in handling partly sorted blocks of
words read backwards from a tape on which
data has first been stored in the normal forward order. This operation may reduce the
need for re-winding operations when tapes are
used in conjunction with this sorting memory.

Sorting Example
The chart of Figure 2 shows the successive
cycles of the operation of sorting 21 different
words of which the sorting identifiers are
shown on the entry line. It is assumed that
the memory for this example has 5 word registers, WI through W5, and 6 dummy registers,
Dl through D6. The two-digit identifier has a
bar over it when the word has just arrived at
the location so indicated. A code with no bar
indicates that the word is still present at that
location but has been moved elsewhere, i. e. ,
this is a "shadow" word. Where a bar appears
under an identifier, this indicates that the word
has not been moved on that cycle but has been
previously moved to that location.

Thus, it maybe seen in Figure 2 that the number 29 is placed in the entry register during
the A portion of cycle 1. During the B portion
of cycle 1, the number 29 is transferred to
dummy register W + 1. During the A part of
cycle 2, the number 1 is placed in the entry
register and the number 29 is transferred
from dummy register W + 1 into word register
W, where in this instance of illustration, W
equals 5. During the B part of the second
cycle, the 1 is transferred into dummy register W where W is equal to 5 in tJ:1is instance,
and the number 29 is transferred from dummy
register 6 into word register 5. Since the number 1 in the entry register was less than the
number 29, it will be observed that the number
1 was placed nearer the top of the column of
registers. During the A portion of cycle 3,
the number 44 is placed in the entry register,
the number 1 is transferred from dummy
register 5 to word register 4, and the number
29 remains in word register 5, the image being in dummy register 6. During the B portion
of cycle 3, the number 44 is moved into dummy
register 6 replacing the image 29, the number
29 is moved into dummy register 5 and the
number 1 is moved from word register 4 into
dummy register 4. The first three cycles have
illustrated the cases where the number in the
entry register was less than the numbers stored
in memory and the other instance where the word
in the entry register was greater than those
stored in memory. The next example of cycle
4 concerns merging a number among those previously stored.

In the A part of cycle 4, the number 10 is
placed in the entry register, 1 is moved to
word register 3, 29 is moved to word register
4, and 44 is moved to word register 5, thus

181
4.4
making available the vacated dummy registers.
During the B part of cycle 4, the number 10 is
inserted in dummy register 4 and the number
1 is moved from word register 3 into dummy
register 3. In this manner, a word is merged
with those in memory.
Cycle 7 illustrates the overflow of a word to
the output bus; cycle 11 illustrates the start of
another block of words at the end of memory.

Cryotron Circuits
When cryotron circuits are available, they
would appear to have ideal properties for such
a memory. It should be noted that in the selfsorting memory, as in other associative memories, there is a great deal of distributed logic.
The cryotron is a single element which can be
used for both storage and logical purposes.
An implementation of the self-sorting memory
in single-crossing, thin-film cryotrons is proposed. Cryotron circuits have previously been
described by Dudley Buck. 2 Here we use a
simplified symbolism, a gate being shown by a
semi-circle with its diameter lying along the
gate line and the corresponding control wire at
right angles to the gate wire and bisecting the
semi-circle. Figure 3 is the configuration
for a flip-flop with read-in and read-out circuits employing this symbol.

The top current source (denoted by a "+")
splits into two paths, only one of which is
superconductive at a time. If the left path is
conducting, the flip-flop is said to be "on" or
contain a "1 "; if the right path is conducting,
the flip-flop is "off" or contains a "0." The
feedback action of the flip-flop is accomplished
by the top or bottom c ryotron, depending on
whether the flip-flop contains a "0" or a "1."
If it contains a "Ill the left path of the flipflop is conducting. This current through the
lower cryotron control makes the right path
resistive and keeps the current flowing in the
left path. Similar action takes place at the
top cryotron when the right-hand path is conducting.
Assume that we have a 110" in the flip-flop,
and we want to change its state, that is, read
in a "1." We cause a current flow through
the control path of the "read-in 1" cryotron,
making that cryotron resistive. Since both
the right and left paths of the flip-flop are
now resistive, the current divides in half.
When the current through each path falls near

the half point, neither the upper nor the lower
feedback cryotron is resistive. This leaves
the "read-in 1" cryotron as the only resistive element, forcing all the current to flow
through the left-hand path and making the
lower cryotron resistive. The flip-flop has
now reached a stable state in the "111 or "on"
condition, and the "read-in 1" current can be
removed. Similarly, we can change back to
an "offll condition by applying a current
through the "read-in 011 cryotron.
The read-out is accomplished by completing
a circuit from the read-out current source
through one of the read-out cryotrons and to
the output device. If we assume that the flipflop is in the 110" state, current will be flowing through the right path and through the
control path of the "read-out 111 cryotron,
making that cryotron resistive. Current then
flows through the superconducting "read-outO"
cryotron gate to the output device, where a "0"
will be sensed. The circuit is similar through
the "read-out 1" cryotron when the flip-flop
contains a "1. 11

C ryotron Bit Po si tion
The heart of the memory system lies in the
data bIt position shown in Figure 4. In this
figure a portion of a data bit for word register
W -lis shown near the top of the figure and the
complementary portion for word register W is
shown near the bottom of the figure. In between is the flip-flop for the dummy register
lying between these two word registers. At
the top of the drawing there are provided readout and read-in circuits for going from or to
that word register to or from the dummy register immediately below. In the dummy register
flip-flops, there are shown corresponding readin and read-out circuits for transfer between
the dummy register and the word register above
or below it. There is also shown the select
circuit which provides for the storing in this
dummy register of a data word coming from the
entry register.
For word register W there are shown entry and
exit transfer circuits for coming from or going
to the dummy register above it. Next is amatch
circuit which controls the exit of data from this
word register when it is a matched register for
the read-out of data in the normal associative
manner. The last lines on the figure show the
equal, low and high matching circuit for determining the selection of the proper dummy register.

182
4.4
The vertical lines extending through m.em.ory
are the entry and exit busses for the "0" (on
the left of the bit) and for the "1" (on the right
of the bit)jalso the "0" and "1" com.pare lines
(on either side of the storage loops), carrying
the information from. the entry register to be
com.pared with the bit status. The no com.pare
line will carry current instead of either the
"0" of "1" line if this bit position is to be
m.asked out, thus forcing an equal com.parison
as far as this bit is concerned.
As an exam.ple of operation. assume that the
bit shown is the right-hand bit of the interrogating tag in a forward sorting operation.
Bits to the left have shown an equal status.
This bit is a "I" com.pared with a "0" in the
entry register. Current flowing into the com.paring circuit of this bit on the equal line,
frOID the left, will be blocked from. the three
upper com.paring lines and perm.itted to flow
through the bottom. line, thus onto the high line
into the control section of this word, as shown
in Figure 5. Assuming that this word, W, is
the first word in m.em.ory having the "high"
status, the control circuits will operate the
dum.m.y out line during the "A" half of cycle,
thus m.oving the word from. dumm.y register W
up to word register (W -1) com.pleting the pre ..
vious sort operation. During the second hall
cycle, "B," the word from. the entry register
\!ill be entered in dum.m.y register W preparatory to being m.oved into word register (W-1)

on the "A" half cycle of the next sort operation.
Figure 5 shows the circuits for operating the
entry and transfe!' circuits as controlled by
the high, low, and equal signals.
Conclusions
By extending the properties of an associative
m.em.ory, it is possible to secure a self-sorting
m.em.ory. The work thus far done is of a purely
system.s nature since the proper com.ponents are
not yet available. With a self-sorting m.em.ory,
program.m.ing can be m.aterially sim.plified and
the internal sorting procedure im.proved.
Acknowledgm.ents
The assistance of Arthur J. Scriver, Jr. is
gratefully acknowledged.
References

1. Cryogenic Associative Mem.ory by
Robert R. Seeber, Jr., National Conference
of the Association for Com.puting Machinery,
Milwaukee, Wisconsin, August, 1960.

2. The Cryotron -- A Superconductive Com.puter Com.ponent by D. A. Buck. Proceedings
of the IRE, April, 1956.

183

4.4

ENTRY REGISTER
ECHO EXIT REGISTER
DUMMY REGISTER I
(FORWARD EXIT REGISTER)
WORD REGISTER I
REGISTER 2
REGISTER 2
REGISTER 3
REGISTER 3
REGISTER 4
REGISTER 4

WORD REGISTER

ECHO EXIT REGISTER
Fig. 1. Memory System.

,p.. I-'
•
00
,p.."",

CYCLE
PART
ENTRY

3

2

I

A B A B

-

29 29 I

I

5

4

A B

6

7

8

9

10

II

13

12

14

15

16

17

18

19

20

21

A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B

- - 39 44
- 55 58
- 58 64
- 64 82
- 44 50
- 50 51- 51 55
-I I 10 10 -II 12 12 29 29 36
- 36 39
- 82 98- 98
- 58 64 64 82 82 98 98 22
- 39 44 44 50 50 51 51 55 55 58
-I I 10 10 -II -12" 12 29 29 36 36 39
- 44 50
-" 29 29 29 36
- 36 39
- 50 51- 51 55
- 55 58
- 58 64 64 82 82 98 98 22 22'
-I I 10
- 39 44
- 10 - II 29
-- -I I -10 10 -II " 29 29 29 29 36
36 39 39 44 44 50 50 51 51 55 55 58 58 64 64 82 82 98 98 22 22 23
"
- 82 22
- 22 22 22 23
- 36 36 36 39
- 55 58
- 23
-I I -10 10 -II II 29
- 29 36
- 50 51- 51 55
- 64 82
- 58 64
- 39 44- 44 50

-

-

-

-

-

44 44 10 10 II II 51 51 39 39 36 36 12 12 50 50 23 23 55 55 22 22 58 58 42 42 64 64 82 82 25 25 98 98 31 31 38 38

I

ECHO
EXIT (01)
WI
02
W2

-I

03

-I

W3

-

04
W4
05
W5
06

I

-I

I

I

I

10 10 -II II 29 29 36 36 36 36 39 39 44 44 50 50 51 51 55 55 58 58 64 64 82 82 22 22 22 22 23 23 25

-

-

10 10 I I II 29 29 39 39 39 39 39 39 44 44 50 50 51 51 55 55 58 58 22 22 22 22 22 22 23 23 23 23 25 25

-10 10 -II

II

-

-

29 29 39 39 ~9 39 39 39 44 44 50 50 51 51 55 55 58 58 22 22 22 22 22 22 23 23 23 23 25 25 31

I 29 29 29 29 29 29 44 44 44 44 44 44 44 44 50 50 51 51 55 55 22 22 22 22 23 23 23 23 23 23 25 25 25 25 31 31

- -- I 29 29 29 29 29 29 44 44 44 44 44 44 44 44 50 50 51 51 55 55 22 22 22 22 23 23 23 23 23 23 25 25 25 25 31 31 38
29 29 29 29 44 44 44 44 44 44 51 51 51 51 51 51 51 51 51 51 23 23 23 23 23 23 23 23 42 42 42 42 42 42 42 42 42 42 42 42
- - - - - -I

29 29 29 29 44 44 44 44 44 44 51 51 51 51 51 51 51 51 51 51 23 23 23 23 23 23 23 23 42 42 42 42 42 42 42 42 42 42 42 42 42

Fig. 2. Sorting Example.

+

J 1 J

- READ IN I

READ IN 0-

~
READ OUT 0-

+ READ IN CURRENT SOURCE

1 I

+ READ OUT CURRENT SOURCE
- READ OUT I

Fig. 3. Cryotron Flip-Flop.

""' .....

•

CX)

"'" c.n

186

4.4

DATA BIT
COMPARE
ENT-EXIT NO "I-I-. "
'0'
'0'
'I'
~

WORD

I

~

,I

EXIT-ENT
III

J ,J

,I

,,,.1/1\

-

REGISTER
'(W-I) ,

1. ,

,
~

-!:

.v

,

...

UP..

,

.

....

,,

..... TRANSFER

1.

....

DOWN

J.~

DUMMY
REGISTER

....

.-

-

....

- -,
,
.v

~"J.. I~

,

,

J.

-

..

....

,

...

-- DUMMY IN
----- DUMMY OUT

, J.. ,

.III

I'

~.1

-

1

,

I"

...

....

/,~
}I

"

WORD

REGISTER
aWl

U

....L

111\ _

---- SELECT
DOWN
---TRANSFER
-UP

,

..
II'!r.

T
11\

~

1.'

-

,--.l.

It\

....

11\ ~ t\

"

11\

11'\

%

'"

I~
11\ 1

~

11\

---- MATCH
...
..... EQUAL
LOW

1 , ....

11\

-

, 1\-

r

....
,r "

,r"

- ..

""-..

,r

Fig. 4. Data Bit.

"

,r

HIGH

SWITCH
FOR BACK
" "
U...p

MATCH
NO
PREV
" PREV
" SELECT
NO
PREV
' PREV
"

EXIT(VAC BIT I)

T.S
I. ::i.
"
EXIT(VAC BIT I)
ON ,?,FF
'I

,

TRANSFER ...
DOWN
DUMMY IN -DUMMY OUT

---

~

SELECT

$Jl

:E!

o

I"'t

Q.

TRANSFER

:::0
CD
0;9,

1''\
J"

1\

--

---

11\

--

DOWN
..

-..
UP

,

T

1--

...

~I\

T

--

CD

-- '"

(')

o
::s

~

o
!'"'"'

J'''

LOW

,...

HIGH

...,

J I"

"

J

-

"

1

11\

I

T,

....

,

1'1\

~

...

" I'

...

~

~

'" ~

~

~

, 'r

~

--

1

.....

-+

11\

~

'" ,...

'" ,...
10..4

~

\..

11\

~

~

~

1'1\

-- ....
~

1

1

....,.

~
~

1'1'\

r

J

,'\

J .. V
1'''

-- +

~

T I"

1'\

1

11\

1'1'\

~

-+

1

1

~

11\

I'\'

I

...

I"'t

,

11'\

-

"

~

C/l

--...--

T

J

11\

"

1

-- "

/,

~

MATCH
EQUAL

11\
I' \.

J'I\

"

~

1\

--

1 \.

TRIGGER
FOR BACK

.

~

~
~

~

r

--,~

~

,j::oot-'

•

00

,j::oo

-..]

189
~

RANDOM

UNIVAC· - RANDEX*II
~CESS DATA STORAGE SYSTEM
G. J. Axel

Remington Rand Univac
Division of Sperry Rand Corporation
Philadelphia. Pa.
SUMMARY
A random access drum file. having 198.6
million bits total storage capacity. a bit density of 650 pulses per inch, and 385 milliseconds average data access time. is described in
this paper.
Two flying-magnetic-recording-heads transfer data to and from the drum file unit. They
are self-supported. by a hydrodynamically generated air film. over two magnetically plated
drums (24 inches diameter and 44 inches long).
The heads. drums. and head-positioning servo are
enclosed in a sealed and pressurized chamber to
prevent their contamination by foreign material
normally found in the atmospheric air.
The text describes in detail:
(1)

The logic of operation and description
of the overall drum file.

(2)

Construction of the flying-heads.

(3)

Descriptions of the servo and mechanical adder, which position the flyingheads over selected addresses on the
drums.
INTRODUCTION

RANDEX*II, developed by Remington-Rand
Univac: is a mass storage. random access drum
file (See Figure 1), capable of being used with
anyone of a number of UNIVAC computing systems,
both present and future. It is presently designed for use with a biquinary (5, 4. 2. 1)
computing code. however. other codes can be
readily incorporated. Initial use of this drum
file will be on the UNIVAC·- Solid State Computer; ten drum files can be used on this computer in conjunction with a single drum control
unit.
The drum control: 1) decodes computer instructions for the drum file systems and issues
the commands to the drum file(s) to process
these instructions; 2) supplies d-c voltages to
the drum file system circuits; 3) provides the
data transfer medium between drum file(s) and
computer; and 4) functions as an off-line control for the mass storage drum file system.

* Trademark of the Sperry-Rand Corporation.

Historically. the RANDEX II drum file follows the development of the UNIVAC - LARCI and
RANDEX I drum files. All three units use the
hydrodynamically supported flying-magneticrecording-head principle, and magnetic plated
drums 24 inches in diameter. Whereas the LARC
drum file contains a drum 28 inches long. one
sequential head-positioning mechanism and a single flying-head, the RANDEX drum file contains
two drums 44 inches long, one random access headpositioning mechanism and an individually flyinghead for each drum.
The RANDEX I drum file was designed using
very conservative bit and track densities to
assure reliability of the initial design. Subsequent improvements in the head-positioning
mechanism, finishing and magnetic plating of the
large drums, magnetic recording elements of the
flying-heads, and recording techniques brought
about the development of the larger capacity
RANDEX II. Specifications for RANDEX II are
listed in the table of Figure 2.
DETAILED DESCRIPTION
The central element of the RANDEX drum file
is a pressurized dust free enclosure (See Figure
3), which contains the following; two individually driven magnetic plated drums mounted on
self-aligning roller bearings. and on which information is stored; the flying-heads used for
reading and writing; and a head-positioning
servo. A mechanical lever adder (discussed in
detail below). located on the lower right section of the drum file, is used for additional
head positioning. and is connected to the servo
by a mechanical linkage. Above the dust free
enclosure is an electronic deck on which the
RANDEX control panel is mounted. and within
which are located plug-in chassis and a transistor circuit card library (See Figure 4).
The dust free enclosure acts to keep foreign material away from the drums, flying-heads.
and servo components. The enclosure is pressurized by blower action with incoming air.
which is first filtered through a low-cost commerical filter to remove the largest percentage
of foreign m~terial, and then sent through a
special filter which removes particles as small
as 0.3 micron (approximately 0.00001 inches)
with 99.97 per cent efficiency. Air is continuously circulated within the enclosure. passed
over the servo motor for cooling. and then

190
4.5

re-circulated back through the above mentioned
special filter by another blower 1_ to assure permanent cleanliness. A window, which is part of
the sealed enclosure, allows the operation of the
drums, flying-heads, and servo to be observed
from the front of the drum file. Doors in the
rear section of the enclosure (See Figure 4) are
located behind each of the drums to permit access
to the drums recording surface for cleaning and
inspection purposes. Easily removable end-bells
on both sides 'of the enclosure (See Figures 3 and
5) permit access to the servo components and
flying-heads. Contamination of the clean air
within the enclosure is practically eliminated
by permitting only small access areas to exist
when inspection or maintenance of servo components and the flying-heads is desired. Clean
areas are not required for these functions. A
further guarantee of cleanliness when the endbells are removed is assured by the fact that air
flow is always out from the enclosure, due to internal pressurization.
Each drum consists of cast bronze end supports and a center support, upon which a 3/16
inch thick brass tube is shrunk. This assembly
is fixed to one end of a supporting steel shaft
and is permitted to float on the other end,
thereby allowing for differential expansion resulting from temperature changes during assembly
and operation. The drum is then machined on a
lathe to provide a concentric, smooth, and uniform surface over which the flying-head will
operate. Final steps in drum manufacture are NiCo magnetic plating, balancing, and testing for
both head flying characteristics and plating
quality.
Reading and writing of information on each
of these drums is performed by an individual
flying-head, which is supported over the drum
surface by a hydrodynamically generated air film
created by the rotating recording surface of the
drum. No external means are used to provide an
air film between the head and drum thereby avoiding unnecessary biasing of the head and possible
localized contamination effects of the head and
recording surfaces. Each head is gimbal-mounted
and has three degrees of freedom, so that it can
follow the drum surface and maintain a uniform
head-to-recording surface spacing. Upon command
a head lowering and raising mechanism lowers the
head into flying position over the drum recording
surface, without physical contact between head
and drum surfaces. An area is set aside on one
end of the drum for this function. Should it be
desired to raise the head or stop the drums, or
should some malfunction occur which may cause
the head to touch or approach the drum recording
surface closer than its established design spacing, the head raising mechanism will automatically lift the head away from the drum, regardless of location along the drum axis.
The two flying-heads are mounted on a common carriage (See Figures 5 and 6) that moves
along a rail (located between the two drums)

parallel to the recording surfaces. The carriage
is driven by a cable that passes over a capstan
on the shaft of a servomotor located in the left
end-bell (Figure 5). A servo-potentiometer,
located in the right end-bell (Figure 3) is connected to the carriage by a thin steel band.
The potentiometer is a part of a bridge network
in the servo pOSitioning logic and is the carriage position indicator. Mounted parallel to
the carriage rail is a movable notched rack (See
Figure 6), connected to the lever adder on the
right and biased against the lever adder by a
spring on the left. Anyone of its 20 pGai~ions
is determined by the output of the lever adder.
There are 100 accurately machined and uniformly
spaced teeth on the rack, whose shape can be
seen in Figure 6. When the carriage is in position, over a preselected notch of the rack, as
determined by the servo-potentiometer, a pawl is
extended from the carriage and moved against the
selected tooth. Therefore, by means of the
servo and the lever adder. the carriage can be
driven to anyone of 2000 discrete positions.
called tracks, along the drum's recording surfaces. The combination of two drums and two
heads then provides 4000 tracks of data per drum
file.
Servo and lever adder movements are performed
in parallel. Going to a new address may involve
servo and/or lever adder changes. When a servo
change is indicated, the carriage is withdrawn
from the tooth, the pawl is retracted from the
notch, and the carriage is moved to the newly
selected track where the pOSitioning cycle is
repeated. The lever adder moves the notched
rack to a new position, independent of the servo
change. However, servo positioning circuitry
must compensate for a lever adder movement. The
repositioning of either or both of these mechanisms results in a new track address.
The electronic deck assembly contains a
hinged transistor card library and four plug-in
chassis; namely, servo-amplifier, servo-amplifier power supply. address register, and control
chassis (See Figure 4). The transistor card
library houses plug-in cards, which contain
transistor circuits that are associated with
flying-head pOSitioning logic, read-write logic.
and malfunction logic. The servo amplifier
drives the control field of the servomotor; the
servo-amplifier power supply supplies the d-c
voltage required for the operation of the servoamplifier.
The address register contains a relay network. which functions as a combined digital to
analog converter and memory. It is used to decode and store the track address as it is received from the drum control unit. The control
chassis contains relays associated with flyinghead malfunction circuits, alarm circuits and
other logic circuits.
The RANDEX control panel, mounted on the
electronic deck assembly (See Figure 3), has

191
4.5

two sets of controls and indicators; one is for
the use of the operator, and the other for use in
maintenance. The operator's controls and indicators are located on the left front side of the
panel; while special maintenance controls and indicators are located on the right front side of
the panel, behind a normally closed access door
in the casework (See Figures 1 and 3). All controls to manually operate the drum file off-line
are provided on the operator's and maintenance
panels, although specific changes in track addressing, supply voltages and read-write instructions must be obtained from the drum control.
The carriage may be moved over the length of the
drum, to approximate track positions, by use of
a sweep control on the maintenance panel. A
break-in plug is provided on the electronic deck
to set new address selections in the address register relays from an external "black-box", if so
desired, although this is not considered standard
equipment.
Access doors are provided at strategic locations in the casework to permit easy access to
the transistor card library, plug-in chassis,
drum access doors, main power control box, and
maintenance panel, without having to remove entire panels.
LOGIC OF OPERATION
The starting of a multiple number of drum
files, associated with a particular drum control
unit, is sequenced, so that only one drum file
draws starting current at a time. The start command is sent to the first drum file through the
drum control unit. When that unit has started,
it supplies a start command to the next drum file.
This starting sequence continues until all drum
files have been started. Should any of the drum
files be turned off at its control panel or
switched to local operation by one of the maintenance controls, the start command is automatically bypassed to the next drum file. A drum
file set in this condition is labeled as offnormal and will not accept commands issued from
the drum control unit or computer.
As the drums in a file reach operating
speed, voltages are supplied, in a preselected
order, to the various control circuits and logic
elements. Automatic clearing of all circuits
and setting of logic elements as required prepares the machine for operation. The flyingheads carriage is automatically positioned over
a prescribed area, toward the left end of the
drums, where the heads are lowered to the flying
position. Once heads are in the flying state,
the carriage automatically moves to the address
stored in the address register; if no address exists in the register, the carriage moves to track
address 0000.
If all of the maintenance switches are in
the normal position, and if no other off-normal
condition exist, the control lines from the drum

control unit are automatically connected to the
drum file, and the file is then under command of
the control unit.
Instructions from the computer can now be
processed by the drum file system, or the drum
control unit can be operated from its control
panel for off-line operation of the drum file
system. Since each drum file has its own memory
for track address storage, it is possible to read
or write on one drum file, while the others, connected to the system, are executing address instructions set in their respective track address
memory. It is possible to issue a new track address instruction to successive drum files every
15 milliseconds. When the drum file completes
its positioning instruction, a unit-ready signal
is returned to the drum control unit, whereupon
the read or write circuits of the flying-magnetic-recording-head may be activated. A select
line determines whether information will be
transferred to or from either the bottom or top
drum.
ENGINEERING INTERESTS
A few of the components which might be of
further interest are: 1) the flying magnetic recording head construction; 2) the lever adder;
and 3) the servo circuits.
FLYING MAGNETIC RECORDING HEADS
Components and an assembly of the RANDEX II
flying head are shown in Figure 7. The head
body consists of two pieces of aluminum, fabricated to exacting dimensions. The surface of
each of these pieces, which after assembly become the flying face of the head. are faced with
tungsten-carbide. After the read-write coil,
erase coil and common I-piece are secured in
their respective cavities in the two aluminum
sections, these sections are bolted together,
with the joint located at the read-write coil
gap-line. The gap-lines on the read-write and
erase heads are spaced 0.020 inches apart.
Since the pivot axis location is very critical
to flying-head performance, bearing holes are
accurately machined at a prescribed location on
the sides of the head.
Using the bearing bores as a locating reference, the assembled head is then mounted in
a lapping fixture and the tungsten-carbide face
is lapped on a wheel, which gives the flying
face of the head a radius of curvature somewhat
larger than that of the drum. The lapped curvature on the head lies in the same plane as the
drum recording surface, and must be parallel to
the bearing axis.
After thorough cleaning and inspection,
terminal boards are added; wiring of the coils
is completed; caging cams, which retain the
head when in the non-flying position, are added;

192
4.5
and, finally, bearings are installed.
A complete inspection to check flying and
recording characteristics is then performed on
the head.

LEVER ADDER

A lever adder, removed from its container,
is shown in Figure 8. It is a mechanism which
provides, through linkages, additional head positioning by moving the servo-rack incremental distances within adjacent teeth. Throughout this
discussion it should be kept in mind that the biquinary (5, 4, 2, 1) computer code is used. In
addition, a 10 has been added to the lever adder
logic.
The lever adder used on RANDEX II is a mechanical adder which can position its output link
to anyone of 23 equally spaced positi~ns, designated here as 0 through 22. The output motion is
generated by strokes of five individual solenoids,
which drive through an arrangement of levers and
interconnecting links, as shown in Figure 9. All
solenoid links have identical stroke lengths,
however, the weighting introduced by the levers
and interconnecting links is such that each solenoid produces a different displacement in the
output. Specifically, in terms of output link
displacement, solenoid 1 produces 1/22 the total
output; solenoid 2, an output of 1/11; solenoid
3, an output of 2/11; solenoid 4, an output of
5/22; and solenoid 5, an output of 5/11. The
distance that the output moves between its zero
position, when none of the solenoids is energized,
and its 23 position, when all of the solenoids
are energized, is a summation of individual outputs.
In order to understand the manner in which
the weighting produces the required motion of the
output link, refer to Figure 9. and consider the
case in which solenoid 1 is energized and the
other four solenoids are de-energized. Solenoid
1 moves its end of the 3-lever a distance of 1
unit (equivalent to the solenoid stroke length).
The other end of the 3-lever remains stationary,
since solenoid 2 is de-energized~ Since the 3lever output link is 1/3 of the distance from the
stationary end to the moving end, it moves
1/3 x 1

= 1/3

unit. The 3-lever output link imparts this motion to its end of the l2-lever. The other end
of the l2-lever remains stationary, since it is
connected to the output link of the stationary
9-lever, which does not move because solenoids 3
and 4 remain de-energized. The output link of
the l2-lever is 1/4 of the distance from the stationary end to the moving end, therefore, the
output link moves 1/4 x 1/3 = 1/12 unit. The 12lever output link imparts this motion to its end
of the 22-lever. The other end of the 22-lever
remains stationary, because it is connected to

de-energized solenoid 5. Since the output link
of the 22-lever is 6/11 of the distance from the
s~ationary end to the moving end, it moves
6/11 x 1/12

= 1/22

unit. By a similar process of reasoning, it can
be verified that each of the other solenoids
introduces a motion corresponding to the 2, 4, 5
and 10 digit with which it is associated, divided
by 22.
In the RANDEX application only 20 of the 23
possible positions of the lever adder are used,
therefore, the total distance that the output
link is moved is only 19/22 of the solenoid stroke
length. Space must be left between position 19
of one tooth, and position zero of the next adjacent tooth to obtain equally spaced information
tracks at a density of 20 tracks per servo-rack
tooth. Total rack motion is then limited to
19/20 of the distance between adjacent servo-rack
teeth. A solenoid stroke length, equal to the
distance between adjacent teeth, was selected for
this design. Therefore, a differential pulley,
connected between the lever adder output link and
the servo-rack, is used to multiply the output
motion of the lever adder by a factor of 11/10.
In the example above, the servo rack moves
1/22 x 11/10

= 1/20

of the distance between adjacent teeth.
By varying the differential pulley ratio and
lever weights. other computer codes can be used
with the same basic lever ad~er assembly.
Primary features in the construction pf the
lever adder are the levers and dashpots, which
are located between the solenoids and output.
The levers are manufactured as segmented
circular discs (See Figure 10). Note that the
link (thin band with pin on end) wraps around a
circular portion of the lever to its point of
attachment to the lever. This is done to provide
constant spacing between links, simplify manufacturing, and reduce link stresses. Relative
positioning of the circular portions determines
the lever ratio.
As solenoids are energized and de-energized,
the associated dashpots control the acceleration
and deceleration of the rack and lever adder
system. To function properly, the entire lever
adder is put into, and kept in, a container filled with damping fluid. A series of holes toward each end of the cylindrical section of dashpots allows the passage of damping fluid into
and out of the cylinder.
Since upward and downward movements of the
dashpots piston are symetrical, only the downward movement will be discussed. The lever adder output is biased by spring tension on the
servo-rack. When a.solenoid is actuated, the

193

4.5
plunger pulls in rapidly. stretching an interconnecting spring between the dashpot piston and
plunger. as a result of the piston being restricted in its movement by the damping fluid in the
dashpot. The pull, exerted on the piston by the
spring. moves the piston which results in damping
fluid being forced out through the hole in the
wall of the dashpot. As the piston moves beyond
the midpoint of the stroke, it starts to cut-off
the openings, thereby reducing the escape area
for the damping fluid remaining in the cylinder.
Size and location of these holes control the piston acceleration and deceleration. Since the
servo-rack is connected to the dashpots through
links and levers. its motion is also controlled.
When the piston reaches the end of the stroke,
very little kinetic energy remains in the system,
and overshoot or jerk is virtually eliminated.
Bias springs. including the servo-rack spring.
move the dashpot pistons in the opposite direction as solenoids are deenergized.

amplitude signal, phased so that the carriage is
driven toward the addressed tooth. At the same
time, pawl control signals from the control logic
circuit cause the carriage pawl to be extended.
Thus, the pawl is driven ag~inst the addressed
tooth. The application of the reverse torque to
the servo amplifier input circuit is timed to
coincide with the peak amplitude of the reverse
torque voltage, thereby lowering the response
time of the servo. In addition, in order to alIowa period of undamped acceleration, the application of the velocity signal for damping to
the servo amplifier input circuit is delayed for
one cycle of the reverse torque voltage. The
velocity signal is then applied. resulting in a
reduction of the velocity at which the carriage
pawl is driven against the addressed tooth. The
reverse torque phase continues until a new servo
cycle is initiated.
REFERENCE

The servo cycle consists of a "forward
torque" phase, a "closed loop" phase, and a "re_
verse torque" phase.
During the forward torque phase. the servo
control logic connects the forward torque output
of the torque circuits transformer to the servo
amplifier. The phase of this fixed amplitude
signal is such that the carriage is driven to the
right, away from the tooth with which the carriage pawl is initially engaged. At the same
time, the holding signal is removed from the pawl
coil, and the pawl retracts by spring tension.
thereby clearing the teeth of the servo-rack.
The duration of the forward phase is timed by a
delay flop in the servo logic.
At the end of the forward torque phase, the
servo control logic begins the closed loop phase
by connecting the error signal from the servo
potentiometer arm to the servo amplifier. The
amplitude of this error signal is proportional
to the distance between the carriage position and
the new address position. The phase is dependent
upon the direction of the error. The carriage is
driven to the position midway between the addressed tooth and the next tooth to the right, at
which position the error signal is zero. In order
to prevent the carriage from excessively overshooting the required null position, a signal
proportional to the velocity of the carriage is
combined with the error signal. The error and
velocity signals are supplied to a "zero detector" circuit in the control logic, as well as to
the servo amplifier input circuit. When the error and velocity signals reach zero, the control
logic terminates the closed loop connections and
sets up the reverse torque connections.
In the reverse torque phase, the reverse torque output of the torque circuits transformer is
connected to the servo amplifier. This is a fixed

1 J. P. Eckert. J. C. Chu, A. B. Tonik,
W. F. Schmitt, "Design of UNIVAC~ -LARC System:
I," EJCC, Proceedings, 1959. p 61.

194
4.5

Fig. 1. RAND EX Drum File

195

4.5

STORAGE
TOTAL STORAGE
INFORMATION - UNIVAC
SOLID STATE COMPUTER

198.588 million bits
126.72 million bits
25.344 million digits

DRUM PARAMETERS
LENGTH
DIAMETER
SPEED
BIT DENSITY - USSC
BIT FREQUENCY - USSC
TRACKS PER DRUM
TRACKS PER INCH

44.0 in.
24.3125 in.
870 RPM
650 PPI
720 KC
2000
50

ACCESS-FLYING MAGNETIC HEAD
MINIMUM HEAD POSITIONING TIME
MEAN HEAD POSITIONING TIME
(ASSUMING RANDOM ADDRESSES)
MAXIMUM HEAD POSITIONING TIME
MEAN DRUM LATENCY TIME
MAXIMUM DRUM LATENCY TIME

*

*

125 millisec.
350
550
35
69

millisec.
millisec.
millisec.
millisec.

RECORDING
READ-WRITE ELEMENT WIDTH
ERASE ELEMENT WIDTH
HEAD TO DRUM CLEARANCE
HEAD POSITIONING TOLERANCE (PLUS - MINUS)

0.011 in.
0.019in.
0.0002 in.
0.002 in. max.

DRUM FILE PHYSICAL CHARACTERISTICS
76 in.
33 in.
68.5 in
2000 Ibs.

LENGTH
WIDTH
HEIGHT
WEIGHT

ELECTRIC SERVICE
AC INPUT TO DRUM FILE-60 CYCLE
KVA
STARTING SURGE
RUNNING
VOLTS
DC INPUT TO DRUM FILE SUPPLIED BY
DRUM CONTROL UNIT

5.5
2.0
230

POWER DISSIPATION
AC
DC

1600 watts
500 watts

COOLING
HEAT DISSIPATED
MAXIMUM ROOM TEMPERATURE
MAXIMUM ROOM HUMIDITY

* Time for data of a specific track to appear
under the head once the head has reached address.

Fig. 2. RANDEX II Specifications

9200 BTU/hr.
90 percent

196

4.5

Fig. 3. Front View, Less Casework, Showing Sealed Enclosure

197

4.5

Fig. 4. Rear View, Less Casework, Showing Access Areas

198

4.5

Fig. 5. Servo and Carriage Access Area

199

4.5

RAIL

PAWL COIL

PAWL MECHANISM
(LATCHED ON RACK)

CARRIAGE
DRIVE CABLE

SERVO-RACK
*HEAD ASSEMBLIES AND
HEAD CABLE REMOVED

Fig. 6. Carriage, Rail and Servo - Rack Arrangement

200
4.5

Fig. 7. Flying-Head Components and Assembly

201

4.5

Fig. 8. Lever Adder Assembly

202
4.5

OUTPUT
5/11
6/11
22-LEVER

3/4
1/4
12-LEVER
2/3

1/3

5/9 4/9

3-LEVER

9-LEVER

SOL.
SOL.
SOL.
SOL.
SOL.
12345

1

I

2------..
4------.-..

ADDRESS LI NES
Fig. 9. Lever Adder Schematic

203
4.5

I
I
I

,

•

I

,

LEVER
LINK

Fig. 10. Lever Assembly

I

205

5.1
DATA PROCESSING TECHNIQUES IN DESIGN AUTOMATION
By 'Dr. William L. Gordon
Minneapolis-Honeywell Regulator Company
Electronic Data Processing Division
Newton, Massachusetts
Summary
By providing a computer with basic information concerning the design of a device as
complex as the modern computer one not only obtains an efficient record retention system but
also brings to bear the full decision making abilities of the computer on the design problem
itself'. A major thesis of this paper is that
the automation of the design of a complex system
is primarily a data-processing problem in which
the most powerful tools reside in the abilit,r of
the computer to perform such jobs as editing,
extracting, sorting, and merging pieces of basic
design information. This contention is substantiated by briefly describing the system currently in use to\provide mechanized aids to design
and production at Minneapolis-Honeywell Regulator Company, Electronic Data Processing Division.

Introduction
In the course of proceeding from the design to the construction and maintenance of •
device as complex as the modem computer one is
led rapidly to the need for efficient record retention systems capable of handling such diverse
pieces of information as the formal logic of the
device or the production wiring specifications.
Not only must the record system be capable of
rearranging and presenting the information for
particular use, but it desirably must also do
what it can to reduce the' gigantic clerical job
of effecting the transition fram the basic design considerations of logic and circuitry to
their amalgamation in the finished machine.
The major advantages of such an automated
design system lie in its abilit,r to perform
rapidly and accurately while busily exploring
the consequences of basic design changes, however trivial. The fact that such automatic processes do exist is additional testimo~ to the
systematic approach to machine design so essential to the human consideration of any camplex device.
This paper is a report on such a Design
Automation System currently in successful use
at the Honeywell Electronic Data Processing Division. It is concerned primarily with 'the
techniques of utilizing the capabilities of an
electronic data processor, in this case the
D-IOOO. The inputs to this processing system
consist of statements of the purely logical design of a unit of arbitrary size, skeletal information as to logic and circuit. placement, and
descriptions of the individual circuit types.
au tpu ts are quite varied and range from analysis

of the logical design to wiring specifications
for the machine; this latter including punched
card decks to operate automatic wire wrapping
machinery.
The program system was originally executed
to aid in implementing the design and construction of the H-Boo and will find use as well
in the production of future systems. This latter
statement should be not interpreted as saying
that future designs will necessarily be forced
into the same mold, but rather as asserting that
the processing system is of sufficient flexibili ty and simplicit,r to guarantee rapid adaptability to changes in basic design philosophy.
Indeed, with a few data safeguards removed, we
would be quite capable of specifying a length of
coaxial cable between two remotely located insurance policies.
The most distinguishing feature of the program system in operation is its low usage of the
arithmetical abilities of the computer. This is
conditioned less by the fact that the D-IOOO is
most powerful when employed with the buSiness
data-processing operations of sorting, merging,
and high speed information flow to and fram magnetic tape as by the fact that the job at hand
was a data processing job with the model found.
1t is a major thesis of this paper that Computer
Design Automation (as well as design automation
of other complex systems) is principally a job
of symbol manipula~ion lying almost entirely
within the realm of standard data processing
technique. The reader will undoubtedly agree
wi th this statement insofar as record retention
is an aspect of the design problem. The point
to be made here is that the design process itself is largely a process of augmenting and expanding basic information by a series of merge
(match) passes, extraction, editing, or data
rearrangement passes (sorting), over the basic
information.
Basic Processing
Input
Logical design data is presented to the
machine in the form of Bodlean equations modified to meet punched card requirements. Each
logical statement carries with it an indicator
of the circuit type to be employed in the physical realization of the statement. This latter
device enables the designer to specify the inputoutput relations of non-logical or time-sensitive
devices for which Boolean'notation is inadequate,
the circuit type designator serving to remind

206

5.1
the reader (and the processing program) of the
way this black box should be treated. For example, the statement:
(1)

GBA A/B.e

* D.E.F

makes logical sense i f one interprete tt/tt for
Mequals tt , tt." for nandtt , and
for "or", but
may more simply be interpreted as establishing,
at the very least, an input-output relation between signals B and A, C and A, etc. Indeed, a
possible way to file away the logic is in this
latter form. However, given a file of logical
statements in the fonn (1) it may be easily
transformed into the latter by a single paSs
over the data. This leads us immediately to
the process of examination of the loads on all
signals •••• a process typical of machine use in
this system. (cf. Figure 1)

"*"

Signal Loading
The original logical statement is regarded
as specifying a source together with its inputs.
Dually, each input may be regarded as a load on
the source bearing its name. By forming an item
for each occurrence of each literal the logic
may be recast into a file of signal name pairs
indicating a relation of the form "B is an input
to Att. Sorting all such items on the input field
groups all occurrences of a signal name together
thereby fonning a list of all loads on all signals. The driving signal name itself is properly treated as an input to an unknown load. Wi th
auxiliar,r information descriptive of the circuit
type and gating structure dragged along for a
free ride, a final pass editing for printout has
an easy time tallying loads on each signal.
Matching the tape forming the input to the
sort with the sort output tape foms a simple
means of cascading each signal through another
level of logic. This is an effective method of
chaining the input relation through as many
stages as desired. By reinterpreting the relation as meaning nis a part of" this procedure
is seen to have a direct counterpart in the
business of exploding parts inventories on the
basis of assembly levels.
So far, this has examined the logic from a
purely abstract point of view (quite proper to
logic) but the designer is not merely playing
games on paper. These logical statements are
intended to have a circuit realization. Again
a dual statement may be made, i.e., the circuits
are to have a logical realization. With this in
mind a master file of available circuit (package)
types is treated in like black box fashion with
a typical entry appearing as s

(2)

GBA

10/11.12

* 1).15.17

where physical pin numbers or other designators
indicating location relative to the package at
hand replace the formal logical symbols. This
device of using the same format forces the logical aspects of the circuit description into the
same mold as the logic itself. Aside from ap-

pearing a natural way of representing the circuit it leads easily to the production oriented
step of detennination of' wiring configurations.
Network Determination
The formation of a file in which all pins
of the same wire network are grouped together is
identical to the process used in loading calculations with the exception that a correspondence
between the symbolic logic and the package structures must be made first. This is done via the
use of a third file specifying for each signal
the type of package it is being implemented with
and the slot location of the package in the
racks. The logical statements are matched with
this last file, the resulting tape resorted by
package type designator and then matched against
the pin structure. Resorting the final output
produces a file organized by logical signal name
in which the symbolic literals have had package
and pin locations associated with them in oneto-one fashion. The resulting document is a
compendium of the entire design and all other
information is derived from this generated file.
Reprocessing the pin modified logic through the
loadlist type extraction and sort regroups all
occurrences of each signal. The pin locations
that here ride along are likewise grouped together thereby fonning a first approximation to
a wiring list.
It should be remarked that the processing
system to this point is sensitive only to the
names of signals and location designators and
has not found it necessar,r to establish ~ geometric relations between the physical points.
In this sense no mathematical computation other
than tallying has taken place. Nevertheless,
the original logical design has been exploded
and recast into a form which could be used for
construction purposes. Indeed, a highly simplified version of this system was implemented with
tabulating equipment and employed in the successful construction of a small machine.
Wiring Determination
The principal remaining problem is to pair
the pins of a given signal run to form wires.
Here simple sorting is no longer effective, for
the circuit designers have determined that a desirable criterion for wiring a given network is
to minimize the total wire length in the entire
run. It is at this point that geometry rears
its head and metric relations between pins must
be examined. Nature and Mathematics still smile
however and this becomes one of those rare cases
in analysis where doing the best thing locally,
i.e., building up the network iteratively by appending closest points at every step, produces a
demonstrably minimum overall solution. With
further constraints (e.g., no more than three
wires may be commoned at a particular pin) the
algorithm breaks down; but again Nature is benign and the deviations tum out to be statistically insignificant.

207

5.1
It is this process, computational in
character, that forms the largest fly in the
ointment of the thesis that automated design
consists almost exclusive~ of information
shuffling. Con3equently it will not be reported upon in detail here, but is certainly of
sufficient interest to warrant independent presentation. Overall system flexibility is still
retained by isolating the length decision-making
algorithm with a routine which interprets all
pin designators in terms of an absolute 3 - dimensional coordinate system thereby allowing
complete revamping of the construction geometry
wi th small programming changes. A portion of
this wire determination system includes further
computation for the machine selection of the
various wire types to be used; which selection
procedure accounts for both wire length and circui t loading.
With Wires fully' determined, additional information as to capacitative loading, current
flow in each wire branch, number of wires per
pin, etc., iIlay be easiq accumulated and reported to the designer who may make necessary modifications, update his files and come through the
entire system again. When he is satisfied with
the design the wiring file for the unit is ready
for release to production.
Production Outputs
At this point the file of wires may be
broken down and sorted six ways from Sunday to
fi t production jigging and assembling requirements, (left-handed assemblers need not apply,
for the information is presented for assembly by
right handed operators). With all breakdowns
and sorts made from the parent wiring file, accuracy is guaranteed up to the point of wire insertion. Independent lists are provided for inspection and ring out purposes.
The use of automatic wire wrappirig machinery
in the production process has necessitated the
construction of a program system to effect the
translation of the wiring information to a deck
of punched cards which will instruct the offline automatic equipment. '!be value of the data
rearrangement is high in this case because the
problem of sequencing the wire wrap machine for
efficient operation requires great reordering of
the wires in terms of such criteria as path configuratioD;, color, length, number of wraps on pin,
etc. Again this particular work will be reported upon elsewhere.
Manual Entries
'!be only input point indicated to the system has been at the level of the basic logical
design. Although minor changes can be exploded
through the entire system it has been found desirable to allow the engineer access to the output wiring files. Manual intervention at this
point can account for the special cases not
worthy of programming into the system as well as
allow the engineer final say on what the results

of processing have been. It further enables the
engineer to make minimal changes to a machine
already under construction. The nature of the
decision making portions of the system, notably
the point at which the wiring network is determined, make it difficult to guarantee that
second passes through the full system on moderately input data will keep change minimal. This
is largely because the routines are trying to
minimize an overall criteria.
Checking
With manual modification possible the pro. cessing system continues, but in a different
mode. Now it cannot generate final information,
it can only check on the apparent accuracy of
the file. Two modes are still left open to perform these checks. The first is that after updating the wiring file a check can be made on
connectivity of each electrical path. The second
check to be made on the modified wires is to do
a complete reversal on the original processing
system. and regenerate from the wires the logic
that they implement. This latter file is the
true document of the machine incorporating all
known information about the design. Unfortunateq it is still incomplete for it mere~ describes what the machine should be - as opposed
to what it really is; this latter anomaly occurring only because the insertion of the wire
into the machine and into the machine file are
two different processes.
Extensions

!

Generalizations

The basic model exploited in the above system is quite simple, the computer is regarded as
a massive assemblage of "black boxes" (circuits
or packages) each possessing input and/or output
points connected together by a relational scheme
known on~ to the logical designer. The individual black boxes themselves are constructed as
an assemblage of other Itblack boxes" (components)
according to a scheme known only to the circuit
designer. We may continue up or down in this
hierarchy to include the system designer or the
co~onent designer at macro-molecular or subatomic levels, but for convenience and with no
real loss of generality will settle at the level
of the circui~ which the logical designer must
interrelate. Each such circuit has well defined
input and/or output points which in the finished
machine accumulate a large number of attributes,
among which are the following:-

1. A deaignator indicating the relative
position of the point in the machine (e.g.,
connector pin location).
2. A designator indicating the type of
circuit to which this node belongs (e.g., flipflop).
3. Number of connections made to this
point.

208
5.1
~. Description of the wire coming to this
point (length, type, route, etc.).
5. Items 1 and 2 for the other end of the
wire coming to this point.
6. Items 1 and 2 for the signal source
driving the network of which this point is a
member.
7. Current flow in the wire of i tern 4.
e. Wave forms at this point.
9. Name of the signal appearing at this
point - name of the network.
10. Structural significance of this point
in relation to the inside of the black bo~. (e.
g., 5th leg of the 2nd gate etc)
11. Name of the black box this wire is going
into.

The above list is by no means exhaustive,
nor does any person associated with the design,
construction or use of the machine have a need
to examine all of the information contained
therein at anyone time. By the same token it
is not until the design is complete that such a
compilation may be attempted for each node (pin)
in the device. The major function of the Honeywll Design Automation System is to piece together the essential pieces from various design
sources and at some points compute a few of the
items in the list.
In examination of the list more closely
several items may be grouped as falling into
distinct design areas. Items numbered (2),(9),
(10), and (11) suitably edited form the logical
design; whereas item (10) above represents the
link between logic and cireui try. Com~ining
items (9) and (1) is essentially the job of
package allocation. Matching these pieces of
design information produces input to a wiring
determination routine from which all else is derived. Curiously, in the course of back-tracking
from wires to logic the program system at one
point uses logical structure as a key for sorting.
The present system is keyed heavily to the
problem of backboard wiring interconnection of
the circuit "black boxes". An enlargement ot
the system will enable machine processing to go
inside the packages or outside to the major unit
complex. Here we will be exploiting the fact
that all location designators are relative to
the level at which they occur. For example,
each component placed on a package is located
only on that package; each package inserted into
a slot in the machine is located only relative
to that unit (e.g., peripheral control unit).

* Wiring networks

are usually simply connected,
i.e., there is only, one wire path (equipotential) between two points. A convention establishing one point in such a network as a
source establishes an orientation for the two
ends of each wire in the network.

Remarks
The generality of the above model suggests
its application to other equally complex jobs.
All we have really done is endowed each connection point with a .name and address obtained
from different sources. Relations between names
are interpreted as calling like relations between
addresses; indeed the very application of Boolean
Algebra to switching circuit theory came about
by making symbolic name assignments to physical
circuits, largely divorcing the problem of logical design from its physical implementations.
Certainly the same technique is applicable to
other complex systems ••• the procedures described here effecting the reverse step of making
all necessary name and address correspondences.
This degree of abstraction has played a significant role in computer design and use, enabling
the breakdown of a complex system into understandable smaller pieces; or rather the assemblage of the system from comprehensible
building blocks.
Name and address processing is certainly
familiar to the programmer who in an effort to
free himself from physical address considerations has constructed automatic program systems
to allow writing his program symbolically (as
the logical designer does today) letting the
machine solve his allocation problem. The only
essential difference here is that when this is
done he rarely has to communicate in detail the
resulting information to anything other than a
computer.
Acknowledgements
The system outlined here is not something
that springs full blown in either conception or
execution. The author is indebted to Dr. J.J.
Eachus for proposing this as a data handling
problem, to Dr. E.J. Dieterich for his adVice,
criticism and direct programming aid, and to the
members of the Systems Analysis Division of
Engineering for yeoman work in devising a working
program system. Both Engineering and Production
divisions of Honeywell EDP must be thanked for
their ready cooperation in the effective use of
the system.
The problems discussed here involve processing technique only. Such a working system
must also cope with the off line problems of
file and document control. The major difficulties that arise are in areas of human communication, for the design automation system has executed a heav.y influence on engineering and production procedures. Analysis and programming
are relatively mild aspects of the problem; but
perhaps this is because machines are really
quite docile.

209
5.1
FROM FILE UPDATING
SYSTEM

RUN# I
SET UP TAPES FOR
1----1.. MAJOR UNIT UNDER
PROCESS THIS RUN

RUN #2
MERGE LOGICAL DESIGN
INFORMATION WITH
LAYOUT INFORMATION

RUN#3
COMBINED
ITEMS INTO ORDER
BY PACKAGE OR
CIRCUIT TYPE

~

RUN#4
MATCH LOGIC AGAINST
f5'iN"S'5N PACKAGE t ACCOUNT FOR ALL PIN
FORM EXPANDED LDGIC
1 - - -.....
FILE MODIFIED TO
INCLUDE PIN INFORMATION

RUN#5
SORT FILE INTO
ORi5ER BY LOGICAL
SIGNAL NAME

RUN#6
FORM I ITEM FOR
..._--IEACH OCCURENCE OF
EACH L1TERALAPPEND CORRESPONDING PIN LOCATION

RUNH7
SORT BY LOGICAL
SIGNAL NAME TO
GROUP ALL OCCURENCES OF SAME
SIGNAL

EDIT FOR PRINT
COMPUTING LOADS
1 - - _.... ON EACH SIGNAL

EDIT FOR OFFLINE
PRINT
MACHINE FILE AND
DESCREPANCY
REPORTS

OUTPUT

t----I'" DOCUMENTS

FOR DESIGN EVALUATION AND RECORDS
TO WIRE DETERMINATION
(PIN PAIRING) SYSTEM (ON
DEMAND)

Fig.!. Process Flow for Generating Pin Groupings from Formal Logic and Packaging Information.

211

5.2

IMPACT OF AUTOMATION ON DIGITAL COMPUTER DESIGN
by
W. A. Hannig and T. L. Mayes
General Electric Company
Computer Department
Phoenix, Arizona
Introduction
A digital computer logician's job
may be defined as a two-fold task. First,
he ~st generate abstract ideas on the
organization of a proposed computer to
handle a particular type of problem, and
second he must convert these abstract
ideas into data that a factory can use to
construct and ch~ck out the computer.
At the General Electric Computer
Department, we have spent considerable
effort in supplying tools for the logician to use to simplify and to better
optimize the job of converting abstract
organizations into factory data. These
tools are automation programs which
allow the logician to use pro~rams, run
on existing computers, to des~gn proposed
computers.
The paper describes:
1. The functions performed by these
programs;
2. The logician's use of these
programs as a tool;
3. The use of the data produced
by these programs; and
4. The effect that the use of these
programs has upon the human organization
that designs and builds these computers.
The Functions Performed by the Programs
Summary of functions
The programs may be divided according to five major job categories:
1. Arrangement of Boolean equations
to describe the over-all computer logic.
2. Interpretation of Boolean
equations to determine logic gates and
other circuits required; how they are to
be interconnected.
3. Assignment of circuits to plugin circuit cards.
4. Generation of information for
interconnecting circuit cards.
5. Preparation of logic schematic
diagrams.
The program functions in each
category are discussed in detail in the
following sections.

Arrangement of Boolean Equations
(See F~g. la.)
For describing the over-all logic
of a digital computer,- it is of great
advantage to have a set of Boolean
logic equations which show how each
flip-flop is controlLed during each time
interval of each command. Such equations
are assembled and arranged by this program from a manually prepared list of
the control signals active during each
interval.
In the execution of a command,
various control signals, emanating from
a command decode network or from controlling counters, enable various gates in
a series of steps to execute the command.
Thus, for each command the logician lists
the control signals which are turned on
during each step of the execution. This
list, in punched card form, is sorted
and printed in order of command step and
also in order of control signal (to show
the command steps using each control
signal). The list in its former sequence
is one of the inputs to the program.
The logician also prepares on
punched cards a list of the logic
equations which are activated by the
control signals referred to above.
And, finally, the logician prepares
special program control information which
deals with the identifying headings.
These headings will appear in the printed
output, which deals with numerous exceptions to the pattern (such as the
implication of equations due to the
absence of a control signal during a
part~cular command step), and which
organizes the over-all program logic.
From these three inputs the program
collects the equations for each command
step. The equations for each step are
collected by searching the equation list
(on magnetic tape) for the equations
corresponding to the control signals
associated with that step. With suitable
headings interspersed to identify the
various registers, the collected equations
are subsequently formatted for off-line
printing on regular drawing forms. By
careful control, all the active equations

212
5.2

for one command step generally fit onto
one sheet to make the results easier to
use. (Example in Fig. 2.)
Each major, independent equipment
of the system requires this logical description information by preparation of
lists of control signals, equations, and
program control information. The three
kinds of data, prepared by the logicians,
are processed by one set of routines,
virtually unchanged from one equipment to
the next. This characteristic is generally true of the other programs as well;
the variations represented by the different major equipments were treated
simply as variations in the data processed by the programs.
Interpretation of Boolean Equations
(See Fig .. lb.)
The original equations discussed
above are grouped together manually to
form the complete "unimplemented"
equations for each flip-flop. The
logician then operates upon these
equations to match the available logic
circuit structures and circuit rules.
He expresses his results in the form
of "implemented" logic equations which
are punched into cards. (Example in
Fig. 3.)
These equations are interpreted by
a program in order to produce a list of
the "elements" required to implement the
desired logic. An "element" is the
smallest subdivision of a computer which
still retains its logical identity, e.g.,
AND gate, OR gate, flip-flop, etc. Each
element is described by a unique code
name and by a list of the input signals
to the element. Thus, this program produces an Element Input List which
identifies all the elements required and
shows how they are interconnected. These
elements are free-floating; they are not
associated with plug-in cards as yet;
hence, no pin numbers are present.
The process vf interpreting the
equations is related to other equation
interpretation programs in which the
equation is scanned and thereby divided
into unique entities, in this case, the
elements. Each equation contains signals
and symbols (logical operations, parentheses, and such). Beginning from
one end of the equation, the program
selects the first three of these, regardless of whether they are signal or
symbol, and classifies all signals as
simply another unique kind of symbol.
The three-symbol group is looked-up ip
a table containing all possible combinations of three symbols. If the group

is permissible (two plus signs together
would be impermissible), a "level increment" is obtained and algebraically
added to a cumulative level number. The
table also supplies information as to
whether the resultant level number should
be odd or even and what to do to it if
the number requires adjustment. When
finally acceptable, the level number is
stored in association with the middle
symbol of the group (the first and last
symbols of the equation are asterisks).
The same process is repeated for
the next group of three symbols, using
the second and third of the previous
group as the first and second of the
next. Thus, a two-symbol overlap occurs
between successive groups. In each case
the cumulative level is adjusted and
assigned to the middle symbol until the
entire equation has been traversed. In
some cases, a prepass is necessary to
ascertain the presence of certain kinds
of symbols.
Following the level assignment,
the program, still working on the same
equation, successively scans the level
numbers to detect particular values
grouped together. The signals within
such a group are the inputs to an element, and that element is immediately
identified and added, with its inputs,
to the list of elements being prepared.
The list of symbols,signals, and level
numbers is also modified appropriately.
In this process, successive levels of
gates are identified, starting from the
outside gates of the structure and continuing until the innermost gates have
been identified and set up.
The program complains if the number
of levels implied by the equation is
excessive for the particular type of
"source" element (which the gates, as a
group, control). The program shifts
the gating structure about somewhat in
accordance with certain limitations imposed by the circuitry. It also inserts
degenerate (one input) gates as required
by the circuits rules. Gate width is
checked as a function of the location of
the gate in the structure and the type
of source element involved.
The resultant list is, in a sens~,
a list of equations having only one level
each, where the logical relationship is
identified by the kind of gate. But_
rather than view them as equations, they
are viewed as elementary building blocks,
the distinct entities of which comprise
the computer being designed. This list
is the main stream of the programs which
follow. The Element Input List is

213

5.2
operated upon in various ways; other lists
are derived from it, but it continues to
appear along the line in altered, augmented form until it represents a complete
determination of the machine from which
manufacturing information and reference
documents are derived.
One of the uses of the Element
Input List is to serve as input to the
loading calculation routines which prepare a sort item for each element's
input signal whose loading must be evaluated. These items are sorted to gather
together the names of the load elements
on the sources being evaluated. Through
the use of a manually-prepared table
showing the location of the registers
(in a gross sense), the program computes
the wiring capacitance. Using a table
of a-c and d-c loading limits and information contained in the load list on
timing restrictions (derived from the
input logic equations) in which critical
and non-critical timing is identified,
the program assigns the loads to the
sources in such a fashion as to group the
loads geographically and to avoid overload. Parallel sources (producing
identical logic functions from identical
input signals) and the opportunity for
the program to add power drivers where
the timing permits, impose a relatively
complex assignment task. Each time a
load is added, for example, the wiring
pattern may change greatly or very little;
a great change may jump the capacitance
appreciably and prevent the addition of
the load. Thus, the wiring must be
routed and its length computed repeatedly.
Once the loads have been assigned,
the program determines the pull-up or
pull-down currents required to drive the
loads properly and produces a list of
data showing which specific source drives
each load as well as a list of the drivers
added. These lists are used to update
the Element Input List, which previously
has shown source signals in a generic
sense Qnly, rather than by specific element name. The load list is also formatted and printed for use by the
logician. Overload cases which the
program could not cure because of timing
restrictions also are listed for the
logician.
For some equipments, an additional
loading calculation is made to reduce the
amount of driving requirement, and hence
the circuitry, required. In this calculation.the loads on a source are examined for the presence of certain types
of signa~which would absorb all of the
gate's load, and which would be mutually
exclusive of each other. Introduction

of such signals into a pair of loads
driven by the same source would reduce
the effective load on the source to that
of only one load. The massive amount
of timing information and considerable
processing required made it imperative
to do this calculation by computer.
Substantial reduction of circuitry resulted, and in some cases otherwise
impossible logical configurations were
made possible by this approach. The
assignment of these mutually exclusive
loads required special treatmen't in
that the group could not be divided among
the driving sources without recomputing
the effective load.
Assignment of Circuits to Plug-in Cards
(See F~g. lc.)
The next program assigns the elements to plug-in cardsa The available
cards are represented in skeleton form
in a master file. Each skeleton includes the circuits contained on the
card in the form of outpu~and inputs
grouped together with the associated pin
numbers shown. Thus, the circuits are
in essentially the same form as the
elements.
Basically, the program must find a
circuit of suitable type for each element
and assign it by entering the name of
the element as the output of the circuit
and by entering the input signals of the
element as inputs into the circuit.
Space is provided in the skeletons for
the program to enter these input and
output signal names (the output signal
is identical to the name of the element).
If a suitable circuit can not be
found on an existing card, the program
must select an appropriate card type
from the skeleton file, copy it into the
list of cards being used, and assign the
element as described.
With numerous ways in which some
elements may be assigned, including
dividing them among two or more cards,
the program makes use of tables so
organized to provide intricate logical
ability in combination with control
data contained within the skeletons
themselves. Some of the plug-in cards
contain partial gating structures of
various types, and the program must do
considerable work to locate sets of gates
which can make use of these structures.
The programs also must look ahead, in
effect, to determine the card type which
should be set up not only to satisfy the
needs of the immediate element being
assigned - which might be satisfied in
any of several ways - but also to provide

214
5.~

a card type suitable for the remaining
elements to be assigned to this group of
cards.

Generation of Information for Interconnecties circuit Cards
(See Fl.g. ld.)

The group of cards dealt with together is limited to twenty-eight, the
number contained within a physical
module. Because a specific group of
elements is not always assigned to a
specific module~ the program must
assign and reassign increasing numbers
of elements to cards until the number
of cards reaches the allowable limit.
The reassignment is necessitated by the
changing pattern of card types and
numbers as additional batches of elements are added. Sometimes, an altogether different card type may be used
when elements are added to the group
because of their ability to justify such
a type. In another mode, a definite
batch of elements is designated for a
module, and the assignment becomes simpler and more rapid. In each case, a
manually prepared table is used to
designate the/twenty-eight card modules
Which are to contain various groups of
elements.

The Element Pin List represents a
collection of cards which contain the
circuits necessary to perform the
computer functions. Some of the interconnections are already made on the
cards, but the cards themselves must be
interconnected. This is accomplished
by a combination of etched back panels
into which the cards are plugged, and
harness wiring to interconnect the
etched back panels. The program prepares punched tape information to control
automatic machinery which produces the
etched back panels, and it prepares
wiring lists from Which the panels are
manuall¥ interconnected.

The resulting list of plug-in cards
shows all the cards assigned by the
program. Spare circuits are identified
by blank spaces, because of the lack of
signal names associated with the circuit
identification.
This list, called the Element Pin
List (EPL), is a key and permanent file.
Its format permits easy modification by
manual updating Which is accomplished
simply by preparing one punched card for
each pin the signal of which is to be
changed. Entire plug-in cards may be
added or deleted by single punched cards.
The update cards are processed by a
routine which finds the designated pin
or card, makes the indicated change,
prepares a new file, and causes a replacement sheet to be printed showing
the new conditions.
The EPL is used not only for the
subsequent preparation of wiring data
and schematics but its format (inputs
grouped with outputs) also permits the
generation of load lists which are automatically checked for overload. Such
checking is prudent after a series of
manual updates may have thrown a source
over the allowable loading limit. In
addition, load lists are added to logic
schematics derived from the EPL.

As the first step of this process,
the program must determine which signals
extend beyond the confines of a single
etched panel so that suitable panel
interconnection points may be provided
and connected by etched wiring. These
connection points are not specifically
called out at this stage because the
specific points will be selected by
the etched layout program.
These general connection points,
together with the other pins included
within an etched panel, are processed
in a group. Each pin in the group is
associated with a particular signal.
Pins bearing the same signal are wired
together. As the layout proceeds,
specific pins connecting to other panels
are selected and listed separately for
use by the harness wiring program.
The etched panel permits connections
through horizontal etched copper strips
and through vertical jumper wires inserted into holes in the panel. Thus,
a typical connection between two pins
may consist of a series of horizonta+
and vertical segments zig-zagging
across the panel. Isolation of one
run from other runs is accomplished by
means of breaks in the copper strips
which are provided in the etching
process.
The program must seek an open path there is a limited number of vertical
and horizontal lines. available - by
testing for cuts and for existing jumpers
which bar the way. The trials are made
and a path found much as a rat finds its

215
5.2

way through a maze, except that certain
preferences and patterns are established
to guide the process. In addition, the
task is somewhat simplified by seeking
merely a satisfactory rather than an
optimum layout.

logical patterns to enable the user to
trace rapidly through a series of elements and to identify the function of
each element readily. Input and output
pin numbers are shown. Names and pin
numbers of loads are included.

Once the layout is complete, the
data is converted to x-y coordinates for
the location of cuts in the copper strips
and for the location of holes in the
panels through which the jumpers will be
placed and dip-soldered to the etched
copper. A printed image also is prepared of the layout to show the location
of holes, cuts, and jumpers for manual
use. Commonly the progr~L is unable to
complete all the connections with its
somewhat limited imagination and rules;
uncompleted connections are listed for
manual completion with the aid of the
printed image of the panel.

These diagrams are generated from
the Element Pin List; as a result, the
diagrams match the wiring information
because both are derived from the same
source.

the harness pins are collected until
all the etched panels are layed out.
Again, pins bearing the same signal are
wired together. The routing is done to
reasonably minimize the length of each
string of wires. The resulting list of
"from-to" connections is grouped to
provide convenience to the manufacturing
operation. The connection items are
also sorted on signal name to provide
a signal reference list. Another list
is provided by reversing each connection item, adding it to the list,
and sorting the combined data on the
"from"'pin number to produce a pin reference list. And finally, the wiring
strings are sorted according to the lowest pin number in each string to produce
a list which allows semi-automatic
checking of the wiring by ringing out
each string in orderly, non-redundent
succession.
J

Minor changes are made manually on
the etched layout data through use of
the layout image. Changes to the harness
are made by preparing add-delete punched
cards for each wire added or deleted.
These cause the program to update the
list and produce a replacement sheet for
the pages thereby affected.
Pre~aration

( ee

F~g.

of Logic Schematic Diagrams
le.)

These automatic processes which
convert logic equations into lists of
circuit cards and their interconnections
mu~t also report what they have done.
The chief report is in the form of logic
schematic diagrams. (Sample in Fig. 6.)
These diagrams show in graphic form how
the elements are interconnected in

The logic schematic program involves a certain amount of pre grouping
of the information through sorting and
editing operations. The main format
routine traces through the data in
reverse order (upstream) to find and
lay down the elements in the print
image. This process also serves as a
useful check on the completeness of
the data, for should an element be
deleted in error, its absence would
break the chain and cause other elements to be "left over" at the end of
the tracing process.
The important task of keeping the
documentation of a computer in accurate
and complete condition is aided, not
only by the common-source generation
referred to above, but also by use of
an automatic updating process. When
a change is made to the Element Pin
List, the schematic program automatically detects such a change and produces
a series of operations which finally
result in printing a set of replacement
sheets for all those previous sheets
which experienced any changes.
All the output documents which are
to be distributed to various using
groups are printed on continuous-feed,
preprinted vellum forms. A double-faced
carbon sheet imprints on the back of the
vellum and produces a carbon copy for
immediate use while the "tracings" are
being reproduced. The various document
producing routines completely title,
number, and otherwise identify the drawings according to standard practice.
All the output data is printed on
a conventional printer having the usual
scientific characters such as parenthesis,
equal sign, and such.
General Comments
, The programs consist of over 60,000
single address instructions for the IBM
704 Computer and are produced through
regular assembly procedures (such as
the SHARE Assembly Program). They were

216
5.2

developed jointly by engineering and programming groups within the Computer
Department. Communication from the engineers to the programmers was primarily
by means of conventional flow diagrams
augmented by prose specifications and
tabular control data for specific
situations.
Use of the Automation
Program as a Design Tool
One of the first ways that a logician can record his abstract ideas is
in the form of an operation flow chart.
This chart lists the micro-operations
and their time sequence within a given
machine instruction or command. An
automation program gathers all the
micro-operation and timing information
and produces a concise set of organized documents called "Block Descriptions".
The Block Descriptions (sample shown in
Fig. 2) illustrate the control equations
for every micro-instruction interval of
time in all machine instructions. The
logician combines the equations from
each of the Block Description time intervals ,to form the complete Boolean
equation for each "stage" of the proposed computer. (A proposed computer
is sub-divided into a series of registers and a register is further subdivided into stages. A "stage" is a
logical device the fan-out of which can
be greater than one, for example: a
single driver, or a single flip-flop.)
The summation of equations for all stages
of the computer then form the complete
logical description of the proposed
computer. For a moderately large scale
computer this may result in 1000 Boolean
equations for 1000 stages. Each equation
describes the logical operations and
connections to be made within a stage.
All the equations, as a group, describe
the interconnections to be made among
stages of the proposed computer.
The Boolean equations now form the
input data to a group of computer programs which generate manufacturing
information for the factory. When the
equations are written, it is assumed
that all named logic signals are capable
of driving an unlimited number of loads.
Later programs either will remedy overload conditions automatically or complain
to the logician.
The equations are punched into cards.
The punched card format is entirely
variable (see Fig. 3), meaning that
equations are punched on the cards with
few restrictions. The philosophy is to
orient the input data to the logician and

leave the interpretation problem to the
computer program. (Refer to Fig. 3 for
a sample equation listing.)
The Element Input List program that
interprets the equations has three
functions. These are:
1. To conduct exhaustive checks of
the hardware implication of the equations
for circuit rule violations.
2. To generate what we call an
Element Input List. (As defined previously an "element" is the smallest
subdivision of a computer which still
retains its logical identity, e.g., AND
gate, OR gate, flip-flops, etc.)
3. To assign all loads to appropriate sources within each stage and
make a load list.
The "Element Input List" is a list
of the elements needed to implement the
proposed computer. These elements have
been named and their input signals have
been specified by logic name. After the
Element Input List is generated, all the
loads implied by this list are assigned
to sources within stages. Quite often,
this means the program must insert power
drivers to relieve overload conditions.
After the loads are assigned a load list
is made that shows the loads, including
wiring capacitance, presented to every
source in the machine.
From this first series of programs
which generate the Element Input List,
there are a tremendous number of possible
error print-outs which the logician may
receive. Examples of possible error
print-outs are:
1.
2.

Gates too wide.
Depth of logic too great.

How many of these error print-outs
occur is a function of how well the
equations conform to the circuit rules.
(Refer to Fig. 4 for an example of error
print-outs.) When an error print-out is
made, the logician can either modify his
equations to remedy the trouble, or, if
he can show that special conditions
exist, it may be possible to ignore the
print-out.
The next step in the design of the
proposed computer is to assign the hardware implied by the logic equations to
printed circuit cards and locate these
cards in the computer cabinets. When
an Element Input List acceptable to the
logician has been produced, he can proceed to the group of programs called
"Card Assignment" that will assign the

217
5.2
implied hardware and locate it in the
computer. cabinets.
The purpose of this set of programs
is as follows:
1.

To generate an Element Pin List;

and

2. To physically locate the plugin cards within the computer cabinets.

The Element Pin List is permanently
maintained on magnetic tape and is
printed for the logician to examine. The
printed Element Pin List displays one
plug-in card on each page of paper.
(Refer to Fig. 5 for example of Element
Pin List.) The Element Pin List is also
accessible to the logician for update
purposes. Generally, updating of this
list is for purposes of either optimizing the program results or for changing the computer's logic.
The logician's gross control of the
physical location of plug-in cards within the computer is achieved through the
use of the Module-Register table. This
table shows either the number of stages
from each register to be put into a
module; or the number of plug-in cards
of each register which are allocated to
each module. He is aided in making
this table by a program which prepares
the plug-in card count necessary for
each register. A Ifmodule H is a group
of up to 28 plug-in cards which go together into one area of a computer
cabinet.
There is a large amount of checking
within these programs to see that the
resulting Element Pin List conforms to
certain requirements and restrictions.
Some of the items being checked are:
1. An insufficient number of plugin card positions allocated to a given
register;
2. Clock omitted from flip-flop;
and
3. Register not assigned a
location in the computer.
If a rule violation is uncovered,
there is an on-line print made (as was
the case in the Element Input List programs). The logician then may remedy
the violation by one of the following
three methods:
1. Modify the input equations
and re-run all affected data;
2. Make the modification manually
by updating the element pin list; or

3. Show that special conditions
exist which permit the apparent violation.
Logic schematics are made from the
Element Pin List. (Refer to Fig. 6 for
example of machine produced logic
schematic.) These schematics are made
entirely by machine programs and are
printed on a conventional line printer.
Each schematic shows the logic interconnections and physical connections
(pins) within each stage of the computer.
The schematic drawings are organized
by stages and listed in sorted order by
logic name. A load list is presented on
the schematic which indicates the logic
name and pin number of each load on the
stage in question.
There is checking in the schematic
program for a "closed system" of elements. Examples of some of the checks
include:
1. Logic element called for (as
an input signal) does not exist in
Element Pin List.
2. Extra logic element was named
that was never used.
Errors uncovered by the programs
can be corrected either by updating
the Element Pin List, or by modifying
the input equations and re-running those
portions of the computer design data
that are affected.
From the Element Pin List, the
wiring information for manufacture is
generated by use of the wiring programs.
Our particular Ifproduct design" is one
that is wired with semi-automatic machine
tools. In particular, the modules (with
28 plug-in card positions) are wired
with printed circuit back panels. Horizontal "wires" on the back panels are of
etched copper and vertical insulated
jumper wires are put in place manually.
The harness which interconnects all the
module back panels is made manually.
The control data for the automatic
machine tool are in the form of two
punched paper tapes for each module.
One tape is used to operate an automatic
drilling machine to drill pin holes and
jumper wire holes in the back panel.
The other tape is used to operate the
same machine tool, but a light source is
substituted for the drill. The light
exposes a negative which controls the
back panel etching. Data on both of
these punched paper tapes is in the form
of X - Y coordinates to position the
machine tool table.

218
5.2

During the operation of the wiring
program each of the module back panels
has all the vertical and horizontal
"wires" determined. An image of the
back panel is printed out for visual
check and reference before manufacture.
The wiring programs also produce
four printed lists. The printed lists
describe the harness which interconnects
the back panels.
The first of these printed lists is
the "Logic Sorted Pin List tt as shown
in Fig. 8. All the pins are arranged
in the order of their logic name. This
Logic Sorted Pin List is used as a
reference document for maintenance of
the computer.
The next printed list is called the
master pin list. This list is sorted by
pin number and shows the connections to
each pin in the harness. During manufacture this list serves to check that
the proper number of wires are connected
to each harness pin.
The third printed list is the manufacturing list. This is a "from-to"
list of wires. It is sorted on logic
name but is partitioned to match the
manufacturing assembly process.
The fourth and final printed list
is the checking list. Semi-automatic
equipment is used to check that listed
harness pins have been connected together during manufacture, and this list
serves as the input checking data for
the semi-automatic equipment.
After a machine has been designed
and sent out into the field, these same
program-produced documents comprise much
of the documentation for the computer.
The Block Description, Logic Schematic
and Logic Sorted Pin List are the three
main documents sent into the field.
While this completes the description
of the design of a computer using design
automation programs, -it might be of
interest in retrospect, to observe the
philosophical approach taken in the programs, and to make certain comments on
the logic nomenclature used in the input
data.
From the beginning, it is always
assumed that the manual input data is
in error. Therefore, the programs continually check the data for format, and
circuit rule adherence.
The initial run through each major
program usually results in several pages

of on-line er~or prints for a moderately
large scale computer design. It is always hoped that the programs have been
designed flexibly enough to handle all
the varied configurations the logician
can dream up. It is not unusual that the
first pass through a program with new
data will uncover data configurations
that "we would nev~r use," (so said the
logician) but which would indeed cause
the program to halt. In such instances,
a small amount of repair to the program
is all that is necessary before it is
running again.
When automation programs are made
available to the logician, it becomes
vital that a rigorously descriptive
logic nomenclature be used. Stated in
another fashion, the only variable data
supplied to the automation program is the
input logic data. If this data partially
or clumsily specifies the proposed
computer - other information being
implied - the automation programs are
unnecessarily made more complex.
The logic nomenclature sy~tem we
are using progressively subdivides a
computer. The computer is subdivided
into registers. The registers are subdivided into stages. The stages are
subdivided into elements. The name of
a signal produced by an element is
identical to the name of the elemen~.
Every logic signal within the computer
will be associated with its own stage
and register by the logic name.
The logic name is a 10-character
fixed field as shown in Fig. 9. The
alphabetic characters in the first four
characters identify the register from
which the logic signal in question
originates. The first six characters in total - identify the stage which
originates the logic signal. The remaining four characters identify and
describe the specific element within
the stage.
Our pin number nomenclature, as
shown in Fig. 10, provides a similar
partitioning so that the complete pin
number identifies the physical location
of that pin.
Use of the Automation
Program Output Documents
Three documents of primary importance emerge from the computer design
phase.
1.
2.
3.

Block Descriptions;
Logic Schematics; and
The Logic Sorted Pin List.

219

5.2
Moreover, after a machine has been
designed and sent out into the field,
these same program-produced documents
serve as the total documentation for the
computer.
When a fault is to be located in a
computer, the first step is to determine
the machine instruction in which the
fault occurs. This isolates trouble
shooting to a few pages in the Block
Description. Tests are made until a
faulty stage signal has been isolated
within a register. Then the trouble
shooter moves on to the Logic Schematic.
With the Logic Schematic, the trouble can
be isolated to one or two wires, or it
may be located. If more information is
needed, the trouble shooter refers to
the Logic Sorted Pin List to determine
the exact routing of the wires in question.
Note that trouble shooting proceeds in an
orderly fashion through the documents.
There is a minimum of "page flipping" and
of moving from one document to another.
While the output documents have
been organized to allow orderly trouble
shooting, the most outstanding advantage of these machine-produced documents is not their ease of use but their
ACCURACY. One can be absolutely certain
that all three documents exactly reflect
the hardware being maintained and that
they are consistent within themselves.
Also, the continuity of information from
one document to another, through the
logic name, is assured since all three
documents basically originate from the
equation input data.
Although these three documents have
been briefly mentioned previously, it is
now necessary to explain them in more
detail.
The Block Description is a sheet
with a standard format that shows all
registers, error flip-flops, control
flip-flops, and the like that are basic
to the computer control. For each of
these registers, flip-flops, and such
there is a blank space to be filled out
which shows the control signal that is
activated to put the registers and flipflops into operation. If this control
space is left blank, it means that the
flip-flop cannot be operative during
this micro-step. Every micro-step of
every machine instruction has a Block
Description sheet showing appropriate
control signals. It is typical to have
ten or twenty Block Description sheets
for one machine instruction. (Refer to
Fig. 2 for example.)
For trouble shooting, it is usually
known which machine instruction is

failing. This isolates the trouble to
ten to twenty sheets of the Block Description. Next the micro-step that is
failing is located which isolates the
trouble to one sheet of the Block Description. Note that this one sheet
gives all the pertinent information on
the internal state of the computer.
The Logic Schematic displays in
pictorial form the structure of the
logic networks. Also, sufficient information is included so that equivalent
points in the hardware can be located
easily for testing. (Refer to Fig. 6.)
The entire set of logic schematics for
a machine forms a "closed loop" type of
document. This means that if you start
at some place in the drawings and trace
downstream from that point you will
eventually be able to trace back to the
starting point from the upstream side.
Thus, for trouble shooting it is necessary to be able to start at any point in
the schematic and trace upstream or
downstream with ease. Our schematics are
organized by stages and are arranged in
sorted order by stage logic names.
Upstream tracing with these schematics is done by extracting the logic
name which serves as an input to the
stage in question and proceeding to
this stage of the logic schematic. Downstream tracing is easily accomplished by
using the load list included on each
stage schematic. While the load list
gives all the downstream load information,
the load stage schematic also may be
located by the load logic name if necessary.
Due to its simplicity, the Logic
Sorted Pin List (see Fig. 8) mentioned
previously will not be described further
except to say that the logic names used
in the Block Descriptions and Logic Schematics are also carried through to the
Logic Sorted Pin List.
Automation Program Effects Upon the Human
OrganLzatLon DesLgnLng and
BULldLng Computers
There are about 60 separate routines
which together make up the five major
programs we have described. These
routines are largely stored on a program
magnetic tape, although some are stored
on punched cards. All of these routines
were written for use on an IBM 704 Computer. The machine operator must select
the routine and routine sequence he wishes
to use on the particular input data.
Generally these decisions are made before
"getting on" the machine, and a deck of
control cards provides the sequence of
routines to be called in from the program

220
5.2
tape.
Generally, the machine operator
function is performed by one person
whose sole task is to run the programs on
the data supplied by the logicians. Many
technical decisions are made while running
the routines. Quite often, the on-line
error printouts from the programs will
dictate immediate termination of a machine
run until corrections in the data can be
made. Sometimes error printouts may be
ignored. Therefore, the operator has to
be an engineer selected from the staff of
computer design engineers. This machine
operator, however, spends only a moderate portion of his time on the machine.
The remainder is involved in organizing
data to be run, keeping accurate control
on the large number of magnetic tapes
which represent the various machines
being designed, and communicating with
the logicians to give them results or to
show them where the input data is faulty.
The logicians are responsible for
preparing the input data for their particular machine design. Usually, this is
accomplished by recording the data on
forms and having the cards punched at
one central location. Then, it is the
logician's task to check the listing of
these cards and to order that certain
machine runs be made on this data. The
machine run order request is made to the
machine operator. The operator then
schedules the machine time for the run,
makes the run, and returns the results
to the logician.
The basic input data to these programs is the Boolean equation representation of a proposed computer. Any
equipment that is described with equations can be processed by these same
programs. Therefore, the programs are
invariant to the logic of the machine
being designed. This is borne out by
the fact that eight separate and distinct computer equipments (systems or
parts of a system) have been designed
to date with the same programs.
It has been indicated that a moderately large scale computer would have
equations for about 1000 stages. These
1000 equations are the prime input data
to this automation process. For the NCR
304 Central Processor which was built for
the National Cash Register Company by
the General Electric Company, there were
about 1000 equations that were stored on
approximately 2000 punched cards.
Listed below are some of the running
times of these programs on a 704 Computer.
These running times were for the design of
the Central Processor portion of the NCR

304 Computer.
Initial
Program

~n

Block Description

6 hrs.

Element Input and
Load Lists

3-1/2 hrs.

Update
Run

*
1 hr.

Card Assignment

3 hrs.

*

Logic Schematic

2 hrs.

1 hr.

Wiring

8 hrs.

*

*Approximately equal to the update volume
divided by the total data volume times
the initial running time.
As illustrated, a complete design
can be done rapidly, assuming perfect
input data. With this ability to generate new designs easily and with speed,
the automation programs now can assume an
entirely new role. Such programs can be
used as evaluators to test the effect of
varying parameters and circuit rules to
optimalize the design.
One excellent example of the evaluation role of the programs took place
during the design of the NCR 304. A
power driver plug-in card had been built
and was within a few weeks of going into
production for th. NCR 304, when a transistor manufacturer announced a new
transistor with about 70% greater load
driving capability. However, the price
of the new transistor was considerably
higher than the transistor that might be
replaced. The questions to be answered
were:
1. Can the higher cost of the new
transistor be justified?
2. Can the new driver be included
in the design before the computer release
to the factory in the immediate future?
With the adjustment of a few constants within the program and a few
hours maChine running time, it was
simple to justify the higher priced transistors and generate all the new data
required for the factory.
To summarize the effects these automation programs have had upon the Engineering organization using them, here
are some of the immediate and rather
obvious results which were achieved:
1.
time;

Reduced computer design cycle

2. Reduced engineering design
manpower;
3. Better documentation of the

221
5.2

designed computer;
4. Greater reliability built into
the computer through complete adherence
to circuit rules;
5. Better optimized computer design; and
6. Drastic reduction in the educational effort necessary to teach the
logicians the circuit rules.
Now, let us examine some of the
above items in detail. An engineering
model of the NCR 304 Central Processor
was built by entirely manual methods.
The production model NCR 304 Central
Processor was built by using the automation programs. The production model
bore no physical resemblance to the
engineering model. Even the plug-in
cards were completely re-designed. Thus,
both designs were different except for
the logic, and both designs started with
approximately the same logic equations.
Considerably less' engineering manpower was needed for the design of the
production model than the engineering
model even though the production model
was a much more complete design. The
non-engineering personnel remained about
constant during the two designs. Using
the same manpower on the automated design as on the manual design, the
computer design cycle could be reduced,
and here it should be noted that with
the automated design, a few key engineering people can run the entire design
effort rather than spreading the design
among many groups of engineers. Stated
in another fashion, the design task has
been modified such that non-engineering
personnel can do much of the work formerly done by engineers, and yet a few
engineers can maintain absolute control
of the whole process.
One reason why fewer engineering
man-months are required in the automated
design is that most of the "engineering"
decisions of how to implement logic with
hardware are made by the programs. In
addition, having the programs implement
the logic into circuits produces an
additional effect of great importance.
This is that ALL logic configurations
are thoroughly checked to conform to
circuit rules. Such things as wire
capacitance loading on every source are
accurately calculated and factored into
the total loading picture. With an
entirely manual design process, this
would be almost impossible even though
reliable machine operation dictates such
calculations.
with t~e implementation of logic
into circuits by program, the designer
only needs to know the circuit rules in

a gross sense. The circuit designers
develop the circuit and its rules and
deliver this detail information to the
programming group who builds the rules
into the program. There are a total of
only two or three people in the programming group who ever see these detail
circuit rules as opposed to educating a
large number of personnel as was formerly
required. Thus, it is evident that one
of the difficult and important communication problems in digital computer
design has been circumvented.
When the Design Automation techniques
were introduced, there was considerable
resistance to them in certain areas.
Familiarization with the new documents,
however, brought firm support for the new
documents and their many benefits in a
very short time. The greatest advantage,
perhaps is the knowledge that the documents always exactly represent the
equipment in question. Also, the machine
updating of the drawings results in a
very short time lag until changes are
reflected in the drawings.
The digital computer design task
is never static. It will be continuously and progressively automated by the
use of programs run on existing computers. Better optimized designs and
design processes in which such matters
as accuracy and adherence to circuit
rules are effectively handled, both
serve as stimuli for automating the
design task.
Acknowledgements
The authors of this paper wish to
express their appreciation to the following employees of the Applications Section
of the General Electric Computer Department for their efforts and cooperation
in writing and debugging the Design
Automation Programs:
M. A. Anfenson
R. B. Cochran
D. D. Degler

W. T. Dodds
P. H. Jennings
R. W. Miller
R. E. Moore
W. J. willis

222
5.2

Assemble
Equations
for each
Block

Format
and
Print

Fig. la. Over-all Design Automation Flow Chart

Gather Loads
on
Each Source

Calc. capacitance; Assign
Loads to
Sources and
Drivers

Complete the
Input Signal
Identification

Format
and
Print

Fig. lb. Over-all Design Automation Flow Chart

223
5.2

Assign Elements
to Plug-in
Cards

Format
and
Print

Fig. Ie. Over-all Design Automation Flow Chart

224

5.2

Gather Pins
to be
Connected
Together

Assign
Connector
For Etched
Panels

Prepare
Various Wire
Data

Layout
Etched Panels

Print

Fig. ld. Over-all Design Automation Flow Chart

Prepare
Load
List

Prepare Logic
Schematics

Fig. le. Over-all Design Automation Flow Chart

"'Ij

.....

C!C!

!V
~

"'Ij

en

::r' ~ ~::r' ..... Il)
~1l)::r'Oe.~
_ ....
rno

r

r

0102 0

= NJ111
NJ110
= FP141

OECI,..AL
ME~ORY

FPOOI XKAll
FP001 XKAll
XKA90

ADO
REGISTER

NO CHANGE OF CONTENT IN LOGIC PERIOD

MEMORY-SELECT • ADDRESS IN L-REG.

£E211-EE241 • FM011-FM041 FEOOI PE021
EE210-£E240 • F"010-'M040 FE001 PE021
FE011-EE201 • 'E051-EE241 Fe001 PE041
FE010-££200 • F£05O-EE2~O FEOOI PE041
FE001 • XP211 PE231
FEOOO •

XPO~l

PEl51

'EOOO • XP221
TALLY

~EGISTER

C6-REG)

NO CHANGE
MISC. 81T STORAGE
FlMl1 • (FL01-14 • CONSOLE SWITCHES)
JI401 IP231 IM-MAINI
FlM11 .'JI~11K • JI423K(FMOll+FM0211+
J1433K FM021+ JI~43K FMOll
FMOlI) XP081 PN231

--------'lORI • IP08 '"051 PftZ'l

D£CISf0f4 "'-OGle
'''011 •
FI(OlO • IP141

FK021 • (FAO,-01- 000) XPI01 PNZ31
FK020 - XP141
INSTRUCTION REGISTER
FN141-FN161 • FMOII-FM031 SR031 XPO~l
PN231
FNl.0-FN160 - FMOIO-FM030 SR031 xP091
PN231
• FM051 SHOll XP091 PN231
'N171
• F~O~O SAO'l XP091 PNZ31
'"110
PROGRAM COUNTER

(FN01-FN07,

FKOIO FK020 - COUNT TO NEXT BLOCK
FKOIO FKOl1 PH031

SKIP TO BLOCK

04

FKOll FK021.-

SKIP TO BLOCK

co

FK01! FK020 -

SKIP TO SLOCK

00

COMMAMD-

1
1 BI.OCK-

AD])

OZ

FNl T

FN1'"

LOOK UP SECOND WORD OF"
COMMAND

The automonitor FF is set
if the monitor address selection switches are equal to
the L-reg. and the' monitor
address switch is on; or if
the automonitor character is
equal to or greater than the
monitor charaeter selection
swf.tch setting.
The B & C portions of the
second word of the command.
containing the partial word
designations, are copied into the E-reg. from the M-reg,
The S2,.reg,_ is cleared.
The A portion. which contains the monitor character
and relative addreSSing instruetions~ are copied into
the A-reg.

If the monitor character is negative, the over-ride FF is set.
The mode bits of character 9 are copied into the N-reg.
providing the machine is not in R3 test mode.
The index register character (R) is copied into the L.S.
four bits of the L-reg. while the remainder of the L-reg. is
cleared.
The program counter counts to the next bloek if the index
register field selector (S) is not equal to zero.
The program counter skips to block 01-04 if the index
field selector (S) is zero.

registe~

Ut!'V
•
!'V
!'VOl

226
5.2

EWIIOA
EWIIIA
EWl20A
EWl2lA
FAOIOA
FAdllA
FAo20A
FA021A
FA030A
FA03IA
FA04QA
FA041A
FAOSOA
FA051A
FA060A
FAQ6lA
FA010A
FA011A
FAOaOA
FA08lA
fA090A
FA091A
FAIOOA
FAIOlA
FAllOA
FAIll~

FA120A
FA12lA
FA130A
FAl3lA
FA140A
FA141A
FBOOOA

FB001A

• QCOIIA * FP201A NGOIOA *
= QCOIIA * PGOl3A *
a QCOIIA * EW121A FG040A *
• QCOllA * EWIOOA EW120A FGOOlA FGOIIA FPOOOA DP230A EWlI1A •
• OCOIIA * FA050A OA05lA + FLOIOA OA061A •
a QCOllA * FA05lA DA05lA + FLOllA DA06lA *
• QCOIIA * FA060A OA051A + FL020A DA061A •
• QCOllA * FA061A DA05lA + FL021A DA061A •
• OCOIIA * FA010A DA05lA + FL030A DA06IA •
a QCOllA * FA01lA DA051A + FL03lA OA061A •
= OCOllA * FA080A DA051A + F~040A DA06IA •
= QCOIIA * FAOSlA OA051A + FL041A OA06IA •
a QCOIIA * FA090A DA051A + FL050A OA061A •
• QCOIIA * FA09lA OA05lA + FL051A DA06IA •
• OCOllA * FAIOOA OA05lA + FL060A DA061A *
= QCOllA * FAIOlA DAOSIA + FL06lA DA061A •
= aCOIIA * FAllOA DA05lA + FL010A DA06IA •
• QCOIIA * FAIllA DA051A + FL011A DA061A •
• QCOIIA * FA120A DA051A + FL080A DA061A •
= QCOIIA * FAl2lA DA051A + FL081A DA06lA •
• QCOIIA * FLO lOA OAOIIA + FMOlOA DA021A + NJOIOA OA031A
FSOIOA DA041A + FL090A DA061A + DA121A*
= QCOIIA * FLOIIA DAOIIA + FMOIIA DA021A + NJOIIA OA031A
FSOllA OA04lA + FL09lA DA06IA *
IS <)COllA * FL020A OAOIIA + Fr~020A OA021A + NJ020A DA031A
FS020A OA04lA + FLIOOA DA06lA + OA121A •
• OCOIIA * FL021A OAOllA + FM021A DA021A + NJ021A DA031A
FS021A OA04lA + FLIOIA DA06IA •
• QCOIIA * FL030A DAOllA + FM030A OA021A + NJ030A OA03lA
FS030A DA041A + FLIIOA DA061A + DA121A *
• QCOIIA * FL03lA DAOIIA + FM031A DA021A + NJ03lA OA031A
F503lA OA041A + FLIIIA OA061A *
• QCOIIA * FL040A OAOIIA + FM040A OA02lA + NJ040A OA031A
FS040A DA041A + FL120A DA061A + DA121A •
• QCOIIA * FL041A DAOIIA + FM041A DA02lA + NJ041A DA031A
FS041A DA041A +FL121A DAd6lA *
= QCOIIA * FL130A FP281A DAOIIA + FM050A FP281A DA021A + NJ050A
FP28lA DA031A + FS050A FP281A DA04lA + FL130A DA061A
FP281A DAl2lA *
s aCOIIA * FL131A FP28lA DAOIIA + FM051A FP281A DA021A + NJ05lA
FP28lA OA031A + FS051A FP281A OA041A + FL131A OA061A •
• OCOIIA * FL140A FP261A DAOIIA + FM060A FP281A OA021A
NJ060A FP281A DA031A + FS060A FP281A DA041A
FL140A DA061A + FP281A OA121A •
= OCOIIA * FLl4lA FP28lA DAOIIA + FM061A FP281A OA021A + NJ061A
FP281A ~A031A + FS061A FP281A DA041A + FL141A DA061A •
• OCOIIA * DPOOIA peS03A + OP031A P8533A + DP041A PB543A
DP011A PB573A + DP081A P8583A + OP09lA PB593A + OPlOIA
PB3;3A + OE321A FPOOIA PB643A + FSOIOA FS020A FS030A
FS040A FS060A FPOOIA P8353A + DPOIIA PB513A + DP231A PB733A •
• QCOIIA * OP221A PB423A + OP231A PB433A + OP021A PB223A
DP051A PB253A + OP081A PB283A + DE31lA FP26lA P8343A
fFSOIIA + FS02lA + FS031A + FS04lA + FS06lAJ FPOOIA
PB353A *

Fig. 3. Sample Input Equation Data
Figure 3 is a partial listing of the equations for a recently designed machine. The plus
sign is an OR relation and the parenthesis is an AND relation. The logic signals are the
six character groups. An AND relation is implied where no character appears between
logic signals. The asterisk denotes the beginning and ending of the equation input
terms.

227
5.2

SSWl IS UP--OUTPUT IS ON TAPE 8
D,\051 A
LEVEL TOO HIGH
DP071AOOOOOOOOOOO6
Di\051A
LEVEL TOO HIGH
DP061AOOOOOOOOOO06
DAOSIA
LE.VEL TOO HIGH
DP041AOnOOOOOOOOO6
DA051A
LEVEL TOO f-tIGH
DP031AOOOOOOOOOO06
PA081A
WIDTH ERROR IN GATt:
DAOBIASGOllDA081A
WIDTH ERI~OR IN GATE.
DA081A4GOllDA081A
I.J I l) THE RR OR I N GATE
OA081A3G011ILLEGAL eHAR
EA021A
EA081A
l.EVEL TOO HIGH
DU011AOOOOOOOOOOO5
EA081A
WIDTH ERROR IN GATE
I:.A08lA3G011FORMAT
EA801A
NO FIRST ASTERI3K.
SEQUENCE
EA091A
ILLEGAL CHAR
EA091A
fOR/·1AT
FAOOOA
CLOCK
FA011A
CLAI"\P ERROR IN GATE
FAOIlA2GOl1FAOB1A
WIDTH ERROR IN GATE
fAOBIA5GOllFAOBIA
WIOTH ERROR IN GATE
fA081A4GOllFA081A
WIDTH ERROR IN GATE
fL\OB1A3GOllFAOBIA
CLAt<1P ERROR IN GATE
fA081A2G018fORt-1AT
FA191A
NO FIRST ASTE~ISK.
FORt-1AT
A:)011AA0021A +
fCOlOA
fOR~~AT
fCOIOA
+
AD011AA0021A
fORMAT
fCOIIA
NO FIRST ASTERIS~
FORMAT
fC021A
NO FIRST ASTERISK.
fORI1AT
fe02lA
OA045A
FORI"-1A T
FC021A
DA046A
FORMAT
fCOIIA
NO FIRST ASTERISK
SEQUENCE
FCCllA
FOR:-.1AT
EQ sur-1
JC034A
JC043A
'II 10TH ERROR II'~ GA TE
JC043A5GOllJC043A
WIDTH ERROR IN GATf:
JC043A4GOllSEQUENCE
fNOBOA
fORMAT
PAOllA
NO Ef OJN

NO LOAD l.IST FOR
FPOOOA OFOl
NO LOAO l.IST FOR
fPOOOA OF02
El.EMENT
FPIOOA
5G021DOES NOT APPEAR IN INPUT DATA
ELEMENT
FP100A
5G041DOES NOT APPEAR IN INPUT DATA
NO LOAD LIST FOR
FP200A OF02
TAPE 5 IS FULl.. REPLACE AND PUSH START.
LOAD LIST FOR
LOAD LIsT FOR
NO LOAD LIST FOR
NO LOGIC ~OR LOADS
ELEMENT
FSllOA
ELEMENT
FSl20A
lEFT OVER El.EMENT

NO
NO

4G0714G071FS160A

FP240A OFOl
FP260A OFOl
FP290A OFOl
FP291AO"'OA
DOES NOT APPEAR. l~ INPUT DATA
DOES NOT APPEAR IN INPUT DATA
4GOl X
03F6
lC2140

Fig. 4. Error Printouts from Element Input List and Logic Schematic Programs
In Fig. 4, the upper half of the example shows a number of error printouts made by the
Equation Interpretation program. The lower half shows error printouts made by the
Schematic program. Both examples are from Production Input data.

CARD
LOCATION
OlHl

EQUATION
SUM

EL.LEVEL
& TYPL

ZG2

DM771A

4G 0 III

47

E~821A

FL142A

OE020OFOIB-

29
28

DM771A
FL093A

4G0111
OFG1D-

45
41

F L.l_C3A_
~G2__

CARD
TYP~

23

CKT.
TYPE

2G2

CARD SERIAL
NO. IN MOD.

__0 F_O LC....

__ __ __ _

PIN
NO.

UtI'-:)
•
I'-:)
I'-:) 00

04-

CKT.
TYPE
4 G2

4GZ

EQUATION ~L.LEVEL
SUl-1 __
_ __ & TY?~

PIN
NO.

D~ 8~ lA

__4 GO 2 12

FLQ93A

OF01D-

17
18

D~801A

~G0312

09

FL142A

OF015-

_

40 ___ ___
42

4 G2

D >18 0 l..!.

4 G0 41 1

05

FM810A

OF01E-

03
04

_4G0511_
OH013-

06
12
10

36
44

35

4G2 __ Q;-"180 lA_
DM181A

3~~~_____

ZGZ

4G2

4G2

13
14

37
2G2

08

46
31
32

4R

43

4R

33

4R

,1

DM761A
PMOO3A
EM82lA

4G0211

07

OHOAO

19

OE020-

20

4R

~O

DM111A
RM803A
EM821A

4GOZ11

11
15
16

4R

2~

OEOZO-

Fig. S. Plug-In Gate Card in Element Pin List Format
Figure 5 is an Element Pin List representation of a single plug-in gate card. Note that
some of the gates and some of the inputs have been left unused. Also, some pins have
identical logic names attached-indicating that these pins will be wired together.

O\C'J
C'J
•
C'Jl.(')

OLlIlA OH02 IE32 •
JI13lK
IE35 •
FS05lA OHOA IHl7 •
FP281A OHOA IHIS •
Dl111A OHOl IH41 •
FA131A OFOI lH13 •
OL19lA OHOZ IHl4 •

05 IE31 - - - - - - - - lE36 +
lE14
+
IE36
+
03 tHoa
IH45
04 1H09

FAl3lA OFOI IH19 •
FP28lA OHOA IH20 •
DLl5IA OHOl IH31 •

01 lH07
IH42

FM051A OHOA IHI5 •
FP28lA OHOA IHl6 •
DLl6lA OHOI IH35 •

02 IHll
IH44

lHO) •
SLl3lA
DL22lA OH02 IH04 •

06 IH05

+
+
IF19 +
+
+
+
+
+
IFl8 +
+
+
+ 01 IEBS FLl3lA OFOI
....--.....--...-....-...+ 01 IF05 ---- lE33 +
IF06
lE46
+
lE04
+
-- IF17 +
QCOIIA 2H80 lE01
+
+
lEl2
+
+
+
+
+
-- IF16 +
+
+
+
• lE34 +
-----

FL131A OFOI
MODULE - 02H8
DM401A
DM411A
DM421A
DM631A
DM64lA
DM65lA
FAI3lA
FA13lA
JK431A
NJ450A
NJ470A
NKM50A

5GOI
4G03
4G03
4G01
4GOl
4G01
4GOI
4G05
4GOI
----

0lH12N35
01HllS40
01HllS41
0lH12M36
01H12M38
0lH32Hl4
03H5ZS13
03H51R33
04F7lF43
03F51E09
03F51F09
4G04 04H41D3l

Fig. 6. Machine Produced Logic Schematic
The machine produced Logic Schematic displays the structure of the logic networks. In this schematic, interconnections between elements of the stage are made obvious by their placement on the drawing. Therefore,
the use of interconnecting lines is unnecessary. Rows of periods designate the scope, or width, of an AND
gate and rows of plus signs designate the scope of an OR gate. Any break in the sequence of these symbols
terminates the scope of the gate in question. Input pins to elements are physically located with the four
character pin number immediately to the left of the scope line for the element. To the right of the gate scope
symbols is the two character gate name (serial number) and next to the two character gate name is a four
character pin number identification of this gate output. I.f several circuits have to be connected in parallel
to implement this gate, then several output pins will be present in a column. It is implied that all pins in the
stage are contained in the cabinet, rack and module that is shown as the ~'module" in the upper right corner
of the drawing.

CJ1 I'-:)
•
W

1'-:)0

DL21LA

OH02 ••--~

FL13lA

4G05

JI13lK

FS05lA

OROA

FP~81A

OROA

DL17LA

ORO 1

FA13LA
DL19LA

FA131A
FP28LA

\

4G03

FL13lA

4G04

FL13lA

OFOle

I "\

i

OFOl

DL151A

FM05lA

(ROA

FP28lA
DL16LA

OROl

)

FL131A
4GOl

OROA:={)

FL131A

~
OR02~

J

I \

~

OH02-V

OROA:=]
OHOI

SL131A

FL13lA

FL131A

3GOl

lGOl

,\~Set input

I

I FL13LA

~~OP I

I

OFOI

Output 02HBlEO!'

Clock

I

QCOlLA 2H80

4G02

V

I

V

LOAD LIST
OlHl2N35
DN40LA 5GOl OlHl1540
DN411A 4G03
etc.

Fig. 7. Hand drawn Logic Schematic (with no pin information)
Figure 7 shows the equivalent hand drawn logic schematic for comparison to the machine
produced schematic of Fig. 6. It should be noted that Fig. 7 includes no pin number
(physical location) information whereas Fig. 6 has both logic and pin information.

231
5.2

LOGIC

PIN NO.

ENOIOEOEOI

41H22M29

41H32l11
41H41A38

ENOI1EOHOA

41H32ZJ9
41H42A23
41H51Z29

ENOI1EOHOB

41F19COl
41H32Z0'
41H41Z33

EN020EOEOl

41H41All
41H22MIO

EH021EOHOA

41F31Z2'
41F41A40
41H12Z40
41H31Z0J
41H42A40

EN021EOti08

41'19C06
41F41A20

41H52A20
41H41Z:42

Fig. 8. Sample page from Logic Pin List

232
5.2

'['rueli'alse
8il1nal

Alphabettcs Denote
Register

Desig-

Ma 10r
t

Compute
Unit

A

f

Numeri cs Denote
8bage

,

f

If

Element Circuit
Type
r

4

'1

D03 1 B

Element Serial
Number
~

o 41

The following information is carried in the above logic designation:
Third stage of the FD register
True signal
Central Processor logic
Flip-flop element - fourth serial number in stage
Fig. 9. Sample Logic Nomenclature

Hinged
or
Fixed
Rack

Module
Number

Module
Row

"',

"',

Module
Socket

Cabinet Number
t

I'

.A

,

0 3 H 6

Pin
Number

,

1 R 3

Fig. 10. Sample Pin Nomenclature

"

91

233
5.3

CALCULATED WAVEFORMS FOR THE TUNNEL
DIODE LOCKED-PAIR CIRCUIT
D. R. Crosby

H. R. Kaupp

Electronic Data Processing Division
Radio Corporation of America
Camden, N. J.
The purpose of this paper is to present an introductoryanalysis of the tunnel diode locked-pair circuit.
The characteristics of the tunnel diode, together with
the simplicity of the locked-pair circuit, make it a
major contender for use as a high-speed computer
element. 1, 2 High speed and high gain are the main
advantages of the locked pair; the multi-phase power
supply and lack of a simple means for logical inversion are the main disadvantages. The basic circuit
consists of two tunnel diodes in series, the node common to the tunnel diodes being both the input and output terminal. As a computer element, the locked pair
functions in much the same manner as the phase-locking
harmonic oscillator (PLO). Like the PLO, the locked
pair overcomes the difficulty of COincident input and
output terminals byusing a three-phase voltage source.
However, the theory of three-phase majority 10g!c is
not essential to the understanding of this paper. 3,4
A.

Basic Concepts of Locked-Pair Circuitry

The equivalent circuit of a tunnel diode is shown
in Figure lA, and the volt-amp characteristic of the
nonlinear conductive element is shown in Figure lB.

load. For the moment, neglect the source resistance.
Increasing the voltage E "draws" the load curve A
across the characteristic of the active element B.
This is analogous to what is done with tube and transistor circuits, the difference here being the nonlinear
load. Figure 3 indicates the current-voltage relationships for the circuit of Figure 2, at a particular value
of source voltage, where it is seen that the load curve
A intersects the element curve B at three points.
Points one and three are stable, while point two is unstable. The state in which the circuit locks, as the
source voltage is increasing, depends on which of the
two characteristics first reaches its negative conductance region. By inserting a locking current, IL (Figure 2) the operating point is predetermined (Figure 4).
The effect of 1L is to shift the family of operating points ,
causing element B to reach its negative conductance
region before element A. Thus, diode B goes to its
high voltage state. When the voltage E becomes equal
to EL, point three of Figure 3 will be the operating
point, so that a locking current into the node causes
the circuit of Figure 2 to have a high-voltage output.
Conversely, a locking current out of the node would
cause a low-voltage output (operating point 1 of
Figure 3).

FIGURE 2-IDEALIZED LOCKED-PAIR CIRCUIT
(INDUCTANCE AND CAPACITY NEGLECTED)
lIYI

1 BM B
A

3

I

@

+__+_

~_ _

5

I

0
5

5

EQUIVALENT CIRCUIT

2
Y8

I

E,

-~-~-,,~~ ~\
\~~I
V

(Vp IpJ

~,

----ANALyTIC
APPROXIMATION!

I

II
IiI

""

V
50

FIGURE3-CURRENT AND VOLTAGE RELATIONSHIPS .FOR
CIRCUIT OF FIGURE 2 FOR E-E,

100

)'
~k

/~
IYy,Iyl

200
250
MllI..IVOLTS

®

J

I

300

350

450

TYPICAL NEGATIVE CONDUCTANCE
CHARACTERISTIC

FIGURE I - TUNNEL DIODE

To understand the basic operation of the locked
pair, examine the idealized circuit of Figure 2, where
diode inductance and capacity are neglected. Assume
that tunnel diode B is the active element, and A is the

FIGURE4-RELATION OF CHARACTERISTICS NEAR CRITICAL
POINT OF SWITCHING

The locked pair is susceptible to a locking signal
in the region where the peaks of the diode characteristic
are crossing; thereafter it is relatively insensitive to
spurious signals.

234
5.3
A significant difference in diode peak current
produces the same effect as the locking current; hence,
the locking current must be large enough to overcome
the differences in diode characteristics.

400
EJOO

(I-COSI2WT)~/
."..-

/;V:e

50

0

The effect of source resistance on diode sWitching will now be examined. As in Figure 2, "tu-nnel diode
B will again be considered the active element. However,
the load curve now is the series combination ·of the
source resistance, R, and the V-I characteristic of
diode A. The source resistance affects the peak of the
load curve by moving it to a higher voltage. Hence, a
larger source voltage is needed to bring the characteristics to the critical point of switching, which is indicated quantatively in Figure 5A. Figure 5B indicates
the operating point of the circuit when the source voltage has reached an arbitrary maximum. The effects
of a high source resistance are seen as a delay in
switching, and a reduced output voltage.

1/

50

00

/ I
/ il
/
II

.~,nU

"f\

E

IB

1\

20
I

\

\ 1\

I
I

\ \

I

I

\

I

1,\\

;\
)

VB

\'\
\' r-.
\i\ \

/I

://
'j

,

77
'I

I ii
00

0

~

__ v

\\
\

1/

IT

I-.

--1-.-,./

~
"-. ~

V
t
o/..v
VB

' " VB

04

05

08

09

10

T (NORMALIZED TIME)

FIGURE 6-WAVEFORMS OF IDEALIZED LOCKED-PAIR CIRCUIT
(INDUCTANCE AND CAPACITY NEGLECTED)

Ie
251-----+---+---+--+----+---+-----l---t--~

B.

Computer Solutions

The technique related above and used for Figure 6
is invalid when the effects of capacitance and inductance
are appreciable. Through use of a digital computer, a
solution considering the effect of diode capacities, can
be easily realized. Such a computer solution excludes
the stray parameters associated with laboratory work
at high frequenCies, thereby disclosing the basic nature
of the circuit.

®

For the ensuing discussion a sinusoidal source
voltage is assumed, because it seems to be the most
practical waveform for driving a large number of
locked-pair circuits.

PRIOR TO SWITCHJNG

Ie

25

20

~

~
o

e

7~
I I~
~
7
!----ACTIVE ELEMENT

o

50

100

150

R-O

\~~5!l

I~

t--

200

V
\/
}.

250

300

V

350

V

\
\

\

"'"Nve
450

MILLIVOLTS

®

AFTER SWITCHING
FIGURE 5- GRAPHICAL INTERPRETATION OF CIRCUIT IN FIGURE 2 FOR VA~IOUS
SOURCES RESISTANCES

The waveforms for the circuit of Figure 2 can be
obtained by making a point-by-point plot from the characteristics shown in Figure 5. The current and output
voltage waveforms in Figure 6 are plotted for a sinusoidal source voltage, and a source resistance of 5 ohms.

A d-c component is added to the sinusoidal source
voltage to keep the diode voltage from having negative
values. A negative voltage across the diode would
cause an wmecessary loss of power, and if the diodes
V-I characteristics are not well matched, the circuit
would exhibit an undesirable output voltage during negative excursions of the driving voltage. Therefore, the
source voltage will be of the following form as plotted
in Figure 6:
E

=

Kl - K2 Cos 2 1T ft

The values of Kl and K2 are somewhat arbitrary.
However, the d-c component, Kl, must be of such a
value that the minimum excursion of driving voltage is
less than the peak voltage of the diode characteristic
(Vp in Figure lB), otherwise the circuit will never relax. That is, the same diode will always go to its high
state regardless of the polarity of the locking signal.
For the problems solved on the computer, the chosen
d-c voltage component was equal to the peak sinusoidal
value:
.

235
5.3
The nominal inductance of RCA germanium tunnel diodes is 0.4 muhenries, yielding an inductive reactance of 1 ohm at 400 mc. Thus, for the values of
frequency and source resistance used in these examples,
the inductance of the tunnel diode may be neglected.
RCA germanium tunnel diodes (nominal 20-ma~
peak current) with identical nonlinear characteristics
are assumed. To facilitate compution, the programmers
developed an analytical expreSSion to approximate the nonlinear characteristic. The experimental
tunnel diode curve is compared with its analytic approximation in Flgure lB.

**

The first problem was solved for the circuit of
Figure 2 with diode capacity included. In order to keep
the problem as simple as poSSible, no locking signal
is applied; instead, the diodes switch because of the
difference in capacity. In this instance, diode B always switches to its high-voltage state because it has
the smaller capacity.

400

350

E/I

II I

30 0

250

100

/

0

)

l-/
o Lo

01

02

FREQ
MC

C&

10
30
100
300
1000

140
47
14
47
14

"

0.4
o.s
06
T (NORMALIZED TIME)

0.3

E

I

I
/

03

®

0.2 volts, d-c component of source voltage
0.2 volts, peak value of sinusoidal component of source voltage

fA

C

~
!

CB

:g

Ie \

Ie

If

\~

iF

'02

!

liB!

II

I~

/
01

$>

lA

io

\:

J

B

10

liB ...

\i

J

11

I2B
fC

09

E=02(1-COS21TT)

Il 1\\:
~'
'. \:

10

5 ohms, the source resistance

0.&

sntf

/~~.".IIA

2

R

0.7

/" ~ ~

VOLTAGE WAVEFORMS

170
S7
17
57
17

16

ft, the normalized time (f = frequency in cps)

\

1

I

T

\\

pI

1&

o

\\

CA

pI

2

where:

\\

t\VA

V
®

o

~

/

/

20

dVB

\

IVB

IS 0

are:

a-;- =

'~

71
/

200

The defining equations derived from Figure 2
E

~0

V

:..--~

~

/I

'J
--"-'"

?4 o.s
06
T (NORMALIZED TIME)

07

V
\

\
\
09

"'-

10

CURRENT WAVEFORMS
FIGURE 7-TUNNEL DIODE LOCKED-PAIR CIRCUIT- BASE
FREQUENCY IOMC

Note that capacity and frequency appear only as
a product in the defining equations of the circuit.
Therefore, the waveforms can be interpolated for different values of frequency and capacity through use of
the relations:
170
CAil = 140 C BII

170 p.p.f, capacity of twmel diode A
140 ILlLf, capacity of tunnel diode B

Solutions were obtained for frequencies of 10,
30, 100 and 300 mc. The resultant voltage and current waveforms are shown in Figures 7 through 10.

** Both computer

solutions were obtained with the
assistance of R. W. Klopfenstein, Director of
Mathematical Services, and G. B. Herzog; RCA
Laboratories, Princeton, N. J.

where: fI is the frequency for which the waveforms
were originally calculated, and CAlI, CBII, and f II
are the new values of capacity and frequency for which
the waveforms are also valid.
From the voltage waveforms it is seen that switching is quite appa.rent at 10 and 30mc. (Figures 7A and

SA). Although some switching is evident at 100 mc.
(Figure 9A), it is not distinct. However, at 300 mc.
(Figure lOA) the diode capacity effectively shunts the
nonlinear element and switching does not occur. Also
note that at 300 mc. the diode voltages are almost sinusoidal. Examining the waveforms of Figure 6 which
neglect capacitance effects, in conjunction with the
waveforms of Figures 7 through 10, the effects of caacity become more clear. From the current waveforms it is seen that as the frequency increases, the
capacity retards the appearance of sharp irregularities
in the curves.

236
5.3

v~
! I 1\

400

3D

II

jvB

1 \

150

100

/

;
o.L~V
0.

0.1

0..2

6
24

CA
pI

420.
140
42
14
42

5,0
170
51
17
51

0

I

\

... ..

!

\

f
II

8
6

\

2

._.IIA

/
0..1

0.2

0.3

®

CA

0.1

6

-

4

CB-

IB

M

0.2

,,
\~

\~.

0.5
0.6
T (NORMALIZED TIME)

; ,\

Ilk~l

0.

I

,

0.4
0.5
0.6
"f' (NORMALIZED TIME)

"-

D.

I
/

0.8

7

\
\
0..9

'-

118

CURRENT WAVEFORMS

.

\',
\

\

\

.'

'"

/
I

:

f

\

\
.....

~

\

- I'\..

A~

pI

0.3

04

I

I

1

~

\

:

\

~7\~o.i8

~6

0.5
I

I
\
\\

/
'/

1\ ~

0..2

\

f

~

.~

I

I

f

1\

\
\

01

Ce

118_

••••IIA

\

V1
/"

2

1, iB

E(I).D 2(1-CDS 2" T)

\

I,'

0.
1.0.

~.

10.

~f.~~.
1\
\

It

4
2

~
09

EU-

I
Ie

6

--

VOLTAGE WAVEFORMS

1711

Il

8

oe-

\

1/

/.'

4
2

t

1700
570
170
57

II /,"...

6

I'..
0-7

0.4

~

\

\

~

CA
pI

1400
470.
140.
47
14

8

,

I : \

S·'i.

10
30
100
30.0.
10.00

0

\

!

~?

FRED
MC

~
~

I---

\

22

hIIB

......

0./
0.

liB!

'-,..- r'\:- ... --~/

4

~
I

I'Aj

~ ~

"

l'

0

(

\
\

oL~
8

~ ,

\

!J
Ii

1.0.

1

Yf\

18

2

0.9

@

E(')

/r .. \

4

DB

L / '/.~

50

VOLTAGE WAVEFORM

5fi

2

6

0.7

£(,)=0. 2(1-CDS21rT)

Ce
pI

10.
30
10.0
300
1000

~~

~
®

FRED
MC

1\\

--1--

\

/ ' /I'Z

/

100

~

/

lL

150

\1\

0.4
0.5
0..6
"f',i...NORMALIZEO TIME)

j

200

~

0.3

/

250

\\
\

/
1/ /
/
/
hVA

'" \

E/

300

II

200

v

400

~,

4

I"~

I..
/.:

9

1.0

1

~
T 1NDRMALIZED TIME)

FIGURE 8-TUNNEL DIODE LOCKED-PAIR CIRCUIT
BASE FREQUENCY 30 MC

C. Locked-Pair Circuit with Loading

From the previous discussion it should be noted
that the two possible voltage outputs for the curves of
Figure 3 are positive. To perform majority logic, it
is desirable to drive the locked-pair circuit from both
ends with voltages of equal magnitude but opposite polarity. The two possible voltage outputs of the circuit
will then be equal in magnitude but opposite in sign.
A typical locked-pair majority gate is shown in
Figure 11A. The locked-pair is controlled by the majority of n inputs (n must be odd), and in turn will deliver signals to m number of locked-pair circuits. The
input-output impedance of the locked-pair circuit will
be neglected as it is small in comparison with the coupling resistor. For majority rule, all but one input
current may be cancelled. Hence, the sum of the current inputs to the locked pair at a minimum is vo/Rc
where: Vo represents the output voltage of a lockedpair circuit and Rc is the value of a coupling resistor.
The equivalent circuit of the majority gate is shown in
Figure lIB.

® CURRENT

WAVEFORMS
FIGURE 9 - TUNNEL DIODE LOCKED - PAIR CIRCUIT - BASE FREQUENCV 100 Me

The circuit of Figure 11 was solved on the cOmputer for a fan-in and fan-out of six. (m = n = 3). As
in the first problem, equal tunnel diode V-I characteristics were assumed. The defining equations of the
circuit in Figure 11b are:
E

K (1 - Cos 2 1T T)

= 1A Rg +

VA + Vo

E

K (1 - Cos 2 1T T)

= IB Rg +

VB - Vo

Vo

10 Ro

Vs

K

3

= Vs

- Is Rs

[1-COS21T

(T

+

~~

237
5.3
400

E

350

I

250

/
1/

200

150

100

/

v

~

/

.-P
0.1

0.2

0.3

04

ce

cA

pI

pI

10
30
100

4200
1400
420
140
42

5100
1700
510
170
SI

o.S
0.6
T (NORMALIZED TIME)

2

28
24

/

I

20

L

~

\

"'" ~~
0.9

R

50 ohms, the equivalent
locking signal resistance

s

1.0

I
'~(~II ~
lIB

\

J

\

.-.....

,"..:,...

A..c'

/ ,/'

\

\
.....

"-

L /.,'

.....

.....

r\.

\
~2

~3

~4

I

I

I

I

~5

®

.'.'

-!-\---

-'-'

~'

~6

/"

.... /

1B

CB

T

\

0'

0.9./'f'

~
t

I

1ft

OUTPUTS
(FAN-OUT!
CIRCUIT

I

Vo

+

1

EOUIVALENT CIRCUIT OF@.INCLUDING SOURCE RESISTANCE

FIGURE 11- LOCKED-PAIR MAJORITY GATE

t

the simulated equivalent locking
signal for n = 3

ft, the normalized time

The smaller values of capacity used indicate that
the diodes will switch at higher values of frequency than
those used in the first problem; therefore, frequency
values of 100, 300 and 600 mc. were used in this problem. As in the first problem, capacity and frequency
appear only as a product in the circuit equations; thus,
the waveforms become valid for other capacity and frequency values. The simulated locking signal, Vs, is
optimistic since it assumes the maximum output voltage of the locked-pair circuit is equal to the maximum
value of the source voltage E. Also, the locking signal
is assumed to lead the source voltage by 120°; however,
the actual locking signal is not only a function of the
Switching delay induced by the source resistance, ~,
but also is a function of the phase shift caused by tlie
capacitors. This may be seen by examjning the output
voltage and current waveforms in Figure 12 through 14.
From the figures, note that the output voltage
waveforms would barely be able to control the next
stage because the next stage lags by T/3. For more
positive control, the output voltage waveform should
be either shifted to the right .IT to .15T or be maintained for a longer portion of the cycle. Larger capacity would yield some positive phase shift, but only
at the sacrifice of amplitude. A decrease in source
resistance would increase the effective period of the
output voltage; but from practical considerations, 5
ohms is already small. One solution is to increase
the source voltage. An attractive solution would be to
use a larger source voltage and have it clipped.

-E
BASIC

\

"
~B

CURRENT WAVEFORMS

.

\

"

T (NORMALIZED TIME)

INPUTS
(FAN-IN)

.- \
"

+E

E

CA

lIB

!I!'••

FIGURE 10- TUNNEL DIODE LOCKED -PAIR
CIRCUIT - BASE FREQUENCY 300 MC

@

!A

I

1\

,/'.

/

®

50 ohms, the equivalent
load or output resistance

E(t)

L'

-8

20 JLJLf

VOLTAGE WAVEFORMS

E(t)·0.2(1-COS21rT)

f

,

5 ohms, the source resistance

E

6

Y.:~

Rg

3"

0

6

0.10 volts

'\~

07

I

12

K

1\
~ \

v
@

FREO
MC

~

\

~V- ~

/

/

50

300

\

/

v

300

1000

where:

V '\

i

In general, the current and voltage waveforms
for this problem are what would be expected after examining the waveforms of the first problem, i.e., the
waveforms become "smoother" and the voltage waveform of the diode in the high state (diode B) decreases
in amplitude as the frequency is increased. The output voltage at 600 mc. is almost zero. Although at
600 mc. , the neglect of inductance may not be entirely
valid, the waveforms indicate the restrictions placed
on the circuit by diode capacity alone.

238

5.3
"'-',

00

/

80.

I

26 0.
0.

00

VI

180

I

/

160.

/
/

10. 0.

0.

I

/

,.,

V

Vs_

0.

0.

I

VA

'X'

/

/

/

/

/.
/..'

....~,r.

0.1

0.2

CA'C B
pf

30.
ICC
300
60.0.
1000.

667
20.
667
333
2

'\. 1\
\\

I
I
1

60

0.

\\ "- /"
). "/
\\
....... ..~
K.~ ""-.
~
0..7

0.8

Q

,IA'

E+

0.

1/
//1
II
II

6

2

Vs

VS'33.3 [I-COS 211'

20.0.
60.
20.
10.
6

:E

I \
// \

IA

!J

~

/X

le-

0.-3

0.4
()!j
0.6
T (No.RMALIZED TIME)

0.7

-- ~

0.7

.........

0..8

\

1.0.

0..9

r+Ro.

l

1
10V~

r-;;18_

RS

vsl

RQ

•

RS'RC'5C.o.

~'5.o.

- -

\\
\\
\ \

II

\

!

II
II

\\

-l~~'--./j ' \'\
\J

;::.---

~

0.2

0.

IA

I

~

IL

0.

RQ
+
E_

\.

//

0.3

0.5

'\..

I

~

0.7

I.\~

0.8

0.9

10.

r {NORMALIZED TIME)

®

~

0.8

0.6

E'ICD(I-CCS 21TT)
"s'3330-COS2'71'(T+\)j -

II

16

(T+-~)]

I~

0.2

-" ,

/'

)<'.....

l\

VOLTAGE

71

~

\11 "

~~

;)

12

\

A

0.5

\

\

:i -':-i I L

20.

/\

1\

0.4

W

10.

\ ""'-I
\

lirA
1/1

0.1

CA'Ce
pf

30.
ICC
30.0.
60.0.
10.00

R

RQ'5~

\

le//

~

-

FREQ
MC

RS·RL,5Q.o.

\
\\
\'

/f

0.

0.3

22

E'IDC( I-CDS 211'T)

~\

V

..-/ ..........

0..2

18

2

1' .....

...,/ ~ ::?'

0.

24

Rr l e •

I .:

RL

~1:7"

,\1

\

'"\.

,/'

Y

\

\

VD

VA

®

r=

-~-

I VID
10

t-y

\
\

10.

0.9

~

I

./'

VOLTAGE

~~t-VA-

-

Vs _ _ -

/

/

\

'\

- -

/

I

I

\

'r (NORMALIZED TIME)

24

8

-

20.

\1

~

.....

40.

\\.

\

/

80.

I

I

"',

I

I

10.0.

'\. '\

-'f.

/

140.
0.

0.4
0..5
0.6
T (NDRMALIZED TIME)

@
FREQ
MC

"

,/

160.

/1-"---,

./
0.-3

\

\

. . .i"

/'
/

180

-\

Vo

I

120

20.0.

\

f

/

E

\

,

IA

220.

I

20.

0.

240

Va

0.9

CURRENT

FIGURE 13- OUTPUT WAVEFORMS -BASE FREQUENCY 300 MC

10.

@ CURRENT
FIGURE 12- OUTPUT WAVEFORMS- BASE FREQUENCY 100 MC

The waveforms indicate that definite switching
occurs for a diode capacitive reactance to maximum
negative resistance ratio of 3 or greater. Consequently,
a conservative relationship for germanium tunnel diodes
in locked-pair circuits is:

240 . _

FREQ
MC

cA,c e

3D
ICC
30.0.
60.0.
10.0.0.

40.0.
120.
40.
20.
12

"'"

R!

[ in megacycles

C1lrre~t I~ mnpampS)l

(capacIty In p.p. )

J

Figure 15 shows the waveforms at 300 mc. for
equal signal source and load resistors of 30 ohms.
The only noticeable effect of this increased loading is
to slightly decrease the output voltage. However,
upon increasing the power supply resistance from 5
to 10 ohms, the diodes did not switch at all (Figure 16).
D.

Graphical Interpretation of Loading

The effects of loading and source resistance,
neglecting capacity effects, can be predicted by graphical means similar to those indicated in Part A of this
paper. From the discussion of Figure 2, when element
B w~nt to its high voltage state, element A stayedinits
low voltage state. Since the voltage across non-switching

+

+E

RC'Rs"D.o.

220.
E'IOD(I-CDS 21TT),
220.

I~

'\
1\

V

120
10.0.

cl\IIs'333(I-Co.S2n[r+~r

\

/

.........

V

/"

/
1/

0.1

0.2

...

\

.....

.'

/.'
~.

_.1' ~

--

,/" •••• ~A.

-'v

0.

0.

~

/

140

60

/'

/

160

250 fweak

VD
1

E_

180.

r.witchi:::::::ru'J;L [

~

~Q
~~-:i I Rs.~-;-~
~}s

p'

~

..

'

\

L"........
~

0.3

-

0.6

\.

\

\

~"'"

",

\

/v

~ ./

:>.:: ~...- ~

0..7

0.8

0.9

10.

T I NCRMALIZED TIME)

FIGURE 14- OUTPUT VOLTAGE WAVEFORMS-BASE
FREQUENCY 600 MC

element A remains less than Vp (Figure 18), element
A can be apprOximated by a resistance equal to Vp/lp.
Then, the equivalent circuit that is seen by active element B can be written from Figure 11. This Thevenin
equivalent circuit is shown in Figure 17 where:

239
5.3

24DI---+---+----+---+---I--t-----'--c-+-

~~~~~~~~~~2Tn\T+-~J)

2ZDI---+---+---+---+--E-+--/-¥~""'\+-

RS 'R

v:e

::1--_+-_-+-_

D

Ie

'30!/.

__+_-+/-+//-/-~/~.1-.__+_.,,~,~.+~~-~-j.~5n~~::::::

1~.~--~~---4r/--+---+V--_+--\~\-\+_r_--~__r
J

120.

-'\+---l--+--+

IOO~~---+-+/-+--~~/~---+-=-+~\\~\~--~--+
/

/

~

VA

''-l

D~4~-_-+,~~/~,~~~~-/~~~~t~-r-+
DI--~~~~~~-~L---I~?-·-I--

__

+-~~--+-_+

-_+---.:-dL·/-+-----j~·;a~.t---+~A-+-+--+--\-\+---:'''_r_+-;..Li'_l_/
2D'I--~~-/~~~~4V--~~'-'74~V--_+'~~_+---\~~·>.~/--_r

40.1-1--

~~/~~~~9=~===±===1~=__~~,~-~_"'~~~~-~~~~~~~~~~~

Do.

0.1

0.2

0.3

0.5

0.6

0.7

0.8

0.9

10.

T (NDRMALIZED TIME)

FIGURE 15-0UTPUT VOLTAGE WAVEFORMS WITH INCREASED
LOADING-BASE FREQUENCY 300 MC

FIGURE 18-GR,APHICAL INTERPRETATION OF LOCKED-PAIR LOGIC GATE (FIGURE II)

FREQ
MC

CA,ce

30
10.0.
30.0
60.0.
10.0.0.

20.0.
60.
20
10.
6

-

E

RO

+

-

,.,

E

...

1//

ISO

",

/'

//
140

120.

\

I
0.
~S_ _

0.

/

.. I

/
/
/

0.

0.1

-

-"

\

,
I,

\,

,.,';../

ve

~
- - VA-

0.3

+ Rg , Thevenin equivalent re-

_ VpA
r A - ---, linear approximation of element A for VA
IpA

,

/

~

(Rg+rA)RL

sistance

--

0.4
0..5
T (NDRMALIZEO TIME)

0-6

l:>-- F0.7

De

L

,

0.9



where: IVB is the valley current of the tunnel
diode that is in its high voltage state, and the
other parameters are as previously defined.

240

5.3
the diodes will not switch when the source impedance
is increased from 5 to 10 ohms, as seen in the computer waveforms of Figure 16. The criteria for diode
Switching, as affected by loading and source resistance, is determined from Figure 18.

where: VpB and IpB are the coordinates at the point
of peak current from the characteristic of the diode
that is expected to go to its high state.
All the calculated results agree with the unpublished experimental data, and show that a digital
computer Is a powerful aid in the analysis of such
complex nonlinear circuit problems.
FIGURE 19- GRAPHICAL INTERPRETATION OF CIRCUIT IN FIGURE II USING ANALYTIC
APPROXIMATION OF TUNNEL DIODE CHARACTERISTIC (SAME PARAMETERS
AS USED FOR 2nd COMPUTER SOLUTION)

Reference

This equatlon was obtained from Figure 18, and
was based on the assumption that the current in the
active element is near the valley of the V-I characteristic. This approach may be used where the diode
capacitive reactance is at least ten times the magnitude of'the maximum negative resistance.
From Figure 19 it can be seen that the load line,
RT, changes very little when the total load resistance
is decreased from 25 to 15 ohms. as was noted in the
corresponding computer waveforms of Figures 13a
and 15. Also predicted in Figure 19, is the fact that

1. Personal Communication with A. W. Lo.
2. ''Esaki_diode High-Speed Logical Circuits. "
E. Goto, mE Transactions on Electronic Computers,
Vol. EC-9, March 1960.
3. "Semiconductor Diodes in Parametric Subharmonic
Oscillators." J. Hilibrand and W.R. Beam, RCA
Review, June 1959.
4. "A New Concept in Computing." R.L. Wigington,
mE Proceedings, Apri11960.
5. ,tNegative Resistance Elements as Digital Computer
Component." Morton H. Lewin, Eastern Joint
ComI!uter Confere~ce Proceedings 1959.

241
5.4
ON ITERATIVE FAC'l'ORIZATION IN NE'NORK ANALYSIS
BY DIGITAL COMPUTER*'

VI.H.Kim, D.H. Younger
Department of Electrical Engineering
Columbia University
New York 27,N.Y.
C. V. Freiman**', W. Mayeda***
International Business Machines Corporation
Yorktown Heights, New York
Abstract
The need to determine the sum of all tree
admittance products occurs in almost all applications of topological network theory. This
paper describes a method of obtaining this sum
through an i terative factorization of the sum
of tree admittance products of successively
more complex subnetworks. Computational efficiency is achieved in that: (1) it is not necessary to test sets of branches for the presence of circuits; and (2) it is not necessary to calculate each tree admittance product ..
A digital computer program has been developed for use on an IBM-704 which accommodates
any netWork with complex branch admittances and
up to 14 nodes. Far more complex networks
ma.y be anaJ.yzed, however, if they are first decomposed into two-terminal subnetworks. A
detailed description and flow chart of the program are included.

Introduction
Although classical network theory has long
permitted the a.na.l.ysis of arbitrarily large
networks of prescribed form, it is only through
the. use of topolOgical methods and high-speed
digital computers that it has became possible to
ana.lyze a general RLC-network of any appreciable
size. At a given level of theoretical and
mechanical developnent, the practical limit on
the size and complexity of a network which lDa\Y
be analyzed is largely determined by the efficiency of the algorithms used to implement the
various topological network theorems. This
paper seeks to improve this efficiency through
use of a new method for computing the sum of
tree admittance products -- a quantity used in
almost all applications of topological network
theory.

Let us canpider an RLC-network of e elements and n nodes, and let us use N to
denote the graphical representation of the network. A number of authorsl ,2,3 have discussed
the generation of the sum of tree admittance
products in N,T(N), and, in general, the
methods they propose are based on:

(1) Determination of the trees of N by
testing each combination of edges taken (n-l)
at a time for the presence of circuits; and
(2) Calculation of the admittance product
corresponding to each of the trees determined
above.
The method we shall present utilizes the
decomposition procedure introduced in [4] to
compute T(N) in terms of the sums of tree adm.ittance products of the various subgraphs of
N. In practice, T is first determined for 3node subgrapns, then for 4-node subgraphs.
This iterative process continues until T(N)
has been calculated. In this way, it is never
necessary to test for the presence of circuits,
and no admittance product is ever individually
computed.
1.

Let N represent a connected, non-oriented
weightea graph. with n nodes and e edges.
(The term ''branchll may be substituted occasionally for "edge" but the term "element ll will
only be used in the sense of "element of a network" or "element of a set.") The sum of the
weights of all edges which are incident on both
node i and node j (i 1= j) will be denoted
by Wij. The method we shall use to determine
T(N) is based on the following iterative procedure.
1.

*

!b1s work was supported by National Science
Pbundatio"ll Grants 0-3676 and 0-6020.

**

Formerly at Department of Electrical Engineering, Columbia Uni versity, New York, N. Y.

***Presently at Department of Electrical Engineering, University of Illinois, Urbana,
IJ.J..~Oi~.

Iterative Determination of the Sum
of Tree Products

Select a generating node, say node n.

2. Partition the remaining (n-l) nodes
into k subsets in all possible ways for
k = 1, 2, ••• , n-l. (Example A illustrates
the partitioning for a particular 4-node
network.)

Example A
Node 1 is chosen as the generatins node.
(See Fig. 1.)

242

5.4

k

Identification
Number of Partition

1
2

1
2

3

Identification Number
of Partition Element:
1
2
3

(4)

3
4

(432)
(32)
(43)
(42)

(4)
(2)
(3)

(2)

5

(4)

(3)

(2)

Table I.

Substituting (4) in (3) we have

4. We may now express the sum of tree products for graph N as

=
-

r. S7i [T(N ) r.
IJ.

t

v

IJ.V

Y1

m
i€N
IJ.V

]}

(1)

,-,here T( NlJ.v) is the sum of tree products:fOr
subgraph NlJ.v, n is the generating node, and
i is any node in NlJ.v. If NlJ.v consists of a
single node (e.g. N32 of Example A), then
T(~~v) = 1; if NlJ.v is non-connected,
T(NIJ.'() = O.
The maximum possible number of nodes in
NlJ.v is (n-l). Therefore, the problem of finding tree products in an n-node net"imrk has been
changed into one of finding tree products in net"orks with at most (n-l) nodes. If (1) is
applied to NA, Fig. 1, as partitioned in Example A, "ive determine the sum. of tree products of
NA to be
T(NA)

=

T(Nll)'(e+f) + T(N2l )'(e+f)'T(N22)'O

+ T(N3l )·e'T(N32 )·r + T(N4l )·f'T(N42 )·e
+ T(N5l)·O.T(N52)·e'T(N53)·f

=

T(Nll)'(e+f) + T(N3l )T{N32 )'ef
_ + T(N41 )T{N42 )'ef

=

T(NA)

[(b+c)(a:+d) + ad](e+f)idef+e.ef

(5)

=

bae + bde + cae + cde + ade + bat
+ bdf + cat + cdf + ad! + def + aef

(6)

PartitiOninff of the Set
of Nodes (32)

3. Associate sub graphs with each element
of each partition as follovs. .An edge of N
'fill be included in NlJ.v' the subgraph associated with the v-th element of the IJ.-th partition, if and only if both of the nodes u:pon
'i.,rhich it is incident are contained in the v-th
element of the IJ.-th partition. (It is sufficient that orderings of both :partitions and
elements exist. The nature of these orderings
is uni.m:portant.) Fig. 2 presents the various
NIJ.V ,.,rhich are derived from the graph of Example
A.

T(N)

At this :point we observe that T(N32) = T{N42)
= 1, T{N3l) = d, and T{N4l) = a. We may
reuse (1) to obtain T{Nll) as

(2)

If equation (l) is applied to a 3-node graph,
the sum. of tree products of any subgraph is
either 1 or a sum. of edge-weights (e. g.
T{N2l) = b+c in Fig. 2b). Thus, in actual computation, we first calculate the sum. of tree
products for all 3:node subgraphs of N which
do not contain the generating node. These are
then used to find the sum. of tree products for
4-node subgraphs. This process is repeated
until we have calculated T{ N) itself. Example
B demonstrates the actual method of computation, but', for clarity, does not completely
reflect a computer solution. In Appendix B,
the graph of Fig. 3 is solved in the manner of
the computer solution.
Example B
(See Fig. 3). In any subgraph of N,B, the
highest numbered node will arbitrarily be chosen
to be the generating node. The symbol
T(abc ••• k) will denote the sum. of tree products for the subgraph which is formed from the
original graph by removing nodes other than
abc ••• k and all edges incident on these
deleted nodes. Thus, in NB, T(124) = at.
T(123)

T(12). (c+bfe) + (b+c)e
= f(b+c4e) + (b+c)e

T(124)

fa

T(134)

ed

T(234)

(b+c)(a:+d) + ad (Eq. 4)

T( 1234)

Hb+c)( aid)

+ ad]( e+f) + def + aef
(Eq. 5)

(9)

These constitute the sums of tree products
for all subgraphs of N:s vrhich do not contain
node 5. We nOiv determine T( N:a) to be
T(NB) = T(12345) = T(1234).-{gfb.) + T(124)'hg
+ T(234).hg + T(12)h'T(34)g

+ T(14)'h'T(32)g
(3)

(8)

(10)

243

5.4

T(~)

= {[(b+c)(a-Kl) + ad1(e+f) + def
+ fahg + [(b+c)(e:+d) + ad]hg

+ aef}(gfh)

Equation (11) results from the repeated
application of (1) to NB and various of its
subgraphs. Some idea of the effort require~ to
apply equation (1) to graphs of varidUs sizes
may be had by consulting Table II where the number of unique partitions for n-node graphs
(n = 1,2, ••• , 13) are tabulated. If the original graph contained seven nodes, then, after removing the generating node, all possible 3,4,5
and 6-node graphs would nave to be inspected.
From Table II, we see that a 6-node graph may
be partitioned in 203 unique ways. The corresponding numbers for 2,3,4 and 5-node graphs are
found to be 2,5,15 and 52. Thus, the number
of different partitions which must be considered
is found to be

+ fhdg (11)

As each edge of N:s has been uniquely identified, expanding (11) would result in an enumeration of all of the trees of NB. On the
other hand, if each edge were assigned a numerical value and only T(NB) were desired, only
those equations corresponding to (1) ,.,ould be
employed. T(N:s) is calculated in Example C
for a particular assignment of numerical values
to the edges of NE.
Example C
In Fig. 3, let

6
6
6
6
(3)·2 + (4)·5 +(5).15 + (6).52 + 1·203

a=c=e=g=l

and

(12)
When calculations involving this many partitions
are to be carried out, it becomes essential that
a reliable method of generating partitions be
found. This could lead to the use of a table of
partitions but, for computer calculations, the
follOwing procedure is preferable.

b=d=f=h=2
T(123)

= 2(2+1+1)

T(124)

= 1·2 = 2

T(134)

= 1·2 = 2

T(234)

= (2+1)(1+2) + 1·2

+ (2+1)1= 11

1. Choose one node, say node 1.
partitioned in only one way.

= 11

T(1234) = 11(1+2) + 2·1·2 + 1·1-2 = 39
T(~)

= 460

= 39(1+2) + 2·1-2 + 11-2·1 +

It can be

2. Add one node to the previously partitioned set of nodes increasing the number of
nodes from k to k+1. For each partition of
the k nodes into a subsets (a = 1,2, ••• ,k)

2-2·2·1 .

= 151

t3: number of elements in set to be partitioned
a: number of partition
elements
1
2
3
4
5
6
7
8
9
10
11
12
13

1 2

3 4

5

6

7

8

9

1 1 1 1 1 1
1
1
1
1 3 7 15 31 63 127 255
1 6 25 90 301 966 3025
1 10 65 350 1701 7770
1 15 140 1050 6951
1 21 266 2646
1
28 462
1
36
1

10
1
511
9330
34105
42525
22827
5880
750
45
1

1 2 5 15 52 203 877 4140 21147 115975

TOTAIS

Table II:

11

12

1
1
1023
2047
28501
86526
145750 611501
246730 1379400
179487 1323652
63987 627396
11880 159027
22275
11~
1705
55
66
1
1

1
4095
265720
2532530
7508501
9321312
5715424
1899612
359502
39325
2431
78
1

678570 4213597 27648528

The Number of Uni ue "\-fa; s in Hhich Sets of t3 Elements Can Be
Partitioned Into a-element Partitions nat3

Note that na ,t3

13

(a,t3 = 1,2,3, ••• )

244
5.4
form ~l partitions of the k+l nodes as follows. Form one partition of (~l) elements by
using the new node as an additionaJ. element; form
ex partitions of ex eleJnents by adding the new
node to each of the ex elements of the original.
partition in turn.
3. Repeat
partitioned.

2

until all nodes have been

I:f' the sums of tree products for all newly
developed subgraphs are generated at each step,
then this method allows a straightforward determination of the sum of tree products for the
overa.11 graph. Example D illustrates this for
N , the graph Qf Fig. 3.

B

Example D
Graph
nodes
selected

~

partitions

of Fig. 3
sum of tree products of
new1Y introduced subgraphs

'WOrk 'With as many as fourteen nodes provided a
32,168-Word maguet1c core storage unit is
available.
A block diagram showing the functional steps
in the overaJ.l calcul.a.tion is given in Flow
Chart I. Appendix A supplies deta.ils about the
format and execution of the various functions.
Appendix B demonstrates the method by which the
progr~ bandles the calcul.a.tion of T(N) for the
network considered in Section 1, Example B.

Note that the program makes a. dist'inction
between those nodes connected to the generating
node and those which are not. After a subgraph
has been selected and a generating node chosen,
the initial partitioning does not involve all
the remaining nodes of the subgraph but only
those nodes which are connected to the generating node. The unconnected nodes are then distributed among the elements of each partition
in all possib1e ways. The possibility of ever
having
E

1~N

1
1,2

J.LV

w

= 0

(13)

n1

is avoided in this way.
1,2,3
The two potential limitations on any program whi9h caJ.culates the sum of tree a.dmittance
products are memory capacity and computer time.
Either or both 'Will limit the size and generaJ.i ty of the network 'Which may be analyzed.

1,2,3,4

T(134)

= ed

T(234) =

(bie).(artd}kW.
(Eq. 8)

T(124)

= fa

T(12;4) =

= [(bie)(artd)+ad](e+f)

+ def + a.ef

T(N:B) may now be caJ.cu1a.ted as in Eq. (11).
2.

Computer Determination of the SUm
Tree Admittance Products

~

The digital computer progr~ discussed in
this section was written for use on an IBM 104
and is designed to ca.lcu1a.te the sum of tree admittance products for an electrical net. .rork in
·which the branch admittances are expressed as
complex numbers. FOr input purposes these net...-rork admittances must be combined in such a form
that no more than one branch exists between any
pair of nodes. The progr~ . .-rill accept any net-

The problem of memory capacity is revealed
by the table of partitions, Tab1e II. For
n ~ 9, there are simply too ma.ny partitions for
them all to be developed in the computer core
memory at one time. The need to conserve computer time prohibits the use of any of the other
computer storage devices. To perform such an
extensive set of calcul.a.tions 'With a limited
storage capacity, the program must use an efficient procedure 'Which generates a few partitions,
evaluate3 these and stores the partial sum, generates a few more, etc., until all partitions have
been generated and evaluated. A re-examination
of the method used in generating the partitiona
of Example D indicates such a procedure. In
that example, the partition involving node 1
alone is developed, from this partition all partitions involving nodes 1 and 2 are developed, all the partitions involving nodes 1, 2,
and 3 are developed from these, and finaJ.ly all
partitions involving four nodes are developed.
In general., the method. generates all partitions
involving k+l nodes from a lmowledge of all
those involving k-nodes. However, it is
possible at a:ny stage to find those k+l node
partitions corresponding to only one of the knode partitions, then to find those k+2 node
partitions corresponding to only one of the k+l
node pl.rtitions, etc. When all the partitions
generated by a single k-node partition have been
utilized, then the 1*1 node partitions corresponding to another k-node partition are gene-

245
5.4
Flow Chart I
Start of Program
-I'"'

!

'I'

Step 1:

Have all groupings of 0 nodes
out of n-l been evaluated?
No
Yes

Set n = number of'
nodes in network.
FOr each :pair of nodes, store edge
weight of connecting branch.
Let 0=3.

""

Does o = n?

,~

~~ ...
,~

~

L

Step 2:
Generate next grouping of
0 nodes out of n-l (generating
node for overall ne~vork not included).

Increase
0 by 1-

~

#

'I'

Step 3': Detehnine ,.,.hich nodes are
connected to generating node for over~
all graph.

-------

,~

Step 3:
Select for each grouping a
generating node; determine 'VThich of
the remaining 0-1 nodes are connected to it.

~

"
step 4' :

~~

Yes

N.o

Select generating node
for overall graph.

!

..

Same as Step 4 for overall
graph.

Step 4:
Generate next set of partitions of connected nodes. Evaluate
product term for each.
Step 5':

Same as Step 5 for overall
graph.

,~

Step 5:
For each partition of connected nodes, assign unconnected nodef
in all possible ''fays. For each resultant :partition evaluate product term
and store cumulative sum.

,II

Have all partitions been
evaluated?
No
Yes

t

,~

11

Have all partitions been evaluated?
Yes

No

1

t

Step 6: Store sum of tree products
for subgraph in memory.

Step 6':

...

r-

Print
graph.

T(I~)

±

--

for overall

End of Program

I

246

5.4

rated, and these made use of in turn. In this
manner, alJ. the partitions may be generated.
Perhaps the method will be clarified by
reworking example D. Th~ object is to develop
the fifteen 4-node partiti-bns in such a way as
to retain the smallest number of partitiona in
JlM!DDOry at any one time. In Example E, which
shows the successive stages of the developnent
of these partitions, X indicates that the product term is evaJ.uated at that stage and added
to the cumulative sum. Note that at no stage is
it necessar,y to retain more than five partitions
in memory.
Exm!q?l.e E

Development of 4-node partitions by an
1terat1ve procedure, illustrat1ng a saving 1n
memory capacity.
(1)

~1)(2)
12)

-+

-+

~1)(2)

...

(1)(2)(,)
!131(2
1)(23 (4)

...

r)(2 H')(41
14)(2Wj

X
X
X
X

123)

r)(2) 1
~ 12H3T
124)(3
12)(34

...

...
X
X
X

11)(2)~)

13)(2l
1)(23

-+

(1)(2)(3)

-+

X
X

l34)(2~
(13)(24

...

123)(4) X
X
1234)

l

14)(23~
1)(234

~13)(2)(4)

it

Conclusions

(1)(2)
f12)(3)

12){3)

1~~24 3
1 2)(34

rated by adding the new node as a separate
element , it is not even necessary to divide out
any factor. The case in which one or more of
the factors is zero must be treated carefully
but provides no serious problems. The use of
this procedure is illustrated in Appendix B.
However, its usefulness is only appreciated by
considering a partition of-many elements -- say
twelve. In evaJ.uating such a partition we may,
instead of performing the twelve multiplications
of the element factors, perform one division
and one multiplication. Of course, it is not
just as simple as the above com,parison would indicate, since we must provide additional bookkeeping and also evaluate the partition products
for those inte:rmed1ate partitions used in the
generation.

X
X
X

The significance of this saving of core
stol'8ge is better appreciated by considering a
12-node subgraph. Table n shows that there are
over 4 m1ll1on 12-node part1t1ons. Yet it is
poss1ble to generate &ll of them. and evaJ.uate
the product term for each without ever retaining as many as one hundred partit10ns at any
time. These part1t10ns, being so few in number,
may be stored in memory in a convenient and effic1ent manner. For, the sake of programming
convenience, twelve storage locations are set
aside to retain a single partition of 12 nodes;
nonetheless, the total storage for partit10ns is
so small as to be negligible.
In evaluating the product term for the part1tions, a saving in cam;puter time has been
realized by orga.n:f.zing the canputat10ns to take
advantage of the i t~rhtive developnent of the
partit1ons. Oons1de; once again the part1tion
developnent given in Example E. The part1t10n
product for each 4-node partit10n may be evaJ.uated separately, and the sum cumulatively stored.
But each 4-node part1t10n is derived from some
3-node part1tion by altering at most one part1tion element. If' the ,-node partit10n product
has been evaJ.uated, each 4-node product derived
from. 1t may be evaluated by dividing out the old
factor and multi~ by the factor which replaces 1t. For those partitions which are gene-

The importance, in calculating the sum
of tree products for any graph, of using a
factored expression involving the sums of tree
products of the subgraphs, can be seen in the
following comparison. There are associated with
a 12-node graph (or network) N in which an
edge connects each pair of nodes 1210 or apprOximately 6.19 x 1010 trees. In analyzing
this network by our method, the product term of
Eq. (1), Section 1, must be evaluated for each
of 1.52 x 106 groupings of subgraphs. Thus in
a 12-node network, there are about 4 x 104 times
as many trees as groupings. Even these groupings
are not evaJ.uated separately; the iteratIve nature of the develolJll8nt of the groupings permits
evaluation of cOlIDIlOn factors of these products
once for many groupings. Since there are for a
given network many less groupings than individual
trees and since even these groupings are evaluated in factored form, a program based on our
method is potentiall.y orders of magnitude faster than any method which requires the calculation of individual. tree aiJmittance products.
The method by which T(N) is calculated
does not depend on any special structural characterist1cs (i.e. ladder or lattice structures,
etc.) of the network N. Networks of com.pl.etely
arbitrary topology and branch weights may be
analyzed provided the number of nodes in the
network does not exceed the prescribed limit.
However, networks of interest often contain
subnetworks which are connected to the rest of
the network through two' te:rm1nals only. In
such a case, the calculation can be shortened
by determ:1n1ng the driving point aiJmittance of
the two term:1nal subnetwork, which then is replaced in N by a single branch whose weight
is the complex aiJmittance of the subnetwork at
the frequency under consideration. The use of
such simplification, where poSSible, will greatly reduce the cam;putation t:tme.
MaeWilliams2 cited an example of a network of 11 nodes and 21 branches which requires ,0 minutes of IBM 704 time. 'Whether
the network had any topological characteristics
which simplified the cam;putation

247

5.4
is not known; further, it is presumed that the
edge weights of the branches were restricted to
:Pure real or pure imaginary values. For a network with 11 nodes, and arbitrary topology,
which may contain as m.any as 55 branches
each of .'which has a complex weight, our program
estimates less than 30 minutes in computation
of the sum of tree admittance products.
There are several ways in which the efficiency
and usetulness of the program may be extended.
The first modification, a simple one, effects a
considerable sav:t.ng of computer time wen the
network under consideration reflects a minor
change from the network previously investigated.
After a particuJ.ar grouping of a nodes out of
n-l has been generated, step 2 of Fig. 5, this
subgraph is tested to see if any of its edges
have been modified fram those of the network
previously anaJ.yzed. I f none have been modified, the value for that subgraph will already
be in memory and the program can proceed :f.mmediateJ..y to the next grouping.
A more general and useful calculation than
that perfo:rmed by the present p-ogram is to find.
the sum of tree admittance products as a function
of frequency. That is, instead of the input
edge weights expressed in tems of complex numbers, let these weights be given as a rational
function of frequency. The resultant sum of
tree products would then be expressed as a camplex function -of frequency. To solve this more
general. problem, certain modifications of the
program are needed, particularJ..y the method of
evaluation of the partitions. None of the difficulties involved appear to be of a fundamental
nature, although the camplexity of the network
which could be analyzed would be restricted.

A further extension is a program which considers any one of the network edges a variable
admittance. With this additional modification
the program couJ.d be used to directly calculate
the input admittance of a given network looking
in at any pair of terminals as a function of
frequency.

Appendix A
Programming deta:lls and format are given for
each of the furlctionaJ. steps indicated in Flow
Chart I, Section 2.

Stet? 1.
The value of n and the edge weights are
supplied on punched cards. For the latter there
is, for each pair of nodes in the network, a
card on which is punched two numbers designating
the nodes (such as 2-6) and also the real and
the 1maginary parts of the complex admittance
of the branch connecting the nodes. Where no
branch exists in the network between two given
nodes, the value zero real and zero j]Dsgf nary is
supplied. For non-zero admittances, the values
are given in floating point decimal using the

stande.rd decimal card code. The allowable range
of floating point decimal number~is approximateJ..y n x 10-37 to i1 x 10+..J I and zero.
With regard to these limits, same caution must
be exercised since these limits apply not only
to the input edge weights but to the numbers
arising from all calculations in the program.
After translating these branch weights into
floating point binary, ~e program stores them
as part of a larger table in core memory. !Jh1s
table will eventually contain the sum of tree
admittance products for all subnetworks; the input edge weights constitute the 81m of tree products for their two-node networks.* This table
will occupy two blocks of 2n - l memory locations,
one block for the real parts of the admittances,
one for the imaginary parts. Note that the exponent is n-l rather tban n since only those
subgraphs not including the generating node for
the overall graph will be analyzed. It is the
size of this table, 2n locations, which 11m1ts
the size of the network which may be analyzed.
For n = 14, ~ = 16,.";84 locations or onehalf of the core storage of a 32, 768-word memory
unit. This is one reason that the program is
limited to networks of not more than fourteen
nodes. The generating node will arbitrar1l.y be
chosen as the highest-numbered node.

This step generates the various groupings
of a nodes out of n-l. The format used
throughout the program to indicate a given
grouping of nodes is a simple one: the last n
binary positiom of the 36-bit computer word.
gives, in positional notation, the nodes considered. The subgraph, of a 6-node graph consisting of nodes 1, 3, 5 and 6 would be coded as
shO'Wll in Fig. 4.
To generate all groupings of a nodes out
of n-l, all binary numbers fram 1 to 2D-l
are first generated, along with the binary weight
of the number in the unused upper portion of the
word. From this set of 2D-1 binary numbe;t's
are chosen, in turn, those of lteight a (where
a = 3,4, ••• ,n-l). This is equivalent, according
to the format, to choosing all groupings of a
nodes out of n-l for a = 3, a = 4, etc.

It is necessar,y to select for each subgraph a generat~ node. The left-most binary
unit corresponding to the highest numbered node
is always selected. The rema.1n.ing nodes are
separated into two classes, those connected to
the generating node, and those not connected.
A node is considered connected i f either the
real or the imaginary part of the aiIm1ttance of
the branch connecting it to the generating node
* Actually the weights of input edges, where
one node is the generating node for the overall graph, will have to be stored in a separate table.

248

5.4
Flo" ahart II

r

From Step 3

Choose one connected
node; it can be partitioned in only one
way.

Evaluate for this
, partition the factor
' introduced into the

Proceed to

St~ [2.

p~duct.

Ir-

)

t

L

Add a second node to ~
the previously partitioned set· of nodes
fOrming the new par-

t~s
Divide out replac.. ed factor in partition product and
multiply by new
factor.

Evaluate for first
.. (or next) partition
' the new factor introduced.

t-tt1onA.

Does n
No

I

r

= 37
Yes

I

I

1

~Add

..

,.

I

.

Evaluate, etc.

---~

.
,.

partition pro-

r

Divide out,
etc.

,~

Np
Y~s
Is there a 3-node
partition that has
not been used?

I

J,
Does n
No

'\

ducts~.cumulative

r

J,

Add a third node,
etc.

Ni;>

Is there a 2-node
partition that
has not been used

J

J,

= 41
Yes

I

L

I

'[\

JAdd partition product to cumulative
sum.

_-1-.

....,
)\

I

Yes
No
Is there a 4-node
partition that haf
not been used?

'I'

---

•

J

It

Add a thirteenth
node, etc.

6

,.

Evaluate,
etc.

~

r

Divide out,
etc.

Yes I
ko
Is there a l3-node
~ition that has
[not been used?
1\

I

~
Does n

= l4?
Yes

I

I

,. Add partition pro-

duct to cumulative
Alnn

249
5.4

is non-zero; if both real and imaginary parts are
zero the node is considered unconnected.
Steps 4 and 5

Step 1
Set n = 5.
t:

In

The method of generating partitions for the
connected nodes, with the distribution of the
remaining nodes among the elements of each ~­
ti tion in all possible ways, and the evaluation
of the product ter.m for each,constitutes the
core of the program. The structure of this
section of the program is quite complex. The
manner in which it faces the two potential limitations of the program, memory capacity and
computer time, has been given in the body of
the report.
To clarify the structure, a block diagram of
these two steps is shown in Flow Chart II. In
this diagram there is, for reasons of simpliCity,
no distinction shown between the treatment of
the connected nodes and the unconnected nodes.
The only distinction which the program makes
bet'treen the two is that unconnected nodes are
never permitted to occup,y a partition element
by themselves, since such a partition would
make no contribution to tbe sum of tree products.

i

Nodes
1 2
1 ;
1 4
1 5
2

;

2
2
3

4

0
0
0
0
0
0
0
0
0
0

5
4

;

5
5

4

Select node 5 as generating node.
Step 2
Generate all binary numbers from 1 to 24
to determine all possible groupings of nodes 1,
2, ; and 4.

Nodes
4

;

2

1

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

1

1

1

0

0

2

1

1

0

1

1

1

1

After all the partitions have been generated,
and evaluated, the cumulative sum, vThich is now
the sum of tree products for the subgrapn under
consideration,is stored in the appro~riate location of the table mentioned in connection with
step 1. The program then proceeds to step 2
unless all groupings have been considered. In
step 6', the sum of tree products for the overall graph is evaluated. It is translated back
to floating point decimal and the resuJ.t printed
out. If the va.1ues of the sum of tree products
for any subgrapns are desired, these may also
be translated and printed, out using the same
routine.
ApPendix B
The follOwing analysis of the network of
Fig. ; closely reflects the actual computer
solution. 'lhe numerical values of the edge are
those used in Example C, Section 1.
a
b

=

c

e = g

d

f

h

=

The steps ;'Thich are deSignated correspond. to
those given in the flow chart shown in Section
2, FlO'tv Chart I.

-+

T(123)

-+

T(124)

1

-+

T(134)

1

0

-+

T(234)

1

1

-+

T(12;4)

250

5.4
Let

ex = 3.

Choose node 3 as generating node;

Partition

nodes 1,2 are connected.

New factor in product term

T(1)W31 = 1-1 = 1
T(2)w32 = 1-3 = 3
T(12)(w31+w32 ) = 2(1+3)

(1)

(1)(2)
(12)

= 8

Store T(123)

Step 6

Product term

Partia.l sum
of iroducts

1

1-3 = 3
!~8 = 8

3
11

1

= li_

T(124)
~

Choose node 4 as generating node;

node 2 is connected, node 1 not connected.

Steps 4 and 5
Partition

4
3 {

T(2)w42 = 1-1
T(12lw4i'kY42)

(2)
(12)

Store T(124)

Step 6

New factor in product term

=1
= 2· (0+1) = 2

= 2.

Product term

1
!.2
1

Partia.l sum
of oducts

=2

2

T(134)
Choose node 4 as generating node;

~

node 3 is connected, node 1 not connected.

Steps 4 and 5

4[
Step 6

Partition

New factor in product term

(3)

= 1·2 = 2
T(13*4iw43) = 1(0+2) = 2

Product term

Partia.l sum
of products

T(3)w43

St~r! T(134) (:3h.

T(234)
Choose node 4 as generating node; nodes 2 and 3 are connected.
Partition

New factor in roduct term

T(2)w42 = 1-1 =1
T(3)w43 = 1'2 = 2
T(23)(w42~v43) = 3(1+2)
store T( 234)
Let

ex

= 11

= 9

Partial sum

Product term

of iroducts

1

1·2 = 2
1·9
=9
1

2

11

= 4.
Choose node 4 as generating node;

nodes 2, 3 are connected, node 1 not connected_

251
5.4
Steps 4 and 5
Partition
(2)

Ne,., :factor in product term

(2)(3)

T(2)vT = 1·1 = 1
42
T(3)-tv42 = 1·2 = 2

1·2

=2

(23)

T(23)(i-T42~v43)

= 9

!·9

(12)(3)

T(12)(W·41~v42) = 2(0+-1) = 2

4

(2)(13)

T(13)(W41+w )
1(0+2) = 2
43
T(123)(w41+W42~v43) = 11(0+-1+2)

i·2

=9
=4

g.2 = 2

6

2.33 =33
9

39

(123)

5

Step 3 t

1

= 3(1+2)

1

=

Store T(1234)

Node

Partial sum
o:f products

Product term

= 23

= 39.

2

is generating node.
Nodes

1

and 3

are connected, nodes

2 and 4

not connected.

Steps 4' and 5 I
Partition

Nffil

T(l)W = 1·2 = 2
51
T(3)w
1·1 = 1
53
T(13) (l-T +w ) = 1(2+1)

(1)

51 53

T(12)(l-T +w ) = 2(2+0)
51 52
T(23)(w +w ) = 3(0+-1)
52 53

(12)(3)
(1)(23)

2·1 = 2
2
~

=3

~.

=4

~.4 = 4

=3

g·3

= 2(2+OfO)

1

3

=)

=6

*.4 = 4

(124)(3)

T(124)(w51~v52+W54)

(12)(34)

T(34)(\V53+w54) = 2(140) = 2

~.2
=8
1

(14)(23)

T(14)(w51~T54)

(1)(234)

= 0(2+0) = 0
T(234)(w52-kT53-kv54) = 11(0+1+0) = 11

6
2".0 = 0·3
6
"3.11 = 22

(123)

T(123) (w51+w52+w53)

= 11(2+0+1) = 33
T(1234)(1v51-kT52+w53-kT54) = 39(2-1-0+140)

~'33 = 33
33'117 = 117
33

(1234)
Step 6'

Print

151

o

Partial sum
o:f products

2

=

(1)(3)
(13)

5'

Product term.

:factor in product term

= 4

= 117

4
12
12

151

Real
Imaginary

End o:f Program.
Bibliography
1.

w.

Mayeda and M.E. Van Valkenburg, "Network
AnalySis and Synthesis by Digital Computers,!!
1957 "t-lESCON Convention Record, pt. 2,
pp. 137-144.

3.

E. W. Hobbs, "Topological NetvTork Analysis as
a Computer Program (discussion)", IRE Trans.
on Circuit Theory, vol. CT-6, pp. 135-136;
March, 1959.

2.

F.J. MaCT,Ii11iams, "Topological NetvTork Analysis as a Computer Program," IRE Trans. on
Circuit Theory, vol. CT-5, pp. 228-229;
September 1958.

4.

:Mayeda, IIReducing Computation Time in the
Analysis o:f networks by Digital Computer,"
IRE Trans. on Circuit Theory, vol. C'l-6, pp.
136-137; March 1959.
'IV.

252

5.4

Fig. 1

4

c
N11

=

d

N22 = 04

N21=

N31 =

4

3

2

(b)

(a )

(c )

(d )

4

a
N51

=04

N52= 03

2

(e)

(f )

(g)

Fig. 2

(j)

253

5.4

3

5

9

2

Fig.3

36 - - - - - - - - - - - - - - - - -

9

8

7

6

5

4

3

2

1

0----------------- 000

1

1

0

1

0

t

CODING OF SUBGRAPH CONSISTING
OF NODES 1) 3 , 5, AND 6

Fig.4

255
5.5
A COMPUTER CONTROLLED DYNAMIC SERVO TEST SYSTEM
V. A. Kaiser and J. L. Whittaker
Douglas Aircraft Company, Inc.
Santa Monica, California
Recent years have seen an increasing number of
successful applications of digital computers to
a real-time control in industry. These applications generally concern the monitoring and
control of a large number of relatively slowly
varying parameters of a process. Equally successful has been an application of a control computer to provide control and data processing for
the dynamic testing of missile servo-control systems. At Douglas Aircraft Company, computercontrolled tests are currently being conducted on
servo systems which operate at frequencies ranging to 400 cps. In this application, emphasis is
placed on the monitoring of several rapidly
changing parameters in order to provide a realtime description of the dynamic characteristics
of the servo systems.

possible methods of improving the testing procedures. It was conceived that the duplication
of test equipment and personnel required by the
parallel testing procedure could be eliminated by
time-sharing a single master test system. Economic justification of the master tester could be
realized if the individual tests could be conducted serially in the same length of time as
that required for parallel testing by the conventional methods. The study was therefore directed toward an automatic computer-controlled
test system. The versatility necessary for development test work, as well as the speed,
accuracy, and reliability requirements, limited
the study to digital rather than analog eqUipment. From this study resulted a digital
computer-controlled dynamic servo test facility
which was placed in operation in mid-1960.

PURPOSE OF THE AUTOMATIC TEST SYSTEM
Steadily increasing requirements are being placed
on the performance, reliability, and operating
environment of missile flight control servo systems. To satisfy these advanced requirements has
demanded a continuous effort in the missile industry to improve on previous designs, maintain
closer design parameters, and to develop better
hardware. Each stage in the development of a
missile flight control system requires extensive
testing, and the development program cannot proceed until it has been ascertained that all
intermediate design requirements have been met.
These efforts are resulting in an ever-increasing
amount of laboratory dynamic testing.
Manual methods of conducting the many required
dynamic control system tests have become undesirable for several reasons. To complete a development program in the alloted time requires
that several tests be conducted concurrently in
order to offset the time required to conduct each
individual test manually. This parallel testing
procedure necessitates extensive duplication of
test equipment and a large labor force of test
engineers, technicians, and data reduction
personnel. The manual methods of conducting the
tests have thus become an economic burden. In
addition, the reliability of the manual test results is relatively low. Errors accumUlate from
numerous sources such as faulty equipment calibrations, incorrect interpretations of low
signal-to-noise ratio signals, and carelessness.
Small changes in servo parameters due to wear,
hydraulic fluid contamination, or operating environment may therefore be completely hidden in
the "data spread".
These deficiencies in the manual methods of control system testing were recognized by the Testing Division of Douglas Aircraft Company. In
early 1958, a study was initiated to investigate

This automatic test system, controlled by a
Thompson-Ramo-Wooldridge RW-300 digital control
computer, has been located in the HydroMechanical Systems Development Laboratory at
Douglas. With this facility, the many various
servo system tests which previously required
weeks to perform are now conducted daily.
GENERAL FACILITY DESCRIPTION
The RW-300 computer and its associated inputoutput eqUipment are located in what is called
the Control Center of the Systems Laboratory.
From this central location, tests are conducted
on missile servos located at eleven remote sites
in the laboratory as shown in rigure 1. These
sites include missile mock-Ups, environmental
chambers, and work benches. Switching is accomplished manually in the Control Center to select
one of these sites-, and the equipment located at
the selected site is tested automatically by the
computer. Intercom and closed circuit television
systems provide means for communications between
the operator in the Control Center and personnel
at the test locations. The operator can thus
observe the system in operation while the test is
being performed and can immediately stop the test
should a malfunction occur. With proper scheduling of tests at the various remote locations,
many different tests on various servo-system
hardware configurations can be conducted in
succession.
The RW-300 computer is the heart of the automatic
test system. Designed for process control, the
computer contains a flexible input-output subsystem. Using the digital and analog outputs,
control of the servo system configurations, the
driving functions applied, and other peripheral
equipment is maintained throughout the test
(Figure 2). The analog-to-digital converter, an
integral part of the RW-300 computer, is used to

256
5.5
convert samples of the servo system output signals to digital form. Conversion is under program control and the digital values of the
samples are stored automatically in a reserved
section of the magnetic drum storage of the
computer.
The memory capacity of the computer is approxi~
mately 8000 words, including 1024 words reserved
for analog data and 16 words of rapid-access
memory. Each word contains 18 binary digits, and
may be used for program storage (1 + 1 instruction system) or data storage (17 magnitude bits
plus sign). A total of 20 arithmetic and logical
decision operations are available for program
instructions.
The equipment located with the RW-300 computer in
the Control Center is shown in Figures 3 and 4
and includes a Flexowriter, X-Y plotter, a Master
Control Console, and the servo-system electronic
equipment and instrumentation equipment. The
Flexowriter serves as the primary input-output
device for the computer and includes a paper tape
reader and punch unit. The tape reader is used
to load the instructions into the computer memory
and to provide the test parameters and variations
for the program. The Flexowriter is also used
for tabulation of test results.
Complementing the Flexowriter as an output device
is a Mosely 2A X-Y plotter. The plotter is
computer-controlled and can plot up to six separate Bode diagrams describing the servo system as
the test is being conducted. The Bode plots may
describe the various loop or component frequency
responses, or, by the assignment of each plotter
symbol to a separate driving function amplitude,
may describe the amplitude-dependent nonlinearity of the servo system.
The Master Control Console houses the intercom
switching and the television camera SWitching.
A Hewlett-Packard 202A function generator, modified for digital frequency and amplitude control,
is also located in the console. The function
generator is used to provide the driving functions for the frequency response tests on the
servo systems. Digital drawers, which contain
the relays which effect the digital outputs to
the Flexowriter, X-Y plotter, and function generator complete the Master Control Console.
The four-bay electronic equipment console
(Figure 4) houses all the servo system electronics eqUipment. Many amplifier, filter, and compensation network combinations are located in the
console. Digital outputs from the computer are
used to form a specific configuration of these
elements for the particular servo system hardware
being tested. Also located in the console are
the strain gauges and thermocouple reference
junctions which make available computer monitoring of "g"-loads, pressures, flows, temperatures,
etc., at the test site during the test.

SYSTEM OPERATION AND COMPUTER PROGRAM
The capability of the computer to read punchcoded paper tape from the Flexowriter concurrently with the execution of the test provides
much of the versatility of the automatic test
system. The sequence of tests tc be conducted,
the specific driving functions to be applied, and
the data to be obtained are coded and listed on
paper tape~ This information is read as required
by the computer during the execution of the test.
The basic block diagram of the computer program
is shown in Figure 5. The program is divided
into six regions, each of which performs a specific function for the test. Entrance into a
region is only by a code read from the tape identifying that region. When the test is started,
Region I is entered. Here the time of day is
recorded, and the test is assigned an identification number, also printed on the result sheet.
The exit from Region I is Region II, where a digital input from the tape reader is performed.
The code read from the tape is interpreted, and
the program exits to the particular region identified by the code. When the instructions of the
region have been performed, the program immediately returns to Region II to read another region
code from the tape. Thus the regions are entered
in the order which they are coded on the tape.
The three basic types of tests available are (1)
Equipment Calibration, (2) System Frequency Response, and (3) System Stability Test. The regions which perform these tests are identified as
C, R, and T respectively. In addition, for the
equipment calibration and frequency response
tests, there are two regions which operate to set
up a required driving function. These two regions are identified by IF' and 'A'. In Region
F, the frequency of the driving function is read
from the tape and, by means of the digital outputs, set on the function generator. The desired
driving function amplitude is, in a like manner,
set in Region A.
A typical test tape format is shown in Figure 6.
The first character in each line identifies a region. The digits following the region codes contain the information required by the region to
complete the operations in that region. The digits following the C and R codes (calibration,
frequency response) are used to instruct the program (1) what output ratios to compute, and (2)
whether these gain and phase results should be
printed, plotted, or both printed and plotted.
The digits following the F code (frequency) are
the octal representation for a particular driving
function frequency. The driving function amplitudes follow the A (amplitude) region codes. The
digits following the T (stability test) contain
the information necessary for the stability test.
These digits contain codes for (1) the gain settings of the amplifiers, (2) the compensation
networks to be digitally inserted into the

257
5.5
various loops, and (3) the results to be printed
at the completion of the test. The S code is
punched at the end of each tape and is interpreted by the program a~ "te:st completed." The
computer stops operation upon receipt of this
code, and the operator may switch to another test
location to begin another test on a different
servo system.

Because each signal f{t) is represented in discrete samples, it is necessary to approximate
these integrations by numerical methods. The
trapazoidal method of numerical integration is
used, and the above integrals are approximated by
Equations (3) and (4).
N-l
A c:: -2 [So
sin (o) +
N 2
k = 1

L

For a frequency response test on the servo system
or an electronic equipment calibration, then,
three regions must be listed. (R, F's and A's or
C, F's and A's). For a stability test, only region T is entered. The test engineer list~ the
codes necessary to conduct the specific test desired. The digits following each region code are
obtained from a set of tables. A tape is punched
containing these codes in proper sequence and
placed in the Flexowriter tape reader. After
switching to the desired test site in the laboratory, computer operation is begun. The test is
then performed automatically, the desired results
are printed and/or plotted, and the computer
ceases operation when the test is complete.

B 0<

sin k89

~

+

2Bw

g

[so

+

2" cos

N 2

~

(3)

sin N

N-l

cos (0)

SN

+

k~l Sk cos k89

N]

( 4)

DATA ACQUISITION AND MAJOR CALCULATIONS
After the driving function has been sele.cted and
applied to the system, the data from which the
system response is calculated are obtained in the
following manner. Programmed digital outputs
from the computer connect four lines from the
servo system through scaling amplifiers to the
input of the analog-to-digital converter. The
scaling amplifiers are controlled by the computer
to scale the voltages to the most accurate range
for conversion. Upon command, these four signals
are sampled in sequence at the rate of 3840
samples/second or 960 samples/line/second. The
digital values of these samples are stored in a
prescribed sequence on the reserved section of
the magnetic drum memory. The converter is b.ipolar, and converts voltages ranging to ±10.23
volts with a resolution of ±10 millivolts.
Since the section of the RW-300 memory reserved
for the storage of analog data contains 1024
words, each of the four signals is sampled 256
times during one conversion cycle. From these
samples, the amplitude and relative phase of
each signal are determined. The method used is
that provided by Fourier analysis. The real and
imaginary components of the fundamental of each
signal are given by Equations (l) and (2).
2

rr J

A=!

Tr

Where:
So' Sl' ••• Sk ••• Sn - Samples of f (t)
N = Total number of samples
8 9 = Angle between samples Sk ana Sk+l

The integrations of Equations (1) and (2), and
hence the above summati9ns, must be performed
over an integer number of cycle of f(t). Since
the sampling rate is fixed, the number of samples
N is varied with frequency so that, as nearly as
possible, an integer number of samples are used
to ~epresent an integer number of periods of
f{t). It has been found that for N ~ 30, sufficient accuracy is maintained. At least thirty
samples of f(t) are therefore used in the above
summations.
Rectangular-to-polar conversion of the results of
Equations (3) and (4) provide the amplitude and
phase angle for each signal as given in Equation

(5).

f(t)
Where:

(5)

-1 B

= tan
C=

f( t) sin wt dt

= C~
A

B
sin 

0

27T

B
Where:

=!

11

f

f( t) cos wt dt

(2)

0

A = Real part of fundamental of f(t)
B = Imaginary part of .fundamental of f{t)
W = Radian fundamental frequency

After each of the four input signals have been
represented in this manner, the desired amplitude
ratios and phase relationships are calcula~ed.
The logarithms of the amplitude ratios provide
the gain in decibels. The component, loop, or
system gain and phase relationships are then
printed with the Flexowriter and/or plotted with
the X-Y plotter. The program is then ready to
read the coded tape to obtain the next requested
driving signal.

258
5.5
An example of a typical result sheet is shown in
Figure 7. This particular test began with an
equipment calibration. Under CALIBRATION are
listed the static test parameters. These include
the servo-amplifier quiescent currents, the
servo-amplifier gain, and the feedback transducer
excitation voltages. A brief frequency response
test on the electronic e~uipment in the feedback
loops was then conducted. Under FREQUENCY RESPONSE, the component, loop, and system gain and
phase relationships are tabulated for various
driving functions. Under each column is listed
the gain in decibels fol~owed by the phase shift
in degrees.
Plotted on the X-Y plotter during this test
(Figure 8) was the closed-loop system frequency
response. Each driving function amplitude was
assigned a different symbol on the plotter. The
spread observed on the plot is therefore a result
of the amplitude-dependent nonlinearity of the
servo system.
SUMMARY

The procedure used by the test engineer in conducting a dynamic test on the servo system with
the automatic test system is as follows. First,
the hardware to be tested is set up at one of the
remote sites in the laboratory. The loading
(inertia, spring, damping, etc.) and the environmental conditions for the servo system are arranged. A test tape, listing the codes for the
particular tests deSired, is punched with the
Flexowriter punch unit. This paper tape is
placed in the Flexowriter tape reader and the
automatic test system is switched to the remote
site where the servo system is located. Computer
operation is then begun. Without manual intervention, the computer program reads the punchcoded tape as the information is needed, executes
the operations instructed in each program region
listed on the tape, and prints and/or plots the
results of the test as they are obtained. When
the test is complete as indicated by a code on
the test tape, the computer halts and the engineer has the desired tabulated and plotted transfer functions at hand. Another test engineer,
with an entirely different servo system located
at another remote site in the laboratory, may
then switch the automatic test system to his location and follow the same procedure.
The justification of this serial test procedure
in replacing parallel manual testing has been
achieved. A typical dynamic servo system test
conducted manually required up to two hours to
obtain sufficient data with which to evaluate the
system. An additiona~ two hours were usually
required to calculate the results and plot the
desired transfer functions. A similar test conducted with the automatic test system now takes
from 10 to 20 minutes (depending upon the extent
of the test). Since the results are obtained in
plotted form, the entire test is accomplished in
only a small fraction of the time previously required. The many required tests can therefore be
conducted serially at a more rapid rate than was

previously possible using the parallel manual
method. The savings resulting from the elimination of duplicate test equipment will be considerable. A by-product of the time savings is
the reduction of servo system component wear.
Because the servo system is being driven only a
fraction of the previous time, wear and the resulting changes in operating characteristics
have been minimized. The previous expense of
maintaining several prototypes of each component
has thus been eliminated.
In addition, the accumulative errors accrued
during a manually perf.ormed test were estimated
to provide results accurate to only ± 10%. The
digital computer provides these test results accurate to ± 1%. Thus more confidence can be
placed on the test results, and more accurate
evaluations of the system performance can be
made.

CP

ELEC. TEST LOCIN
r----I BENCH 2
II
CENTRIFUGE
LABORATORY

"J" BOXES

I

ELEC.TEST LOCIN
BENCH I
10

LOCIN 6
CONTROLS
SYSTEM
MOCK-UP

Ltl

nCP I
~

rlTl

MCONTROL
CENTER

LOCIN 8 l-Lr-ENVIRONICP
MENTAL I
CHAMBER
L-

LOC'N 4
TEST CELL NO.4
POWER SYSTEMS

LOCIN 3
TEST CELL NO. 3
SERVO SYSTEMS
a COMPONENTS

I
I
LOCIN 7
CONTROLS
SYSTEM
MOCK-UP

LOC'N 2
TEST' CELL NO.2
SERVO SYSTEMS
a COMPONENTS

HYDRO/MECH. a CONTROLS
SYSTEMS LABORATORY

~
CP

I

CP

AMPLIFLIERS-POWER SUPPLIES
REMOTE CONTROLS-RELAYS
COMPUTER 8 MASTER CONTROL

LOCIN I
TEST CELL NO. I
SERVO SYSTEMS
a COMPONENTS

CP\.

~ INSTRUMENTATION - MONITORS

~

TEST CELL NO. 5
FIRE LAB

r

11

LOCIN 9
SERVO COMPONENT
DEVELOPMENT LAB
(DUST FREE)

CP -COMPUTER CONTROL PANEL
Fig. 1. Systems Laboratory Layout

C'.J1tv
•
C'.J1
C'.J1\O

CJ1 r-v
•
0'1
CJ1 0

MOSELEY MODEL 2A
X-Y PLOTTER

a::

-

0-3
CHAR.

w 0
t- w

.

o<[ t0
a:: w
-I
<[

:t:

~

,

w

en

~
~
Z

a::

CL

PRINTER
~~

~~

w

0

-z

>-

~~

ANALOG

x

AID
CONVERTER

.....
.....

INPUTS

(4)

~

~
~
~
"".

....
....
FLEXO- .....
......
WRITER

FREQ.CONTROL ....

....

....

....
RW-300
COMPUTER

DIGITAL
CLOCK

START-STOP
CONTROL
HEWLETTPACKARD
MODEL 202A

SYSTEM DRIVING .....
SIGNAL

...

AMPL. CONTROL .... FUNCTION GEN .

...

.......

....

....

....

....

.....

......

D.C. BALANCE
VOLTAGE

....
....

D.C. STEP
VOLTAGE

....
....

DIGITAL OUTPUTS
DIGITAL INPUTS

.......

Fig. 2. RW-300 Computer Input-Output System

SYSTEM
UNDER
TEST

......t lJ".)

\0
•
C'llJ".)

RW-300 COMPUTER

FLEXOWRITER

MASTER CONTROL CONSOLE

Fig. 3. Systems Laboratory Control Center

262

5.5

Fig. 4. Servo System Electronic Equipment and Instrumentation Console

REGION C
PERFORM
CALI BRATION TEST

I •

REGION R
I PERFORM FREQUENCY 14141...----,
RESPONSE TEST

REGION I
PROGRAM
INITIALIZATION:
PREPARATION
FOR TEST

REGION IT
INTERPRET
OPERATION
CODE

I.

I

REGION T
PERFORM STABILITY 1411111------'
TEST
REGION F
SET SIGNAL
FREQUENCY
REGION A
SET SIGNAL
AMPLITUDE

?"'~

CJ1W

Fig. S. Basic Program Block Diagram

264

5.5

C212431410.
FOOl300
AOOOIOO

A000200

F006300
AOOOIOO

R432210310.
F000200
AOOOl20
AOOOl60

TI00036043172.

S
Fig. 6. Test Tape Format

265
5.5
10-20-60

1022 AM

RUN NO. ~

CAlI BRATI ON

11 211.9 MA
12 209.6 MA
AMP. GAIN 100.2 MA/V
BUZZ 20.'7 V
£Xl 10.,1 V
EX2 19.92 V
A MPL..
f'REQ.

YFAVjVCAL
-o.~ -0.890

E2/VeAL
0.091 -0.750

.0.101 -1.507

-0.007 -2.m

0.085 -0.554

-o.O~

-o.()'1JI. -8.296

0.171 -0.0'1

'.915

~.925

YFMjYCAJ..
-0.066 -0.656

".92
202.2

~.~
~.196

f'R[QUENCY RESPONSE
A MPl.
f'REQ.

,.960

Yf'Bl/El

YFBl/E2

-0.156 -190.6
-o.m -191.1
0.011 -188.0
o.~ -188.1
0.066 -187.9

1,.1!., -86.11
14.97 -~.12
16.42 -95.92
17.12 -97.25
17.~ -95.73

-6.925
-7.089
-8.015
-9.i196
-11.20

-101.'
-100.9
-100.1
-98.61!.

-'56.7
-3.917

-98.~

6.66Ji.
8.00'
8.390
7 .5"~
5.996

0.980
2.01.2
,.960
5.9Ji.9
7.976

-0.269 -195.7

-0.003 -192.5
0.078 -191.7
0.066 -191.2

11.10
12.11!.
1,.22
14.oJi.
11!.."

-92.75
-96.31
-97.19
-98.31
-97.80

-10.58
-10.51
-11.36
-12.88
-1~. 73

-106.6
-106.1
-10'.0
-loJi..6
-103.8

0.789
1.593
1.859
1.082
-0.'51

-3.695
-7.652
-9.196
-11.19
-10."

0.992

- 0 .265
-0.101
0.058
0.071!.
0.091

8.718
9.886
11.17
12.03
12.30

-96.71
-97.72
-100.3
-98.86
-99.06

-12.95
-13.02
-1'.90
-15.51

-111.1
-110.6
-109.2
-108.3

-3.972 -7.503
-,.~

8.091

8.0116

Yf'B2/E2

YF'B2/El

0.980
2.007
'.980

6.019

6.011

-7.566

2.0~

3.9Ji.l
5.91~

7.898
12.0,

1.007
2.035
'.914
,.851
7.875

15.95

0.992
2.00,
'.945
5.867
7.86,

20.07

1.000

O.O~ -1~.8

-200.1!.
-198.0
-195.8
-194.4
-19'.8

-17.~ -107.~

-7.~

-7.196
-6.785

-3'0~ -10.~

-2.785 -13.76
-12.75
-5.070 -12.67

-209.0
-206.1
-202.1!.
-200.'
-199.1

5.535
6.878
8.285
9.l32
9.5~

-99.85
-101.0
-102.5
-103.5
-101.9

-16.50
-16.53
-17.39
-18.99
-20.77

-123.5
-122.8
-118.6
-115.2
-11'.4

-10.6I!.
-9.1!.92
-9.250
-9.992
-11.38

-14.30
-17.72
-18.75
-18.39
-16.'7

-0.562
-0.023
0.2J16
0.308
0.'39

-217.6
-2l3.9
-207.9
-205.1
-202.9

,.,..,
1!..636
6."'7
7.3OJi.
7.911!.

-loJi..2
-105.5
-107.'
-107.1
-106.5

-18.98 -l3Ji..9
-18.92 -130.5
-19.811- -12'.4
-21.~ -120.3
-23.26 -116.8

-15.07
-11!..26
-13.75
-14.48
-15.70

-21.50
-22.15
-22.86
-22.34
-20.116

-0.792
-0.257
0.382
0.50'
0.562

-~.9

-220.7
-214.0
-209.9
-207.9

1.296 -108.1
2.96Ji. -109.7
~.632 -110.2
5.898 -111.1
6.~37 -111.3

-21.78
-20.49
-21.62
-23.42
-25.21

-11!.7. 7
-11U.1
-131.5
-l25.6
-12'.5

-19.69
-17.26
-17.37
-18.02
-19.34

-Zl.94
-30.07
-26.89
-26.811-

-239.,
-230.8
-22O.1!.
-216.0
-214.0

-o.~ -11~.7

-2,.oJi.
-22.58
-23.67
-25.25
-Zl.21

-156.2
-150.1
-138.8

5.949
7.8M.

- 0.968
0.00'
0.679
0.902
1.091

-22.53
-21.20
-20.95
-21.73
-2'.35

-'1.58
-34.89
-3Ji..76
-32.34
-35.116

30.01

0.960
2.015
'.898
6.250
8.382

- 2.105 -250.9
-0.839 -21!.1.2
o.~ -225.1!.
1.375 -219.8
1.781 -220.0

-0.742
2.326
'.789
'.785

-115.5
-116.4
-116.1
-122.2
-125.8

-23.11 -180.4
-2.... ZI -165.'
-alt..eo -1"'9.9
-Zl:T8 -11!.1.5
-29.01 -138.0

-2'.~ -1!.5.oJi.
-2~.17 -ltc.63
-22.96 -ltc.57
-25.36 -4'.95
-Zl.Ol -4'.92

ltc.oJi.

0.960
1.972
1!..156
5.886
8.2J16

- '.367
-0.945
1.082
2.'32

-267.8
-261.9
-N.5
-238.9
-20118.9

-4.972
-3.050
0.171
0.980
-o.161!.

-121.8
-128.,
-126.2
-l32.9
-l36.8

-~. 71!.
-26.04
-27.0'
-29.}5
-32.01

-~.9

-157.6
-169.7

-".35
-30.15
-27.94
-30.70
-34.73

-55.57
-51.35
-49.69
-51.71!.
-57.57

0.988
2.050
1!..042
5.95'
7.765

.5.238
-2.'39
1."5
1.m
1.707

-288.8
-m.o
-259.9
-265.7

-7 ....76
4.921
-1.601
-1.886
-2.882

-l32.4
-l32.2
-135.6
-139.5
-14,.8

-3505'1
-30.}2
-29.00
-30.81
-".51

-2ltc.5
-201..1
-181.,
-186.1
-197.2

-37.81
-32.91
-32.05
-34.66
-38.10

-811..14
-59.28
-57.1'
-59.94
-62.92

0.980
2.042

5.972
7.898

- 7.261
-1!..738
0.500
1.18,
0.171

-302.7
-295.9
-260.9
-266.1
-297.2

-9.488 -l39.5
-7.~ -138.9
-'.585 -1112.,
-11!.5.6

-34.01 -32l.9
-32.99 -235.'
-30.53 -201.6
-208.5
-35.1' -216.8

-".lIe

-36.2'
-35.73
-34.62
-38.25
-ltc.oo

-158.7
-78."
-6'.10
-68.07
-68.16

79.91

0.98It.
2.015
....007
5.96Ji.
7.9"

-11.30 -326.4
-9 ....1~ -~9.'
- ....667 -,1,.0
-2.289 -313.8
-2.826 -,19.1

-13.25
-11.66
-8.082
-6.59'
-7.082

-155.'
-149.6
-149.5
-15' ....
-155.7

-1!.7.89
-ltc.25
-37."
-36.00
-37.911-

-170.5
-261.1
-2"".7
-238.5
-2"',.1!.

-1!.9.8,
-1!.2.51
-ltc.85
-!Jo.,l
-42.19

-357.'
-91.36
-80.19
-78.05
-80.01

101.9

0.98Ji.
2.011
'.937
6.015
8.019

-17.05 -'36.6

-18.12
-16.01
-12.5I!.
-10.30
-10.0'

-159.5
-160.0
-159.'
-164.9
-161!..8

-42.0'
-52.lt2
-lt6.17
-"'1.08
-40.94

-270.7
-266.2
-267.5
-271.0
-267.5

..1!.'.10 -9'.62
-53.80 -90.91
-~.37 -9'.13
-".11!. -97.35
-".16 -9,.60

2.~

3.917
5.890
7.851
25.05

0.972
2.00,

'.9Ji.l

".99

59.~

I!..~

-0.32Ji.
-0.161!.
0.1"
0.l32
O.lltc

2.~

-~8.1

-l~.6' -"5.'

-l0.35 -"3.7
-7.2lt6 -'38.6
-6.816 -'38.~

1.386 -115.6
-116.,
1!..425 -116.9
.... m -118.6

'.394

-2.~76

-'.582

~.699 -1~.5

-1~.~

-130.9

-201.6
-1811-.9

Fig. 7. Typical Tabulated Result Sheet

-~.71!.

266
5.5

+4
,;'

+2

~~

ai
0

-

LaJ

N

m
>II

~~

-2

~

~\ \

~\
i'Y
"
\\
~r\.
~
~
~

"r\.~~

GAIN

-4

""C~

..)

lL

Z

bf ~

~

0

.......

V

\

Ci
(!)

~

\ ~

\

1\ ~

1\

-6

\

\ \
'i

-8

-160

c)

0

--

I.

I

i~

-.....

-200

-

~

......

...... r-....:

--220

~ r"...~ ~
~ ~ ~~

h

~ ~ ~ :'\

~

N -240
CD
lL

-260

i\

\

'\ ~

"

~ \. .\.'i~
'\: ~\ &

\\ ~ ~

l-

-

lL

\ .\ 1\'\"

::r:: -280
CJ)

\.~ \~\

11.1

~i\\ \~

en -300
«
::r::
Q..

[\

\\

PHASE SHIFT~ ~ ~ ~ l'I.

I

n

\

\

~

~

'"

CD

CD

1\

~

[\~

CD

11.1

\

\

11.1
0
0

\ ,~

,

\ [\

'--- ~-IO

-180

\~
1\ ~

~

""i

\

-320

l\
.\ ~ l\
\ \ ~p
I" ~

.

-340
3

5

10

20

40

FREQUENCY-CPS

Fig. 8. Typical Plotted Result. Sheet

100

150

267

6.1
HOT-WIRE ANEMOMETER PAPER TAPE READER
John H. Jory
Soroban Engineering, Inc.
Melbourne, Flor:ida
Summary
'fhe Hot-Wire Anemometer Paper Tape
Reader was conceived as a relatively simple
apparatus to serve as a high reliability device
such as required in peripheral computation
equipment. The hot-wire anemometer principle
has been employed extensively in the past for
the study of transient air flow phenomena in
compressors and turbines. The principle of
operati~n concerns an electrically heated wire
used to detect a change in air velocity in its
immediate vicinity by observing its change in
temperature and consequent change in resistance. Using this principle to read perforated
members such as punched paper tape at high
speeds offers a number of distinct advantages
over conventional reading methods.
Methods of

Readin~

Paper Tape

At present there are available three general types of paper tape reading mechanisms.
Brush type readers employ brushes which rest
on one side of the paper tape and pas s through
perforations to engage contacts disposed on the
opposite side of the tape. Sensing pin type
readers mechanically insert pins through perforations occurring in the tape and thus accomplish the reading function. Photoelectric
readers employ a beam of light directed toward
a photocell which is interrupted at ail times
except when perforations are disposed between
the photocell and the light source. The two
former members are relatively slow since the
inertia of the sensing members limit the rate
at which perforations may be sensed. The
photoelectric' method is materially more rapid
than the other two methods but suffers from
difficulties arising from the presence of dirt
and paper chaff in the region of the photocells.
More particularly, dust and bits of paper from
the perforated member accumulate around the
photocells and limit the amount of light reaching the photo-sensitive element. Unless the
photocells are regularly cleaned the amplitude
of signals decreases to a point where the circuits
and system become unreliable. A further problem arises in the reading of oiled tapes which
are translucent, causing reflections from the
tape to appear as point sources at the tape,
introducing cross-talk between circuits. In
order to overcome these difficulties special-

ized techniques must be employed. Also inasmuch as oiled paper tapes are the most commonly used in the field due to their reducing
wear on punch pins, photoelectric readers are
limited in their application to paper tape
handling.
Hot-Wire

Reader

The Hot-Wire Reader operates by allowing air under pressure to pass through perforations in punched paper tape and be directed
over electrically heated wire elements which
are thereby cooled, causing their resistance
to change and thus indicating the presence of
a perforation in the tape. In the most advantageous interpretation of this reading scheme
the paper tape is situated between the following
sub-assemblies:

1. A plenum chamber with an arcuate
surface in which a slit is cut which bears on
the tape. This chamber is kept at a low pressure by means of a suitable vacuum source.
2. A sensor plate having a small window
opposite each channel position of the tape being read, the windows being aligned with the
opposed slit in the plenum chamber.
A small coil of wire is situated within
each window in the sensor plate and the se
sensing elements change their temperature
and resistance when a perforation in the tape
passes between them and the slit in the plenum
chamber. This hot-wire reading technique
inherently overcomes the difficulties encountered with photoelectric reading. Since there
is sporatic air flow through the reading station,
dust, dirt, and lint are automatically removed
and deposited in the pump filter. The reader is
capable of reading optically transparent, translucent, or opaque media. Moreover, the reader
is simple and inexpensive. ,utilizing readily
available amplifiers and hot wires. The reading speeds attainable are limited only by the
mechanical transport mechanism and the quality of the amplifiers used. In addition changes
in ambient temperature do not affect reading
even though changes in hot wire temperature
are being detected since the temperature of

268
6.1
hot-wires is maintained at about 400 0 C. which
is quite high with respect to ambient. The amplifiers adjust their drive continuously to maintain constant resistance in the hot-wire which
is' compared with a fixed resistor in a bridge
circuit.
Hot-Wire Elements.
The hot-wire elements
are composed of 15 or 20 turns of nicke 1-iron
alloy wire with a high temperature coefficient
of resistance. The coils are 0.001 inch diameter wire wound on a 0.005 inch mandrel. Hotwire elements themselves have relatively high
thermal time constants, and so a system which
allows the hot-wire to change temperature in
response to the initiation and termination of
air flow only would be slow in comparison to
photo-electric readers. By employing amplifiers with sufficient feedback the temperatures
of the hot-wires are maintained essentially
constant, and a resistance change merely
sufficient to generate an error signal occurs.
In addition the hot wires are wound in coils as
opposed to the conventional straight wire
elements. With straight wire elements the
thermal inertia of the end supports is found to
affect the response of the system. Thus by
employing a coiled wire, the major portion of
the wire is substantially removed from the end
supports so that their thermal inertia does not
injure the response.
Flexibility of Reading Technique. Either continuous or discontinuous reading may be employed with the hot-wire reader and either AC
or DC circuits may be used as amplifiers although there is a well known tendency for DC
circuits to drift. Also if discontinous reading
is employed a code may remain stationary over
the reading station thereby allowing the device
to act as a temporary storage register until
the equipment again begins to transport. If the
device stops with a web of the tape over the
reading station there will be no output signal at
this time and readings will be obtained while
transporting the tape. If the hot-wire sensing
elements are placed within the plenum chamber
and a low pressure maintained there, paper tape
could be pulled oyer the arcuate surface of the
chamber and edge guided only, not requiring any
sort of clamping device on one side of the tape.
In this configuration the chamber would have
holes rather than a slit so that each channel
could be sensed from inside the chamber. This
would eliminate any threading inconvenience
when loading the reader with tape.
One extremely important aspect of the
Hot- Wire Reader is the lack of the need for
sophisticated components in the construction

and operation. The operating air pressure
required is approximately one inch of water so
that extremely small blowers and motors may
be employed. Paper tape channels are on onetenth inch centers allowing ample space for
mounting of hot-wires. Due to the freedom
from complexity of this apparatus, it is an extremely reliable device, which concept is
gaining more and more importance in the data
handling field.

269
6.2

USE OF A DIGITAL/ANALOG ARITHMETIC UNIT
WITHIN A DIGITAL COMP UT ER

Donald Wortzman
IBM Corporation
Yorktown Heights, New York

Summary
A novel approach to arithmetic operations in
digital computers is described which combines
digital and analog techniques. This is accomplished by using parallel- serial interconnections
of digital/analog converters. The interconnections are under stored program control and
are effected by selecting multiplexers which
route the analog signals to perform various
arithmetic operations. The final analog signal,
which is the result of the computation is converted to digital form by means of an analog /
digital converter.
Because of the extreme parallel nature of D/ A
Arithmetic, high computational speeds are
attained, although all the ci. rcuitry is operating
slowly by present digital computer standards.
Using present techniques the analog nature of
the computation limits the accuracy to four or
five significant decimal figures. Therefore,
the D/A Arithmetic Unit could not replace the
arithmetic unit presently in digital computers,
but could be used to solve problems or parts of
problems that do not require extreme accuracy.
Digital/Analog Arithmetic
Introduction
A computer is usually classified as being either
analog or digital. Each has its advantages and
disadvantages, when handling mathematical
problems. In a previous paper l, it was shown
how digital and analog techniques could be combined to synthesize various analog type building
blocks having accuracies not obtainable with
conventional analog techniques.

This paper suggests a method of combining
digital and analog techniques in order to perform the arithmetic operations in digital computers. The techniques offer the potentiality
of extremely high computational speed at low
cost.
Arithmetic operations in the arithmetic unit
described in this paper are performed without
the use of conventional adder circuitry as found
in most stored program computers. This is
done by routing analog signals, by means of
multiplexers, onto the reference voltage inputs of D / A Converter s, summing the analog
signals thus formed, and finally converting
the result to digital.
Before beginning the discussion of the D/A
Arithmetic Unit, a brief discussion of D/A
conver sion, building blocks of D / A arithmetic,
and several interconnections of them will be
given.
Digital to Analog Conver sion
Figure 1 depicts a unipolar, three binary bit,
digital to analog converter. DI' DZ, and D3
are single-pole double-throw switches which
can be thrown independently to zero volts or V r
volts; zero being a logical 0 and V r volts being
a logical I. If the output voltage is calculated
as a function of Db DZ' and D3, equation I
results:
(1)

270

6.2
It should be noted that the bracketed factor in
equation (1) is the definition of a binary number,
where Dl is the most significant bit, DZ is the
next most significant bit, and D3 is the least
significant bit. Further, equation (I) illustrates
that the open circuit voltage is not only proportional to the digital input but is also proportional to the reference voltage, V r •
Digital/ Analog Building Blocks
Digital/ analog building blocks have both digital
and analog inputs and outputs; to provide clarity
th.e following rules are followed in this report:

1.
Z.

All digital quantities enter and leave the
top of the block.
All analog quantities enter and leave the
sides of the block.

The comparator, Figure 6, is the last of the
building blocks that will be described. A
positive current flows into A and a negative
curr ent flows out of B. The digital output D
indicates which current is larger in magnitude.
Tlts circuit is used in converting the analog
result of the arithmetic computation to digital
form.
Interconnection of Building Blocks
In Figure 7, the digital output of the comparator controls the logic which strives to make
BI and BZ equal.

Under this condition:
(2)

If AI. AZ and DZ are preset and DI is varied

until /BI/;:./BZ/' then equation 2.can be rewritten as:
Figure Z, the D / A Converter, is the block
representation of Figure 1. This block is important since it is through this that multiplication is performed. A requirement of the D/A
Converter is that it present a small load to the
voltage reference. The current that flows from
the voltage reference must first pass thr'ough the
the multiplexers, therefore a large current
would produce a large voltage drop across the
multiplexer's "on" impedance.
Figure 3 is a summing amplifier. It is used
for both impedance matching and summing of
the analog signals. Since it is required to
have little dc drift, it would most likely be
chopper stabilized.
The multiplexer, Figure 4, is one of the most
important blocks, since it is through multiplexing that the different arithmetic operations
are performed. It is required to have a low
"on" impedance and a moderately high "off"
impedance.

The circuit of Figure 5 is a variable gain
amplifier. This circuit is similar to the
summing amplifier except that the feedback
can be varied by means of the digitally controlled D/A Converter, which can change the
gain to any of three values, one-tenth, one or
ten. This scaling helps conserve the accuracy
of the D/A Arilhm.etic Unit.

(3)

If on the other hand. AI' A Z and DI are preset
and DZ is varied until BI ;:. BZ. then equation 2
becomes:

Al
DZ;:'- DI

(4)

AZ

The significance of equations 3 and 4
is that
depending on whether Dl or DZ is preset. the
function or its reciprocal can be digitized.
in Figure 8, C 1 is equal to the negative product
of Al and DI or
(5)

Similarly Cz is equal to the negative product of
AZ and DZ or

C z =-AZ

. DZ

(6)

The voltage B is equal to the negative of the
sum of Cl and Cz or

In Figure 9. the output voltage B is equal to the
product of U. DI and DZ. U is the normal reference voltage and is assigned the value unity.

271

6.2
therefore:
B

=

U . Dl . Dl

=

Dl . Dl

(8)

solution. The first is the computation of the
first e~ght terms of a Taylor series with arbitrary coefficients; the second is the multiplication of two eight by eight matrices.

Digital/ Analog Arithmetic Unit
Thus far, the "digital/analog building blocks and
some simple inter connections of them have been
explained. Figure 10 is the digital/analog arithmetic unit. It consists of three sections.
Section I performs tl},e arithmetic operations.
It contains 16 D/A converters, l4 negative unity
gain amplifiers and 7l multiplexers. It should
be remembered that with various interconnections of D/A converters and amplifiers many
arithmetic operations can be performed. However, with as many as 16 D/A converters, it is
unlikely that any particular arithmetic operation
would have many applications. The multiplexer s
reroute the analog signals so that many different
arithmetic operations can be performed. In
other words, by means of multiplexing, the interconnection of the D/A converters can be altered, thereby changing the programmed arithmetic operations within a few microseconds.
Section II is a digitally controlled variable gain
amplifier. It adjusts the gain so that the input
to Section III is as large as allowable. This is
done because Section III contributes the largest
part of the total error, so that if the gain of the
variable gain amplifier is large, the relative
error due to Section III is small.
Section III performs the analog to digital conversion. It can perform one of two functions.
Either it converts the value of the input analog
signal or it converts the reciprocal of the input
analog signal. If the input voltage is positive,
then the input is used as reference for D/ A18,
and - U is used as reference for D/ A19' Recalling from Figure 7 that depending on which of
Fl or F 3 , Figure 10, is preset a,rtd which is
varied until the inputs to the comparators are
equal will determine whether the function or its
reciprocal is digitized. If the input is negative,
then the input would be used as reference for
DiA19 and +U would be used as reference for
D/A18' The polarity indicator is used to make
this decision.

Example One. Assume that it is desired to calculate eX for arbitrary values of x. If eX is expanded in a Taylor series the result is:
(9)

If the proper multiplexers of Figure 10 are in
the 1 state and all other's are in the 0 state, the
interconnection illustrated by the heavier line
in Figure 11 results.
In Figure 11, the output of A3 is equal to x.

It
is the reference to D/AS' therefore, the output
of AS is proportional to xl, and similarly the
output of A7 is proportional to x 3 , and so on.
The digital input to D/ Al is I, therefore, the
voltage at BI is equal to 1. The digital input to
D/A4 is also 1. Because its reference is equal
to x, the voltage at Bl is equal to 1 . x or just
x. Similarly, the voltage at B3 is equal to
xl/ll and so on. The voltages of B1, Bl ... B8
are all summed in the summing amplifier in
Section II and its output is equal to:

(10)

or eX to the accuracy of the 8 terms of the
Taylor series. This voltage can be used as
such, or it can be converted to a digital number
in Section III. If the value of eX for a different
value of x is desired, the coefficients remain
the same and x is changed. For values of x
greater than I, 8 terms of the Taylor series
may not be sufficient. For this case additional
terms can be calculated separately and the results added.
Example Two. The second example is the multiplication of two eight by eight matrices. In symbolic form:
(C)

=

(A)

(B)

(11)

where the ijth entry of (C) ~
In summary, the arithmetic operations are performed in Section 1, and Section II and III convert the output of Section I into digital form.
..... ai8
To illustrate the flexibility of digital/analog
arithmetic two different problems are set up for

. b 8j

(1l)

272

6.2
Figure 12 is the interconnection (heavy lines)
that would perform this operation. The digital
input to D/ A1 is ail' making the reference to
D / AZ pr oportional to ai 1. The digital input to
D/
is b1j and therefore Bl is a voltage proportional to ail . b 1j . Similarly BZ is proportional to ai2 . bzj and so on. The voltage of B1'
B2 .. BS are all summed in the summing amplifier in Section II and its output is proportional
to:

Az

This voltage is converted to digital form in
Section III. When multiplying two eight by eight
matrices, 64 such multiplications must be performed. In order to obtain the CiC ... l) term, the
"a" entries stay the same- and only ~e "b" entries
must be changed. In other words, in order to
get succeeding C entries only half the information must be changed. This of course is time
saving. If larger than eight by eight matrices
are to be multiplied it is done in parts, and the
results are added.
Although it has not been shown, the sign is
handled by digital means. This is easily done
because the', information that chooses the proper
channels to be multiplexed. determines the flow
of information. It turns out that this coupled
with the mathematical rules for signs is enough
to compute the sign of each term. Referring to
Figur e 10 again. it can be seen that if 51 is multiplexed in and Sz is multiplexed out. B 1 will be
positive. If the reverse is true. Bl will be
negative. The digital logic handling the sign
decides whether Bl should be positive or negative and selects 51 and Sz accordingly. BZ. B3
..... BS are handled in the same manner.
Another important point is that although only
digital inputs were used in both examples. combinations of both digital and analog inputs could
be operated on. In figures 10. 11, 1Z multiplexers M4. MS. M1Z. etc. can be used for this
purpos e . The typical digital/analog arithm-etic
unit would have this flexibility.
The D/ A Arithmetic Unit described in this
report is just an idea. however a scaled-down
model has been built. which at least demonstrates the feasibility of such a system.
The building blocks which make up the D/A
Arithmetic Unit were originally designed for
use in an A/D Converter. In order to test the
A/D Converter a special tester was built. The
tester would generate. by means of a D/A Converter. various voltages controlled by a fixed.

program and the A/D Converter would convert
these voltages back to digital. This digital quantity would then be compared to the digital quantity
in the tester. If they were different by more than
a prescribed amount the tester would stop and
an error indication would result. If the error
was smaller than the prescribed amount the
tester would generate a new voltage and the
process would be repeated. If the system diagram of the converter-tester combination is
referred to. Figure 13, it will be noticed that it
has many of the component building blocks of the
D/A Arithmetic Unit. and could be considered as
a scaled model of it. The results of the tests
made on the converter-tester combination not
only demonstrated feasibility of the DI A Arithmetic Unit but ,gave indication of what could be
expected in terms of speed and accuracy.
As far as speed goes the converter-tester combination was run at 100 usec. cycle period. a
cycle consisting ~f generating a voltage in the
tester. DIAl' converting it back to digital in the
converter. D/Pg comparing it with the original
digital input and then making the decision
whether to generate another voltage or to stop
the hlachine. Therefore, a D/A Arithmetic Unit
which performs at a speed of 100 usec per
operation is consistent with the actual performance of the scaled model.

In the data taken of the accuracy. the maximum
error between the digital generated number and
the digital output was less than t .05 full scale,
although the vast majority of errors fell within
± .OZ, full scale. This large difference between
the maximum error and the vast majority of
errors is to be expected in successive approximation type AID Converters. The reason for
this will not be discussed in this report. However. this error is quite small when one considers the number of contributing factors to it. for
example. two D/A Converters, two independent
references. one amplifier and one comparator.
In the D/ A Arithmetic Unit two separate references would not be used as was in the model since
the reference is the most difficult to accuralely
control. There are two other facts about this
test that are most encouraging. The fir$t is
that none of the semiconductor elements necessary for this high accuracy were specially selected for this purpose. Most of these semiconductors were randomly selected from normal
digital computer lots. The second important
fact is that many of the circuits used in this test
were superceded by later designs, which would
improve the operation considerably. These tests
and those made on the indivic:hal circuits indicates
that D/A and AID conversions can be performed

273
6.2
with average accuracies of .0010/ of full scale
and .010/ of full scale respectively.
If these performance specifications are written
in terms of Figure 10, then it appears practical
that Section I could be made accurate to one part
in 100 thousand of full scale and that Section III
could be made accurate to one part in 10 thousand
of full scale. The difference in accuracy between Section I and Section ill is the main reason
for requiring Section II. As an example assume
that A' B is to be solved. A current is produced
at the output of Section I accurate to one part in
100 thousand of full scale. Assume this produces an equivalent voltage at the output of
Section II also accurate to one part in 100 thousand. If this voltage is numerically ~qual to
7.6328 volts, when it is converted in Section III
four place accuracy is obtained, so that the voltage of 7 .6328 volts will convert to 7 .632 volts.
In other words, the last place figure is lost.
However, because Section II is a variable gain
amplifier this last figure can be recovered. If
now a slightly different problem is solved
A . B

-

7.6320

Figure 14 is the Auxiliary Arithmetic Unit (AAU).
The inputs to AAU are from two sources. The
digital information is from the digital computer
(not shown) whereas the analog information is
from external analog sources (also not shown).
for example. strain gages. tachometers. thermocouples. pressure gages or any other device
whose reading can more conveniently be converted to a voltage rather than directly to a
digital quantity. The analog sources may be
connected to the AAU through a bank of multiplexers. The output is a digital quantity which
is the result of the computation and which generally goes back to the computer or possibly a
remote D/A Converter which controls a part of
a process by ineans of a voltage. The easiest
way towards understanding of each of the building
blocks in Figure 14 is to show the chronological
order of events when solving a problem in AAU.
1..

A "Load Information" command comes from
the digital computer which tells AAU that
the operation registers and the data registers are to be loaded. (Referring to Figure
10 and Figure 14. the data registers contain
the digital information D l • D2 •.... D16 and
the operation registers select the operation
or computation.) In order to permit this
loading, the information gate as sociated
with these registers is opened by the controis.

2.

The digital information comes from the
computer s erial by word, each word containing a tag which tells whether it is an
operation or data. The word is then gated
into the proper register. This process is
continued until the operation and all the
data is loaded into the proper registers.

3.

The "Load Information" line is lowered.

4.

The signs. '" • of the data D and the operation information M. N, V are applied to
polarity decoder. The output S of the polarity decoder is applied as the digital control
signals Sl' S2' S3' S4' etc.

5.

The operation information M. N. V is applied
to their respective multiplexers which digitally controls the operation.

6.

The digital information D is applied to the
appropriate converters.

7.

The "Start Computation" command is given.

8.

The polarity output P which senses the
polarity of the output of Section II. Figure
10. select Tl and T4 or T3 and T4

(14)

the voltage at the output of Section II will now
become
7.6328 -

7.6320

or

(15)

0.0008
Since Section III is only accurate to four places
o.0008 cannot be converted to digital in
Section ill. but if the gain of Section II is increased by a factor of 10. the output voltage of
Section II would be 0.0080 and Section ill could
convert this voltage and obtain an eight in the
last place. If the value of the first conversion
7 .632 is added to the value of the second conversion 0.0080, 7.6328 results. This is the
answer
10
desired. In other words. if
Section I is accurate to five places. a five place
answer can be obtained. by-using techniques
such as these.
Auxiliary Arithmetic Unit
In order to present a better understanding of
how the D/A Arithmetic Unit might operate within a digital computer the entire auxiliary arithmetic unit of which the D / A Arithmetic Unit is a
part will be described.

274
6.2
accordingly. In Figure 11 and Figure lZ
the polarity was negative so therefore TZ
and T3 were multiplexed in.

9. The polarity output P together with q,.

In digital/analog arithmetic most operations
take the same time, for example, the solution
of:

(which determines whether the function
or its reciprocal is wanted) presets FZ
or F3 in the manner previously described.

y=aTb

(16)

would take the same time as:
10. The scaling factor Fl b selected. This
can be done in several ways. One method
is to have the polarity block of Figure 10
also give the approximate magnitude of the
voltage at the output of Section II and then
select the sc;aling 'of Fl accordingly.
l1. The answer appears in FZ or F3 depending
on step 9. The information in Fl is also
needed since this is the scaling factor.

lZ. The process is repeated for the next
problem.
The auxiliary arithmetic unit performs fixed
decimal point operations and therefore the
decimal point must be considered separately.

Conclusions

( 17)

about 100 usec.
The average speed of computation for the single
addition in the first example is 100 usec.,
whereas the average speed of the 8 multiplications and 7 additions in the second problem is
6.8 usec. per single computation. The latter
speed is fast even when compared to high- speed
digital arithmetic.
Another aspect of speed to consider is the
number of times memory must be used in the
course of computation, since in high-speed
computation the memory may be the limiting
speed factor. Therefore, a less conspicuous
advantage of digital/analog arithmetic is that it
requires fewer trips to memory for similar
computation as compared to digital arithmetic.

Accura£Y
Practically, an average accuracy of ± .0011
to ± .011 full scale can be achieved. Since
most of the errors are fixed, it is particularly
desirable to operate as close to full scale as
possible. The variable gain amplifier helps
achieve this. Some numerical methods have
been considered for the purpose of improving
the accuracy. In general, their shortcomings
outweigh the increase of accuracy they may
offer.
When all is said and done, digital/ analog arithmetic will not be useful where accuracy is at a
premium. However, there are some problems
in which its accuracy may be sufficient. In
some problems the accuracy of the information
is limited, so that extreme accuracy of computation is unwarranted. Two examples of this
occur in industrial process control and circuits
analysis. In the former the input information
is in analog form and in the latter, the most
precise components are often 51 resistors.

A third important factor is that during the time
the digital/analog arithmetic unit is computing,
it can operate completely independant of the
rest of the computer. This allows the computer
to perform its necessary functions in parallel
with the digital/analog arithmetic unit for most
of its cycle. Also, becaus ether e is a long
lapse of time between successive operations, a
high percentage of this time can be utilized.
Acknowledgements
The author wishes to thank Mr. W. Brandenberg
for his help in the writing of the report and Mr.
D. A. Bourne for his encouragement in this
work. He is also indebted to Mr. D. J. Grenier
and Mr. Secundo Decceco for their work on the
A/D Converter and Tester.
References

1.

Skramstad, H. K., "A Combined AnalogDigital Differential Analyzer", Proc. of
EJCC, 1959.

275
6.2
2.

McLeod. J. H. and Leger. R.M., "Combined Analog and Digital Systems", Instruments and Automation, Vol. 30, pp 1126.

3.

"Applications of AD-DA Verter Systems in
Combined Analog Digital Computer Operation", Pacific General Meeting of the AIEE.
June '56, Paper #56-842.

4.

Leger, R. M. and Greenstein, J.L.,
"Simulate Digitally or by Combining Analog
and Digital Computing Facilities", Control
Engineering, Sept. 1956.

5.

Skramstad, H. K., Ernst, Nigro, J.P.,
"An Analog-Digital Simulator for the
Design and Improvement of Man-Machine
Systems", EJCC.

6.

Blanyer, C. G. and Mori, H., "Analog.
Digital and Combined Analog-Digital
Computer s for Real Time Simulation".

~--~~------~----~----------~OUTPUT

2R

4R

1--

--

+Vr

o REFERENCE

FIGURE 1- THREE BIT D/A CONVERTER

D-------!
A-----..

~N

D/A

t------8

+
FIGURE 2-DIGITAL TO ANALOG CONVERTER

A-----.....

~----8

FIGURE 3-SUMMING AMPLIFIER

276
6.2

0 - - - - -.......
A - - - -.....

......- - - 8

FIGURE 4-MULTIPLEXER

D--------------~
D/A

A - -....- -....

----B

:>-....

FIGURE 5-VARIABLE GAIN AMPLIFIER

--.. o
A
B

+

-

..........

COMP

FIGURE 6-COMPARATOR

277
6.2

8,

..

....

...

82:

~

...

02

DIAl

~

+

A2

: P OUT

I
COMP

+

.....

D/A2

~

-

FIGURE 7-TWO D/A CONVERTERS FEEDING A COMPARATOR

C,

D,
AI

DIAl +
KI

D2
A2

8

O/A2 +

K3

K2

FIGURE 8 -

LOGIC FOR SUMMING TWO PRODUCTS

+U

~--B

+

FIGURE 9-MULTIPLICATION OF TWO DIGITAL QUANTITIES

0\ tv
•

--J

tva:>

o
MI

M2
M3
+U~

M4

61

..... p

i

I

FIGURE 10 - DIGITAL/ANALOG ARITHMETIC UNIT

I

POLARITY
INO

I

I

I I
I I
I

0, - - ,

O2

-"-

~

DIA,

-

s,

±.. -

B,

~

.P
POLARITY

I

IND
F,

03

---'th-

-x...

i

........

.

+u

~

t

i

I

"""'-

~

D/A ..,

~

ANSWER

TO
CONTROLS

F2

H

I DIA,:I

"X..·I~

T3

D/A '9

T4

-u

III
FIGURE II - EXAMPLE I

COMP

+u

I

I II
I II

oJ

F3

T2

---l

A

~

O\t-.:)
•
-.J
t-.:)\O

.

O\r-..J

I 1I
I I I

I I

~

r-..JO

!

blj

ail
0,

M,--'

L......

M2
•

In.

O/A 2

."

M3

+u~

Iail-blj

M4X

IB,

.P
I

POLARITY
INO

F,

ai2

b2j
04 -

0 3 ---,

M6 ---.

I I

M7--.

II

~

A3/

N4--.

I I

--

I

I I "-...

I n O/A,~~

S3 - - .

.II A4 /

i

III

I

I I

----,
--

T~IA,V

- TI

T

T2~

I+u
B3

ai3-b3j

FIGURE 12- EXAMPLE

I

-u

n

A

D/AI:I

r

B I COMP

F3

T3~
T4

--

TO
CONTROLS

F2i

I I

a12-b2J T

I I

ANSWER

O/A'9

H

281

6.2

--..
CONTROLS a
DIGITAL COMPARATOR

......

DI

~

UI

,

~

DIAl

-

yy.,

..
..-

D2

-..

,,
U2

Y

AAA

COMP

D/A2

-

FIGURE 13-SCALE MODEL OF D/A ARITHMETIC UNIT
(CONVERTER-TESTER COMBINATION)

ERROR SIGNAL

282
6.2

ANALOG INPUT

DIGITAL INPUT

..

M,NtV _

OPERATION
REG

t...

POLARITY
DECODER

...

S

.. DATA
_ _- - 4...
..
.,. REG

:

M,N,V
..
'-----------;.;.;,D.:.;..;.:..~~: D/A

A.U.t-----

F.T :
~

'------'

...

INFORMATION GATE

4> ...
LOAD INFORMATION START COMPUTATION
~
---------------~----------~~~

CONTROLS

L....

H,P

FIGURE 14 AUXILIARY ARITHMETIC UNIT

F,T
REG

283
6.3
PBZ50
A HIGH-SPEED SERIAL GENERAL PURPOSE COMPUTER
USING MAGNETOSTRIC TIVE DELAY LINE STORAGE
By
Robert Mark Beck
Packar~

Bell Computer Corporation

Los Angeles, California

Summary
This paper presents the design objective
of a general purpose computer which is intended to serve as a component in special
purpose systems.
Some of the design considerations applied
toward meeting these objectives are also presented. The significance of the use of magnetostrictive delay memories in a low-cost
computer as well as the approach used to minimize the active elements in a flexible computer
input/output system are discussed.
Introduction
For the past three years, Packard Bell
Computer Corporation has designed and developed lJpecial purpose data gathering and
data handling systems.
A typical system function is to translate
several channels of analog information into a
prescribed digital format and record the digital
information on magnetic tape. In these
systems, an electronic mUltiplexer selects the
proper channel of input voltage and holds it for
digitalization by an analog-to-digital converter.
A special digital control unit then edits and
arranges the digital information into the required format. The digital information is then
recorded on magnetic tape.
Another typical· system function is to
generate control signals as a function of
several analog inputs. The control signals
thus generated are used to select, operate, or
control other units. A system of this type may
become very extensive, with many registers
required for such functions as accumulation of
data, multiplication, memory, shifting, or
intermediate storage of data. Therefore, even
a low-performance system of this type may require over ZOO flip-flops and 500 words of
memory.
Upon investigation of the special purpose
system approaches described above, the following major disadvantages were determined!

a. It is difficult to meet short schedules.
Large amounts of expensive design and development time are required since each system
must be built for its special function.
b. The special purpose system is not
flexible; therefore, when it becomes obsolete,
only a minimum of the 'Components can be
salvaged.
c. Because of the relatively short life of
special purpose systems, maintenaru::e knowledge and records can not be effectively accumulated.
Examination of the above facts compared
with general purpose computer characteristics
resulted in the following conclusion: A special
purpose system could have a major portion of
its disadvantages eliminated by making the heart
of the system a general purpose computer, especially designed with a flexible input/ output
which would allow it to operate with other equipment in the system. Of course, the crux of this
idea is to have the majority of the system engineering expressed in computer programming
instead of special hardware. The major advantages to be derived from this method of
implementing special purpose systems are as
follows:
a. Design and development time are minimized since a large part of the system function
is performed by the computer. Only the program
of the system must be developed, and portions
of it may be existing subroutines.
b.
The system is flexible since changes
are easily incorporated in the program to meet
new or revised system requirements.
c. The computer continues to be useful
even after the special purpose system becomes
obsolete. The major components, including the
computer, may be kept intact for use in future
systems. The program is the only part of the
system which becomes obsolete.
d.
The reliability and ease of maintenance
are increased because continual maintenance
knowledge and records will be retained for the

284
6.3
computer t which is a maj or portion of the
system. Check routines may be incorporated
to ensure that the computer is operating correctly.
Design Specifications

4.

5.

A computer to be used as a systems component, as set forth in the introduction,requires
stringent design specifications.
The computer must be very fast to perform sequentially the operations of a special
purpose digital system. Furthermore, a low
component count is necessary to make the computer cost competitive with the special equipment it replaces.
The communication required with other
units in a system dictates a flexible input/
output. Many input/ output channels with many
codes and formats must be available.
To be economical in all cases, the memory capacity must be expandable so that the
memory capacity can suit the size of the job.
Furthermore, programming should be made as
easy as possible in order to keep the programming time and expense less than the engineering
which it replaces. This suggests a complete
command list using single address operation.
Finally, if the computer is to be a component
in a system, it should be compact and suitable
for rack mounting.
Analysis of the above requirements led
to the design goals as follows:

1.

High-Speed Operation - 50,000 commands per second

2.

Minimizahon of Components
a.

30 Flip-Flops

b. 300 Transistors

3.

Flexible Input/ Output - a.

Basic:

Flexowriter with Reader and Punch
b.

Other Equipment:

Magnetic Tape Handlers
High-Speed Paper Tape Punches
High-Speed Paper Tape Readers
Analog Voltage Multiplexers
Digitizers
Digital-to-Analog Converter
Card Punches and Readers
External Core Memories

Expandable Memory - 2,000 words

a.

Basic - -

b.

Expanded - - 16,000 words

Easy Programming - a.

Complete Set of Instructions

b.

Single Address Operation

c.

Double Precision Commands

6.

Word Size - -

21 Bits plus Sign

7.

Compact Construction - Suitable for Rack Mounting
Computer Description

Using these design goals, the first design
conferences were started in November 1959.
A 10-man engineering team took part in these
design conferences. This team worked simultaneously on the logic, circuitry, and mechanical design of the proposed computer.
In August 1960, a prototype of the computer
was placed in operation. Circuitry reliability
testing and program checking have been continuously performed on this computer since it
was placed in operation.
During the prototype checkout, ten production computers were built. The first production cOlll:puter was delivered in October 1960.
Memory Elements
The fundamental design decision was to
chose the type of memory element. Initially, a
magnetic drum with a 1 mc bit rate and speed
of 400 cps, and a low-speed core memory with
a cycle time of 10 microseconds were considered.
Our attention then turned to magnetostrictive delay lines, as a result of articles published
by the Ferranti Company and Arma Corporation
on the use of magnetostrictive delay line memories in the Pegasus computer and the Titan_
Missile test computer, respectively. An expandable memory could be made very conveniently by packaging each memory line as a
plug-in module. Based on a temperature coefficient of 0.5 PPM/oC, 6,144 bits could be
stored in each memory line register. This
would realize 256 words of 24 bits each per
memory line. Furthermore, using a 2 me NRZ
writing process, the desired goal for a highspeed serial operation would be practical. Hence,
based on these advantages, magnetostrictive

285

6.3
delay lines were chosen for the memory of the
PB 250 general purpose computer.
Figure 1 shows a complete memory line
module. This circuit card includes line address selection circuits in addition to the line
and the reading and writing circuits. The
writing circuit consists of a flip-flop which is
DC coupled to the magnetostrictive line's input
transducer. The reading transducer presents
a 2 mv peak-to-peak differential signal. This
signal is amplified, then reshaped by a Schmitt
circuit. The output of the Schmitt circuit is
gated into the read flip-flop. The waveforms
as they appear at various points in the delayline register are shown in Figure 3.

were designed to achieve reliable performance
with a minimum of semiconductor elements.
These circuits were derived from 3 mc circuits
used in Packard Bell Computer Corporation's
TRICE Computer ( a digital differential analyzer
system).
Computer Organization

Figure 2 shows a one-word delay line
module which is used in arithmetic portions of
the computer. This circuit circuit card is
smaller because it does not contain line address
selection circuitry.

The computer word is made up of 24 bits.
Two of the bits, the first ( a guard bit) and the
24th ( an odd parity bit), are not available to
the programming. Numbers in the machine are
expressed in binary with 21" bits plus sign. The
command format is indicated in Figure 5. This
block diagram also shows all the basic elements
of the PB 250. The heavy-lined rectangles
locate the five one-word magnetostrictive delay
line registers. The computer's 32 flip-flops
( excluding reading and writing flip-flops for
magnetostrictive delay line registers) are
summarized in Table 1.

Computer Circuitry

Arithmetic Operations

The characteristics of the basic circuits
used in the PB 250 are outlined below:

The computer's arithmetic operations are
based on the three one-word registers: A. B,
and C.

1.

Gating - a.

Voltage Levels:
o volts (ft fals e ff level)
- 8 volts ( It true fI level)

b.

Structure:
Two-level AND gates feeding OR
gates.

2.

For double preCision operations, the A and
B registers are arranged to handle double precision numbers with the sign and 21 most sign!ficant bits of the number in A and the ZZ least
significant bits in B. The basic arithmetic operations are outlined below:
1.

Addition and Subtraction - Addend or Minuend ---_._..- A or A and B
Augend or Subtrahend
.. Memory
Results
.. A or A and B

Z.

Left and Right Shifting - -

Clock Waveform - Single phase, 2 mc square wave.

3.

Flip-Flops - a.

A Register and B Register shifted as a pair,
C Register is incremented or decremented
to allow for efficient floating point subroutines.

Construction:
Two Transistors ( no clamping)

b.

Input Coupling:
Capacitor - Diode

4.

3.

Emitter Followers

Multiplier
Multiplicand

One-Transistor
5.

Multiplication - -

Produ~t

.....
..

Inverter s - One-Transistor

Where delays would become too great,
transistor OR gates are formed by connecting
the emitters of several emitter followers.
Figure 4 shows the basic circuit configurations
( specialized circuits such as solenoid drivers
and clock generators are omitted). All circuits

4.

B Register
C Register
AandB
Registers

Division - Numerator
Denominator
Quotient

~
~

...

AorAandB
C Register
B Register

286

6.3

5.

for input! output operation.

Square Root - Argument

-------1__ A

or A and B

Square Root of
Argument - - - - - -.....- B Re gister
Each of the short registers recirculates
once per word time. Therefore, multiply,
divide, and square root commands produce one
new bit in the answers for each execution word
time. The shift operations require one word
time per shift. These commands are executed
for a programmed duration, for improved optimum programming.
Timing
Two methods of programming exist for the
PB250. The normal computer program consists of reading successive commands in sequence from a command line. This method
offers optimum storage usage. Every 3-millisecond cycle of a long memory line, a new
co~and is read and executed when the operand
in the command appears. Hence, the computer
waits a major portion of the time. An operation
rate of 333 commands per second is realizable
using this method of programming.
To provide high-speed operation, an
optimum time programming technique is av-ailable. Any command which contains an optimum code bit is called alL optimized command.
The command immediately available at the completion of the execution of the optimized command is read. Hence, the computer can be
reading or executing a command at all times.
Using optimum time programming, a computation rate of 40,000 commands per second is
obtainable.
The execution time for addition or subtraction is 12 microseconds for single preCision
numbers and 24 microseconds for double precision numbers. Execution of left shifting,
right shifting, multiplication, division, and
square root commands requires 12 microseconds
per word time of execution. As previously
mentioned, the length of execution of these commands is programmed within the structure of
the command. For example, a full-length,
22-bit plus sign multiplication requires 276
microseconds. Hence, with optimum time programming, the PB250 can perform 2,800 fulllength multiplications per second.

Each output character is delivered by an
output command which has a programmed duration. This programmed duration is controlled by using the C Register as a counter to provide output character signals ranging from 12
microseconds to 24 seconds.
Each 8-bit input character is entered into
a small input buffer contained in the computer.
These 8-bit input characters are assembled
into words by computer programming. The
same computer circuits are used to handle
character rates of 10 cps to 2,000 cps in an
efficient manner.
Computer handling of each character by
programmed operation removes any restrictions on codes or formats and also minimizes
the amount of hardware applied to input/ output
operation in the computer. High data transfer
rates may be obtained by using an external
buffer. For control applications, the computer's
complement of links with external equipment is
completed by its ability to sense the many input
lines and generate many f'f string pulling" output signals.
An external 2 mc shift register is provided
as auxiliary equipnlent for large, quick bursts
of input or output data. This is especially useful when dealing with analog-to-digital and
digital-to-analog converters, card readers and
punches, line printers, etc.
The computer may be programmed to sense
many parallel input lines. This capability is
enhanced by a command which allows program
branChing based on any of 30 input lines. The
converse is available for output operation; that
is, output pulse signaling to anyone of 30 output lines.
Finally, to provide a maximum of flexibility
for input and output, a special provision is incorporated for synchronbing and interconnecting
two or more PB 250. s. With this arrangement,
one computer may serve as the central computer, while other computer s may be us ed for
input and output functions.
Packaging

Input! Output Operation

Figures 6, 7, and 8 show the computer as
a rack-mounted component. The PB250 requires 33 1/4 inches of vertical rack space.
The Flexowriter requires an additional 17 1/2
inches of rack space.

The bulk of the input! output capability of
the PB Z50 is designed into the command structure. The computer handles characters in any
code configuration ( up to 8 bits per character)

The computer frame can accommodate up
to 15 memory lines ( approxinlately 4,000words).
Additional memory lines may be mounted in
another chassis. Any 256-word memory line

287
6.3
may be replaced by a shorter line, such as a
l6-word line. for increased fast access memory.
The total component count includes only
375 transistors and 2,300 diodes. There are
120 plug-in circuit modules. The open-book
case style. as shown in Figure 7, allows easy
access to all the socket wiring of these modules.
For program tracing, the control panel at
the left side of the front panel indicates the
status of the static flip-flops. The marginal
test switches located on the control panel are
used for varying the clock period. Further
m4rginal checking may be performed by adjusting the two main power supply voltages,
+ 6 volts and - 12 volts.
Performance Review
Although the PB 250 Computer was designed
to be a useful system component, it has also
proved to be a powerful general purpose computer. With, an automatic optimum programming assembly routine and a library of routines and subroutines, the PB 250 provides the
greatest advance in low cost computers since
magnetic drums were first used.
Efficiency of the computer is greatly increased by the use of the solid-state devices
such as transistors, diodes, and magnetostrictive delay lines. The efficiency of these components is made pos sible by using a 2 mc
operating frequency ( about 10 times the frequency of drum computers). This frequency
also allows more efficient logic coupling between the input/ output equipment and the computer. Hence, the burden of input and output
operations is placed on programmed subroutines, thereby reducing input/output hardware,
and' thus compensating for the expense of highfrequency components.
The PB 250 approaches or exceeds the
design ,?bjectives that were set for it. A large
numbei of special system programs are now
being prepared with very satisfactory performance indicated. These systems include tracking
radar antenna control, power plant control,
atomic reactor data logging, etc.
The complete PB 250 command list is
presented in Table 2. The commands in the
top half of the list are the basic single address
operations, whereas the commands in the lower
half of the list have a programmed execution
duration which starts in the word sector after the
command is read and ends at the address specified by the command.

Acknowledgements
The author wishes to express his appreciation to Dr. Stanley Frankel for his valuable
advice and consulting assistance in the design
of the PB 250 logiC. Congratulations are also
extended to Mr. Bmil Ruhman for his outstanding work on all aspects of the computert s circuit design and to Messrs. Jack Mitchell and
Donald Cooper for their efforts in the management and coordination of the overall engineering
project.

288

6.3

Table 1.
Function

Flip-Flops
FI, F2, F3, F4, F5
Ec, Rc

Is

Pulse Time Counter ( P 1 - P 24 )
Phase Control - Ec Rc :

Wait to Read Command

Ec Rc:

Read Command

Ec Rc :

Wait to Execute Command

Ec Rc:

Execute Command

Comparison Detector - Compares Sector Counter and Instruction
Register

Oc, 06, OS, 04, 03, 02, 01

Operation Code Register

L5, L4, L3, L2, Ll

Operand Line Registel

K3, K2, KI

Command Line Register

Sc

Carry for Sector Counter

Ca

Carry for Arithmetic Unit Adder

Of

Overflow

Pc

Parity Check

Ae, Be, Ce

Arithmetic Unit Register Shift Flip-Flops

Rf, Tf

Reader and Typewriter Controls

289
6.3
Table 2.
OP

Command

OP

Command

00

HLT

Halt

40

EBP

Extend bit pattern of A

01

lAC

Interchange A and C

41

GTB

Convert A from Gray to Binary

02

IBC

Interchange Band C

42

AMC

AND of M ItC

43

CLB

Clear B

03
04

LDC

LoadC

44

CLC

Clear C

05

LDA

Load A

45

CLA

Clear A

06

LDB

Load B

46

AOC

AND-OR Combined

07

LDP

Load AB double precision

47

EXF

Extract Field

10

STC

Store C

50

DIU

Disconnect Input Unit

11

STA

Store A

51

RTK

Read Typewriter Keyboard

12

STB

Store B

52

RPT

Read Paper Tape

13

STD

Store AB double precision

53

RFU

Read Fast Unit

14

ADD

Add

54

15

SUB

Subtract

55

LAI

Load A from Input

16

DPA

Add double precision

56

CAM

Compare A and M

17

DPS

Subtract double precision

57

cm

Clear Input Buffer

20

NAD

Normalize AB

60

WOC

Write Output Character

21

LSD

Left Shift AB

61

22

RSI

Right Shift AB

62

23

SAl

Scale AB

63

2.4

NOP

No Operation

64

25

lAM

Interchange A It M

65

26

MLX

Move Memory Line to Line 7

66

67

WOC

Write Output Character

27
30

SQR

Square Root of AB to B

70

PTU

Pulse Specified Unit

31

DIY

Quotient of AB+ C to B

71

MCL

Move Command Line

32

MUP

Product of B x C to AB

72

BSO

Block Serial Output

73

BSI

Block Serial Input

TOF

Transfer on Overflow

TES

Transfer on External Signal

33
34

TCN

Transfer if C negative

74

35

TAN

Transfer if A negative.

75

36

TBN

Transfer if B negative

76

37

TRU

Transfer unconditionally

77

290

6.3

Fig. 1. Complete Memory Line Module

291

6.3

292

6.3
- - -Ov
Write Flip-Flop
(Driving Side)
- - -lOy

- - +Sv
Voltage Across
Launching Coil
--

-Sv

__

+2v

--

-2v

Delay Line Output
(Amplified from 2 mv
to 6 v peak-to-peak)

- - -Ov
Schmitt Output

- - - lOy

Time at 0.5 usee/div

Schmitt Output with
superimposed digital patterns

Time at 0.2 usee /div

Fig. 3. Delay Line Waveforms

293

6.3

OVVV
-BV

I 0.5 usee

Clock
Input

I
OV

OV

-12V

OR

AND Gate

Gate

+6V

+6v

-12V

-12V

Emitter Follower

Fig. 4. PB250 Circuits

OV

-12V

Inverter

O\[\.;)
•
\0

Pulse Ctr

Wof:>.

Clock

0

RC

0

o

PI

Control
Ec Rc
WRC

F5

P2

o

P24

o

0

o

0

o

o

0

o

WEX
1

EX

Ove~-

0

o

o

o

o

i"

flow

I~Ol
I

P8-P15

I

P3-P8

~~C!-

Command Format
24

20

16

12

8

4

P
Rc

G

IVg

OP Code

Line
Selector
Parity
Bit

Optimum
Code Bit

ML
Line
Number
Read ML lrom I

Memory Lines
Guard
Bit

Fig. 5. PB250 Block Diagram

Fig. 6. PB2S0 Rack Mounted

296
6.3

Fig. 7. PB250 With Case Opened

297

6.3

Fig. 8. PB2S0 With Case Pulled Out

299
6.4
THE INSTRUCTION UNIT OF THE STRETCH COMPUTER
R. T. Blosk
Product Development Laboratory, Data Systems Division
International Business Machines Corporation
Poughkeepsie, New York

Introduction
The Instruction Unit (I unit) was developed
as the largest portion and the major control unit
of the large-scale, high-performance Stretch
computer. 1 This computer is the central processing unit of the Stretch system 2 contracted
for development and delivery to the Atomic
Energy Commission for their Scientific Laboratories in Los Alamos, New Mexico.
The purpose of this paper is to describe the
major functions. of the I-unit, give a general
picture of the internal machine organization and
the logical reasons behind it, and present several
examples of how some of the performance goals
were achieved.
A diagram of the Stretch system appears in
Figure 1. It consists primarily of the central
computer, 6 blocks of 2-usec memories (each
containing 16, 384 words of 72 bits}~ a basic I/O
Exchange unit with its associated I/O units and
adapters, and a high-speed Exchange (disk
synchronizer) unit wi th its disk unit and adapter.
The system is expandable up to a maximum of
16 memory blocks, 32 basic I/O channels, and
32 disk units.
The computer is divided into five major
elements: the memory bus control unit, the instruction unit, the lookahead unit, and the serial
and parallel arithmetic units. These are shown
in Figure 2.
One of the principal factors in achieving the
high performance in the computer is the ability
of these separate logical areas within the computer to operate independently and simultaneously. This means that while one of the arithmetic units is busy executing an instruction, the
lookahead unit can be "stacking" up the following
instructions with their operands, and the I unit
can be fetching and indexing more instructions
preparatory. to loading them into lookahead. In
many cases, the I unit can actually be executing
an instruction wholly within the I unit, simultaneously with the execution of apreceding instruction
in an arithmetic 'unit. In effect, the computer
is a form of "pipe-line" which once filled is
~apable of a very high output rate. Basically,

the main job of the 1 unit is td keep this "pipeline" filled by maintaining the instruction fetching and preparation rate compatible with the
operating rates of lookahead and the arithmetic
units.
A complete description of the specific
functional responsibilities of the I unit will be
given later. However, there were a number of
more general requirements which significantly
affected the entire design of the unit. The most
important of these were:
1.

It had to handle a large diversified instruction set in a wide variety of word formats. 3
(see Appendix Al.

2.

It had to prepare half-word instructions,
full-word instructions, and full-word instructions across memory word boundaries.

3.

To achieve the desired performance, it had
to process several instructions simultaneously.

4.

It had to be completely interruptable and
.
.
4
recoverable on every lnstruchon.

5.

It had to test for many exception conditions.!
set corresponding indicators, and be capable of suppressing or terminating the associated instruction if necessary.

6.

It had to differentiate between three types
of memory -- external memory (EM}, index
storage (XS}, or internal register (IR} -- on
all fetches and stores (see Appendix B).

7.

It had to update the time clocks every millisecond.

8.

It b,ad to be virtually instantaneously
stoppable to provide meaningful automatic
error scans.

9.

It had to be constructed with standard
circuits, panels, and frames.

10.

It had to be a reliable and thoroughly
checked unit.

300
6.4
As a result of these requirements, plus
the many assigned program functions, the instruction unit was designed and built to occupy
five full double-gate standard frames and parts
of three others, filling 46 standard panels,
using approximately 1275 standard ... circuit
double cards and 6385 standard-circuit single
cards, and requiring about 53,680 transistors.
Functions
The instruction unit has as one of its two
primary functions the fetching and preparation
of every instruction executed by the computer.
The fetching carries with it the responsibility
for checking and possibly correcting the word
after it is received from memory. Every word
in external memory contains 64 data bits and 8
error correction code (EGG) bits. These ECG
bits permit single error detection and correction plus double error detection. The preparation of each instruction involves the indexing 5
of the instruction (if required), the partial decoding to determine instruction class and unit
destination within the computer for execution,
plus the actual operand fetch and loading of the
instruction into lookahead. It also requires
various tests of each instruction for indica tor
setting and possible suppressing and/or interrupting. Some indicators require that the
instruction not be executed {suppres sed}, while
others permit full or partial execution with the
option of causing an automatic interrupt at the
·completion of the instruction. The actual point
of execution and interrupt test is not until some
time after processing by the I unit. In order to
know the memory location of every instruction
as it is tested for an interrupt, the I unit loads
the advanced instruction counter (IC) value
into lookahead with each instruction. If an
interrupt is detected later, the program can
store the IC value of the instruction following
the one being interrupted. This enables the
interrupt sub-routine to know where to return
to the main program after the interrupt.
Two type s of indexing can be spe cified -normal and progressive. The normal mode
modifies the operand address by the value of
the index word with the resultant effective
address replacing the original operand address,
In progressive indexing, the result of the algebraic addition of the operand address and index
value replaces the index value, and the original index value replaces the operand address
as the effe ctive addres s. This mode can also
specify a stepping of the count field and mayor
may not call for an automa1ic refill if the count
goes to zero.

All instructions eventually are loaded into
lookahead. There are four levels of storage
in lookahead, and each contains an op-code
field, an indicator field, an operand field, and
an instruction counter field. Normally an instruction only requires one level of lookahead;
however, some require more. An example is
a variable field length instruction in which one
level is used entirely for operation definition,
such as variable field length, byte size, and
offset. A second and possible third level is
then required fo1' the operands.
All instructions to be executed by the
floating point (FP) unit, the variable field
length (VFL) unit, and the Exchange units are
loaded into lookahead to await operand return
and subsequent execution. As the instruction
is loaded, the operand ~s fetched to the lookahead (LA) operand field, any indicators set by
the instruction so far are transferred to the LA
indicator field, and the IC value for the next
ins truction is set into the IC field.
If an instruction is of the index arithmetic
type which is executed wi thin the I unit, lookahead is loaded at the completion of the execution. In this case, the lookahead operand field
contains the old contents of the index word
that was modified. The indicator and IG field
are set normally. This provides a means of
recovering the index words which are modified out of sequence should an interrupt occur
on a previous instruction.

The second primary function of the I unit
is the actual execution of a large number of
instructions in the Stretch instruction set. Index arithmetic instructions form the largest
class in this set and they include direct,
immediate, and indirect forms of addressing.
The direct address refers to a location in
memory for the operand, whereas the
immediate address is the actual operand.
There are several special instructions which
act upon the index registers. Load Value
Effective is a load type of instruction using
indirect addressing, where the contents of the
location in memory specified by the address
may refer to another memory location. Load
Value with Sum provides a means of multiple
indexing by utilizing a form of geometric
addressing where each bit of the address refers
to a separate index register. Rename provides a method of "naming" index registers by
putting in one index register the location in
memory from which the contents of another
index register came and to which it can be
returned.

301

6.4
The Branch instructions comprise another
class which the Iunit is responsible for executing. They include all unconditional and conditional branches. The conditions may depend
upon: any of the indicators, any bit in memory,
and any index count field. In addition, each instruction has a number of modifier bits which
specify whether the branch should occur on a
zero or one condition, whether the bit should
be left alone, inverted, set to zero, or set to
one, and in the case of index count branching
whether the value field should be modified by
0, +1, +1/2, or -1. The index and indicator
branch instructions are half-word in length
and the branch on bit is a full word. The
half-word instructions may have a half-word
prefix specifying a store instruction counter
operation if the branch is successful. This
forms a full-word instruction. The store instruction counter half-word instruction never
occurs alone.
If an indicator branch is conditional upon
an index indicator, the I unit determines the
status and completely exe cutes the instruction. If the condition depends upon some other
indicator, then the I unit completes the instruction, assuming the branch to be unsuccessful. It loads the necessary operation
code, indicator location, and recovery informa tion (branch addre s s) into lookahead to
cause a test of the indicator later, after all
previous instructions in LA have been completely executed. If at this time the branch is
found to be successful, then a branch recovery
operation is initiated and lookahead returns the
branch address and all old index words to the
I unit . . This recovery is similar to an interrupt recovery.

Word transmission instructions form
another class which the I unit must execute.
These include two basic types. One is the
Transmit, which transfers data from one
location in memory to another. The other
type is Swap, which causes an interchange of
data between two locations in memory. These
instructions also contain a modifier bit which
specifies whether the word count is contained
in the instruction (immediate) or in an index
word (direct). Another modifier specifies
whether the addresses are stepped forward or
backward.
The remaining instructions executed by
the I unit include a general Refill and a Refill
on co unt zero which provides the ability of
refilling any word in memory. Execute and
Execute Indirect are two instructions which
provide the ability to execute "subject" in-

structions at direct or indirect locations in
memory. The Store Zero instruction forces
zeros into any memory location. A complete
list of I-unit instructions appears in Appendix

C.
Another function directly involving the
I unit is the automatic interrupt operation.
At the completion of every instruction execution, a test must be made on the indicators to
d~termine if an interrupt is required or not.
If not, normal program operation is continued.
If an interrupt is called for, recovery operations are initiated in lookahead and the I unit
An interrupt is signaled whenever the interrupt
system is enabled (by the program), and an
indicator in the register and its corresponding
bit in the mask register are one IS. The I unit
must determine the indicator causing the interrupt, -reset the indicator, and locate the
"free instruction" associated with that particular indicator. It then fetches the instruction, prepares it, and either executes it
or loads it into lookahead. If it is not a
successful branch instruction, the I unit returns to the original program and continues
normal operation; hence the term "free instruction". However, if it is a successful
branch, the I unit branches to the new program routine and proceeds normally until a
new branch instruction returns it to the
original program. The interrupt mechanism
is automatically disabled during the fetching
and execution of the "free instruction".
Time clock operation is another function
as signed to the I unit. The computer contains
two time clock values; an interval timer of 19
bits {8-1/2 minutes} and a real time clock of
36 bits {777 days}. These two quantities are
contained in one word located in the small,
fast-access, index core storage. Approximately every millisecond (1024 cps), while tl.le
computer is under program control, the I unit
must stop its normal operation, fetch this word,
and step the two clock values through the index
adder. The interval timer is stepped -1 and
the real time clock is stepped + 1. When the
interval timer goes to zero, a cbrresponding
indicator is set. The interval timer may be
set by the program but the real time clock may
not.
The I unit also has the responsibility for
monitoring all memory addresses for out-ofbounds conditions. All external memory
fetches for the computer are initiated by the
I unit, and each addres s is compared against
an upper and a lower boundary register. Depending upon the state of an outside-inside

302
6.4
control trigger, appropriate indicators are
~et according to the type of fetch {instruction
or datal. All stores are performed by the
lQokahead. However, before loading lookahead with a store operation, the 1 unit tests the
store address and sets a store indicator in
lookaheadl if out of bounds. These indicators
may cause suppression of the instruction and/
or an interrupt and automatic branch to a
corrective routine.
The last important function of the I unit
is providing manual controls for direct intervention by the operator console and customer
engineering maintenance console. Since the
I unit has complete control over all operations- to be performed by the computer, it was
found to be the logical place for the rm.jority
of the manual controls. These controls provide the ability to:
1. Start or halt the machine.
2. Load new programs.
3. Display or store memory.
4. Single-step the program an operation
or a cycle at a time.
S. Enter a particular instruction into
the machine.
6. Put the machine in a repeat instruction mode.
7. Continuously test index storage.
Repeat instruction mode causes the
machine to continuatly repeat the fetching,
preparation, and execution of one particular
instruction word.
In addition to these specific functions,
several problems arose which required special
handling. One of these was created by preaccessing instructions before completing the
execution of previous instructions. In the case
of store-to-memory types of instructions, it
was possible that an instruction might be
storing into the immediate program area and
particularly into an instruction that had already been fetched by the I unit. To guard
against this, a program store compare cir ...
cuit was designed which compared all in ...
struction fetch addresses against the store
address register in lookahead. 1£ the instruction fetch has not been made yet and it
compares equal, the I unit waits until the
store is complete before resuming. If the
instruction fetch has already been made, an
I-unit recovery must be made and the instructions refetched after the store is completed.
There are three different types of
'addressable memory in the system: internal

transistor registers, index,core storage
registers, and the main external memories.
This presents a problem in the I unit. When
indexing instructions and fetching operands
rapidly, the I unit loads lookahead and fetches
an operand on the cycle following the index
modification cycle. This leaves no time to
decode which type of memory is involved and
to select the correct control sequence. It is
presumed that the address refers to external
memory, and an external fetch is begun. The
decoding is complete before the midpoint of
the fetch cycle. If the presumption proves to
be wrong, the actual fetch can be blocked
and the correct fetch control can be selected
for the next cycle. If the presumption is
correct, the original fetch is completed and
a decode cycle has been saved.
These are just a couple of examples of
the many complexities which faced the design
group in designing the I unit to meet all the
functional, performance, and reliability requirements of Stretch and at the same time
keep the cost to a minimum.
Data Path Organization
The first step in the design of the unit' was
to design a data path system, with a minimum of
hardware, that accomplished all the functions
assigned to it. The next step was to determine
the amount of time-sharing that was possible,
and the amount of concurrency necessary to
achieve the high performance goals desired,
still at minimu~ cost~ Finally, after arriving
at a satisfactory compromise of the first two
points, the system was studied carefully and
checking / correcting circuitry added to obtain
the high degree of reliability desired.
The result was a machine organization as
shown in Figures 3 and 4. Figure 3 is a diagram
of the data paths for the principal part of the 1
unit, and Figure 4 is a diagram of the interrupt
mechanism. The basic I-unit organization consists of six transistor registers, two adder units
with checking, six data paths, two address
busses, and one checker/corrector unit. In
addition, there are indicator and tag storage
positions, a boundary compare unit, a program
store compare unit, lookahead load data transfer
busses, and a leftmost one detector-encoder for
the multiple indexing Load Value with Sum instruction. The interrupt mechanism consists of
two transistor data registers, one unit address
register, and a leftmost one detector-encoder.
These data paths account for approximately 40
per cent of the hardware. The remaining 60

3,03

6.4
per cent is taken up by extensive control logic,
with its associated timing, and decoder circuitry.
The six main registers in the I unit are the
instruction counter register (lCR), the instruction-data word buffer registers (1 Y and 2Y), the
index register (XR), the preparation and execution register (ZR), and the multi-purpose working register (WR).
Instruction Counter (IC)
The IC system was designed to provide the
actual memory address of the instruction currently being executed or prepared for lookahead -in the Z register, and at the same time
fetch succeeding instructions into the Y registers. Since a number (6) of instructions may
be located in the Y and Z registers simultaneously, some means had to be developed to keep
track of the instruction addresses as the instructions proceed througli the I unit. It was
found that we could eliminate the necessity of
multiple IC registers by using the one ICR to
keep track of the instruction being operated on
in the ZR, and using outputs of the ICR or the
IC adder to fetch following instructions.
The ICR contains 21 bit positions, two of
which are parity bits. The two low-order bits
are separated from the seventeen high-order
bits and haV"e their own individual advancing
mechanism to provide the flexibility needed for
advancing by half and full words. The highorder seventeen (0-16) bits feed a plus one, a
parallel, carry propagate adder, which actually provides the (ICR quantity +2> address. By
selecting combinations of ICR and adder outputs, we can obtain four full word addresses:
n, n+ I, n+2, andn+3, wherenis theICR
address. This provides all the lookahead
addresses needed for pre-accessing instructions into the Y-register instruction buffers.
The ICR has a set of in-gates (21) from
the lookahead IC buffer for use in recovery
operations. It also has a set of in-gates frorp.
the index adder out bus for branch operations.
The final set of in-gates is for setting the IC
adder output into the register for a full advance
of the IC system.
Both ICR and the IC adder output can be
gated out to the memory address bus for instruction fetching. The ICR also can be gated to the
index adder in bus A (ABA) for store instruction
counter and branch relative operations. The
ICR has a complete set of ungated output lines
to the lookahead IC input gates for loading the
associated IC address into lookahead along with

the instructions, and for program store testing.
It has a set of ungated output lines to the IC adder, and several special lines to the control
area. Another full set of these lines go to the
maintenance console for indicating the contents
of the IeR and the IC adde r output.
Instruction and Data Buffer Registers (1 Y and 2Y)
To achieve high-speed instruction preparation, particularly floating point instructions, it
was necessary to provide two instruction .buffer
registers. These two registers are identical
and are used alternately for receiving instruction words fetched from memory by the IC. They
are also used for data operands required for the
execution of instructions performed in the I unit.
They each contain 73 positions; 64 data bits, 8
check bits, and 1 memory check bit. The 8
check bit positions may contain error correcting
code (ECC) bits or parity bits. All words in
memory contain error correcting code bits, but
during the checking/correcting operation in the
I unit, the ECC bits in the Y register are replaced with parity bits for checking internal operations. The memory check bit indicates whether or not an error occurred during the memory
access, and, therefore, indicates whether the
word received is valid or not.
The Y registers have two complete sets of
input gates; one from the memory out bus
(IMOB) for memory fetch returns, and one from
the checker out bus (ICOB) for check/ correct
operations and internal word transfers~
Each Y register has a full set of out-gates
to the checker in bus (ICIB), again for checking/
correcting or internal word transferring. Each
also has two sets of half-word (36 bit) gates to
the adder in bus B (ABB) for direct transfer or
arithmetic operation through the index adder.
Four sets of out-gates from the two I fields of
each register permit addressing index storage
via the index address bus (XAB).
Both registers have 73 lines to the maintenance console for indication, plus a number of
ungated lines to the control areas for instruction
predecoding and special memory addresses.
The parity fields are split up across the Y
registers in the following manner:

Po

(0 -

17)

P4

(32 - 49)

PI (18 -

23)

P5

(50 -

55)

P

(24 -

27)

P

(56 -

59)

(28 -

31)

P

(60 -

63)

P

2
3

6
7

304

6.4
These fields were found to be the best combination for effectively handling all the different
word formats encountered in the system.
Index Storage (XS) and Index Register (XR)
The specifications for the Stretch Computer
called for 16 index words located in high-speed
storage. The first approach was to use 16 transistor registers, but this was soon found to be
undesirable for several reasons. One was that
it was extremely expensive, particularly if each
register was to be capable of directly operating
with the index adder to perform all instruction
indexing functions and the execution of all index
arithmetic operations. Another reason was that
the large amount of hardware involved presented
a packaging problem and detracted from the anticipated high performance. It was apparent that
a buffer register would be required, which alone
would have all the required logical capabilities
and would allow each of the 16 index registers to
be transferred into it prior to execution. This
still presented a large and expensive piece of
hardware. The ideal solution was found by providing a compact, high-speed, 16-word, nondestructive-read, core memory for the index
words, with one data register (XR) to read into,
store out of, and perform all the logical operations
required.
The index storage (XS) was 'ac:tually designed
with 17 words of 73 bits each. The seventeenth
word contains the interval timer and the elapsed
time clock for rapid access and advancing of
these values. It is a two-dimensional array
(17 x 73) and has a read-out time of approximately
200 nanoseconds. Total access time including
address gating, transmission, and decoding requires one machine cycle. To store the contents
of the XR into XS requires two cycles. The first
one destructively reads the selected word, thereby resetting it to zeros, and the second cycle
writes the XR contents into the selected row of
cores. The index address is checked during the
decoding. The XR is checked during the following
logical operation for which the index word was
fetched.
The index register was designed with two
principal objectives in mind. One was to provide
the function of a data register for fetching and
storing to/from index storage. The other was to
provide the ability of executing all the full word,
half word, field transfer, and logical operations
required to execute all the I-unit instructions.
The result is that the XR has five sets of ingates and out-gates with many separately controllable fields.

This register contains 73 bit positions including 64 data and 9 parity check bits. Eight of
the check bits correspond to the eight in the Y
registers, and the ninth is the parity on bits 46 49 to provide means of obtaining a parity check
on the index count and refill fields.
The primary input to the XR is directly from
the sense amplifiers of the index storage during
an index fetch operation.
A full set of gates (73)
allow gating from the I-checker out bus straight
into XR for checking and full word transfer operations. Four sets of gates allow gating from
the adder out bus into four different fields of the
XR. These fields are: the 25 bits of XR beginning
at position 0, the 25 bits of XR beginning at position 32, the 18-bit count field beginning at position
28, and the l8-bit refill field beginning at position
46. These gates are all: used in the execution of
various types of index arithmetic instructions.
In addition to these inputs there is a direct reset
of all 73 positions for setting the XR to zero prior
to a read-out of index storage.
The XR has a full set of out-gates (73) to
the checker in bus for checking and full word
transfer operations. It has three sets of partial gates to the adder in bus "A". These provide the ability of gating the value field, the
count field, and the refill field to the adder for
arithmetic ope ration or transfers through the
adder. One set of gates (24-27) to the adder
in bus B provides the ability to check the sign
of the value field during value field operations
in the adde r.
There are three detector circuits connected directly to the XR. These circuits provide
the following indications:
X value less than 0

X count equal to

X value equal to 0

X count equal to 0

X value greater than 0 X refill equal to all l's
These are used to set indicators or modify
execution controls for various operations. In
addition, there are a number of special ungated
outputs of the XR which feed adder true/ complement controls, execution controls, and parity
adjust logic in the parity checker/generators.
A full set of ungated outputs go to the maintenance console for indicator purposes.
Preparation - Execution Register (ZR)
This register is the basic operating register
of the I unit. Every instruction is placed in

305

6.4
this register from the Y registers for indexing.
decoding. execution. and lookahead loading.
It is full word in width to accommodate full word
instructions and to speed up floating point halfword instructions. All full-word instructions
appear straight. left to right in the register.
regardless of how they were received from
me,mory and placed in the Y registers. There
are a large number of output gates on the register because of the many special functions
performed in the register in indexing (normal
and progressive). executing I-unit instructions.
fetching operands. and loading the instructions
into lookahead.
The ZR contains 74 bit positions. including
64 data and ten parity bits. Eight of the ten
parity bits correspond to the standard eight in
the Y and X registers. The other two are for
parity on the channel address field (12 - 18) for
I/O instructions, and the length field (35 - 40)
of VFL instructions. Associated with the ZR
is a small three-bit P register which is used
solely for retaining the progressive indexing
code (bits 32 - 34) during any index modification
of the right half of a VFL instruction.
The only in-gates provided on the ZR are
for gating the adder out bus into various positions of the ZR. There are two sets of these
gates. one for the left half of Z and the other
for the right half. These gates have split control to provide for partial gating. This takes
care of all the in-gating required by instruction
transfers from Y to Z, plus all arithmetic result gating into Z.
The out-gating of the ZR is more extensive
and complicated. There are two sets of outgates for gating the left half or the right half of
Z to the adder in bus B for arithmetic operations
on the left or right operand addresses. There
is a separate gate for gating the length field
(35 - 40) to the adder in bus A for word boundary cross-over test. and a separate gate for
sending the immediate count (50 - 55) in transmit instructions to the W register for counting
purposes. There are two sets of out-gates provided for gating the left (0-17) or right (32 -49)
operand address to the memory address bus for
operand fetches. There are five sets of gates
for gating the left or right operand address. the
left or right J field (index operand in index instructions). and the left I field (index address
for index modification) to the index address bus.
These permit fetching of index word operands
and the index fetch for the delayed modification
of the left half of Z.
There also is a set of ten out-gates to the
checker in bus for rearrangement of fields for

loading instructions into 100kahead. These also
have split control for selecting the width of the
fields.
In addition to the in and out-gates. the ZR
has 41 positions line driven to the control area
for operation and memory area decoding. As in
the case of all the registers. all positions of the
ZR have an ungated line to the maintenance console for indicator purposes.

Working Register (WR)
This register is only 19 positions long (including one parity). It is used primarily for
operand address storage. and secondarily as the
counting register for transmission type instructions which cross memory word boundaries. for
multiple indexing address decoding. and for automatic refill and interrupt address operations.
In transmIt operations the direct or immediate
count field is placed in the W register for counting purposes. while the from and to operand addresses remain in Z for the fetching. storing,
and stepping operations.
The WR has three in-gates: one from the
adder out bus for transfer and arithmetic operations. one from the maintenance console keys
for manual insertion of an address. and one from
the interrupt bit address encoder for automatic
interrupt operations.
The WR has three out-gates: one to the adder in bus A for arithmetic operations such as
counting. one to the memory address bus for
word boundary crossover and refill fetches. and
one to the index address bus for index fetches.
Ungated outputs of the WR feed a leftmost
one detect logical unit for multiple indexing address decoding. The output of the detect circuit
feeds an address encoder. the output of which
is set into a five-bit register called the geometric
load address register (GLAR). The detect and
encoder logic is checked.
Ungated outputs of the WR also feed various
decoder circuits for determining special address
and contents equal to one conditions. The output
of the leftmost one detector (LMOD) feeds the
adder in bus B for resetting the current multiple
indexing address bit in WR by a subtract operation through the index adde r . The output of the
GLAR feeds the index address bus for index
fetching during the Load Value with Sum execution.
All 19 positions of the WR and five positions of
the GLAR go to the maintenance console for indicator purposes.

306

6.4
Index Adder Unit (IAU)
The specifications for the I unit called for
arithmetic operations on fields up to 24· positions wide. High performance required a parallel adder of advanced design with a minimum
of logical levels. In order to guarantee complete reliability, it had to be thoroughly checked. Since the many operations of the I unit required all the registers to be capable of feeding
the adder, it was found that the transfer and
adder paths could be combined and time-shared
to provide the most economical and yet completely checked system. This was accomplished
by providing an eight-bit bypass path around
the 24-bit adder to permit half-word {32-bit}
transfers. A further study indicated that the
best performance could be gained by providing
a controlled complementer on one input, with
automatic re -complementing ability on the output. The basic 24-bit parallel adder was broken up into six four-bit blocks with parallel
carry lookahead and carry propagate detect
logic for each. Garries from block to block
and end-around carries are detected early and
propagated through. The 24-bit add or subtract is accomplished in five logical levels.
Input checking is accomplished by comparing
input parities with the half sum parity. and the
rest of the adder is checked by a. carry prediction checking method.
Standard I-unit parity is generated on the
output in parallel with special memory address
decoding. The bypass eight positions are parity
checked and passed through to the output bus.
The output is completely latched at sample
time to prevent race conditions through 'the ungated paths when gating the result back into one
of the input registers.
The adder in bus A (ABA) has a complementer on the input and is accomplished in the same
logical level that does the ~Ringo The inputs to
ABA are the IG, WR, XR, and ZR. Th,e ABB
is not complemented and the inputs come fro'm
the YR's, the LMOD, and the ZR. In-addition,
there are numerous lines to control the complementing, re-complementing, and pa·rity adjustments for various fields and operations.
The adder out bus (IAOB) has 32 data bit positions plus 11 parity bit positions for selection,
depending upon the fields involved. The IAOB
feeds the left and right halves of the ZR, the
left and right halves, count, and refill fields of
the XR, the WR, and the IGR.
The I Ghecke r
One of the earliest requirements of the
Stretch system was for automatic error correc-

tion of memory words. The method adopted
was that of using the Hamming 6 error-correcting code (EGG) which required eight EGG bits
with a 64-bit data word. In the I unit it was
necessary to be able to check and correct memory words (instruction and operands) and convert
to the I-unit parity system. It was also necessary
to provide a full word transfer bus for highspeed transfer operations in executing many of
the I-unit instructions. It was found that these
two operations could share equipment by combining the transfer bus with the full word EGG
checking/ correcting and parity checking/ generating logic. It was also found that the EGG
checking/ correcting operation on instructions
could be overlapped with the initial pre -decoding
required on the new instructions when they are
received in the Y registers.
Lookahead had a similar problem with EGC
checking/ correcting and parity checking/ generating on operands fetched to lookahead by the
I unit, and in storing result operands to memory.
A study of the two units showed that one I
checker unit could be time -shared between the
I unit and lookahead, provided a fast priority
system could be designed to guarantee little
loss in performance. This was done and the result is a single I checker with separate I checker
in busses from the I unit and lookahead OR'd at
the input to the checker. The checker out bus
(IGOB) is a 64-bit data bus plus 29 parity and
EGG lines for selection by the controlling unit
for the proper parity or EGG bits for the receiving register. This bus feeds the four lookahead levels· first and then the XR and the 2Y re·
gisters. The output of the checker is completely latched at sample tim~ to prevent race conditions through the ungated paths while gating the
result into the receiving register.
Interrupt Mechanism
Figure 2 shows a block diagram of the interrupt mechanism. It consists of a 64-position
indicator register (IR). a 28-position ma.sk register, and a leftmost one detect and encoder
circuit.
The indicator register has two inputs; one
from '.:he arithmetic checker out bus (AGOB),
and the other, the individual turn-on line from
each indicator's particular logical area. These
logical areas include the I unit, the VFL and FP
execution units, lookahead, exchange, and
memory. There is no parity on the contents of
this register because it is continually changing,
due to the many asynchronous inputs. The only
out-gate on the IR is to the arithmetic checker
in bus (AGIB) and is used for transferring the
contents of the register to another location.

307
6.4
Similarly, the input gate from AGOB is for
bringing in a new word to the IR. Ungated outputs from a portion of the register feed the updated indicator register in the I unit for recovery purposes. A full set of ungated outputs feed
the leftmost one detector and the maintenance
console.
The mask register has an input only from
the ACOB for bringing in a new mask word. It
also can be gated to the AGIB for storing purposes, and has ungated outputs to the leftmost
one detector and maintenance console. Logically, the first 20 positions (0 - 19) of the mask
register are always one, and the last 16 positions (48 - 63) are always zero. They are
fixed and are not programmable. There are
four parity bits associated with the mask register positions 21 - 47, and they conform to
the parity flelds of the arithmetic bus and
checker.
The leftmost one detect circuit has two
functions; one to test rapidly for any match
between an indicator position and its associated mask bit, the other to determine, in the
case of multiple matches, which one has higher
priority. Priority is established from left to
right (0 - 63), and the match with highest
priority blocks the remaining ones f:tom being
effective. The test for any match is done in
only a few levels by ORing all the compare
And circuits, and signalling an interrupt if the
mechanism is enabled. The enabling/disabling
is controlled by a single trigger which is set
on/ off by programming. Once an interrupt is
signalled, the leftmost one detect logic is
allowed time to establish priority, to encode
the matching pair of indicator and mask bits
into the register bit address of the particular
indicator, and set it into the' WR. The bit
address is a six-bit address plus one parity
bit.
Included in this logical area is a seven-bit
channel address register which is used to hold
the address of the I/O unit which sets I/O status
bits into the indicator register. This register
may be set by either the basic or high-speed
exchanges and includes two parity bits.- It can
be gated to the AGIB (positions 12-18) for transfer purposes.
Also designed for this area but not packaged
was the other GPU e1."egister. This register of
19 positions is used for systems involving more
than one computer. It can be gated out to the
ACIB and gated in from IGOB for transfer purposes. There are four parity bits associated

with the 19-bit field to conform with the arithmetic bus and checker requirements.
Updated Index Indicator Register (UXIR)
There are eight triggers in the I unit which
contain the status of the index register involved
in the most recent index arithmetic instruction
executed by the I unit. These indicators differ
from the status of the corresponding main indicator register triggers by the effect of the index arithmetic instructions which have been
executed by the I unit but whose result indicators are still in lookahead awaiting transfer to
the indicator register in proper instruction
sequence-hence, the term'updated indicators".
This UXIR is used to test for conditional
branches on these indicators.
A listing of the indicators contained in the
updated indicator register is as follows:
1.
2.
3.
4.
5.
6.
7.
8.

Index
Index
Index
Index
Index
Index
Index
Index

low - XL
equal - XE
high - XH
count zero - XGZ
value less than zero - XVLZ
value zero - XVZ
value greater than zero - XVGZ
flag - XF

Indicator and Address Tag Triggers
Due to the multiplicity of instructions that
are contained in and being operated on simultaneously in the I unit, it is necessary to tag
(store with the particular instruction) each instruction with identifying informati.on regarding
certain conditions which may arise during its
processing. Examples of these conditions are
memory and ECG checks on new instructions,
parity checks on instruction transfers from Y
to Z, and type of memory address decoded
during ,the transfer through the index adder.
These triggers are located for the most part in
the control area, so that they can immediately
condition the control trigger outputs of the
following cycle. There are some 26 triggers
of this nature in the control area of the I unit.
These include the following:
A.

Y Register Tags

1.
2.
3.
4.
5.
6.

1Y
2Y
IY
2Y
1Y
2Y

instruction fetch indicator
instruction fetch indicator
operand address invalid
operand address invalid
identifiable check
identifiable check

lYlF
2YIF
lYAD
2YAD
lYIDG
2YIDG

308
6.4
7.
8.

1 Y memory check
2Y memory check

B.

Z Register Tags

1.

Z left operand address -special (0':'15)

2.
3.
4.
5.

12.
13.
14.

Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z

C.

W Register Tags

1.

2.
3.

W operand address-special (0-15)
W operand address-index (16-31)
W operand address nonexistent

D.

General

1.

I unit contains non-identifiable check

6.
7.
8.

9.
10.

ll.

left operand address -index (16-31)
left operand address-nonexistent
right ope rand addre s s - s pe cia1 (0 -15)
right operand address-inde~ (16-31)
right operand address -nonexistent
left instruction fetch indicator
right instruction fetch indicator
left operand address invalid
right operand address invalid
left contains identifiable check
right contains identifiable check
contains data store condition
contains data fetch condition

1YMC
2Y1v.tC

ZLSA
ZLXA
ZLNA
ZRSA
ZRXA
ZRNA
ZLIF
ZRIF
ZLAD
ZRAD
ZLIDC
ZRIDC
ZDS
ZDF

WSA

WXA
WNA

NIDC

Control Orsanization
The remaining hardware in the I unit is
taken up by an extensive and complex system
which controls the flow of instructions and operands in the data paths previously described, in
many different combinations of simultaneous and
asychronous operations. The system consists
primarily of many control triggers, commonly
referred to as control stages or sequencers,
plus their input and output switching logic and
ORing of control lines to the data paths. Also
adding to the hardware is the extensive decoder
logic required to determine which operation and
variation is called for in instruction preparation
and execution. Associated with the control is a
considerable amount of powering circuitry for the
distribution of the clock pulses in each control
area. These clock pulses originate at the computer master clock and are distributed to various units using delay line techniques for skew
minimization. The data paths and control were
designed to operate with a 4 megacycle clock and
at present are operating at a 3.3 megacycle rate.
The I-unit controls operate at half the master
clock frequency.
The controls are divided logically into the
following categories:

1. Instruction cou.nter
2. Instruction preparation
3. Lookahead loading
4. Instruction execution
5. Miscellaneous
IC Controls
The instruction counter controls consist of
eight control stages for sequencing the operation of fetching instructions to the Y registers,
checking I correcting them through the I checke:r,
and advancing the IC :register. There are thirteen supervisory control storage triggers to condition the control stages as to whether a fetch is
in progress (outstanding), lY or 2Y is empty, ZL
or ZR is empty, a branch to lY of 2Y is required,
or a recovery is required. Six tag triggers indicate whether there are any checks, instruction
fetch alarms, or invalid addresses assoclated
with the instructions in the Y registers. There
are eight block and suspend triggers for ins.taneously interrupting the normal IC operation to
allow the I-unit instruction execution controls the
use of the Y registers.
These controls essentially attempt to keep
the Y registers filled with new and checked instructions. They signal the preparation controls
whenever Y register data is ready for transfer
to Z. In branch and recovery operations, the IC
controls are designed for rapid resetting and restarting at the new address in order to minimize
the time required to refill the Y regiSters.
These controls time share the I checker and
the memory address bus with other controls.
They operate simultaneously with the preparation and lookahead load controls as long as no
interlock occurs to indicate that no YR is empty,
an I unit instruction requires execution, or an
interrupt is required.
Preparation Controls
The preparation controls consist of eight
control sequencers which control the preparation of all instructions for the computer. This
preparation involves the transfer of instructions
from the YR' s to the ZR. the index fetching and
address modification if required, and the word
boundary crossover test for VFL instructions.
In addition to the sequencers, there are six
supervisory type control triggers which condition
the selection of the right or left half of the
current YR and the corresponding half of the ZR.
Instruction pre-decoding as to type of instruction and indexing requirements is stored in
eleven supervisory control triggers. There are
eight additional tag triggers associated with the

309

6.4
two halves of the ZR to indicate the class of
floating point instruction in Z, so that the lookahead load controls can rapidly take over and
load lookahead without a delay for decoding
purposes.
These controls signal the IC controls when
a YR is empty, and signal the lookahead load
controls or I-unit execution controls when the ZR
has a prepared instruction. These contro Is are
a completely independent set of hardware and
operate simultaneously with the IC and lookahead load controls. Their function is basically
to empty the YR I S and prepare and fill the ZR as
rapidly as possible. to insure a high rate of instruction flow through the computer.

Instruction Execution Controls
To execute the large number of I-unit instructions in all their variations required the
design of a large control system. The instructions were categorized by type and then divided
into logical operations and analyzed for maximum sharing of common controls. Circuit
limitations and packaging rules often prevented
sharing as much as was desired. As the control
logic grew, it became necessary to package it in
two frames instead of one, which, in turn,
created a communication problem in critically
timed areas. In order to keep the number of
logical levels to a minimum, it was necessary
to design a large amount of parallel logic into
and out of each control stage.

Lookahead Load Controls
The lookahead load controls consist of fourteen sequencers which control the loading into
lookahead of all I/O, VFL, and FP instructions.
Five of these deal solely with the loading of
VFL instructions and are in the form of a fivestage execution timer. Every VFL load begins
with the first stage and may then step to anyone
of the remaining four, so that every VFL instruction requires anywhere from two to five
steps. Each sequencer loads a different look ..
ahead level so that a VFL instruction may occupy
two to five levels. 1£ an operand address refers
to an index address, the basic sequence is broken
out of in order to fetch the index word by means
of a common index fetch sequencer, and then
control is returned to the VFL load sequence"!",::.
There are two complete sets of our FP load
sequencers for each half of the ZR. This was
necessary to guarantee the fast switching and
loading from the two halves of Z required to
achieve the high FP performance. Each set of
four FP sequencers controls the loading of onelevel or two-level FP instructions, depending
upon whether one or two operands are involved,
and it controls the actual fetching of the operands from external memory, index storage, or
internal registers. The majority of FP instructions require only one control step in which the
operand is fetched from main memory at the same
time that the FP instruction is loaded into the
single lookahead level.
While this loading is being executed, the IC
and the preparation controls rna y be simultaneously operating to maintain the instruction rate.
The lookahead load controls signal the preparation controls when an instruction is completely
loaded and the instruction in the ZR can be rep laced with a new one.

The instruction set was divided into four
categories: index arithmetic, branch. transmit.
and miscellaneous operations. Each group was
worked on separately. and the control sequences
and logic required were designed. These controls were then compared for similarities.
and wherever possible. common control logic
was combined. The result was that sixty-one
control sequencers and nine supervisory
triggers. plus an operation decoder. were required to execute the instructions in satisfactory
performance times. These controls provide for
fetching and checking operands from memory
(main memory, index storage, or internal registers), index adder logical operations, partial and
full word transfer, checking operations, and the
loading of lookahead with a large variety of operation codes and indicators. Most of these
operations have a large number of input and output conditions whose combinations can cause each
operation to be performed in a wide variety of
ways. Other requirements of these controls were
that they be able to stop immediately on errors,
be recoverable in case of instruction suppressing
and interrupt conditions, and be able to manually
step a cycle at a time. Every control stage has
a line to the maintenance conso Ie for indication.
Miscellaneous Controls
These controls are used primarily in the
execution of the manual operations and the
special recovery routines. They consist mostly
of supervisory control triggers which initiate,
condition, and terminat e control sequences
which perform the desired functions. The actual
operations within the sequences are controlled by
sequencers in the instruction execution area,
and are shared for this purpose. For this reason
the execution operation decoder must be blocked
so as not to affect the stepping of the sequences
for these special operations. Some special con-

310
6.4
trol functions also taken care of in this area are:
a store wait control when lookahead contains a
store to XS, or the indicator or mask registers;
time clock operation triggers; and I unit recovery
because of program store test. Some of these
special functions are very critically timed, since
they must block normal operation immediately,
or it will be too late and unrecoverable damage
may be done. These controls are packaged in the
IC control area so as to minimize the communication delay of the interlocks.
Performance Characteristics
Since the Stretch computer was originally
contracted for by the Los Alamos Atomic Ene rgy
Commission, certain of its performance goals
were particularly important to the customer. Of
primary importance was the complete floating
point operation, including the instruction fetching, preparation, operand fetching, and actual
execution. In the branch instruction, the Count
and Branch instruction was to be used extensively for controlling the many iterative program
loops characteristic of scientific computing. The
variable field length operation was desirable and
attractive but its performance need not be, nor
could it be economically, as high as FP. The
index arithmetic instructions were all very important.
The manner in which the Instruction unit
achieves the desired performance goals in these
areas wi 11 follow. These examples are chosen
because of their special importance in scientific
computing, and one should not infer that all the
remaining operations were not important or not
at a comparable performance level. The high
overall performance goals of Stretch required
that all the operations be executed in a much
more powerful manner than any previous
machine.
Floating Point Instruction Preparation
A timing diagram showing the preparation
of continuous FP instructions is shown in Figure
5. The preparation includes the fetching of instruction words from 2 usec memory, the ECC
checking of the instruction, the Y to Z transfer
and index fetch, the address modification, and
finally the operand fetch and lookahead load. It
can be seen how successive instruction fetches,
preparations, and lookahead loads are overlapped to achieve a performance goal of one FP
instruction every two cycles. Each instruction
is assumed to require indexing. If this were not
the case, then instantaneous rates would reach
one FP instruction every cycle, but the average
rate would still remain at one per two cycles.

This is because the maximum rate of instruction
fetches is balanced with the maximum indexing
rate and lookahead rates.
The diagram starts out by assuming a startup operation (either program start or recovery
operation) where two rapid fetches are made by
the IC to the Y registers. When the words are
received from memory, they are immediately
checked; if there are no errors, an extra
correct cycle is not required.
During
the check cycle, the ECC is converted to
parity and the preparation controls pre -decode
the type of instruction. In this case each word
contains two FP instructions. The next cycle
is the transfer from the left half of I Y to the
right half of Z. The criss-crossing of halfword locations was adopted as the simplest
way of handling the different combinations of
full-word and half-word instructions that can
occur. During this transfer, any addressed
index word is fetched into the XR. Assuming each instruction is to be indexed, the
next cycle is the actual address modification,
where the index value in X is added to the operand address in ZR through the index adde'r and
the result replaces the original operand address.
These last two cycles tied up the lAU, so the
next instruction in 1 YR waited. The first instruction is now ready for loading into lookahead and fetching of the operand. With the lAU
not busy, we can also transfer the next instruction to ZL and fetch its index word. The operand fetch would be initiated were it not for the
1 YR-ZL transfer emptying the 1 Y register.
The Ie controls anticipate this and try to fetch'
the next instruction word (IC + 3) into it. This
conflicts with the operand fetch of the lookahead
load cycle, but since -the IC controls have
priority, the IC fetch is made simultaneously
with the 1 YR transfer to Z and the index fetch.
The lookahead load cycle is blocked during this
cycle and completes the operand fetch and the
load operation on the following cycle, overlapped with the modification of the second instruction. This early instruction fetch
guarantees that the 1 Y register will be filled
and checked by the time the 2Y register is
emptied. In this manner the flow of instructions can be maintained. The degree of simultaneity in the I unit is best illustrated by the
cycle with the single asterisk (*) which shows
an instruction fetch to 2Y, a check cycle on 1 Y,
a 2YR transfer to Z, an index fetch, and an
attempted lookahead load, all occurring at the
same time.
The high degree of overlapped operation in
the computer is best shown by the last cycle
(**). In this cycle the following operations are

311

6.4
occurring simultaneously:

1.
2.

3.
4.
5.
6.
7.

8.

Instruction 1 is being executed and
checked.
Instruction 2 is being transferred from
LA to the PAU.
Three of the 4 LA levels are loaded
with instructions 2, 3, and 4.,
Instruction 5 is ready to be loaded and
its operand fetched.
Instruction 6 is being transferred from
lYR to ZL.
The index word required by instruction
6 is being fetched.
Instructions 7 and 8 are being ECC
checked in the I checker and being predecoded.
The IC is fetching the 5th instruction
full word containing ins tructions 9 and
10.

This is but one variation of FP preparation. Other variations develop when the operand address refers to index storage or an
internal register, or where a second operand
is implied, as in Multiply Cumulative and Load
Cumulative Multiplicand, or when different
types of instructions are intermingled with the
FP ins tructions .
The diagram not only indicates how one
performance goal is achieved, but also indicates
the large amount of control complexity required
to efficiently interlock and execute this I-unit
instruction preparation function. It further illustrates how complete overlap of instruction
fetching, indexing, and lookahead loading is
achieved.
VFL Instruction Preparation
The preparation of a variable field length
instruction is shown in the timing diagram of
Figure 6. Starting at the same point as Figure
5, it shows the sequence when the second instruction is a full word VFL instruction located
across memory word boundaries. In this case
the left half of the first instruction word fetched
is an FP instruction, and the right half is the
left half of the VFL instruction. The left half
of the second instruction word fetched contains
the right half of the VFL instruction, while the
right half of this word contains another FP instruction.
The first instruction is processed exactly
the same as in the previous example. Notice
that this time when the right half of 1 Y is transferred to Z left, the eventual correct alignment
of the full-word instruction in Z is provided for.

Again, any index word addressed by the half
word in 1 YR is fetched into the XR. Before proceeding into the modification cycle, however,
the type of indexing called for. normal or progressive, mus't be determined. This information
is contained in the right half of the instruction,
and is not available until the 2Y register has
been filled, checked, and pre-decoded. In the
example, this is completed by the end of the
1 YR to ZL transfer, so no wait is required.
Assuming normal indexing, the next cycle is
the modification cycle for the left half. If progressive indexing (PX) had been specified, a
much different sequence would have been required, and the operation would be done in two
steps. The first one would replace the VFL
operand address with the value field of the index word, and the instruction preparation would
continue on and be loaded into lookahead. Following the lookahead loading, a control sequence
would be entered where the increment, count,
and refill operations on the index word, if
called for, would be executed. The results of
this operation would then be loaded into lookahead as the second of PX operations.
After normal modification of the left of the
VFL instruction, the right half is transferred
from 2YL to ZR and its index fetch executed.
The next cycle then modifie s the right haif of
the instruction. The indexing and instruction
operation codes are preserved during the modification. The next step is to determine whether
one or two memory words are required to obtain the operand field. The operand field can
start at any bit position in a memory word and
extend into the next memory word as long as
the total field length is 64 bits or less. The
word boundary crossover test (WBC) is done by
adding, in the index adder, the length field to
the full 24-bit operand address field. If a carry
into position 17 of the operand address field
occurs, then the instruction operand does, in
fact, cross memory word boundaries. The highorder 18 bits of the result are gated into the WR,
and this is actually the operand address for the
second memory word.
This completes the preparation, and all
that is left is to load the instruction into lookahead and fetch the operands. In this case
three cycles are required. The first loads the
instruction operation information into one
lookahead level. Since the data field is used
for part of the instruction information, no
fetched operand can accompany this level. The
next two cycles are for fetching the two operands
of the instruction into two more levels of
lookahead. The number of cycles required to
load VFL type instructions varies from two to

312
6.4
five, depending on whether the instruction requires one or two operands, whether it is a
fetch or a store to memory type of instruction,
and whether any special registers are implied
in addition to the operand addres s.
Having successfully loaded the instruction,
the next half word FP instruction can be transferred from 2YR to ZL and the normal FP prepara tion continued.
The dia.gram shows that the VFL instruction in this case took eight cycles as compared
to two cycles for a normal FP. If the instruction had no indexing specified and only one
operand memory word was required, the operation would have only taken five cycles. Again,
there are many variations of these instructions,
depending on the type of indexing required,
whether the instruction arrives straight or
across memory words, whether the operands
are in XS, EM, or IR, and whether it is a store
to memory operation or not.
Count and Branch Execution
The execution sequence for a Count and
Branch (CB) instruction is shown in Figure 7.
Assuming a continuation of the FP preparation
of Figure 6, the fifth instruction is defined as
a CB instruction. In the example, it is assumed
that the instruction requires indexing, and therefore, it is possible to overlap the operation decoding with the modification cycle. Otherwise,
it would have been necessary to take a separate
decode cycle. Once decoded, the operation
enters an execution sequence controlled by the
decoder outputs and conditions arising out of
the individual operations. The first cycle is a
fetch of the index word, whose count field determines whether the branch is successful or
not. The next cycle, the fetch of the branch
address instruction, is initiated, and at the same
time the count field of the index word in the XR
is decoded for a XC = I condition. If the condition for branching exists, the fetch is completed;
if the condition does not exist, the fetch is
blocked. This permits as rapid a fetch of the
next instruction as possible, in order to begin
filling up the Y registers with the new sequence
of instructions. Overlapped with the instruction fetch is the loading into a lookahead level
of the index word before modification. This is
referred to as a psuedo-stol"e level, and is only
used in recovery operations where the index
registers have to restore to some previous
level as a result of an interrupt or no-op condition. The next cycle is the actual counting down
through the index adde r of the count field of the
index word in the XR. After this is done, the

value field can then be advanced or diminished
'J:>yone or one-half, if called for by the instruction. This is also done through the index adder.
At the same time, the advanced IC value (address
of the instructions following the CB) is loaded
into the same lookahead level as the psuedostore. This is done because the next cycle destroys the IC contents by transferring into it
the branch address from Z. If a no-op of this
instruction is required, the I unit can continue
straight on in the program. After the advance/
diminish cycle, the updated index word is returned to XS. This is done by a clear cycle for
resetting the word during the same cycle that
transfers the branch address into the IC, and
then following with a store cycle which sets the
contents of the XR into the previously reset
word in the array. To complete the operation,
all indicators associated with this instruction
and the new IC value are loaded into lookahead
to be tested later in proper instruction sequence
for an interrupt. If a condition occurs which
will no-op the instruction, then the new IC field
is not loaded, only the indicators and a no-op
tag. This will cause any branching already done
to be cancelled by a recovery operation later.
Since the instruction branched to was
fetched early in the operation, the new instruction word has arrived and has been checked by
the time the CB instruction is completelyexecuted. Immediately the normal instruction
preparation is restarted, and in this case, the
branched to FP instruction is loaded into lookahead four cycles later.
The entire execution of the instruction
took six cycles and was overlapped with the
operand fetch, ECC check, and execution of
instruction 1. In other words, it took ten
cycles from the completion of one instruction
in the program to branch to another program
location and prepare and load the first new FP
ins truction into lookahead.
Variations of this instruction execution sequence occur with respect to the branch condition being 0 or not 0, the advance/diminish
modifiers, and the setting of indicators that may
cause a no-op or interrupt. In addition, there
are other instructions in the same category
which are more complicated and time-consuming. These include the Store Instruction Counter if Count and Branch (SIC - CB), the Count,
Branch, and Refill (CBR), and the SIC-CBR
variations.
Summary
The instruction unit is a large com.plex,
high-speed com.puter unit designed and built to

313
6.4
provide the major functional ability and control
for the Stretch Computer. A complete description of the major functional requirements is
given along with some examples of the difficulties encountered. The machine organization,
including data paths and controls, is described,
and many of the primary design considerations
are discussed. The complexity and size of the
unit are largely determined by the instruction
buffering, fast access index registers, the extensive overlapping and simultarleity of operations, and the innumerable combinations and
variations of instruction sequences that have to
be controlled. "The control is achieved by a
synchronous clock controlled network of variable sequence execution control stages. The
performance is shown for a few typical and
particularly important operations.

de sign of the data paths.
The overall engineering effort was under the
supervision of Messrs. E. Bloch and R. E.
Merwin.
References

1.

Erich Bloch, "The Engineering Design of
the Stretch Computer, '1 Eastern Joint
Computer Conference Proceedings,
December, 1959.

2.

S. W. Dunwell, "Design Objectives for the
IBM Stretch Computer, " Eastern Joint
Computer Conference Proceedings,
December, 1956, p. 20.

3.

W. Buchholz, "Selection of an Instruction
Language, "Western Joint Computer
Conference Proceedings, May, 1958, p.128.

4.

F. P. Brooks, Jr., "A Program-Cont:rolled.
Program Interruption System, "Eastern
Joint Computer Conference Proceedings,
December, 1957, p. 128.

5.

G. A. Blaauw, "Indexing and Control-Word
Techniques, It IBM Journal of Research and
Development, July, 1959.

6.

R.. W. Hamming, "Error Correcting and
Error Detecting Codes, " Bell System
Technical Journal, 1950, pp. 29, 147.

Acknowledgments
To give individual credit to the many people who
have contributed to the design of the instruction
unit would be impossible. However, major des~gn contributions were made by the following
individuals: Mr. S. F. Anderson for the index
adder and branch instruction execution controls,
Mr. L. L. Headrick for the interrupt mechanism, index arithmetic, and transmit inst:ruction
execution controls; Mr. C. R. Holleran for the
IC system and lookahead load controls;
Mr. S. L. Lindauer for a
portion of the data
paths and the instruction preparation controls;
and Mr. L. F. Winter for his assistance in the

0'1 W
.......
,j::o.,j::o.

16K WORDS- 2 MICROSECOND MEMORIES

2 INTERLEAVED

4 INTERLEAVED

INST
MEM

INST
MEM

OPND
MEM

OPND
MEM

OPND
MEM

OPND
MEM

t_

-1

t

•

t

t

•

•
l

•

•

...
.oil

•

j

MEM BUS CNTL UNIT

____- - - - - - ' f f

•
DISK
HS
EXCHANGE

•
~

I AOIPTI
PARALLEL
DISK
FILE

tl....-_ _ _---,

•

~

BASIC
~

I/O

..

CENTRAL COMPUTER

.oil

r-

EXCHANGE

t

1

f

ADAPT

ADAPT

•

I

•

•

AO;PT
•

ICONSOLEII CD RDR II CD PUN

I IAO;PT I IAO~PT I IAO~T I
•

II PRINTER II

Fig. 1. The Stretch System.

•

•

TAPES

II TAPES I

729 12:

MULTIPLE MEMORIES

.I
BASIC ~
EXCHANGE

~

DISK
\4
EXCHANGE

.1

•

..-r'

•

•
MEMORY BUS

CONTROL UNIT
~

.

MEMORY OUT BUS

......

INST REG I
INST REG 2
INDEX
REGS INSTRUCTION UNIT

MEMORY IN BUS

LEVEL I
LEVEL 2
LEVEL 3

.-

•
INDS/CNTL

LOAD

LEVEL 4
LOOKAHEAD

SERIAL ARITHMETIC
UNIT
(VFL)
____________
_

t---+

ARITHMETIC REGS. t---+
STORE I

INDS/CNTL

BUS ,AND CHECKERS
1- - - - - - - - - - - - -

--+t PARALLEL ARITHMETIC t---+
UNIT

( FP)
BASIC EXCHANGE

D~K E~HANGE

•

•

~~TERRUPTM~HAMSM~~~~~~~IN=D~S~/~CN~T~L~~~~~~~~~

Fig. 2a. The Stretch Computer Central Processing Unit.

0\'-"
.......
"'" C.J1

0\ W
•

I-'

"""0\

MAINTENANCE CONSOLE

MEMORY BUS CONTROL
UNIT

INSTRUCTION UNIT

LOOKAHEAD SAU

I

PAU

ARITH. REGS. 8 CHECKER

Fig. 2b. The Stretch Computer Central Processing Unit.

TO LOOKAHEAD

MEMORY OUT BUS (64)

..

,

'\
f

...

FROM LOOK AHEAD
A

,\

....

4~~

INDEX
REGS. (16)
~~

I

."

V

~r

IYR
(64)

ICR
(19)

•

j'

2YR
(64)

~

IC
ADV (19)

~

~,

XR
(64)
INDEX ADR

ADDER

"
~r

~,

~,

~,

,
U

"

n

INDEX
ADDER
(24-32)

v

a
~

,BUS A

a

4~

"
~,

CHECKER I N BU~,

"

I
CHECKER
(64)

~,

"

ADDER BUS B

...
...

~

WR
(18)

!

MEM ADR BUS

~,

.

ADDER OUT BUS

ZR
(64)
BUS

TO LA

CHECKER OUT BUS

-

-

~,

~

TO MBCU~

~,

~,

...

JIll .

....

.....

FROM ....
LA

J
.~

\

J

"

v

LA LOAD

~,

......

H

OPERATION
DECODER

--..

Fig. 3. Instruction Unit.

INSTRUCTION PREP
EXEC CONTROLS

"'w
.......
~-...1

ARITHMETIC CHECKER OUT BUS (64)

O\W

•

I-'

~oo

HIGH SPEED EXCHANGE (7)
BASIC EXCHANGE (7)
MEMORIES (I)
EXCHANGES (9)

I

UNIT (5)

ARITH EXEC (24)
LOOKAHEAD (15)

++++++

•

INDICATOR REGISTER
(6'4)

MASK REGISTER
(28)

•

•

•

•

•

• •

OTHER CPU
REG (19)

UNIT ADR
REG (7)

•

•

ARITHMETIC CHECKER IN BUS (64)

LEFT MOST ONE
DETECT

•
INTERRUPT DETECT
AND BIT ADR ENC

Fig. 4. Interrupt Mechanism.

INTERRUPT ADDRESS TO I

UNIT (6)

-.

MAS

IF-IY
t - - -...., .......

,

IF-2Y

...... ...........--... ..... ....... .....
...... .......

I CHKR

...... ......

-

I

I

....

IY.. ,Y................. 2Y-2Y
...... I CHK~
.... ICHKa'
DEC
DEC

-

I

...... - -

1<:......

I

...... ......

IY -IY
........,
I

1

XS

XF/IYL
1

I

.........

..........

I

,

XF/IYR
I
I

XF/2YL
I
I

XF/2YR
I
I

XFIIYL
I
I

XFIIYR
I
1

ZR-LA
t----I

ZL-LA
1
I

1--- I .

ZR-LA

ZL-LA
I
I

ZR-LA
1----1

I

I

I

I

,

I

I

I
I

FP2

I

FP 3

LA#3

I
I

J

IFP 4

LA#4

L---_-,

LAI-E

LA .-. E

1

I

EACH FP I NST. INDEXED

I

I

FP1

LA#2

ASSUMPTION;

2Y-2Y
...... -1
I

I

LA#I

EXEC.

IF-IY

IYL- ZR MOD ZR IYR-ZL MOD ZL 2YL-ZR MOD ZL 2YR-ZL MOD ZL IYL-ZR MOD ZR IYR -ZL

IAU

LALD

IF- 2Y OF-LA30F-LA4

I....... ...... I
............

**

*

IF- IY OF-LA, OF-LA2

ILA2I

E
I

EI
. I

I

L

1

4 FP INSTRUCTIONS
8 CYCLES
FP RATE = 1/2 CYCLES

Fig. 5. Floating Point Instruction Preparation.

."'w..~

\0

O\W
•

t-;)

~o

MAB
I CHKR

IF-IV
t - - -.....I.....

IF-2Y

..... .....
..... .....

I.....

..... .....

........

IF-IYOF-LA I
I
,_
I

...... ..... ,

..... ......
.....

IV-IY ..... .....
2Y-2Y
--I
+ I
........ I
+ I
CHK
CHK
DEC
DEC

I

.....

.......... _

I

I

XS

XF/IYL
I
I

I

I

I

XF/IYR
I
I

1

I

2YR-ZL

I

XF/2YR
I
I

XF/2YL
I
I

ZR-LA

.

LALD2LALD3LALD4

.I

... - - - .....
I---t

I

.I

1

FP 1

VFLII

I
VFLI

I
I

LA- E
EXEC.

1

I

LA#-2

LA#4

IVFLI

I
I

LAI- E
I
I

I

I

I

EI

I

L
ASSUMPTION S t
I. VFL I NST. ACROSS MEM. WOo BOUNDS
2. NORMAL INDEX BOTH HALVES.
~ TWO OPNDS. REQD.

I

IY-IY
..........,
1

LA.;¥ I

LA#'3

I

IYL-ZR MOD ZR IYR-ZL MOD ZL 2YL-ZR MODZR WBC

IAU

LALD

OF-LA30F-LA4IF- 2Y

8 CYCLES

Fig. 6. VFL Instruction Preparation.

J

MAS

OF-LA

IF/Z-Y

IF-2Y

IF-IY
1",,- ""

........................
I

CHKR

IAU

IYL-ZR MOD ZR
I
I
I

XS

XFIIYL
I
I

LALD

ZL-LA
I
I

MISC

I

I

X-LA
I
I

IC-LA
I
I
INoS-LA

XFIIYR
I
I
ZR-LA
... ----1

I

I

~

IYL -ZR MOO ZR IYR-ZL MOD ZL
I
I
I
I
I

CL/Z ST/Z XF/IYL
J
J
I
I
I
~

XF/Z J
I

DEC
I

COUNT AoV/olM Z-I€R

2Y-2Y
"""" ""-..... 1
1

6 CYCLES

~

Fig. 7. Count and Branch Execution.

.

O\W

~

"'" I-'

322
6.4
APPENDIX A
Instruction and Index Word Formats.

VFL

BA

OA
1718

0
1/0

-I

TRANSMIT

SIC - BR

BR ON BIT

1000

1

ADR

1000

1

ADR

SIC

BA

OA

INDEX

OA

TO

I

IMMED. INDEX

DATA

I

COUNT a BR

BR ADR

BR. IND.

BR

60

OP

11

ADDRESS

II

OP

J

BR

ADR

OP

COUNT
28

1:

31
63

J

OP

I

J

OP

OP

III

OP

J

IND

OP

III

OP

I

'I

III

REFILL
4546

I I

63

I

II

1000

28
60

I

OA

ADDRESS

1:

50

OP

17
49

OA

44

I

ADR

OP

DIRECT INDEX

MISC.

1

40

OP

OFFSET

BR

23

AOR

I

I I

LENGTH BS

3132 35

lsi

0

0
32

p

11000 I I

1

VALUE

FP

28

23

CHANNEL :ADR

FROM

II

110001 I

63

323
6.4

APPENDIX B
Memory Address Assignments
Location
0
1 P, a
1 P, b
2P
3P
3P
3P
4
5b
6
7
7
8
9
10
11 c
12 d
13
14
15
16-31
32-k

Name
Zero
Inte rval time r
Time clock
Interruption address
Upper boundary
Lower boundary
Boundary control bit
Maintenance bits
Channel addre s s
Other CPU
Left Ze ros count
All ones count
Left half of accumulator
Right half of accumulator
Accumulator sign byte
Indicators
Mask
R.emainder
Factor
Transit
Index registers XO - XIS
Normal external memory

Length
64
19
36
18
18
18
1
64
7
19
7
7
64
64
8
64
64
64
64
64
64
64

Bit Address
0-63
o - 18
28 - 63
o - 17
o - 17
32 - 49
57
o - 63
12 - 18
o - 18
17 - 23
44 - 50
o - 63
o - 63
0-7
o - 63
o - 63
o - 63
o - 63
o - 63
o - 63
o - 63

Type
EM
XS
XS
EM
IR
IR
IR
EM/MC
IR
IR
IR
IR
IR
IR
IR
IR.
IR.
EM
EM
EM
XS
EM

P

Permanently protected area of memory.

a

R.ead-only except for STORE VALUE, STORE COUNT, STORE
REFILL, and STORE ADDR.ESS.

bRead-only.
c

Bit positions 0 - 19 are read-only.

d

Bit positions 0 - 19 are always ones, and bit positions 48 - 63
are always zeros.

k

Last word address in a particular memory configuration.

IR.

Internal Register

XS

Index Storage

EM

External Memory

MC

Maintenance Console

324
6.4
APPENDIX C
I Unit Instruction List

Modifiers:

A. Direct Index Arithmetic

a)
b)
c)
d)

1. Load index.

2. Load value.
3. Load count.

4. Load refill.
5. Store index.

6. Store value.
7. Store count.
8. Sto re refill.

E. Bit Branching
B ranch on bit

9. Add to value.
10.
11.
12.
13.
14.
15.

1.
2.
3.
4.
5.

6.
7.
8.

9.
10.
11.
12.
13.
14.
15.
16.

Modifiers:

Add to value and count.
Compare value.
Compare count.
Rename.
Load value effective.
Store value in address.

B. Immediate Index Arithmetic
Load value immediate.
Load count immediate.
Load refill immediate.
Load value negative immediate.
Add immediate to value.
Add immediate to value and count.
Add immediate to value and count
and refill.
Subtract immediate from value.
Subtract immediate from value and
count.
Subtract immediate from value and
count and refill.
Add immediate to count.
Subtract immediate from count.
Compare value immediate.
Compare value negative immediate.
Compare count immediate.
Load value with sum.

Leave indicator.
Set indicator to zero.
Branch if off.
Branch if on.

a)
b)
c)
d)
e)

Leave bit.
Invert bit.
Set bit to zero.
Branch if off.
Branch if on.

F. Index Branching
1. Count and branch.
2. Count, branch, and refill.
Modifiers:
a) Branch if count non-zero.
b) Branch if count zero.
c) Leave value is changed.
d) Add half to value.
e) Add one to value.
f) Subtract one from value.
G. Store Instruction Counter If
H. Transmit Operations
1. Transmit
2. Swap.
Modifiers:
a)
b)
c)
d)

C. Unconditional Branching
1.
2.
3.
4.
5.

Branch.
Branch relative.
Branch enabled.
Branch disabled.
Branch enabled and wait.
6. No operation.

D. Indicator Branching
Branch on Indicator

Forward
Backward
Direct count
Immediate count

J. Miscellaneous Operations

1.
2.
3.
4.
5.

Refill.
Refill on count zero.
Execute.
Execute indirect and count.
Store zero.

325
6.5

THE PRINTED MOTOR: A NEW APPROACH TO INTERMITTENT AND
CONTINUOUS MOTION DEVICES IN DATA PROCESSING EQUIPMENT
R. P. Burr
Circuit Research Company
33 Sea Cliff Avenue
Glen Cove, New York
Sunnnary
The printed d-c motor is characterized by high pulse torque capability and
freedom from cogging or preferred armature positions. These attributes lead to
a variety of applications in data processing equipment ranging from reel and
capstan drives in magnetic and paper tape
transports through detenting and positioning mechanisms.
Analysis of the motor on a velocity
basis yields a simple equivalent circuit
which is a powerful tool for designing
both the machine and its drive circuits
into a specific requirement. Since there
is no rotating iron in the structure and
since the field is supplied by permanent
magnets, the speed-torque curve of the
motor is a straight line whose slope defines a ''mechanical source impedance."
Inertia of the proposed load appears as
a capacitor in the same dimensional system. When the desired machine motion can
be expressed in terms of velocity and the
inertia of the load is known, the shape
and magnitude of the necessary driving
signal can be determined for the operating cycle.
A typical example of an application
in a paper tape transport is described.
Machine Structure and Printed Armature
Most of the important electromechanical characteristics of the printed
motor are shown in the exploded view of
a typical small machine as given in
Figure 1. Here we see the mechanical
relationship of the five key elements of
the device: exciting magnets, armature,
field return path, brushes and bearings.
In the photograph the eight pole pieces
of the permanent magnet cage are visible
to the right. These are polarized alternately north and south, so that there are
actually four pole pairs in the structure.
One should imagine that magnetic flux
leaves some particular pole, travels

parallel to the machine axis and traverses the armature disc into the soft
iron return ring at the left. Within
the return iron the flux divides and
travels in both directions circumferentially until it arrives under adjacent
magnetizing poles of opposite polarity.
At this point it re-emerges into the air
gap, passes again through the armature
and thence back into the magnet. Hence,
we have what is in effect a planar or
axial air gap d-c motor structure in
which the torque producing conductors
rotate independently of the magnetizing
iron, and in which, reciprocally, the
uniformity and smoothness of the magnetic
field is virtually unaffected by rotation
of the armature. The photograph also
shows the brush locations. One may observe that commutation takes place directly upon the surface of the armature
disc so that every conductor is commutated
in sequence. This point is of considerable importance when added to the fact
that rotation of the armature does not
modulate the flux density. The result
is that the printed motor displays no
cogging whatever: the armature has no
tendency toward a preferred set of
positions.
It would be difficult to imagine
a d-c motor of simpler construction. The
key, of course, lies in the design and
fabrication of the printed armature which
serves not only as the motor winding but
as the commutator, or vice versa. The
details of this important component need
not concern us here since they have bten
discussed elsewhere in the literature •
Suffice it to say for present purposes
that the armature is produced by modern
printed circuit techniques from a mas~er
drawing: the conductors have a flat
cross-section, are uninsulated in the
conventional sense, and are carried upon
a substrate of mylar, epoxy-glass, or
high-alumina ceramic, as the application
demands. The technique may be practiced

326

6.5

for machines ranging in power output up
to several mechanical kilowatts and in
peak torques from a few ounce-inches to
several thousand pound-feet. In each
case the armature may be thought of as
the "annular" equivalent of a wave winding in which commutation takes place upon
every active conductor.
Electro-mechanical Characteristics

negligible; torque at stall is in phase
with the applied voltage. Subsequently,
we shall be discussing intermittent operation of the motor at frequencies of
several hundred cycles per second so
that this point should not be neglected.
Equivalent Circuit Development
Equation (2) and the plot of Figure

4 show clearly that the end points of any
In order to visualize applications
for the printed motor we must first examine its electro-mechanical characteristics and attempt to construct an analogy for its performance as a circuit
component. As with most physically uncomplicated structures, we shall find
this approach to be both easy and gratifyingly simple.
A first step is to consider the relationship between speed and torque which
may be deduced from an inspection of
Figure 3, which is a schematic of the
machine from an electrical point of view.
Resistor ra is defined as the armature
resistance plus brush resistance plus the
resistance of the source of voltage ET,
if any. Voltage e a is the back EMF and
is related to the speed S in thousands of
revolutions per minute (or some other convenient unit) by a constant factor k e •
Similarly, the output torque, T, is given
by T = kT ia where kT is another constant
factor. Application of Ohm's law to the
circuit yields the classical equation for
an ideal shunt wound or permanent magnet
field d-c motor:
14"~
......L"

-

T ra
kT

+

keS

I:"a

kekT

+ S

Upon pursuing this idea a little
further, we are led to the concept of
an electromechanical equivalent circuit
on the basis of speed as shown in
Figure 5. Here the usual voltage source
is replaced by a generator of speed, Si,
delivering an "output" So through an
internal resistance, &ms. The flow of
torque, T, through &ros causes a speed
drop as shown in Figure 4. Torque is
therefore analagous to current. Nothing
is lost in regarding the machine from
this viewpoint, since Figure 3 and
Figure 5 are identical except for a change
of dimensions. Consideration of the power
relationships in both circuits will demonstrate this fact.

(1)

A slight rearrangement of this expression leads to:

T

family of speed-torque curves are a function only of the motor terminal voltage,
EI. A further step may be taken by recogn zing that the slope of these curves,
ra/kekT,is a useful measure of quality
in such machines. The dimensions of the
slope are speed-change-per-unit-appliedtorque and it may be thought of as reSUlting from an equivalent series mechanical resistance, which we shall designate by the symbol &ms.

(2)

which is the equation of a straight line
as shown in Figure 4 having a negative
slope numerically equal to ra/kekT.
Before continuing, we should pause
to note that no component for electrical
inductance is shown in Figure 3. In
point of fact, the inductance of a printed motor armature is so small as to be

The circuit of Figure 5 is a first
approach and is adequate to describe the
motor only so long as we are dealing with
steady state conditions and torque loads
(including friction from bearings and
brushes) which are independent of speed.
Practical experience with and analysis
of printed motors has shown that the total
loss torque to be expected must always
contain a viscosity component, or a torque
which is proportional to output speed, in
addition to a constant value. Graphically
the behavior is as shown in Figure 6. To
be consistent with our previous concept
of mechanical resistance we will assign
the symbol HmD to the slope of the viscosity or damping torque line. The damping,
component of torque to be expected at any
speed is therefore So/RmD.

327

6.5

By substituting the speed-varying
torque component into equation (2) or the
circuit of Figure 5, one obtains:

for several types of printed motors are
listed in Table II.
Interpretation of Equivalent Circuit

(3)

Having now devised a useful tool to
aid in thinking about the motor we are
in a position to draw several conclusions:

which, after some algebra, becomes:
S.
RmD
_ 'TI Ruts RutD
~ Rms+RmD
F Rms+RmD

(4)

whereupon we observe with the aid of
Thevenin's Theorem that RmD is a shunt
"resistor" across the output tenninals
of the network, as in Figure 7.
To complete the network for transient
operating conditions, which are usually of
chief concern in servomechanisms, we must
provide a component for the mechanical inertia of the motor and load. By inspection of the equations of motion for a
printed motor, one arrives at the conclusion that mechanical inertia may be represented as a capacitor of appropriate magnitude connected in parallel with RmD across the network output tenninals. In
particular, a possible equation of motion
for the circuit of Figure 5 in response to
a velocity "step", Si, is:
So

=

dS o
- J -dt- x Ruts

Si

(5)

where J denotes total system inertia.
Rearranging this slightly we get
dS

So

dt

JRms

o
--+--

First, we note that the veloctty
response of the motor to changes of the
input speed (i.e., applied tenninal
voltage) or output torque will be exactly analagous to the electrical response
of the equivalent single-time-constant
RC network. Conclusions on frequency
response, power dissipation, source
impedance and the like are equally valid
for either system. This is a comfortable
fact because it means that the motor is
a simple element to consider in the overall design of a servomechanism.
Second, the arrangement of the
circuit indicates clearly that an increase of the viscous damping component
is beneficial to the system response
time. The corresponding reduction of
RroD lowers the motor time constant, i.e.,
we broaden the bandwidth by loading the
"capacitor." At the same time, excessive
damping will result in an inefficient
machine useful only at low speeds, since
the speed attenuation through &rns into
RmD ultimately becomes large.

(6)

Third, for high perfonnance the
resistance of the "generator" is extremely
important and should be kept low with respect to the annature and brush resistance.
Otherwise the effective value of Rms will
rise above the theoretically attainable
value and the time-constant will increase.

(7)

Fourth, tne perfonnance of the motor
as a transducer is critically dependent upon
flux density in the air-gap. Both ke and
kT vary directly with field strength, so
that the value of both Rms and the timeconstant vary inversely as the square of
the field.

which is solved to obtain:

In this equation the factor J • Rms
is the system mechanical time constant,
1r, and is to be compared with the
analagous factor R • C in a simple
resistance capacitance network.
The complete equivalent circuit is
shown in Figure 8. Two sets of con~is­
tent units are given in Table I, while
specific values of the various elements

Fifth, the transition between the
velocity input to the network and the
actual driving voltage is given by the
factor ke' since ET = ke Si. This is
to say that once the desired input velocity has been detennined the corresponding driving voltage is in direct
proportion.

328

6.5

Application
Two general types of servos are of
interest in the field of data processing
equipment. The first covers the range of
motor applications in velocity servos for
magnetic tape reel and capstan drives,
analog mUltiplying devices and similar
continuous motion applications. The second
area contemplates intermittent operation
of the machine as in paper tape drives,
card handling apparatus, printers and so
on. In this field, the desired result
usually involves the rapid and precise
acceleration and deceleration of some
medium from one position to another in a
manner which may not be repetitive. Control is usually provided by some form of
pulse position servo, the signals to the
motor being simply "ON" or "OFF". The
equivalent circuit is particularly useful for this type of operation since the
velocity hehavior in either of the two
states can be easily predicted.
Figure 9 shows a typical arrangement
for the step-by-step advance of perforated paper tape. Let us assume that it
is desired to eliminate all brakes and
clutches from the transport and to accomplish movement of the tape simply by
starting and stopping the motor,--which
is directly coupled to the tape drive
capstan. Further, we wish that slewing
operation with stop on a character be
available without modification to the
system. To achieve these conditions,
the following sequence of events can be
supposed:
1. Start: The motor is at
rest with the tape in registry
over the reading aperture. A
clock or command pulse is received, switching the electronics
and the power transistor controlling the motor into the
conducting state.
2. Run: The motor velocity
rises rapidly to its terminal
value (or very nearly) before
~ext sprocket hole appears
in the reading aperture. (This
condition guarantees a stop
will occur in registry independent of the tape travel
while slewing.)

3. Stop: A stop pulse is
received from the tape,
switching off the electronics
and the motor. The motor
velocity decays to zero in the
interval between the arrival of
the sprocket hole at the edge
of the reading aperture and the
movement of the hole to a position of good registry.
In order to arrive at the desired
velocities in the neQwork, we must
calculate from the various times,
velocities and displacements implied by
the specifications. One commences the
design by adjusting the diameter (and
there£ore the inertia) of the capstan
drum so as to maximize linear acceleration at the drum periphery. Next, the
total permissible time for the motion
may be calculated from the maximum
stepping speed required; it might be,
for example, 5 milliseconds for standard
one-inch paper tape. For the time period from Start to Stop as previously
described, one must assume that about
2.5 time constants elapse, so as to be
sure~t the motor is near terminal
speed when the Stop Signal is received.
Further, it is reasonable to assume
(by calculation from the equivalent
circuit) that the motor may be effectively stopped in about one time constant
with a small amount of reverse pulsing.
Therefor~we oonclude that the entire
motion time must occupy about 3.5 time
constants, so that one time constant
must equal about 5/3.5 or 1.4 milliseconds. Finally, we can estimate the
various displacement components of the
cycle accurately, since these are given
by the drum diameter and the dimensions
of the tape. From the information on
motion time, drum diameter, running
displacement and time constant, one may
calculate and plot a curve of the motor
output velocity which must be delivered
by the equivalent circuit. A typical
result is sketched in Figure 10. Note
that a reverse pulse is shown as beginning at Stop. The negative voltage
pulse applied to t~e motor terminals
during this interval is such that it
would result in a complete reversal of
the machine along. the dotted line extending into the negative velocity'region
if sufficientLy proionged.
The corresponding veloc'ty (or

329

6.S
terminal voltage) input to the network is
shown in Figure 11. The forward or "run"
velocity is effectively that obtaining at
the instant of Stop in Figure 10, since
we assume that terminal velocity has been
achieved during the "run" period. The
reverse velocity amplitude must be consistent with the assumption of a complete
stop in about one time constant. This is
the same thing as saying that the reverse
velocity asymptote shown in Figure 10 must
be
1 _

1
1 - lIe

times the forward velocity. The pulse
duration is set close to the expected
stopping time, but is not critical since
an error in timing when the motor velocity
is near zero results in only a small displacement.
Reduction to practice with such a
design procedure is fundamentally a
series of successive approximations: the
designer is bound by limitations of the
motor itself in terms of the realizable
values of Rms and RmD which may be
employed to get a usable result. Further,
the effect of friction torque is always
beneficial to intermittent motions if it
is not excessive and is difficult to
assess until the physical apparatus is
tested: friction is easily compensated
by raising the forward velocity and
assists in a rapid stop since the friction
torque "current" di~charges the inertia
"capacitor." In general terms, the
equivalent circuit approach is valuable
since it provides a point of departure
and as a means for reconciling unexpected
phenomena which are so often experienced
in matters of this sort.
Developmental Tape Reader
The circuit parameters and schematic
driving arrangement for a newly developed
high performance printed motor in a developmental paper tape reader are shown in
Figure 12. Note that the damping resistor,
RmD, which would normally be several ttmes
Ruts (Table II), is adjusted to be half
the series resistance. In practice this
is accomplished by laminating the armature with a thin disc of soft aluminum.
The tape capstan drum and other mechanical
parts of the machine are carefully adjusted to achieve low inertia.
°

Operating tests on this reader
transport show that a mechanical time
constant of about one millisecond has
been achieved. The motor will execute
the complete cycle of start, accelerate,
run, shut-off, decelerate and stop at
a rate of 250 lines per second for
standard one-inch paper tape. Stopon-a-character is automatically obtained
for slewing operation while the reader
will advance blocks of tape ten lfaes
long at a rate of 25 per second.
Conclusion
The printed motor is an electrically
simple device, providing smooth torque
from a low inertia mechanical structure.
Linearity of the speed-torque curves
allows the construction of a simple
equivalent circuit which accurately
represents the transient performance of
the machine in continuous and intermittent motion servos. The feasibility
of a proposed application may be studied
and a design formulated by reconciliation
of the desired velocity behavior with the
machine parameters.
1

Henry-Baudot, J. and Burr, R. P.,
"Printed Circuit DC Motors for
Electronic and Instrument Applications,"
IRE National Convention Record, Part 9,
March 1959 and Burr, R. P., "Printed
Circuit Motors" presented at 1959
AlEE Machine Tool Conference,
Cleveland, Ohio, October 20, 1959.

330

6.5

Table I
Consistent Units
Equivalent Motor Speed Network

A.

Speed is measured in 1000 rpm, denoted by kpm.
Armature resistance, r a , in ohms.
Torque per ampere, kT' in in-oz/ampere.
Back EMF per kpm, ke' in volts/kpm.
Mechanical resistance, Rms, Rm~ in kpm/in-oz.
Inertia, J, in 105 x in-oz-sec •
Terminal voltage, ET, in volts.
Note:

B.

The mUltiplying factor 105 for J arises from
a conversion between radians per second and kpm.

Speed is measured in radians per second, rad/sec.
Armature resistance, r a , in ohms.
Torque per ampere, kT' in gr-cm/ampere.
Back EMF per kpm, ke, in volts/rad/sec.
Mechanical resistance, ~s, Rmn in rad/sec/gr-cm.
Inertia, J, in gr-cm-sec •
Terminal voltage, ET, in volts.

Table 11

Motor

Rms
kpm/in-oz

l\nD
19!m/in-oz

?:
mi11iseconds

Cont.
Torque
in-oz

Peak
Torque
in-oz

Case
Diameter
inches

PM 368

94.5 x 10- 3

842 x 10- 3

34

12

150

4.250

PM 368 A

94.5 x 10- 3

13.2 x 10 -3

5

12

150

4.25

PM 488

23.5 x 10

400 x 10- 3

41

42.5

375

5.625

106.6 x 10- 3

24

140

1175

7.125

12.13 x 10- 3

23

1000

8400

11.0

7 x 10- 3

1.5

30

375

5.625

PM

668

PM 1028
PM 368 HF

-3

2.5 x 10- 3
242 x 10- 3
15 x 10- 3

0\(..1)

•

(..I)

c.n ......

332
6.S

333

6.5

F19. 2. Desi gn of Printed Ci reud
O

°

Armat ure

0\ to\)
•
to\)
CJl~

rQ.
eGa:
•

ET

'4.

I

ke S

T= kT iQ.

".-~,

e

S,T

E.::.

T rQ. + keS

Fig. 3. Electrical Schematic of Ideal Shunt-Wound or Permanent Magnet D-C Motor.

ET/

T=O,S= /ke

ra..

--0

S'~pe: ke.kT

""0-

cI)

TOY9 ue
Fig. 4. Printed Motor Speed Torque Curves
0\(.1.)
•

(.I.)

tJltJl

0'\ W

•

W

CJ10'\

Rms

,t
T

So
rO-

R
=
Si.= 7ke. ms ke. kT
ET/

Fig. 5. Elementary Mechanical Impedance Concept

337

6.5

Cl

t

E

{t::

"~

~c
:>

8-(1)
8
e
"
.~ 0 ~
>u

-f.I

....0""0

C

:E
U

Q

Ccal

oC

~ ..

0

+Q..~
.~

i

ItS

"'tj

....c::Q)

CU
:>
()
~

~

't:
0..

as
c::

,~

fIl

Q)

6""

0

f-4
fIl
fIl

0

~

......
0

c::

0

....

,~
,~

- -- ---

fIl

0
0..

E

0

U
~

bD

ti:

o

en

338

6.5

Fig. 7. Location of Mechanical "Viscosity" Re sistance

Fig. 8. Complete Equivalent Speed Network Including Inertia Capacitor

Ca.fs:t-Cl.n

_....t. -:

:. ___•• ;--_.1

~t~r J

I

1

.

LAw., '"
•
TQ.."eo 0 0 ~ 00
--~

~efld

Meoj-_

I

ElecTYon,c:s

.,S1-op
,§1-G.W't

Fig. 9. Operating Principle of Step-by-Step Paper Tape Reader

"'w
•
W
c.n\O

340
6.5

•

I

,

I
I

I

~tI

t:d.....

... --

(f)

~---.

u
~
u
>

~

r.:

..+

.0

o

E,

341

6.5

STG.rt S~Op

s1

~\A.ft

-----~evey.se

Time

1lulse

Fig. 11. Input Velocity Waveform for Paper Tape Transport

342

6.5

4

0.-

CI)

•

---.. I----~;~~---II

I·

"-'--.
I
t

: ......• •
,'I'
.
•
•• ••
-- _____ ..l• cu:•
...........
t

)

---

~.

......- ..1·

INDEX BY AUTHORS
Page
AXEL, G. J.:

UNIVAC - RANDEX II - Random Access Data Storage System. .

189

BECK, ROBERT MARK: PB-250 - A High Speed Serial General Purpose
Computer Using Magnetostrictive Delay Line Storage ................

283

BENDER, R. R. ; DOODY, D. T. ; STOUGHTON, P. N.: A Description of the
IBM 7074 System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

161

BLOSK, R. T.:

The Instruction Unit of the Stretch Computer . . . . . . . . . . . . . . . .

299

BURR, R. P.: The Printed Motor: A New Approach to Intermittent and
Continuous Motion Devices in Data Processing Equipment ...........

325

CROSBY, D. R. and KAUPP, H. R.: Calculated Waveforms for the Tunnel
Diode Locked-Pair Circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233

CUNNINGHAM, JAMES A. ; MEISSNER, PAUL; KETTERING, CLAUDE A. :
A Computer for Weather Data Acquisition .. ~ . . . . . . . . . . . . . . . . . . . . . . . .

57

DOODY, D. T. ; BENDER, R. R. ; STOUGHTON, P. N.: A Description of the
IBM 7074 System . . . . . . . . . . . . . . . . . . . . : . . . . . . . . . . . . . . . . . . . . . . . . . . . .

161

FREIMAN, C. V.; KIM, W. H.; YOUNGER, D. H.; MAYEDA, W.:
On Iterative Factorization in Network Analysis by Digital Computer. . .

241

GILSTAD, R. L.: Polyphase Merge Sorting - An Advanced Technique.. . . . . . .

143

GORDON, WILLIAM L., DR.: Data Processing Techniques in Design
Automation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

205

HANNIG, W. A. and MAYES, T. L.: Impact of Automation on Digital
Computer Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

211

INNES, DAPHNE: FILTER - A Topological Pattern Separation Computer
Program . . . . . . . . . . . . . . . . . . . . . . -. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

INNES, FRANK T.: High Speed Printer and Plotter. . ... . . .. . .. . .. . . . .. . .. .

153

JOR Y, JOHN H.: Hot- Wire Anemom.eter Paper Tape Reader. . . . . . . . . . . . . . .

267

KAISER, V. A. and WHITTAKER, J. L.: A Computer-Controlled Dynamic
Servo Test System. . • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

255

KAUPP, H. R. and CROSB Y, D. R.: Calculated Waveforms for the Tunnel
Diode Locked-Pair Circuit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

233

(Continued)

INDEX BY AUTHORS, continued
Page
KAVANAGH, R. F.: TABSOL - A Fundamental Concept for SystemsOriented Languages
............................................

117

KETTERING, CLAUDE A. ; MEISSNER, PAUL; CUNNINGHAM, JAMES A. :
A Computer for Weather Data Acquisition. . . . . . . . . . . . . . . . . . . . . . . . . . .

57

KIM, W. H.; FREIMAN, C. V.; YOUNGER, D. H.; MAYEDA, W.: On Iterative
Factorization in Network Analysis by Digital Computer. . . . . . . . . . . . . . .

241

KOZARSKY, K. and LING, A. T.:

173

The RCA 601 System Design. . . . . . . . . . .. . .

KRANTZ, F. H. and MURRAY, W. D.: A Survey of Digital Methods for
Radar Data Processing .......
0................................
o

LANGMUIR, CHARLES R.: A Logical Machine for Measuring Problem
Solving Ability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
0

LING, A. T. and KOZARSKY, K.:
LOMBARDI, LIONELLO:

67

••

The RCA 601 System Design ..

•

'0'

0

•••••••

•••

0

•

0

o. . . .

Theory of Files

1
173
137

MATTESON, R. G.: High Speed Data Transmission Systems. . . . . . . . . . .. . . . . .

97

MAYEDA, W.; KIM, W. H. ; FREIMAN, C. V. ; YOUNGER, D. H.: On Iterative
Factorization in Network Analysis by Digital Computer. . . . . . . . . . . . . . .

241

MAYES, T. L. and HANNIG, W. A.: Impact of Automation on Digital
Computer Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

211

MEISSNER, PAUL; CUNNINGHAM, JAMES A.; KETTERING, CLAUDE A.:
A Computer for Weather Data Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . .

57

MILLER, A. EUGENE: Organization and Program of the BMEWS Checkout
Data Processor

83

MULVIHILL, DENNIS E .. and REDMOND, GOMER H.: The Use of a
Binary Computer for Data Processing ........................•....

149

MURRAY, W. D. and KRANT Z, F. H.: A Survey of Digital Methods for
Radar Data Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

PETRICK, S. R. and WILLETT, H. M.: A Method of Voice Communication
With a Digital Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

(Continued)

INDEX BY AUTHORS, continued
Page
REDMOND, GOMER H. and MULVIHILL, DENNIS E.: The Use of a Binary
Computer for Data Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

149

SEEBER, ROBER T R., JR.: Associative Self-Sorting Memory. . . . . . . . . . . . .

179

SHOOMAN, WILLIAM:

Parallel Computing With Vertical Data. . . . . . . . . . . . .

III

SPIEGELTHAL, EDWIN S.: Redundancy Exploitation in the Computer
Solution of Double-Crostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

STOUGHTON, P. N.; BENDER, R. R. ; DOODY, D. T.: A Description
of the IBM 7074 System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

161

WHITTAKER, J. L. and KAISER, V. A.: A Computer-Controlled Dynamic
Servo Test System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

255

WILLETT, H. M. and PETRICK, S. R.: A Method of Voice Communication
With a Digital Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

WOR TZMAN, DONALD: Use of a Digital/Analog Arithmetic
Unit Within a Digital Computer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

269

YOUNGER, D. H.; KIM, W. H. ; FREIMAN, C. V. ; MAYEDA, W.: On Iterative
Factorization in Network Analysis by Digital Computer. . . . . . . . . . . . . . .

241

LIST OF EXHIBITORS
American Telephone & Telegraph Co . .
Amp, Inc.
• .••..••
Ampex Data Products Co.
Anelex Corp. • • • . • •
Audio Devices, Inc.
Automatic Electric Co •.
Autonetics
The Bendix Corp. • • . .
Bryant Computer Products ••
Burroughs Corp. •
CBS Laboratories . • . • . . • • .
C-E-I-R, Inc. • . . • . .
C & K Components, Inc •.
C. P. Clare & Co.
C. P. Clare Transistor Corp.
Computer Control Co., Inc. •
Consolidated Electrodynamics Corp ••.
Control Data Corp. .
Di/An Controls, Inc • • .
Datamation • . • . • . •
Digital Equipment Corp.
The Digitan Co •••
Digitronics Corp ••
Dynacor, Inc • . • • • • • • .
Elco Corp.
Electronic Associates, Inc.
Engineered Electronics Co.
Epsco, Inc • • • • • • • •
Fairchild Semiconductor Corp.
Ferranti Electric. •
GPS Instrument Co., Inc.
General Ceramics
General Electric Co ••
Genesys
••••.•
Kenneth E. Hughes Co., Inc.
Hughes Semiconductor Division .•
International Business Machines Corp.
Laboratory For Electronics, Inc.
Lenkurt Electric Co., Inc.
Librascope, Inc.
Micro Switch • • •
Mnemotron Corp. • •
F. L. Moseley Co.
The National Cash Register Co.
Navigation Computer Corp.
Packard Bell Computer Corp.
Philco Corp. • • • • .
Photocircuits Corp.
Potter Instrument Co., Inc.
Radio Corporation of America
Ramo- Wooldridge
Reeves Soundcraft Corp.
Remington Rand Univac

New York, New York
Harrisburg, Pennsylvania
Redwood, City, California
Boston, Massachusetts
New York, New York
Northlake, Illinois
Downey, California
Los Angele s, California
Walled Lake, Michigan
Detroit, Michigan
Stamford, Connecticut
Arlington, Virginia
Newton, Massachusetts
Chicago, Illinois
Glen Head, L. I., New York
Framingham, Massachusetts
Pasadena, California
Minneapolis, Minnesota
Boston, Massachusetts
New York, New York .
Maynard, Massacp.usetts
Pasadena, California
Albertson, L. I., New York
Rockville, Maryland
Philadelphia, Pennsylvania
Long Branch, New Jersey
Santa Ana, California
Cambridge, Mas sachusetts
Mountain View, California
Hempstead, New York
Newton, Massachusetts
Keasbey, New Jersey
Johnson City, New York
Los Angeles, California
Union City, New Jersey
Newport Beach, California
New York, New York
Boston, Massachusetts
San Carlos, California
Glendale, California
Freeport, Illinois
Orangeburg, New York
Pasadena, California
Dayton, Ohio
Philadelphia, Pennsylvania
Los Angeles, California
Philadelphia, Pennsylvania
Glen Cove, New York
Plainview, New York
Camden and Somerville, New Jersey
Canoga Park, California
Danbury, Connecticut
New York, New York

LIST OF EXHIBITORS
Reese Engineering, Inc • • .
Royal McBee Corp.
Soroban Engineering, Inc.
Sprague Electric Co. . • • • .
Stromberg-Carlson Co.
Sylvania Electric Systems
Tally Register Corp • • . • •
Telemeter Magnetics, Inc.
Texas Instruments, Inc.
Union Switch & Signal. .
Uptime Corporation. . .
John Wiley & Sons, Inc.

(Cont.)

Philadelphia, Pennsylvania
Port Chester, New York
Melbourne, Florida
North Adams, Massachusetts
San Diego, California
Waltham, Massachusetts
Seattle, Washington
Culver City, California
Dallas, Texas
Pittsburgh, Pennsylvania
Denver, Colorado
New York, New York



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Modify Date                     : 2008:11:16 16:55:09-08:00
Create Date                     : 2008:11:16 16:55:09-08:00
Metadata Date                   : 2008:11:16 16:55:09-08:00
Format                          : application/pdf
Document ID                     : uuid:e0a2af3d-edce-4141-8219-2ee419e310fc
Instance ID                     : uuid:c758847d-4ef2-4f4f-8e9d-dff6e2960c59
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 359
EXIF Metadata provided by EXIF.tools

Navigation menu